; LLVM IR from libxsmm/libxsmm :: src (libxsmm_gemm)

; 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"

%union.internal_gemm_locktype = type { i32, [60 x i8] }

@.str.6 = external hidden unnamed_addr constant [20 x i8], align 1
@internal_gemm_nlocks = external dso_local global i32, align 64
@internal_gemm_lock = external dso_local global [1024 x %union.internal_gemm_locktype], align 64
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@libxsmm_gemm_tasks = external dso_local global i32, align 64
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@libxsmm_gemm_taskgrain = external dso_local global i32, align 64

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemm_batch_strided() #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemm_batch_strided() #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemm_batch() #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemm_batch() #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemm() #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemm() #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemv() #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemv() #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_gemm_init() #0 {
  %1 = alloca i32, align 4
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #4
  store i32 0, ptr %1, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %2) #4
  %9 = call ptr @getenv(ptr noundef @.str.6) #4
  store ptr %9, ptr %2, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #4
  %10 = load ptr, ptr %2, align 8, !tbaa !9
  %11 = icmp eq ptr null, %10
  br i1 %11, label %17, label %12

12:                                               ; preds = %0
  %13 = load ptr, ptr %2, align 8, !tbaa !9
  %14 = load i8, ptr %13, align 1, !tbaa !11
  %15 = sext i8 %14 to i32
  %16 = icmp eq i32 0, %15
  br i1 %16, label %17, label %18

17:                                               ; preds = %12, %0
  br label %21

18:                                               ; preds = %12
  %19 = load ptr, ptr %2, align 8, !tbaa !9
  %20 = call i32 @atoi(ptr noundef %19) #5
  br label %21

21:                                               ; preds = %18, %17
  %22 = phi i32 [ -1, %17 ], [ %20, %18 ]
  store i32 %22, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #4
  %23 = load i32, ptr %3, align 4, !tbaa !5
  %24 = icmp sgt i32 0, %23
  br i1 %24, label %25, label %26

25:                                               ; preds = %21
  br label %34

26:                                               ; preds = %21
  %27 = load i32, ptr %3, align 4, !tbaa !5
  %28 = icmp slt i32 %27, 1024
  br i1 %28, label %29, label %31

29:                                               ; preds = %26
  %30 = load i32, ptr %3, align 4, !tbaa !5
  br label %32

31:                                               ; preds = %26
  br label %32

32:                                               ; preds = %31, %29
  %33 = phi i32 [ %30, %29 ], [ 1024, %31 ]
  br label %34

34:                                               ; preds = %32, %25
  %35 = phi i32 [ 1024, %25 ], [ %33, %32 ]
  %36 = sext i32 %35 to i64
  %37 = load i32, ptr %3, align 4, !tbaa !5
  %38 = icmp sgt i32 0, %37
  br i1 %38, label %39, label %40

39:                                               ; preds = %34
  br label %48

40:                                               ; preds = %34
  %41 = load i32, ptr %3, align 4, !tbaa !5
  %42 = icmp slt i32 %41, 1024
  br i1 %42, label %43, label %45

43:                                               ; preds = %40
  %44 = load i32, ptr %3, align 4, !tbaa !5
  br label %46

45:                                               ; preds = %40
  br label %46

46:                                               ; preds = %45, %43
  %47 = phi i32 [ %44, %43 ], [ 1024, %45 ]
  br label %48

48:                                               ; preds = %46, %39
  %49 = phi i32 [ 1024, %39 ], [ %47, %46 ]
  %50 = icmp slt i32 1, %49
  br i1 %50, label %51, label %52

51:                                               ; preds = %48
  br label %66

52:                                               ; preds = %48
  %53 = load i32, ptr %3, align 4, !tbaa !5
  %54 = icmp sgt i32 0, %53
  br i1 %54, label %55, label %56

55:                                               ; preds = %52
  br label %64

56:                                               ; preds = %52
  %57 = load i32, ptr %3, align 4, !tbaa !5
  %58 = icmp slt i32 %57, 1024
  br i1 %58, label %59, label %61

59:                                               ; preds = %56
  %60 = load i32, ptr %3, align 4, !tbaa !5
  br label %62

61:                                               ; preds = %56
  br label %62

62:                                               ; preds = %61, %59
  %63 = phi i32 [ %60, %59 ], [ 1024, %61 ]
  br label %64

64:                                               ; preds = %62, %55
  %65 = phi i32 [ 1024, %55 ], [ %63, %62 ]
  br label %66

66:                                               ; preds = %64, %51
  %67 = phi i32 [ 1, %51 ], [ %65, %64 ]
  %68 = sext i32 %67 to i64
  %69 = sub i64 %36, %68
  %70 = load i32, ptr %3, align 4, !tbaa !5
  %71 = icmp sgt i32 0, %70
  br i1 %71, label %72, label %73

72:                                               ; preds = %66
  br label %81

73:                                               ; preds = %66
  %74 = load i32, ptr %3, align 4, !tbaa !5
  %75 = icmp slt i32 %74, 1024
  br i1 %75, label %76, label %78

76:                                               ; preds = %73
  %77 = load i32, ptr %3, align 4, !tbaa !5
  br label %79

78:                                               ; preds = %73
  br label %79

79:                                               ; preds = %78, %76
  %80 = phi i32 [ %77, %76 ], [ 1024, %78 ]
  br label %81

81:                                               ; preds = %79, %72
  %82 = phi i32 [ 1024, %72 ], [ %80, %79 ]
  %83 = sext i32 %82 to i64
  %84 = load i32, ptr %3, align 4, !tbaa !5
  %85 = icmp sgt i32 0, %84
  br i1 %85, label %86, label %87

86:                                               ; preds = %81
  br label %95

87:                                               ; preds = %81
  %88 = load i32, ptr %3, align 4, !tbaa !5
  %89 = icmp slt i32 %88, 1024
  br i1 %89, label %90, label %92

90:                                               ; preds = %87
  %91 = load i32, ptr %3, align 4, !tbaa !5
  br label %93

92:                                               ; preds = %87
  br label %93

93:                                               ; preds = %92, %90
  %94 = phi i32 [ %91, %90 ], [ 1024, %92 ]
  br label %95

95:                                               ; preds = %93, %86
  %96 = phi i32 [ 1024, %86 ], [ %94, %93 ]
  %97 = icmp slt i32 1, %96
  br i1 %97, label %98, label %99

98:                                               ; preds = %95
  br label %113

99:                                               ; preds = %95
  %100 = load i32, ptr %3, align 4, !tbaa !5
  %101 = icmp sgt i32 0, %100
  br i1 %101, label %102, label %103

102:                                              ; preds = %99
  br label %111

103:                                              ; preds = %99
  %104 = load i32, ptr %3, align 4, !tbaa !5
  %105 = icmp slt i32 %104, 1024
  br i1 %105, label %106, label %108

106:                                              ; preds = %103
  %107 = load i32, ptr %3, align 4, !tbaa !5
  br label %109

108:                                              ; preds = %103
  br label %109

109:                                              ; preds = %108, %106
  %110 = phi i32 [ %107, %106 ], [ 1024, %108 ]
  br label %111

111:                                              ; preds = %109, %102
  %112 = phi i32 [ 1024, %102 ], [ %110, %109 ]
  br label %113

113:                                              ; preds = %111, %98
  %114 = phi i32 [ 1, %98 ], [ %112, %111 ]
  %115 = sext i32 %114 to i64
  %116 = sub i64 %83, %115
  %117 = lshr i64 %116, 1
  %118 = or i64 %69, %117
  %119 = load i32, ptr %3, align 4, !tbaa !5
  %120 = icmp sgt i32 0, %119
  br i1 %120, label %121, label %122

121:                                              ; preds = %113
  br label %130

122:                                              ; preds = %113
  %123 = load i32, ptr %3, align 4, !tbaa !5
  %124 = icmp slt i32 %123, 1024
  br i1 %124, label %125, label %127

125:                                              ; preds = %122
  %126 = load i32, ptr %3, align 4, !tbaa !5
  br label %128

127:                                              ; preds = %122
  br label %128

128:                                              ; preds = %127, %125
  %129 = phi i32 [ %126, %125 ], [ 1024, %127 ]
  br label %130

130:                                              ; preds = %128, %121
  %131 = phi i32 [ 1024, %121 ], [ %129, %128 ]
  %132 = sext i32 %131 to i64
  %133 = load i32, ptr %3, align 4, !tbaa !5
  %134 = icmp sgt i32 0, %133
  br i1 %134, label %135, label %136

135:                                              ; preds = %130
  br label %144

136:                                              ; preds = %130
  %137 = load i32, ptr %3, align 4, !tbaa !5
  %138 = icmp slt i32 %137, 1024
  br i1 %138, label %139, label %141

139:                                              ; preds = %136
  %140 = load i32, ptr %3, align 4, !tbaa !5
  br label %142

141:                                              ; preds = %136
  br label %142

142:                                              ; preds = %141, %139
  %143 = phi i32 [ %140, %139 ], [ 1024, %141 ]
  br label %144

144:                                              ; preds = %142, %135
  %145 = phi i32 [ 1024, %135 ], [ %143, %142 ]
  %146 = icmp slt i32 1, %145
  br i1 %146, label %147, label %148

147:                                              ; preds = %144
  br label %162

148:                                              ; preds = %144
  %149 = load i32, ptr %3, align 4, !tbaa !5
  %150 = icmp sgt i32 0, %149
  br i1 %150, label %151, label %152

151:                                              ; preds = %148
  br label %160

152:                                              ; preds = %148
  %153 = load i32, ptr %3, align 4, !tbaa !5
  %154 = icmp slt i32 %153, 1024
  br i1 %154, label %155, label %157

155:                                              ; preds = %152
  %156 = load i32, ptr %3, align 4, !tbaa !5
  br label %158

157:                                              ; preds = %152
  br label %158

158:                                              ; preds = %157, %155
  %159 = phi i32 [ %156, %155 ], [ 1024, %157 ]
  br label %160

160:                                              ; preds = %158, %151
  %161 = phi i32 [ 1024, %151 ], [ %159, %158 ]
  br label %162

162:                                              ; preds = %160, %147
  %163 = phi i32 [ 1, %147 ], [ %161, %160 ]
  %164 = sext i32 %163 to i64
  %165 = sub i64 %132, %164
  %166 = load i32, ptr %3, align 4, !tbaa !5
  %167 = icmp sgt i32 0, %166
  br i1 %167, label %168, label %169

168:                                              ; preds = %162
  br label %177

169:                                              ; preds = %162
  %170 = load i32, ptr %3, align 4, !tbaa !5
  %171 = icmp slt i32 %170, 1024
  br i1 %171, label %172, label %174

172:                                              ; preds = %169
  %173 = load i32, ptr %3, align 4, !tbaa !5
  br label %175

174:                                              ; preds = %169
  br label %175

175:                                              ; preds = %174, %172
  %176 = phi i32 [ %173, %172 ], [ 1024, %174 ]
  br label %177

177:                                              ; preds = %175, %168
  %178 = phi i32 [ 1024, %168 ], [ %176, %175 ]
  %179 = sext i32 %178 to i64
  %180 = load i32, ptr %3, align 4, !tbaa !5
  %181 = icmp sgt i32 0, %180
  br i1 %181, label %182, label %183

182:                                              ; preds = %177
  br label %191

183:                                              ; preds = %177
  %184 = load i32, ptr %3, align 4, !tbaa !5
  %185 = icmp slt i32 %184, 1024
  br i1 %185, label %186, label %188

186:                                              ; preds = %183
  %187 = load i32, ptr %3, align 4, !tbaa !5
  br label %189

188:                                              ; preds = %183
  br label %189

189:                                              ; preds = %188, %186
  %190 = phi i32 [ %187, %186 ], [ 1024, %188 ]
  br label %191

191:                                              ; preds = %189, %182
  %192 = phi i32 [ 1024, %182 ], [ %190, %189 ]
  %193 = icmp slt i32 1, %192
  br i1 %193, label %194, label %195

194:                                              ; preds = %191
  br label %209

195:                                              ; preds = %191
  %196 = load i32, ptr %3, align 4, !tbaa !5
  %197 = icmp sgt i32 0, %196
  br i1 %197, label %198, label %199

198:                                              ; preds = %195
  br label %207

199:                                              ; preds = %195
  %200 = load i32, ptr %3, align 4, !tbaa !5
  %201 = icmp slt i32 %200, 1024
  br i1 %201, label %202, label %204

202:                                              ; preds = %199
  %203 = load i32, ptr %3, align 4, !tbaa !5
  br label %205

204:                                              ; preds = %199
  br label %205

205:                                              ; preds = %204, %202
  %206 = phi i32 [ %203, %202 ], [ 1024, %204 ]
  br label %207

207:                                              ; preds = %205, %198
  %208 = phi i32 [ 1024, %198 ], [ %206, %205 ]
  br label %209

209:                                              ; preds = %207, %194
  %210 = phi i32 [ 1, %194 ], [ %208, %207 ]
  %211 = sext i32 %210 to i64
  %212 = sub i64 %179, %211
  %213 = lshr i64 %212, 1
  %214 = or i64 %165, %213
  %215 = lshr i64 %214, 2
  %216 = or i64 %118, %215
  %217 = load i32, ptr %3, align 4, !tbaa !5
  %218 = icmp sgt i32 0, %217
  br i1 %218, label %219, label %220

219:                                              ; preds = %209
  br label %228

220:                                              ; preds = %209
  %221 = load i32, ptr %3, align 4, !tbaa !5
  %222 = icmp slt i32 %221, 1024
  br i1 %222, label %223, label %225

223:                                              ; preds = %220
  %224 = load i32, ptr %3, align 4, !tbaa !5
  br label %226

225:                                              ; preds = %220
  br label %226

226:                                              ; preds = %225, %223
  %227 = phi i32 [ %224, %223 ], [ 1024, %225 ]
  br label %228

228:                                              ; preds = %226, %219
  %229 = phi i32 [ 1024, %219 ], [ %227, %226 ]
  %230 = sext i32 %229 to i64
  %231 = load i32, ptr %3, align 4, !tbaa !5
  %232 = icmp sgt i32 0, %231
  br i1 %232, label %233, label %234

233:                                              ; preds = %228
  br label %242

234:                                              ; preds = %228
  %235 = load i32, ptr %3, align 4, !tbaa !5
  %236 = icmp slt i32 %235, 1024
  br i1 %236, label %237, label %239

237:                                              ; preds = %234
  %238 = load i32, ptr %3, align 4, !tbaa !5
  br label %240

239:                                              ; preds = %234
  br label %240

240:                                              ; preds = %239, %237
  %241 = phi i32 [ %238, %237 ], [ 1024, %239 ]
  br label %242

242:                                              ; preds = %240, %233
  %243 = phi i32 [ 1024, %233 ], [ %241, %240 ]
  %244 = icmp slt i32 1, %243
  br i1 %244, label %245, label %246

245:                                              ; preds = %242
  br label %260

246:                                              ; preds = %242
  %247 = load i32, ptr %3, align 4, !tbaa !5
  %248 = icmp sgt i32 0, %247
  br i1 %248, label %249, label %250

249:                                              ; preds = %246
  br label %258

250:                                              ; preds = %246
  %251 = load i32, ptr %3, align 4, !tbaa !5
  %252 = icmp slt i32 %251, 1024
  br i1 %252, label %253, label %255

253:                                              ; preds = %250
  %254 = load i32, ptr %3, align 4, !tbaa !5
  br label %256

255:                                              ; preds = %250
  br label %256

256:                                              ; preds = %255, %253
  %257 = phi i32 [ %254, %253 ], [ 1024, %255 ]
  br label %258

258:                                              ; preds = %256, %249
  %259 = phi i32 [ 1024, %249 ], [ %257, %256 ]
  br label %260

260:                                              ; preds = %258, %245
  %261 = phi i32 [ 1, %245 ], [ %259, %258 ]
  %262 = sext i32 %261 to i64
  %263 = sub i64 %230, %262
  %264 = load i32, ptr %3, align 4, !tbaa !5
  %265 = icmp sgt i32 0, %264
  br i1 %265, label %266, label %267

266:                                              ; preds = %260
  br label %275

267:                                              ; preds = %260
  %268 = load i32, ptr %3, align 4, !tbaa !5
  %269 = icmp slt i32 %268, 1024
  br i1 %269, label %270, label %272

270:                                              ; preds = %267
  %271 = load i32, ptr %3, align 4, !tbaa !5
  br label %273

272:                                              ; preds = %267
  br label %273

273:                                              ; preds = %272, %270
  %274 = phi i32 [ %271, %270 ], [ 1024, %272 ]
  br label %275

275:                                              ; preds = %273, %266
  %276 = phi i32 [ 1024, %266 ], [ %274, %273 ]
  %277 = sext i32 %276 to i64
  %278 = load i32, ptr %3, align 4, !tbaa !5
  %279 = icmp sgt i32 0, %278
  br i1 %279, label %280, label %281

280:                                              ; preds = %275
  br label %289

281:                                              ; preds = %275
  %282 = load i32, ptr %3, align 4, !tbaa !5
  %283 = icmp slt i32 %282, 1024
  br i1 %283, label %284, label %286

284:                                              ; preds = %281
  %285 = load i32, ptr %3, align 4, !tbaa !5
  br label %287

286:                                              ; preds = %281
  br label %287

287:                                              ; preds = %286, %284
  %288 = phi i32 [ %285, %284 ], [ 1024, %286 ]
  br label %289

289:                                              ; preds = %287, %280
  %290 = phi i32 [ 1024, %280 ], [ %288, %287 ]
  %291 = icmp slt i32 1, %290
  br i1 %291, label %292, label %293

292:                                              ; preds = %289
  br label %307

293:                                              ; preds = %289
  %294 = load i32, ptr %3, align 4, !tbaa !5
  %295 = icmp sgt i32 0, %294
  br i1 %295, label %296, label %297

296:                                              ; preds = %293
  br label %305

297:                                              ; preds = %293
  %298 = load i32, ptr %3, align 4, !tbaa !5
  %299 = icmp slt i32 %298, 1024
  br i1 %299, label %300, label %302

300:                                              ; preds = %297
  %301 = load i32, ptr %3, align 4, !tbaa !5
  br label %303

302:                                              ; preds = %297
  br label %303

303:                                              ; preds = %302, %300
  %304 = phi i32 [ %301, %300 ], [ 1024, %302 ]
  br label %305

305:                                              ; preds = %303, %296
  %306 = phi i32 [ 1024, %296 ], [ %304, %303 ]
  br label %307

307:                                              ; preds = %305, %292
  %308 = phi i32 [ 1, %292 ], [ %306, %305 ]
  %309 = sext i32 %308 to i64
  %310 = sub i64 %277, %309
  %311 = lshr i64 %310, 1
  %312 = or i64 %263, %311
  %313 = load i32, ptr %3, align 4, !tbaa !5
  %314 = icmp sgt i32 0, %313
  br i1 %314, label %315, label %316

315:                                              ; preds = %307
  br label %324

316:                                              ; preds = %307
  %317 = load i32, ptr %3, align 4, !tbaa !5
  %318 = icmp slt i32 %317, 1024
  br i1 %318, label %319, label %321

319:                                              ; preds = %316
  %320 = load i32, ptr %3, align 4, !tbaa !5
  br label %322

321:                                              ; preds = %316
  br label %322

322:                                              ; preds = %321, %319
  %323 = phi i32 [ %320, %319 ], [ 1024, %321 ]
  br label %324

324:                                              ; preds = %322, %315
  %325 = phi i32 [ 1024, %315 ], [ %323, %322 ]
  %326 = sext i32 %325 to i64
  %327 = load i32, ptr %3, align 4, !tbaa !5
  %328 = icmp sgt i32 0, %327
  br i1 %328, label %329, label %330

329:                                              ; preds = %324
  br label %338

330:                                              ; preds = %324
  %331 = load i32, ptr %3, align 4, !tbaa !5
  %332 = icmp slt i32 %331, 1024
  br i1 %332, label %333, label %335

333:                                              ; preds = %330
  %334 = load i32, ptr %3, align 4, !tbaa !5
  br label %336

335:                                              ; preds = %330
  br label %336

336:                                              ; preds = %335, %333
  %337 = phi i32 [ %334, %333 ], [ 1024, %335 ]
  br label %338

338:                                              ; preds = %336, %329
  %339 = phi i32 [ 1024, %329 ], [ %337, %336 ]
  %340 = icmp slt i32 1, %339
  br i1 %340, label %341, label %342

341:                                              ; preds = %338
  br label %356

342:                                              ; preds = %338
  %343 = load i32, ptr %3, align 4, !tbaa !5
  %344 = icmp sgt i32 0, %343
  br i1 %344, label %345, label %346

345:                                              ; preds = %342
  br label %354

346:                                              ; preds = %342
  %347 = load i32, ptr %3, align 4, !tbaa !5
  %348 = icmp slt i32 %347, 1024
  br i1 %348, label %349, label %351

349:                                              ; preds = %346
  %350 = load i32, ptr %3, align 4, !tbaa !5
  br label %352

351:                                              ; preds = %346
  br label %352

352:                                              ; preds = %351, %349
  %353 = phi i32 [ %350, %349 ], [ 1024, %351 ]
  br label %354

354:                                              ; preds = %352, %345
  %355 = phi i32 [ 1024, %345 ], [ %353, %352 ]
  br label %356

356:                                              ; preds = %354, %341
  %357 = phi i32 [ 1, %341 ], [ %355, %354 ]
  %358 = sext i32 %357 to i64
  %359 = sub i64 %326, %358
  %360 = load i32, ptr %3, align 4, !tbaa !5
  %361 = icmp sgt i32 0, %360
  br i1 %361, label %362, label %363

362:                                              ; preds = %356
  br label %371

363:                                              ; preds = %356
  %364 = load i32, ptr %3, align 4, !tbaa !5
  %365 = icmp slt i32 %364, 1024
  br i1 %365, label %366, label %368

366:                                              ; preds = %363
  %367 = load i32, ptr %3, align 4, !tbaa !5
  br label %369

368:                                              ; preds = %363
  br label %369

369:                                              ; preds = %368, %366
  %370 = phi i32 [ %367, %366 ], [ 1024, %368 ]
  br label %371

371:                                              ; preds = %369, %362
  %372 = phi i32 [ 1024, %362 ], [ %370, %369 ]
  %373 = sext i32 %372 to i64
  %374 = load i32, ptr %3, align 4, !tbaa !5
  %375 = icmp sgt i32 0, %374
  br i1 %375, label %376, label %377

376:                                              ; preds = %371
  br label %385

377:                                              ; preds = %371
  %378 = load i32, ptr %3, align 4, !tbaa !5
  %379 = icmp slt i32 %378, 1024
  br i1 %379, label %380, label %382

380:                                              ; preds = %377
  %381 = load i32, ptr %3, align 4, !tbaa !5
  br label %383

382:                                              ; preds = %377
  br label %383

383:                                              ; preds = %382, %380
  %384 = phi i32 [ %381, %380 ], [ 1024, %382 ]
  br label %385

385:                                              ; preds = %383, %376
  %386 = phi i32 [ 1024, %376 ], [ %384, %383 ]
  %387 = icmp slt i32 1, %386
  br i1 %387, label %388, label %389

388:                                              ; preds = %385
  br label %403

389:                                              ; preds = %385
  %390 = load i32, ptr %3, align 4, !tbaa !5
  %391 = icmp sgt i32 0, %390
  br i1 %391, label %392, label %393

392:                                              ; preds = %389
  br label %401

393:                                              ; preds = %389
  %394 = load i32, ptr %3, align 4, !tbaa !5
  %395 = icmp slt i32 %394, 1024
  br i1 %395, label %396, label %398

396:                                              ; preds = %393
  %397 = load i32, ptr %3, align 4, !tbaa !5
  br label %399

398:                                              ; preds = %393
  br label %399

399:                                              ; preds = %398, %396
  %400 = phi i32 [ %397, %396 ], [ 1024, %398 ]
  br label %401

401:                                              ; preds = %399, %392
  %402 = phi i32 [ 1024, %392 ], [ %400, %399 ]
  br label %403

403:                                              ; preds = %401, %388
  %404 = phi i32 [ 1, %388 ], [ %402, %401 ]
  %405 = sext i32 %404 to i64
  %406 = sub i64 %373, %405
  %407 = lshr i64 %406, 1
  %408 = or i64 %359, %407
  %409 = lshr i64 %408, 2
  %410 = or i64 %312, %409
  %411 = lshr i64 %410, 4
  %412 = or i64 %216, %411
  %413 = load i32, ptr %3, align 4, !tbaa !5
  %414 = icmp sgt i32 0, %413
  br i1 %414, label %415, label %416

415:                                              ; preds = %403
  br label %424

416:                                              ; preds = %403
  %417 = load i32, ptr %3, align 4, !tbaa !5
  %418 = icmp slt i32 %417, 1024
  br i1 %418, label %419, label %421

419:                                              ; preds = %416
  %420 = load i32, ptr %3, align 4, !tbaa !5
  br label %422

421:                                              ; preds = %416
  br label %422

422:                                              ; preds = %421, %419
  %423 = phi i32 [ %420, %419 ], [ 1024, %421 ]
  br label %424

424:                                              ; preds = %422, %415
  %425 = phi i32 [ 1024, %415 ], [ %423, %422 ]
  %426 = sext i32 %425 to i64
  %427 = load i32, ptr %3, align 4, !tbaa !5
  %428 = icmp sgt i32 0, %427
  br i1 %428, label %429, label %430

429:                                              ; preds = %424
  br label %438

430:                                              ; preds = %424
  %431 = load i32, ptr %3, align 4, !tbaa !5
  %432 = icmp slt i32 %431, 1024
  br i1 %432, label %433, label %435

433:                                              ; preds = %430
  %434 = load i32, ptr %3, align 4, !tbaa !5
  br label %436

435:                                              ; preds = %430
  br label %436

436:                                              ; preds = %435, %433
  %437 = phi i32 [ %434, %433 ], [ 1024, %435 ]
  br label %438

438:                                              ; preds = %436, %429
  %439 = phi i32 [ 1024, %429 ], [ %437, %436 ]
  %440 = icmp slt i32 1, %439
  br i1 %440, label %441, label %442

441:                                              ; preds = %438
  br label %456

442:                                              ; preds = %438
  %443 = load i32, ptr %3, align 4, !tbaa !5
  %444 = icmp sgt i32 0, %443
  br i1 %444, label %445, label %446

445:                                              ; preds = %442
  br label %454

446:                                              ; preds = %442
  %447 = load i32, ptr %3, align 4, !tbaa !5
  %448 = icmp slt i32 %447, 1024
  br i1 %448, label %449, label %451

449:                                              ; preds = %446
  %450 = load i32, ptr %3, align 4, !tbaa !5
  br label %452

451:                                              ; preds = %446
  br label %452

452:                                              ; preds = %451, %449
  %453 = phi i32 [ %450, %449 ], [ 1024, %451 ]
  br label %454

454:                                              ; preds = %452, %445
  %455 = phi i32 [ 1024, %445 ], [ %453, %452 ]
  br label %456

456:                                              ; preds = %454, %441
  %457 = phi i32 [ 1, %441 ], [ %455, %454 ]
  %458 = sext i32 %457 to i64
  %459 = sub i64 %426, %458
  %460 = load i32, ptr %3, align 4, !tbaa !5
  %461 = icmp sgt i32 0, %460
  br i1 %461, label %462, label %463

462:                                              ; preds = %456
  br label %471

463:                                              ; preds = %456
  %464 = load i32, ptr %3, align 4, !tbaa !5
  %465 = icmp slt i32 %464, 1024
  br i1 %465, label %466, label %468

466:                                              ; preds = %463
  %467 = load i32, ptr %3, align 4, !tbaa !5
  br label %469

468:                                              ; preds = %463
  br label %469

469:                                              ; preds = %468, %466
  %470 = phi i32 [ %467, %466 ], [ 1024, %468 ]
  br label %471

471:                                              ; preds = %469, %462
  %472 = phi i32 [ 1024, %462 ], [ %470, %469 ]
  %473 = sext i32 %472 to i64
  %474 = load i32, ptr %3, align 4, !tbaa !5
  %475 = icmp sgt i32 0, %474
  br i1 %475, label %476, label %477

476:                                              ; preds = %471
  br label %485

477:                                              ; preds = %471
  %478 = load i32, ptr %3, align 4, !tbaa !5
  %479 = icmp slt i32 %478, 1024
  br i1 %479, label %480, label %482

480:                                              ; preds = %477
  %481 = load i32, ptr %3, align 4, !tbaa !5
  br label %483

482:                                              ; preds = %477
  br label %483

483:                                              ; preds = %482, %480
  %484 = phi i32 [ %481, %480 ], [ 1024, %482 ]
  br label %485

485:                                              ; preds = %483, %476
  %486 = phi i32 [ 1024, %476 ], [ %484, %483 ]
  %487 = icmp slt i32 1, %486
  br i1 %487, label %488, label %489

488:                                              ; preds = %485
  br label %503

489:                                              ; preds = %485
  %490 = load i32, ptr %3, align 4, !tbaa !5
  %491 = icmp sgt i32 0, %490
  br i1 %491, label %492, label %493

492:                                              ; preds = %489
  br label %501

493:                                              ; preds = %489
  %494 = load i32, ptr %3, align 4, !tbaa !5
  %495 = icmp slt i32 %494, 1024
  br i1 %495, label %496, label %498

496:                                              ; preds = %493
  %497 = load i32, ptr %3, align 4, !tbaa !5
  br label %499

498:                                              ; preds = %493
  br label %499

499:                                              ; preds = %498, %496
  %500 = phi i32 [ %497, %496 ], [ 1024, %498 ]
  br label %501

501:                                              ; preds = %499, %492
  %502 = phi i32 [ 1024, %492 ], [ %500, %499 ]
  br label %503

503:                                              ; preds = %501, %488
  %504 = phi i32 [ 1, %488 ], [ %502, %501 ]
  %505 = sext i32 %504 to i64
  %506 = sub i64 %473, %505
  %507 = lshr i64 %506, 1
  %508 = or i64 %459, %507
  %509 = load i32, ptr %3, align 4, !tbaa !5
  %510 = icmp sgt i32 0, %509
  br i1 %510, label %511, label %512

511:                                              ; preds = %503
  br label %520

512:                                              ; preds = %503
  %513 = load i32, ptr %3, align 4, !tbaa !5
  %514 = icmp slt i32 %513, 1024
  br i1 %514, label %515, label %517

515:                                              ; preds = %512
  %516 = load i32, ptr %3, align 4, !tbaa !5
  br label %518

517:                                              ; preds = %512
  br label %518

518:                                              ; preds = %517, %515
  %519 = phi i32 [ %516, %515 ], [ 1024, %517 ]
  br label %520

520:                                              ; preds = %518, %511
  %521 = phi i32 [ 1024, %511 ], [ %519, %518 ]
  %522 = sext i32 %521 to i64
  %523 = load i32, ptr %3, align 4, !tbaa !5
  %524 = icmp sgt i32 0, %523
  br i1 %524, label %525, label %526

525:                                              ; preds = %520
  br label %534

526:                                              ; preds = %520
  %527 = load i32, ptr %3, align 4, !tbaa !5
  %528 = icmp slt i32 %527, 1024
  br i1 %528, label %529, label %531

529:                                              ; preds = %526
  %530 = load i32, ptr %3, align 4, !tbaa !5
  br label %532

531:                                              ; preds = %526
  br label %532

532:                                              ; preds = %531, %529
  %533 = phi i32 [ %530, %529 ], [ 1024, %531 ]
  br label %534

534:                                              ; preds = %532, %525
  %535 = phi i32 [ 1024, %525 ], [ %533, %532 ]
  %536 = icmp slt i32 1, %535
  br i1 %536, label %537, label %538

537:                                              ; preds = %534
  br label %552

538:                                              ; preds = %534
  %539 = load i32, ptr %3, align 4, !tbaa !5
  %540 = icmp sgt i32 0, %539
  br i1 %540, label %541, label %542

541:                                              ; preds = %538
  br label %550

542:                                              ; preds = %538
  %543 = load i32, ptr %3, align 4, !tbaa !5
  %544 = icmp slt i32 %543, 1024
  br i1 %544, label %545, label %547

545:                                              ; preds = %542
  %546 = load i32, ptr %3, align 4, !tbaa !5
  br label %548

547:                                              ; preds = %542
  br label %548

548:                                              ; preds = %547, %545
  %549 = phi i32 [ %546, %545 ], [ 1024, %547 ]
  br label %550

550:                                              ; preds = %548, %541
  %551 = phi i32 [ 1024, %541 ], [ %549, %548 ]
  br label %552

552:                                              ; preds = %550, %537
  %553 = phi i32 [ 1, %537 ], [ %551, %550 ]
  %554 = sext i32 %553 to i64
  %555 = sub i64 %522, %554
  %556 = load i32, ptr %3, align 4, !tbaa !5
  %557 = icmp sgt i32 0, %556
  br i1 %557, label %558, label %559

558:                                              ; preds = %552
  br label %567

559:                                              ; preds = %552
  %560 = load i32, ptr %3, align 4, !tbaa !5
  %561 = icmp slt i32 %560, 1024
  br i1 %561, label %562, label %564

562:                                              ; preds = %559
  %563 = load i32, ptr %3, align 4, !tbaa !5
  br label %565

564:                                              ; preds = %559
  br label %565

565:                                              ; preds = %564, %562
  %566 = phi i32 [ %563, %562 ], [ 1024, %564 ]
  br label %567

567:                                              ; preds = %565, %558
  %568 = phi i32 [ 1024, %558 ], [ %566, %565 ]
  %569 = sext i32 %568 to i64
  %570 = load i32, ptr %3, align 4, !tbaa !5
  %571 = icmp sgt i32 0, %570
  br i1 %571, label %572, label %573

572:                                              ; preds = %567
  br label %581

573:                                              ; preds = %567
  %574 = load i32, ptr %3, align 4, !tbaa !5
  %575 = icmp slt i32 %574, 1024
  br i1 %575, label %576, label %578

576:                                              ; preds = %573
  %577 = load i32, ptr %3, align 4, !tbaa !5
  br label %579

578:                                              ; preds = %573
  br label %579

579:                                              ; preds = %578, %576
  %580 = phi i32 [ %577, %576 ], [ 1024, %578 ]
  br label %581

581:                                              ; preds = %579, %572
  %582 = phi i32 [ 1024, %572 ], [ %580, %579 ]
  %583 = icmp slt i32 1, %582
  br i1 %583, label %584, label %585

584:                                              ; preds = %581
  br label %599

585:                                              ; preds = %581
  %586 = load i32, ptr %3, align 4, !tbaa !5
  %587 = icmp sgt i32 0, %586
  br i1 %587, label %588, label %589

588:                                              ; preds = %585
  br label %597

589:                                              ; preds = %585
  %590 = load i32, ptr %3, align 4, !tbaa !5
  %591 = icmp slt i32 %590, 1024
  br i1 %591, label %592, label %594

592:                                              ; preds = %589
  %593 = load i32, ptr %3, align 4, !tbaa !5
  br label %595

594:                                              ; preds = %589
  br label %595

595:                                              ; preds = %594, %592
  %596 = phi i32 [ %593, %592 ], [ 1024, %594 ]
  br label %597

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

599:                                              ; preds = %597, %584
  %600 = phi i32 [ 1, %584 ], [ %598, %597 ]
  %601 = sext i32 %600 to i64
  %602 = sub i64 %569, %601
  %603 = lshr i64 %602, 1
  %604 = or i64 %555, %603
  %605 = lshr i64 %604, 2
  %606 = or i64 %508, %605
  %607 = load i32, ptr %3, align 4, !tbaa !5
  %608 = icmp sgt i32 0, %607
  br i1 %608, label %609, label %610

609:                                              ; preds = %599
  br label %618

610:                                              ; preds = %599
  %611 = load i32, ptr %3, align 4, !tbaa !5
  %612 = icmp slt i32 %611, 1024
  br i1 %612, label %613, label %615

613:                                              ; preds = %610
  %614 = load i32, ptr %3, align 4, !tbaa !5
  br label %616

615:                                              ; preds = %610
  br label %616

616:                                              ; preds = %615, %613
  %617 = phi i32 [ %614, %613 ], [ 1024, %615 ]
  br label %618

618:                                              ; preds = %616, %609
  %619 = phi i32 [ 1024, %609 ], [ %617, %616 ]
  %620 = sext i32 %619 to i64
  %621 = load i32, ptr %3, align 4, !tbaa !5
  %622 = icmp sgt i32 0, %621
  br i1 %622, label %623, label %624

623:                                              ; preds = %618
  br label %632

624:                                              ; preds = %618
  %625 = load i32, ptr %3, align 4, !tbaa !5
  %626 = icmp slt i32 %625, 1024
  br i1 %626, label %627, label %629

627:                                              ; preds = %624
  %628 = load i32, ptr %3, align 4, !tbaa !5
  br label %630

629:                                              ; preds = %624
  br label %630

630:                                              ; preds = %629, %627
  %631 = phi i32 [ %628, %627 ], [ 1024, %629 ]
  br label %632

632:                                              ; preds = %630, %623
  %633 = phi i32 [ 1024, %623 ], [ %631, %630 ]
  %634 = icmp slt i32 1, %633
  br i1 %634, label %635, label %636

635:                                              ; preds = %632
  br label %650

636:                                              ; preds = %632
  %637 = load i32, ptr %3, align 4, !tbaa !5
  %638 = icmp sgt i32 0, %637
  br i1 %638, label %639, label %640

639:                                              ; preds = %636
  br label %648

640:                                              ; preds = %636
  %641 = load i32, ptr %3, align 4, !tbaa !5
  %642 = icmp slt i32 %641, 1024
  br i1 %642, label %643, label %645

643:                                              ; preds = %640
  %644 = load i32, ptr %3, align 4, !tbaa !5
  br label %646

645:                                              ; preds = %640
  br label %646

646:                                              ; preds = %645, %643
  %647 = phi i32 [ %644, %643 ], [ 1024, %645 ]
  br label %648

648:                                              ; preds = %646, %639
  %649 = phi i32 [ 1024, %639 ], [ %647, %646 ]
  br label %650

650:                                              ; preds = %648, %635
  %651 = phi i32 [ 1, %635 ], [ %649, %648 ]
  %652 = sext i32 %651 to i64
  %653 = sub i64 %620, %652
  %654 = load i32, ptr %3, align 4, !tbaa !5
  %655 = icmp sgt i32 0, %654
  br i1 %655, label %656, label %657

656:                                              ; preds = %650
  br label %665

657:                                              ; preds = %650
  %658 = load i32, ptr %3, align 4, !tbaa !5
  %659 = icmp slt i32 %658, 1024
  br i1 %659, label %660, label %662

660:                                              ; preds = %657
  %661 = load i32, ptr %3, align 4, !tbaa !5
  br label %663

662:                                              ; preds = %657
  br label %663

663:                                              ; preds = %662, %660
  %664 = phi i32 [ %661, %660 ], [ 1024, %662 ]
  br label %665

665:                                              ; preds = %663, %656
  %666 = phi i32 [ 1024, %656 ], [ %664, %663 ]
  %667 = sext i32 %666 to i64
  %668 = load i32, ptr %3, align 4, !tbaa !5
  %669 = icmp sgt i32 0, %668
  br i1 %669, label %670, label %671

670:                                              ; preds = %665
  br label %679

671:                                              ; preds = %665
  %672 = load i32, ptr %3, align 4, !tbaa !5
  %673 = icmp slt i32 %672, 1024
  br i1 %673, label %674, label %676

674:                                              ; preds = %671
  %675 = load i32, ptr %3, align 4, !tbaa !5
  br label %677

676:                                              ; preds = %671
  br label %677

677:                                              ; preds = %676, %674
  %678 = phi i32 [ %675, %674 ], [ 1024, %676 ]
  br label %679

679:                                              ; preds = %677, %670
  %680 = phi i32 [ 1024, %670 ], [ %678, %677 ]
  %681 = icmp slt i32 1, %680
  br i1 %681, label %682, label %683

682:                                              ; preds = %679
  br label %697

683:                                              ; preds = %679
  %684 = load i32, ptr %3, align 4, !tbaa !5
  %685 = icmp sgt i32 0, %684
  br i1 %685, label %686, label %687

686:                                              ; preds = %683
  br label %695

687:                                              ; preds = %683
  %688 = load i32, ptr %3, align 4, !tbaa !5
  %689 = icmp slt i32 %688, 1024
  br i1 %689, label %690, label %692

690:                                              ; preds = %687
  %691 = load i32, ptr %3, align 4, !tbaa !5
  br label %693

692:                                              ; preds = %687
  br label %693

693:                                              ; preds = %692, %690
  %694 = phi i32 [ %691, %690 ], [ 1024, %692 ]
  br label %695

695:                                              ; preds = %693, %686
  %696 = phi i32 [ 1024, %686 ], [ %694, %693 ]
  br label %697

697:                                              ; preds = %695, %682
  %698 = phi i32 [ 1, %682 ], [ %696, %695 ]
  %699 = sext i32 %698 to i64
  %700 = sub i64 %667, %699
  %701 = lshr i64 %700, 1
  %702 = or i64 %653, %701
  %703 = load i32, ptr %3, align 4, !tbaa !5
  %704 = icmp sgt i32 0, %703
  br i1 %704, label %705, label %706

705:                                              ; preds = %697
  br label %714

706:                                              ; preds = %697
  %707 = load i32, ptr %3, align 4, !tbaa !5
  %708 = icmp slt i32 %707, 1024
  br i1 %708, label %709, label %711

709:                                              ; preds = %706
  %710 = load i32, ptr %3, align 4, !tbaa !5
  br label %712

711:                                              ; preds = %706
  br label %712

712:                                              ; preds = %711, %709
  %713 = phi i32 [ %710, %709 ], [ 1024, %711 ]
  br label %714

714:                                              ; preds = %712, %705
  %715 = phi i32 [ 1024, %705 ], [ %713, %712 ]
  %716 = sext i32 %715 to i64
  %717 = load i32, ptr %3, align 4, !tbaa !5
  %718 = icmp sgt i32 0, %717
  br i1 %718, label %719, label %720

719:                                              ; preds = %714
  br label %728

720:                                              ; preds = %714
  %721 = load i32, ptr %3, align 4, !tbaa !5
  %722 = icmp slt i32 %721, 1024
  br i1 %722, label %723, label %725

723:                                              ; preds = %720
  %724 = load i32, ptr %3, align 4, !tbaa !5
  br label %726

725:                                              ; preds = %720
  br label %726

726:                                              ; preds = %725, %723
  %727 = phi i32 [ %724, %723 ], [ 1024, %725 ]
  br label %728

728:                                              ; preds = %726, %719
  %729 = phi i32 [ 1024, %719 ], [ %727, %726 ]
  %730 = icmp slt i32 1, %729
  br i1 %730, label %731, label %732

731:                                              ; preds = %728
  br label %746

732:                                              ; preds = %728
  %733 = load i32, ptr %3, align 4, !tbaa !5
  %734 = icmp sgt i32 0, %733
  br i1 %734, label %735, label %736

735:                                              ; preds = %732
  br label %744

736:                                              ; preds = %732
  %737 = load i32, ptr %3, align 4, !tbaa !5
  %738 = icmp slt i32 %737, 1024
  br i1 %738, label %739, label %741

739:                                              ; preds = %736
  %740 = load i32, ptr %3, align 4, !tbaa !5
  br label %742

741:                                              ; preds = %736
  br label %742

742:                                              ; preds = %741, %739
  %743 = phi i32 [ %740, %739 ], [ 1024, %741 ]
  br label %744

744:                                              ; preds = %742, %735
  %745 = phi i32 [ 1024, %735 ], [ %743, %742 ]
  br label %746

746:                                              ; preds = %744, %731
  %747 = phi i32 [ 1, %731 ], [ %745, %744 ]
  %748 = sext i32 %747 to i64
  %749 = sub i64 %716, %748
  %750 = load i32, ptr %3, align 4, !tbaa !5
  %751 = icmp sgt i32 0, %750
  br i1 %751, label %752, label %753

752:                                              ; preds = %746
  br label %761

753:                                              ; preds = %746
  %754 = load i32, ptr %3, align 4, !tbaa !5
  %755 = icmp slt i32 %754, 1024
  br i1 %755, label %756, label %758

756:                                              ; preds = %753
  %757 = load i32, ptr %3, align 4, !tbaa !5
  br label %759

758:                                              ; preds = %753
  br label %759

759:                                              ; preds = %758, %756
  %760 = phi i32 [ %757, %756 ], [ 1024, %758 ]
  br label %761

761:                                              ; preds = %759, %752
  %762 = phi i32 [ 1024, %752 ], [ %760, %759 ]
  %763 = sext i32 %762 to i64
  %764 = load i32, ptr %3, align 4, !tbaa !5
  %765 = icmp sgt i32 0, %764
  br i1 %765, label %766, label %767

766:                                              ; preds = %761
  br label %775

767:                                              ; preds = %761
  %768 = load i32, ptr %3, align 4, !tbaa !5
  %769 = icmp slt i32 %768, 1024
  br i1 %769, label %770, label %772

770:                                              ; preds = %767
  %771 = load i32, ptr %3, align 4, !tbaa !5
  br label %773

772:                                              ; preds = %767
  br label %773

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

775:                                              ; preds = %773, %766
  %776 = phi i32 [ 1024, %766 ], [ %774, %773 ]
  %777 = icmp slt i32 1, %776
  br i1 %777, label %778, label %779

778:                                              ; preds = %775
  br label %793

779:                                              ; preds = %775
  %780 = load i32, ptr %3, align 4, !tbaa !5
  %781 = icmp sgt i32 0, %780
  br i1 %781, label %782, label %783

782:                                              ; preds = %779
  br label %791

783:                                              ; preds = %779
  %784 = load i32, ptr %3, align 4, !tbaa !5
  %785 = icmp slt i32 %784, 1024
  br i1 %785, label %786, label %788

786:                                              ; preds = %783
  %787 = load i32, ptr %3, align 4, !tbaa !5
  br label %789

788:                                              ; preds = %783
  br label %789

789:                                              ; preds = %788, %786
  %790 = phi i32 [ %787, %786 ], [ 1024, %788 ]
  br label %791

791:                                              ; preds = %789, %782
  %792 = phi i32 [ 1024, %782 ], [ %790, %789 ]
  br label %793

793:                                              ; preds = %791, %778
  %794 = phi i32 [ 1, %778 ], [ %792, %791 ]
  %795 = sext i32 %794 to i64
  %796 = sub i64 %763, %795
  %797 = lshr i64 %796, 1
  %798 = or i64 %749, %797
  %799 = lshr i64 %798, 2
  %800 = or i64 %702, %799
  %801 = lshr i64 %800, 4
  %802 = or i64 %606, %801
  %803 = lshr i64 %802, 8
  %804 = or i64 %412, %803
  %805 = load i32, ptr %3, align 4, !tbaa !5
  %806 = icmp sgt i32 0, %805
  br i1 %806, label %807, label %808

807:                                              ; preds = %793
  br label %816

808:                                              ; preds = %793
  %809 = load i32, ptr %3, align 4, !tbaa !5
  %810 = icmp slt i32 %809, 1024
  br i1 %810, label %811, label %813

811:                                              ; preds = %808
  %812 = load i32, ptr %3, align 4, !tbaa !5
  br label %814

813:                                              ; preds = %808
  br label %814

814:                                              ; preds = %813, %811
  %815 = phi i32 [ %812, %811 ], [ 1024, %813 ]
  br label %816

816:                                              ; preds = %814, %807
  %817 = phi i32 [ 1024, %807 ], [ %815, %814 ]
  %818 = sext i32 %817 to i64
  %819 = load i32, ptr %3, align 4, !tbaa !5
  %820 = icmp sgt i32 0, %819
  br i1 %820, label %821, label %822

821:                                              ; preds = %816
  br label %830

822:                                              ; preds = %816
  %823 = load i32, ptr %3, align 4, !tbaa !5
  %824 = icmp slt i32 %823, 1024
  br i1 %824, label %825, label %827

825:                                              ; preds = %822
  %826 = load i32, ptr %3, align 4, !tbaa !5
  br label %828

827:                                              ; preds = %822
  br label %828

828:                                              ; preds = %827, %825
  %829 = phi i32 [ %826, %825 ], [ 1024, %827 ]
  br label %830

830:                                              ; preds = %828, %821
  %831 = phi i32 [ 1024, %821 ], [ %829, %828 ]
  %832 = icmp slt i32 1, %831
  br i1 %832, label %833, label %834

833:                                              ; preds = %830
  br label %848

834:                                              ; preds = %830
  %835 = load i32, ptr %3, align 4, !tbaa !5
  %836 = icmp sgt i32 0, %835
  br i1 %836, label %837, label %838

837:                                              ; preds = %834
  br label %846

838:                                              ; preds = %834
  %839 = load i32, ptr %3, align 4, !tbaa !5
  %840 = icmp slt i32 %839, 1024
  br i1 %840, label %841, label %843

841:                                              ; preds = %838
  %842 = load i32, ptr %3, align 4, !tbaa !5
  br label %844

843:                                              ; preds = %838
  br label %844

844:                                              ; preds = %843, %841
  %845 = phi i32 [ %842, %841 ], [ 1024, %843 ]
  br label %846

846:                                              ; preds = %844, %837
  %847 = phi i32 [ 1024, %837 ], [ %845, %844 ]
  br label %848

848:                                              ; preds = %846, %833
  %849 = phi i32 [ 1, %833 ], [ %847, %846 ]
  %850 = sext i32 %849 to i64
  %851 = sub i64 %818, %850
  %852 = load i32, ptr %3, align 4, !tbaa !5
  %853 = icmp sgt i32 0, %852
  br i1 %853, label %854, label %855

854:                                              ; preds = %848
  br label %863

855:                                              ; preds = %848
  %856 = load i32, ptr %3, align 4, !tbaa !5
  %857 = icmp slt i32 %856, 1024
  br i1 %857, label %858, label %860

858:                                              ; preds = %855
  %859 = load i32, ptr %3, align 4, !tbaa !5
  br label %861

860:                                              ; preds = %855
  br label %861

861:                                              ; preds = %860, %858
  %862 = phi i32 [ %859, %858 ], [ 1024, %860 ]
  br label %863

863:                                              ; preds = %861, %854
  %864 = phi i32 [ 1024, %854 ], [ %862, %861 ]
  %865 = sext i32 %864 to i64
  %866 = load i32, ptr %3, align 4, !tbaa !5
  %867 = icmp sgt i32 0, %866
  br i1 %867, label %868, label %869

868:                                              ; preds = %863
  br label %877

869:                                              ; preds = %863
  %870 = load i32, ptr %3, align 4, !tbaa !5
  %871 = icmp slt i32 %870, 1024
  br i1 %871, label %872, label %874

872:                                              ; preds = %869
  %873 = load i32, ptr %3, align 4, !tbaa !5
  br label %875

874:                                              ; preds = %869
  br label %875

875:                                              ; preds = %874, %872
  %876 = phi i32 [ %873, %872 ], [ 1024, %874 ]
  br label %877

877:                                              ; preds = %875, %868
  %878 = phi i32 [ 1024, %868 ], [ %876, %875 ]
  %879 = icmp slt i32 1, %878
  br i1 %879, label %880, label %881

880:                                              ; preds = %877
  br label %895

881:                                              ; preds = %877
  %882 = load i32, ptr %3, align 4, !tbaa !5
  %883 = icmp sgt i32 0, %882
  br i1 %883, label %884, label %885

884:                                              ; preds = %881
  br label %893

885:                                              ; preds = %881
  %886 = load i32, ptr %3, align 4, !tbaa !5
  %887 = icmp slt i32 %886, 1024
  br i1 %887, label %888, label %890

888:                                              ; preds = %885
  %889 = load i32, ptr %3, align 4, !tbaa !5
  br label %891

890:                                              ; preds = %885
  br label %891

891:                                              ; preds = %890, %888
  %892 = phi i32 [ %889, %888 ], [ 1024, %890 ]
  br label %893

893:                                              ; preds = %891, %884
  %894 = phi i32 [ 1024, %884 ], [ %892, %891 ]
  br label %895

895:                                              ; preds = %893, %880
  %896 = phi i32 [ 1, %880 ], [ %894, %893 ]
  %897 = sext i32 %896 to i64
  %898 = sub i64 %865, %897
  %899 = lshr i64 %898, 1
  %900 = or i64 %851, %899
  %901 = load i32, ptr %3, align 4, !tbaa !5
  %902 = icmp sgt i32 0, %901
  br i1 %902, label %903, label %904

903:                                              ; preds = %895
  br label %912

904:                                              ; preds = %895
  %905 = load i32, ptr %3, align 4, !tbaa !5
  %906 = icmp slt i32 %905, 1024
  br i1 %906, label %907, label %909

907:                                              ; preds = %904
  %908 = load i32, ptr %3, align 4, !tbaa !5
  br label %910

909:                                              ; preds = %904
  br label %910

910:                                              ; preds = %909, %907
  %911 = phi i32 [ %908, %907 ], [ 1024, %909 ]
  br label %912

912:                                              ; preds = %910, %903
  %913 = phi i32 [ 1024, %903 ], [ %911, %910 ]
  %914 = sext i32 %913 to i64
  %915 = load i32, ptr %3, align 4, !tbaa !5
  %916 = icmp sgt i32 0, %915
  br i1 %916, label %917, label %918

917:                                              ; preds = %912
  br label %926

918:                                              ; preds = %912
  %919 = load i32, ptr %3, align 4, !tbaa !5
  %920 = icmp slt i32 %919, 1024
  br i1 %920, label %921, label %923

921:                                              ; preds = %918
  %922 = load i32, ptr %3, align 4, !tbaa !5
  br label %924

923:                                              ; preds = %918
  br label %924

924:                                              ; preds = %923, %921
  %925 = phi i32 [ %922, %921 ], [ 1024, %923 ]
  br label %926

926:                                              ; preds = %924, %917
  %927 = phi i32 [ 1024, %917 ], [ %925, %924 ]
  %928 = icmp slt i32 1, %927
  br i1 %928, label %929, label %930

929:                                              ; preds = %926
  br label %944

930:                                              ; preds = %926
  %931 = load i32, ptr %3, align 4, !tbaa !5
  %932 = icmp sgt i32 0, %931
  br i1 %932, label %933, label %934

933:                                              ; preds = %930
  br label %942

934:                                              ; preds = %930
  %935 = load i32, ptr %3, align 4, !tbaa !5
  %936 = icmp slt i32 %935, 1024
  br i1 %936, label %937, label %939

937:                                              ; preds = %934
  %938 = load i32, ptr %3, align 4, !tbaa !5
  br label %940

939:                                              ; preds = %934
  br label %940

940:                                              ; preds = %939, %937
  %941 = phi i32 [ %938, %937 ], [ 1024, %939 ]
  br label %942

942:                                              ; preds = %940, %933
  %943 = phi i32 [ 1024, %933 ], [ %941, %940 ]
  br label %944

944:                                              ; preds = %942, %929
  %945 = phi i32 [ 1, %929 ], [ %943, %942 ]
  %946 = sext i32 %945 to i64
  %947 = sub i64 %914, %946
  %948 = load i32, ptr %3, align 4, !tbaa !5
  %949 = icmp sgt i32 0, %948
  br i1 %949, label %950, label %951

950:                                              ; preds = %944
  br label %959

951:                                              ; preds = %944
  %952 = load i32, ptr %3, align 4, !tbaa !5
  %953 = icmp slt i32 %952, 1024
  br i1 %953, label %954, label %956

954:                                              ; preds = %951
  %955 = load i32, ptr %3, align 4, !tbaa !5
  br label %957

956:                                              ; preds = %951
  br label %957

957:                                              ; preds = %956, %954
  %958 = phi i32 [ %955, %954 ], [ 1024, %956 ]
  br label %959

959:                                              ; preds = %957, %950
  %960 = phi i32 [ 1024, %950 ], [ %958, %957 ]
  %961 = sext i32 %960 to i64
  %962 = load i32, ptr %3, align 4, !tbaa !5
  %963 = icmp sgt i32 0, %962
  br i1 %963, label %964, label %965

964:                                              ; preds = %959
  br label %973

965:                                              ; preds = %959
  %966 = load i32, ptr %3, align 4, !tbaa !5
  %967 = icmp slt i32 %966, 1024
  br i1 %967, label %968, label %970

968:                                              ; preds = %965
  %969 = load i32, ptr %3, align 4, !tbaa !5
  br label %971

970:                                              ; preds = %965
  br label %971

971:                                              ; preds = %970, %968
  %972 = phi i32 [ %969, %968 ], [ 1024, %970 ]
  br label %973

973:                                              ; preds = %971, %964
  %974 = phi i32 [ 1024, %964 ], [ %972, %971 ]
  %975 = icmp slt i32 1, %974
  br i1 %975, label %976, label %977

976:                                              ; preds = %973
  br label %991

977:                                              ; preds = %973
  %978 = load i32, ptr %3, align 4, !tbaa !5
  %979 = icmp sgt i32 0, %978
  br i1 %979, label %980, label %981

980:                                              ; preds = %977
  br label %989

981:                                              ; preds = %977
  %982 = load i32, ptr %3, align 4, !tbaa !5
  %983 = icmp slt i32 %982, 1024
  br i1 %983, label %984, label %986

984:                                              ; preds = %981
  %985 = load i32, ptr %3, align 4, !tbaa !5
  br label %987

986:                                              ; preds = %981
  br label %987

987:                                              ; preds = %986, %984
  %988 = phi i32 [ %985, %984 ], [ 1024, %986 ]
  br label %989

989:                                              ; preds = %987, %980
  %990 = phi i32 [ 1024, %980 ], [ %988, %987 ]
  br label %991

991:                                              ; preds = %989, %976
  %992 = phi i32 [ 1, %976 ], [ %990, %989 ]
  %993 = sext i32 %992 to i64
  %994 = sub i64 %961, %993
  %995 = lshr i64 %994, 1
  %996 = or i64 %947, %995
  %997 = lshr i64 %996, 2
  %998 = or i64 %900, %997
  %999 = load i32, ptr %3, align 4, !tbaa !5
  %1000 = icmp sgt i32 0, %999
  br i1 %1000, label %1001, label %1002

1001:                                             ; preds = %991
  br label %1010

1002:                                             ; preds = %991
  %1003 = load i32, ptr %3, align 4, !tbaa !5
  %1004 = icmp slt i32 %1003, 1024
  br i1 %1004, label %1005, label %1007

1005:                                             ; preds = %1002
  %1006 = load i32, ptr %3, align 4, !tbaa !5
  br label %1008

1007:                                             ; preds = %1002
  br label %1008

1008:                                             ; preds = %1007, %1005
  %1009 = phi i32 [ %1006, %1005 ], [ 1024, %1007 ]
  br label %1010

1010:                                             ; preds = %1008, %1001
  %1011 = phi i32 [ 1024, %1001 ], [ %1009, %1008 ]
  %1012 = sext i32 %1011 to i64
  %1013 = load i32, ptr %3, align 4, !tbaa !5
  %1014 = icmp sgt i32 0, %1013
  br i1 %1014, label %1015, label %1016

1015:                                             ; preds = %1010
  br label %1024

1016:                                             ; preds = %1010
  %1017 = load i32, ptr %3, align 4, !tbaa !5
  %1018 = icmp slt i32 %1017, 1024
  br i1 %1018, label %1019, label %1021

1019:                                             ; preds = %1016
  %1020 = load i32, ptr %3, align 4, !tbaa !5
  br label %1022

1021:                                             ; preds = %1016
  br label %1022

1022:                                             ; preds = %1021, %1019
  %1023 = phi i32 [ %1020, %1019 ], [ 1024, %1021 ]
  br label %1024

1024:                                             ; preds = %1022, %1015
  %1025 = phi i32 [ 1024, %1015 ], [ %1023, %1022 ]
  %1026 = icmp slt i32 1, %1025
  br i1 %1026, label %1027, label %1028

1027:                                             ; preds = %1024
  br label %1042

1028:                                             ; preds = %1024
  %1029 = load i32, ptr %3, align 4, !tbaa !5
  %1030 = icmp sgt i32 0, %1029
  br i1 %1030, label %1031, label %1032

1031:                                             ; preds = %1028
  br label %1040

1032:                                             ; preds = %1028
  %1033 = load i32, ptr %3, align 4, !tbaa !5
  %1034 = icmp slt i32 %1033, 1024
  br i1 %1034, label %1035, label %1037

1035:                                             ; preds = %1032
  %1036 = load i32, ptr %3, align 4, !tbaa !5
  br label %1038

1037:                                             ; preds = %1032
  br label %1038

1038:                                             ; preds = %1037, %1035
  %1039 = phi i32 [ %1036, %1035 ], [ 1024, %1037 ]
  br label %1040

1040:                                             ; preds = %1038, %1031
  %1041 = phi i32 [ 1024, %1031 ], [ %1039, %1038 ]
  br label %1042

1042:                                             ; preds = %1040, %1027
  %1043 = phi i32 [ 1, %1027 ], [ %1041, %1040 ]
  %1044 = sext i32 %1043 to i64
  %1045 = sub i64 %1012, %1044
  %1046 = load i32, ptr %3, align 4, !tbaa !5
  %1047 = icmp sgt i32 0, %1046
  br i1 %1047, label %1048, label %1049

1048:                                             ; preds = %1042
  br label %1057

1049:                                             ; preds = %1042
  %1050 = load i32, ptr %3, align 4, !tbaa !5
  %1051 = icmp slt i32 %1050, 1024
  br i1 %1051, label %1052, label %1054

1052:                                             ; preds = %1049
  %1053 = load i32, ptr %3, align 4, !tbaa !5
  br label %1055

1054:                                             ; preds = %1049
  br label %1055

1055:                                             ; preds = %1054, %1052
  %1056 = phi i32 [ %1053, %1052 ], [ 1024, %1054 ]
  br label %1057

1057:                                             ; preds = %1055, %1048
  %1058 = phi i32 [ 1024, %1048 ], [ %1056, %1055 ]
  %1059 = sext i32 %1058 to i64
  %1060 = load i32, ptr %3, align 4, !tbaa !5
  %1061 = icmp sgt i32 0, %1060
  br i1 %1061, label %1062, label %1063

1062:                                             ; preds = %1057
  br label %1071

1063:                                             ; preds = %1057
  %1064 = load i32, ptr %3, align 4, !tbaa !5
  %1065 = icmp slt i32 %1064, 1024
  br i1 %1065, label %1066, label %1068

1066:                                             ; preds = %1063
  %1067 = load i32, ptr %3, align 4, !tbaa !5
  br label %1069

1068:                                             ; preds = %1063
  br label %1069

1069:                                             ; preds = %1068, %1066
  %1070 = phi i32 [ %1067, %1066 ], [ 1024, %1068 ]
  br label %1071

1071:                                             ; preds = %1069, %1062
  %1072 = phi i32 [ 1024, %1062 ], [ %1070, %1069 ]
  %1073 = icmp slt i32 1, %1072
  br i1 %1073, label %1074, label %1075

1074:                                             ; preds = %1071
  br label %1089

1075:                                             ; preds = %1071
  %1076 = load i32, ptr %3, align 4, !tbaa !5
  %1077 = icmp sgt i32 0, %1076
  br i1 %1077, label %1078, label %1079

1078:                                             ; preds = %1075
  br label %1087

1079:                                             ; preds = %1075
  %1080 = load i32, ptr %3, align 4, !tbaa !5
  %1081 = icmp slt i32 %1080, 1024
  br i1 %1081, label %1082, label %1084

1082:                                             ; preds = %1079
  %1083 = load i32, ptr %3, align 4, !tbaa !5
  br label %1085

1084:                                             ; preds = %1079
  br label %1085

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

1087:                                             ; preds = %1085, %1078
  %1088 = phi i32 [ 1024, %1078 ], [ %1086, %1085 ]
  br label %1089

1089:                                             ; preds = %1087, %1074
  %1090 = phi i32 [ 1, %1074 ], [ %1088, %1087 ]
  %1091 = sext i32 %1090 to i64
  %1092 = sub i64 %1059, %1091
  %1093 = lshr i64 %1092, 1
  %1094 = or i64 %1045, %1093
  %1095 = load i32, ptr %3, align 4, !tbaa !5
  %1096 = icmp sgt i32 0, %1095
  br i1 %1096, label %1097, label %1098

1097:                                             ; preds = %1089
  br label %1106

1098:                                             ; preds = %1089
  %1099 = load i32, ptr %3, align 4, !tbaa !5
  %1100 = icmp slt i32 %1099, 1024
  br i1 %1100, label %1101, label %1103

1101:                                             ; preds = %1098
  %1102 = load i32, ptr %3, align 4, !tbaa !5
  br label %1104

1103:                                             ; preds = %1098
  br label %1104

1104:                                             ; preds = %1103, %1101
  %1105 = phi i32 [ %1102, %1101 ], [ 1024, %1103 ]
  br label %1106

1106:                                             ; preds = %1104, %1097
  %1107 = phi i32 [ 1024, %1097 ], [ %1105, %1104 ]
  %1108 = sext i32 %1107 to i64
  %1109 = load i32, ptr %3, align 4, !tbaa !5
  %1110 = icmp sgt i32 0, %1109
  br i1 %1110, label %1111, label %1112

1111:                                             ; preds = %1106
  br label %1120

1112:                                             ; preds = %1106
  %1113 = load i32, ptr %3, align 4, !tbaa !5
  %1114 = icmp slt i32 %1113, 1024
  br i1 %1114, label %1115, label %1117

1115:                                             ; preds = %1112
  %1116 = load i32, ptr %3, align 4, !tbaa !5
  br label %1118

1117:                                             ; preds = %1112
  br label %1118

1118:                                             ; preds = %1117, %1115
  %1119 = phi i32 [ %1116, %1115 ], [ 1024, %1117 ]
  br label %1120

1120:                                             ; preds = %1118, %1111
  %1121 = phi i32 [ 1024, %1111 ], [ %1119, %1118 ]
  %1122 = icmp slt i32 1, %1121
  br i1 %1122, label %1123, label %1124

1123:                                             ; preds = %1120
  br label %1138

1124:                                             ; preds = %1120
  %1125 = load i32, ptr %3, align 4, !tbaa !5
  %1126 = icmp sgt i32 0, %1125
  br i1 %1126, label %1127, label %1128

1127:                                             ; preds = %1124
  br label %1136

1128:                                             ; preds = %1124
  %1129 = load i32, ptr %3, align 4, !tbaa !5
  %1130 = icmp slt i32 %1129, 1024
  br i1 %1130, label %1131, label %1133

1131:                                             ; preds = %1128
  %1132 = load i32, ptr %3, align 4, !tbaa !5
  br label %1134

1133:                                             ; preds = %1128
  br label %1134

1134:                                             ; preds = %1133, %1131
  %1135 = phi i32 [ %1132, %1131 ], [ 1024, %1133 ]
  br label %1136

1136:                                             ; preds = %1134, %1127
  %1137 = phi i32 [ 1024, %1127 ], [ %1135, %1134 ]
  br label %1138

1138:                                             ; preds = %1136, %1123
  %1139 = phi i32 [ 1, %1123 ], [ %1137, %1136 ]
  %1140 = sext i32 %1139 to i64
  %1141 = sub i64 %1108, %1140
  %1142 = load i32, ptr %3, align 4, !tbaa !5
  %1143 = icmp sgt i32 0, %1142
  br i1 %1143, label %1144, label %1145

1144:                                             ; preds = %1138
  br label %1153

1145:                                             ; preds = %1138
  %1146 = load i32, ptr %3, align 4, !tbaa !5
  %1147 = icmp slt i32 %1146, 1024
  br i1 %1147, label %1148, label %1150

1148:                                             ; preds = %1145
  %1149 = load i32, ptr %3, align 4, !tbaa !5
  br label %1151

1150:                                             ; preds = %1145
  br label %1151

1151:                                             ; preds = %1150, %1148
  %1152 = phi i32 [ %1149, %1148 ], [ 1024, %1150 ]
  br label %1153

1153:                                             ; preds = %1151, %1144
  %1154 = phi i32 [ 1024, %1144 ], [ %1152, %1151 ]
  %1155 = sext i32 %1154 to i64
  %1156 = load i32, ptr %3, align 4, !tbaa !5
  %1157 = icmp sgt i32 0, %1156
  br i1 %1157, label %1158, label %1159

1158:                                             ; preds = %1153
  br label %1167

1159:                                             ; preds = %1153
  %1160 = load i32, ptr %3, align 4, !tbaa !5
  %1161 = icmp slt i32 %1160, 1024
  br i1 %1161, label %1162, label %1164

1162:                                             ; preds = %1159
  %1163 = load i32, ptr %3, align 4, !tbaa !5
  br label %1165

1164:                                             ; preds = %1159
  br label %1165

1165:                                             ; preds = %1164, %1162
  %1166 = phi i32 [ %1163, %1162 ], [ 1024, %1164 ]
  br label %1167

1167:                                             ; preds = %1165, %1158
  %1168 = phi i32 [ 1024, %1158 ], [ %1166, %1165 ]
  %1169 = icmp slt i32 1, %1168
  br i1 %1169, label %1170, label %1171

1170:                                             ; preds = %1167
  br label %1185

1171:                                             ; preds = %1167
  %1172 = load i32, ptr %3, align 4, !tbaa !5
  %1173 = icmp sgt i32 0, %1172
  br i1 %1173, label %1174, label %1175

1174:                                             ; preds = %1171
  br label %1183

1175:                                             ; preds = %1171
  %1176 = load i32, ptr %3, align 4, !tbaa !5
  %1177 = icmp slt i32 %1176, 1024
  br i1 %1177, label %1178, label %1180

1178:                                             ; preds = %1175
  %1179 = load i32, ptr %3, align 4, !tbaa !5
  br label %1181

1180:                                             ; preds = %1175
  br label %1181

1181:                                             ; preds = %1180, %1178
  %1182 = phi i32 [ %1179, %1178 ], [ 1024, %1180 ]
  br label %1183

1183:                                             ; preds = %1181, %1174
  %1184 = phi i32 [ 1024, %1174 ], [ %1182, %1181 ]
  br label %1185

1185:                                             ; preds = %1183, %1170
  %1186 = phi i32 [ 1, %1170 ], [ %1184, %1183 ]
  %1187 = sext i32 %1186 to i64
  %1188 = sub i64 %1155, %1187
  %1189 = lshr i64 %1188, 1
  %1190 = or i64 %1141, %1189
  %1191 = lshr i64 %1190, 2
  %1192 = or i64 %1094, %1191
  %1193 = lshr i64 %1192, 4
  %1194 = or i64 %998, %1193
  %1195 = load i32, ptr %3, align 4, !tbaa !5
  %1196 = icmp sgt i32 0, %1195
  br i1 %1196, label %1197, label %1198

1197:                                             ; preds = %1185
  br label %1206

1198:                                             ; preds = %1185
  %1199 = load i32, ptr %3, align 4, !tbaa !5
  %1200 = icmp slt i32 %1199, 1024
  br i1 %1200, label %1201, label %1203

1201:                                             ; preds = %1198
  %1202 = load i32, ptr %3, align 4, !tbaa !5
  br label %1204

1203:                                             ; preds = %1198
  br label %1204

1204:                                             ; preds = %1203, %1201
  %1205 = phi i32 [ %1202, %1201 ], [ 1024, %1203 ]
  br label %1206

1206:                                             ; preds = %1204, %1197
  %1207 = phi i32 [ 1024, %1197 ], [ %1205, %1204 ]
  %1208 = sext i32 %1207 to i64
  %1209 = load i32, ptr %3, align 4, !tbaa !5
  %1210 = icmp sgt i32 0, %1209
  br i1 %1210, label %1211, label %1212

1211:                                             ; preds = %1206
  br label %1220

1212:                                             ; preds = %1206
  %1213 = load i32, ptr %3, align 4, !tbaa !5
  %1214 = icmp slt i32 %1213, 1024
  br i1 %1214, label %1215, label %1217

1215:                                             ; preds = %1212
  %1216 = load i32, ptr %3, align 4, !tbaa !5
  br label %1218

1217:                                             ; preds = %1212
  br label %1218

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

1220:                                             ; preds = %1218, %1211
  %1221 = phi i32 [ 1024, %1211 ], [ %1219, %1218 ]
  %1222 = icmp slt i32 1, %1221
  br i1 %1222, label %1223, label %1224

1223:                                             ; preds = %1220
  br label %1238

1224:                                             ; preds = %1220
  %1225 = load i32, ptr %3, align 4, !tbaa !5
  %1226 = icmp sgt i32 0, %1225
  br i1 %1226, label %1227, label %1228

1227:                                             ; preds = %1224
  br label %1236

1228:                                             ; preds = %1224
  %1229 = load i32, ptr %3, align 4, !tbaa !5
  %1230 = icmp slt i32 %1229, 1024
  br i1 %1230, label %1231, label %1233

1231:                                             ; preds = %1228
  %1232 = load i32, ptr %3, align 4, !tbaa !5
  br label %1234

1233:                                             ; preds = %1228
  br label %1234

1234:                                             ; preds = %1233, %1231
  %1235 = phi i32 [ %1232, %1231 ], [ 1024, %1233 ]
  br label %1236

1236:                                             ; preds = %1234, %1227
  %1237 = phi i32 [ 1024, %1227 ], [ %1235, %1234 ]
  br label %1238

1238:                                             ; preds = %1236, %1223
  %1239 = phi i32 [ 1, %1223 ], [ %1237, %1236 ]
  %1240 = sext i32 %1239 to i64
  %1241 = sub i64 %1208, %1240
  %1242 = load i32, ptr %3, align 4, !tbaa !5
  %1243 = icmp sgt i32 0, %1242
  br i1 %1243, label %1244, label %1245

1244:                                             ; preds = %1238
  br label %1253

1245:                                             ; preds = %1238
  %1246 = load i32, ptr %3, align 4, !tbaa !5
  %1247 = icmp slt i32 %1246, 1024
  br i1 %1247, label %1248, label %1250

1248:                                             ; preds = %1245
  %1249 = load i32, ptr %3, align 4, !tbaa !5
  br label %1251

1250:                                             ; preds = %1245
  br label %1251

1251:                                             ; preds = %1250, %1248
  %1252 = phi i32 [ %1249, %1248 ], [ 1024, %1250 ]
  br label %1253

1253:                                             ; preds = %1251, %1244
  %1254 = phi i32 [ 1024, %1244 ], [ %1252, %1251 ]
  %1255 = sext i32 %1254 to i64
  %1256 = load i32, ptr %3, align 4, !tbaa !5
  %1257 = icmp sgt i32 0, %1256
  br i1 %1257, label %1258, label %1259

1258:                                             ; preds = %1253
  br label %1267

1259:                                             ; preds = %1253
  %1260 = load i32, ptr %3, align 4, !tbaa !5
  %1261 = icmp slt i32 %1260, 1024
  br i1 %1261, label %1262, label %1264

1262:                                             ; preds = %1259
  %1263 = load i32, ptr %3, align 4, !tbaa !5
  br label %1265

1264:                                             ; preds = %1259
  br label %1265

1265:                                             ; preds = %1264, %1262
  %1266 = phi i32 [ %1263, %1262 ], [ 1024, %1264 ]
  br label %1267

1267:                                             ; preds = %1265, %1258
  %1268 = phi i32 [ 1024, %1258 ], [ %1266, %1265 ]
  %1269 = icmp slt i32 1, %1268
  br i1 %1269, label %1270, label %1271

1270:                                             ; preds = %1267
  br label %1285

1271:                                             ; preds = %1267
  %1272 = load i32, ptr %3, align 4, !tbaa !5
  %1273 = icmp sgt i32 0, %1272
  br i1 %1273, label %1274, label %1275

1274:                                             ; preds = %1271
  br label %1283

1275:                                             ; preds = %1271
  %1276 = load i32, ptr %3, align 4, !tbaa !5
  %1277 = icmp slt i32 %1276, 1024
  br i1 %1277, label %1278, label %1280

1278:                                             ; preds = %1275
  %1279 = load i32, ptr %3, align 4, !tbaa !5
  br label %1281

1280:                                             ; preds = %1275
  br label %1281

1281:                                             ; preds = %1280, %1278
  %1282 = phi i32 [ %1279, %1278 ], [ 1024, %1280 ]
  br label %1283

1283:                                             ; preds = %1281, %1274
  %1284 = phi i32 [ 1024, %1274 ], [ %1282, %1281 ]
  br label %1285

1285:                                             ; preds = %1283, %1270
  %1286 = phi i32 [ 1, %1270 ], [ %1284, %1283 ]
  %1287 = sext i32 %1286 to i64
  %1288 = sub i64 %1255, %1287
  %1289 = lshr i64 %1288, 1
  %1290 = or i64 %1241, %1289
  %1291 = load i32, ptr %3, align 4, !tbaa !5
  %1292 = icmp sgt i32 0, %1291
  br i1 %1292, label %1293, label %1294

1293:                                             ; preds = %1285
  br label %1302

1294:                                             ; preds = %1285
  %1295 = load i32, ptr %3, align 4, !tbaa !5
  %1296 = icmp slt i32 %1295, 1024
  br i1 %1296, label %1297, label %1299

1297:                                             ; preds = %1294
  %1298 = load i32, ptr %3, align 4, !tbaa !5
  br label %1300

1299:                                             ; preds = %1294
  br label %1300

1300:                                             ; preds = %1299, %1297
  %1301 = phi i32 [ %1298, %1297 ], [ 1024, %1299 ]
  br label %1302

1302:                                             ; preds = %1300, %1293
  %1303 = phi i32 [ 1024, %1293 ], [ %1301, %1300 ]
  %1304 = sext i32 %1303 to i64
  %1305 = load i32, ptr %3, align 4, !tbaa !5
  %1306 = icmp sgt i32 0, %1305
  br i1 %1306, label %1307, label %1308

1307:                                             ; preds = %1302
  br label %1316

1308:                                             ; preds = %1302
  %1309 = load i32, ptr %3, align 4, !tbaa !5
  %1310 = icmp slt i32 %1309, 1024
  br i1 %1310, label %1311, label %1313

1311:                                             ; preds = %1308
  %1312 = load i32, ptr %3, align 4, !tbaa !5
  br label %1314

1313:                                             ; preds = %1308
  br label %1314

1314:                                             ; preds = %1313, %1311
  %1315 = phi i32 [ %1312, %1311 ], [ 1024, %1313 ]
  br label %1316

1316:                                             ; preds = %1314, %1307
  %1317 = phi i32 [ 1024, %1307 ], [ %1315, %1314 ]
  %1318 = icmp slt i32 1, %1317
  br i1 %1318, label %1319, label %1320

1319:                                             ; preds = %1316
  br label %1334

1320:                                             ; preds = %1316
  %1321 = load i32, ptr %3, align 4, !tbaa !5
  %1322 = icmp sgt i32 0, %1321
  br i1 %1322, label %1323, label %1324

1323:                                             ; preds = %1320
  br label %1332

1324:                                             ; preds = %1320
  %1325 = load i32, ptr %3, align 4, !tbaa !5
  %1326 = icmp slt i32 %1325, 1024
  br i1 %1326, label %1327, label %1329

1327:                                             ; preds = %1324
  %1328 = load i32, ptr %3, align 4, !tbaa !5
  br label %1330

1329:                                             ; preds = %1324
  br label %1330

1330:                                             ; preds = %1329, %1327
  %1331 = phi i32 [ %1328, %1327 ], [ 1024, %1329 ]
  br label %1332

1332:                                             ; preds = %1330, %1323
  %1333 = phi i32 [ 1024, %1323 ], [ %1331, %1330 ]
  br label %1334

1334:                                             ; preds = %1332, %1319
  %1335 = phi i32 [ 1, %1319 ], [ %1333, %1332 ]
  %1336 = sext i32 %1335 to i64
  %1337 = sub i64 %1304, %1336
  %1338 = load i32, ptr %3, align 4, !tbaa !5
  %1339 = icmp sgt i32 0, %1338
  br i1 %1339, label %1340, label %1341

1340:                                             ; preds = %1334
  br label %1349

1341:                                             ; preds = %1334
  %1342 = load i32, ptr %3, align 4, !tbaa !5
  %1343 = icmp slt i32 %1342, 1024
  br i1 %1343, label %1344, label %1346

1344:                                             ; preds = %1341
  %1345 = load i32, ptr %3, align 4, !tbaa !5
  br label %1347

1346:                                             ; preds = %1341
  br label %1347

1347:                                             ; preds = %1346, %1344
  %1348 = phi i32 [ %1345, %1344 ], [ 1024, %1346 ]
  br label %1349

1349:                                             ; preds = %1347, %1340
  %1350 = phi i32 [ 1024, %1340 ], [ %1348, %1347 ]
  %1351 = sext i32 %1350 to i64
  %1352 = load i32, ptr %3, align 4, !tbaa !5
  %1353 = icmp sgt i32 0, %1352
  br i1 %1353, label %1354, label %1355

1354:                                             ; preds = %1349
  br label %1363

1355:                                             ; preds = %1349
  %1356 = load i32, ptr %3, align 4, !tbaa !5
  %1357 = icmp slt i32 %1356, 1024
  br i1 %1357, label %1358, label %1360

1358:                                             ; preds = %1355
  %1359 = load i32, ptr %3, align 4, !tbaa !5
  br label %1361

1360:                                             ; preds = %1355
  br label %1361

1361:                                             ; preds = %1360, %1358
  %1362 = phi i32 [ %1359, %1358 ], [ 1024, %1360 ]
  br label %1363

1363:                                             ; preds = %1361, %1354
  %1364 = phi i32 [ 1024, %1354 ], [ %1362, %1361 ]
  %1365 = icmp slt i32 1, %1364
  br i1 %1365, label %1366, label %1367

1366:                                             ; preds = %1363
  br label %1381

1367:                                             ; preds = %1363
  %1368 = load i32, ptr %3, align 4, !tbaa !5
  %1369 = icmp sgt i32 0, %1368
  br i1 %1369, label %1370, label %1371

1370:                                             ; preds = %1367
  br label %1379

1371:                                             ; preds = %1367
  %1372 = load i32, ptr %3, align 4, !tbaa !5
  %1373 = icmp slt i32 %1372, 1024
  br i1 %1373, label %1374, label %1376

1374:                                             ; preds = %1371
  %1375 = load i32, ptr %3, align 4, !tbaa !5
  br label %1377

1376:                                             ; preds = %1371
  br label %1377

1377:                                             ; preds = %1376, %1374
  %1378 = phi i32 [ %1375, %1374 ], [ 1024, %1376 ]
  br label %1379

1379:                                             ; preds = %1377, %1370
  %1380 = phi i32 [ 1024, %1370 ], [ %1378, %1377 ]
  br label %1381

1381:                                             ; preds = %1379, %1366
  %1382 = phi i32 [ 1, %1366 ], [ %1380, %1379 ]
  %1383 = sext i32 %1382 to i64
  %1384 = sub i64 %1351, %1383
  %1385 = lshr i64 %1384, 1
  %1386 = or i64 %1337, %1385
  %1387 = lshr i64 %1386, 2
  %1388 = or i64 %1290, %1387
  %1389 = load i32, ptr %3, align 4, !tbaa !5
  %1390 = icmp sgt i32 0, %1389
  br i1 %1390, label %1391, label %1392

1391:                                             ; preds = %1381
  br label %1400

1392:                                             ; preds = %1381
  %1393 = load i32, ptr %3, align 4, !tbaa !5
  %1394 = icmp slt i32 %1393, 1024
  br i1 %1394, label %1395, label %1397

1395:                                             ; preds = %1392
  %1396 = load i32, ptr %3, align 4, !tbaa !5
  br label %1398

1397:                                             ; preds = %1392
  br label %1398

1398:                                             ; preds = %1397, %1395
  %1399 = phi i32 [ %1396, %1395 ], [ 1024, %1397 ]
  br label %1400

1400:                                             ; preds = %1398, %1391
  %1401 = phi i32 [ 1024, %1391 ], [ %1399, %1398 ]
  %1402 = sext i32 %1401 to i64
  %1403 = load i32, ptr %3, align 4, !tbaa !5
  %1404 = icmp sgt i32 0, %1403
  br i1 %1404, label %1405, label %1406

1405:                                             ; preds = %1400
  br label %1414

1406:                                             ; preds = %1400
  %1407 = load i32, ptr %3, align 4, !tbaa !5
  %1408 = icmp slt i32 %1407, 1024
  br i1 %1408, label %1409, label %1411

1409:                                             ; preds = %1406
  %1410 = load i32, ptr %3, align 4, !tbaa !5
  br label %1412

1411:                                             ; preds = %1406
  br label %1412

1412:                                             ; preds = %1411, %1409
  %1413 = phi i32 [ %1410, %1409 ], [ 1024, %1411 ]
  br label %1414

1414:                                             ; preds = %1412, %1405
  %1415 = phi i32 [ 1024, %1405 ], [ %1413, %1412 ]
  %1416 = icmp slt i32 1, %1415
  br i1 %1416, label %1417, label %1418

1417:                                             ; preds = %1414
  br label %1432

1418:                                             ; preds = %1414
  %1419 = load i32, ptr %3, align 4, !tbaa !5
  %1420 = icmp sgt i32 0, %1419
  br i1 %1420, label %1421, label %1422

1421:                                             ; preds = %1418
  br label %1430

1422:                                             ; preds = %1418
  %1423 = load i32, ptr %3, align 4, !tbaa !5
  %1424 = icmp slt i32 %1423, 1024
  br i1 %1424, label %1425, label %1427

1425:                                             ; preds = %1422
  %1426 = load i32, ptr %3, align 4, !tbaa !5
  br label %1428

1427:                                             ; preds = %1422
  br label %1428

1428:                                             ; preds = %1427, %1425
  %1429 = phi i32 [ %1426, %1425 ], [ 1024, %1427 ]
  br label %1430

1430:                                             ; preds = %1428, %1421
  %1431 = phi i32 [ 1024, %1421 ], [ %1429, %1428 ]
  br label %1432

1432:                                             ; preds = %1430, %1417
  %1433 = phi i32 [ 1, %1417 ], [ %1431, %1430 ]
  %1434 = sext i32 %1433 to i64
  %1435 = sub i64 %1402, %1434
  %1436 = load i32, ptr %3, align 4, !tbaa !5
  %1437 = icmp sgt i32 0, %1436
  br i1 %1437, label %1438, label %1439

1438:                                             ; preds = %1432
  br label %1447

1439:                                             ; preds = %1432
  %1440 = load i32, ptr %3, align 4, !tbaa !5
  %1441 = icmp slt i32 %1440, 1024
  br i1 %1441, label %1442, label %1444

1442:                                             ; preds = %1439
  %1443 = load i32, ptr %3, align 4, !tbaa !5
  br label %1445

1444:                                             ; preds = %1439
  br label %1445

1445:                                             ; preds = %1444, %1442
  %1446 = phi i32 [ %1443, %1442 ], [ 1024, %1444 ]
  br label %1447

1447:                                             ; preds = %1445, %1438
  %1448 = phi i32 [ 1024, %1438 ], [ %1446, %1445 ]
  %1449 = sext i32 %1448 to i64
  %1450 = load i32, ptr %3, align 4, !tbaa !5
  %1451 = icmp sgt i32 0, %1450
  br i1 %1451, label %1452, label %1453

1452:                                             ; preds = %1447
  br label %1461

1453:                                             ; preds = %1447
  %1454 = load i32, ptr %3, align 4, !tbaa !5
  %1455 = icmp slt i32 %1454, 1024
  br i1 %1455, label %1456, label %1458

1456:                                             ; preds = %1453
  %1457 = load i32, ptr %3, align 4, !tbaa !5
  br label %1459

1458:                                             ; preds = %1453
  br label %1459

1459:                                             ; preds = %1458, %1456
  %1460 = phi i32 [ %1457, %1456 ], [ 1024, %1458 ]
  br label %1461

1461:                                             ; preds = %1459, %1452
  %1462 = phi i32 [ 1024, %1452 ], [ %1460, %1459 ]
  %1463 = icmp slt i32 1, %1462
  br i1 %1463, label %1464, label %1465

1464:                                             ; preds = %1461
  br label %1479

1465:                                             ; preds = %1461
  %1466 = load i32, ptr %3, align 4, !tbaa !5
  %1467 = icmp sgt i32 0, %1466
  br i1 %1467, label %1468, label %1469

1468:                                             ; preds = %1465
  br label %1477

1469:                                             ; preds = %1465
  %1470 = load i32, ptr %3, align 4, !tbaa !5
  %1471 = icmp slt i32 %1470, 1024
  br i1 %1471, label %1472, label %1474

1472:                                             ; preds = %1469
  %1473 = load i32, ptr %3, align 4, !tbaa !5
  br label %1475

1474:                                             ; preds = %1469
  br label %1475

1475:                                             ; preds = %1474, %1472
  %1476 = phi i32 [ %1473, %1472 ], [ 1024, %1474 ]
  br label %1477

1477:                                             ; preds = %1475, %1468
  %1478 = phi i32 [ 1024, %1468 ], [ %1476, %1475 ]
  br label %1479

1479:                                             ; preds = %1477, %1464
  %1480 = phi i32 [ 1, %1464 ], [ %1478, %1477 ]
  %1481 = sext i32 %1480 to i64
  %1482 = sub i64 %1449, %1481
  %1483 = lshr i64 %1482, 1
  %1484 = or i64 %1435, %1483
  %1485 = load i32, ptr %3, align 4, !tbaa !5
  %1486 = icmp sgt i32 0, %1485
  br i1 %1486, label %1487, label %1488

1487:                                             ; preds = %1479
  br label %1496

1488:                                             ; preds = %1479
  %1489 = load i32, ptr %3, align 4, !tbaa !5
  %1490 = icmp slt i32 %1489, 1024
  br i1 %1490, label %1491, label %1493

1491:                                             ; preds = %1488
  %1492 = load i32, ptr %3, align 4, !tbaa !5
  br label %1494

1493:                                             ; preds = %1488
  br label %1494

1494:                                             ; preds = %1493, %1491
  %1495 = phi i32 [ %1492, %1491 ], [ 1024, %1493 ]
  br label %1496

1496:                                             ; preds = %1494, %1487
  %1497 = phi i32 [ 1024, %1487 ], [ %1495, %1494 ]
  %1498 = sext i32 %1497 to i64
  %1499 = load i32, ptr %3, align 4, !tbaa !5
  %1500 = icmp sgt i32 0, %1499
  br i1 %1500, label %1501, label %1502

1501:                                             ; preds = %1496
  br label %1510

1502:                                             ; preds = %1496
  %1503 = load i32, ptr %3, align 4, !tbaa !5
  %1504 = icmp slt i32 %1503, 1024
  br i1 %1504, label %1505, label %1507

1505:                                             ; preds = %1502
  %1506 = load i32, ptr %3, align 4, !tbaa !5
  br label %1508

1507:                                             ; preds = %1502
  br label %1508

1508:                                             ; preds = %1507, %1505
  %1509 = phi i32 [ %1506, %1505 ], [ 1024, %1507 ]
  br label %1510

1510:                                             ; preds = %1508, %1501
  %1511 = phi i32 [ 1024, %1501 ], [ %1509, %1508 ]
  %1512 = icmp slt i32 1, %1511
  br i1 %1512, label %1513, label %1514

1513:                                             ; preds = %1510
  br label %1528

1514:                                             ; preds = %1510
  %1515 = load i32, ptr %3, align 4, !tbaa !5
  %1516 = icmp sgt i32 0, %1515
  br i1 %1516, label %1517, label %1518

1517:                                             ; preds = %1514
  br label %1526

1518:                                             ; preds = %1514
  %1519 = load i32, ptr %3, align 4, !tbaa !5
  %1520 = icmp slt i32 %1519, 1024
  br i1 %1520, label %1521, label %1523

1521:                                             ; preds = %1518
  %1522 = load i32, ptr %3, align 4, !tbaa !5
  br label %1524

1523:                                             ; preds = %1518
  br label %1524

1524:                                             ; preds = %1523, %1521
  %1525 = phi i32 [ %1522, %1521 ], [ 1024, %1523 ]
  br label %1526

1526:                                             ; preds = %1524, %1517
  %1527 = phi i32 [ 1024, %1517 ], [ %1525, %1524 ]
  br label %1528

1528:                                             ; preds = %1526, %1513
  %1529 = phi i32 [ 1, %1513 ], [ %1527, %1526 ]
  %1530 = sext i32 %1529 to i64
  %1531 = sub i64 %1498, %1530
  %1532 = load i32, ptr %3, align 4, !tbaa !5
  %1533 = icmp sgt i32 0, %1532
  br i1 %1533, label %1534, label %1535

1534:                                             ; preds = %1528
  br label %1543

1535:                                             ; preds = %1528
  %1536 = load i32, ptr %3, align 4, !tbaa !5
  %1537 = icmp slt i32 %1536, 1024
  br i1 %1537, label %1538, label %1540

1538:                                             ; preds = %1535
  %1539 = load i32, ptr %3, align 4, !tbaa !5
  br label %1541

1540:                                             ; preds = %1535
  br label %1541

1541:                                             ; preds = %1540, %1538
  %1542 = phi i32 [ %1539, %1538 ], [ 1024, %1540 ]
  br label %1543

1543:                                             ; preds = %1541, %1534
  %1544 = phi i32 [ 1024, %1534 ], [ %1542, %1541 ]
  %1545 = sext i32 %1544 to i64
  %1546 = load i32, ptr %3, align 4, !tbaa !5
  %1547 = icmp sgt i32 0, %1546
  br i1 %1547, label %1548, label %1549

1548:                                             ; preds = %1543
  br label %1557

1549:                                             ; preds = %1543
  %1550 = load i32, ptr %3, align 4, !tbaa !5
  %1551 = icmp slt i32 %1550, 1024
  br i1 %1551, label %1552, label %1554

1552:                                             ; preds = %1549
  %1553 = load i32, ptr %3, align 4, !tbaa !5
  br label %1555

1554:                                             ; preds = %1549
  br label %1555

1555:                                             ; preds = %1554, %1552
  %1556 = phi i32 [ %1553, %1552 ], [ 1024, %1554 ]
  br label %1557

1557:                                             ; preds = %1555, %1548
  %1558 = phi i32 [ 1024, %1548 ], [ %1556, %1555 ]
  %1559 = icmp slt i32 1, %1558
  br i1 %1559, label %1560, label %1561

1560:                                             ; preds = %1557
  br label %1575

1561:                                             ; preds = %1557
  %1562 = load i32, ptr %3, align 4, !tbaa !5
  %1563 = icmp sgt i32 0, %1562
  br i1 %1563, label %1564, label %1565

1564:                                             ; preds = %1561
  br label %1573

1565:                                             ; preds = %1561
  %1566 = load i32, ptr %3, align 4, !tbaa !5
  %1567 = icmp slt i32 %1566, 1024
  br i1 %1567, label %1568, label %1570

1568:                                             ; preds = %1565
  %1569 = load i32, ptr %3, align 4, !tbaa !5
  br label %1571

1570:                                             ; preds = %1565
  br label %1571

1571:                                             ; preds = %1570, %1568
  %1572 = phi i32 [ %1569, %1568 ], [ 1024, %1570 ]
  br label %1573

1573:                                             ; preds = %1571, %1564
  %1574 = phi i32 [ 1024, %1564 ], [ %1572, %1571 ]
  br label %1575

1575:                                             ; preds = %1573, %1560
  %1576 = phi i32 [ 1, %1560 ], [ %1574, %1573 ]
  %1577 = sext i32 %1576 to i64
  %1578 = sub i64 %1545, %1577
  %1579 = lshr i64 %1578, 1
  %1580 = or i64 %1531, %1579
  %1581 = lshr i64 %1580, 2
  %1582 = or i64 %1484, %1581
  %1583 = lshr i64 %1582, 4
  %1584 = or i64 %1388, %1583
  %1585 = lshr i64 %1584, 8
  %1586 = or i64 %1194, %1585
  %1587 = lshr i64 %1586, 16
  %1588 = or i64 %804, %1587
  %1589 = load i32, ptr %3, align 4, !tbaa !5
  %1590 = icmp sgt i32 0, %1589
  br i1 %1590, label %1591, label %1592

1591:                                             ; preds = %1575
  br label %1600

1592:                                             ; preds = %1575
  %1593 = load i32, ptr %3, align 4, !tbaa !5
  %1594 = icmp slt i32 %1593, 1024
  br i1 %1594, label %1595, label %1597

1595:                                             ; preds = %1592
  %1596 = load i32, ptr %3, align 4, !tbaa !5
  br label %1598

1597:                                             ; preds = %1592
  br label %1598

1598:                                             ; preds = %1597, %1595
  %1599 = phi i32 [ %1596, %1595 ], [ 1024, %1597 ]
  br label %1600

1600:                                             ; preds = %1598, %1591
  %1601 = phi i32 [ 1024, %1591 ], [ %1599, %1598 ]
  %1602 = sext i32 %1601 to i64
  %1603 = load i32, ptr %3, align 4, !tbaa !5
  %1604 = icmp sgt i32 0, %1603
  br i1 %1604, label %1605, label %1606

1605:                                             ; preds = %1600
  br label %1614

1606:                                             ; preds = %1600
  %1607 = load i32, ptr %3, align 4, !tbaa !5
  %1608 = icmp slt i32 %1607, 1024
  br i1 %1608, label %1609, label %1611

1609:                                             ; preds = %1606
  %1610 = load i32, ptr %3, align 4, !tbaa !5
  br label %1612

1611:                                             ; preds = %1606
  br label %1612

1612:                                             ; preds = %1611, %1609
  %1613 = phi i32 [ %1610, %1609 ], [ 1024, %1611 ]
  br label %1614

1614:                                             ; preds = %1612, %1605
  %1615 = phi i32 [ 1024, %1605 ], [ %1613, %1612 ]
  %1616 = icmp slt i32 1, %1615
  br i1 %1616, label %1617, label %1618

1617:                                             ; preds = %1614
  br label %1632

1618:                                             ; preds = %1614
  %1619 = load i32, ptr %3, align 4, !tbaa !5
  %1620 = icmp sgt i32 0, %1619
  br i1 %1620, label %1621, label %1622

1621:                                             ; preds = %1618
  br label %1630

1622:                                             ; preds = %1618
  %1623 = load i32, ptr %3, align 4, !tbaa !5
  %1624 = icmp slt i32 %1623, 1024
  br i1 %1624, label %1625, label %1627

1625:                                             ; preds = %1622
  %1626 = load i32, ptr %3, align 4, !tbaa !5
  br label %1628

1627:                                             ; preds = %1622
  br label %1628

1628:                                             ; preds = %1627, %1625
  %1629 = phi i32 [ %1626, %1625 ], [ 1024, %1627 ]
  br label %1630

1630:                                             ; preds = %1628, %1621
  %1631 = phi i32 [ 1024, %1621 ], [ %1629, %1628 ]
  br label %1632

1632:                                             ; preds = %1630, %1617
  %1633 = phi i32 [ 1, %1617 ], [ %1631, %1630 ]
  %1634 = sext i32 %1633 to i64
  %1635 = sub i64 %1602, %1634
  %1636 = load i32, ptr %3, align 4, !tbaa !5
  %1637 = icmp sgt i32 0, %1636
  br i1 %1637, label %1638, label %1639

1638:                                             ; preds = %1632
  br label %1647

1639:                                             ; preds = %1632
  %1640 = load i32, ptr %3, align 4, !tbaa !5
  %1641 = icmp slt i32 %1640, 1024
  br i1 %1641, label %1642, label %1644

1642:                                             ; preds = %1639
  %1643 = load i32, ptr %3, align 4, !tbaa !5
  br label %1645

1644:                                             ; preds = %1639
  br label %1645

1645:                                             ; preds = %1644, %1642
  %1646 = phi i32 [ %1643, %1642 ], [ 1024, %1644 ]
  br label %1647

1647:                                             ; preds = %1645, %1638
  %1648 = phi i32 [ 1024, %1638 ], [ %1646, %1645 ]
  %1649 = sext i32 %1648 to i64
  %1650 = load i32, ptr %3, align 4, !tbaa !5
  %1651 = icmp sgt i32 0, %1650
  br i1 %1651, label %1652, label %1653

1652:                                             ; preds = %1647
  br label %1661

1653:                                             ; preds = %1647
  %1654 = load i32, ptr %3, align 4, !tbaa !5
  %1655 = icmp slt i32 %1654, 1024
  br i1 %1655, label %1656, label %1658

1656:                                             ; preds = %1653
  %1657 = load i32, ptr %3, align 4, !tbaa !5
  br label %1659

1658:                                             ; preds = %1653
  br label %1659

1659:                                             ; preds = %1658, %1656
  %1660 = phi i32 [ %1657, %1656 ], [ 1024, %1658 ]
  br label %1661

1661:                                             ; preds = %1659, %1652
  %1662 = phi i32 [ 1024, %1652 ], [ %1660, %1659 ]
  %1663 = icmp slt i32 1, %1662
  br i1 %1663, label %1664, label %1665

1664:                                             ; preds = %1661
  br label %1679

1665:                                             ; preds = %1661
  %1666 = load i32, ptr %3, align 4, !tbaa !5
  %1667 = icmp sgt i32 0, %1666
  br i1 %1667, label %1668, label %1669

1668:                                             ; preds = %1665
  br label %1677

1669:                                             ; preds = %1665
  %1670 = load i32, ptr %3, align 4, !tbaa !5
  %1671 = icmp slt i32 %1670, 1024
  br i1 %1671, label %1672, label %1674

1672:                                             ; preds = %1669
  %1673 = load i32, ptr %3, align 4, !tbaa !5
  br label %1675

1674:                                             ; preds = %1669
  br label %1675

1675:                                             ; preds = %1674, %1672
  %1676 = phi i32 [ %1673, %1672 ], [ 1024, %1674 ]
  br label %1677

1677:                                             ; preds = %1675, %1668
  %1678 = phi i32 [ 1024, %1668 ], [ %1676, %1675 ]
  br label %1679

1679:                                             ; preds = %1677, %1664
  %1680 = phi i32 [ 1, %1664 ], [ %1678, %1677 ]
  %1681 = sext i32 %1680 to i64
  %1682 = sub i64 %1649, %1681
  %1683 = lshr i64 %1682, 1
  %1684 = or i64 %1635, %1683
  %1685 = load i32, ptr %3, align 4, !tbaa !5
  %1686 = icmp sgt i32 0, %1685
  br i1 %1686, label %1687, label %1688

1687:                                             ; preds = %1679
  br label %1696

1688:                                             ; preds = %1679
  %1689 = load i32, ptr %3, align 4, !tbaa !5
  %1690 = icmp slt i32 %1689, 1024
  br i1 %1690, label %1691, label %1693

1691:                                             ; preds = %1688
  %1692 = load i32, ptr %3, align 4, !tbaa !5
  br label %1694

1693:                                             ; preds = %1688
  br label %1694

1694:                                             ; preds = %1693, %1691
  %1695 = phi i32 [ %1692, %1691 ], [ 1024, %1693 ]
  br label %1696

1696:                                             ; preds = %1694, %1687
  %1697 = phi i32 [ 1024, %1687 ], [ %1695, %1694 ]
  %1698 = sext i32 %1697 to i64
  %1699 = load i32, ptr %3, align 4, !tbaa !5
  %1700 = icmp sgt i32 0, %1699
  br i1 %1700, label %1701, label %1702

1701:                                             ; preds = %1696
  br label %1710

1702:                                             ; preds = %1696
  %1703 = load i32, ptr %3, align 4, !tbaa !5
  %1704 = icmp slt i32 %1703, 1024
  br i1 %1704, label %1705, label %1707

1705:                                             ; preds = %1702
  %1706 = load i32, ptr %3, align 4, !tbaa !5
  br label %1708

1707:                                             ; preds = %1702
  br label %1708

1708:                                             ; preds = %1707, %1705
  %1709 = phi i32 [ %1706, %1705 ], [ 1024, %1707 ]
  br label %1710

1710:                                             ; preds = %1708, %1701
  %1711 = phi i32 [ 1024, %1701 ], [ %1709, %1708 ]
  %1712 = icmp slt i32 1, %1711
  br i1 %1712, label %1713, label %1714

1713:                                             ; preds = %1710
  br label %1728

1714:                                             ; preds = %1710
  %1715 = load i32, ptr %3, align 4, !tbaa !5
  %1716 = icmp sgt i32 0, %1715
  br i1 %1716, label %1717, label %1718

1717:                                             ; preds = %1714
  br label %1726

1718:                                             ; preds = %1714
  %1719 = load i32, ptr %3, align 4, !tbaa !5
  %1720 = icmp slt i32 %1719, 1024
  br i1 %1720, label %1721, label %1723

1721:                                             ; preds = %1718
  %1722 = load i32, ptr %3, align 4, !tbaa !5
  br label %1724

1723:                                             ; preds = %1718
  br label %1724

1724:                                             ; preds = %1723, %1721
  %1725 = phi i32 [ %1722, %1721 ], [ 1024, %1723 ]
  br label %1726

1726:                                             ; preds = %1724, %1717
  %1727 = phi i32 [ 1024, %1717 ], [ %1725, %1724 ]
  br label %1728

1728:                                             ; preds = %1726, %1713
  %1729 = phi i32 [ 1, %1713 ], [ %1727, %1726 ]
  %1730 = sext i32 %1729 to i64
  %1731 = sub i64 %1698, %1730
  %1732 = load i32, ptr %3, align 4, !tbaa !5
  %1733 = icmp sgt i32 0, %1732
  br i1 %1733, label %1734, label %1735

1734:                                             ; preds = %1728
  br label %1743

1735:                                             ; preds = %1728
  %1736 = load i32, ptr %3, align 4, !tbaa !5
  %1737 = icmp slt i32 %1736, 1024
  br i1 %1737, label %1738, label %1740

1738:                                             ; preds = %1735
  %1739 = load i32, ptr %3, align 4, !tbaa !5
  br label %1741

1740:                                             ; preds = %1735
  br label %1741

1741:                                             ; preds = %1740, %1738
  %1742 = phi i32 [ %1739, %1738 ], [ 1024, %1740 ]
  br label %1743

1743:                                             ; preds = %1741, %1734
  %1744 = phi i32 [ 1024, %1734 ], [ %1742, %1741 ]
  %1745 = sext i32 %1744 to i64
  %1746 = load i32, ptr %3, align 4, !tbaa !5
  %1747 = icmp sgt i32 0, %1746
  br i1 %1747, label %1748, label %1749

1748:                                             ; preds = %1743
  br label %1757

1749:                                             ; preds = %1743
  %1750 = load i32, ptr %3, align 4, !tbaa !5
  %1751 = icmp slt i32 %1750, 1024
  br i1 %1751, label %1752, label %1754

1752:                                             ; preds = %1749
  %1753 = load i32, ptr %3, align 4, !tbaa !5
  br label %1755

1754:                                             ; preds = %1749
  br label %1755

1755:                                             ; preds = %1754, %1752
  %1756 = phi i32 [ %1753, %1752 ], [ 1024, %1754 ]
  br label %1757

1757:                                             ; preds = %1755, %1748
  %1758 = phi i32 [ 1024, %1748 ], [ %1756, %1755 ]
  %1759 = icmp slt i32 1, %1758
  br i1 %1759, label %1760, label %1761

1760:                                             ; preds = %1757
  br label %1775

1761:                                             ; preds = %1757
  %1762 = load i32, ptr %3, align 4, !tbaa !5
  %1763 = icmp sgt i32 0, %1762
  br i1 %1763, label %1764, label %1765

1764:                                             ; preds = %1761
  br label %1773

1765:                                             ; preds = %1761
  %1766 = load i32, ptr %3, align 4, !tbaa !5
  %1767 = icmp slt i32 %1766, 1024
  br i1 %1767, label %1768, label %1770

1768:                                             ; preds = %1765
  %1769 = load i32, ptr %3, align 4, !tbaa !5
  br label %1771

1770:                                             ; preds = %1765
  br label %1771

1771:                                             ; preds = %1770, %1768
  %1772 = phi i32 [ %1769, %1768 ], [ 1024, %1770 ]
  br label %1773

1773:                                             ; preds = %1771, %1764
  %1774 = phi i32 [ 1024, %1764 ], [ %1772, %1771 ]
  br label %1775

1775:                                             ; preds = %1773, %1760
  %1776 = phi i32 [ 1, %1760 ], [ %1774, %1773 ]
  %1777 = sext i32 %1776 to i64
  %1778 = sub i64 %1745, %1777
  %1779 = lshr i64 %1778, 1
  %1780 = or i64 %1731, %1779
  %1781 = lshr i64 %1780, 2
  %1782 = or i64 %1684, %1781
  %1783 = load i32, ptr %3, align 4, !tbaa !5
  %1784 = icmp sgt i32 0, %1783
  br i1 %1784, label %1785, label %1786

1785:                                             ; preds = %1775
  br label %1794

1786:                                             ; preds = %1775
  %1787 = load i32, ptr %3, align 4, !tbaa !5
  %1788 = icmp slt i32 %1787, 1024
  br i1 %1788, label %1789, label %1791

1789:                                             ; preds = %1786
  %1790 = load i32, ptr %3, align 4, !tbaa !5
  br label %1792

1791:                                             ; preds = %1786
  br label %1792

1792:                                             ; preds = %1791, %1789
  %1793 = phi i32 [ %1790, %1789 ], [ 1024, %1791 ]
  br label %1794

1794:                                             ; preds = %1792, %1785
  %1795 = phi i32 [ 1024, %1785 ], [ %1793, %1792 ]
  %1796 = sext i32 %1795 to i64
  %1797 = load i32, ptr %3, align 4, !tbaa !5
  %1798 = icmp sgt i32 0, %1797
  br i1 %1798, label %1799, label %1800

1799:                                             ; preds = %1794
  br label %1808

1800:                                             ; preds = %1794
  %1801 = load i32, ptr %3, align 4, !tbaa !5
  %1802 = icmp slt i32 %1801, 1024
  br i1 %1802, label %1803, label %1805

1803:                                             ; preds = %1800
  %1804 = load i32, ptr %3, align 4, !tbaa !5
  br label %1806

1805:                                             ; preds = %1800
  br label %1806

1806:                                             ; preds = %1805, %1803
  %1807 = phi i32 [ %1804, %1803 ], [ 1024, %1805 ]
  br label %1808

1808:                                             ; preds = %1806, %1799
  %1809 = phi i32 [ 1024, %1799 ], [ %1807, %1806 ]
  %1810 = icmp slt i32 1, %1809
  br i1 %1810, label %1811, label %1812

1811:                                             ; preds = %1808
  br label %1826

1812:                                             ; preds = %1808
  %1813 = load i32, ptr %3, align 4, !tbaa !5
  %1814 = icmp sgt i32 0, %1813
  br i1 %1814, label %1815, label %1816

1815:                                             ; preds = %1812
  br label %1824

1816:                                             ; preds = %1812
  %1817 = load i32, ptr %3, align 4, !tbaa !5
  %1818 = icmp slt i32 %1817, 1024
  br i1 %1818, label %1819, label %1821

1819:                                             ; preds = %1816
  %1820 = load i32, ptr %3, align 4, !tbaa !5
  br label %1822

1821:                                             ; preds = %1816
  br label %1822

1822:                                             ; preds = %1821, %1819
  %1823 = phi i32 [ %1820, %1819 ], [ 1024, %1821 ]
  br label %1824

1824:                                             ; preds = %1822, %1815
  %1825 = phi i32 [ 1024, %1815 ], [ %1823, %1822 ]
  br label %1826

1826:                                             ; preds = %1824, %1811
  %1827 = phi i32 [ 1, %1811 ], [ %1825, %1824 ]
  %1828 = sext i32 %1827 to i64
  %1829 = sub i64 %1796, %1828
  %1830 = load i32, ptr %3, align 4, !tbaa !5
  %1831 = icmp sgt i32 0, %1830
  br i1 %1831, label %1832, label %1833

1832:                                             ; preds = %1826
  br label %1841

1833:                                             ; preds = %1826
  %1834 = load i32, ptr %3, align 4, !tbaa !5
  %1835 = icmp slt i32 %1834, 1024
  br i1 %1835, label %1836, label %1838

1836:                                             ; preds = %1833
  %1837 = load i32, ptr %3, align 4, !tbaa !5
  br label %1839

1838:                                             ; preds = %1833
  br label %1839

1839:                                             ; preds = %1838, %1836
  %1840 = phi i32 [ %1837, %1836 ], [ 1024, %1838 ]
  br label %1841

1841:                                             ; preds = %1839, %1832
  %1842 = phi i32 [ 1024, %1832 ], [ %1840, %1839 ]
  %1843 = sext i32 %1842 to i64
  %1844 = load i32, ptr %3, align 4, !tbaa !5
  %1845 = icmp sgt i32 0, %1844
  br i1 %1845, label %1846, label %1847

1846:                                             ; preds = %1841
  br label %1855

1847:                                             ; preds = %1841
  %1848 = load i32, ptr %3, align 4, !tbaa !5
  %1849 = icmp slt i32 %1848, 1024
  br i1 %1849, label %1850, label %1852

1850:                                             ; preds = %1847
  %1851 = load i32, ptr %3, align 4, !tbaa !5
  br label %1853

1852:                                             ; preds = %1847
  br label %1853

1853:                                             ; preds = %1852, %1850
  %1854 = phi i32 [ %1851, %1850 ], [ 1024, %1852 ]
  br label %1855

1855:                                             ; preds = %1853, %1846
  %1856 = phi i32 [ 1024, %1846 ], [ %1854, %1853 ]
  %1857 = icmp slt i32 1, %1856
  br i1 %1857, label %1858, label %1859

1858:                                             ; preds = %1855
  br label %1873

1859:                                             ; preds = %1855
  %1860 = load i32, ptr %3, align 4, !tbaa !5
  %1861 = icmp sgt i32 0, %1860
  br i1 %1861, label %1862, label %1863

1862:                                             ; preds = %1859
  br label %1871

1863:                                             ; preds = %1859
  %1864 = load i32, ptr %3, align 4, !tbaa !5
  %1865 = icmp slt i32 %1864, 1024
  br i1 %1865, label %1866, label %1868

1866:                                             ; preds = %1863
  %1867 = load i32, ptr %3, align 4, !tbaa !5
  br label %1869

1868:                                             ; preds = %1863
  br label %1869

1869:                                             ; preds = %1868, %1866
  %1870 = phi i32 [ %1867, %1866 ], [ 1024, %1868 ]
  br label %1871

1871:                                             ; preds = %1869, %1862
  %1872 = phi i32 [ 1024, %1862 ], [ %1870, %1869 ]
  br label %1873

1873:                                             ; preds = %1871, %1858
  %1874 = phi i32 [ 1, %1858 ], [ %1872, %1871 ]
  %1875 = sext i32 %1874 to i64
  %1876 = sub i64 %1843, %1875
  %1877 = lshr i64 %1876, 1
  %1878 = or i64 %1829, %1877
  %1879 = load i32, ptr %3, align 4, !tbaa !5
  %1880 = icmp sgt i32 0, %1879
  br i1 %1880, label %1881, label %1882

1881:                                             ; preds = %1873
  br label %1890

1882:                                             ; preds = %1873
  %1883 = load i32, ptr %3, align 4, !tbaa !5
  %1884 = icmp slt i32 %1883, 1024
  br i1 %1884, label %1885, label %1887

1885:                                             ; preds = %1882
  %1886 = load i32, ptr %3, align 4, !tbaa !5
  br label %1888

1887:                                             ; preds = %1882
  br label %1888

1888:                                             ; preds = %1887, %1885
  %1889 = phi i32 [ %1886, %1885 ], [ 1024, %1887 ]
  br label %1890

1890:                                             ; preds = %1888, %1881
  %1891 = phi i32 [ 1024, %1881 ], [ %1889, %1888 ]
  %1892 = sext i32 %1891 to i64
  %1893 = load i32, ptr %3, align 4, !tbaa !5
  %1894 = icmp sgt i32 0, %1893
  br i1 %1894, label %1895, label %1896

1895:                                             ; preds = %1890
  br label %1904

1896:                                             ; preds = %1890
  %1897 = load i32, ptr %3, align 4, !tbaa !5
  %1898 = icmp slt i32 %1897, 1024
  br i1 %1898, label %1899, label %1901

1899:                                             ; preds = %1896
  %1900 = load i32, ptr %3, align 4, !tbaa !5
  br label %1902

1901:                                             ; preds = %1896
  br label %1902

1902:                                             ; preds = %1901, %1899
  %1903 = phi i32 [ %1900, %1899 ], [ 1024, %1901 ]
  br label %1904

1904:                                             ; preds = %1902, %1895
  %1905 = phi i32 [ 1024, %1895 ], [ %1903, %1902 ]
  %1906 = icmp slt i32 1, %1905
  br i1 %1906, label %1907, label %1908

1907:                                             ; preds = %1904
  br label %1922

1908:                                             ; preds = %1904
  %1909 = load i32, ptr %3, align 4, !tbaa !5
  %1910 = icmp sgt i32 0, %1909
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1908
  br label %1920

1912:                                             ; preds = %1908
  %1913 = load i32, ptr %3, align 4, !tbaa !5
  %1914 = icmp slt i32 %1913, 1024
  br i1 %1914, label %1915, label %1917

1915:                                             ; preds = %1912
  %1916 = load i32, ptr %3, align 4, !tbaa !5
  br label %1918

1917:                                             ; preds = %1912
  br label %1918

1918:                                             ; preds = %1917, %1915
  %1919 = phi i32 [ %1916, %1915 ], [ 1024, %1917 ]
  br label %1920

1920:                                             ; preds = %1918, %1911
  %1921 = phi i32 [ 1024, %1911 ], [ %1919, %1918 ]
  br label %1922

1922:                                             ; preds = %1920, %1907
  %1923 = phi i32 [ 1, %1907 ], [ %1921, %1920 ]
  %1924 = sext i32 %1923 to i64
  %1925 = sub i64 %1892, %1924
  %1926 = load i32, ptr %3, align 4, !tbaa !5
  %1927 = icmp sgt i32 0, %1926
  br i1 %1927, label %1928, label %1929

1928:                                             ; preds = %1922
  br label %1937

1929:                                             ; preds = %1922
  %1930 = load i32, ptr %3, align 4, !tbaa !5
  %1931 = icmp slt i32 %1930, 1024
  br i1 %1931, label %1932, label %1934

1932:                                             ; preds = %1929
  %1933 = load i32, ptr %3, align 4, !tbaa !5
  br label %1935

1934:                                             ; preds = %1929
  br label %1935

1935:                                             ; preds = %1934, %1932
  %1936 = phi i32 [ %1933, %1932 ], [ 1024, %1934 ]
  br label %1937

1937:                                             ; preds = %1935, %1928
  %1938 = phi i32 [ 1024, %1928 ], [ %1936, %1935 ]
  %1939 = sext i32 %1938 to i64
  %1940 = load i32, ptr %3, align 4, !tbaa !5
  %1941 = icmp sgt i32 0, %1940
  br i1 %1941, label %1942, label %1943

1942:                                             ; preds = %1937
  br label %1951

1943:                                             ; preds = %1937
  %1944 = load i32, ptr %3, align 4, !tbaa !5
  %1945 = icmp slt i32 %1944, 1024
  br i1 %1945, label %1946, label %1948

1946:                                             ; preds = %1943
  %1947 = load i32, ptr %3, align 4, !tbaa !5
  br label %1949

1948:                                             ; preds = %1943
  br label %1949

1949:                                             ; preds = %1948, %1946
  %1950 = phi i32 [ %1947, %1946 ], [ 1024, %1948 ]
  br label %1951

1951:                                             ; preds = %1949, %1942
  %1952 = phi i32 [ 1024, %1942 ], [ %1950, %1949 ]
  %1953 = icmp slt i32 1, %1952
  br i1 %1953, label %1954, label %1955

1954:                                             ; preds = %1951
  br label %1969

1955:                                             ; preds = %1951
  %1956 = load i32, ptr %3, align 4, !tbaa !5
  %1957 = icmp sgt i32 0, %1956
  br i1 %1957, label %1958, label %1959

1958:                                             ; preds = %1955
  br label %1967

1959:                                             ; preds = %1955
  %1960 = load i32, ptr %3, align 4, !tbaa !5
  %1961 = icmp slt i32 %1960, 1024
  br i1 %1961, label %1962, label %1964

1962:                                             ; preds = %1959
  %1963 = load i32, ptr %3, align 4, !tbaa !5
  br label %1965

1964:                                             ; preds = %1959
  br label %1965

1965:                                             ; preds = %1964, %1962
  %1966 = phi i32 [ %1963, %1962 ], [ 1024, %1964 ]
  br label %1967

1967:                                             ; preds = %1965, %1958
  %1968 = phi i32 [ 1024, %1958 ], [ %1966, %1965 ]
  br label %1969

1969:                                             ; preds = %1967, %1954
  %1970 = phi i32 [ 1, %1954 ], [ %1968, %1967 ]
  %1971 = sext i32 %1970 to i64
  %1972 = sub i64 %1939, %1971
  %1973 = lshr i64 %1972, 1
  %1974 = or i64 %1925, %1973
  %1975 = lshr i64 %1974, 2
  %1976 = or i64 %1878, %1975
  %1977 = lshr i64 %1976, 4
  %1978 = or i64 %1782, %1977
  %1979 = load i32, ptr %3, align 4, !tbaa !5
  %1980 = icmp sgt i32 0, %1979
  br i1 %1980, label %1981, label %1982

1981:                                             ; preds = %1969
  br label %1990

1982:                                             ; preds = %1969
  %1983 = load i32, ptr %3, align 4, !tbaa !5
  %1984 = icmp slt i32 %1983, 1024
  br i1 %1984, label %1985, label %1987

1985:                                             ; preds = %1982
  %1986 = load i32, ptr %3, align 4, !tbaa !5
  br label %1988

1987:                                             ; preds = %1982
  br label %1988

1988:                                             ; preds = %1987, %1985
  %1989 = phi i32 [ %1986, %1985 ], [ 1024, %1987 ]
  br label %1990

1990:                                             ; preds = %1988, %1981
  %1991 = phi i32 [ 1024, %1981 ], [ %1989, %1988 ]
  %1992 = sext i32 %1991 to i64
  %1993 = load i32, ptr %3, align 4, !tbaa !5
  %1994 = icmp sgt i32 0, %1993
  br i1 %1994, label %1995, label %1996

1995:                                             ; preds = %1990
  br label %2004

1996:                                             ; preds = %1990
  %1997 = load i32, ptr %3, align 4, !tbaa !5
  %1998 = icmp slt i32 %1997, 1024
  br i1 %1998, label %1999, label %2001

1999:                                             ; preds = %1996
  %2000 = load i32, ptr %3, align 4, !tbaa !5
  br label %2002

2001:                                             ; preds = %1996
  br label %2002

2002:                                             ; preds = %2001, %1999
  %2003 = phi i32 [ %2000, %1999 ], [ 1024, %2001 ]
  br label %2004

2004:                                             ; preds = %2002, %1995
  %2005 = phi i32 [ 1024, %1995 ], [ %2003, %2002 ]
  %2006 = icmp slt i32 1, %2005
  br i1 %2006, label %2007, label %2008

2007:                                             ; preds = %2004
  br label %2022

2008:                                             ; preds = %2004
  %2009 = load i32, ptr %3, align 4, !tbaa !5
  %2010 = icmp sgt i32 0, %2009
  br i1 %2010, label %2011, label %2012

2011:                                             ; preds = %2008
  br label %2020

2012:                                             ; preds = %2008
  %2013 = load i32, ptr %3, align 4, !tbaa !5
  %2014 = icmp slt i32 %2013, 1024
  br i1 %2014, label %2015, label %2017

2015:                                             ; preds = %2012
  %2016 = load i32, ptr %3, align 4, !tbaa !5
  br label %2018

2017:                                             ; preds = %2012
  br label %2018

2018:                                             ; preds = %2017, %2015
  %2019 = phi i32 [ %2016, %2015 ], [ 1024, %2017 ]
  br label %2020

2020:                                             ; preds = %2018, %2011
  %2021 = phi i32 [ 1024, %2011 ], [ %2019, %2018 ]
  br label %2022

2022:                                             ; preds = %2020, %2007
  %2023 = phi i32 [ 1, %2007 ], [ %2021, %2020 ]
  %2024 = sext i32 %2023 to i64
  %2025 = sub i64 %1992, %2024
  %2026 = load i32, ptr %3, align 4, !tbaa !5
  %2027 = icmp sgt i32 0, %2026
  br i1 %2027, label %2028, label %2029

2028:                                             ; preds = %2022
  br label %2037

2029:                                             ; preds = %2022
  %2030 = load i32, ptr %3, align 4, !tbaa !5
  %2031 = icmp slt i32 %2030, 1024
  br i1 %2031, label %2032, label %2034

2032:                                             ; preds = %2029
  %2033 = load i32, ptr %3, align 4, !tbaa !5
  br label %2035

2034:                                             ; preds = %2029
  br label %2035

2035:                                             ; preds = %2034, %2032
  %2036 = phi i32 [ %2033, %2032 ], [ 1024, %2034 ]
  br label %2037

2037:                                             ; preds = %2035, %2028
  %2038 = phi i32 [ 1024, %2028 ], [ %2036, %2035 ]
  %2039 = sext i32 %2038 to i64
  %2040 = load i32, ptr %3, align 4, !tbaa !5
  %2041 = icmp sgt i32 0, %2040
  br i1 %2041, label %2042, label %2043

2042:                                             ; preds = %2037
  br label %2051

2043:                                             ; preds = %2037
  %2044 = load i32, ptr %3, align 4, !tbaa !5
  %2045 = icmp slt i32 %2044, 1024
  br i1 %2045, label %2046, label %2048

2046:                                             ; preds = %2043
  %2047 = load i32, ptr %3, align 4, !tbaa !5
  br label %2049

2048:                                             ; preds = %2043
  br label %2049

2049:                                             ; preds = %2048, %2046
  %2050 = phi i32 [ %2047, %2046 ], [ 1024, %2048 ]
  br label %2051

2051:                                             ; preds = %2049, %2042
  %2052 = phi i32 [ 1024, %2042 ], [ %2050, %2049 ]
  %2053 = icmp slt i32 1, %2052
  br i1 %2053, label %2054, label %2055

2054:                                             ; preds = %2051
  br label %2069

2055:                                             ; preds = %2051
  %2056 = load i32, ptr %3, align 4, !tbaa !5
  %2057 = icmp sgt i32 0, %2056
  br i1 %2057, label %2058, label %2059

2058:                                             ; preds = %2055
  br label %2067

2059:                                             ; preds = %2055
  %2060 = load i32, ptr %3, align 4, !tbaa !5
  %2061 = icmp slt i32 %2060, 1024
  br i1 %2061, label %2062, label %2064

2062:                                             ; preds = %2059
  %2063 = load i32, ptr %3, align 4, !tbaa !5
  br label %2065

2064:                                             ; preds = %2059
  br label %2065

2065:                                             ; preds = %2064, %2062
  %2066 = phi i32 [ %2063, %2062 ], [ 1024, %2064 ]
  br label %2067

2067:                                             ; preds = %2065, %2058
  %2068 = phi i32 [ 1024, %2058 ], [ %2066, %2065 ]
  br label %2069

2069:                                             ; preds = %2067, %2054
  %2070 = phi i32 [ 1, %2054 ], [ %2068, %2067 ]
  %2071 = sext i32 %2070 to i64
  %2072 = sub i64 %2039, %2071
  %2073 = lshr i64 %2072, 1
  %2074 = or i64 %2025, %2073
  %2075 = load i32, ptr %3, align 4, !tbaa !5
  %2076 = icmp sgt i32 0, %2075
  br i1 %2076, label %2077, label %2078

2077:                                             ; preds = %2069
  br label %2086

2078:                                             ; preds = %2069
  %2079 = load i32, ptr %3, align 4, !tbaa !5
  %2080 = icmp slt i32 %2079, 1024
  br i1 %2080, label %2081, label %2083

2081:                                             ; preds = %2078
  %2082 = load i32, ptr %3, align 4, !tbaa !5
  br label %2084

2083:                                             ; preds = %2078
  br label %2084

2084:                                             ; preds = %2083, %2081
  %2085 = phi i32 [ %2082, %2081 ], [ 1024, %2083 ]
  br label %2086

2086:                                             ; preds = %2084, %2077
  %2087 = phi i32 [ 1024, %2077 ], [ %2085, %2084 ]
  %2088 = sext i32 %2087 to i64
  %2089 = load i32, ptr %3, align 4, !tbaa !5
  %2090 = icmp sgt i32 0, %2089
  br i1 %2090, label %2091, label %2092

2091:                                             ; preds = %2086
  br label %2100

2092:                                             ; preds = %2086
  %2093 = load i32, ptr %3, align 4, !tbaa !5
  %2094 = icmp slt i32 %2093, 1024
  br i1 %2094, label %2095, label %2097

2095:                                             ; preds = %2092
  %2096 = load i32, ptr %3, align 4, !tbaa !5
  br label %2098

2097:                                             ; preds = %2092
  br label %2098

2098:                                             ; preds = %2097, %2095
  %2099 = phi i32 [ %2096, %2095 ], [ 1024, %2097 ]
  br label %2100

2100:                                             ; preds = %2098, %2091
  %2101 = phi i32 [ 1024, %2091 ], [ %2099, %2098 ]
  %2102 = icmp slt i32 1, %2101
  br i1 %2102, label %2103, label %2104

2103:                                             ; preds = %2100
  br label %2118

2104:                                             ; preds = %2100
  %2105 = load i32, ptr %3, align 4, !tbaa !5
  %2106 = icmp sgt i32 0, %2105
  br i1 %2106, label %2107, label %2108

2107:                                             ; preds = %2104
  br label %2116

2108:                                             ; preds = %2104
  %2109 = load i32, ptr %3, align 4, !tbaa !5
  %2110 = icmp slt i32 %2109, 1024
  br i1 %2110, label %2111, label %2113

2111:                                             ; preds = %2108
  %2112 = load i32, ptr %3, align 4, !tbaa !5
  br label %2114

2113:                                             ; preds = %2108
  br label %2114

2114:                                             ; preds = %2113, %2111
  %2115 = phi i32 [ %2112, %2111 ], [ 1024, %2113 ]
  br label %2116

2116:                                             ; preds = %2114, %2107
  %2117 = phi i32 [ 1024, %2107 ], [ %2115, %2114 ]
  br label %2118

2118:                                             ; preds = %2116, %2103
  %2119 = phi i32 [ 1, %2103 ], [ %2117, %2116 ]
  %2120 = sext i32 %2119 to i64
  %2121 = sub i64 %2088, %2120
  %2122 = load i32, ptr %3, align 4, !tbaa !5
  %2123 = icmp sgt i32 0, %2122
  br i1 %2123, label %2124, label %2125

2124:                                             ; preds = %2118
  br label %2133

2125:                                             ; preds = %2118
  %2126 = load i32, ptr %3, align 4, !tbaa !5
  %2127 = icmp slt i32 %2126, 1024
  br i1 %2127, label %2128, label %2130

2128:                                             ; preds = %2125
  %2129 = load i32, ptr %3, align 4, !tbaa !5
  br label %2131

2130:                                             ; preds = %2125
  br label %2131

2131:                                             ; preds = %2130, %2128
  %2132 = phi i32 [ %2129, %2128 ], [ 1024, %2130 ]
  br label %2133

2133:                                             ; preds = %2131, %2124
  %2134 = phi i32 [ 1024, %2124 ], [ %2132, %2131 ]
  %2135 = sext i32 %2134 to i64
  %2136 = load i32, ptr %3, align 4, !tbaa !5
  %2137 = icmp sgt i32 0, %2136
  br i1 %2137, label %2138, label %2139

2138:                                             ; preds = %2133
  br label %2147

2139:                                             ; preds = %2133
  %2140 = load i32, ptr %3, align 4, !tbaa !5
  %2141 = icmp slt i32 %2140, 1024
  br i1 %2141, label %2142, label %2144

2142:                                             ; preds = %2139
  %2143 = load i32, ptr %3, align 4, !tbaa !5
  br label %2145

2144:                                             ; preds = %2139
  br label %2145

2145:                                             ; preds = %2144, %2142
  %2146 = phi i32 [ %2143, %2142 ], [ 1024, %2144 ]
  br label %2147

2147:                                             ; preds = %2145, %2138
  %2148 = phi i32 [ 1024, %2138 ], [ %2146, %2145 ]
  %2149 = icmp slt i32 1, %2148
  br i1 %2149, label %2150, label %2151

2150:                                             ; preds = %2147
  br label %2165

2151:                                             ; preds = %2147
  %2152 = load i32, ptr %3, align 4, !tbaa !5
  %2153 = icmp sgt i32 0, %2152
  br i1 %2153, label %2154, label %2155

2154:                                             ; preds = %2151
  br label %2163

2155:                                             ; preds = %2151
  %2156 = load i32, ptr %3, align 4, !tbaa !5
  %2157 = icmp slt i32 %2156, 1024
  br i1 %2157, label %2158, label %2160

2158:                                             ; preds = %2155
  %2159 = load i32, ptr %3, align 4, !tbaa !5
  br label %2161

2160:                                             ; preds = %2155
  br label %2161

2161:                                             ; preds = %2160, %2158
  %2162 = phi i32 [ %2159, %2158 ], [ 1024, %2160 ]
  br label %2163

2163:                                             ; preds = %2161, %2154
  %2164 = phi i32 [ 1024, %2154 ], [ %2162, %2161 ]
  br label %2165

2165:                                             ; preds = %2163, %2150
  %2166 = phi i32 [ 1, %2150 ], [ %2164, %2163 ]
  %2167 = sext i32 %2166 to i64
  %2168 = sub i64 %2135, %2167
  %2169 = lshr i64 %2168, 1
  %2170 = or i64 %2121, %2169
  %2171 = lshr i64 %2170, 2
  %2172 = or i64 %2074, %2171
  %2173 = load i32, ptr %3, align 4, !tbaa !5
  %2174 = icmp sgt i32 0, %2173
  br i1 %2174, label %2175, label %2176

2175:                                             ; preds = %2165
  br label %2184

2176:                                             ; preds = %2165
  %2177 = load i32, ptr %3, align 4, !tbaa !5
  %2178 = icmp slt i32 %2177, 1024
  br i1 %2178, label %2179, label %2181

2179:                                             ; preds = %2176
  %2180 = load i32, ptr %3, align 4, !tbaa !5
  br label %2182

2181:                                             ; preds = %2176
  br label %2182

2182:                                             ; preds = %2181, %2179
  %2183 = phi i32 [ %2180, %2179 ], [ 1024, %2181 ]
  br label %2184

2184:                                             ; preds = %2182, %2175
  %2185 = phi i32 [ 1024, %2175 ], [ %2183, %2182 ]
  %2186 = sext i32 %2185 to i64
  %2187 = load i32, ptr %3, align 4, !tbaa !5
  %2188 = icmp sgt i32 0, %2187
  br i1 %2188, label %2189, label %2190

2189:                                             ; preds = %2184
  br label %2198

2190:                                             ; preds = %2184
  %2191 = load i32, ptr %3, align 4, !tbaa !5
  %2192 = icmp slt i32 %2191, 1024
  br i1 %2192, label %2193, label %2195

2193:                                             ; preds = %2190
  %2194 = load i32, ptr %3, align 4, !tbaa !5
  br label %2196

2195:                                             ; preds = %2190
  br label %2196

2196:                                             ; preds = %2195, %2193
  %2197 = phi i32 [ %2194, %2193 ], [ 1024, %2195 ]
  br label %2198

2198:                                             ; preds = %2196, %2189
  %2199 = phi i32 [ 1024, %2189 ], [ %2197, %2196 ]
  %2200 = icmp slt i32 1, %2199
  br i1 %2200, label %2201, label %2202

2201:                                             ; preds = %2198
  br label %2216

2202:                                             ; preds = %2198
  %2203 = load i32, ptr %3, align 4, !tbaa !5
  %2204 = icmp sgt i32 0, %2203
  br i1 %2204, label %2205, label %2206

2205:                                             ; preds = %2202
  br label %2214

2206:                                             ; preds = %2202
  %2207 = load i32, ptr %3, align 4, !tbaa !5
  %2208 = icmp slt i32 %2207, 1024
  br i1 %2208, label %2209, label %2211

2209:                                             ; preds = %2206
  %2210 = load i32, ptr %3, align 4, !tbaa !5
  br label %2212

2211:                                             ; preds = %2206
  br label %2212

2212:                                             ; preds = %2211, %2209
  %2213 = phi i32 [ %2210, %2209 ], [ 1024, %2211 ]
  br label %2214

2214:                                             ; preds = %2212, %2205
  %2215 = phi i32 [ 1024, %2205 ], [ %2213, %2212 ]
  br label %2216

2216:                                             ; preds = %2214, %2201
  %2217 = phi i32 [ 1, %2201 ], [ %2215, %2214 ]
  %2218 = sext i32 %2217 to i64
  %2219 = sub i64 %2186, %2218
  %2220 = load i32, ptr %3, align 4, !tbaa !5
  %2221 = icmp sgt i32 0, %2220
  br i1 %2221, label %2222, label %2223

2222:                                             ; preds = %2216
  br label %2231

2223:                                             ; preds = %2216
  %2224 = load i32, ptr %3, align 4, !tbaa !5
  %2225 = icmp slt i32 %2224, 1024
  br i1 %2225, label %2226, label %2228

2226:                                             ; preds = %2223
  %2227 = load i32, ptr %3, align 4, !tbaa !5
  br label %2229

2228:                                             ; preds = %2223
  br label %2229

2229:                                             ; preds = %2228, %2226
  %2230 = phi i32 [ %2227, %2226 ], [ 1024, %2228 ]
  br label %2231

2231:                                             ; preds = %2229, %2222
  %2232 = phi i32 [ 1024, %2222 ], [ %2230, %2229 ]
  %2233 = sext i32 %2232 to i64
  %2234 = load i32, ptr %3, align 4, !tbaa !5
  %2235 = icmp sgt i32 0, %2234
  br i1 %2235, label %2236, label %2237

2236:                                             ; preds = %2231
  br label %2245

2237:                                             ; preds = %2231
  %2238 = load i32, ptr %3, align 4, !tbaa !5
  %2239 = icmp slt i32 %2238, 1024
  br i1 %2239, label %2240, label %2242

2240:                                             ; preds = %2237
  %2241 = load i32, ptr %3, align 4, !tbaa !5
  br label %2243

2242:                                             ; preds = %2237
  br label %2243

2243:                                             ; preds = %2242, %2240
  %2244 = phi i32 [ %2241, %2240 ], [ 1024, %2242 ]
  br label %2245

2245:                                             ; preds = %2243, %2236
  %2246 = phi i32 [ 1024, %2236 ], [ %2244, %2243 ]
  %2247 = icmp slt i32 1, %2246
  br i1 %2247, label %2248, label %2249

2248:                                             ; preds = %2245
  br label %2263

2249:                                             ; preds = %2245
  %2250 = load i32, ptr %3, align 4, !tbaa !5
  %2251 = icmp sgt i32 0, %2250
  br i1 %2251, label %2252, label %2253

2252:                                             ; preds = %2249
  br label %2261

2253:                                             ; preds = %2249
  %2254 = load i32, ptr %3, align 4, !tbaa !5
  %2255 = icmp slt i32 %2254, 1024
  br i1 %2255, label %2256, label %2258

2256:                                             ; preds = %2253
  %2257 = load i32, ptr %3, align 4, !tbaa !5
  br label %2259

2258:                                             ; preds = %2253
  br label %2259

2259:                                             ; preds = %2258, %2256
  %2260 = phi i32 [ %2257, %2256 ], [ 1024, %2258 ]
  br label %2261

2261:                                             ; preds = %2259, %2252
  %2262 = phi i32 [ 1024, %2252 ], [ %2260, %2259 ]
  br label %2263

2263:                                             ; preds = %2261, %2248
  %2264 = phi i32 [ 1, %2248 ], [ %2262, %2261 ]
  %2265 = sext i32 %2264 to i64
  %2266 = sub i64 %2233, %2265
  %2267 = lshr i64 %2266, 1
  %2268 = or i64 %2219, %2267
  %2269 = load i32, ptr %3, align 4, !tbaa !5
  %2270 = icmp sgt i32 0, %2269
  br i1 %2270, label %2271, label %2272

2271:                                             ; preds = %2263
  br label %2280

2272:                                             ; preds = %2263
  %2273 = load i32, ptr %3, align 4, !tbaa !5
  %2274 = icmp slt i32 %2273, 1024
  br i1 %2274, label %2275, label %2277

2275:                                             ; preds = %2272
  %2276 = load i32, ptr %3, align 4, !tbaa !5
  br label %2278

2277:                                             ; preds = %2272
  br label %2278

2278:                                             ; preds = %2277, %2275
  %2279 = phi i32 [ %2276, %2275 ], [ 1024, %2277 ]
  br label %2280

2280:                                             ; preds = %2278, %2271
  %2281 = phi i32 [ 1024, %2271 ], [ %2279, %2278 ]
  %2282 = sext i32 %2281 to i64
  %2283 = load i32, ptr %3, align 4, !tbaa !5
  %2284 = icmp sgt i32 0, %2283
  br i1 %2284, label %2285, label %2286

2285:                                             ; preds = %2280
  br label %2294

2286:                                             ; preds = %2280
  %2287 = load i32, ptr %3, align 4, !tbaa !5
  %2288 = icmp slt i32 %2287, 1024
  br i1 %2288, label %2289, label %2291

2289:                                             ; preds = %2286
  %2290 = load i32, ptr %3, align 4, !tbaa !5
  br label %2292

2291:                                             ; preds = %2286
  br label %2292

2292:                                             ; preds = %2291, %2289
  %2293 = phi i32 [ %2290, %2289 ], [ 1024, %2291 ]
  br label %2294

2294:                                             ; preds = %2292, %2285
  %2295 = phi i32 [ 1024, %2285 ], [ %2293, %2292 ]
  %2296 = icmp slt i32 1, %2295
  br i1 %2296, label %2297, label %2298

2297:                                             ; preds = %2294
  br label %2312

2298:                                             ; preds = %2294
  %2299 = load i32, ptr %3, align 4, !tbaa !5
  %2300 = icmp sgt i32 0, %2299
  br i1 %2300, label %2301, label %2302

2301:                                             ; preds = %2298
  br label %2310

2302:                                             ; preds = %2298
  %2303 = load i32, ptr %3, align 4, !tbaa !5
  %2304 = icmp slt i32 %2303, 1024
  br i1 %2304, label %2305, label %2307

2305:                                             ; preds = %2302
  %2306 = load i32, ptr %3, align 4, !tbaa !5
  br label %2308

2307:                                             ; preds = %2302
  br label %2308

2308:                                             ; preds = %2307, %2305
  %2309 = phi i32 [ %2306, %2305 ], [ 1024, %2307 ]
  br label %2310

2310:                                             ; preds = %2308, %2301
  %2311 = phi i32 [ 1024, %2301 ], [ %2309, %2308 ]
  br label %2312

2312:                                             ; preds = %2310, %2297
  %2313 = phi i32 [ 1, %2297 ], [ %2311, %2310 ]
  %2314 = sext i32 %2313 to i64
  %2315 = sub i64 %2282, %2314
  %2316 = load i32, ptr %3, align 4, !tbaa !5
  %2317 = icmp sgt i32 0, %2316
  br i1 %2317, label %2318, label %2319

2318:                                             ; preds = %2312
  br label %2327

2319:                                             ; preds = %2312
  %2320 = load i32, ptr %3, align 4, !tbaa !5
  %2321 = icmp slt i32 %2320, 1024
  br i1 %2321, label %2322, label %2324

2322:                                             ; preds = %2319
  %2323 = load i32, ptr %3, align 4, !tbaa !5
  br label %2325

2324:                                             ; preds = %2319
  br label %2325

2325:                                             ; preds = %2324, %2322
  %2326 = phi i32 [ %2323, %2322 ], [ 1024, %2324 ]
  br label %2327

2327:                                             ; preds = %2325, %2318
  %2328 = phi i32 [ 1024, %2318 ], [ %2326, %2325 ]
  %2329 = sext i32 %2328 to i64
  %2330 = load i32, ptr %3, align 4, !tbaa !5
  %2331 = icmp sgt i32 0, %2330
  br i1 %2331, label %2332, label %2333

2332:                                             ; preds = %2327
  br label %2341

2333:                                             ; preds = %2327
  %2334 = load i32, ptr %3, align 4, !tbaa !5
  %2335 = icmp slt i32 %2334, 1024
  br i1 %2335, label %2336, label %2338

2336:                                             ; preds = %2333
  %2337 = load i32, ptr %3, align 4, !tbaa !5
  br label %2339

2338:                                             ; preds = %2333
  br label %2339

2339:                                             ; preds = %2338, %2336
  %2340 = phi i32 [ %2337, %2336 ], [ 1024, %2338 ]
  br label %2341

2341:                                             ; preds = %2339, %2332
  %2342 = phi i32 [ 1024, %2332 ], [ %2340, %2339 ]
  %2343 = icmp slt i32 1, %2342
  br i1 %2343, label %2344, label %2345

2344:                                             ; preds = %2341
  br label %2359

2345:                                             ; preds = %2341
  %2346 = load i32, ptr %3, align 4, !tbaa !5
  %2347 = icmp sgt i32 0, %2346
  br i1 %2347, label %2348, label %2349

2348:                                             ; preds = %2345
  br label %2357

2349:                                             ; preds = %2345
  %2350 = load i32, ptr %3, align 4, !tbaa !5
  %2351 = icmp slt i32 %2350, 1024
  br i1 %2351, label %2352, label %2354

2352:                                             ; preds = %2349
  %2353 = load i32, ptr %3, align 4, !tbaa !5
  br label %2355

2354:                                             ; preds = %2349
  br label %2355

2355:                                             ; preds = %2354, %2352
  %2356 = phi i32 [ %2353, %2352 ], [ 1024, %2354 ]
  br label %2357

2357:                                             ; preds = %2355, %2348
  %2358 = phi i32 [ 1024, %2348 ], [ %2356, %2355 ]
  br label %2359

2359:                                             ; preds = %2357, %2344
  %2360 = phi i32 [ 1, %2344 ], [ %2358, %2357 ]
  %2361 = sext i32 %2360 to i64
  %2362 = sub i64 %2329, %2361
  %2363 = lshr i64 %2362, 1
  %2364 = or i64 %2315, %2363
  %2365 = lshr i64 %2364, 2
  %2366 = or i64 %2268, %2365
  %2367 = lshr i64 %2366, 4
  %2368 = or i64 %2172, %2367
  %2369 = lshr i64 %2368, 8
  %2370 = or i64 %1978, %2369
  %2371 = load i32, ptr %3, align 4, !tbaa !5
  %2372 = icmp sgt i32 0, %2371
  br i1 %2372, label %2373, label %2374

2373:                                             ; preds = %2359
  br label %2382

2374:                                             ; preds = %2359
  %2375 = load i32, ptr %3, align 4, !tbaa !5
  %2376 = icmp slt i32 %2375, 1024
  br i1 %2376, label %2377, label %2379

2377:                                             ; preds = %2374
  %2378 = load i32, ptr %3, align 4, !tbaa !5
  br label %2380

2379:                                             ; preds = %2374
  br label %2380

2380:                                             ; preds = %2379, %2377
  %2381 = phi i32 [ %2378, %2377 ], [ 1024, %2379 ]
  br label %2382

2382:                                             ; preds = %2380, %2373
  %2383 = phi i32 [ 1024, %2373 ], [ %2381, %2380 ]
  %2384 = sext i32 %2383 to i64
  %2385 = load i32, ptr %3, align 4, !tbaa !5
  %2386 = icmp sgt i32 0, %2385
  br i1 %2386, label %2387, label %2388

2387:                                             ; preds = %2382
  br label %2396

2388:                                             ; preds = %2382
  %2389 = load i32, ptr %3, align 4, !tbaa !5
  %2390 = icmp slt i32 %2389, 1024
  br i1 %2390, label %2391, label %2393

2391:                                             ; preds = %2388
  %2392 = load i32, ptr %3, align 4, !tbaa !5
  br label %2394

2393:                                             ; preds = %2388
  br label %2394

2394:                                             ; preds = %2393, %2391
  %2395 = phi i32 [ %2392, %2391 ], [ 1024, %2393 ]
  br label %2396

2396:                                             ; preds = %2394, %2387
  %2397 = phi i32 [ 1024, %2387 ], [ %2395, %2394 ]
  %2398 = icmp slt i32 1, %2397
  br i1 %2398, label %2399, label %2400

2399:                                             ; preds = %2396
  br label %2414

2400:                                             ; preds = %2396
  %2401 = load i32, ptr %3, align 4, !tbaa !5
  %2402 = icmp sgt i32 0, %2401
  br i1 %2402, label %2403, label %2404

2403:                                             ; preds = %2400
  br label %2412

2404:                                             ; preds = %2400
  %2405 = load i32, ptr %3, align 4, !tbaa !5
  %2406 = icmp slt i32 %2405, 1024
  br i1 %2406, label %2407, label %2409

2407:                                             ; preds = %2404
  %2408 = load i32, ptr %3, align 4, !tbaa !5
  br label %2410

2409:                                             ; preds = %2404
  br label %2410

2410:                                             ; preds = %2409, %2407
  %2411 = phi i32 [ %2408, %2407 ], [ 1024, %2409 ]
  br label %2412

2412:                                             ; preds = %2410, %2403
  %2413 = phi i32 [ 1024, %2403 ], [ %2411, %2410 ]
  br label %2414

2414:                                             ; preds = %2412, %2399
  %2415 = phi i32 [ 1, %2399 ], [ %2413, %2412 ]
  %2416 = sext i32 %2415 to i64
  %2417 = sub i64 %2384, %2416
  %2418 = load i32, ptr %3, align 4, !tbaa !5
  %2419 = icmp sgt i32 0, %2418
  br i1 %2419, label %2420, label %2421

2420:                                             ; preds = %2414
  br label %2429

2421:                                             ; preds = %2414
  %2422 = load i32, ptr %3, align 4, !tbaa !5
  %2423 = icmp slt i32 %2422, 1024
  br i1 %2423, label %2424, label %2426

2424:                                             ; preds = %2421
  %2425 = load i32, ptr %3, align 4, !tbaa !5
  br label %2427

2426:                                             ; preds = %2421
  br label %2427

2427:                                             ; preds = %2426, %2424
  %2428 = phi i32 [ %2425, %2424 ], [ 1024, %2426 ]
  br label %2429

2429:                                             ; preds = %2427, %2420
  %2430 = phi i32 [ 1024, %2420 ], [ %2428, %2427 ]
  %2431 = sext i32 %2430 to i64
  %2432 = load i32, ptr %3, align 4, !tbaa !5
  %2433 = icmp sgt i32 0, %2432
  br i1 %2433, label %2434, label %2435

2434:                                             ; preds = %2429
  br label %2443

2435:                                             ; preds = %2429
  %2436 = load i32, ptr %3, align 4, !tbaa !5
  %2437 = icmp slt i32 %2436, 1024
  br i1 %2437, label %2438, label %2440

2438:                                             ; preds = %2435
  %2439 = load i32, ptr %3, align 4, !tbaa !5
  br label %2441

2440:                                             ; preds = %2435
  br label %2441

2441:                                             ; preds = %2440, %2438
  %2442 = phi i32 [ %2439, %2438 ], [ 1024, %2440 ]
  br label %2443

2443:                                             ; preds = %2441, %2434
  %2444 = phi i32 [ 1024, %2434 ], [ %2442, %2441 ]
  %2445 = icmp slt i32 1, %2444
  br i1 %2445, label %2446, label %2447

2446:                                             ; preds = %2443
  br label %2461

2447:                                             ; preds = %2443
  %2448 = load i32, ptr %3, align 4, !tbaa !5
  %2449 = icmp sgt i32 0, %2448
  br i1 %2449, label %2450, label %2451

2450:                                             ; preds = %2447
  br label %2459

2451:                                             ; preds = %2447
  %2452 = load i32, ptr %3, align 4, !tbaa !5
  %2453 = icmp slt i32 %2452, 1024
  br i1 %2453, label %2454, label %2456

2454:                                             ; preds = %2451
  %2455 = load i32, ptr %3, align 4, !tbaa !5
  br label %2457

2456:                                             ; preds = %2451
  br label %2457

2457:                                             ; preds = %2456, %2454
  %2458 = phi i32 [ %2455, %2454 ], [ 1024, %2456 ]
  br label %2459

2459:                                             ; preds = %2457, %2450
  %2460 = phi i32 [ 1024, %2450 ], [ %2458, %2457 ]
  br label %2461

2461:                                             ; preds = %2459, %2446
  %2462 = phi i32 [ 1, %2446 ], [ %2460, %2459 ]
  %2463 = sext i32 %2462 to i64
  %2464 = sub i64 %2431, %2463
  %2465 = lshr i64 %2464, 1
  %2466 = or i64 %2417, %2465
  %2467 = load i32, ptr %3, align 4, !tbaa !5
  %2468 = icmp sgt i32 0, %2467
  br i1 %2468, label %2469, label %2470

2469:                                             ; preds = %2461
  br label %2478

2470:                                             ; preds = %2461
  %2471 = load i32, ptr %3, align 4, !tbaa !5
  %2472 = icmp slt i32 %2471, 1024
  br i1 %2472, label %2473, label %2475

2473:                                             ; preds = %2470
  %2474 = load i32, ptr %3, align 4, !tbaa !5
  br label %2476

2475:                                             ; preds = %2470
  br label %2476

2476:                                             ; preds = %2475, %2473
  %2477 = phi i32 [ %2474, %2473 ], [ 1024, %2475 ]
  br label %2478

2478:                                             ; preds = %2476, %2469
  %2479 = phi i32 [ 1024, %2469 ], [ %2477, %2476 ]
  %2480 = sext i32 %2479 to i64
  %2481 = load i32, ptr %3, align 4, !tbaa !5
  %2482 = icmp sgt i32 0, %2481
  br i1 %2482, label %2483, label %2484

2483:                                             ; preds = %2478
  br label %2492

2484:                                             ; preds = %2478
  %2485 = load i32, ptr %3, align 4, !tbaa !5
  %2486 = icmp slt i32 %2485, 1024
  br i1 %2486, label %2487, label %2489

2487:                                             ; preds = %2484
  %2488 = load i32, ptr %3, align 4, !tbaa !5
  br label %2490

2489:                                             ; preds = %2484
  br label %2490

2490:                                             ; preds = %2489, %2487
  %2491 = phi i32 [ %2488, %2487 ], [ 1024, %2489 ]
  br label %2492

2492:                                             ; preds = %2490, %2483
  %2493 = phi i32 [ 1024, %2483 ], [ %2491, %2490 ]
  %2494 = icmp slt i32 1, %2493
  br i1 %2494, label %2495, label %2496

2495:                                             ; preds = %2492
  br label %2510

2496:                                             ; preds = %2492
  %2497 = load i32, ptr %3, align 4, !tbaa !5
  %2498 = icmp sgt i32 0, %2497
  br i1 %2498, label %2499, label %2500

2499:                                             ; preds = %2496
  br label %2508

2500:                                             ; preds = %2496
  %2501 = load i32, ptr %3, align 4, !tbaa !5
  %2502 = icmp slt i32 %2501, 1024
  br i1 %2502, label %2503, label %2505

2503:                                             ; preds = %2500
  %2504 = load i32, ptr %3, align 4, !tbaa !5
  br label %2506

2505:                                             ; preds = %2500
  br label %2506

2506:                                             ; preds = %2505, %2503
  %2507 = phi i32 [ %2504, %2503 ], [ 1024, %2505 ]
  br label %2508

2508:                                             ; preds = %2506, %2499
  %2509 = phi i32 [ 1024, %2499 ], [ %2507, %2506 ]
  br label %2510

2510:                                             ; preds = %2508, %2495
  %2511 = phi i32 [ 1, %2495 ], [ %2509, %2508 ]
  %2512 = sext i32 %2511 to i64
  %2513 = sub i64 %2480, %2512
  %2514 = load i32, ptr %3, align 4, !tbaa !5
  %2515 = icmp sgt i32 0, %2514
  br i1 %2515, label %2516, label %2517

2516:                                             ; preds = %2510
  br label %2525

2517:                                             ; preds = %2510
  %2518 = load i32, ptr %3, align 4, !tbaa !5
  %2519 = icmp slt i32 %2518, 1024
  br i1 %2519, label %2520, label %2522

2520:                                             ; preds = %2517
  %2521 = load i32, ptr %3, align 4, !tbaa !5
  br label %2523

2522:                                             ; preds = %2517
  br label %2523

2523:                                             ; preds = %2522, %2520
  %2524 = phi i32 [ %2521, %2520 ], [ 1024, %2522 ]
  br label %2525

2525:                                             ; preds = %2523, %2516
  %2526 = phi i32 [ 1024, %2516 ], [ %2524, %2523 ]
  %2527 = sext i32 %2526 to i64
  %2528 = load i32, ptr %3, align 4, !tbaa !5
  %2529 = icmp sgt i32 0, %2528
  br i1 %2529, label %2530, label %2531

2530:                                             ; preds = %2525
  br label %2539

2531:                                             ; preds = %2525
  %2532 = load i32, ptr %3, align 4, !tbaa !5
  %2533 = icmp slt i32 %2532, 1024
  br i1 %2533, label %2534, label %2536

2534:                                             ; preds = %2531
  %2535 = load i32, ptr %3, align 4, !tbaa !5
  br label %2537

2536:                                             ; preds = %2531
  br label %2537

2537:                                             ; preds = %2536, %2534
  %2538 = phi i32 [ %2535, %2534 ], [ 1024, %2536 ]
  br label %2539

2539:                                             ; preds = %2537, %2530
  %2540 = phi i32 [ 1024, %2530 ], [ %2538, %2537 ]
  %2541 = icmp slt i32 1, %2540
  br i1 %2541, label %2542, label %2543

2542:                                             ; preds = %2539
  br label %2557

2543:                                             ; preds = %2539
  %2544 = load i32, ptr %3, align 4, !tbaa !5
  %2545 = icmp sgt i32 0, %2544
  br i1 %2545, label %2546, label %2547

2546:                                             ; preds = %2543
  br label %2555

2547:                                             ; preds = %2543
  %2548 = load i32, ptr %3, align 4, !tbaa !5
  %2549 = icmp slt i32 %2548, 1024
  br i1 %2549, label %2550, label %2552

2550:                                             ; preds = %2547
  %2551 = load i32, ptr %3, align 4, !tbaa !5
  br label %2553

2552:                                             ; preds = %2547
  br label %2553

2553:                                             ; preds = %2552, %2550
  %2554 = phi i32 [ %2551, %2550 ], [ 1024, %2552 ]
  br label %2555

2555:                                             ; preds = %2553, %2546
  %2556 = phi i32 [ 1024, %2546 ], [ %2554, %2553 ]
  br label %2557

2557:                                             ; preds = %2555, %2542
  %2558 = phi i32 [ 1, %2542 ], [ %2556, %2555 ]
  %2559 = sext i32 %2558 to i64
  %2560 = sub i64 %2527, %2559
  %2561 = lshr i64 %2560, 1
  %2562 = or i64 %2513, %2561
  %2563 = lshr i64 %2562, 2
  %2564 = or i64 %2466, %2563
  %2565 = load i32, ptr %3, align 4, !tbaa !5
  %2566 = icmp sgt i32 0, %2565
  br i1 %2566, label %2567, label %2568

2567:                                             ; preds = %2557
  br label %2576

2568:                                             ; preds = %2557
  %2569 = load i32, ptr %3, align 4, !tbaa !5
  %2570 = icmp slt i32 %2569, 1024
  br i1 %2570, label %2571, label %2573

2571:                                             ; preds = %2568
  %2572 = load i32, ptr %3, align 4, !tbaa !5
  br label %2574

2573:                                             ; preds = %2568
  br label %2574

2574:                                             ; preds = %2573, %2571
  %2575 = phi i32 [ %2572, %2571 ], [ 1024, %2573 ]
  br label %2576

2576:                                             ; preds = %2574, %2567
  %2577 = phi i32 [ 1024, %2567 ], [ %2575, %2574 ]
  %2578 = sext i32 %2577 to i64
  %2579 = load i32, ptr %3, align 4, !tbaa !5
  %2580 = icmp sgt i32 0, %2579
  br i1 %2580, label %2581, label %2582

2581:                                             ; preds = %2576
  br label %2590

2582:                                             ; preds = %2576
  %2583 = load i32, ptr %3, align 4, !tbaa !5
  %2584 = icmp slt i32 %2583, 1024
  br i1 %2584, label %2585, label %2587

2585:                                             ; preds = %2582
  %2586 = load i32, ptr %3, align 4, !tbaa !5
  br label %2588

2587:                                             ; preds = %2582
  br label %2588

2588:                                             ; preds = %2587, %2585
  %2589 = phi i32 [ %2586, %2585 ], [ 1024, %2587 ]
  br label %2590

2590:                                             ; preds = %2588, %2581
  %2591 = phi i32 [ 1024, %2581 ], [ %2589, %2588 ]
  %2592 = icmp slt i32 1, %2591
  br i1 %2592, label %2593, label %2594

2593:                                             ; preds = %2590
  br label %2608

2594:                                             ; preds = %2590
  %2595 = load i32, ptr %3, align 4, !tbaa !5
  %2596 = icmp sgt i32 0, %2595
  br i1 %2596, label %2597, label %2598

2597:                                             ; preds = %2594
  br label %2606

2598:                                             ; preds = %2594
  %2599 = load i32, ptr %3, align 4, !tbaa !5
  %2600 = icmp slt i32 %2599, 1024
  br i1 %2600, label %2601, label %2603

2601:                                             ; preds = %2598
  %2602 = load i32, ptr %3, align 4, !tbaa !5
  br label %2604

2603:                                             ; preds = %2598
  br label %2604

2604:                                             ; preds = %2603, %2601
  %2605 = phi i32 [ %2602, %2601 ], [ 1024, %2603 ]
  br label %2606

2606:                                             ; preds = %2604, %2597
  %2607 = phi i32 [ 1024, %2597 ], [ %2605, %2604 ]
  br label %2608

2608:                                             ; preds = %2606, %2593
  %2609 = phi i32 [ 1, %2593 ], [ %2607, %2606 ]
  %2610 = sext i32 %2609 to i64
  %2611 = sub i64 %2578, %2610
  %2612 = load i32, ptr %3, align 4, !tbaa !5
  %2613 = icmp sgt i32 0, %2612
  br i1 %2613, label %2614, label %2615

2614:                                             ; preds = %2608
  br label %2623

2615:                                             ; preds = %2608
  %2616 = load i32, ptr %3, align 4, !tbaa !5
  %2617 = icmp slt i32 %2616, 1024
  br i1 %2617, label %2618, label %2620

2618:                                             ; preds = %2615
  %2619 = load i32, ptr %3, align 4, !tbaa !5
  br label %2621

2620:                                             ; preds = %2615
  br label %2621

2621:                                             ; preds = %2620, %2618
  %2622 = phi i32 [ %2619, %2618 ], [ 1024, %2620 ]
  br label %2623

2623:                                             ; preds = %2621, %2614
  %2624 = phi i32 [ 1024, %2614 ], [ %2622, %2621 ]
  %2625 = sext i32 %2624 to i64
  %2626 = load i32, ptr %3, align 4, !tbaa !5
  %2627 = icmp sgt i32 0, %2626
  br i1 %2627, label %2628, label %2629

2628:                                             ; preds = %2623
  br label %2637

2629:                                             ; preds = %2623
  %2630 = load i32, ptr %3, align 4, !tbaa !5
  %2631 = icmp slt i32 %2630, 1024
  br i1 %2631, label %2632, label %2634

2632:                                             ; preds = %2629
  %2633 = load i32, ptr %3, align 4, !tbaa !5
  br label %2635

2634:                                             ; preds = %2629
  br label %2635

2635:                                             ; preds = %2634, %2632
  %2636 = phi i32 [ %2633, %2632 ], [ 1024, %2634 ]
  br label %2637

2637:                                             ; preds = %2635, %2628
  %2638 = phi i32 [ 1024, %2628 ], [ %2636, %2635 ]
  %2639 = icmp slt i32 1, %2638
  br i1 %2639, label %2640, label %2641

2640:                                             ; preds = %2637
  br label %2655

2641:                                             ; preds = %2637
  %2642 = load i32, ptr %3, align 4, !tbaa !5
  %2643 = icmp sgt i32 0, %2642
  br i1 %2643, label %2644, label %2645

2644:                                             ; preds = %2641
  br label %2653

2645:                                             ; preds = %2641
  %2646 = load i32, ptr %3, align 4, !tbaa !5
  %2647 = icmp slt i32 %2646, 1024
  br i1 %2647, label %2648, label %2650

2648:                                             ; preds = %2645
  %2649 = load i32, ptr %3, align 4, !tbaa !5
  br label %2651

2650:                                             ; preds = %2645
  br label %2651

2651:                                             ; preds = %2650, %2648
  %2652 = phi i32 [ %2649, %2648 ], [ 1024, %2650 ]
  br label %2653

2653:                                             ; preds = %2651, %2644
  %2654 = phi i32 [ 1024, %2644 ], [ %2652, %2651 ]
  br label %2655

2655:                                             ; preds = %2653, %2640
  %2656 = phi i32 [ 1, %2640 ], [ %2654, %2653 ]
  %2657 = sext i32 %2656 to i64
  %2658 = sub i64 %2625, %2657
  %2659 = lshr i64 %2658, 1
  %2660 = or i64 %2611, %2659
  %2661 = load i32, ptr %3, align 4, !tbaa !5
  %2662 = icmp sgt i32 0, %2661
  br i1 %2662, label %2663, label %2664

2663:                                             ; preds = %2655
  br label %2672

2664:                                             ; preds = %2655
  %2665 = load i32, ptr %3, align 4, !tbaa !5
  %2666 = icmp slt i32 %2665, 1024
  br i1 %2666, label %2667, label %2669

2667:                                             ; preds = %2664
  %2668 = load i32, ptr %3, align 4, !tbaa !5
  br label %2670

2669:                                             ; preds = %2664
  br label %2670

2670:                                             ; preds = %2669, %2667
  %2671 = phi i32 [ %2668, %2667 ], [ 1024, %2669 ]
  br label %2672

2672:                                             ; preds = %2670, %2663
  %2673 = phi i32 [ 1024, %2663 ], [ %2671, %2670 ]
  %2674 = sext i32 %2673 to i64
  %2675 = load i32, ptr %3, align 4, !tbaa !5
  %2676 = icmp sgt i32 0, %2675
  br i1 %2676, label %2677, label %2678

2677:                                             ; preds = %2672
  br label %2686

2678:                                             ; preds = %2672
  %2679 = load i32, ptr %3, align 4, !tbaa !5
  %2680 = icmp slt i32 %2679, 1024
  br i1 %2680, label %2681, label %2683

2681:                                             ; preds = %2678
  %2682 = load i32, ptr %3, align 4, !tbaa !5
  br label %2684

2683:                                             ; preds = %2678
  br label %2684

2684:                                             ; preds = %2683, %2681
  %2685 = phi i32 [ %2682, %2681 ], [ 1024, %2683 ]
  br label %2686

2686:                                             ; preds = %2684, %2677
  %2687 = phi i32 [ 1024, %2677 ], [ %2685, %2684 ]
  %2688 = icmp slt i32 1, %2687
  br i1 %2688, label %2689, label %2690

2689:                                             ; preds = %2686
  br label %2704

2690:                                             ; preds = %2686
  %2691 = load i32, ptr %3, align 4, !tbaa !5
  %2692 = icmp sgt i32 0, %2691
  br i1 %2692, label %2693, label %2694

2693:                                             ; preds = %2690
  br label %2702

2694:                                             ; preds = %2690
  %2695 = load i32, ptr %3, align 4, !tbaa !5
  %2696 = icmp slt i32 %2695, 1024
  br i1 %2696, label %2697, label %2699

2697:                                             ; preds = %2694
  %2698 = load i32, ptr %3, align 4, !tbaa !5
  br label %2700

2699:                                             ; preds = %2694
  br label %2700

2700:                                             ; preds = %2699, %2697
  %2701 = phi i32 [ %2698, %2697 ], [ 1024, %2699 ]
  br label %2702

2702:                                             ; preds = %2700, %2693
  %2703 = phi i32 [ 1024, %2693 ], [ %2701, %2700 ]
  br label %2704

2704:                                             ; preds = %2702, %2689
  %2705 = phi i32 [ 1, %2689 ], [ %2703, %2702 ]
  %2706 = sext i32 %2705 to i64
  %2707 = sub i64 %2674, %2706
  %2708 = load i32, ptr %3, align 4, !tbaa !5
  %2709 = icmp sgt i32 0, %2708
  br i1 %2709, label %2710, label %2711

2710:                                             ; preds = %2704
  br label %2719

2711:                                             ; preds = %2704
  %2712 = load i32, ptr %3, align 4, !tbaa !5
  %2713 = icmp slt i32 %2712, 1024
  br i1 %2713, label %2714, label %2716

2714:                                             ; preds = %2711
  %2715 = load i32, ptr %3, align 4, !tbaa !5
  br label %2717

2716:                                             ; preds = %2711
  br label %2717

2717:                                             ; preds = %2716, %2714
  %2718 = phi i32 [ %2715, %2714 ], [ 1024, %2716 ]
  br label %2719

2719:                                             ; preds = %2717, %2710
  %2720 = phi i32 [ 1024, %2710 ], [ %2718, %2717 ]
  %2721 = sext i32 %2720 to i64
  %2722 = load i32, ptr %3, align 4, !tbaa !5
  %2723 = icmp sgt i32 0, %2722
  br i1 %2723, label %2724, label %2725

2724:                                             ; preds = %2719
  br label %2733

2725:                                             ; preds = %2719
  %2726 = load i32, ptr %3, align 4, !tbaa !5
  %2727 = icmp slt i32 %2726, 1024
  br i1 %2727, label %2728, label %2730

2728:                                             ; preds = %2725
  %2729 = load i32, ptr %3, align 4, !tbaa !5
  br label %2731

2730:                                             ; preds = %2725
  br label %2731

2731:                                             ; preds = %2730, %2728
  %2732 = phi i32 [ %2729, %2728 ], [ 1024, %2730 ]
  br label %2733

2733:                                             ; preds = %2731, %2724
  %2734 = phi i32 [ 1024, %2724 ], [ %2732, %2731 ]
  %2735 = icmp slt i32 1, %2734
  br i1 %2735, label %2736, label %2737

2736:                                             ; preds = %2733
  br label %2751

2737:                                             ; preds = %2733
  %2738 = load i32, ptr %3, align 4, !tbaa !5
  %2739 = icmp sgt i32 0, %2738
  br i1 %2739, label %2740, label %2741

2740:                                             ; preds = %2737
  br label %2749

2741:                                             ; preds = %2737
  %2742 = load i32, ptr %3, align 4, !tbaa !5
  %2743 = icmp slt i32 %2742, 1024
  br i1 %2743, label %2744, label %2746

2744:                                             ; preds = %2741
  %2745 = load i32, ptr %3, align 4, !tbaa !5
  br label %2747

2746:                                             ; preds = %2741
  br label %2747

2747:                                             ; preds = %2746, %2744
  %2748 = phi i32 [ %2745, %2744 ], [ 1024, %2746 ]
  br label %2749

2749:                                             ; preds = %2747, %2740
  %2750 = phi i32 [ 1024, %2740 ], [ %2748, %2747 ]
  br label %2751

2751:                                             ; preds = %2749, %2736
  %2752 = phi i32 [ 1, %2736 ], [ %2750, %2749 ]
  %2753 = sext i32 %2752 to i64
  %2754 = sub i64 %2721, %2753
  %2755 = lshr i64 %2754, 1
  %2756 = or i64 %2707, %2755
  %2757 = lshr i64 %2756, 2
  %2758 = or i64 %2660, %2757
  %2759 = lshr i64 %2758, 4
  %2760 = or i64 %2564, %2759
  %2761 = load i32, ptr %3, align 4, !tbaa !5
  %2762 = icmp sgt i32 0, %2761
  br i1 %2762, label %2763, label %2764

2763:                                             ; preds = %2751
  br label %2772

2764:                                             ; preds = %2751
  %2765 = load i32, ptr %3, align 4, !tbaa !5
  %2766 = icmp slt i32 %2765, 1024
  br i1 %2766, label %2767, label %2769

2767:                                             ; preds = %2764
  %2768 = load i32, ptr %3, align 4, !tbaa !5
  br label %2770

2769:                                             ; preds = %2764
  br label %2770

2770:                                             ; preds = %2769, %2767
  %2771 = phi i32 [ %2768, %2767 ], [ 1024, %2769 ]
  br label %2772

2772:                                             ; preds = %2770, %2763
  %2773 = phi i32 [ 1024, %2763 ], [ %2771, %2770 ]
  %2774 = sext i32 %2773 to i64
  %2775 = load i32, ptr %3, align 4, !tbaa !5
  %2776 = icmp sgt i32 0, %2775
  br i1 %2776, label %2777, label %2778

2777:                                             ; preds = %2772
  br label %2786

2778:                                             ; preds = %2772
  %2779 = load i32, ptr %3, align 4, !tbaa !5
  %2780 = icmp slt i32 %2779, 1024
  br i1 %2780, label %2781, label %2783

2781:                                             ; preds = %2778
  %2782 = load i32, ptr %3, align 4, !tbaa !5
  br label %2784

2783:                                             ; preds = %2778
  br label %2784

2784:                                             ; preds = %2783, %2781
  %2785 = phi i32 [ %2782, %2781 ], [ 1024, %2783 ]
  br label %2786

2786:                                             ; preds = %2784, %2777
  %2787 = phi i32 [ 1024, %2777 ], [ %2785, %2784 ]
  %2788 = icmp slt i32 1, %2787
  br i1 %2788, label %2789, label %2790

2789:                                             ; preds = %2786
  br label %2804

2790:                                             ; preds = %2786
  %2791 = load i32, ptr %3, align 4, !tbaa !5
  %2792 = icmp sgt i32 0, %2791
  br i1 %2792, label %2793, label %2794

2793:                                             ; preds = %2790
  br label %2802

2794:                                             ; preds = %2790
  %2795 = load i32, ptr %3, align 4, !tbaa !5
  %2796 = icmp slt i32 %2795, 1024
  br i1 %2796, label %2797, label %2799

2797:                                             ; preds = %2794
  %2798 = load i32, ptr %3, align 4, !tbaa !5
  br label %2800

2799:                                             ; preds = %2794
  br label %2800

2800:                                             ; preds = %2799, %2797
  %2801 = phi i32 [ %2798, %2797 ], [ 1024, %2799 ]
  br label %2802

2802:                                             ; preds = %2800, %2793
  %2803 = phi i32 [ 1024, %2793 ], [ %2801, %2800 ]
  br label %2804

2804:                                             ; preds = %2802, %2789
  %2805 = phi i32 [ 1, %2789 ], [ %2803, %2802 ]
  %2806 = sext i32 %2805 to i64
  %2807 = sub i64 %2774, %2806
  %2808 = load i32, ptr %3, align 4, !tbaa !5
  %2809 = icmp sgt i32 0, %2808
  br i1 %2809, label %2810, label %2811

2810:                                             ; preds = %2804
  br label %2819

2811:                                             ; preds = %2804
  %2812 = load i32, ptr %3, align 4, !tbaa !5
  %2813 = icmp slt i32 %2812, 1024
  br i1 %2813, label %2814, label %2816

2814:                                             ; preds = %2811
  %2815 = load i32, ptr %3, align 4, !tbaa !5
  br label %2817

2816:                                             ; preds = %2811
  br label %2817

2817:                                             ; preds = %2816, %2814
  %2818 = phi i32 [ %2815, %2814 ], [ 1024, %2816 ]
  br label %2819

2819:                                             ; preds = %2817, %2810
  %2820 = phi i32 [ 1024, %2810 ], [ %2818, %2817 ]
  %2821 = sext i32 %2820 to i64
  %2822 = load i32, ptr %3, align 4, !tbaa !5
  %2823 = icmp sgt i32 0, %2822
  br i1 %2823, label %2824, label %2825

2824:                                             ; preds = %2819
  br label %2833

2825:                                             ; preds = %2819
  %2826 = load i32, ptr %3, align 4, !tbaa !5
  %2827 = icmp slt i32 %2826, 1024
  br i1 %2827, label %2828, label %2830

2828:                                             ; preds = %2825
  %2829 = load i32, ptr %3, align 4, !tbaa !5
  br label %2831

2830:                                             ; preds = %2825
  br label %2831

2831:                                             ; preds = %2830, %2828
  %2832 = phi i32 [ %2829, %2828 ], [ 1024, %2830 ]
  br label %2833

2833:                                             ; preds = %2831, %2824
  %2834 = phi i32 [ 1024, %2824 ], [ %2832, %2831 ]
  %2835 = icmp slt i32 1, %2834
  br i1 %2835, label %2836, label %2837

2836:                                             ; preds = %2833
  br label %2851

2837:                                             ; preds = %2833
  %2838 = load i32, ptr %3, align 4, !tbaa !5
  %2839 = icmp sgt i32 0, %2838
  br i1 %2839, label %2840, label %2841

2840:                                             ; preds = %2837
  br label %2849

2841:                                             ; preds = %2837
  %2842 = load i32, ptr %3, align 4, !tbaa !5
  %2843 = icmp slt i32 %2842, 1024
  br i1 %2843, label %2844, label %2846

2844:                                             ; preds = %2841
  %2845 = load i32, ptr %3, align 4, !tbaa !5
  br label %2847

2846:                                             ; preds = %2841
  br label %2847

2847:                                             ; preds = %2846, %2844
  %2848 = phi i32 [ %2845, %2844 ], [ 1024, %2846 ]
  br label %2849

2849:                                             ; preds = %2847, %2840
  %2850 = phi i32 [ 1024, %2840 ], [ %2848, %2847 ]
  br label %2851

2851:                                             ; preds = %2849, %2836
  %2852 = phi i32 [ 1, %2836 ], [ %2850, %2849 ]
  %2853 = sext i32 %2852 to i64
  %2854 = sub i64 %2821, %2853
  %2855 = lshr i64 %2854, 1
  %2856 = or i64 %2807, %2855
  %2857 = load i32, ptr %3, align 4, !tbaa !5
  %2858 = icmp sgt i32 0, %2857
  br i1 %2858, label %2859, label %2860

2859:                                             ; preds = %2851
  br label %2868

2860:                                             ; preds = %2851
  %2861 = load i32, ptr %3, align 4, !tbaa !5
  %2862 = icmp slt i32 %2861, 1024
  br i1 %2862, label %2863, label %2865

2863:                                             ; preds = %2860
  %2864 = load i32, ptr %3, align 4, !tbaa !5
  br label %2866

2865:                                             ; preds = %2860
  br label %2866

2866:                                             ; preds = %2865, %2863
  %2867 = phi i32 [ %2864, %2863 ], [ 1024, %2865 ]
  br label %2868

2868:                                             ; preds = %2866, %2859
  %2869 = phi i32 [ 1024, %2859 ], [ %2867, %2866 ]
  %2870 = sext i32 %2869 to i64
  %2871 = load i32, ptr %3, align 4, !tbaa !5
  %2872 = icmp sgt i32 0, %2871
  br i1 %2872, label %2873, label %2874

2873:                                             ; preds = %2868
  br label %2882

2874:                                             ; preds = %2868
  %2875 = load i32, ptr %3, align 4, !tbaa !5
  %2876 = icmp slt i32 %2875, 1024
  br i1 %2876, label %2877, label %2879

2877:                                             ; preds = %2874
  %2878 = load i32, ptr %3, align 4, !tbaa !5
  br label %2880

2879:                                             ; preds = %2874
  br label %2880

2880:                                             ; preds = %2879, %2877
  %2881 = phi i32 [ %2878, %2877 ], [ 1024, %2879 ]
  br label %2882

2882:                                             ; preds = %2880, %2873
  %2883 = phi i32 [ 1024, %2873 ], [ %2881, %2880 ]
  %2884 = icmp slt i32 1, %2883
  br i1 %2884, label %2885, label %2886

2885:                                             ; preds = %2882
  br label %2900

2886:                                             ; preds = %2882
  %2887 = load i32, ptr %3, align 4, !tbaa !5
  %2888 = icmp sgt i32 0, %2887
  br i1 %2888, label %2889, label %2890

2889:                                             ; preds = %2886
  br label %2898

2890:                                             ; preds = %2886
  %2891 = load i32, ptr %3, align 4, !tbaa !5
  %2892 = icmp slt i32 %2891, 1024
  br i1 %2892, label %2893, label %2895

2893:                                             ; preds = %2890
  %2894 = load i32, ptr %3, align 4, !tbaa !5
  br label %2896

2895:                                             ; preds = %2890
  br label %2896

2896:                                             ; preds = %2895, %2893
  %2897 = phi i32 [ %2894, %2893 ], [ 1024, %2895 ]
  br label %2898

2898:                                             ; preds = %2896, %2889
  %2899 = phi i32 [ 1024, %2889 ], [ %2897, %2896 ]
  br label %2900

2900:                                             ; preds = %2898, %2885
  %2901 = phi i32 [ 1, %2885 ], [ %2899, %2898 ]
  %2902 = sext i32 %2901 to i64
  %2903 = sub i64 %2870, %2902
  %2904 = load i32, ptr %3, align 4, !tbaa !5
  %2905 = icmp sgt i32 0, %2904
  br i1 %2905, label %2906, label %2907

2906:                                             ; preds = %2900
  br label %2915

2907:                                             ; preds = %2900
  %2908 = load i32, ptr %3, align 4, !tbaa !5
  %2909 = icmp slt i32 %2908, 1024
  br i1 %2909, label %2910, label %2912

2910:                                             ; preds = %2907
  %2911 = load i32, ptr %3, align 4, !tbaa !5
  br label %2913

2912:                                             ; preds = %2907
  br label %2913

2913:                                             ; preds = %2912, %2910
  %2914 = phi i32 [ %2911, %2910 ], [ 1024, %2912 ]
  br label %2915

2915:                                             ; preds = %2913, %2906
  %2916 = phi i32 [ 1024, %2906 ], [ %2914, %2913 ]
  %2917 = sext i32 %2916 to i64
  %2918 = load i32, ptr %3, align 4, !tbaa !5
  %2919 = icmp sgt i32 0, %2918
  br i1 %2919, label %2920, label %2921

2920:                                             ; preds = %2915
  br label %2929

2921:                                             ; preds = %2915
  %2922 = load i32, ptr %3, align 4, !tbaa !5
  %2923 = icmp slt i32 %2922, 1024
  br i1 %2923, label %2924, label %2926

2924:                                             ; preds = %2921
  %2925 = load i32, ptr %3, align 4, !tbaa !5
  br label %2927

2926:                                             ; preds = %2921
  br label %2927

2927:                                             ; preds = %2926, %2924
  %2928 = phi i32 [ %2925, %2924 ], [ 1024, %2926 ]
  br label %2929

2929:                                             ; preds = %2927, %2920
  %2930 = phi i32 [ 1024, %2920 ], [ %2928, %2927 ]
  %2931 = icmp slt i32 1, %2930
  br i1 %2931, label %2932, label %2933

2932:                                             ; preds = %2929
  br label %2947

2933:                                             ; preds = %2929
  %2934 = load i32, ptr %3, align 4, !tbaa !5
  %2935 = icmp sgt i32 0, %2934
  br i1 %2935, label %2936, label %2937

2936:                                             ; preds = %2933
  br label %2945

2937:                                             ; preds = %2933
  %2938 = load i32, ptr %3, align 4, !tbaa !5
  %2939 = icmp slt i32 %2938, 1024
  br i1 %2939, label %2940, label %2942

2940:                                             ; preds = %2937
  %2941 = load i32, ptr %3, align 4, !tbaa !5
  br label %2943

2942:                                             ; preds = %2937
  br label %2943

2943:                                             ; preds = %2942, %2940
  %2944 = phi i32 [ %2941, %2940 ], [ 1024, %2942 ]
  br label %2945

2945:                                             ; preds = %2943, %2936
  %2946 = phi i32 [ 1024, %2936 ], [ %2944, %2943 ]
  br label %2947

2947:                                             ; preds = %2945, %2932
  %2948 = phi i32 [ 1, %2932 ], [ %2946, %2945 ]
  %2949 = sext i32 %2948 to i64
  %2950 = sub i64 %2917, %2949
  %2951 = lshr i64 %2950, 1
  %2952 = or i64 %2903, %2951
  %2953 = lshr i64 %2952, 2
  %2954 = or i64 %2856, %2953
  %2955 = load i32, ptr %3, align 4, !tbaa !5
  %2956 = icmp sgt i32 0, %2955
  br i1 %2956, label %2957, label %2958

2957:                                             ; preds = %2947
  br label %2966

2958:                                             ; preds = %2947
  %2959 = load i32, ptr %3, align 4, !tbaa !5
  %2960 = icmp slt i32 %2959, 1024
  br i1 %2960, label %2961, label %2963

2961:                                             ; preds = %2958
  %2962 = load i32, ptr %3, align 4, !tbaa !5
  br label %2964

2963:                                             ; preds = %2958
  br label %2964

2964:                                             ; preds = %2963, %2961
  %2965 = phi i32 [ %2962, %2961 ], [ 1024, %2963 ]
  br label %2966

2966:                                             ; preds = %2964, %2957
  %2967 = phi i32 [ 1024, %2957 ], [ %2965, %2964 ]
  %2968 = sext i32 %2967 to i64
  %2969 = load i32, ptr %3, align 4, !tbaa !5
  %2970 = icmp sgt i32 0, %2969
  br i1 %2970, label %2971, label %2972

2971:                                             ; preds = %2966
  br label %2980

2972:                                             ; preds = %2966
  %2973 = load i32, ptr %3, align 4, !tbaa !5
  %2974 = icmp slt i32 %2973, 1024
  br i1 %2974, label %2975, label %2977

2975:                                             ; preds = %2972
  %2976 = load i32, ptr %3, align 4, !tbaa !5
  br label %2978

2977:                                             ; preds = %2972
  br label %2978

2978:                                             ; preds = %2977, %2975
  %2979 = phi i32 [ %2976, %2975 ], [ 1024, %2977 ]
  br label %2980

2980:                                             ; preds = %2978, %2971
  %2981 = phi i32 [ 1024, %2971 ], [ %2979, %2978 ]
  %2982 = icmp slt i32 1, %2981
  br i1 %2982, label %2983, label %2984

2983:                                             ; preds = %2980
  br label %2998

2984:                                             ; preds = %2980
  %2985 = load i32, ptr %3, align 4, !tbaa !5
  %2986 = icmp sgt i32 0, %2985
  br i1 %2986, label %2987, label %2988

2987:                                             ; preds = %2984
  br label %2996

2988:                                             ; preds = %2984
  %2989 = load i32, ptr %3, align 4, !tbaa !5
  %2990 = icmp slt i32 %2989, 1024
  br i1 %2990, label %2991, label %2993

2991:                                             ; preds = %2988
  %2992 = load i32, ptr %3, align 4, !tbaa !5
  br label %2994

2993:                                             ; preds = %2988
  br label %2994

2994:                                             ; preds = %2993, %2991
  %2995 = phi i32 [ %2992, %2991 ], [ 1024, %2993 ]
  br label %2996

2996:                                             ; preds = %2994, %2987
  %2997 = phi i32 [ 1024, %2987 ], [ %2995, %2994 ]
  br label %2998

2998:                                             ; preds = %2996, %2983
  %2999 = phi i32 [ 1, %2983 ], [ %2997, %2996 ]
  %3000 = sext i32 %2999 to i64
  %3001 = sub i64 %2968, %3000
  %3002 = load i32, ptr %3, align 4, !tbaa !5
  %3003 = icmp sgt i32 0, %3002
  br i1 %3003, label %3004, label %3005

3004:                                             ; preds = %2998
  br label %3013

3005:                                             ; preds = %2998
  %3006 = load i32, ptr %3, align 4, !tbaa !5
  %3007 = icmp slt i32 %3006, 1024
  br i1 %3007, label %3008, label %3010

3008:                                             ; preds = %3005
  %3009 = load i32, ptr %3, align 4, !tbaa !5
  br label %3011

3010:                                             ; preds = %3005
  br label %3011

3011:                                             ; preds = %3010, %3008
  %3012 = phi i32 [ %3009, %3008 ], [ 1024, %3010 ]
  br label %3013

3013:                                             ; preds = %3011, %3004
  %3014 = phi i32 [ 1024, %3004 ], [ %3012, %3011 ]
  %3015 = sext i32 %3014 to i64
  %3016 = load i32, ptr %3, align 4, !tbaa !5
  %3017 = icmp sgt i32 0, %3016
  br i1 %3017, label %3018, label %3019

3018:                                             ; preds = %3013
  br label %3027

3019:                                             ; preds = %3013
  %3020 = load i32, ptr %3, align 4, !tbaa !5
  %3021 = icmp slt i32 %3020, 1024
  br i1 %3021, label %3022, label %3024

3022:                                             ; preds = %3019
  %3023 = load i32, ptr %3, align 4, !tbaa !5
  br label %3025

3024:                                             ; preds = %3019
  br label %3025

3025:                                             ; preds = %3024, %3022
  %3026 = phi i32 [ %3023, %3022 ], [ 1024, %3024 ]
  br label %3027

3027:                                             ; preds = %3025, %3018
  %3028 = phi i32 [ 1024, %3018 ], [ %3026, %3025 ]
  %3029 = icmp slt i32 1, %3028
  br i1 %3029, label %3030, label %3031

3030:                                             ; preds = %3027
  br label %3045

3031:                                             ; preds = %3027
  %3032 = load i32, ptr %3, align 4, !tbaa !5
  %3033 = icmp sgt i32 0, %3032
  br i1 %3033, label %3034, label %3035

3034:                                             ; preds = %3031
  br label %3043

3035:                                             ; preds = %3031
  %3036 = load i32, ptr %3, align 4, !tbaa !5
  %3037 = icmp slt i32 %3036, 1024
  br i1 %3037, label %3038, label %3040

3038:                                             ; preds = %3035
  %3039 = load i32, ptr %3, align 4, !tbaa !5
  br label %3041

3040:                                             ; preds = %3035
  br label %3041

3041:                                             ; preds = %3040, %3038
  %3042 = phi i32 [ %3039, %3038 ], [ 1024, %3040 ]
  br label %3043

3043:                                             ; preds = %3041, %3034
  %3044 = phi i32 [ 1024, %3034 ], [ %3042, %3041 ]
  br label %3045

3045:                                             ; preds = %3043, %3030
  %3046 = phi i32 [ 1, %3030 ], [ %3044, %3043 ]
  %3047 = sext i32 %3046 to i64
  %3048 = sub i64 %3015, %3047
  %3049 = lshr i64 %3048, 1
  %3050 = or i64 %3001, %3049
  %3051 = load i32, ptr %3, align 4, !tbaa !5
  %3052 = icmp sgt i32 0, %3051
  br i1 %3052, label %3053, label %3054

3053:                                             ; preds = %3045
  br label %3062

3054:                                             ; preds = %3045
  %3055 = load i32, ptr %3, align 4, !tbaa !5
  %3056 = icmp slt i32 %3055, 1024
  br i1 %3056, label %3057, label %3059

3057:                                             ; preds = %3054
  %3058 = load i32, ptr %3, align 4, !tbaa !5
  br label %3060

3059:                                             ; preds = %3054
  br label %3060

3060:                                             ; preds = %3059, %3057
  %3061 = phi i32 [ %3058, %3057 ], [ 1024, %3059 ]
  br label %3062

3062:                                             ; preds = %3060, %3053
  %3063 = phi i32 [ 1024, %3053 ], [ %3061, %3060 ]
  %3064 = sext i32 %3063 to i64
  %3065 = load i32, ptr %3, align 4, !tbaa !5
  %3066 = icmp sgt i32 0, %3065
  br i1 %3066, label %3067, label %3068

3067:                                             ; preds = %3062
  br label %3076

3068:                                             ; preds = %3062
  %3069 = load i32, ptr %3, align 4, !tbaa !5
  %3070 = icmp slt i32 %3069, 1024
  br i1 %3070, label %3071, label %3073

3071:                                             ; preds = %3068
  %3072 = load i32, ptr %3, align 4, !tbaa !5
  br label %3074

3073:                                             ; preds = %3068
  br label %3074

3074:                                             ; preds = %3073, %3071
  %3075 = phi i32 [ %3072, %3071 ], [ 1024, %3073 ]
  br label %3076

3076:                                             ; preds = %3074, %3067
  %3077 = phi i32 [ 1024, %3067 ], [ %3075, %3074 ]
  %3078 = icmp slt i32 1, %3077
  br i1 %3078, label %3079, label %3080

3079:                                             ; preds = %3076
  br label %3094

3080:                                             ; preds = %3076
  %3081 = load i32, ptr %3, align 4, !tbaa !5
  %3082 = icmp sgt i32 0, %3081
  br i1 %3082, label %3083, label %3084

3083:                                             ; preds = %3080
  br label %3092

3084:                                             ; preds = %3080
  %3085 = load i32, ptr %3, align 4, !tbaa !5
  %3086 = icmp slt i32 %3085, 1024
  br i1 %3086, label %3087, label %3089

3087:                                             ; preds = %3084
  %3088 = load i32, ptr %3, align 4, !tbaa !5
  br label %3090

3089:                                             ; preds = %3084
  br label %3090

3090:                                             ; preds = %3089, %3087
  %3091 = phi i32 [ %3088, %3087 ], [ 1024, %3089 ]
  br label %3092

3092:                                             ; preds = %3090, %3083
  %3093 = phi i32 [ 1024, %3083 ], [ %3091, %3090 ]
  br label %3094

3094:                                             ; preds = %3092, %3079
  %3095 = phi i32 [ 1, %3079 ], [ %3093, %3092 ]
  %3096 = sext i32 %3095 to i64
  %3097 = sub i64 %3064, %3096
  %3098 = load i32, ptr %3, align 4, !tbaa !5
  %3099 = icmp sgt i32 0, %3098
  br i1 %3099, label %3100, label %3101

3100:                                             ; preds = %3094
  br label %3109

3101:                                             ; preds = %3094
  %3102 = load i32, ptr %3, align 4, !tbaa !5
  %3103 = icmp slt i32 %3102, 1024
  br i1 %3103, label %3104, label %3106

3104:                                             ; preds = %3101
  %3105 = load i32, ptr %3, align 4, !tbaa !5
  br label %3107

3106:                                             ; preds = %3101
  br label %3107

3107:                                             ; preds = %3106, %3104
  %3108 = phi i32 [ %3105, %3104 ], [ 1024, %3106 ]
  br label %3109

3109:                                             ; preds = %3107, %3100
  %3110 = phi i32 [ 1024, %3100 ], [ %3108, %3107 ]
  %3111 = sext i32 %3110 to i64
  %3112 = load i32, ptr %3, align 4, !tbaa !5
  %3113 = icmp sgt i32 0, %3112
  br i1 %3113, label %3114, label %3115

3114:                                             ; preds = %3109
  br label %3123

3115:                                             ; preds = %3109
  %3116 = load i32, ptr %3, align 4, !tbaa !5
  %3117 = icmp slt i32 %3116, 1024
  br i1 %3117, label %3118, label %3120

3118:                                             ; preds = %3115
  %3119 = load i32, ptr %3, align 4, !tbaa !5
  br label %3121

3120:                                             ; preds = %3115
  br label %3121

3121:                                             ; preds = %3120, %3118
  %3122 = phi i32 [ %3119, %3118 ], [ 1024, %3120 ]
  br label %3123

3123:                                             ; preds = %3121, %3114
  %3124 = phi i32 [ 1024, %3114 ], [ %3122, %3121 ]
  %3125 = icmp slt i32 1, %3124
  br i1 %3125, label %3126, label %3127

3126:                                             ; preds = %3123
  br label %3141

3127:                                             ; preds = %3123
  %3128 = load i32, ptr %3, align 4, !tbaa !5
  %3129 = icmp sgt i32 0, %3128
  br i1 %3129, label %3130, label %3131

3130:                                             ; preds = %3127
  br label %3139

3131:                                             ; preds = %3127
  %3132 = load i32, ptr %3, align 4, !tbaa !5
  %3133 = icmp slt i32 %3132, 1024
  br i1 %3133, label %3134, label %3136

3134:                                             ; preds = %3131
  %3135 = load i32, ptr %3, align 4, !tbaa !5
  br label %3137

3136:                                             ; preds = %3131
  br label %3137

3137:                                             ; preds = %3136, %3134
  %3138 = phi i32 [ %3135, %3134 ], [ 1024, %3136 ]
  br label %3139

3139:                                             ; preds = %3137, %3130
  %3140 = phi i32 [ 1024, %3130 ], [ %3138, %3137 ]
  br label %3141

3141:                                             ; preds = %3139, %3126
  %3142 = phi i32 [ 1, %3126 ], [ %3140, %3139 ]
  %3143 = sext i32 %3142 to i64
  %3144 = sub i64 %3111, %3143
  %3145 = lshr i64 %3144, 1
  %3146 = or i64 %3097, %3145
  %3147 = lshr i64 %3146, 2
  %3148 = or i64 %3050, %3147
  %3149 = lshr i64 %3148, 4
  %3150 = or i64 %2954, %3149
  %3151 = lshr i64 %3150, 8
  %3152 = or i64 %2760, %3151
  %3153 = lshr i64 %3152, 16
  %3154 = or i64 %2370, %3153
  %3155 = lshr i64 %3154, 32
  %3156 = or i64 %1588, %3155
  %3157 = load i32, ptr %3, align 4, !tbaa !5
  %3158 = icmp sgt i32 0, %3157
  br i1 %3158, label %3159, label %3160

3159:                                             ; preds = %3141
  br label %3168

3160:                                             ; preds = %3141
  %3161 = load i32, ptr %3, align 4, !tbaa !5
  %3162 = icmp slt i32 %3161, 1024
  br i1 %3162, label %3163, label %3165

3163:                                             ; preds = %3160
  %3164 = load i32, ptr %3, align 4, !tbaa !5
  br label %3166

3165:                                             ; preds = %3160
  br label %3166

3166:                                             ; preds = %3165, %3163
  %3167 = phi i32 [ %3164, %3163 ], [ 1024, %3165 ]
  br label %3168

3168:                                             ; preds = %3166, %3159
  %3169 = phi i32 [ 1024, %3159 ], [ %3167, %3166 ]
  %3170 = icmp slt i32 1, %3169
  br i1 %3170, label %3171, label %3172

3171:                                             ; preds = %3168
  br label %3186

3172:                                             ; preds = %3168
  %3173 = load i32, ptr %3, align 4, !tbaa !5
  %3174 = icmp sgt i32 0, %3173
  br i1 %3174, label %3175, label %3176

3175:                                             ; preds = %3172
  br label %3184

3176:                                             ; preds = %3172
  %3177 = load i32, ptr %3, align 4, !tbaa !5
  %3178 = icmp slt i32 %3177, 1024
  br i1 %3178, label %3179, label %3181

3179:                                             ; preds = %3176
  %3180 = load i32, ptr %3, align 4, !tbaa !5
  br label %3182

3181:                                             ; preds = %3176
  br label %3182

3182:                                             ; preds = %3181, %3179
  %3183 = phi i32 [ %3180, %3179 ], [ 1024, %3181 ]
  br label %3184

3184:                                             ; preds = %3182, %3175
  %3185 = phi i32 [ 1024, %3175 ], [ %3183, %3182 ]
  br label %3186

3186:                                             ; preds = %3184, %3171
  %3187 = phi i32 [ 1, %3171 ], [ %3185, %3184 ]
  %3188 = sext i32 %3187 to i64
  %3189 = add i64 %3156, %3188
  %3190 = trunc i64 %3189 to i32
  store i32 %3190, ptr @internal_gemm_nlocks, align 64, !tbaa !5
  store i32 0, ptr %4, align 4, !tbaa !5
  br label %3191

3191:                                             ; preds = %3199, %3186
  %3192 = load i32, ptr %4, align 4, !tbaa !5
  %3193 = load i32, ptr @internal_gemm_nlocks, align 64, !tbaa !5
  %3194 = icmp ult i32 %3192, %3193
  br i1 %3194, label %3195, label %3202

3195:                                             ; preds = %3191
  %3196 = load i32, ptr %4, align 4, !tbaa !5
  %3197 = zext i32 %3196 to i64
  %3198 = getelementptr inbounds [1024 x %union.internal_gemm_locktype], ptr @internal_gemm_lock, i64 0, i64 %3197
  store volatile i32 0, ptr %3198, align 64, !tbaa !11
  br label %3199

3199:                                             ; preds = %3195
  %3200 = load i32, ptr %4, align 4, !tbaa !5
  %3201 = add i32 %3200, 1
  store i32 %3201, ptr %4, align 4, !tbaa !5
  br label %3191, !llvm.loop !12

3202:                                             ; preds = %3191
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %2) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #4
  %3203 = call ptr @getenv(ptr noundef @.str.7) #4
  store ptr %3203, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  %3204 = load ptr, ptr %5, align 8, !tbaa !9
  %3205 = icmp eq ptr null, %3204
  br i1 %3205, label %3211, label %3206

3206:                                             ; preds = %3202
  %3207 = load ptr, ptr %5, align 8, !tbaa !9
  %3208 = load i8, ptr %3207, align 1, !tbaa !11
  %3209 = sext i8 %3208 to i32
  %3210 = icmp eq i32 0, %3209
  br i1 %3210, label %3211, label %3212

3211:                                             ; preds = %3206, %3202
  br label %3215

3212:                                             ; preds = %3206
  %3213 = load ptr, ptr %5, align 8, !tbaa !9
  %3214 = call i32 @atoi(ptr noundef %3213) #5
  br label %3215

3215:                                             ; preds = %3212, %3211
  %3216 = phi i32 [ 0, %3211 ], [ %3214, %3212 ]
  store i32 %3216, ptr %6, align 4, !tbaa !5
  %3217 = load i32, ptr %6, align 4, !tbaa !5
  %3218 = icmp sle i32 0, %3217
  br i1 %3218, label %3219, label %3229

3219:                                             ; preds = %3215
  %3220 = load i32, ptr %6, align 4, !tbaa !5
  %3221 = icmp sle i32 0, %3220
  br i1 %3221, label %3222, label %3224

3222:                                             ; preds = %3219
  %3223 = load i32, ptr %6, align 4, !tbaa !5
  br label %3227

3224:                                             ; preds = %3219
  %3225 = load i32, ptr %6, align 4, !tbaa !5
  %3226 = sub nsw i32 0, %3225
  br label %3227

3227:                                             ; preds = %3224, %3222
  %3228 = phi i32 [ %3223, %3222 ], [ %3226, %3224 ]
  br label %3230

3229:                                             ; preds = %3215
  br label %3230

3230:                                             ; preds = %3229, %3227
  %3231 = phi i32 [ %3228, %3227 ], [ 1, %3229 ]
  store i32 %3231, ptr @libxsmm_gemm_tasks, align 64, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  %3232 = call ptr @getenv(ptr noundef @.str.8) #4
  store ptr %3232, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  %3233 = load ptr, ptr %7, align 8, !tbaa !9
  %3234 = icmp eq ptr null, %3233
  br i1 %3234, label %3244, label %3235

3235:                                             ; preds = %3230
  %3236 = load ptr, ptr %7, align 8, !tbaa !9
  %3237 = load i8, ptr %3236, align 1, !tbaa !11
  %3238 = sext i8 %3237 to i32
  %3239 = icmp eq i32 0, %3238
  br i1 %3239, label %3244, label %3240

3240:                                             ; preds = %3235
  %3241 = load ptr, ptr %7, align 8, !tbaa !9
  %3242 = call i32 @atoi(ptr noundef %3241) #5
  %3243 = icmp sge i32 0, %3242
  br i1 %3243, label %3244, label %3245

3244:                                             ; preds = %3240, %3235, %3230
  br label %3248

3245:                                             ; preds = %3240
  %3246 = load ptr, ptr %7, align 8, !tbaa !9
  %3247 = call i32 @atoi(ptr noundef %3246) #5
  br label %3248

3248:                                             ; preds = %3245, %3244
  %3249 = phi i32 [ 128, %3244 ], [ %3247, %3245 ]
  store i32 %3249, ptr %8, align 4, !tbaa !5
  %3250 = load i32, ptr @libxsmm_gemm_tasks, align 64, !tbaa !5
  %3251 = icmp slt i32 0, %3250
  br i1 %3251, label %3252, label %3256

3252:                                             ; preds = %3248
  %3253 = load i32, ptr %8, align 4, !tbaa !5
  %3254 = load i32, ptr @libxsmm_gemm_tasks, align 64, !tbaa !5
  %3255 = sdiv i32 %3253, %3254
  br label %3258

3256:                                             ; preds = %3248
  %3257 = load i32, ptr %8, align 4, !tbaa !5
  br label %3258

3258:                                             ; preds = %3256, %3252
  %3259 = phi i32 [ %3255, %3252 ], [ %3257, %3256 ]
  %3260 = icmp slt i32 %3259, 1
  br i1 %3260, label %3261, label %3262

3261:                                             ; preds = %3258
  br label %3273

3262:                                             ; preds = %3258
  %3263 = load i32, ptr @libxsmm_gemm_tasks, align 64, !tbaa !5
  %3264 = icmp slt i32 0, %3263
  br i1 %3264, label %3265, label %3269

3265:                                             ; preds = %3262
  %3266 = load i32, ptr %8, align 4, !tbaa !5
  %3267 = load i32, ptr @libxsmm_gemm_tasks, align 64, !tbaa !5
  %3268 = sdiv i32 %3266, %3267
  br label %3271

3269:                                             ; preds = %3262
  %3270 = load i32, ptr %8, align 4, !tbaa !5
  br label %3271

3271:                                             ; preds = %3269, %3265
  %3272 = phi i32 [ %3268, %3265 ], [ %3270, %3269 ]
  br label %3273

3273:                                             ; preds = %3271, %3261
  %3274 = phi i32 [ 1, %3261 ], [ %3272, %3271 ]
  store i32 %3274, ptr @libxsmm_gemm_taskgrain, align 64, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  %3275 = call ptr @libxsmm_original_dgemm_batch_strided()
  %3276 = call ptr @libxsmm_original_sgemm_batch_strided()
  %3277 = call ptr @libxsmm_original_dgemm_batch()
  %3278 = call ptr @libxsmm_original_sgemm_batch()
  %3279 = call ptr @libxsmm_original_dgemm()
  %3280 = call ptr @libxsmm_original_sgemm()
  %3281 = call ptr @libxsmm_original_dgemv()
  %3282 = call ptr @libxsmm_original_sgemv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #4
  ret void
}

; Function Attrs: nounwind
declare ptr @getenv(ptr noundef) #2

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #3

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 = { 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 #3 = { inlinehint nounwind willreturn memory(read) 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 #4 = { nounwind }
attributes #5 = { nounwind willreturn memory(read) }

!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 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}


; 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"

%union.internal_gemm_locktype = type { i32, [60 x i8] }

@.str.6 = external hidden unnamed_addr constant [20 x i8], align 1
@internal_gemm_nlocks = external dso_local local_unnamed_addr global i32, align 64
@internal_gemm_lock = external dso_local global [1024 x %union.internal_gemm_locktype], align 64
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@libxsmm_gemm_tasks = external dso_local local_unnamed_addr global i32, align 64
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@libxsmm_gemm_taskgrain = external dso_local local_unnamed_addr global i32, align 64

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemm_batch_strided() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemm_batch_strided() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemm_batch() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemm_batch() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemm() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemm() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_dgemv() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local ptr @libxsmm_original_sgemv() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_gemm_init() local_unnamed_addr #0 {
  %1 = tail call ptr @getenv(ptr noundef nonnull @.str.6) #4
  %2 = icmp eq ptr %1, null
  br i1 %2, label %.thread679, label %3

3:                                                ; preds = %0
  %4 = load i8, ptr %1, align 1, !tbaa !5
  %5 = icmp eq i8 %4, 0
  br i1 %5, label %.thread679, label %6

6:                                                ; preds = %3
  %7 = tail call i32 @atoi(ptr nocapture noundef %1) #5
  %.fr682 = freeze i32 %7
  %8 = icmp slt i32 %.fr682, 0
  %9 = tail call i32 @llvm.smin.i32(i32 %.fr682, i32 1024)
  br i1 %8, label %.thread679, label %10

.thread679:                                       ; preds = %0, %3, %6
  br label %10

10:                                               ; preds = %6, %.thread679
  %11 = phi i32 [ 1024, %.thread679 ], [ %9, %6 ]
  %12 = sext i32 %11 to i64
  %13 = tail call i32 @llvm.smin.i32(i32 %11, i32 1)
  %14 = sext i32 %13 to i64
  %15 = sub nsw i64 %12, %14
  %16 = lshr i64 %15, 1
  %17 = lshr i64 %15, 3
  %18 = lshr i64 %15, 2
  %19 = or i64 %18, %17
  %20 = or i64 %19, %16
  %21 = or i64 %20, %15
  %22 = lshr i64 %21, 4
  %23 = or i64 %22, %21
  %24 = lshr i64 %21, 12
  %25 = lshr i64 %21, 8
  %26 = or i64 %25, %24
  %27 = or i64 %26, %23
  %28 = lshr i64 %27, 16
  %narrow676 = tail call i32 @llvm.smin.i32(i32 %11, i32 1)
  %29 = zext i32 %narrow676 to i64
  %30 = sub nsw i64 %12, %29
  %31 = lshr i64 %30, 1
  %32 = lshr i64 %30, 3
  %33 = lshr i64 %30, 2
  %34 = or i64 %33, %32
  %35 = or i64 %34, %31
  %36 = or i64 %35, %15
  %37 = lshr i64 %36, 12
  %38 = or i64 %25, %37
  %39 = or i64 %38, %23
  %40 = lshr i64 %39, 48
  %41 = lshr i64 %27, 32
  %42 = or i64 %41, %28
  %43 = or i64 %42, %40
  %44 = or i64 %43, %27
  %.fr686 = freeze i64 %44
  %45 = trunc i64 %.fr686 to i32
  %46 = add i32 %narrow676, %45
  store i32 %46, ptr @internal_gemm_nlocks, align 64, !tbaa !8
  %.not = icmp eq i32 %46, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %10
  %wide.trip.count = zext i32 %46 to i64
  %xtraiter = and i64 %wide.trip.count, 3
  %47 = icmp ult i32 %46, 4
  br i1 %47, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %wide.trip.count, 4294967292
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader.new ], [ %indvars.iv.next.3, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.3, %.lr.ph ]
  %48 = getelementptr inbounds [1024 x %union.internal_gemm_locktype], ptr @internal_gemm_lock, i64 0, i64 %indvars.iv
  store volatile i32 0, ptr %48, align 64, !tbaa !5
  %indvars.iv.next = or disjoint i64 %indvars.iv, 1
  %49 = getelementptr inbounds [1024 x %union.internal_gemm_locktype], ptr @internal_gemm_lock, i64 0, i64 %indvars.iv.next
  store volatile i32 0, ptr %49, align 64, !tbaa !5
  %indvars.iv.next.1 = or disjoint i64 %indvars.iv, 2
  %50 = getelementptr inbounds [1024 x %union.internal_gemm_locktype], ptr @internal_gemm_lock, i64 0, i64 %indvars.iv.next.1
  store volatile i32 0, ptr %50, align 64, !tbaa !5
  %indvars.iv.next.2 = or disjoint i64 %indvars.iv, 3
  %51 = getelementptr inbounds [1024 x %union.internal_gemm_locktype], ptr @internal_gemm_lock, i64 0, i64 %indvars.iv.next.2
  store volatile i32 0, ptr %51, align 64, !tbaa !5
  %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !10

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %indvars.iv.unr = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next.3, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph.epil
  %indvars.iv.epil = phi i64 [ %indvars.iv.next.epil, %.lr.ph.epil ], [ %indvars.iv.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph.epil ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %52 = getelementptr inbounds [1024 x %union.internal_gemm_locktype], ptr @internal_gemm_lock, i64 0, i64 %indvars.iv.epil
  store volatile i32 0, ptr %52, align 64, !tbaa !5
  %indvars.iv.next.epil = add nuw nsw i64 %indvars.iv.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.lr.ph.epil, !llvm.loop !12

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph.epil, %10
  %53 = tail call ptr @getenv(ptr noundef nonnull @.str.7) #4
  %54 = icmp eq ptr %53, null
  br i1 %54, label %.thread, label %55

55:                                               ; preds = %._crit_edge
  %56 = load i8, ptr %53, align 1, !tbaa !5
  %57 = icmp eq i8 %56, 0
  br i1 %57, label %.thread, label %58

58:                                               ; preds = %55
  %59 = tail call i32 @atoi(ptr nocapture noundef %53) #5
  %.fr = freeze i32 %59
  %60 = icmp sgt i32 %.fr, -1
  %spec.select = select i1 %60, i32 %.fr, i32 1
  br label %.thread

.thread:                                          ; preds = %58, %._crit_edge, %55
  %61 = phi i32 [ 0, %55 ], [ 0, %._crit_edge ], [ %spec.select, %58 ]
  store i32 %61, ptr @libxsmm_gemm_tasks, align 64, !tbaa !8
  %62 = tail call ptr @getenv(ptr noundef nonnull @.str.8) #4
  %63 = icmp eq ptr %62, null
  br i1 %63, label %70, label %64

64:                                               ; preds = %.thread
  %65 = load i8, ptr %62, align 1, !tbaa !5
  %66 = icmp eq i8 %65, 0
  br i1 %66, label %70, label %67

67:                                               ; preds = %64
  %68 = tail call i32 @atoi(ptr nocapture noundef %62) #5
  %69 = icmp slt i32 %68, 1
  %spec.select674 = select i1 %69, i32 128, i32 %68
  br label %70

70:                                               ; preds = %67, %.thread, %64
  %71 = phi i32 [ 128, %64 ], [ 128, %.thread ], [ %spec.select674, %67 ]
  %.not683 = icmp eq i32 %61, 0
  br i1 %.not683, label %.critedge, label %72

72:                                               ; preds = %70
  %73 = udiv i32 %71, %61
  %spec.select681 = tail call i32 @llvm.smax.i32(i32 %73, i32 1)
  br label %.critedge

.critedge:                                        ; preds = %72, %70
  %74 = phi i32 [ %71, %70 ], [ %spec.select681, %72 ]
  store i32 %74, ptr @libxsmm_gemm_taskgrain, align 64, !tbaa !8
  %75 = tail call ptr @libxsmm_original_dgemm_batch_strided()
  %76 = tail call ptr @libxsmm_original_sgemm_batch_strided()
  %77 = tail call ptr @libxsmm_original_dgemm_batch()
  %78 = tail call ptr @libxsmm_original_sgemm_batch()
  %79 = tail call ptr @libxsmm_original_dgemm()
  %80 = tail call ptr @libxsmm_original_sgemm()
  %81 = tail call ptr @libxsmm_original_dgemv()
  %82 = tail call ptr @libxsmm_original_sgemv()
  ret void
}

; Function Attrs: nofree nounwind memory(read)
declare noundef ptr @getenv(ptr nocapture noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #3

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 = { nofree nounwind memory(read) "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 #2 = { inlinehint mustprogress nofree nounwind willreturn memory(read) 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 #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }
attributes #5 = { nounwind willreturn memory(read) }

!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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !6, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.unroll.disable"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass