; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (dlarrd)

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__0 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @dlarrd_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24) #0 {
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca double, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca double, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca double, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca [1 x i32], align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca double, align 8
  %91 = alloca i32, align 4
  %92 = alloca double, align 8
  %93 = alloca double, align 8
  %94 = alloca i32, align 4
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca i32, align 4
  store ptr %0, ptr %26, align 8, !tbaa !5
  store ptr %1, ptr %27, align 8, !tbaa !5
  store ptr %2, ptr %28, align 8, !tbaa !5
  store ptr %3, ptr %29, align 8, !tbaa !5
  store ptr %4, ptr %30, align 8, !tbaa !5
  store ptr %5, ptr %31, align 8, !tbaa !5
  store ptr %6, ptr %32, align 8, !tbaa !5
  store ptr %7, ptr %33, align 8, !tbaa !5
  store ptr %8, ptr %34, align 8, !tbaa !5
  store ptr %9, ptr %35, align 8, !tbaa !5
  store ptr %10, ptr %36, align 8, !tbaa !5
  store ptr %11, ptr %37, align 8, !tbaa !5
  store ptr %12, ptr %38, align 8, !tbaa !5
  store ptr %13, ptr %39, align 8, !tbaa !5
  store ptr %14, ptr %40, align 8, !tbaa !5
  store ptr %15, ptr %41, align 8, !tbaa !5
  store ptr %16, ptr %42, align 8, !tbaa !5
  store ptr %17, ptr %43, align 8, !tbaa !5
  store ptr %18, ptr %44, align 8, !tbaa !5
  store ptr %19, ptr %45, align 8, !tbaa !5
  store ptr %20, ptr %46, align 8, !tbaa !5
  store ptr %21, ptr %47, align 8, !tbaa !5
  store ptr %22, ptr %48, align 8, !tbaa !5
  store ptr %23, ptr %49, align 8, !tbaa !5
  store ptr %24, ptr %50, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  %98 = load ptr, ptr %49, align 8, !tbaa !5
  %99 = getelementptr inbounds i32, ptr %98, i32 -1
  store ptr %99, ptr %49, align 8, !tbaa !5
  %100 = load ptr, ptr %48, align 8, !tbaa !5
  %101 = getelementptr inbounds double, ptr %100, i32 -1
  store ptr %101, ptr %48, align 8, !tbaa !5
  %102 = load ptr, ptr %47, align 8, !tbaa !5
  %103 = getelementptr inbounds i32, ptr %102, i32 -1
  store ptr %103, ptr %47, align 8, !tbaa !5
  %104 = load ptr, ptr %46, align 8, !tbaa !5
  %105 = getelementptr inbounds i32, ptr %104, i32 -1
  store ptr %105, ptr %46, align 8, !tbaa !5
  %106 = load ptr, ptr %43, align 8, !tbaa !5
  %107 = getelementptr inbounds double, ptr %106, i32 -1
  store ptr %107, ptr %43, align 8, !tbaa !5
  %108 = load ptr, ptr %42, align 8, !tbaa !5
  %109 = getelementptr inbounds double, ptr %108, i32 -1
  store ptr %109, ptr %42, align 8, !tbaa !5
  %110 = load ptr, ptr %40, align 8, !tbaa !5
  %111 = getelementptr inbounds i32, ptr %110, i32 -1
  store ptr %111, ptr %40, align 8, !tbaa !5
  %112 = load ptr, ptr %37, align 8, !tbaa !5
  %113 = getelementptr inbounds double, ptr %112, i32 -1
  store ptr %113, ptr %37, align 8, !tbaa !5
  %114 = load ptr, ptr %36, align 8, !tbaa !5
  %115 = getelementptr inbounds double, ptr %114, i32 -1
  store ptr %115, ptr %36, align 8, !tbaa !5
  %116 = load ptr, ptr %35, align 8, !tbaa !5
  %117 = getelementptr inbounds double, ptr %116, i32 -1
  store ptr %117, ptr %35, align 8, !tbaa !5
  %118 = load ptr, ptr %33, align 8, !tbaa !5
  %119 = getelementptr inbounds double, ptr %118, i32 -1
  store ptr %119, ptr %33, align 8, !tbaa !5
  %120 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 0, ptr %120, align 4, !tbaa !9
  %121 = load ptr, ptr %28, align 8, !tbaa !5
  %122 = load i32, ptr %121, align 4, !tbaa !9
  %123 = icmp sle i32 %122, 0
  br i1 %123, label %124, label %125

124:                                              ; preds = %25
  store i32 1, ptr %97, align 4
  br label %1729

125:                                              ; preds = %25
  %126 = load ptr, ptr %26, align 8, !tbaa !5
  %127 = call i32 @lsame_(ptr noundef %126, ptr noundef @.str)
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %129, label %130

129:                                              ; preds = %125
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %143

130:                                              ; preds = %125
  %131 = load ptr, ptr %26, align 8, !tbaa !5
  %132 = call i32 @lsame_(ptr noundef %131, ptr noundef @.str.1)
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %134, label %135

134:                                              ; preds = %130
  store i32 2, ptr %83, align 4, !tbaa !9
  br label %142

135:                                              ; preds = %130
  %136 = load ptr, ptr %26, align 8, !tbaa !5
  %137 = call i32 @lsame_(ptr noundef %136, ptr noundef @.str.2)
  %138 = icmp ne i32 %137, 0
  br i1 %138, label %139, label %140

139:                                              ; preds = %135
  store i32 3, ptr %83, align 4, !tbaa !9
  br label %141

140:                                              ; preds = %135
  store i32 0, ptr %83, align 4, !tbaa !9
  br label %141

141:                                              ; preds = %140, %139
  br label %142

142:                                              ; preds = %141, %134
  br label %143

143:                                              ; preds = %142, %129
  %144 = load i32, ptr %83, align 4, !tbaa !9
  %145 = icmp sle i32 %144, 0
  br i1 %145, label %146, label %148

146:                                              ; preds = %143
  %147 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -1, ptr %147, align 4, !tbaa !9
  br label %231

148:                                              ; preds = %143
  %149 = load ptr, ptr %27, align 8, !tbaa !5
  %150 = call i32 @lsame_(ptr noundef %149, ptr noundef @.str.3)
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %158, label %152

152:                                              ; preds = %148
  %153 = load ptr, ptr %27, align 8, !tbaa !5
  %154 = call i32 @lsame_(ptr noundef %153, ptr noundef @.str.4)
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %158, label %156

156:                                              ; preds = %152
  %157 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -2, ptr %157, align 4, !tbaa !9
  br label %230

158:                                              ; preds = %152, %148
  %159 = load ptr, ptr %28, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  %161 = icmp slt i32 %160, 0
  br i1 %161, label %162, label %164

162:                                              ; preds = %158
  %163 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -3, ptr %163, align 4, !tbaa !9
  br label %229

164:                                              ; preds = %158
  %165 = load i32, ptr %83, align 4, !tbaa !9
  %166 = icmp eq i32 %165, 2
  br i1 %166, label %167, label %176

167:                                              ; preds = %164
  %168 = load ptr, ptr %29, align 8, !tbaa !5
  %169 = load double, ptr %168, align 8, !tbaa !11
  %170 = load ptr, ptr %30, align 8, !tbaa !5
  %171 = load double, ptr %170, align 8, !tbaa !11
  %172 = fcmp oge double %169, %171
  br i1 %172, label %173, label %175

173:                                              ; preds = %167
  %174 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -5, ptr %174, align 4, !tbaa !9
  br label %175

175:                                              ; preds = %173, %167
  br label %228

176:                                              ; preds = %164
  %177 = load i32, ptr %83, align 4, !tbaa !9
  %178 = icmp eq i32 %177, 3
  br i1 %178, label %179, label %198

179:                                              ; preds = %176
  %180 = load ptr, ptr %31, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = icmp slt i32 %181, 1
  br i1 %182, label %196, label %183

183:                                              ; preds = %179
  %184 = load ptr, ptr %31, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = load ptr, ptr %28, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = icmp sge i32 1, %187
  br i1 %188, label %189, label %190

189:                                              ; preds = %183
  br label %193

190:                                              ; preds = %183
  %191 = load ptr, ptr %28, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  br label %193

193:                                              ; preds = %190, %189
  %194 = phi i32 [ 1, %189 ], [ %192, %190 ]
  %195 = icmp sgt i32 %185, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %193, %179
  %197 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -6, ptr %197, align 4, !tbaa !9
  br label %227

198:                                              ; preds = %193, %176
  %199 = load i32, ptr %83, align 4, !tbaa !9
  %200 = icmp eq i32 %199, 3
  br i1 %200, label %201, label %226

201:                                              ; preds = %198
  %202 = load ptr, ptr %32, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = load ptr, ptr %28, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  %206 = load ptr, ptr %31, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = icmp sle i32 %205, %207
  br i1 %208, label %209, label %212

209:                                              ; preds = %201
  %210 = load ptr, ptr %28, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  br label %215

212:                                              ; preds = %201
  %213 = load ptr, ptr %31, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  br label %215

215:                                              ; preds = %212, %209
  %216 = phi i32 [ %211, %209 ], [ %214, %212 ]
  %217 = icmp slt i32 %203, %216
  br i1 %217, label %224, label %218

218:                                              ; preds = %215
  %219 = load ptr, ptr %32, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = load ptr, ptr %28, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = icmp sgt i32 %220, %222
  br i1 %223, label %224, label %226

224:                                              ; preds = %218, %215
  %225 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -7, ptr %225, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %224, %218, %198
  br label %227

227:                                              ; preds = %226, %196
  br label %228

228:                                              ; preds = %227, %175
  br label %229

229:                                              ; preds = %228, %162
  br label %230

230:                                              ; preds = %229, %156
  br label %231

231:                                              ; preds = %230, %146
  %232 = load ptr, ptr %50, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %235, label %236

235:                                              ; preds = %231
  store i32 1, ptr %97, align 4
  br label %1729

236:                                              ; preds = %231
  %237 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 0, ptr %237, align 4, !tbaa !9
  store i32 0, ptr %87, align 4, !tbaa !9
  store i32 0, ptr %88, align 4, !tbaa !9
  %238 = load ptr, ptr %41, align 8, !tbaa !5
  store i32 0, ptr %238, align 4, !tbaa !9
  %239 = load ptr, ptr %28, align 8, !tbaa !5
  %240 = load i32, ptr %239, align 4, !tbaa !9
  %241 = icmp eq i32 %240, 0
  br i1 %241, label %242, label %243

242:                                              ; preds = %236
  store i32 1, ptr %97, align 4
  br label %1729

243:                                              ; preds = %236
  %244 = load i32, ptr %83, align 4, !tbaa !9
  %245 = icmp eq i32 %244, 3
  br i1 %245, label %246, label %257

246:                                              ; preds = %243
  %247 = load ptr, ptr %31, align 8, !tbaa !5
  %248 = load i32, ptr %247, align 4, !tbaa !9
  %249 = icmp eq i32 %248, 1
  br i1 %249, label %250, label %257

250:                                              ; preds = %246
  %251 = load ptr, ptr %32, align 8, !tbaa !5
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = load ptr, ptr %28, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = icmp eq i32 %252, %254
  br i1 %255, label %256, label %257

256:                                              ; preds = %250
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %257

257:                                              ; preds = %256, %250, %246, %243
  %258 = call double @dlamch_(ptr noundef @.str.5)
  store double %258, ptr %90, align 8, !tbaa !11
  %259 = call double @dlamch_(ptr noundef @.str.6)
  store double %259, ptr %71, align 8, !tbaa !11
  %260 = load ptr, ptr %28, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !9
  %262 = icmp eq i32 %261, 1
  br i1 %262, label %263, label %308

263:                                              ; preds = %257
  %264 = load i32, ptr %83, align 4, !tbaa !9
  %265 = icmp eq i32 %264, 1
  br i1 %265, label %294, label %266

266:                                              ; preds = %263
  %267 = load i32, ptr %83, align 4, !tbaa !9
  %268 = icmp eq i32 %267, 2
  br i1 %268, label %269, label %283

269:                                              ; preds = %266
  %270 = load ptr, ptr %35, align 8, !tbaa !5
  %271 = getelementptr inbounds double, ptr %270, i64 1
  %272 = load double, ptr %271, align 8, !tbaa !11
  %273 = load ptr, ptr %29, align 8, !tbaa !5
  %274 = load double, ptr %273, align 8, !tbaa !11
  %275 = fcmp ogt double %272, %274
  br i1 %275, label %276, label %283

276:                                              ; preds = %269
  %277 = load ptr, ptr %35, align 8, !tbaa !5
  %278 = getelementptr inbounds double, ptr %277, i64 1
  %279 = load double, ptr %278, align 8, !tbaa !11
  %280 = load ptr, ptr %30, align 8, !tbaa !5
  %281 = load double, ptr %280, align 8, !tbaa !11
  %282 = fcmp ole double %279, %281
  br i1 %282, label %294, label %283

283:                                              ; preds = %276, %269, %266
  %284 = load i32, ptr %83, align 4, !tbaa !9
  %285 = icmp eq i32 %284, 3
  br i1 %285, label %286, label %307

286:                                              ; preds = %283
  %287 = load ptr, ptr %31, align 8, !tbaa !5
  %288 = load i32, ptr %287, align 4, !tbaa !9
  %289 = icmp eq i32 %288, 1
  br i1 %289, label %290, label %307

290:                                              ; preds = %286
  %291 = load ptr, ptr %32, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = icmp eq i32 %292, 1
  br i1 %293, label %294, label %307

294:                                              ; preds = %290, %276, %263
  %295 = load ptr, ptr %41, align 8, !tbaa !5
  store i32 1, ptr %295, align 4, !tbaa !9
  %296 = load ptr, ptr %35, align 8, !tbaa !5
  %297 = getelementptr inbounds double, ptr %296, i64 1
  %298 = load double, ptr %297, align 8, !tbaa !11
  %299 = load ptr, ptr %42, align 8, !tbaa !5
  %300 = getelementptr inbounds double, ptr %299, i64 1
  store double %298, ptr %300, align 8, !tbaa !11
  %301 = load ptr, ptr %43, align 8, !tbaa !5
  %302 = getelementptr inbounds double, ptr %301, i64 1
  store double 0.000000e+00, ptr %302, align 8, !tbaa !11
  %303 = load ptr, ptr %46, align 8, !tbaa !5
  %304 = getelementptr inbounds i32, ptr %303, i64 1
  store i32 1, ptr %304, align 4, !tbaa !9
  %305 = load ptr, ptr %47, align 8, !tbaa !5
  %306 = getelementptr inbounds i32, ptr %305, i64 1
  store i32 1, ptr %306, align 4, !tbaa !9
  br label %307

307:                                              ; preds = %294, %290, %286, %283
  store i32 1, ptr %97, align 4
  br label %1729

308:                                              ; preds = %257
  %309 = load ptr, ptr %28, align 8, !tbaa !5
  %310 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef @.str.8, ptr noundef %309, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %310, ptr %76, align 4, !tbaa !9
  %311 = load i32, ptr %76, align 4, !tbaa !9
  %312 = icmp sle i32 %311, 1
  br i1 %312, label %313, label %314

313:                                              ; preds = %308
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %314

314:                                              ; preds = %313, %308
  %315 = load ptr, ptr %35, align 8, !tbaa !5
  %316 = getelementptr inbounds double, ptr %315, i64 1
  %317 = load double, ptr %316, align 8, !tbaa !11
  store double %317, ptr %77, align 8, !tbaa !11
  %318 = load ptr, ptr %35, align 8, !tbaa !5
  %319 = getelementptr inbounds double, ptr %318, i64 1
  %320 = load double, ptr %319, align 8, !tbaa !11
  store double %320, ptr %80, align 8, !tbaa !11
  %321 = load ptr, ptr %28, align 8, !tbaa !5
  %322 = load i32, ptr %321, align 4, !tbaa !9
  store i32 %322, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %323

323:                                              ; preds = %361, %314
  %324 = load i32, ptr %62, align 4, !tbaa !9
  %325 = load i32, ptr %51, align 4, !tbaa !9
  %326 = icmp sle i32 %324, %325
  br i1 %326, label %327, label %364

327:                                              ; preds = %323
  %328 = load double, ptr %77, align 8, !tbaa !11
  store double %328, ptr %54, align 8, !tbaa !11
  %329 = load ptr, ptr %33, align 8, !tbaa !5
  %330 = load i32, ptr %62, align 4, !tbaa !9
  %331 = shl i32 %330, 1
  %332 = sub nsw i32 %331, 1
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds double, ptr %329, i64 %333
  %335 = load double, ptr %334, align 8, !tbaa !11
  store double %335, ptr %55, align 8, !tbaa !11
  %336 = load double, ptr %54, align 8, !tbaa !11
  %337 = load double, ptr %55, align 8, !tbaa !11
  %338 = fcmp ole double %336, %337
  br i1 %338, label %339, label %341

339:                                              ; preds = %327
  %340 = load double, ptr %54, align 8, !tbaa !11
  br label %343

341:                                              ; preds = %327
  %342 = load double, ptr %55, align 8, !tbaa !11
  br label %343

343:                                              ; preds = %341, %339
  %344 = phi double [ %340, %339 ], [ %342, %341 ]
  store double %344, ptr %77, align 8, !tbaa !11
  %345 = load double, ptr %80, align 8, !tbaa !11
  store double %345, ptr %54, align 8, !tbaa !11
  %346 = load ptr, ptr %33, align 8, !tbaa !5
  %347 = load i32, ptr %62, align 4, !tbaa !9
  %348 = mul nsw i32 %347, 2
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds double, ptr %346, i64 %349
  %351 = load double, ptr %350, align 8, !tbaa !11
  store double %351, ptr %55, align 8, !tbaa !11
  %352 = load double, ptr %54, align 8, !tbaa !11
  %353 = load double, ptr %55, align 8, !tbaa !11
  %354 = fcmp oge double %352, %353
  br i1 %354, label %355, label %357

355:                                              ; preds = %343
  %356 = load double, ptr %54, align 8, !tbaa !11
  br label %359

357:                                              ; preds = %343
  %358 = load double, ptr %55, align 8, !tbaa !11
  br label %359

359:                                              ; preds = %357, %355
  %360 = phi double [ %356, %355 ], [ %358, %357 ]
  store double %360, ptr %80, align 8, !tbaa !11
  br label %361

361:                                              ; preds = %359
  %362 = load i32, ptr %62, align 4, !tbaa !9
  %363 = add nsw i32 %362, 1
  store i32 %363, ptr %62, align 4, !tbaa !9
  br label %323, !llvm.loop !13

364:                                              ; preds = %323
  %365 = load double, ptr %77, align 8, !tbaa !11
  %366 = fcmp oge double %365, 0.000000e+00
  br i1 %366, label %367, label %369

367:                                              ; preds = %364
  %368 = load double, ptr %77, align 8, !tbaa !11
  br label %372

369:                                              ; preds = %364
  %370 = load double, ptr %77, align 8, !tbaa !11
  %371 = fneg double %370
  br label %372

372:                                              ; preds = %369, %367
  %373 = phi double [ %368, %367 ], [ %371, %369 ]
  store double %373, ptr %54, align 8, !tbaa !11
  %374 = load double, ptr %80, align 8, !tbaa !11
  %375 = fcmp oge double %374, 0.000000e+00
  br i1 %375, label %376, label %378

376:                                              ; preds = %372
  %377 = load double, ptr %80, align 8, !tbaa !11
  br label %381

378:                                              ; preds = %372
  %379 = load double, ptr %80, align 8, !tbaa !11
  %380 = fneg double %379
  br label %381

381:                                              ; preds = %378, %376
  %382 = phi double [ %377, %376 ], [ %380, %378 ]
  store double %382, ptr %55, align 8, !tbaa !11
  %383 = load double, ptr %54, align 8, !tbaa !11
  %384 = load double, ptr %55, align 8, !tbaa !11
  %385 = fcmp oge double %383, %384
  br i1 %385, label %386, label %388

386:                                              ; preds = %381
  %387 = load double, ptr %54, align 8, !tbaa !11
  br label %390

388:                                              ; preds = %381
  %389 = load double, ptr %55, align 8, !tbaa !11
  br label %390

390:                                              ; preds = %388, %386
  %391 = phi double [ %387, %386 ], [ %389, %388 ]
  store double %391, ptr %72, align 8, !tbaa !11
  %392 = load double, ptr %77, align 8, !tbaa !11
  %393 = load double, ptr %72, align 8, !tbaa !11
  %394 = fmul double %393, 2.000000e+00
  %395 = load double, ptr %90, align 8, !tbaa !11
  %396 = fmul double %394, %395
  %397 = load ptr, ptr %28, align 8, !tbaa !5
  %398 = load i32, ptr %397, align 4, !tbaa !9
  %399 = sitofp i32 %398 to double
  %400 = fneg double %396
  %401 = call double @llvm.fmuladd.f64(double %400, double %399, double %392)
  %402 = load ptr, ptr %38, align 8, !tbaa !5
  %403 = load double, ptr %402, align 8, !tbaa !11
  %404 = fneg double %403
  %405 = call double @llvm.fmuladd.f64(double %404, double 4.000000e+00, double %401)
  store double %405, ptr %77, align 8, !tbaa !11
  %406 = load double, ptr %80, align 8, !tbaa !11
  %407 = load double, ptr %72, align 8, !tbaa !11
  %408 = fmul double %407, 2.000000e+00
  %409 = load double, ptr %90, align 8, !tbaa !11
  %410 = fmul double %408, %409
  %411 = load ptr, ptr %28, align 8, !tbaa !5
  %412 = load i32, ptr %411, align 4, !tbaa !9
  %413 = sitofp i32 %412 to double
  %414 = call double @llvm.fmuladd.f64(double %410, double %413, double %406)
  %415 = load ptr, ptr %38, align 8, !tbaa !5
  %416 = load double, ptr %415, align 8, !tbaa !11
  %417 = call double @llvm.fmuladd.f64(double %416, double 4.000000e+00, double %414)
  store double %417, ptr %80, align 8, !tbaa !11
  %418 = load ptr, ptr %34, align 8, !tbaa !5
  %419 = load double, ptr %418, align 8, !tbaa !11
  store double %419, ptr %70, align 8, !tbaa !11
  %420 = load double, ptr %71, align 8, !tbaa !11
  %421 = load ptr, ptr %38, align 8, !tbaa !5
  %422 = load double, ptr %421, align 8, !tbaa !11
  %423 = fmul double %422, 4.000000e+00
  %424 = call double @llvm.fmuladd.f64(double %420, double 4.000000e+00, double %423)
  store double %424, ptr %66, align 8, !tbaa !11
  %425 = load i32, ptr %83, align 4, !tbaa !9
  %426 = icmp eq i32 %425, 3
  br i1 %426, label %427, label %639

427:                                              ; preds = %390
  %428 = load double, ptr %72, align 8, !tbaa !11
  %429 = load ptr, ptr %38, align 8, !tbaa !5
  %430 = load double, ptr %429, align 8, !tbaa !11
  %431 = fadd double %428, %430
  %432 = call double @log(double noundef %431) #5
  %433 = load ptr, ptr %38, align 8, !tbaa !5
  %434 = load double, ptr %433, align 8, !tbaa !11
  %435 = call double @log(double noundef %434) #5
  %436 = fsub double %432, %435
  %437 = call double @log(double noundef 2.000000e+00) #5
  %438 = fdiv double %436, %437
  %439 = fptosi double %438 to i32
  %440 = add nsw i32 %439, 2
  store i32 %440, ptr %68, align 4, !tbaa !9
  %441 = load double, ptr %77, align 8, !tbaa !11
  %442 = load ptr, ptr %48, align 8, !tbaa !5
  %443 = load ptr, ptr %28, align 8, !tbaa !5
  %444 = load i32, ptr %443, align 4, !tbaa !9
  %445 = add nsw i32 %444, 1
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds double, ptr %442, i64 %446
  store double %441, ptr %447, align 8, !tbaa !11
  %448 = load double, ptr %77, align 8, !tbaa !11
  %449 = load ptr, ptr %48, align 8, !tbaa !5
  %450 = load ptr, ptr %28, align 8, !tbaa !5
  %451 = load i32, ptr %450, align 4, !tbaa !9
  %452 = add nsw i32 %451, 2
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds double, ptr %449, i64 %453
  store double %448, ptr %454, align 8, !tbaa !11
  %455 = load double, ptr %80, align 8, !tbaa !11
  %456 = load ptr, ptr %48, align 8, !tbaa !5
  %457 = load ptr, ptr %28, align 8, !tbaa !5
  %458 = load i32, ptr %457, align 4, !tbaa !9
  %459 = add nsw i32 %458, 3
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds double, ptr %456, i64 %460
  store double %455, ptr %461, align 8, !tbaa !11
  %462 = load double, ptr %80, align 8, !tbaa !11
  %463 = load ptr, ptr %48, align 8, !tbaa !5
  %464 = load ptr, ptr %28, align 8, !tbaa !5
  %465 = load i32, ptr %464, align 4, !tbaa !9
  %466 = add nsw i32 %465, 4
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds double, ptr %463, i64 %467
  store double %462, ptr %468, align 8, !tbaa !11
  %469 = load double, ptr %77, align 8, !tbaa !11
  %470 = load ptr, ptr %48, align 8, !tbaa !5
  %471 = load ptr, ptr %28, align 8, !tbaa !5
  %472 = load i32, ptr %471, align 4, !tbaa !9
  %473 = add nsw i32 %472, 5
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds double, ptr %470, i64 %474
  store double %469, ptr %475, align 8, !tbaa !11
  %476 = load double, ptr %80, align 8, !tbaa !11
  %477 = load ptr, ptr %48, align 8, !tbaa !5
  %478 = load ptr, ptr %28, align 8, !tbaa !5
  %479 = load i32, ptr %478, align 4, !tbaa !9
  %480 = add nsw i32 %479, 6
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds double, ptr %477, i64 %481
  store double %476, ptr %482, align 8, !tbaa !11
  %483 = load ptr, ptr %49, align 8, !tbaa !5
  %484 = getelementptr inbounds i32, ptr %483, i64 1
  store i32 -1, ptr %484, align 4, !tbaa !9
  %485 = load ptr, ptr %49, align 8, !tbaa !5
  %486 = getelementptr inbounds i32, ptr %485, i64 2
  store i32 -1, ptr %486, align 4, !tbaa !9
  %487 = load ptr, ptr %28, align 8, !tbaa !5
  %488 = load i32, ptr %487, align 4, !tbaa !9
  %489 = add nsw i32 %488, 1
  %490 = load ptr, ptr %49, align 8, !tbaa !5
  %491 = getelementptr inbounds i32, ptr %490, i64 3
  store i32 %489, ptr %491, align 4, !tbaa !9
  %492 = load ptr, ptr %28, align 8, !tbaa !5
  %493 = load i32, ptr %492, align 4, !tbaa !9
  %494 = add nsw i32 %493, 1
  %495 = load ptr, ptr %49, align 8, !tbaa !5
  %496 = getelementptr inbounds i32, ptr %495, i64 4
  store i32 %494, ptr %496, align 4, !tbaa !9
  %497 = load ptr, ptr %31, align 8, !tbaa !5
  %498 = load i32, ptr %497, align 4, !tbaa !9
  %499 = sub nsw i32 %498, 1
  %500 = load ptr, ptr %49, align 8, !tbaa !5
  %501 = getelementptr inbounds i32, ptr %500, i64 5
  store i32 %499, ptr %501, align 4, !tbaa !9
  %502 = load ptr, ptr %32, align 8, !tbaa !5
  %503 = load i32, ptr %502, align 4, !tbaa !9
  %504 = load ptr, ptr %49, align 8, !tbaa !5
  %505 = getelementptr inbounds i32, ptr %504, i64 6
  store i32 %503, ptr %505, align 4, !tbaa !9
  %506 = load ptr, ptr %28, align 8, !tbaa !5
  %507 = load ptr, ptr %38, align 8, !tbaa !5
  %508 = load ptr, ptr %35, align 8, !tbaa !5
  %509 = getelementptr inbounds double, ptr %508, i64 1
  %510 = load ptr, ptr %36, align 8, !tbaa !5
  %511 = getelementptr inbounds double, ptr %510, i64 1
  %512 = load ptr, ptr %37, align 8, !tbaa !5
  %513 = getelementptr inbounds double, ptr %512, i64 1
  %514 = load ptr, ptr %49, align 8, !tbaa !5
  %515 = getelementptr inbounds i32, ptr %514, i64 5
  %516 = load ptr, ptr %48, align 8, !tbaa !5
  %517 = load ptr, ptr %28, align 8, !tbaa !5
  %518 = load i32, ptr %517, align 4, !tbaa !9
  %519 = add nsw i32 %518, 1
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds double, ptr %516, i64 %520
  %522 = load ptr, ptr %48, align 8, !tbaa !5
  %523 = load ptr, ptr %28, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !9
  %525 = add nsw i32 %524, 5
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds double, ptr %522, i64 %526
  %528 = load ptr, ptr %49, align 8, !tbaa !5
  %529 = getelementptr inbounds i32, ptr %528, i64 1
  %530 = load ptr, ptr %42, align 8, !tbaa !5
  %531 = getelementptr inbounds double, ptr %530, i64 1
  %532 = load ptr, ptr %46, align 8, !tbaa !5
  %533 = getelementptr inbounds i32, ptr %532, i64 1
  call void @dlaebz_(ptr noundef @c__3, ptr noundef %68, ptr noundef %506, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %76, ptr noundef %66, ptr noundef %70, ptr noundef %507, ptr noundef %509, ptr noundef %511, ptr noundef %513, ptr noundef %515, ptr noundef %521, ptr noundef %527, ptr noundef %59, ptr noundef %529, ptr noundef %531, ptr noundef %533, ptr noundef %65)
  %534 = load i32, ptr %65, align 4, !tbaa !9
  %535 = icmp ne i32 %534, 0
  br i1 %535, label %536, label %539

536:                                              ; preds = %427
  %537 = load i32, ptr %65, align 4, !tbaa !9
  %538 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 %537, ptr %538, align 4, !tbaa !9
  store i32 1, ptr %97, align 4
  br label %1729

539:                                              ; preds = %427
  %540 = load ptr, ptr %49, align 8, !tbaa !5
  %541 = getelementptr inbounds i32, ptr %540, i64 6
  %542 = load i32, ptr %541, align 4, !tbaa !9
  %543 = load ptr, ptr %32, align 8, !tbaa !5
  %544 = load i32, ptr %543, align 4, !tbaa !9
  %545 = icmp eq i32 %542, %544
  br i1 %545, label %546, label %583

546:                                              ; preds = %539
  %547 = load ptr, ptr %48, align 8, !tbaa !5
  %548 = load ptr, ptr %28, align 8, !tbaa !5
  %549 = load i32, ptr %548, align 4, !tbaa !9
  %550 = add nsw i32 %549, 1
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds double, ptr %547, i64 %551
  %553 = load double, ptr %552, align 8, !tbaa !11
  %554 = load ptr, ptr %44, align 8, !tbaa !5
  store double %553, ptr %554, align 8, !tbaa !11
  %555 = load ptr, ptr %48, align 8, !tbaa !5
  %556 = load ptr, ptr %28, align 8, !tbaa !5
  %557 = load i32, ptr %556, align 4, !tbaa !9
  %558 = add nsw i32 %557, 3
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds double, ptr %555, i64 %559
  %561 = load double, ptr %560, align 8, !tbaa !11
  store double %561, ptr %92, align 8, !tbaa !11
  %562 = load ptr, ptr %49, align 8, !tbaa !5
  %563 = getelementptr inbounds i32, ptr %562, i64 1
  %564 = load i32, ptr %563, align 4, !tbaa !9
  store i32 %564, ptr %91, align 4, !tbaa !9
  %565 = load ptr, ptr %48, align 8, !tbaa !5
  %566 = load ptr, ptr %28, align 8, !tbaa !5
  %567 = load i32, ptr %566, align 4, !tbaa !9
  %568 = add nsw i32 %567, 4
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds double, ptr %565, i64 %569
  %571 = load double, ptr %570, align 8, !tbaa !11
  %572 = load ptr, ptr %45, align 8, !tbaa !5
  store double %571, ptr %572, align 8, !tbaa !11
  %573 = load ptr, ptr %48, align 8, !tbaa !5
  %574 = load ptr, ptr %28, align 8, !tbaa !5
  %575 = load i32, ptr %574, align 4, !tbaa !9
  %576 = add nsw i32 %575, 2
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds double, ptr %573, i64 %577
  %579 = load double, ptr %578, align 8, !tbaa !11
  store double %579, ptr %93, align 8, !tbaa !11
  %580 = load ptr, ptr %49, align 8, !tbaa !5
  %581 = getelementptr inbounds i32, ptr %580, i64 4
  %582 = load i32, ptr %581, align 4, !tbaa !9
  store i32 %582, ptr %94, align 4, !tbaa !9
  br label %620

583:                                              ; preds = %539
  %584 = load ptr, ptr %48, align 8, !tbaa !5
  %585 = load ptr, ptr %28, align 8, !tbaa !5
  %586 = load i32, ptr %585, align 4, !tbaa !9
  %587 = add nsw i32 %586, 2
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds double, ptr %584, i64 %588
  %590 = load double, ptr %589, align 8, !tbaa !11
  %591 = load ptr, ptr %44, align 8, !tbaa !5
  store double %590, ptr %591, align 8, !tbaa !11
  %592 = load ptr, ptr %48, align 8, !tbaa !5
  %593 = load ptr, ptr %28, align 8, !tbaa !5
  %594 = load i32, ptr %593, align 4, !tbaa !9
  %595 = add nsw i32 %594, 4
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds double, ptr %592, i64 %596
  %598 = load double, ptr %597, align 8, !tbaa !11
  store double %598, ptr %92, align 8, !tbaa !11
  %599 = load ptr, ptr %49, align 8, !tbaa !5
  %600 = getelementptr inbounds i32, ptr %599, i64 2
  %601 = load i32, ptr %600, align 4, !tbaa !9
  store i32 %601, ptr %91, align 4, !tbaa !9
  %602 = load ptr, ptr %48, align 8, !tbaa !5
  %603 = load ptr, ptr %28, align 8, !tbaa !5
  %604 = load i32, ptr %603, align 4, !tbaa !9
  %605 = add nsw i32 %604, 3
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds double, ptr %602, i64 %606
  %608 = load double, ptr %607, align 8, !tbaa !11
  %609 = load ptr, ptr %45, align 8, !tbaa !5
  store double %608, ptr %609, align 8, !tbaa !11
  %610 = load ptr, ptr %48, align 8, !tbaa !5
  %611 = load ptr, ptr %28, align 8, !tbaa !5
  %612 = load i32, ptr %611, align 4, !tbaa !9
  %613 = add nsw i32 %612, 1
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds double, ptr %610, i64 %614
  %616 = load double, ptr %615, align 8, !tbaa !11
  store double %616, ptr %93, align 8, !tbaa !11
  %617 = load ptr, ptr %49, align 8, !tbaa !5
  %618 = getelementptr inbounds i32, ptr %617, i64 3
  %619 = load i32, ptr %618, align 4, !tbaa !9
  store i32 %619, ptr %94, align 4, !tbaa !9
  br label %620

620:                                              ; preds = %583, %546
  %621 = load i32, ptr %91, align 4, !tbaa !9
  %622 = icmp slt i32 %621, 0
  br i1 %622, label %636, label %623

623:                                              ; preds = %620
  %624 = load i32, ptr %91, align 4, !tbaa !9
  %625 = load ptr, ptr %28, align 8, !tbaa !5
  %626 = load i32, ptr %625, align 4, !tbaa !9
  %627 = icmp sge i32 %624, %626
  br i1 %627, label %636, label %628

628:                                              ; preds = %623
  %629 = load i32, ptr %94, align 4, !tbaa !9
  %630 = icmp slt i32 %629, 1
  br i1 %630, label %636, label %631

631:                                              ; preds = %628
  %632 = load i32, ptr %94, align 4, !tbaa !9
  %633 = load ptr, ptr %28, align 8, !tbaa !5
  %634 = load i32, ptr %633, align 4, !tbaa !9
  %635 = icmp sgt i32 %632, %634
  br i1 %635, label %636, label %638

636:                                              ; preds = %631, %628, %623, %620
  %637 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 4, ptr %637, align 4, !tbaa !9
  store i32 1, ptr %97, align 4
  br label %1729

638:                                              ; preds = %631
  br label %659

639:                                              ; preds = %390
  %640 = load i32, ptr %83, align 4, !tbaa !9
  %641 = icmp eq i32 %640, 2
  br i1 %641, label %642, label %649

642:                                              ; preds = %639
  %643 = load ptr, ptr %29, align 8, !tbaa !5
  %644 = load double, ptr %643, align 8, !tbaa !11
  %645 = load ptr, ptr %44, align 8, !tbaa !5
  store double %644, ptr %645, align 8, !tbaa !11
  %646 = load ptr, ptr %30, align 8, !tbaa !5
  %647 = load double, ptr %646, align 8, !tbaa !11
  %648 = load ptr, ptr %45, align 8, !tbaa !5
  store double %647, ptr %648, align 8, !tbaa !11
  br label %658

649:                                              ; preds = %639
  %650 = load i32, ptr %83, align 4, !tbaa !9
  %651 = icmp eq i32 %650, 1
  br i1 %651, label %652, label %657

652:                                              ; preds = %649
  %653 = load double, ptr %77, align 8, !tbaa !11
  %654 = load ptr, ptr %44, align 8, !tbaa !5
  store double %653, ptr %654, align 8, !tbaa !11
  %655 = load double, ptr %80, align 8, !tbaa !11
  %656 = load ptr, ptr %45, align 8, !tbaa !5
  store double %655, ptr %656, align 8, !tbaa !11
  br label %657

657:                                              ; preds = %652, %649
  br label %658

658:                                              ; preds = %657, %642
  br label %659

659:                                              ; preds = %658, %638
  %660 = load ptr, ptr %41, align 8, !tbaa !5
  store i32 0, ptr %660, align 4, !tbaa !9
  store i32 0, ptr %56, align 4, !tbaa !9
  %661 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 0, ptr %661, align 4, !tbaa !9
  store i32 0, ptr %91, align 4, !tbaa !9
  store i32 0, ptr %94, align 4, !tbaa !9
  %662 = load ptr, ptr %39, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  store i32 %663, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %664

664:                                              ; preds = %1164, %659
  %665 = load i32, ptr %57, align 4, !tbaa !9
  %666 = load i32, ptr %51, align 4, !tbaa !9
  %667 = icmp sle i32 %665, %666
  br i1 %667, label %668, label %1167

668:                                              ; preds = %664
  %669 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %669, ptr %58, align 4, !tbaa !9
  %670 = load i32, ptr %58, align 4, !tbaa !9
  %671 = add nsw i32 %670, 1
  store i32 %671, ptr %81, align 4, !tbaa !9
  %672 = load ptr, ptr %40, align 8, !tbaa !5
  %673 = load i32, ptr %57, align 4, !tbaa !9
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds i32, ptr %672, i64 %674
  %676 = load i32, ptr %675, align 4, !tbaa !9
  store i32 %676, ptr %56, align 4, !tbaa !9
  %677 = load i32, ptr %56, align 4, !tbaa !9
  %678 = load i32, ptr %58, align 4, !tbaa !9
  %679 = sub nsw i32 %677, %678
  store i32 %679, ptr %79, align 4, !tbaa !9
  %680 = load i32, ptr %79, align 4, !tbaa !9
  %681 = icmp eq i32 %680, 1
  br i1 %681, label %682, label %770

682:                                              ; preds = %668
  %683 = load ptr, ptr %44, align 8, !tbaa !5
  %684 = load double, ptr %683, align 8, !tbaa !11
  %685 = load ptr, ptr %35, align 8, !tbaa !5
  %686 = load i32, ptr %81, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds double, ptr %685, i64 %687
  %689 = load double, ptr %688, align 8, !tbaa !11
  %690 = load ptr, ptr %38, align 8, !tbaa !5
  %691 = load double, ptr %690, align 8, !tbaa !11
  %692 = fsub double %689, %691
  %693 = fcmp oge double %684, %692
  br i1 %693, label %694, label %697

694:                                              ; preds = %682
  %695 = load i32, ptr %91, align 4, !tbaa !9
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr %91, align 4, !tbaa !9
  br label %697

697:                                              ; preds = %694, %682
  %698 = load ptr, ptr %45, align 8, !tbaa !5
  %699 = load double, ptr %698, align 8, !tbaa !11
  %700 = load ptr, ptr %35, align 8, !tbaa !5
  %701 = load i32, ptr %81, align 4, !tbaa !9
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds double, ptr %700, i64 %702
  %704 = load double, ptr %703, align 8, !tbaa !11
  %705 = load ptr, ptr %38, align 8, !tbaa !5
  %706 = load double, ptr %705, align 8, !tbaa !11
  %707 = fsub double %704, %706
  %708 = fcmp oge double %699, %707
  br i1 %708, label %709, label %712

709:                                              ; preds = %697
  %710 = load i32, ptr %94, align 4, !tbaa !9
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr %94, align 4, !tbaa !9
  br label %712

712:                                              ; preds = %709, %697
  %713 = load i32, ptr %83, align 4, !tbaa !9
  %714 = icmp eq i32 %713, 1
  br i1 %714, label %739, label %715

715:                                              ; preds = %712
  %716 = load ptr, ptr %44, align 8, !tbaa !5
  %717 = load double, ptr %716, align 8, !tbaa !11
  %718 = load ptr, ptr %35, align 8, !tbaa !5
  %719 = load i32, ptr %81, align 4, !tbaa !9
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds double, ptr %718, i64 %720
  %722 = load double, ptr %721, align 8, !tbaa !11
  %723 = load ptr, ptr %38, align 8, !tbaa !5
  %724 = load double, ptr %723, align 8, !tbaa !11
  %725 = fsub double %722, %724
  %726 = fcmp olt double %717, %725
  br i1 %726, label %727, label %769

727:                                              ; preds = %715
  %728 = load ptr, ptr %45, align 8, !tbaa !5
  %729 = load double, ptr %728, align 8, !tbaa !11
  %730 = load ptr, ptr %35, align 8, !tbaa !5
  %731 = load i32, ptr %81, align 4, !tbaa !9
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds double, ptr %730, i64 %732
  %734 = load double, ptr %733, align 8, !tbaa !11
  %735 = load ptr, ptr %38, align 8, !tbaa !5
  %736 = load double, ptr %735, align 8, !tbaa !11
  %737 = fsub double %734, %736
  %738 = fcmp oge double %729, %737
  br i1 %738, label %739, label %769

739:                                              ; preds = %727, %712
  %740 = load ptr, ptr %41, align 8, !tbaa !5
  %741 = load i32, ptr %740, align 4, !tbaa !9
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr %740, align 4, !tbaa !9
  %743 = load ptr, ptr %35, align 8, !tbaa !5
  %744 = load i32, ptr %81, align 4, !tbaa !9
  %745 = sext i32 %744 to i64
  %746 = getelementptr inbounds double, ptr %743, i64 %745
  %747 = load double, ptr %746, align 8, !tbaa !11
  %748 = load ptr, ptr %42, align 8, !tbaa !5
  %749 = load ptr, ptr %41, align 8, !tbaa !5
  %750 = load i32, ptr %749, align 4, !tbaa !9
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds double, ptr %748, i64 %751
  store double %747, ptr %752, align 8, !tbaa !11
  %753 = load ptr, ptr %43, align 8, !tbaa !5
  %754 = load ptr, ptr %41, align 8, !tbaa !5
  %755 = load i32, ptr %754, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds double, ptr %753, i64 %756
  store double 0.000000e+00, ptr %757, align 8, !tbaa !11
  %758 = load i32, ptr %57, align 4, !tbaa !9
  %759 = load ptr, ptr %46, align 8, !tbaa !5
  %760 = load ptr, ptr %41, align 8, !tbaa !5
  %761 = load i32, ptr %760, align 4, !tbaa !9
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds i32, ptr %759, i64 %762
  store i32 %758, ptr %763, align 4, !tbaa !9
  %764 = load ptr, ptr %47, align 8, !tbaa !5
  %765 = load ptr, ptr %41, align 8, !tbaa !5
  %766 = load i32, ptr %765, align 4, !tbaa !9
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds i32, ptr %764, i64 %767
  store i32 1, ptr %768, align 4, !tbaa !9
  br label %769

769:                                              ; preds = %739, %727, %715
  br label %1162

770:                                              ; preds = %668
  %771 = load ptr, ptr %35, align 8, !tbaa !5
  %772 = load i32, ptr %81, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds double, ptr %771, i64 %773
  %775 = load double, ptr %774, align 8, !tbaa !11
  store double %775, ptr %80, align 8, !tbaa !11
  %776 = load ptr, ptr %35, align 8, !tbaa !5
  %777 = load i32, ptr %81, align 4, !tbaa !9
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds double, ptr %776, i64 %778
  %780 = load double, ptr %779, align 8, !tbaa !11
  store double %780, ptr %77, align 8, !tbaa !11
  store double 0.000000e+00, ptr %95, align 8, !tbaa !11
  %781 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %781, ptr %52, align 4, !tbaa !9
  %782 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %782, ptr %63, align 4, !tbaa !9
  br label %783

783:                                              ; preds = %821, %770
  %784 = load i32, ptr %63, align 4, !tbaa !9
  %785 = load i32, ptr %52, align 4, !tbaa !9
  %786 = icmp sle i32 %784, %785
  br i1 %786, label %787, label %824

787:                                              ; preds = %783
  %788 = load double, ptr %77, align 8, !tbaa !11
  store double %788, ptr %54, align 8, !tbaa !11
  %789 = load ptr, ptr %33, align 8, !tbaa !5
  %790 = load i32, ptr %63, align 4, !tbaa !9
  %791 = shl i32 %790, 1
  %792 = sub nsw i32 %791, 1
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds double, ptr %789, i64 %793
  %795 = load double, ptr %794, align 8, !tbaa !11
  store double %795, ptr %55, align 8, !tbaa !11
  %796 = load double, ptr %54, align 8, !tbaa !11
  %797 = load double, ptr %55, align 8, !tbaa !11
  %798 = fcmp ole double %796, %797
  br i1 %798, label %799, label %801

799:                                              ; preds = %787
  %800 = load double, ptr %54, align 8, !tbaa !11
  br label %803

801:                                              ; preds = %787
  %802 = load double, ptr %55, align 8, !tbaa !11
  br label %803

803:                                              ; preds = %801, %799
  %804 = phi double [ %800, %799 ], [ %802, %801 ]
  store double %804, ptr %77, align 8, !tbaa !11
  %805 = load double, ptr %80, align 8, !tbaa !11
  store double %805, ptr %54, align 8, !tbaa !11
  %806 = load ptr, ptr %33, align 8, !tbaa !5
  %807 = load i32, ptr %63, align 4, !tbaa !9
  %808 = mul nsw i32 %807, 2
  %809 = sext i32 %808 to i64
  %810 = getelementptr inbounds double, ptr %806, i64 %809
  %811 = load double, ptr %810, align 8, !tbaa !11
  store double %811, ptr %55, align 8, !tbaa !11
  %812 = load double, ptr %54, align 8, !tbaa !11
  %813 = load double, ptr %55, align 8, !tbaa !11
  %814 = fcmp oge double %812, %813
  br i1 %814, label %815, label %817

815:                                              ; preds = %803
  %816 = load double, ptr %54, align 8, !tbaa !11
  br label %819

817:                                              ; preds = %803
  %818 = load double, ptr %55, align 8, !tbaa !11
  br label %819

819:                                              ; preds = %817, %815
  %820 = phi double [ %816, %815 ], [ %818, %817 ]
  store double %820, ptr %80, align 8, !tbaa !11
  br label %821

821:                                              ; preds = %819
  %822 = load i32, ptr %63, align 4, !tbaa !9
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr %63, align 4, !tbaa !9
  br label %783, !llvm.loop !15

824:                                              ; preds = %783
  %825 = load double, ptr %77, align 8, !tbaa !11
  %826 = load double, ptr %72, align 8, !tbaa !11
  %827 = fmul double %826, 2.000000e+00
  %828 = load double, ptr %90, align 8, !tbaa !11
  %829 = fmul double %827, %828
  %830 = load i32, ptr %79, align 4, !tbaa !9
  %831 = sitofp i32 %830 to double
  %832 = fneg double %829
  %833 = call double @llvm.fmuladd.f64(double %832, double %831, double %825)
  %834 = load ptr, ptr %38, align 8, !tbaa !5
  %835 = load double, ptr %834, align 8, !tbaa !11
  %836 = fneg double %835
  %837 = call double @llvm.fmuladd.f64(double %836, double 2.000000e+00, double %833)
  store double %837, ptr %77, align 8, !tbaa !11
  %838 = load double, ptr %80, align 8, !tbaa !11
  %839 = load double, ptr %72, align 8, !tbaa !11
  %840 = fmul double %839, 2.000000e+00
  %841 = load double, ptr %90, align 8, !tbaa !11
  %842 = fmul double %840, %841
  %843 = load i32, ptr %79, align 4, !tbaa !9
  %844 = sitofp i32 %843 to double
  %845 = call double @llvm.fmuladd.f64(double %842, double %844, double %838)
  %846 = load ptr, ptr %38, align 8, !tbaa !5
  %847 = load double, ptr %846, align 8, !tbaa !11
  %848 = call double @llvm.fmuladd.f64(double %847, double 2.000000e+00, double %845)
  store double %848, ptr %80, align 8, !tbaa !11
  %849 = load i32, ptr %83, align 4, !tbaa !9
  %850 = icmp sgt i32 %849, 1
  br i1 %850, label %851, label %891

851:                                              ; preds = %824
  %852 = load double, ptr %80, align 8, !tbaa !11
  %853 = load ptr, ptr %44, align 8, !tbaa !5
  %854 = load double, ptr %853, align 8, !tbaa !11
  %855 = fcmp olt double %852, %854
  br i1 %855, label %856, label %863

856:                                              ; preds = %851
  %857 = load i32, ptr %79, align 4, !tbaa !9
  %858 = load i32, ptr %91, align 4, !tbaa !9
  %859 = add nsw i32 %858, %857
  store i32 %859, ptr %91, align 4, !tbaa !9
  %860 = load i32, ptr %79, align 4, !tbaa !9
  %861 = load i32, ptr %94, align 4, !tbaa !9
  %862 = add nsw i32 %861, %860
  store i32 %862, ptr %94, align 4, !tbaa !9
  br label %1163

863:                                              ; preds = %851
  %864 = load double, ptr %77, align 8, !tbaa !11
  %865 = load ptr, ptr %44, align 8, !tbaa !5
  %866 = load double, ptr %865, align 8, !tbaa !11
  %867 = fcmp oge double %864, %866
  br i1 %867, label %868, label %870

868:                                              ; preds = %863
  %869 = load double, ptr %77, align 8, !tbaa !11
  br label %873

870:                                              ; preds = %863
  %871 = load ptr, ptr %44, align 8, !tbaa !5
  %872 = load double, ptr %871, align 8, !tbaa !11
  br label %873

873:                                              ; preds = %870, %868
  %874 = phi double [ %869, %868 ], [ %872, %870 ]
  store double %874, ptr %77, align 8, !tbaa !11
  %875 = load double, ptr %80, align 8, !tbaa !11
  %876 = load ptr, ptr %45, align 8, !tbaa !5
  %877 = load double, ptr %876, align 8, !tbaa !11
  %878 = fcmp ole double %875, %877
  br i1 %878, label %879, label %881

879:                                              ; preds = %873
  %880 = load double, ptr %80, align 8, !tbaa !11
  br label %884

881:                                              ; preds = %873
  %882 = load ptr, ptr %45, align 8, !tbaa !5
  %883 = load double, ptr %882, align 8, !tbaa !11
  br label %884

884:                                              ; preds = %881, %879
  %885 = phi double [ %880, %879 ], [ %883, %881 ]
  store double %885, ptr %80, align 8, !tbaa !11
  %886 = load double, ptr %77, align 8, !tbaa !11
  %887 = load double, ptr %80, align 8, !tbaa !11
  %888 = fcmp oge double %886, %887
  br i1 %888, label %889, label %890

889:                                              ; preds = %884
  br label %1163

890:                                              ; preds = %884
  br label %891

891:                                              ; preds = %890, %824
  %892 = load double, ptr %77, align 8, !tbaa !11
  %893 = load ptr, ptr %48, align 8, !tbaa !5
  %894 = load ptr, ptr %28, align 8, !tbaa !5
  %895 = load i32, ptr %894, align 4, !tbaa !9
  %896 = add nsw i32 %895, 1
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds double, ptr %893, i64 %897
  store double %892, ptr %898, align 8, !tbaa !11
  %899 = load double, ptr %80, align 8, !tbaa !11
  %900 = load ptr, ptr %48, align 8, !tbaa !5
  %901 = load ptr, ptr %28, align 8, !tbaa !5
  %902 = load i32, ptr %901, align 4, !tbaa !9
  %903 = load i32, ptr %79, align 4, !tbaa !9
  %904 = add nsw i32 %902, %903
  %905 = add nsw i32 %904, 1
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds double, ptr %900, i64 %906
  store double %899, ptr %907, align 8, !tbaa !11
  %908 = load ptr, ptr %38, align 8, !tbaa !5
  %909 = load ptr, ptr %35, align 8, !tbaa !5
  %910 = load i32, ptr %81, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds double, ptr %909, i64 %911
  %913 = load ptr, ptr %36, align 8, !tbaa !5
  %914 = load i32, ptr %81, align 4, !tbaa !9
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds double, ptr %913, i64 %915
  %917 = load ptr, ptr %37, align 8, !tbaa !5
  %918 = load i32, ptr %81, align 4, !tbaa !9
  %919 = sext i32 %918 to i64
  %920 = getelementptr inbounds double, ptr %917, i64 %919
  %921 = getelementptr inbounds [1 x i32], ptr %85, i64 0, i64 0
  %922 = load ptr, ptr %48, align 8, !tbaa !5
  %923 = load ptr, ptr %28, align 8, !tbaa !5
  %924 = load i32, ptr %923, align 4, !tbaa !9
  %925 = add nsw i32 %924, 1
  %926 = sext i32 %925 to i64
  %927 = getelementptr inbounds double, ptr %922, i64 %926
  %928 = load ptr, ptr %48, align 8, !tbaa !5
  %929 = load ptr, ptr %28, align 8, !tbaa !5
  %930 = load i32, ptr %929, align 4, !tbaa !9
  %931 = load i32, ptr %79, align 4, !tbaa !9
  %932 = shl i32 %931, 1
  %933 = add nsw i32 %930, %932
  %934 = add nsw i32 %933, 1
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds double, ptr %928, i64 %935
  %937 = load ptr, ptr %49, align 8, !tbaa !5
  %938 = getelementptr inbounds i32, ptr %937, i64 1
  %939 = load ptr, ptr %42, align 8, !tbaa !5
  %940 = load ptr, ptr %41, align 8, !tbaa !5
  %941 = load i32, ptr %940, align 4, !tbaa !9
  %942 = add nsw i32 %941, 1
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds double, ptr %939, i64 %943
  %945 = load ptr, ptr %46, align 8, !tbaa !5
  %946 = load ptr, ptr %41, align 8, !tbaa !5
  %947 = load i32, ptr %946, align 4, !tbaa !9
  %948 = add nsw i32 %947, 1
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds i32, ptr %945, i64 %949
  call void @dlaebz_(ptr noundef @c__1, ptr noundef @c__0, ptr noundef %79, ptr noundef %79, ptr noundef @c__1, ptr noundef %76, ptr noundef %66, ptr noundef %70, ptr noundef %908, ptr noundef %912, ptr noundef %916, ptr noundef %920, ptr noundef %921, ptr noundef %927, ptr noundef %936, ptr noundef %78, ptr noundef %938, ptr noundef %944, ptr noundef %950, ptr noundef %65)
  %951 = load i32, ptr %65, align 4, !tbaa !9
  %952 = icmp ne i32 %951, 0
  br i1 %952, label %953, label %956

953:                                              ; preds = %891
  %954 = load i32, ptr %65, align 4, !tbaa !9
  %955 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 %954, ptr %955, align 4, !tbaa !9
  store i32 1, ptr %97, align 4
  br label %1729

956:                                              ; preds = %891
  %957 = load ptr, ptr %49, align 8, !tbaa !5
  %958 = getelementptr inbounds i32, ptr %957, i64 1
  %959 = load i32, ptr %958, align 4, !tbaa !9
  %960 = load i32, ptr %91, align 4, !tbaa !9
  %961 = add nsw i32 %960, %959
  store i32 %961, ptr %91, align 4, !tbaa !9
  %962 = load ptr, ptr %49, align 8, !tbaa !5
  %963 = load i32, ptr %79, align 4, !tbaa !9
  %964 = add nsw i32 %963, 1
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds i32, ptr %962, i64 %965
  %967 = load i32, ptr %966, align 4, !tbaa !9
  %968 = load i32, ptr %94, align 4, !tbaa !9
  %969 = add nsw i32 %968, %967
  store i32 %969, ptr %94, align 4, !tbaa !9
  %970 = load ptr, ptr %41, align 8, !tbaa !5
  %971 = load i32, ptr %970, align 4, !tbaa !9
  %972 = load ptr, ptr %49, align 8, !tbaa !5
  %973 = getelementptr inbounds i32, ptr %972, i64 1
  %974 = load i32, ptr %973, align 4, !tbaa !9
  %975 = sub nsw i32 %971, %974
  store i32 %975, ptr %67, align 4, !tbaa !9
  %976 = load double, ptr %80, align 8, !tbaa !11
  %977 = load double, ptr %77, align 8, !tbaa !11
  %978 = fsub double %976, %977
  %979 = load ptr, ptr %38, align 8, !tbaa !5
  %980 = load double, ptr %979, align 8, !tbaa !11
  %981 = fadd double %978, %980
  %982 = call double @log(double noundef %981) #5
  %983 = load ptr, ptr %38, align 8, !tbaa !5
  %984 = load double, ptr %983, align 8, !tbaa !11
  %985 = call double @log(double noundef %984) #5
  %986 = fsub double %982, %985
  %987 = call double @log(double noundef 2.000000e+00) #5
  %988 = fdiv double %986, %987
  %989 = fptosi double %988 to i32
  %990 = add nsw i32 %989, 2
  store i32 %990, ptr %68, align 4, !tbaa !9
  %991 = load ptr, ptr %38, align 8, !tbaa !5
  %992 = load ptr, ptr %35, align 8, !tbaa !5
  %993 = load i32, ptr %81, align 4, !tbaa !9
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds double, ptr %992, i64 %994
  %996 = load ptr, ptr %36, align 8, !tbaa !5
  %997 = load i32, ptr %81, align 4, !tbaa !9
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds double, ptr %996, i64 %998
  %1000 = load ptr, ptr %37, align 8, !tbaa !5
  %1001 = load i32, ptr %81, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds double, ptr %1000, i64 %1002
  %1004 = getelementptr inbounds [1 x i32], ptr %85, i64 0, i64 0
  %1005 = load ptr, ptr %48, align 8, !tbaa !5
  %1006 = load ptr, ptr %28, align 8, !tbaa !5
  %1007 = load i32, ptr %1006, align 4, !tbaa !9
  %1008 = add nsw i32 %1007, 1
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds double, ptr %1005, i64 %1009
  %1011 = load ptr, ptr %48, align 8, !tbaa !5
  %1012 = load ptr, ptr %28, align 8, !tbaa !5
  %1013 = load i32, ptr %1012, align 4, !tbaa !9
  %1014 = load i32, ptr %79, align 4, !tbaa !9
  %1015 = shl i32 %1014, 1
  %1016 = add nsw i32 %1013, %1015
  %1017 = add nsw i32 %1016, 1
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds double, ptr %1011, i64 %1018
  %1020 = load ptr, ptr %49, align 8, !tbaa !5
  %1021 = getelementptr inbounds i32, ptr %1020, i64 1
  %1022 = load ptr, ptr %42, align 8, !tbaa !5
  %1023 = load ptr, ptr %41, align 8, !tbaa !5
  %1024 = load i32, ptr %1023, align 4, !tbaa !9
  %1025 = add nsw i32 %1024, 1
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds double, ptr %1022, i64 %1026
  %1028 = load ptr, ptr %46, align 8, !tbaa !5
  %1029 = load ptr, ptr %41, align 8, !tbaa !5
  %1030 = load i32, ptr %1029, align 4, !tbaa !9
  %1031 = add nsw i32 %1030, 1
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds i32, ptr %1028, i64 %1032
  call void @dlaebz_(ptr noundef @c__2, ptr noundef %68, ptr noundef %79, ptr noundef %79, ptr noundef @c__1, ptr noundef %76, ptr noundef %66, ptr noundef %70, ptr noundef %991, ptr noundef %995, ptr noundef %999, ptr noundef %1003, ptr noundef %1004, ptr noundef %1010, ptr noundef %1019, ptr noundef %59, ptr noundef %1021, ptr noundef %1027, ptr noundef %1033, ptr noundef %65)
  %1034 = load i32, ptr %65, align 4, !tbaa !9
  %1035 = icmp ne i32 %1034, 0
  br i1 %1035, label %1036, label %1039

1036:                                             ; preds = %956
  %1037 = load i32, ptr %65, align 4, !tbaa !9
  %1038 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 %1037, ptr %1038, align 4, !tbaa !9
  store i32 1, ptr %97, align 4
  br label %1729

1039:                                             ; preds = %956
  %1040 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %1040, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %1041

1041:                                             ; preds = %1154, %1039
  %1042 = load i32, ptr %63, align 4, !tbaa !9
  %1043 = load i32, ptr %52, align 4, !tbaa !9
  %1044 = icmp sle i32 %1042, %1043
  br i1 %1044, label %1045, label %1157

1045:                                             ; preds = %1041
  %1046 = load ptr, ptr %48, align 8, !tbaa !5
  %1047 = load i32, ptr %63, align 4, !tbaa !9
  %1048 = load ptr, ptr %28, align 8, !tbaa !5
  %1049 = load i32, ptr %1048, align 4, !tbaa !9
  %1050 = add nsw i32 %1047, %1049
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds double, ptr %1046, i64 %1051
  %1053 = load double, ptr %1052, align 8, !tbaa !11
  %1054 = load ptr, ptr %48, align 8, !tbaa !5
  %1055 = load i32, ptr %63, align 4, !tbaa !9
  %1056 = load i32, ptr %79, align 4, !tbaa !9
  %1057 = add nsw i32 %1055, %1056
  %1058 = load ptr, ptr %28, align 8, !tbaa !5
  %1059 = load i32, ptr %1058, align 4, !tbaa !9
  %1060 = add nsw i32 %1057, %1059
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds double, ptr %1054, i64 %1061
  %1063 = load double, ptr %1062, align 8, !tbaa !11
  %1064 = fadd double %1053, %1063
  %1065 = fmul double %1064, 5.000000e-01
  store double %1065, ptr %95, align 8, !tbaa !11
  %1066 = load ptr, ptr %48, align 8, !tbaa !5
  %1067 = load i32, ptr %63, align 4, !tbaa !9
  %1068 = load ptr, ptr %28, align 8, !tbaa !5
  %1069 = load i32, ptr %1068, align 4, !tbaa !9
  %1070 = add nsw i32 %1067, %1069
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds double, ptr %1066, i64 %1071
  %1073 = load double, ptr %1072, align 8, !tbaa !11
  %1074 = load ptr, ptr %48, align 8, !tbaa !5
  %1075 = load i32, ptr %63, align 4, !tbaa !9
  %1076 = load i32, ptr %79, align 4, !tbaa !9
  %1077 = add nsw i32 %1075, %1076
  %1078 = load ptr, ptr %28, align 8, !tbaa !5
  %1079 = load i32, ptr %1078, align 4, !tbaa !9
  %1080 = add nsw i32 %1077, %1079
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds double, ptr %1074, i64 %1081
  %1083 = load double, ptr %1082, align 8, !tbaa !11
  %1084 = fsub double %1073, %1083
  store double %1084, ptr %54, align 8, !tbaa !11
  %1085 = load double, ptr %54, align 8, !tbaa !11
  %1086 = fcmp oge double %1085, 0.000000e+00
  br i1 %1086, label %1087, label %1089

1087:                                             ; preds = %1045
  %1088 = load double, ptr %54, align 8, !tbaa !11
  br label %1092

1089:                                             ; preds = %1045
  %1090 = load double, ptr %54, align 8, !tbaa !11
  %1091 = fneg double %1090
  br label %1092

1092:                                             ; preds = %1089, %1087
  %1093 = phi double [ %1088, %1087 ], [ %1091, %1089 ]
  %1094 = fmul double %1093, 5.000000e-01
  store double %1094, ptr %96, align 8, !tbaa !11
  %1095 = load i32, ptr %63, align 4, !tbaa !9
  %1096 = load i32, ptr %59, align 4, !tbaa !9
  %1097 = load i32, ptr %65, align 4, !tbaa !9
  %1098 = sub nsw i32 %1096, %1097
  %1099 = icmp sgt i32 %1095, %1098
  br i1 %1099, label %1100, label %1103

1100:                                             ; preds = %1092
  store i32 1, ptr %87, align 4, !tbaa !9
  %1101 = load i32, ptr %57, align 4, !tbaa !9
  %1102 = sub nsw i32 0, %1101
  store i32 %1102, ptr %73, align 4, !tbaa !9
  br label %1105

1103:                                             ; preds = %1092
  %1104 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %1104, ptr %73, align 4, !tbaa !9
  br label %1105

1105:                                             ; preds = %1103, %1100
  %1106 = load ptr, ptr %49, align 8, !tbaa !5
  %1107 = load i32, ptr %63, align 4, !tbaa !9
  %1108 = load i32, ptr %79, align 4, !tbaa !9
  %1109 = add nsw i32 %1107, %1108
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds i32, ptr %1106, i64 %1110
  %1112 = load i32, ptr %1111, align 4, !tbaa !9
  %1113 = load i32, ptr %67, align 4, !tbaa !9
  %1114 = add nsw i32 %1112, %1113
  store i32 %1114, ptr %53, align 4, !tbaa !9
  %1115 = load ptr, ptr %49, align 8, !tbaa !5
  %1116 = load i32, ptr %63, align 4, !tbaa !9
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds i32, ptr %1115, i64 %1117
  %1119 = load i32, ptr %1118, align 4, !tbaa !9
  %1120 = add nsw i32 %1119, 1
  %1121 = load i32, ptr %67, align 4, !tbaa !9
  %1122 = add nsw i32 %1120, %1121
  store i32 %1122, ptr %75, align 4, !tbaa !9
  br label %1123

1123:                                             ; preds = %1150, %1105
  %1124 = load i32, ptr %75, align 4, !tbaa !9
  %1125 = load i32, ptr %53, align 4, !tbaa !9
  %1126 = icmp sle i32 %1124, %1125
  br i1 %1126, label %1127, label %1153

1127:                                             ; preds = %1123
  %1128 = load double, ptr %95, align 8, !tbaa !11
  %1129 = load ptr, ptr %42, align 8, !tbaa !5
  %1130 = load i32, ptr %75, align 4, !tbaa !9
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds double, ptr %1129, i64 %1131
  store double %1128, ptr %1132, align 8, !tbaa !11
  %1133 = load double, ptr %96, align 8, !tbaa !11
  %1134 = load ptr, ptr %43, align 8, !tbaa !5
  %1135 = load i32, ptr %75, align 4, !tbaa !9
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds double, ptr %1134, i64 %1136
  store double %1133, ptr %1137, align 8, !tbaa !11
  %1138 = load i32, ptr %75, align 4, !tbaa !9
  %1139 = load i32, ptr %67, align 4, !tbaa !9
  %1140 = sub nsw i32 %1138, %1139
  %1141 = load ptr, ptr %47, align 8, !tbaa !5
  %1142 = load i32, ptr %75, align 4, !tbaa !9
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds i32, ptr %1141, i64 %1143
  store i32 %1140, ptr %1144, align 4, !tbaa !9
  %1145 = load i32, ptr %73, align 4, !tbaa !9
  %1146 = load ptr, ptr %46, align 8, !tbaa !5
  %1147 = load i32, ptr %75, align 4, !tbaa !9
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds i32, ptr %1146, i64 %1148
  store i32 %1145, ptr %1149, align 4, !tbaa !9
  br label %1150

1150:                                             ; preds = %1127
  %1151 = load i32, ptr %75, align 4, !tbaa !9
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr %75, align 4, !tbaa !9
  br label %1123, !llvm.loop !16

1153:                                             ; preds = %1123
  br label %1154

1154:                                             ; preds = %1153
  %1155 = load i32, ptr %63, align 4, !tbaa !9
  %1156 = add nsw i32 %1155, 1
  store i32 %1156, ptr %63, align 4, !tbaa !9
  br label %1041, !llvm.loop !17

1157:                                             ; preds = %1041
  %1158 = load i32, ptr %78, align 4, !tbaa !9
  %1159 = load ptr, ptr %41, align 8, !tbaa !5
  %1160 = load i32, ptr %1159, align 4, !tbaa !9
  %1161 = add nsw i32 %1160, %1158
  store i32 %1161, ptr %1159, align 4, !tbaa !9
  br label %1162

1162:                                             ; preds = %1157, %769
  br label %1163

1163:                                             ; preds = %1162, %889, %856
  br label %1164

1164:                                             ; preds = %1163
  %1165 = load i32, ptr %57, align 4, !tbaa !9
  %1166 = add nsw i32 %1165, 1
  store i32 %1166, ptr %57, align 4, !tbaa !9
  br label %664, !llvm.loop !18

1167:                                             ; preds = %664
  %1168 = load i32, ptr %83, align 4, !tbaa !9
  %1169 = icmp eq i32 %1168, 3
  br i1 %1169, label %1170, label %1561

1170:                                             ; preds = %1167
  %1171 = load ptr, ptr %31, align 8, !tbaa !5
  %1172 = load i32, ptr %1171, align 4, !tbaa !9
  %1173 = sub nsw i32 %1172, 1
  %1174 = load i32, ptr %91, align 4, !tbaa !9
  %1175 = sub nsw i32 %1173, %1174
  store i32 %1175, ptr %84, align 4, !tbaa !9
  %1176 = load i32, ptr %94, align 4, !tbaa !9
  %1177 = load ptr, ptr %32, align 8, !tbaa !5
  %1178 = load i32, ptr %1177, align 4, !tbaa !9
  %1179 = sub nsw i32 %1176, %1178
  store i32 %1179, ptr %86, align 4, !tbaa !9
  %1180 = load i32, ptr %84, align 4, !tbaa !9
  %1181 = icmp sgt i32 %1180, 0
  br i1 %1181, label %1182, label %1249

1182:                                             ; preds = %1170
  store i32 0, ptr %78, align 4, !tbaa !9
  %1183 = load ptr, ptr %41, align 8, !tbaa !5
  %1184 = load i32, ptr %1183, align 4, !tbaa !9
  store i32 %1184, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %1185

1185:                                             ; preds = %1243, %1182
  %1186 = load i32, ptr %75, align 4, !tbaa !9
  %1187 = load i32, ptr %51, align 4, !tbaa !9
  %1188 = icmp sle i32 %1186, %1187
  br i1 %1188, label %1189, label %1246

1189:                                             ; preds = %1185
  %1190 = load ptr, ptr %42, align 8, !tbaa !5
  %1191 = load i32, ptr %75, align 4, !tbaa !9
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds double, ptr %1190, i64 %1192
  %1194 = load double, ptr %1193, align 8, !tbaa !11
  %1195 = load double, ptr %92, align 8, !tbaa !11
  %1196 = fcmp ole double %1194, %1195
  br i1 %1196, label %1197, label %1203

1197:                                             ; preds = %1189
  %1198 = load i32, ptr %84, align 4, !tbaa !9
  %1199 = icmp sgt i32 %1198, 0
  br i1 %1199, label %1200, label %1203

1200:                                             ; preds = %1197
  %1201 = load i32, ptr %84, align 4, !tbaa !9
  %1202 = add nsw i32 %1201, -1
  store i32 %1202, ptr %84, align 4, !tbaa !9
  br label %1242

1203:                                             ; preds = %1197, %1189
  %1204 = load i32, ptr %78, align 4, !tbaa !9
  %1205 = add nsw i32 %1204, 1
  store i32 %1205, ptr %78, align 4, !tbaa !9
  %1206 = load ptr, ptr %42, align 8, !tbaa !5
  %1207 = load i32, ptr %75, align 4, !tbaa !9
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds double, ptr %1206, i64 %1208
  %1210 = load double, ptr %1209, align 8, !tbaa !11
  %1211 = load ptr, ptr %42, align 8, !tbaa !5
  %1212 = load i32, ptr %78, align 4, !tbaa !9
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds double, ptr %1211, i64 %1213
  store double %1210, ptr %1214, align 8, !tbaa !11
  %1215 = load ptr, ptr %43, align 8, !tbaa !5
  %1216 = load i32, ptr %75, align 4, !tbaa !9
  %1217 = sext i32 %1216 to i64
  %1218 = getelementptr inbounds double, ptr %1215, i64 %1217
  %1219 = load double, ptr %1218, align 8, !tbaa !11
  %1220 = load ptr, ptr %43, align 8, !tbaa !5
  %1221 = load i32, ptr %78, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds double, ptr %1220, i64 %1222
  store double %1219, ptr %1223, align 8, !tbaa !11
  %1224 = load ptr, ptr %47, align 8, !tbaa !5
  %1225 = load i32, ptr %75, align 4, !tbaa !9
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds i32, ptr %1224, i64 %1226
  %1228 = load i32, ptr %1227, align 4, !tbaa !9
  %1229 = load ptr, ptr %47, align 8, !tbaa !5
  %1230 = load i32, ptr %78, align 4, !tbaa !9
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds i32, ptr %1229, i64 %1231
  store i32 %1228, ptr %1232, align 4, !tbaa !9
  %1233 = load ptr, ptr %46, align 8, !tbaa !5
  %1234 = load i32, ptr %75, align 4, !tbaa !9
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds i32, ptr %1233, i64 %1235
  %1237 = load i32, ptr %1236, align 4, !tbaa !9
  %1238 = load ptr, ptr %46, align 8, !tbaa !5
  %1239 = load i32, ptr %78, align 4, !tbaa !9
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds i32, ptr %1238, i64 %1240
  store i32 %1237, ptr %1241, align 4, !tbaa !9
  br label %1242

1242:                                             ; preds = %1203, %1200
  br label %1243

1243:                                             ; preds = %1242
  %1244 = load i32, ptr %75, align 4, !tbaa !9
  %1245 = add nsw i32 %1244, 1
  store i32 %1245, ptr %75, align 4, !tbaa !9
  br label %1185, !llvm.loop !19

1246:                                             ; preds = %1185
  %1247 = load i32, ptr %78, align 4, !tbaa !9
  %1248 = load ptr, ptr %41, align 8, !tbaa !5
  store i32 %1247, ptr %1248, align 4, !tbaa !9
  br label %1249

1249:                                             ; preds = %1246, %1170
  %1250 = load i32, ptr %86, align 4, !tbaa !9
  %1251 = icmp sgt i32 %1250, 0
  br i1 %1251, label %1252, label %1375

1252:                                             ; preds = %1249
  %1253 = load ptr, ptr %41, align 8, !tbaa !5
  %1254 = load i32, ptr %1253, align 4, !tbaa !9
  %1255 = add nsw i32 %1254, 1
  store i32 %1255, ptr %78, align 4, !tbaa !9
  %1256 = load ptr, ptr %41, align 8, !tbaa !5
  %1257 = load i32, ptr %1256, align 4, !tbaa !9
  store i32 %1257, ptr %75, align 4, !tbaa !9
  br label %1258

1258:                                             ; preds = %1315, %1252
  %1259 = load i32, ptr %75, align 4, !tbaa !9
  %1260 = icmp sge i32 %1259, 1
  br i1 %1260, label %1261, label %1318

1261:                                             ; preds = %1258
  %1262 = load ptr, ptr %42, align 8, !tbaa !5
  %1263 = load i32, ptr %75, align 4, !tbaa !9
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds double, ptr %1262, i64 %1264
  %1266 = load double, ptr %1265, align 8, !tbaa !11
  %1267 = load double, ptr %93, align 8, !tbaa !11
  %1268 = fcmp oge double %1266, %1267
  br i1 %1268, label %1269, label %1275

1269:                                             ; preds = %1261
  %1270 = load i32, ptr %86, align 4, !tbaa !9
  %1271 = icmp sgt i32 %1270, 0
  br i1 %1271, label %1272, label %1275

1272:                                             ; preds = %1269
  %1273 = load i32, ptr %86, align 4, !tbaa !9
  %1274 = add nsw i32 %1273, -1
  store i32 %1274, ptr %86, align 4, !tbaa !9
  br label %1314

1275:                                             ; preds = %1269, %1261
  %1276 = load i32, ptr %78, align 4, !tbaa !9
  %1277 = add nsw i32 %1276, -1
  store i32 %1277, ptr %78, align 4, !tbaa !9
  %1278 = load ptr, ptr %42, align 8, !tbaa !5
  %1279 = load i32, ptr %75, align 4, !tbaa !9
  %1280 = sext i32 %1279 to i64
  %1281 = getelementptr inbounds double, ptr %1278, i64 %1280
  %1282 = load double, ptr %1281, align 8, !tbaa !11
  %1283 = load ptr, ptr %42, align 8, !tbaa !5
  %1284 = load i32, ptr %78, align 4, !tbaa !9
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds double, ptr %1283, i64 %1285
  store double %1282, ptr %1286, align 8, !tbaa !11
  %1287 = load ptr, ptr %43, align 8, !tbaa !5
  %1288 = load i32, ptr %75, align 4, !tbaa !9
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds double, ptr %1287, i64 %1289
  %1291 = load double, ptr %1290, align 8, !tbaa !11
  %1292 = load ptr, ptr %43, align 8, !tbaa !5
  %1293 = load i32, ptr %78, align 4, !tbaa !9
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds double, ptr %1292, i64 %1294
  store double %1291, ptr %1295, align 8, !tbaa !11
  %1296 = load ptr, ptr %47, align 8, !tbaa !5
  %1297 = load i32, ptr %75, align 4, !tbaa !9
  %1298 = sext i32 %1297 to i64
  %1299 = getelementptr inbounds i32, ptr %1296, i64 %1298
  %1300 = load i32, ptr %1299, align 4, !tbaa !9
  %1301 = load ptr, ptr %47, align 8, !tbaa !5
  %1302 = load i32, ptr %78, align 4, !tbaa !9
  %1303 = sext i32 %1302 to i64
  %1304 = getelementptr inbounds i32, ptr %1301, i64 %1303
  store i32 %1300, ptr %1304, align 4, !tbaa !9
  %1305 = load ptr, ptr %46, align 8, !tbaa !5
  %1306 = load i32, ptr %75, align 4, !tbaa !9
  %1307 = sext i32 %1306 to i64
  %1308 = getelementptr inbounds i32, ptr %1305, i64 %1307
  %1309 = load i32, ptr %1308, align 4, !tbaa !9
  %1310 = load ptr, ptr %46, align 8, !tbaa !5
  %1311 = load i32, ptr %78, align 4, !tbaa !9
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds i32, ptr %1310, i64 %1312
  store i32 %1309, ptr %1313, align 4, !tbaa !9
  br label %1314

1314:                                             ; preds = %1275, %1272
  br label %1315

1315:                                             ; preds = %1314
  %1316 = load i32, ptr %75, align 4, !tbaa !9
  %1317 = add nsw i32 %1316, -1
  store i32 %1317, ptr %75, align 4, !tbaa !9
  br label %1258, !llvm.loop !20

1318:                                             ; preds = %1258
  store i32 0, ptr %89, align 4, !tbaa !9
  %1319 = load ptr, ptr %41, align 8, !tbaa !5
  %1320 = load i32, ptr %1319, align 4, !tbaa !9
  store i32 %1320, ptr %51, align 4, !tbaa !9
  %1321 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1321, ptr %75, align 4, !tbaa !9
  br label %1322

1322:                                             ; preds = %1365, %1318
  %1323 = load i32, ptr %75, align 4, !tbaa !9
  %1324 = load i32, ptr %51, align 4, !tbaa !9
  %1325 = icmp sle i32 %1323, %1324
  br i1 %1325, label %1326, label %1368

1326:                                             ; preds = %1322
  %1327 = load i32, ptr %89, align 4, !tbaa !9
  %1328 = add nsw i32 %1327, 1
  store i32 %1328, ptr %89, align 4, !tbaa !9
  %1329 = load ptr, ptr %42, align 8, !tbaa !5
  %1330 = load i32, ptr %75, align 4, !tbaa !9
  %1331 = sext i32 %1330 to i64
  %1332 = getelementptr inbounds double, ptr %1329, i64 %1331
  %1333 = load double, ptr %1332, align 8, !tbaa !11
  %1334 = load ptr, ptr %42, align 8, !tbaa !5
  %1335 = load i32, ptr %89, align 4, !tbaa !9
  %1336 = sext i32 %1335 to i64
  %1337 = getelementptr inbounds double, ptr %1334, i64 %1336
  store double %1333, ptr %1337, align 8, !tbaa !11
  %1338 = load ptr, ptr %43, align 8, !tbaa !5
  %1339 = load i32, ptr %75, align 4, !tbaa !9
  %1340 = sext i32 %1339 to i64
  %1341 = getelementptr inbounds double, ptr %1338, i64 %1340
  %1342 = load double, ptr %1341, align 8, !tbaa !11
  %1343 = load ptr, ptr %43, align 8, !tbaa !5
  %1344 = load i32, ptr %89, align 4, !tbaa !9
  %1345 = sext i32 %1344 to i64
  %1346 = getelementptr inbounds double, ptr %1343, i64 %1345
  store double %1342, ptr %1346, align 8, !tbaa !11
  %1347 = load ptr, ptr %47, align 8, !tbaa !5
  %1348 = load i32, ptr %75, align 4, !tbaa !9
  %1349 = sext i32 %1348 to i64
  %1350 = getelementptr inbounds i32, ptr %1347, i64 %1349
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  %1352 = load ptr, ptr %47, align 8, !tbaa !5
  %1353 = load i32, ptr %89, align 4, !tbaa !9
  %1354 = sext i32 %1353 to i64
  %1355 = getelementptr inbounds i32, ptr %1352, i64 %1354
  store i32 %1351, ptr %1355, align 4, !tbaa !9
  %1356 = load ptr, ptr %46, align 8, !tbaa !5
  %1357 = load i32, ptr %75, align 4, !tbaa !9
  %1358 = sext i32 %1357 to i64
  %1359 = getelementptr inbounds i32, ptr %1356, i64 %1358
  %1360 = load i32, ptr %1359, align 4, !tbaa !9
  %1361 = load ptr, ptr %46, align 8, !tbaa !5
  %1362 = load i32, ptr %89, align 4, !tbaa !9
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds i32, ptr %1361, i64 %1363
  store i32 %1360, ptr %1364, align 4, !tbaa !9
  br label %1365

1365:                                             ; preds = %1326
  %1366 = load i32, ptr %75, align 4, !tbaa !9
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr %75, align 4, !tbaa !9
  br label %1322, !llvm.loop !21

1368:                                             ; preds = %1322
  %1369 = load ptr, ptr %41, align 8, !tbaa !5
  %1370 = load i32, ptr %1369, align 4, !tbaa !9
  %1371 = load i32, ptr %78, align 4, !tbaa !9
  %1372 = sub nsw i32 %1370, %1371
  %1373 = add nsw i32 %1372, 1
  %1374 = load ptr, ptr %41, align 8, !tbaa !5
  store i32 %1373, ptr %1374, align 4, !tbaa !9
  br label %1375

1375:                                             ; preds = %1368, %1249
  %1376 = load i32, ptr %84, align 4, !tbaa !9
  %1377 = icmp sgt i32 %1376, 0
  br i1 %1377, label %1381, label %1378

1378:                                             ; preds = %1375
  %1379 = load i32, ptr %86, align 4, !tbaa !9
  %1380 = icmp sgt i32 %1379, 0
  br i1 %1380, label %1381, label %1553

1381:                                             ; preds = %1378, %1375
  %1382 = load i32, ptr %84, align 4, !tbaa !9
  %1383 = icmp sgt i32 %1382, 0
  br i1 %1383, label %1384, label %1437

1384:                                             ; preds = %1381
  %1385 = load ptr, ptr %45, align 8, !tbaa !5
  %1386 = load double, ptr %1385, align 8, !tbaa !11
  store double %1386, ptr %69, align 8, !tbaa !11
  %1387 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %1387, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1388

1388:                                             ; preds = %1433, %1384
  %1389 = load i32, ptr %64, align 4, !tbaa !9
  %1390 = load i32, ptr %51, align 4, !tbaa !9
  %1391 = icmp sle i32 %1389, %1390
  br i1 %1391, label %1392, label %1436

1392:                                             ; preds = %1388
  store i32 0, ptr %82, align 4, !tbaa !9
  %1393 = load ptr, ptr %41, align 8, !tbaa !5
  %1394 = load i32, ptr %1393, align 4, !tbaa !9
  store i32 %1394, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %1395

1395:                                             ; preds = %1425, %1392
  %1396 = load i32, ptr %75, align 4, !tbaa !9
  %1397 = load i32, ptr %52, align 4, !tbaa !9
  %1398 = icmp sle i32 %1396, %1397
  br i1 %1398, label %1399, label %1428

1399:                                             ; preds = %1395
  %1400 = load ptr, ptr %46, align 8, !tbaa !5
  %1401 = load i32, ptr %75, align 4, !tbaa !9
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds i32, ptr %1400, i64 %1402
  %1404 = load i32, ptr %1403, align 4, !tbaa !9
  %1405 = icmp ne i32 %1404, 0
  br i1 %1405, label %1406, label %1424

1406:                                             ; preds = %1399
  %1407 = load ptr, ptr %42, align 8, !tbaa !5
  %1408 = load i32, ptr %75, align 4, !tbaa !9
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds double, ptr %1407, i64 %1409
  %1411 = load double, ptr %1410, align 8, !tbaa !11
  %1412 = load double, ptr %69, align 8, !tbaa !11
  %1413 = fcmp olt double %1411, %1412
  br i1 %1413, label %1417, label %1414

1414:                                             ; preds = %1406
  %1415 = load i32, ptr %82, align 4, !tbaa !9
  %1416 = icmp eq i32 %1415, 0
  br i1 %1416, label %1417, label %1424

1417:                                             ; preds = %1414, %1406
  %1418 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %1418, ptr %82, align 4, !tbaa !9
  %1419 = load ptr, ptr %42, align 8, !tbaa !5
  %1420 = load i32, ptr %75, align 4, !tbaa !9
  %1421 = sext i32 %1420 to i64
  %1422 = getelementptr inbounds double, ptr %1419, i64 %1421
  %1423 = load double, ptr %1422, align 8, !tbaa !11
  store double %1423, ptr %69, align 8, !tbaa !11
  br label %1424

1424:                                             ; preds = %1417, %1414, %1399
  br label %1425

1425:                                             ; preds = %1424
  %1426 = load i32, ptr %75, align 4, !tbaa !9
  %1427 = add nsw i32 %1426, 1
  store i32 %1427, ptr %75, align 4, !tbaa !9
  br label %1395, !llvm.loop !22

1428:                                             ; preds = %1395
  %1429 = load ptr, ptr %46, align 8, !tbaa !5
  %1430 = load i32, ptr %82, align 4, !tbaa !9
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds i32, ptr %1429, i64 %1431
  store i32 0, ptr %1432, align 4, !tbaa !9
  br label %1433

1433:                                             ; preds = %1428
  %1434 = load i32, ptr %64, align 4, !tbaa !9
  %1435 = add nsw i32 %1434, 1
  store i32 %1435, ptr %64, align 4, !tbaa !9
  br label %1388, !llvm.loop !23

1436:                                             ; preds = %1388
  br label %1437

1437:                                             ; preds = %1436, %1381
  %1438 = load i32, ptr %86, align 4, !tbaa !9
  %1439 = icmp sgt i32 %1438, 0
  br i1 %1439, label %1440, label %1493

1440:                                             ; preds = %1437
  %1441 = load ptr, ptr %44, align 8, !tbaa !5
  %1442 = load double, ptr %1441, align 8, !tbaa !11
  store double %1442, ptr %69, align 8, !tbaa !11
  %1443 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1443, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1444

1444:                                             ; preds = %1489, %1440
  %1445 = load i32, ptr %64, align 4, !tbaa !9
  %1446 = load i32, ptr %51, align 4, !tbaa !9
  %1447 = icmp sle i32 %1445, %1446
  br i1 %1447, label %1448, label %1492

1448:                                             ; preds = %1444
  store i32 0, ptr %82, align 4, !tbaa !9
  %1449 = load ptr, ptr %41, align 8, !tbaa !5
  %1450 = load i32, ptr %1449, align 4, !tbaa !9
  store i32 %1450, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %1451

1451:                                             ; preds = %1481, %1448
  %1452 = load i32, ptr %75, align 4, !tbaa !9
  %1453 = load i32, ptr %52, align 4, !tbaa !9
  %1454 = icmp sle i32 %1452, %1453
  br i1 %1454, label %1455, label %1484

1455:                                             ; preds = %1451
  %1456 = load ptr, ptr %46, align 8, !tbaa !5
  %1457 = load i32, ptr %75, align 4, !tbaa !9
  %1458 = sext i32 %1457 to i64
  %1459 = getelementptr inbounds i32, ptr %1456, i64 %1458
  %1460 = load i32, ptr %1459, align 4, !tbaa !9
  %1461 = icmp ne i32 %1460, 0
  br i1 %1461, label %1462, label %1480

1462:                                             ; preds = %1455
  %1463 = load ptr, ptr %42, align 8, !tbaa !5
  %1464 = load i32, ptr %75, align 4, !tbaa !9
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds double, ptr %1463, i64 %1465
  %1467 = load double, ptr %1466, align 8, !tbaa !11
  %1468 = load double, ptr %69, align 8, !tbaa !11
  %1469 = fcmp oge double %1467, %1468
  br i1 %1469, label %1473, label %1470

1470:                                             ; preds = %1462
  %1471 = load i32, ptr %82, align 4, !tbaa !9
  %1472 = icmp eq i32 %1471, 0
  br i1 %1472, label %1473, label %1480

1473:                                             ; preds = %1470, %1462
  %1474 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %1474, ptr %82, align 4, !tbaa !9
  %1475 = load ptr, ptr %42, align 8, !tbaa !5
  %1476 = load i32, ptr %75, align 4, !tbaa !9
  %1477 = sext i32 %1476 to i64
  %1478 = getelementptr inbounds double, ptr %1475, i64 %1477
  %1479 = load double, ptr %1478, align 8, !tbaa !11
  store double %1479, ptr %69, align 8, !tbaa !11
  br label %1480

1480:                                             ; preds = %1473, %1470, %1455
  br label %1481

1481:                                             ; preds = %1480
  %1482 = load i32, ptr %75, align 4, !tbaa !9
  %1483 = add nsw i32 %1482, 1
  store i32 %1483, ptr %75, align 4, !tbaa !9
  br label %1451, !llvm.loop !24

1484:                                             ; preds = %1451
  %1485 = load ptr, ptr %46, align 8, !tbaa !5
  %1486 = load i32, ptr %82, align 4, !tbaa !9
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds i32, ptr %1485, i64 %1487
  store i32 0, ptr %1488, align 4, !tbaa !9
  br label %1489

1489:                                             ; preds = %1484
  %1490 = load i32, ptr %64, align 4, !tbaa !9
  %1491 = add nsw i32 %1490, 1
  store i32 %1491, ptr %64, align 4, !tbaa !9
  br label %1444, !llvm.loop !25

1492:                                             ; preds = %1444
  br label %1493

1493:                                             ; preds = %1492, %1437
  store i32 0, ptr %78, align 4, !tbaa !9
  %1494 = load ptr, ptr %41, align 8, !tbaa !5
  %1495 = load i32, ptr %1494, align 4, !tbaa !9
  store i32 %1495, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %1496

1496:                                             ; preds = %1547, %1493
  %1497 = load i32, ptr %75, align 4, !tbaa !9
  %1498 = load i32, ptr %51, align 4, !tbaa !9
  %1499 = icmp sle i32 %1497, %1498
  br i1 %1499, label %1500, label %1550

1500:                                             ; preds = %1496
  %1501 = load ptr, ptr %46, align 8, !tbaa !5
  %1502 = load i32, ptr %75, align 4, !tbaa !9
  %1503 = sext i32 %1502 to i64
  %1504 = getelementptr inbounds i32, ptr %1501, i64 %1503
  %1505 = load i32, ptr %1504, align 4, !tbaa !9
  %1506 = icmp ne i32 %1505, 0
  br i1 %1506, label %1507, label %1546

1507:                                             ; preds = %1500
  %1508 = load i32, ptr %78, align 4, !tbaa !9
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr %78, align 4, !tbaa !9
  %1510 = load ptr, ptr %42, align 8, !tbaa !5
  %1511 = load i32, ptr %75, align 4, !tbaa !9
  %1512 = sext i32 %1511 to i64
  %1513 = getelementptr inbounds double, ptr %1510, i64 %1512
  %1514 = load double, ptr %1513, align 8, !tbaa !11
  %1515 = load ptr, ptr %42, align 8, !tbaa !5
  %1516 = load i32, ptr %78, align 4, !tbaa !9
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds double, ptr %1515, i64 %1517
  store double %1514, ptr %1518, align 8, !tbaa !11
  %1519 = load ptr, ptr %43, align 8, !tbaa !5
  %1520 = load i32, ptr %75, align 4, !tbaa !9
  %1521 = sext i32 %1520 to i64
  %1522 = getelementptr inbounds double, ptr %1519, i64 %1521
  %1523 = load double, ptr %1522, align 8, !tbaa !11
  %1524 = load ptr, ptr %43, align 8, !tbaa !5
  %1525 = load i32, ptr %78, align 4, !tbaa !9
  %1526 = sext i32 %1525 to i64
  %1527 = getelementptr inbounds double, ptr %1524, i64 %1526
  store double %1523, ptr %1527, align 8, !tbaa !11
  %1528 = load ptr, ptr %47, align 8, !tbaa !5
  %1529 = load i32, ptr %75, align 4, !tbaa !9
  %1530 = sext i32 %1529 to i64
  %1531 = getelementptr inbounds i32, ptr %1528, i64 %1530
  %1532 = load i32, ptr %1531, align 4, !tbaa !9
  %1533 = load ptr, ptr %47, align 8, !tbaa !5
  %1534 = load i32, ptr %78, align 4, !tbaa !9
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds i32, ptr %1533, i64 %1535
  store i32 %1532, ptr %1536, align 4, !tbaa !9
  %1537 = load ptr, ptr %46, align 8, !tbaa !5
  %1538 = load i32, ptr %75, align 4, !tbaa !9
  %1539 = sext i32 %1538 to i64
  %1540 = getelementptr inbounds i32, ptr %1537, i64 %1539
  %1541 = load i32, ptr %1540, align 4, !tbaa !9
  %1542 = load ptr, ptr %46, align 8, !tbaa !5
  %1543 = load i32, ptr %78, align 4, !tbaa !9
  %1544 = sext i32 %1543 to i64
  %1545 = getelementptr inbounds i32, ptr %1542, i64 %1544
  store i32 %1541, ptr %1545, align 4, !tbaa !9
  br label %1546

1546:                                             ; preds = %1507, %1500
  br label %1547

1547:                                             ; preds = %1546
  %1548 = load i32, ptr %75, align 4, !tbaa !9
  %1549 = add nsw i32 %1548, 1
  store i32 %1549, ptr %75, align 4, !tbaa !9
  br label %1496, !llvm.loop !26

1550:                                             ; preds = %1496
  %1551 = load i32, ptr %78, align 4, !tbaa !9
  %1552 = load ptr, ptr %41, align 8, !tbaa !5
  store i32 %1551, ptr %1552, align 4, !tbaa !9
  br label %1553

1553:                                             ; preds = %1550, %1378
  %1554 = load i32, ptr %84, align 4, !tbaa !9
  %1555 = icmp slt i32 %1554, 0
  br i1 %1555, label %1559, label %1556

1556:                                             ; preds = %1553
  %1557 = load i32, ptr %86, align 4, !tbaa !9
  %1558 = icmp slt i32 %1557, 0
  br i1 %1558, label %1559, label %1560

1559:                                             ; preds = %1556, %1553
  store i32 1, ptr %88, align 4, !tbaa !9
  br label %1560

1560:                                             ; preds = %1559, %1556
  br label %1561

1561:                                             ; preds = %1560, %1167
  %1562 = load i32, ptr %83, align 4, !tbaa !9
  %1563 = icmp eq i32 %1562, 1
  br i1 %1563, label %1564, label %1570

1564:                                             ; preds = %1561
  %1565 = load ptr, ptr %41, align 8, !tbaa !5
  %1566 = load i32, ptr %1565, align 4, !tbaa !9
  %1567 = load ptr, ptr %28, align 8, !tbaa !5
  %1568 = load i32, ptr %1567, align 4, !tbaa !9
  %1569 = icmp ne i32 %1566, %1568
  br i1 %1569, label %1583, label %1570

1570:                                             ; preds = %1564, %1561
  %1571 = load i32, ptr %83, align 4, !tbaa !9
  %1572 = icmp eq i32 %1571, 3
  br i1 %1572, label %1573, label %1584

1573:                                             ; preds = %1570
  %1574 = load ptr, ptr %41, align 8, !tbaa !5
  %1575 = load i32, ptr %1574, align 4, !tbaa !9
  %1576 = load ptr, ptr %32, align 8, !tbaa !5
  %1577 = load i32, ptr %1576, align 4, !tbaa !9
  %1578 = load ptr, ptr %31, align 8, !tbaa !5
  %1579 = load i32, ptr %1578, align 4, !tbaa !9
  %1580 = sub nsw i32 %1577, %1579
  %1581 = add nsw i32 %1580, 1
  %1582 = icmp ne i32 %1575, %1581
  br i1 %1582, label %1583, label %1584

1583:                                             ; preds = %1573, %1564
  store i32 1, ptr %88, align 4, !tbaa !9
  br label %1584

1584:                                             ; preds = %1583, %1573, %1570
  %1585 = load ptr, ptr %27, align 8, !tbaa !5
  %1586 = call i32 @lsame_(ptr noundef %1585, ptr noundef @.str.4)
  %1587 = icmp ne i32 %1586, 0
  br i1 %1587, label %1588, label %1713

1588:                                             ; preds = %1584
  %1589 = load ptr, ptr %39, align 8, !tbaa !5
  %1590 = load i32, ptr %1589, align 4, !tbaa !9
  %1591 = icmp sgt i32 %1590, 1
  br i1 %1591, label %1592, label %1713

1592:                                             ; preds = %1588
  %1593 = load ptr, ptr %41, align 8, !tbaa !5
  %1594 = load i32, ptr %1593, align 4, !tbaa !9
  %1595 = sub nsw i32 %1594, 1
  store i32 %1595, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %1596

1596:                                             ; preds = %1709, %1592
  %1597 = load i32, ptr %75, align 4, !tbaa !9
  %1598 = load i32, ptr %51, align 4, !tbaa !9
  %1599 = icmp sle i32 %1597, %1598
  br i1 %1599, label %1600, label %1712

1600:                                             ; preds = %1596
  store i32 0, ptr %74, align 4, !tbaa !9
  %1601 = load ptr, ptr %42, align 8, !tbaa !5
  %1602 = load i32, ptr %75, align 4, !tbaa !9
  %1603 = sext i32 %1602 to i64
  %1604 = getelementptr inbounds double, ptr %1601, i64 %1603
  %1605 = load double, ptr %1604, align 8, !tbaa !11
  store double %1605, ptr %95, align 8, !tbaa !11
  %1606 = load ptr, ptr %41, align 8, !tbaa !5
  %1607 = load i32, ptr %1606, align 4, !tbaa !9
  store i32 %1607, ptr %52, align 4, !tbaa !9
  %1608 = load i32, ptr %75, align 4, !tbaa !9
  %1609 = add nsw i32 %1608, 1
  store i32 %1609, ptr %63, align 4, !tbaa !9
  br label %1610

1610:                                             ; preds = %1630, %1600
  %1611 = load i32, ptr %63, align 4, !tbaa !9
  %1612 = load i32, ptr %52, align 4, !tbaa !9
  %1613 = icmp sle i32 %1611, %1612
  br i1 %1613, label %1614, label %1633

1614:                                             ; preds = %1610
  %1615 = load ptr, ptr %42, align 8, !tbaa !5
  %1616 = load i32, ptr %63, align 4, !tbaa !9
  %1617 = sext i32 %1616 to i64
  %1618 = getelementptr inbounds double, ptr %1615, i64 %1617
  %1619 = load double, ptr %1618, align 8, !tbaa !11
  %1620 = load double, ptr %95, align 8, !tbaa !11
  %1621 = fcmp olt double %1619, %1620
  br i1 %1621, label %1622, label %1629

1622:                                             ; preds = %1614
  %1623 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %1623, ptr %74, align 4, !tbaa !9
  %1624 = load ptr, ptr %42, align 8, !tbaa !5
  %1625 = load i32, ptr %63, align 4, !tbaa !9
  %1626 = sext i32 %1625 to i64
  %1627 = getelementptr inbounds double, ptr %1624, i64 %1626
  %1628 = load double, ptr %1627, align 8, !tbaa !11
  store double %1628, ptr %95, align 8, !tbaa !11
  br label %1629

1629:                                             ; preds = %1622, %1614
  br label %1630

1630:                                             ; preds = %1629
  %1631 = load i32, ptr %63, align 4, !tbaa !9
  %1632 = add nsw i32 %1631, 1
  store i32 %1632, ptr %63, align 4, !tbaa !9
  br label %1610, !llvm.loop !27

1633:                                             ; preds = %1610
  %1634 = load i32, ptr %74, align 4, !tbaa !9
  %1635 = icmp ne i32 %1634, 0
  br i1 %1635, label %1636, label %1708

1636:                                             ; preds = %1633
  %1637 = load ptr, ptr %43, align 8, !tbaa !5
  %1638 = load i32, ptr %74, align 4, !tbaa !9
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds double, ptr %1637, i64 %1639
  %1641 = load double, ptr %1640, align 8, !tbaa !11
  store double %1641, ptr %96, align 8, !tbaa !11
  %1642 = load ptr, ptr %46, align 8, !tbaa !5
  %1643 = load i32, ptr %74, align 4, !tbaa !9
  %1644 = sext i32 %1643 to i64
  %1645 = getelementptr inbounds i32, ptr %1642, i64 %1644
  %1646 = load i32, ptr %1645, align 4, !tbaa !9
  store i32 %1646, ptr %60, align 4, !tbaa !9
  %1647 = load ptr, ptr %47, align 8, !tbaa !5
  %1648 = load i32, ptr %74, align 4, !tbaa !9
  %1649 = sext i32 %1648 to i64
  %1650 = getelementptr inbounds i32, ptr %1647, i64 %1649
  %1651 = load i32, ptr %1650, align 4, !tbaa !9
  store i32 %1651, ptr %61, align 4, !tbaa !9
  %1652 = load ptr, ptr %42, align 8, !tbaa !5
  %1653 = load i32, ptr %75, align 4, !tbaa !9
  %1654 = sext i32 %1653 to i64
  %1655 = getelementptr inbounds double, ptr %1652, i64 %1654
  %1656 = load double, ptr %1655, align 8, !tbaa !11
  %1657 = load ptr, ptr %42, align 8, !tbaa !5
  %1658 = load i32, ptr %74, align 4, !tbaa !9
  %1659 = sext i32 %1658 to i64
  %1660 = getelementptr inbounds double, ptr %1657, i64 %1659
  store double %1656, ptr %1660, align 8, !tbaa !11
  %1661 = load ptr, ptr %43, align 8, !tbaa !5
  %1662 = load i32, ptr %75, align 4, !tbaa !9
  %1663 = sext i32 %1662 to i64
  %1664 = getelementptr inbounds double, ptr %1661, i64 %1663
  %1665 = load double, ptr %1664, align 8, !tbaa !11
  %1666 = load ptr, ptr %43, align 8, !tbaa !5
  %1667 = load i32, ptr %74, align 4, !tbaa !9
  %1668 = sext i32 %1667 to i64
  %1669 = getelementptr inbounds double, ptr %1666, i64 %1668
  store double %1665, ptr %1669, align 8, !tbaa !11
  %1670 = load ptr, ptr %46, align 8, !tbaa !5
  %1671 = load i32, ptr %75, align 4, !tbaa !9
  %1672 = sext i32 %1671 to i64
  %1673 = getelementptr inbounds i32, ptr %1670, i64 %1672
  %1674 = load i32, ptr %1673, align 4, !tbaa !9
  %1675 = load ptr, ptr %46, align 8, !tbaa !5
  %1676 = load i32, ptr %74, align 4, !tbaa !9
  %1677 = sext i32 %1676 to i64
  %1678 = getelementptr inbounds i32, ptr %1675, i64 %1677
  store i32 %1674, ptr %1678, align 4, !tbaa !9
  %1679 = load ptr, ptr %47, align 8, !tbaa !5
  %1680 = load i32, ptr %75, align 4, !tbaa !9
  %1681 = sext i32 %1680 to i64
  %1682 = getelementptr inbounds i32, ptr %1679, i64 %1681
  %1683 = load i32, ptr %1682, align 4, !tbaa !9
  %1684 = load ptr, ptr %47, align 8, !tbaa !5
  %1685 = load i32, ptr %74, align 4, !tbaa !9
  %1686 = sext i32 %1685 to i64
  %1687 = getelementptr inbounds i32, ptr %1684, i64 %1686
  store i32 %1683, ptr %1687, align 4, !tbaa !9
  %1688 = load double, ptr %95, align 8, !tbaa !11
  %1689 = load ptr, ptr %42, align 8, !tbaa !5
  %1690 = load i32, ptr %75, align 4, !tbaa !9
  %1691 = sext i32 %1690 to i64
  %1692 = getelementptr inbounds double, ptr %1689, i64 %1691
  store double %1688, ptr %1692, align 8, !tbaa !11
  %1693 = load double, ptr %96, align 8, !tbaa !11
  %1694 = load ptr, ptr %43, align 8, !tbaa !5
  %1695 = load i32, ptr %75, align 4, !tbaa !9
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds double, ptr %1694, i64 %1696
  store double %1693, ptr %1697, align 8, !tbaa !11
  %1698 = load i32, ptr %60, align 4, !tbaa !9
  %1699 = load ptr, ptr %46, align 8, !tbaa !5
  %1700 = load i32, ptr %75, align 4, !tbaa !9
  %1701 = sext i32 %1700 to i64
  %1702 = getelementptr inbounds i32, ptr %1699, i64 %1701
  store i32 %1698, ptr %1702, align 4, !tbaa !9
  %1703 = load i32, ptr %61, align 4, !tbaa !9
  %1704 = load ptr, ptr %47, align 8, !tbaa !5
  %1705 = load i32, ptr %75, align 4, !tbaa !9
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds i32, ptr %1704, i64 %1706
  store i32 %1703, ptr %1707, align 4, !tbaa !9
  br label %1708

1708:                                             ; preds = %1636, %1633
  br label %1709

1709:                                             ; preds = %1708
  %1710 = load i32, ptr %75, align 4, !tbaa !9
  %1711 = add nsw i32 %1710, 1
  store i32 %1711, ptr %75, align 4, !tbaa !9
  br label %1596, !llvm.loop !28

1712:                                             ; preds = %1596
  br label %1713

1713:                                             ; preds = %1712, %1588, %1584
  %1714 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 0, ptr %1714, align 4, !tbaa !9
  %1715 = load i32, ptr %87, align 4, !tbaa !9
  %1716 = icmp ne i32 %1715, 0
  br i1 %1716, label %1717, label %1721

1717:                                             ; preds = %1713
  %1718 = load ptr, ptr %50, align 8, !tbaa !5
  %1719 = load i32, ptr %1718, align 4, !tbaa !9
  %1720 = add nsw i32 %1719, 1
  store i32 %1720, ptr %1718, align 4, !tbaa !9
  br label %1721

1721:                                             ; preds = %1717, %1713
  %1722 = load i32, ptr %88, align 4, !tbaa !9
  %1723 = icmp ne i32 %1722, 0
  br i1 %1723, label %1724, label %1728

1724:                                             ; preds = %1721
  %1725 = load ptr, ptr %50, align 8, !tbaa !5
  %1726 = load i32, ptr %1725, align 4, !tbaa !9
  %1727 = add nsw i32 %1726, 2
  store i32 %1727, ptr %1725, align 4, !tbaa !9
  br label %1728

1728:                                             ; preds = %1724, %1721
  store i32 1, ptr %97, align 4
  br label %1729

1729:                                             ; preds = %1728, %1036, %953, %636, %536, %307, %242, %235, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  ret void
}

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

declare i32 @lsame_(ptr noundef, ptr noundef) #2

declare double @dlamch_(ptr noundef) #2

declare i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

; Function Attrs: nounwind
declare double @log(double noundef) #4

declare void @dlaebz_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__0 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @dlarrd_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture noundef readonly %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr nocapture noundef readonly %13, ptr nocapture noundef readonly %14, ptr nocapture noundef %15, ptr noundef %16, ptr nocapture noundef %17, ptr nocapture noundef %18, ptr nocapture noundef %19, ptr noundef %20, ptr nocapture noundef %21, ptr noundef %22, ptr noundef %23, ptr nocapture noundef %24) local_unnamed_addr #0 {
  %26 = ptrtoint ptr %21 to i64
  %27 = ptrtoint ptr %20 to i64
  %28 = ptrtoint ptr %16 to i64
  %29 = ptrtoint ptr %17 to i64
  %30 = ptrtoint ptr %21 to i64
  %31 = ptrtoint ptr %20 to i64
  %32 = ptrtoint ptr %16 to i64
  %33 = ptrtoint ptr %17 to i64
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca double, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca [1 x i32], align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  %43 = getelementptr inbounds i8, ptr %23, i64 -4
  %44 = getelementptr inbounds i8, ptr %22, i64 -8
  %45 = getelementptr inbounds i8, ptr %21, i64 -4
  %46 = getelementptr inbounds i8, ptr %20, i64 -4
  %47 = getelementptr inbounds i8, ptr %17, i64 -8
  %48 = getelementptr inbounds i8, ptr %16, i64 -8
  %49 = getelementptr inbounds i8, ptr %14, i64 -4
  %50 = getelementptr inbounds i8, ptr %11, i64 -8
  %51 = getelementptr inbounds i8, ptr %10, i64 -8
  %52 = getelementptr inbounds i8, ptr %9, i64 -8
  %53 = getelementptr inbounds i8, ptr %7, i64 -8
  store i32 0, ptr %24, align 4, !tbaa !5
  %54 = load i32, ptr %2, align 4, !tbaa !5
  %55 = icmp slt i32 %54, 1
  br i1 %55, label %.critedge.thread, label %56

56:                                               ; preds = %25
  %57 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not = icmp eq i32 %57, 0
  br i1 %.not, label %58, label %.thread

58:                                               ; preds = %56
  %59 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not676 = icmp eq i32 %59, 0
  br i1 %.not676, label %60, label %.thread

60:                                               ; preds = %58
  %61 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not677 = icmp eq i32 %61, 0
  br i1 %.not677, label %62, label %.thread

62:                                               ; preds = %60
  store i32 -1, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

.thread:                                          ; preds = %58, %56, %60
  %.0621718 = phi i32 [ 3, %60 ], [ 2, %58 ], [ 1, %56 ]
  %63 = phi i1 [ true, %60 ], [ false, %58 ], [ false, %56 ]
  %64 = phi i1 [ false, %60 ], [ true, %58 ], [ false, %56 ]
  %65 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %.not678 = icmp eq i32 %65, 0
  br i1 %.not678, label %66, label %69

66:                                               ; preds = %.thread
  %67 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not679 = icmp eq i32 %67, 0
  br i1 %.not679, label %68, label %69

68:                                               ; preds = %66
  store i32 -2, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

69:                                               ; preds = %66, %.thread
  %70 = load i32, ptr %2, align 4, !tbaa !5
  %71 = icmp slt i32 %70, 0
  br i1 %71, label %72, label %73

72:                                               ; preds = %69
  store i32 -3, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

73:                                               ; preds = %69
  br i1 %64, label %74, label %79

74:                                               ; preds = %73
  %75 = load double, ptr %3, align 8, !tbaa !9
  %76 = load double, ptr %4, align 8, !tbaa !9
  %77 = fcmp ult double %75, %76
  br i1 %77, label %.critedge, label %78

78:                                               ; preds = %74
  store i32 -5, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

79:                                               ; preds = %73
  br i1 %63, label %80, label %.critedge

80:                                               ; preds = %79
  %81 = load i32, ptr %5, align 4, !tbaa !5
  %82 = icmp slt i32 %81, 1
  %spec.select = tail call i32 @llvm.umax.i32(i32 %70, i32 1)
  %83 = icmp ugt i32 %81, %spec.select
  %or.cond = or i1 %82, %83
  br i1 %or.cond, label %84, label %85

84:                                               ; preds = %80
  store i32 -6, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

85:                                               ; preds = %80
  %86 = load i32, ptr %6, align 4, !tbaa !5
  %.710 = tail call i32 @llvm.umin.i32(i32 %70, i32 %81)
  %87 = icmp slt i32 %86, %.710
  %88 = icmp ugt i32 %86, %70
  %or.cond730 = or i1 %87, %88
  br i1 %or.cond730, label %89, label %.critedge

89:                                               ; preds = %85
  store i32 -7, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

.critedge:                                        ; preds = %85, %79, %74
  %.pr = load i32, ptr %24, align 4, !tbaa !5
  %.not681 = icmp eq i32 %.pr, 0
  br i1 %.not681, label %90, label %.critedge.thread

90:                                               ; preds = %.critedge
  store i32 0, ptr %15, align 4, !tbaa !5
  %91 = load i32, ptr %2, align 4, !tbaa !5
  %92 = icmp eq i32 %91, 0
  br i1 %92, label %.critedge.thread, label %93

93:                                               ; preds = %90
  br i1 %63, label %94, label %100

94:                                               ; preds = %93
  %95 = load i32, ptr %5, align 4, !tbaa !5
  %96 = icmp eq i32 %95, 1
  br i1 %96, label %97, label %100

97:                                               ; preds = %94
  %98 = load i32, ptr %6, align 4, !tbaa !5
  %99 = icmp eq i32 %98, %91
  %spec.select711 = select i1 %99, i32 1, i32 3
  br label %100

100:                                              ; preds = %97, %94, %93
  %.1622 = phi i32 [ 3, %94 ], [ %.0621718, %93 ], [ %spec.select711, %97 ]
  %101 = tail call double @dlamch_(ptr noundef nonnull @.str.5) #6
  %102 = tail call double @dlamch_(ptr noundef nonnull @.str.6) #6
  %103 = load i32, ptr %2, align 4, !tbaa !5
  %104 = icmp eq i32 %103, 1
  br i1 %104, label %105, label %121

105:                                              ; preds = %100
  switch i32 %.1622, label %default.unreachable [
    i32 1, label %119
    i32 2, label %106
    i32 3, label %113
  ]

106:                                              ; preds = %105
  %107 = load double, ptr %9, align 8, !tbaa !9
  %108 = load double, ptr %3, align 8, !tbaa !9
  %109 = fcmp ogt double %107, %108
  br i1 %109, label %110, label %.critedge.thread

110:                                              ; preds = %106
  %111 = load double, ptr %4, align 8, !tbaa !9
  %112 = fcmp ugt double %107, %111
  br i1 %112, label %.critedge.thread, label %119

113:                                              ; preds = %105
  %114 = load i32, ptr %5, align 4, !tbaa !5
  %115 = icmp eq i32 %114, 1
  br i1 %115, label %116, label %.critedge.thread

116:                                              ; preds = %113
  %117 = load i32, ptr %6, align 4, !tbaa !5
  %118 = icmp eq i32 %117, 1
  br i1 %118, label %119, label %.critedge.thread

119:                                              ; preds = %105, %116, %110
  store i32 1, ptr %15, align 4, !tbaa !5
  %120 = load double, ptr %9, align 8, !tbaa !9
  store double %120, ptr %16, align 8, !tbaa !9
  store double 0.000000e+00, ptr %17, align 8, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !5
  store i32 1, ptr %21, align 4, !tbaa !5
  br label %.critedge.thread

121:                                              ; preds = %100
  %122 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #6
  %123 = icmp slt i32 %122, 2
  %spec.store.select = select i1 %123, i32 0, i32 %122
  store i32 %spec.store.select, ptr %39, align 4
  %124 = load double, ptr %9, align 8, !tbaa !9
  %125 = load i32, ptr %2, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %7, i64 -16
  %.not682744 = icmp slt i32 %125, 1
  %126 = insertelement <2 x double> poison, double %124, i64 0
  %127 = shufflevector <2 x double> %126, <2 x double> poison, <2 x i32> zeroinitializer
  br i1 %.not682744, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %121
  %128 = zext nneg i32 %125 to i64
  %xtraiter = and i64 %128, 1
  %129 = icmp eq i32 %125, 1
  br i1 %129, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %128, 2147483646
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader.new ], [ %indvars.iv.next.1, %.lr.ph ]
  %130 = phi <2 x double> [ %127, %.lr.ph.preheader.new ], [ %150, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %sext = shl i64 %indvars.iv, 33
  %131 = ashr exact i64 %sext, 29
  %gep = getelementptr i8, ptr %invariant.gep, i64 %131
  %132 = load double, ptr %gep, align 8, !tbaa !9
  %.idx = shl i64 %indvars.iv, 4
  %133 = getelementptr inbounds i8, ptr %53, i64 %.idx
  %134 = load double, ptr %133, align 8, !tbaa !9
  %135 = insertelement <2 x double> %130, double %134, i64 1
  %136 = insertelement <2 x double> %130, double %132, i64 0
  %137 = fcmp ole <2 x double> %135, %136
  %138 = insertelement <2 x double> poison, double %132, i64 0
  %139 = insertelement <2 x double> %138, double %134, i64 1
  %140 = select <2 x i1> %137, <2 x double> %130, <2 x double> %139
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %sext.1 = shl i64 %indvars.iv.next, 33
  %141 = ashr exact i64 %sext.1, 29
  %gep.1 = getelementptr i8, ptr %invariant.gep, i64 %141
  %142 = load double, ptr %gep.1, align 8, !tbaa !9
  %.idx.1 = shl i64 %indvars.iv.next, 4
  %143 = getelementptr inbounds i8, ptr %53, i64 %.idx.1
  %144 = load double, ptr %143, align 8, !tbaa !9
  %145 = insertelement <2 x double> %140, double %144, i64 1
  %146 = insertelement <2 x double> %140, double %142, i64 0
  %147 = fcmp ole <2 x double> %145, %146
  %148 = insertelement <2 x double> poison, double %142, i64 0
  %149 = insertelement <2 x double> %148, double %144, i64 1
  %150 = select <2 x i1> %147, <2 x double> %140, <2 x double> %149
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !11

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %.lcssa1016.ph = phi <2 x double> [ poison, %.lr.ph.preheader ], [ %150, %.lr.ph ]
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next.1, %.lr.ph ]
  %.unr = phi <2 x double> [ %127, %.lr.ph.preheader ], [ %150, %.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
  %sext.epil = shl i64 %indvars.iv.unr, 33
  %151 = ashr exact i64 %sext.epil, 29
  %gep.epil = getelementptr i8, ptr %invariant.gep, i64 %151
  %152 = load double, ptr %gep.epil, align 8, !tbaa !9
  %.idx.epil = shl i64 %indvars.iv.unr, 4
  %153 = getelementptr inbounds i8, ptr %53, i64 %.idx.epil
  %154 = load double, ptr %153, align 8, !tbaa !9
  %155 = insertelement <2 x double> %.unr, double %154, i64 1
  %156 = insertelement <2 x double> %.unr, double %152, i64 0
  %157 = fcmp ole <2 x double> %155, %156
  %158 = insertelement <2 x double> poison, double %152, i64 0
  %159 = insertelement <2 x double> %158, double %154, i64 1
  %160 = select <2 x i1> %157, <2 x double> %.unr, <2 x double> %159
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %121
  %161 = phi <2 x double> [ %127, %121 ], [ %.lcssa1016.ph, %._crit_edge.loopexit.unr-lcssa ], [ %160, %.lr.ph.epil ]
  %162 = fcmp oge <2 x double> %161, zeroinitializer
  %163 = fneg <2 x double> %161
  %164 = select <2 x i1> %162, <2 x double> %161, <2 x double> %163
  %165 = extractelement <2 x double> %164, i64 0
  %166 = extractelement <2 x double> %164, i64 1
  %167 = fcmp oge double %165, %166
  %168 = select i1 %167, double %165, double %166
  %169 = fmul double %168, 2.000000e+00
  %170 = fmul double %101, %169
  %171 = sitofp i32 %125 to double
  %172 = fneg double %170
  %173 = load double, ptr %12, align 8, !tbaa !9
  %174 = fneg double %173
  %175 = insertelement <2 x double> poison, double %172, i64 0
  %176 = insertelement <2 x double> %175, double %170, i64 1
  %177 = insertelement <2 x double> poison, double %171, i64 0
  %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer
  %179 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %178, <2 x double> %161)
  %180 = insertelement <2 x double> poison, double %174, i64 0
  %181 = insertelement <2 x double> %180, double %173, i64 1
  %182 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %181, <2 x double> <double 4.000000e+00, double 4.000000e+00>, <2 x double> %179)
  %183 = load double, ptr %8, align 8, !tbaa !9
  store double %183, ptr %38, align 8, !tbaa !9
  %184 = fmul double %173, 4.000000e+00
  %185 = tail call double @llvm.fmuladd.f64(double %102, double 4.000000e+00, double %184)
  store double %185, ptr %36, align 8, !tbaa !9
  %186 = icmp eq i32 %.1622, 3
  br i1 %186, label %187, label %244

187:                                              ; preds = %._crit_edge
  %188 = fadd double %168, %173
  %189 = tail call double @log(double noundef %188) #6
  %190 = load double, ptr %12, align 8, !tbaa !9
  %191 = tail call double @log(double noundef %190) #6
  %192 = fsub double %189, %191
  %193 = fdiv double %192, 0x3FE62E42FEFA39EF
  %194 = fptosi double %193 to i32
  %195 = add nsw i32 %194, 2
  store i32 %195, ptr %37, align 4, !tbaa !5
  %196 = load i32, ptr %2, align 4, !tbaa !5
  %197 = sext i32 %196 to i64
  %198 = getelementptr double, ptr %44, i64 %197
  %199 = getelementptr i8, ptr %198, i64 8
  %200 = extractelement <2 x double> %182, i64 0
  store double %200, ptr %199, align 8, !tbaa !9
  %201 = getelementptr i8, ptr %198, i64 16
  store <2 x double> %182, ptr %201, align 8, !tbaa !9
  %202 = getelementptr i8, ptr %198, i64 32
  %203 = extractelement <2 x double> %182, i64 1
  store double %203, ptr %202, align 8, !tbaa !9
  %204 = getelementptr i8, ptr %198, i64 40
  store <2 x double> %182, ptr %204, align 8, !tbaa !9
  store i32 -1, ptr %23, align 4, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %23, i64 4
  store i32 -1, ptr %205, align 4, !tbaa !5
  %206 = load i32, ptr %2, align 4, !tbaa !5
  %207 = add nsw i32 %206, 1
  %208 = getelementptr inbounds i8, ptr %23, i64 8
  store i32 %207, ptr %208, align 4, !tbaa !5
  %209 = load i32, ptr %2, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  %211 = getelementptr inbounds i8, ptr %23, i64 12
  store i32 %210, ptr %211, align 4, !tbaa !5
  %212 = load i32, ptr %5, align 4, !tbaa !5
  %213 = add nsw i32 %212, -1
  %214 = getelementptr inbounds i8, ptr %23, i64 16
  store i32 %213, ptr %214, align 4, !tbaa !5
  %215 = load i32, ptr %6, align 4, !tbaa !5
  %216 = getelementptr inbounds i8, ptr %23, i64 20
  store i32 %215, ptr %216, align 4, !tbaa !5
  %217 = load i32, ptr %2, align 4, !tbaa !5
  %218 = sext i32 %217 to i64
  %219 = getelementptr double, ptr %44, i64 %218
  %220 = getelementptr i8, ptr %219, i64 8
  %221 = getelementptr i8, ptr %219, i64 40
  call void @dlaebz_(ptr noundef nonnull @c__3, ptr noundef nonnull %37, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %39, ptr noundef nonnull %36, ptr noundef nonnull %38, ptr noundef nonnull %12, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %214, ptr noundef %220, ptr noundef %221, ptr noundef nonnull %34, ptr noundef nonnull %23, ptr noundef %16, ptr noundef %20, ptr noundef nonnull %35) #6
  %222 = load i32, ptr %35, align 4, !tbaa !5
  %.not683 = icmp eq i32 %222, 0
  br i1 %.not683, label %224, label %223

223:                                              ; preds = %187
  store i32 %222, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

224:                                              ; preds = %187
  %225 = load i32, ptr %216, align 4, !tbaa !5
  %226 = load i32, ptr %6, align 4, !tbaa !5
  %227 = icmp eq i32 %225, %226
  %228 = load i32, ptr %2, align 4, !tbaa !5
  %229 = sext i32 %228 to i64
  %230 = getelementptr double, ptr %44, i64 %229
  %. = select i1 %227, i64 8, i64 16
  %.953 = select i1 %227, i64 24, i64 32
  %.954 = select i1 %227, i64 32, i64 24
  %.956 = select i1 %227, ptr %23, ptr %205
  %231 = getelementptr i8, ptr %230, i64 %.
  %232 = load double, ptr %231, align 8, !tbaa !9
  store double %232, ptr %18, align 8, !tbaa !9
  %233 = getelementptr i8, ptr %230, i64 %.953
  %234 = getelementptr i8, ptr %230, i64 %.954
  %.0602 = load double, ptr %233, align 8, !tbaa !9
  %.0604 = load i32, ptr %.956, align 4, !tbaa !5
  %.sink = load double, ptr %234, align 8, !tbaa !9
  store double %.sink, ptr %19, align 8
  %235 = icmp slt i32 %.0604, 0
  br i1 %235, label %243, label %236

236:                                              ; preds = %224
  %.955 = select i1 %227, i64 16, i64 8
  %237 = getelementptr i8, ptr %230, i64 %.955
  %.957 = select i1 %227, ptr %211, ptr %208
  %.0600 = load double, ptr %237, align 8, !tbaa !9
  %.0598 = load i32, ptr %.957, align 4, !tbaa !5
  %238 = load i32, ptr %2, align 4, !tbaa !5
  %239 = icmp sge i32 %.0604, %238
  %240 = icmp slt i32 %.0598, 1
  %241 = icmp sgt i32 %.0598, %238
  %242 = or i1 %240, %241
  %or.cond712 = select i1 %239, i1 true, i1 %242
  br i1 %or.cond712, label %243, label %251

243:                                              ; preds = %236, %224
  store i32 4, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

244:                                              ; preds = %._crit_edge
  switch i32 %.1622, label %251 [
    i32 2, label %245
    i32 1, label %248
  ]

245:                                              ; preds = %244
  %246 = load double, ptr %3, align 8, !tbaa !9
  store double %246, ptr %18, align 8, !tbaa !9
  %247 = load double, ptr %4, align 8, !tbaa !9
  br label %.sink.split

248:                                              ; preds = %244
  %249 = extractelement <2 x double> %182, i64 0
  store double %249, ptr %18, align 8, !tbaa !9
  %250 = extractelement <2 x double> %182, i64 1
  br label %.sink.split

.sink.split:                                      ; preds = %248, %245
  %.sink952 = phi double [ %247, %245 ], [ %250, %248 ]
  store double %.sink952, ptr %19, align 8, !tbaa !9
  br label %251

251:                                              ; preds = %.sink.split, %244, %236
  %.1603 = phi double [ %.0602, %236 ], [ undef, %244 ], [ undef, %.sink.split ]
  %.1601 = phi double [ %.0600, %236 ], [ undef, %244 ], [ undef, %.sink.split ]
  store i32 0, ptr %15, align 4, !tbaa !5
  store i32 0, ptr %24, align 4, !tbaa !5
  %252 = load i32, ptr %13, align 4, !tbaa !5
  %.not684782 = icmp slt i32 %252, 1
  br i1 %.not684782, label %._crit_edge791, label %.lr.ph790

.lr.ph790:                                        ; preds = %251
  %253 = icmp sgt i32 %.1622, 1
  %254 = icmp eq i32 %.1622, 1
  %255 = add nuw i32 %252, 1
  %wide.trip.count880 = zext i32 %255 to i64
  %256 = sub i64 %33, %32
  %257 = sub i64 %31, %30
  %invariant.gep1044 = getelementptr i8, ptr %53, i64 -8
  %invariant.gep1040 = getelementptr i8, ptr %53, i64 -8
  %invariant.gep1042 = getelementptr i8, ptr %53, i64 -8
  %diff.check = icmp ult i64 %256, 32
  %diff.check967 = icmp ult i64 %257, 16
  %conflict.rdx = or i1 %diff.check, %diff.check967
  br label %258

258:                                              ; preds = %.lr.ph790, %464
  %indvars.iv877 = phi i64 [ 1, %.lr.ph790 ], [ %indvars.iv.next878, %464 ]
  %.1599788 = phi i32 [ 0, %.lr.ph790 ], [ %.3, %464 ]
  %.1605787 = phi i32 [ 0, %.lr.ph790 ], [ %.3607, %464 ]
  %.0611786 = phi i32 [ 0, %.lr.ph790 ], [ %.3614, %464 ]
  %.0653783 = phi i32 [ 0, %.lr.ph790 ], [ %261, %464 ]
  %indvars879 = trunc i64 %indvars.iv877 to i32
  %259 = add nsw i32 %.0653783, 1
  %260 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv877
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = sub nsw i32 %261, %.0653783
  store i32 %262, ptr %41, align 4, !tbaa !5
  %263 = icmp eq i32 %262, 1
  br i1 %263, label %264, label %288

264:                                              ; preds = %258
  %265 = load double, ptr %18, align 8, !tbaa !9
  %266 = sext i32 %259 to i64
  %267 = getelementptr inbounds double, ptr %52, i64 %266
  %268 = load double, ptr %267, align 8, !tbaa !9
  %269 = load double, ptr %12, align 8, !tbaa !9
  %270 = fsub double %268, %269
  %271 = fcmp oge double %265, %270
  %272 = zext i1 %271 to i32
  %.2606 = add nsw i32 %.1605787, %272
  %273 = load double, ptr %19, align 8, !tbaa !9
  %274 = fcmp ult double %273, %270
  %not. = xor i1 %274, true
  %275 = zext i1 %not. to i32
  %.2 = add nsw i32 %.1599788, %275
  br i1 %254, label %278, label %276

276:                                              ; preds = %264
  %277 = fcmp uge double %265, %270
  %brmerge = select i1 %277, i1 true, i1 %274
  %.2.mux = select i1 %277, i32 %.2, i32 %.1599788
  br i1 %brmerge, label %464, label %278

278:                                              ; preds = %276, %264
  %279 = load i32, ptr %15, align 4, !tbaa !5
  %280 = add nsw i32 %279, 1
  store i32 %280, ptr %15, align 4, !tbaa !5
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds double, ptr %48, i64 %281
  store double %268, ptr %282, align 8, !tbaa !9
  %283 = getelementptr inbounds double, ptr %47, i64 %281
  store double 0.000000e+00, ptr %283, align 8, !tbaa !9
  %284 = getelementptr inbounds i32, ptr %46, i64 %281
  store i32 %indvars879, ptr %284, align 4, !tbaa !5
  %285 = load i32, ptr %15, align 4, !tbaa !5
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds i32, ptr %45, i64 %286
  store i32 1, ptr %287, align 4, !tbaa !5
  br label %464

288:                                              ; preds = %258
  %289 = sext i32 %259 to i64
  %290 = getelementptr inbounds double, ptr %52, i64 %289
  %291 = load double, ptr %290, align 8, !tbaa !9
  %.not703749.not = icmp slt i32 %.0653783, %261
  %292 = insertelement <2 x double> poison, double %291, i64 0
  %293 = shufflevector <2 x double> %292, <2 x double> poison, <2 x i32> zeroinitializer
  br i1 %.not703749.not, label %.lr.ph754.preheader, label %._crit_edge755

.lr.ph754.preheader:                              ; preds = %288
  %294 = zext i32 %.0653783 to i64
  %295 = add nuw nsw i64 %294, 1
  %296 = add i32 %261, 1
  %.neg = add i32 %.0653783, 1
  %xtraiter1018 = and i32 %262, 1
  %lcmp.mod1019.not = icmp eq i32 %xtraiter1018, 0
  br i1 %lcmp.mod1019.not, label %.lr.ph754.prol.loopexit, label %.lr.ph754.prol

.lr.ph754.prol:                                   ; preds = %.lr.ph754.preheader
  %297 = trunc i64 %295 to i32
  %298 = shl i32 %297, 1
  %299 = sext i32 %298 to i64
  %gep1045 = getelementptr double, ptr %invariant.gep1044, i64 %299
  %300 = load <2 x double>, ptr %gep1045, align 8, !tbaa !9
  %301 = insertelement <2 x double> %300, double %291, i64 0
  %302 = shufflevector <2 x double> %300, <2 x double> %293, <2 x i32> <i32 0, i32 3>
  %303 = fcmp ole <2 x double> %301, %302
  %304 = select <2 x i1> %303, <2 x double> %293, <2 x double> %300
  %indvars.iv.next864.prol = add nuw nsw i64 %294, 2
  br label %.lr.ph754.prol.loopexit

.lr.ph754.prol.loopexit:                          ; preds = %.lr.ph754.prol, %.lr.ph754.preheader
  %.lcssa1012.unr = phi <2 x double> [ poison, %.lr.ph754.preheader ], [ %304, %.lr.ph754.prol ]
  %indvars.iv863.unr = phi i64 [ %295, %.lr.ph754.preheader ], [ %indvars.iv.next864.prol, %.lr.ph754.prol ]
  %.unr1020 = phi <2 x double> [ %293, %.lr.ph754.preheader ], [ %304, %.lr.ph754.prol ]
  %305 = icmp eq i32 %261, %.neg
  br i1 %305, label %._crit_edge755, label %.lr.ph754

.lr.ph754:                                        ; preds = %.lr.ph754.prol.loopexit, %.lr.ph754
  %indvars.iv863 = phi i64 [ %indvars.iv.next864.1, %.lr.ph754 ], [ %indvars.iv863.unr, %.lr.ph754.prol.loopexit ]
  %306 = phi <2 x double> [ %323, %.lr.ph754 ], [ %.unr1020, %.lr.ph754.prol.loopexit ]
  %307 = trunc i64 %indvars.iv863 to i32
  %308 = shl i32 %307, 1
  %309 = sext i32 %308 to i64
  %gep1041 = getelementptr double, ptr %invariant.gep1040, i64 %309
  %310 = load <2 x double>, ptr %gep1041, align 8, !tbaa !9
  %311 = shufflevector <2 x double> %306, <2 x double> %310, <2 x i32> <i32 0, i32 3>
  %312 = shufflevector <2 x double> %310, <2 x double> %306, <2 x i32> <i32 0, i32 3>
  %313 = fcmp ole <2 x double> %311, %312
  %314 = select <2 x i1> %313, <2 x double> %306, <2 x double> %310
  %315 = trunc i64 %indvars.iv863 to i32
  %316 = shl i32 %315, 1
  %317 = add i32 %316, 2
  %318 = sext i32 %317 to i64
  %gep1043 = getelementptr double, ptr %invariant.gep1042, i64 %318
  %319 = load <2 x double>, ptr %gep1043, align 8, !tbaa !9
  %320 = shufflevector <2 x double> %314, <2 x double> %319, <2 x i32> <i32 0, i32 3>
  %321 = shufflevector <2 x double> %319, <2 x double> %314, <2 x i32> <i32 0, i32 3>
  %322 = fcmp ole <2 x double> %320, %321
  %323 = select <2 x i1> %322, <2 x double> %314, <2 x double> %319
  %indvars.iv.next864.1 = add nuw nsw i64 %indvars.iv863, 2
  %lftr.wideiv.1 = trunc i64 %indvars.iv.next864.1 to i32
  %exitcond866.not.1 = icmp eq i32 %296, %lftr.wideiv.1
  br i1 %exitcond866.not.1, label %._crit_edge755, label %.lr.ph754, !llvm.loop !13

._crit_edge755:                                   ; preds = %.lr.ph754.prol.loopexit, %.lr.ph754, %288
  %324 = phi <2 x double> [ %293, %288 ], [ %.lcssa1012.unr, %.lr.ph754.prol.loopexit ], [ %323, %.lr.ph754 ]
  %325 = sitofp i32 %262 to double
  %326 = load double, ptr %12, align 8, !tbaa !9
  %327 = fneg double %326
  %328 = insertelement <2 x double> poison, double %325, i64 0
  %329 = shufflevector <2 x double> %328, <2 x double> poison, <2 x i32> zeroinitializer
  %330 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %329, <2 x double> %324)
  %331 = insertelement <2 x double> poison, double %327, i64 0
  %332 = insertelement <2 x double> %331, double %326, i64 1
  %333 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %332, <2 x double> <double 2.000000e+00, double 2.000000e+00>, <2 x double> %330)
  br i1 %253, label %334, label %352

334:                                              ; preds = %._crit_edge755
  %335 = load double, ptr %18, align 8, !tbaa !9
  %336 = extractelement <2 x double> %333, i64 1
  %337 = fcmp olt double %336, %335
  br i1 %337, label %338, label %341

338:                                              ; preds = %334
  %339 = add nsw i32 %262, %.1605787
  %340 = add nsw i32 %262, %.1599788
  br label %464

341:                                              ; preds = %334
  %342 = load double, ptr %19, align 8, !tbaa !9
  %343 = insertelement <2 x double> %333, double %342, i64 1
  %344 = insertelement <2 x double> %333, double %335, i64 0
  %345 = fcmp oge <2 x double> %343, %344
  %346 = insertelement <2 x double> poison, double %335, i64 0
  %347 = insertelement <2 x double> %346, double %342, i64 1
  %348 = select <2 x i1> %345, <2 x double> %333, <2 x double> %347
  %349 = extractelement <2 x double> %348, i64 0
  %350 = extractelement <2 x double> %348, i64 1
  %351 = fcmp ult double %349, %350
  br i1 %351, label %352, label %464

352:                                              ; preds = %341, %._crit_edge755
  %353 = phi <2 x double> [ %348, %341 ], [ %333, %._crit_edge755 ]
  %354 = load i32, ptr %2, align 4, !tbaa !5
  %355 = sext i32 %354 to i64
  %gep771 = getelementptr double, ptr %22, i64 %355
  %356 = extractelement <2 x double> %353, i64 0
  store double %356, ptr %gep771, align 8, !tbaa !9
  %357 = add nsw i32 %354, %262
  %358 = sext i32 %357 to i64
  %gep773 = getelementptr double, ptr %22, i64 %358
  %359 = extractelement <2 x double> %353, i64 1
  store double %359, ptr %gep773, align 8, !tbaa !9
  %360 = getelementptr inbounds double, ptr %51, i64 %289
  %361 = getelementptr inbounds double, ptr %50, i64 %289
  %362 = shl i32 %262, 1
  %363 = add nsw i32 %354, %362
  %364 = sext i32 %363 to i64
  %gep775 = getelementptr double, ptr %22, i64 %364
  %365 = load i32, ptr %15, align 4, !tbaa !5
  %366 = add nsw i32 %365, 1
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds double, ptr %48, i64 %367
  %369 = getelementptr inbounds i32, ptr %46, i64 %367
  call void @dlaebz_(ptr noundef nonnull @c__1, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %39, ptr noundef nonnull %36, ptr noundef nonnull %38, ptr noundef nonnull %12, ptr noundef nonnull %290, ptr noundef nonnull %360, ptr noundef nonnull %361, ptr noundef nonnull %42, ptr noundef nonnull %gep771, ptr noundef %gep775, ptr noundef nonnull %40, ptr noundef %23, ptr noundef nonnull %368, ptr noundef nonnull %369, ptr noundef nonnull %35) #6
  %370 = load i32, ptr %35, align 4, !tbaa !5
  %.not704 = icmp eq i32 %370, 0
  br i1 %.not704, label %372, label %371

371:                                              ; preds = %352
  store i32 %370, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

372:                                              ; preds = %352
  %373 = load i32, ptr %23, align 4, !tbaa !5
  %374 = add nsw i32 %373, %.1605787
  %375 = load i32, ptr %41, align 4, !tbaa !5
  %376 = sext i32 %375 to i64
  %gep777 = getelementptr i32, ptr %23, i64 %376
  %377 = load i32, ptr %gep777, align 4, !tbaa !5
  %378 = add nsw i32 %377, %.1599788
  %379 = load i32, ptr %15, align 4, !tbaa !5
  %380 = sub nsw i32 %379, %373
  %381 = fsub double %359, %356
  %382 = load double, ptr %12, align 8, !tbaa !9
  %383 = fadd double %381, %382
  %384 = call double @log(double noundef %383) #6
  %385 = load double, ptr %12, align 8, !tbaa !9
  %386 = call double @log(double noundef %385) #6
  %387 = fsub double %384, %386
  %388 = fdiv double %387, 0x3FE62E42FEFA39EF
  %389 = fptosi double %388 to i32
  %390 = add nsw i32 %389, 2
  store i32 %390, ptr %37, align 4, !tbaa !5
  %391 = load i32, ptr %2, align 4, !tbaa !5
  %392 = sext i32 %391 to i64
  %gep779 = getelementptr double, ptr %22, i64 %392
  %393 = load i32, ptr %41, align 4, !tbaa !5
  %394 = shl i32 %393, 1
  %395 = add nsw i32 %394, %391
  %396 = sext i32 %395 to i64
  %gep781 = getelementptr double, ptr %22, i64 %396
  %397 = load i32, ptr %15, align 4, !tbaa !5
  %398 = add nsw i32 %397, 1
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds double, ptr %48, i64 %399
  %401 = getelementptr inbounds i32, ptr %46, i64 %399
  call void @dlaebz_(ptr noundef nonnull @c__2, ptr noundef nonnull %37, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %39, ptr noundef nonnull %36, ptr noundef nonnull %38, ptr noundef nonnull %12, ptr noundef nonnull %290, ptr noundef nonnull %360, ptr noundef nonnull %361, ptr noundef nonnull %42, ptr noundef %gep779, ptr noundef %gep781, ptr noundef nonnull %34, ptr noundef nonnull %23, ptr noundef nonnull %400, ptr noundef nonnull %401, ptr noundef nonnull %35) #6
  %402 = load i32, ptr %35, align 4, !tbaa !5
  %.not705 = icmp eq i32 %402, 0
  br i1 %.not705, label %404, label %403

403:                                              ; preds = %372
  store i32 %402, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

404:                                              ; preds = %372
  %405 = load i32, ptr %34, align 4, !tbaa !5
  %.not706763 = icmp slt i32 %405, 1
  br i1 %.not706763, label %._crit_edge768, label %.lr.ph767

.lr.ph767:                                        ; preds = %404
  %406 = load i32, ptr %41, align 4, !tbaa !5
  %407 = sub nsw i32 0, %indvars879
  %408 = add i32 %380, 1
  %409 = add i32 %379, 1
  %410 = sub i32 %409, %373
  %411 = sext i32 %406 to i64
  %412 = zext nneg i32 %405 to i64
  %413 = add nuw i32 %405, 1
  %wide.trip.count875 = zext i32 %413 to i64
  %broadcast.splatinsert971 = insertelement <2 x i32> poison, i32 %380, i64 0
  %broadcast.splat972 = shufflevector <2 x i32> %broadcast.splatinsert971, <2 x i32> poison, <2 x i32> zeroinitializer
  br label %414

414:                                              ; preds = %.lr.ph767, %._crit_edge762
  %indvars.iv872 = phi i64 [ 1, %.lr.ph767 ], [ %indvars.iv.next873, %._crit_edge762 ]
  %.1612765 = phi i32 [ %.0611786, %.lr.ph767 ], [ %.2613, %._crit_edge762 ]
  %415 = load i32, ptr %2, align 4, !tbaa !5
  %416 = sext i32 %415 to i64
  %417 = getelementptr double, ptr %44, i64 %indvars.iv872
  %418 = getelementptr double, ptr %417, i64 %416
  %419 = load double, ptr %418, align 8, !tbaa !9
  %420 = add nsw i64 %indvars.iv872, %411
  %421 = getelementptr double, ptr %44, i64 %420
  %422 = getelementptr double, ptr %421, i64 %416
  %423 = load double, ptr %422, align 8, !tbaa !9
  %424 = fadd double %419, %423
  %425 = fmul double %424, 5.000000e-01
  %426 = fsub double %419, %423
  %427 = fcmp oge double %426, 0.000000e+00
  %428 = fneg double %426
  %429 = select i1 %427, double %426, double %428
  %430 = fmul double %429, 5.000000e-01
  %431 = icmp ugt i64 %indvars.iv872, %412
  %.0639 = select i1 %431, i32 %407, i32 %indvars879
  %.2613 = select i1 %431, i32 1, i32 %.1612765
  %432 = getelementptr inbounds i32, ptr %43, i64 %420
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = add nsw i32 %433, %380
  %435 = getelementptr inbounds i32, ptr %43, i64 %indvars.iv872
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = add i32 %408, %436
  %.not707758 = icmp sgt i32 %437, %434
  br i1 %.not707758, label %._crit_edge762, label %.lr.ph761.preheader

.lr.ph761.preheader:                              ; preds = %414
  %438 = sext i32 %437 to i64
  %439 = add i32 %410, %433
  %440 = xor i32 %436, -1
  %441 = add i32 %433, %440
  %442 = zext i32 %441 to i64
  %443 = add nuw nsw i64 %442, 1
  %min.iters.check = icmp ult i32 %441, 3
  %brmerge1046 = or i1 %min.iters.check, %conflict.rdx
  br i1 %brmerge1046, label %.lr.ph761.preheader1011, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph761.preheader
  %n.vec = and i64 %443, 8589934588
  %ind.end = add nsw i64 %n.vec, %438
  %.splatinsert = insertelement <2 x i32> poison, i32 %437, i64 0
  %.splat = shufflevector <2 x i32> %.splatinsert, <2 x i32> poison, <2 x i32> zeroinitializer
  %induction = add <2 x i32> %.splat, <i32 0, i32 1>
  %broadcast.splatinsert = insertelement <2 x double> poison, double %425, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert969 = insertelement <2 x double> poison, double %430, i64 0
  %broadcast.splat970 = shufflevector <2 x double> %broadcast.splatinsert969, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert973 = insertelement <2 x i32> poison, i32 %.0639, i64 0
  %broadcast.splat974 = shufflevector <2 x i32> %broadcast.splatinsert973, <2 x i32> poison, <2 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.ind = phi <2 x i32> [ %induction, %vector.ph ], [ %vec.ind.next, %vector.body ]
  %step.add = add <2 x i32> %vec.ind, <i32 2, i32 2>
  %offset.idx = add i64 %index, %438
  %444 = getelementptr inbounds double, ptr %48, i64 %offset.idx
  %445 = getelementptr inbounds i8, ptr %444, i64 16
  store <2 x double> %broadcast.splat, ptr %444, align 8, !tbaa !9
  store <2 x double> %broadcast.splat, ptr %445, align 8, !tbaa !9
  %446 = getelementptr inbounds double, ptr %47, i64 %offset.idx
  %447 = getelementptr inbounds i8, ptr %446, i64 16
  store <2 x double> %broadcast.splat970, ptr %446, align 8, !tbaa !9
  store <2 x double> %broadcast.splat970, ptr %447, align 8, !tbaa !9
  %448 = sub nsw <2 x i32> %vec.ind, %broadcast.splat972
  %449 = sub nsw <2 x i32> %step.add, %broadcast.splat972
  %450 = getelementptr inbounds i32, ptr %45, i64 %offset.idx
  %451 = getelementptr inbounds i8, ptr %450, i64 8
  store <2 x i32> %448, ptr %450, align 4, !tbaa !5
  store <2 x i32> %449, ptr %451, align 4, !tbaa !5
  %452 = getelementptr inbounds i32, ptr %46, i64 %offset.idx
  %453 = getelementptr inbounds i8, ptr %452, i64 8
  store <2 x i32> %broadcast.splat974, ptr %452, align 4, !tbaa !5
  store <2 x i32> %broadcast.splat974, ptr %453, align 4, !tbaa !5
  %index.next = add nuw i64 %index, 4
  %vec.ind.next = add <2 x i32> %vec.ind, <i32 4, i32 4>
  %454 = icmp eq i64 %index.next, %n.vec
  br i1 %454, label %middle.block, label %vector.body, !llvm.loop !14

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %443, %n.vec
  br i1 %cmp.n, label %._crit_edge762, label %.lr.ph761.preheader1011

.lr.ph761.preheader1011:                          ; preds = %.lr.ph761.preheader, %middle.block
  %indvars.iv867.ph = phi i64 [ %438, %.lr.ph761.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph761

.lr.ph761:                                        ; preds = %.lr.ph761.preheader1011, %.lr.ph761
  %indvars.iv867 = phi i64 [ %indvars.iv.next868, %.lr.ph761 ], [ %indvars.iv867.ph, %.lr.ph761.preheader1011 ]
  %455 = getelementptr inbounds double, ptr %48, i64 %indvars.iv867
  store double %425, ptr %455, align 8, !tbaa !9
  %456 = getelementptr inbounds double, ptr %47, i64 %indvars.iv867
  store double %430, ptr %456, align 8, !tbaa !9
  %457 = trunc nsw i64 %indvars.iv867 to i32
  %458 = sub nsw i32 %457, %380
  %459 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv867
  store i32 %458, ptr %459, align 4, !tbaa !5
  %460 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv867
  store i32 %.0639, ptr %460, align 4, !tbaa !5
  %indvars.iv.next868 = add nsw i64 %indvars.iv867, 1
  %lftr.wideiv870 = trunc i64 %indvars.iv.next868 to i32
  %exitcond871.not = icmp eq i32 %439, %lftr.wideiv870
  br i1 %exitcond871.not, label %._crit_edge762, label %.lr.ph761, !llvm.loop !17

._crit_edge762:                                   ; preds = %.lr.ph761, %middle.block, %414
  %indvars.iv.next873 = add nuw nsw i64 %indvars.iv872, 1
  %exitcond876.not = icmp eq i64 %indvars.iv.next873, %wide.trip.count875
  br i1 %exitcond876.not, label %._crit_edge768, label %414, !llvm.loop !18

._crit_edge768:                                   ; preds = %._crit_edge762, %404
  %.1612.lcssa = phi i32 [ %.0611786, %404 ], [ %.2613, %._crit_edge762 ]
  %461 = load i32, ptr %40, align 4, !tbaa !5
  %462 = load i32, ptr %15, align 4, !tbaa !5
  %463 = add nsw i32 %462, %461
  store i32 %463, ptr %15, align 4, !tbaa !5
  br label %464

464:                                              ; preds = %276, %338, %341, %278, %._crit_edge768
  %.3614 = phi i32 [ %.0611786, %278 ], [ %.0611786, %276 ], [ %.0611786, %338 ], [ %.0611786, %341 ], [ %.1612.lcssa, %._crit_edge768 ]
  %.3607 = phi i32 [ %.2606, %278 ], [ %.2606, %276 ], [ %339, %338 ], [ %.1605787, %341 ], [ %374, %._crit_edge768 ]
  %.3 = phi i32 [ %.2, %278 ], [ %.2.mux, %276 ], [ %340, %338 ], [ %.1599788, %341 ], [ %378, %._crit_edge768 ]
  %indvars.iv.next878 = add nuw nsw i64 %indvars.iv877, 1
  %exitcond881.not = icmp eq i64 %indvars.iv.next878, %wide.trip.count880
  br i1 %exitcond881.not, label %._crit_edge791, label %258, !llvm.loop !19

._crit_edge791:                                   ; preds = %464, %251
  %.0611.lcssa = phi i32 [ 0, %251 ], [ %.3614, %464 ]
  %.1605.lcssa = phi i32 [ 0, %251 ], [ %.3607, %464 ]
  %.1599.lcssa = phi i32 [ 0, %251 ], [ %.3, %464 ]
  br i1 %186, label %465, label %.thread724

465:                                              ; preds = %._crit_edge791
  %466 = load i32, ptr %5, align 4, !tbaa !5
  %467 = xor i32 %.1605.lcssa, -1
  %468 = add i32 %466, %467
  %469 = load i32, ptr %6, align 4, !tbaa !5
  %470 = sub nsw i32 %.1599.lcssa, %469
  %471 = icmp sgt i32 %468, 0
  br i1 %471, label %472, label %498

472:                                              ; preds = %465
  store i32 0, ptr %40, align 4, !tbaa !5
  %473 = load i32, ptr %15, align 4, !tbaa !5
  %.not685795 = icmp slt i32 %473, 1
  br i1 %.not685795, label %._crit_edge800, label %.lr.ph799.preheader

.lr.ph799.preheader:                              ; preds = %472
  %474 = add nuw i32 %473, 1
  %wide.trip.count885 = zext i32 %474 to i64
  br label %.lr.ph799

.lr.ph799:                                        ; preds = %.lr.ph799.preheader, %495
  %indvars.iv882 = phi i64 [ 1, %.lr.ph799.preheader ], [ %indvars.iv.next883, %495 ]
  %.0618797 = phi i32 [ %468, %.lr.ph799.preheader ], [ %.1619, %495 ]
  %475 = phi i32 [ 0, %.lr.ph799.preheader ], [ %496, %495 ]
  %476 = getelementptr inbounds double, ptr %48, i64 %indvars.iv882
  %477 = load double, ptr %476, align 8, !tbaa !9
  %478 = fcmp ole double %477, %.1603
  %479 = icmp sgt i32 %.0618797, 0
  %or.cond3 = select i1 %478, i1 %479, i1 false
  br i1 %or.cond3, label %480, label %482

480:                                              ; preds = %.lr.ph799
  %481 = add nsw i32 %.0618797, -1
  br label %495

482:                                              ; preds = %.lr.ph799
  %483 = add nsw i32 %475, 1
  store i32 %483, ptr %40, align 4, !tbaa !5
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds double, ptr %48, i64 %484
  store double %477, ptr %485, align 8, !tbaa !9
  %486 = getelementptr inbounds double, ptr %47, i64 %indvars.iv882
  %487 = load double, ptr %486, align 8, !tbaa !9
  %488 = getelementptr inbounds double, ptr %47, i64 %484
  store double %487, ptr %488, align 8, !tbaa !9
  %489 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv882
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = getelementptr inbounds i32, ptr %45, i64 %484
  store i32 %490, ptr %491, align 4, !tbaa !5
  %492 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv882
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = getelementptr inbounds i32, ptr %46, i64 %484
  store i32 %493, ptr %494, align 4, !tbaa !5
  br label %495

495:                                              ; preds = %480, %482
  %496 = phi i32 [ %475, %480 ], [ %483, %482 ]
  %.1619 = phi i32 [ %481, %480 ], [ %.0618797, %482 ]
  %indvars.iv.next883 = add nuw nsw i64 %indvars.iv882, 1
  %exitcond886.not = icmp eq i64 %indvars.iv.next883, %wide.trip.count885
  br i1 %exitcond886.not, label %._crit_edge800, label %.lr.ph799, !llvm.loop !20

._crit_edge800:                                   ; preds = %495, %472
  %497 = phi i32 [ 0, %472 ], [ %496, %495 ]
  %.0618.lcssa = phi i32 [ %468, %472 ], [ %.1619, %495 ]
  store i32 %497, ptr %15, align 4, !tbaa !5
  br label %498

498:                                              ; preds = %._crit_edge800, %465
  %.2620 = phi i32 [ %.0618.lcssa, %._crit_edge800 ], [ %468, %465 ]
  %499 = icmp sgt i32 %470, 0
  br i1 %499, label %500, label %571

500:                                              ; preds = %498
  %501 = load i32, ptr %15, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr %40, align 4, !tbaa !5
  %503 = icmp sgt i32 %501, 0
  br i1 %503, label %.lr.ph806.preheader, label %._crit_edge814

.lr.ph806.preheader:                              ; preds = %500
  %504 = zext nneg i32 %501 to i64
  br label %.lr.ph806

.lr.ph806:                                        ; preds = %.lr.ph806.preheader, %525
  %indvars.iv887 = phi i64 [ %504, %.lr.ph806.preheader ], [ %indvars.iv.next888, %525 ]
  %.0615804 = phi i32 [ %470, %.lr.ph806.preheader ], [ %.1616, %525 ]
  %505 = phi i32 [ %502, %.lr.ph806.preheader ], [ %526, %525 ]
  %506 = getelementptr inbounds double, ptr %48, i64 %indvars.iv887
  %507 = load double, ptr %506, align 8, !tbaa !9
  %508 = fcmp oge double %507, %.1601
  %509 = icmp sgt i32 %.0615804, 0
  %or.cond5 = select i1 %508, i1 %509, i1 false
  br i1 %or.cond5, label %510, label %512

510:                                              ; preds = %.lr.ph806
  %511 = add nsw i32 %.0615804, -1
  br label %525

512:                                              ; preds = %.lr.ph806
  %513 = add nsw i32 %505, -1
  store i32 %513, ptr %40, align 4, !tbaa !5
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds double, ptr %48, i64 %514
  store double %507, ptr %515, align 8, !tbaa !9
  %516 = getelementptr inbounds double, ptr %47, i64 %indvars.iv887
  %517 = load double, ptr %516, align 8, !tbaa !9
  %518 = getelementptr inbounds double, ptr %47, i64 %514
  store double %517, ptr %518, align 8, !tbaa !9
  %519 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv887
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = getelementptr inbounds i32, ptr %45, i64 %514
  store i32 %520, ptr %521, align 4, !tbaa !5
  %522 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv887
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = getelementptr inbounds i32, ptr %46, i64 %514
  store i32 %523, ptr %524, align 4, !tbaa !5
  br label %525

525:                                              ; preds = %510, %512
  %526 = phi i32 [ %505, %510 ], [ %513, %512 ]
  %.1616 = phi i32 [ %511, %510 ], [ %.0615804, %512 ]
  %indvars.iv.next888 = add nsw i64 %indvars.iv887, -1
  %527 = icmp sgt i64 %indvars.iv887, 1
  br i1 %527, label %.lr.ph806, label %._crit_edge807, !llvm.loop !21

._crit_edge807:                                   ; preds = %525
  %.pre = load i32, ptr %15, align 4, !tbaa !5
  %.not686809 = icmp sgt i32 %526, %.pre
  br i1 %.not686809, label %._crit_edge814, label %.lr.ph813.preheader

.lr.ph813.preheader:                              ; preds = %._crit_edge807
  %528 = sext i32 %526 to i64
  %529 = add i32 %.pre, 1
  %530 = sub i32 %529, %526
  %wide.trip.count897 = zext i32 %530 to i64
  %min.iters.check993 = icmp ult i32 %530, 30
  br i1 %min.iters.check993, label %.lr.ph813.preheader1008, label %vector.memcheck975

vector.memcheck975:                               ; preds = %.lr.ph813.preheader
  %531 = add i64 %29, 8
  %532 = shl nsw i64 %528, 3
  %533 = add i64 %532, %28
  %534 = sub i64 %531, %533
  %diff.check976 = icmp ult i64 %534, 16
  %535 = add i64 %29, -8
  %536 = sub i64 %535, %28
  %537 = add i64 %536, %532
  %diff.check977 = icmp ult i64 %537, 16
  %conflict.rdx978 = or i1 %diff.check976, %diff.check977
  %538 = sub i64 %29, %28
  %diff.check979 = icmp ult i64 %538, 16
  %conflict.rdx980 = or i1 %conflict.rdx978, %diff.check979
  %539 = add i64 %27, 4
  %540 = shl nsw i64 %528, 2
  %541 = add i64 %540, %26
  %542 = sub i64 %539, %541
  %diff.check981 = icmp ult i64 %542, 8
  %conflict.rdx982 = or i1 %conflict.rdx980, %diff.check981
  %543 = add i64 %27, -4
  %544 = sub i64 %543, %26
  %545 = add i64 %544, %540
  %diff.check983 = icmp ult i64 %545, 8
  %conflict.rdx984 = or i1 %conflict.rdx982, %diff.check983
  %546 = sub i64 %27, %26
  %diff.check985 = icmp ult i64 %546, 8
  %conflict.rdx986 = or i1 %conflict.rdx984, %diff.check985
  %diff.check987 = icmp ult i64 %532, 16
  %conflict.rdx988 = or i1 %conflict.rdx986, %diff.check987
  %diff.check989 = icmp ult i64 %540, 8
  %conflict.rdx990 = or i1 %conflict.rdx988, %diff.check989
  br i1 %conflict.rdx990, label %.lr.ph813.preheader1008, label %vector.ph994

vector.ph994:                                     ; preds = %vector.memcheck975
  %n.vec996 = and i64 %wide.trip.count897, 4294967294
  %ind.end997 = add nsw i64 %n.vec996, %528
  br label %vector.body1000

vector.body1000:                                  ; preds = %vector.body1000, %vector.ph994
  %index1001 = phi i64 [ 0, %vector.ph994 ], [ %index.next1006, %vector.body1000 ]
  %offset.idx1002 = add i64 %index1001, %528
  %547 = getelementptr inbounds double, ptr %48, i64 %offset.idx1002
  %wide.load = load <2 x double>, ptr %547, align 8, !tbaa !9
  %548 = getelementptr double, ptr %16, i64 %index1001
  store <2 x double> %wide.load, ptr %548, align 8, !tbaa !9
  %549 = getelementptr inbounds double, ptr %47, i64 %offset.idx1002
  %wide.load1003 = load <2 x double>, ptr %549, align 8, !tbaa !9
  %550 = getelementptr double, ptr %17, i64 %index1001
  store <2 x double> %wide.load1003, ptr %550, align 8, !tbaa !9
  %551 = getelementptr inbounds i32, ptr %45, i64 %offset.idx1002
  %wide.load1004 = load <2 x i32>, ptr %551, align 4, !tbaa !5
  %552 = getelementptr i32, ptr %21, i64 %index1001
  store <2 x i32> %wide.load1004, ptr %552, align 4, !tbaa !5
  %553 = getelementptr inbounds i32, ptr %46, i64 %offset.idx1002
  %wide.load1005 = load <2 x i32>, ptr %553, align 4, !tbaa !5
  %554 = getelementptr i32, ptr %20, i64 %index1001
  store <2 x i32> %wide.load1005, ptr %554, align 4, !tbaa !5
  %index.next1006 = add nuw i64 %index1001, 2
  %555 = icmp eq i64 %index.next1006, %n.vec996
  br i1 %555, label %middle.block991, label %vector.body1000, !llvm.loop !22

middle.block991:                                  ; preds = %vector.body1000
  %cmp.n1007 = icmp eq i64 %n.vec996, %wide.trip.count897
  br i1 %cmp.n1007, label %._crit_edge814.loopexit, label %.lr.ph813.preheader1008

.lr.ph813.preheader1008:                          ; preds = %middle.block991, %vector.memcheck975, %.lr.ph813.preheader
  %indvars.iv892.ph = phi i64 [ %528, %vector.memcheck975 ], [ %528, %.lr.ph813.preheader ], [ %ind.end997, %middle.block991 ]
  %indvars.iv890.ph = phi i64 [ 0, %vector.memcheck975 ], [ 0, %.lr.ph813.preheader ], [ %n.vec996, %middle.block991 ]
  br label %.lr.ph813

.lr.ph813:                                        ; preds = %.lr.ph813.preheader1008, %.lr.ph813
  %indvars.iv892 = phi i64 [ %indvars.iv.next893, %.lr.ph813 ], [ %indvars.iv892.ph, %.lr.ph813.preheader1008 ]
  %indvars.iv890 = phi i64 [ %indvars.iv.next891, %.lr.ph813 ], [ %indvars.iv890.ph, %.lr.ph813.preheader1008 ]
  %indvars.iv.next891 = add nuw nsw i64 %indvars.iv890, 1
  %556 = getelementptr inbounds double, ptr %48, i64 %indvars.iv892
  %557 = load double, ptr %556, align 8, !tbaa !9
  %558 = getelementptr double, ptr %16, i64 %indvars.iv890
  store double %557, ptr %558, align 8, !tbaa !9
  %559 = getelementptr inbounds double, ptr %47, i64 %indvars.iv892
  %560 = load double, ptr %559, align 8, !tbaa !9
  %561 = getelementptr double, ptr %17, i64 %indvars.iv890
  store double %560, ptr %561, align 8, !tbaa !9
  %562 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv892
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = getelementptr i32, ptr %21, i64 %indvars.iv890
  store i32 %563, ptr %564, align 4, !tbaa !5
  %565 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv892
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = getelementptr i32, ptr %20, i64 %indvars.iv890
  store i32 %566, ptr %567, align 4, !tbaa !5
  %indvars.iv.next893 = add nsw i64 %indvars.iv892, 1
  %exitcond898.not = icmp eq i64 %indvars.iv.next891, %wide.trip.count897
  br i1 %exitcond898.not, label %._crit_edge814.loopexit, label %.lr.ph813, !llvm.loop !23

._crit_edge814.loopexit:                          ; preds = %.lr.ph813, %middle.block991
  %.pre928 = load i32, ptr %15, align 4, !tbaa !5
  br label %._crit_edge814

._crit_edge814:                                   ; preds = %500, %._crit_edge814.loopexit, %._crit_edge807
  %.0615.lcssa933 = phi i32 [ %.1616, %._crit_edge814.loopexit ], [ %.1616, %._crit_edge807 ], [ %470, %500 ]
  %568 = phi i32 [ %526, %._crit_edge814.loopexit ], [ %526, %._crit_edge807 ], [ %502, %500 ]
  %569 = phi i32 [ %.pre928, %._crit_edge814.loopexit ], [ %.pre, %._crit_edge807 ], [ %501, %500 ]
  %reass.sub = sub i32 %569, %568
  %570 = add i32 %reass.sub, 1
  store i32 %570, ptr %15, align 4, !tbaa !5
  br label %571

571:                                              ; preds = %._crit_edge814, %498
  %.2617 = phi i32 [ %.0615.lcssa933, %._crit_edge814 ], [ %470, %498 ]
  %572 = icmp sgt i32 %.2620, 0
  %573 = icmp sgt i32 %.2617, 0
  %or.cond7 = select i1 %572, i1 true, i1 %573
  br i1 %or.cond7, label %574, label %._crit_edge929

._crit_edge929:                                   ; preds = %571
  %.pre930 = load i32, ptr %15, align 4, !tbaa !5
  br label %673

574:                                              ; preds = %571
  br i1 %572, label %575, label %.loopexit735

575:                                              ; preds = %574
  %576 = load double, ptr %19, align 8, !tbaa !9
  br label %577

577:                                              ; preds = %575, %._crit_edge821
  %.0640825 = phi double [ %576, %575 ], [ %.1641.lcssa, %._crit_edge821 ]
  %.0646824 = phi i32 [ 1, %575 ], [ %612, %._crit_edge821 ]
  %578 = load i32, ptr %15, align 4, !tbaa !5
  %.not701815 = icmp slt i32 %578, 1
  br i1 %.not701815, label %._crit_edge821, label %.lr.ph820.preheader

.lr.ph820.preheader:                              ; preds = %577
  %579 = zext nneg i32 %578 to i64
  %xtraiter1021 = and i64 %579, 1
  %580 = icmp eq i32 %578, 1
  br i1 %580, label %._crit_edge821.loopexit.unr-lcssa, label %.lr.ph820.preheader.new

.lr.ph820.preheader.new:                          ; preds = %.lr.ph820.preheader
  %unroll_iter1025 = and i64 %579, 2147483646
  br label %.lr.ph820

.lr.ph820:                                        ; preds = %600, %.lr.ph820.preheader.new
  %indvars.iv899 = phi i64 [ 1, %.lr.ph820.preheader.new ], [ %indvars.iv.next900.1, %600 ]
  %.0623818 = phi i32 [ 0, %.lr.ph820.preheader.new ], [ %.1624.1, %600 ]
  %.1641816 = phi double [ %.0640825, %.lr.ph820.preheader.new ], [ %.2642.1, %600 ]
  %niter1026 = phi i64 [ 0, %.lr.ph820.preheader.new ], [ %niter1026.next.1, %600 ]
  %581 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv899
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %.not702 = icmp eq i32 %582, 0
  br i1 %.not702, label %.lr.ph820.1, label %583

583:                                              ; preds = %.lr.ph820
  %584 = getelementptr inbounds double, ptr %48, i64 %indvars.iv899
  %585 = load double, ptr %584, align 8, !tbaa !9
  %586 = fcmp olt double %585, %.1641816
  %587 = icmp eq i32 %.0623818, 0
  %or.cond9 = select i1 %586, i1 true, i1 %587
  br i1 %or.cond9, label %588, label %.lr.ph820.1

588:                                              ; preds = %583
  %589 = trunc nuw nsw i64 %indvars.iv899 to i32
  br label %.lr.ph820.1

.lr.ph820.1:                                      ; preds = %.lr.ph820, %588, %583
  %.2642 = phi double [ %585, %588 ], [ %.1641816, %583 ], [ %.1641816, %.lr.ph820 ]
  %.1624 = phi i32 [ %589, %588 ], [ %.0623818, %583 ], [ %.0623818, %.lr.ph820 ]
  %590 = getelementptr i32, ptr %20, i64 %indvars.iv899
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %.not702.1 = icmp eq i32 %591, 0
  br i1 %.not702.1, label %600, label %592

592:                                              ; preds = %.lr.ph820.1
  %593 = getelementptr double, ptr %16, i64 %indvars.iv899
  %594 = load double, ptr %593, align 8, !tbaa !9
  %595 = fcmp olt double %594, %.2642
  %596 = icmp eq i32 %.1624, 0
  %or.cond9.1 = select i1 %595, i1 true, i1 %596
  br i1 %or.cond9.1, label %597, label %600

597:                                              ; preds = %592
  %598 = trunc i64 %indvars.iv899 to i32
  %599 = add i32 %598, 1
  br label %600

600:                                              ; preds = %597, %592, %.lr.ph820.1
  %.2642.1 = phi double [ %594, %597 ], [ %.2642, %592 ], [ %.2642, %.lr.ph820.1 ]
  %.1624.1 = phi i32 [ %599, %597 ], [ %.1624, %592 ], [ %.1624, %.lr.ph820.1 ]
  %indvars.iv.next900.1 = add nuw nsw i64 %indvars.iv899, 2
  %niter1026.next.1 = add i64 %niter1026, 2
  %niter1026.ncmp.1 = icmp eq i64 %niter1026.next.1, %unroll_iter1025
  br i1 %niter1026.ncmp.1, label %._crit_edge821.loopexit.unr-lcssa, label %.lr.ph820, !llvm.loop !24

._crit_edge821.loopexit.unr-lcssa:                ; preds = %600, %.lr.ph820.preheader
  %.2642.lcssa.ph = phi double [ poison, %.lr.ph820.preheader ], [ %.2642.1, %600 ]
  %.1624.lcssa.ph = phi i32 [ poison, %.lr.ph820.preheader ], [ %.1624.1, %600 ]
  %indvars.iv899.unr = phi i64 [ 1, %.lr.ph820.preheader ], [ %indvars.iv.next900.1, %600 ]
  %.0623818.unr = phi i32 [ 0, %.lr.ph820.preheader ], [ %.1624.1, %600 ]
  %.1641816.unr = phi double [ %.0640825, %.lr.ph820.preheader ], [ %.2642.1, %600 ]
  %lcmp.mod1022.not = icmp eq i64 %xtraiter1021, 0
  br i1 %lcmp.mod1022.not, label %._crit_edge821, label %.lr.ph820.epil

.lr.ph820.epil:                                   ; preds = %._crit_edge821.loopexit.unr-lcssa
  %601 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv899.unr
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %.not702.epil = icmp eq i32 %602, 0
  br i1 %.not702.epil, label %._crit_edge821, label %603

603:                                              ; preds = %.lr.ph820.epil
  %604 = getelementptr inbounds double, ptr %48, i64 %indvars.iv899.unr
  %605 = load double, ptr %604, align 8, !tbaa !9
  %606 = fcmp olt double %605, %.1641816.unr
  %607 = icmp eq i32 %.0623818.unr, 0
  %or.cond9.epil = select i1 %606, i1 true, i1 %607
  br i1 %or.cond9.epil, label %608, label %._crit_edge821

608:                                              ; preds = %603
  %609 = trunc nuw nsw i64 %indvars.iv899.unr to i32
  br label %._crit_edge821

._crit_edge821:                                   ; preds = %._crit_edge821.loopexit.unr-lcssa, %608, %603, %.lr.ph820.epil, %577
  %.1641.lcssa = phi double [ %.0640825, %577 ], [ %.2642.lcssa.ph, %._crit_edge821.loopexit.unr-lcssa ], [ %605, %608 ], [ %.1641816.unr, %603 ], [ %.1641816.unr, %.lr.ph820.epil ]
  %.0623.lcssa = phi i32 [ 0, %577 ], [ %.1624.lcssa.ph, %._crit_edge821.loopexit.unr-lcssa ], [ %609, %608 ], [ %.0623818.unr, %603 ], [ %.0623818.unr, %.lr.ph820.epil ]
  %610 = sext i32 %.0623.lcssa to i64
  %611 = getelementptr inbounds i32, ptr %46, i64 %610
  store i32 0, ptr %611, align 4, !tbaa !5
  %612 = add nuw i32 %.0646824, 1
  %exitcond904.not = icmp eq i32 %.0646824, %.2620
  br i1 %exitcond904.not, label %.loopexit735, label %577, !llvm.loop !25

.loopexit735:                                     ; preds = %._crit_edge821, %574
  br i1 %573, label %613, label %.loopexit734

613:                                              ; preds = %.loopexit735
  %614 = load double, ptr %18, align 8, !tbaa !9
  br label %615

615:                                              ; preds = %613, %._crit_edge832
  %.3643836 = phi double [ %614, %613 ], [ %.4644.lcssa, %._crit_edge832 ]
  %.1647835 = phi i32 [ 1, %613 ], [ %650, %._crit_edge832 ]
  %616 = load i32, ptr %15, align 4, !tbaa !5
  %.not699826 = icmp slt i32 %616, 1
  br i1 %.not699826, label %._crit_edge832, label %.lr.ph831.preheader

.lr.ph831.preheader:                              ; preds = %615
  %617 = zext nneg i32 %616 to i64
  %xtraiter1027 = and i64 %617, 1
  %618 = icmp eq i32 %616, 1
  br i1 %618, label %._crit_edge832.loopexit.unr-lcssa, label %.lr.ph831.preheader.new

.lr.ph831.preheader.new:                          ; preds = %.lr.ph831.preheader
  %unroll_iter1031 = and i64 %617, 2147483646
  br label %.lr.ph831

.lr.ph831:                                        ; preds = %638, %.lr.ph831.preheader.new
  %indvars.iv905 = phi i64 [ 1, %.lr.ph831.preheader.new ], [ %indvars.iv.next906.1, %638 ]
  %.2625829 = phi i32 [ 0, %.lr.ph831.preheader.new ], [ %.3626.1, %638 ]
  %.4644827 = phi double [ %.3643836, %.lr.ph831.preheader.new ], [ %.5645.1, %638 ]
  %niter1032 = phi i64 [ 0, %.lr.ph831.preheader.new ], [ %niter1032.next.1, %638 ]
  %619 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv905
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %.not700 = icmp eq i32 %620, 0
  br i1 %.not700, label %.lr.ph831.1, label %621

621:                                              ; preds = %.lr.ph831
  %622 = getelementptr inbounds double, ptr %48, i64 %indvars.iv905
  %623 = load double, ptr %622, align 8, !tbaa !9
  %624 = fcmp oge double %623, %.4644827
  %625 = icmp eq i32 %.2625829, 0
  %or.cond11 = select i1 %624, i1 true, i1 %625
  br i1 %or.cond11, label %626, label %.lr.ph831.1

626:                                              ; preds = %621
  %627 = trunc nuw nsw i64 %indvars.iv905 to i32
  br label %.lr.ph831.1

.lr.ph831.1:                                      ; preds = %.lr.ph831, %626, %621
  %.5645 = phi double [ %623, %626 ], [ %.4644827, %621 ], [ %.4644827, %.lr.ph831 ]
  %.3626 = phi i32 [ %627, %626 ], [ %.2625829, %621 ], [ %.2625829, %.lr.ph831 ]
  %628 = getelementptr i32, ptr %20, i64 %indvars.iv905
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %.not700.1 = icmp eq i32 %629, 0
  br i1 %.not700.1, label %638, label %630

630:                                              ; preds = %.lr.ph831.1
  %631 = getelementptr double, ptr %16, i64 %indvars.iv905
  %632 = load double, ptr %631, align 8, !tbaa !9
  %633 = fcmp oge double %632, %.5645
  %634 = icmp eq i32 %.3626, 0
  %or.cond11.1 = select i1 %633, i1 true, i1 %634
  br i1 %or.cond11.1, label %635, label %638

635:                                              ; preds = %630
  %636 = trunc i64 %indvars.iv905 to i32
  %637 = add i32 %636, 1
  br label %638

638:                                              ; preds = %635, %630, %.lr.ph831.1
  %.5645.1 = phi double [ %632, %635 ], [ %.5645, %630 ], [ %.5645, %.lr.ph831.1 ]
  %.3626.1 = phi i32 [ %637, %635 ], [ %.3626, %630 ], [ %.3626, %.lr.ph831.1 ]
  %indvars.iv.next906.1 = add nuw nsw i64 %indvars.iv905, 2
  %niter1032.next.1 = add i64 %niter1032, 2
  %niter1032.ncmp.1 = icmp eq i64 %niter1032.next.1, %unroll_iter1031
  br i1 %niter1032.ncmp.1, label %._crit_edge832.loopexit.unr-lcssa, label %.lr.ph831, !llvm.loop !26

._crit_edge832.loopexit.unr-lcssa:                ; preds = %638, %.lr.ph831.preheader
  %.5645.lcssa.ph = phi double [ poison, %.lr.ph831.preheader ], [ %.5645.1, %638 ]
  %.3626.lcssa.ph = phi i32 [ poison, %.lr.ph831.preheader ], [ %.3626.1, %638 ]
  %indvars.iv905.unr = phi i64 [ 1, %.lr.ph831.preheader ], [ %indvars.iv.next906.1, %638 ]
  %.2625829.unr = phi i32 [ 0, %.lr.ph831.preheader ], [ %.3626.1, %638 ]
  %.4644827.unr = phi double [ %.3643836, %.lr.ph831.preheader ], [ %.5645.1, %638 ]
  %lcmp.mod1028.not = icmp eq i64 %xtraiter1027, 0
  br i1 %lcmp.mod1028.not, label %._crit_edge832, label %.lr.ph831.epil

.lr.ph831.epil:                                   ; preds = %._crit_edge832.loopexit.unr-lcssa
  %639 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv905.unr
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %.not700.epil = icmp eq i32 %640, 0
  br i1 %.not700.epil, label %._crit_edge832, label %641

641:                                              ; preds = %.lr.ph831.epil
  %642 = getelementptr inbounds double, ptr %48, i64 %indvars.iv905.unr
  %643 = load double, ptr %642, align 8, !tbaa !9
  %644 = fcmp oge double %643, %.4644827.unr
  %645 = icmp eq i32 %.2625829.unr, 0
  %or.cond11.epil = select i1 %644, i1 true, i1 %645
  br i1 %or.cond11.epil, label %646, label %._crit_edge832

646:                                              ; preds = %641
  %647 = trunc nuw nsw i64 %indvars.iv905.unr to i32
  br label %._crit_edge832

._crit_edge832:                                   ; preds = %._crit_edge832.loopexit.unr-lcssa, %646, %641, %.lr.ph831.epil, %615
  %.4644.lcssa = phi double [ %.3643836, %615 ], [ %.5645.lcssa.ph, %._crit_edge832.loopexit.unr-lcssa ], [ %643, %646 ], [ %.4644827.unr, %641 ], [ %.4644827.unr, %.lr.ph831.epil ]
  %.2625.lcssa = phi i32 [ 0, %615 ], [ %.3626.lcssa.ph, %._crit_edge832.loopexit.unr-lcssa ], [ %647, %646 ], [ %.2625829.unr, %641 ], [ %.2625829.unr, %.lr.ph831.epil ]
  %648 = sext i32 %.2625.lcssa to i64
  %649 = getelementptr inbounds i32, ptr %46, i64 %648
  store i32 0, ptr %649, align 4, !tbaa !5
  %650 = add nuw i32 %.1647835, 1
  %exitcond910.not = icmp eq i32 %.1647835, %.2617
  br i1 %exitcond910.not, label %.loopexit734, label %615, !llvm.loop !27

.loopexit734:                                     ; preds = %._crit_edge832, %.loopexit735
  store i32 0, ptr %40, align 4, !tbaa !5
  %651 = load i32, ptr %15, align 4, !tbaa !5
  %.not689838 = icmp slt i32 %651, 1
  br i1 %.not689838, label %._crit_edge842, label %.lr.ph841.preheader

.lr.ph841.preheader:                              ; preds = %.loopexit734
  %652 = add nuw i32 %651, 1
  %wide.trip.count914 = zext i32 %652 to i64
  br label %.lr.ph841

.lr.ph841:                                        ; preds = %.lr.ph841.preheader, %670
  %indvars.iv911 = phi i64 [ 1, %.lr.ph841.preheader ], [ %indvars.iv.next912, %670 ]
  %653 = phi i32 [ 0, %.lr.ph841.preheader ], [ %671, %670 ]
  %654 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv911
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %.not698 = icmp eq i32 %655, 0
  br i1 %.not698, label %670, label %656

656:                                              ; preds = %.lr.ph841
  %657 = add nsw i32 %653, 1
  store i32 %657, ptr %40, align 4, !tbaa !5
  %658 = getelementptr inbounds double, ptr %48, i64 %indvars.iv911
  %659 = load double, ptr %658, align 8, !tbaa !9
  %660 = sext i32 %657 to i64
  %661 = getelementptr inbounds double, ptr %48, i64 %660
  store double %659, ptr %661, align 8, !tbaa !9
  %662 = getelementptr inbounds double, ptr %47, i64 %indvars.iv911
  %663 = load double, ptr %662, align 8, !tbaa !9
  %664 = getelementptr inbounds double, ptr %47, i64 %660
  store double %663, ptr %664, align 8, !tbaa !9
  %665 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv911
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = getelementptr inbounds i32, ptr %45, i64 %660
  store i32 %666, ptr %667, align 4, !tbaa !5
  %668 = load i32, ptr %654, align 4, !tbaa !5
  %669 = getelementptr inbounds i32, ptr %46, i64 %660
  store i32 %668, ptr %669, align 4, !tbaa !5
  br label %670

670:                                              ; preds = %.lr.ph841, %656
  %671 = phi i32 [ %653, %.lr.ph841 ], [ %657, %656 ]
  %indvars.iv.next912 = add nuw nsw i64 %indvars.iv911, 1
  %exitcond915.not = icmp eq i64 %indvars.iv.next912, %wide.trip.count914
  br i1 %exitcond915.not, label %._crit_edge842, label %.lr.ph841, !llvm.loop !28

._crit_edge842:                                   ; preds = %670, %.loopexit734
  %672 = phi i32 [ 0, %.loopexit734 ], [ %671, %670 ]
  store i32 %672, ptr %15, align 4, !tbaa !5
  br label %673

673:                                              ; preds = %._crit_edge929, %._crit_edge842
  %674 = phi i32 [ %.pre930, %._crit_edge929 ], [ %672, %._crit_edge842 ]
  %675 = icmp slt i32 %.2620, 0
  %676 = icmp slt i32 %.2617, 0
  %or.cond13 = select i1 %675, i1 true, i1 %676
  %677 = load i32, ptr %6, align 4, !tbaa !5
  %678 = load i32, ptr %5, align 4, !tbaa !5
  %679 = add i32 %677, 1
  %680 = sub i32 %679, %678
  %.not691 = icmp eq i32 %674, %680
  br i1 %.not691, label %.thread728, label %685

.thread724:                                       ; preds = %._crit_edge791
  %681 = icmp eq i32 %.1622, 1
  br i1 %681, label %682, label %.thread728

682:                                              ; preds = %.thread724
  %683 = load i32, ptr %15, align 4, !tbaa !5
  %684 = load i32, ptr %2, align 4, !tbaa !5
  %.not690 = icmp eq i32 %683, %684
  br i1 %.not690, label %.thread728, label %685

685:                                              ; preds = %673, %682
  br label %.thread728

.thread728:                                       ; preds = %682, %.thread724, %685, %673
  %.1610.shrunk = phi i1 [ true, %685 ], [ %or.cond13, %673 ], [ false, %.thread724 ], [ false, %682 ]
  %686 = call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not692 = icmp eq i32 %686, 0
  br i1 %.not692, label %.loopexit, label %687

687:                                              ; preds = %.thread728
  %688 = load i32, ptr %13, align 4, !tbaa !5
  %689 = icmp sgt i32 %688, 1
  br i1 %689, label %690, label %.loopexit

690:                                              ; preds = %687
  %691 = load i32, ptr %15, align 4, !tbaa !5
  %.not693.not852 = icmp sgt i32 %691, 1
  br i1 %.not693.not852, label %.lr.ph855.preheader, label %.loopexit

.lr.ph855.preheader:                              ; preds = %690
  %wide.trip.count926 = zext nneg i32 %691 to i64
  br label %.lr.ph855

.lr.ph855:                                        ; preds = %.lr.ph855.preheader, %._crit_edge849.thread
  %indvars.iv923 = phi i64 [ 1, %.lr.ph855.preheader ], [ %indvars.iv.next924, %._crit_edge849.thread ]
  %indvars.iv916 = phi i64 [ 2, %.lr.ph855.preheader ], [ %indvars.iv.next917, %._crit_edge849.thread ]
  %692 = getelementptr inbounds double, ptr %48, i64 %indvars.iv923
  %693 = load double, ptr %692, align 8, !tbaa !9
  %694 = load i32, ptr %15, align 4, !tbaa !5
  %indvars.iv.next924 = add nuw nsw i64 %indvars.iv923, 1
  %695 = sext i32 %694 to i64
  %.not696843.not = icmp slt i64 %indvars.iv923, %695
  br i1 %.not696843.not, label %.lr.ph848.preheader, label %._crit_edge849.thread

.lr.ph848.preheader:                              ; preds = %.lr.ph855
  %696 = add i32 %694, 1
  %wide.trip.count921 = zext i32 %696 to i64
  br label %.lr.ph848

.lr.ph848:                                        ; preds = %.lr.ph848.preheader, %.lr.ph848
  %indvars.iv918 = phi i64 [ %indvars.iv916, %.lr.ph848.preheader ], [ %indvars.iv.next919, %.lr.ph848 ]
  %.0846 = phi double [ %693, %.lr.ph848.preheader ], [ %.1, %.lr.ph848 ]
  %.0637845 = phi i32 [ 0, %.lr.ph848.preheader ], [ %.1638, %.lr.ph848 ]
  %697 = getelementptr inbounds double, ptr %48, i64 %indvars.iv918
  %698 = load double, ptr %697, align 8, !tbaa !9
  %699 = fcmp olt double %698, %.0846
  %700 = trunc nuw nsw i64 %indvars.iv918 to i32
  %.1638 = select i1 %699, i32 %700, i32 %.0637845
  %.1 = select i1 %699, double %698, double %.0846
  %indvars.iv.next919 = add nuw nsw i64 %indvars.iv918, 1
  %exitcond922.not = icmp eq i64 %indvars.iv.next919, %wide.trip.count921
  br i1 %exitcond922.not, label %._crit_edge849, label %.lr.ph848, !llvm.loop !29

._crit_edge849:                                   ; preds = %.lr.ph848
  %.not697 = icmp eq i32 %.1638, 0
  br i1 %.not697, label %._crit_edge849.thread, label %701

701:                                              ; preds = %._crit_edge849
  %702 = sext i32 %.1638 to i64
  %703 = getelementptr inbounds double, ptr %47, i64 %702
  %704 = load double, ptr %703, align 8, !tbaa !9
  %705 = getelementptr inbounds i32, ptr %46, i64 %702
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = getelementptr inbounds i32, ptr %45, i64 %702
  %708 = load i32, ptr %707, align 4, !tbaa !5
  %709 = getelementptr inbounds double, ptr %48, i64 %702
  store double %693, ptr %709, align 8, !tbaa !9
  %710 = getelementptr inbounds double, ptr %47, i64 %indvars.iv923
  %711 = load double, ptr %710, align 8, !tbaa !9
  store double %711, ptr %703, align 8, !tbaa !9
  %712 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv923
  %713 = load i32, ptr %712, align 4, !tbaa !5
  store i32 %713, ptr %705, align 4, !tbaa !5
  %714 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv923
  %715 = load i32, ptr %714, align 4, !tbaa !5
  store i32 %715, ptr %707, align 4, !tbaa !5
  store double %.1, ptr %692, align 8, !tbaa !9
  store double %704, ptr %710, align 8, !tbaa !9
  store i32 %706, ptr %712, align 4, !tbaa !5
  store i32 %708, ptr %714, align 4, !tbaa !5
  br label %._crit_edge849.thread

._crit_edge849.thread:                            ; preds = %.lr.ph855, %._crit_edge849, %701
  %indvars.iv.next917 = add nuw nsw i64 %indvars.iv916, 1
  %exitcond927.not = icmp eq i64 %indvars.iv.next924, %wide.trip.count926
  br i1 %exitcond927.not, label %.loopexit, label %.lr.ph855, !llvm.loop !30

.loopexit:                                        ; preds = %._crit_edge849.thread, %690, %687, %.thread728
  %.not694 = icmp ne i32 %.0611.lcssa, 0
  %spec.select715 = zext i1 %.not694 to i32
  store i32 %spec.select715, ptr %24, align 4, !tbaa !5
  br i1 %.1610.shrunk, label %716, label %.critedge.thread

716:                                              ; preds = %.loopexit
  %717 = select i1 %.not694, i32 3, i32 2
  store i32 %717, ptr %24, align 4, !tbaa !5
  br label %.critedge.thread

default.unreachable:                              ; preds = %105
  unreachable

.critedge.thread:                                 ; preds = %62, %72, %84, %89, %78, %68, %106, %110, %.loopexit, %716, %113, %116, %119, %90, %.critedge, %25, %403, %371, %243, %223
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  ret void
}

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

declare i32 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

declare i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #4

declare void @dlaebz_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #5

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12, !15, !16}
!15 = !{!"llvm.loop.isvectorized", i32 1}
!16 = !{!"llvm.loop.unroll.runtime.disable"}
!17 = distinct !{!17, !12, !15}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12, !15, !16}
!23 = distinct !{!23, !12, !15}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass