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

; 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
@c__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b27 = external hidden global double, align 8
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b38 = external hidden global double, align 8
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @dgegv_(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) #0 {
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %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 i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca i32, align 4
  %53 = alloca double, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca [1 x i8], align 1
  %79 = alloca [1 x i32], align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca double, align 8
  %85 = alloca 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 i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca double, align 8
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  store ptr %0, ptr %18, align 8, !tbaa !5
  store ptr %1, ptr %19, align 8, !tbaa !5
  store ptr %2, ptr %20, align 8, !tbaa !5
  store ptr %3, ptr %21, align 8, !tbaa !5
  store ptr %4, ptr %22, align 8, !tbaa !5
  store ptr %5, ptr %23, align 8, !tbaa !5
  store ptr %6, ptr %24, align 8, !tbaa !5
  store ptr %7, ptr %25, align 8, !tbaa !5
  store ptr %8, ptr %26, align 8, !tbaa !5
  store ptr %9, ptr %27, align 8, !tbaa !5
  store ptr %10, ptr %28, align 8, !tbaa !5
  store ptr %11, ptr %29, align 8, !tbaa !5
  store ptr %12, ptr %30, align 8, !tbaa !5
  store ptr %13, ptr %31, align 8, !tbaa !5
  store ptr %14, ptr %32, align 8, !tbaa !5
  store ptr %15, ptr %33, align 8, !tbaa !5
  store ptr %16, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #4
  %96 = load ptr, ptr %22, align 8, !tbaa !5
  %97 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %97, ptr %35, align 4, !tbaa !9
  %98 = load i32, ptr %35, align 4, !tbaa !9
  %99 = mul nsw i32 %98, 1
  %100 = add nsw i32 1, %99
  store i32 %100, ptr %36, align 4, !tbaa !9
  %101 = load i32, ptr %36, align 4, !tbaa !9
  %102 = load ptr, ptr %21, align 8, !tbaa !5
  %103 = sext i32 %101 to i64
  %104 = sub i64 0, %103
  %105 = getelementptr inbounds double, ptr %102, i64 %104
  store ptr %105, ptr %21, align 8, !tbaa !5
  %106 = load ptr, ptr %24, align 8, !tbaa !5
  %107 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %107, ptr %37, align 4, !tbaa !9
  %108 = load i32, ptr %37, align 4, !tbaa !9
  %109 = mul nsw i32 %108, 1
  %110 = add nsw i32 1, %109
  store i32 %110, ptr %38, align 4, !tbaa !9
  %111 = load i32, ptr %38, align 4, !tbaa !9
  %112 = load ptr, ptr %23, align 8, !tbaa !5
  %113 = sext i32 %111 to i64
  %114 = sub i64 0, %113
  %115 = getelementptr inbounds double, ptr %112, i64 %114
  store ptr %115, ptr %23, align 8, !tbaa !5
  %116 = load ptr, ptr %25, align 8, !tbaa !5
  %117 = getelementptr inbounds double, ptr %116, i32 -1
  store ptr %117, ptr %25, align 8, !tbaa !5
  %118 = load ptr, ptr %26, align 8, !tbaa !5
  %119 = getelementptr inbounds double, ptr %118, i32 -1
  store ptr %119, ptr %26, align 8, !tbaa !5
  %120 = load ptr, ptr %27, align 8, !tbaa !5
  %121 = getelementptr inbounds double, ptr %120, i32 -1
  store ptr %121, ptr %27, align 8, !tbaa !5
  %122 = load ptr, ptr %29, align 8, !tbaa !5
  %123 = load i32, ptr %122, align 4, !tbaa !9
  store i32 %123, ptr %39, align 4, !tbaa !9
  %124 = load i32, ptr %39, align 4, !tbaa !9
  %125 = mul nsw i32 %124, 1
  %126 = add nsw i32 1, %125
  store i32 %126, ptr %40, align 4, !tbaa !9
  %127 = load i32, ptr %40, align 4, !tbaa !9
  %128 = load ptr, ptr %28, align 8, !tbaa !5
  %129 = sext i32 %127 to i64
  %130 = sub i64 0, %129
  %131 = getelementptr inbounds double, ptr %128, i64 %130
  store ptr %131, ptr %28, align 8, !tbaa !5
  %132 = load ptr, ptr %31, align 8, !tbaa !5
  %133 = load i32, ptr %132, align 4, !tbaa !9
  store i32 %133, ptr %41, align 4, !tbaa !9
  %134 = load i32, ptr %41, align 4, !tbaa !9
  %135 = mul nsw i32 %134, 1
  %136 = add nsw i32 1, %135
  store i32 %136, ptr %42, align 4, !tbaa !9
  %137 = load i32, ptr %42, align 4, !tbaa !9
  %138 = load ptr, ptr %30, align 8, !tbaa !5
  %139 = sext i32 %137 to i64
  %140 = sub i64 0, %139
  %141 = getelementptr inbounds double, ptr %138, i64 %140
  store ptr %141, ptr %30, align 8, !tbaa !5
  %142 = load ptr, ptr %32, align 8, !tbaa !5
  %143 = getelementptr inbounds double, ptr %142, i32 -1
  store ptr %143, ptr %32, align 8, !tbaa !5
  %144 = load ptr, ptr %18, align 8, !tbaa !5
  %145 = call i32 @lsame_(ptr noundef %144, ptr noundef @.str)
  %146 = icmp ne i32 %145, 0
  br i1 %146, label %147, label %148

147:                                              ; preds = %17
  store i32 1, ptr %80, align 4, !tbaa !9
  store i32 0, ptr %54, align 4, !tbaa !9
  br label %155

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

152:                                              ; preds = %148
  store i32 2, ptr %80, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %154

153:                                              ; preds = %148
  store i32 -1, ptr %80, align 4, !tbaa !9
  store i32 0, ptr %54, align 4, !tbaa !9
  br label %154

154:                                              ; preds = %153, %152
  br label %155

155:                                              ; preds = %154, %147
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = call i32 @lsame_(ptr noundef %156, ptr noundef @.str)
  %158 = icmp ne i32 %157, 0
  br i1 %158, label %159, label %160

159:                                              ; preds = %155
  store i32 1, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %55, align 4, !tbaa !9
  br label %167

160:                                              ; preds = %155
  %161 = load ptr, ptr %19, align 8, !tbaa !5
  %162 = call i32 @lsame_(ptr noundef %161, ptr noundef @.str.1)
  %163 = icmp ne i32 %162, 0
  br i1 %163, label %164, label %165

164:                                              ; preds = %160
  store i32 2, ptr %83, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %166

165:                                              ; preds = %160
  store i32 -1, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %55, align 4, !tbaa !9
  br label %166

166:                                              ; preds = %165, %164
  br label %167

167:                                              ; preds = %166, %159
  %168 = load i32, ptr %54, align 4, !tbaa !9
  %169 = icmp ne i32 %168, 0
  br i1 %169, label %173, label %170

170:                                              ; preds = %167
  %171 = load i32, ptr %55, align 4, !tbaa !9
  %172 = icmp ne i32 %171, 0
  br label %173

173:                                              ; preds = %170, %167
  %174 = phi i1 [ true, %167 ], [ %172, %170 ]
  %175 = zext i1 %174 to i32
  store i32 %175, ptr %94, align 4, !tbaa !9
  %176 = load ptr, ptr %20, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = shl i32 %177, 3
  store i32 %178, ptr %43, align 4, !tbaa !9
  %179 = load i32, ptr %43, align 4, !tbaa !9
  %180 = icmp sge i32 %179, 1
  br i1 %180, label %181, label %183

181:                                              ; preds = %173
  %182 = load i32, ptr %43, align 4, !tbaa !9
  br label %184

183:                                              ; preds = %173
  br label %184

184:                                              ; preds = %183, %181
  %185 = phi i32 [ %182, %181 ], [ 1, %183 ]
  store i32 %185, ptr %85, align 4, !tbaa !9
  %186 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %186, ptr %89, align 4, !tbaa !9
  %187 = load i32, ptr %89, align 4, !tbaa !9
  %188 = sitofp i32 %187 to double
  %189 = load ptr, ptr %32, align 8, !tbaa !5
  %190 = getelementptr inbounds double, ptr %189, i64 1
  store double %188, ptr %190, align 8, !tbaa !11
  %191 = load ptr, ptr %33, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  %193 = icmp eq i32 %192, -1
  %194 = zext i1 %193 to i32
  store i32 %194, ptr %90, align 4, !tbaa !9
  %195 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %195, align 4, !tbaa !9
  %196 = load i32, ptr %80, align 4, !tbaa !9
  %197 = icmp sle i32 %196, 0
  br i1 %197, label %198, label %200

198:                                              ; preds = %184
  %199 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %199, align 4, !tbaa !9
  br label %288

200:                                              ; preds = %184
  %201 = load i32, ptr %83, align 4, !tbaa !9
  %202 = icmp sle i32 %201, 0
  br i1 %202, label %203, label %205

203:                                              ; preds = %200
  %204 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %204, align 4, !tbaa !9
  br label %287

205:                                              ; preds = %200
  %206 = load ptr, ptr %20, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = icmp slt i32 %207, 0
  br i1 %208, label %209, label %211

209:                                              ; preds = %205
  %210 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %210, align 4, !tbaa !9
  br label %286

211:                                              ; preds = %205
  %212 = load ptr, ptr %22, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = load ptr, ptr %20, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = icmp sge i32 1, %215
  br i1 %216, label %217, label %218

217:                                              ; preds = %211
  br label %221

218:                                              ; preds = %211
  %219 = load ptr, ptr %20, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  br label %221

221:                                              ; preds = %218, %217
  %222 = phi i32 [ 1, %217 ], [ %220, %218 ]
  %223 = icmp slt i32 %213, %222
  br i1 %223, label %224, label %226

224:                                              ; preds = %221
  %225 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %225, align 4, !tbaa !9
  br label %285

226:                                              ; preds = %221
  %227 = load ptr, ptr %24, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = load ptr, ptr %20, align 8, !tbaa !5
  %230 = load i32, ptr %229, align 4, !tbaa !9
  %231 = icmp sge i32 1, %230
  br i1 %231, label %232, label %233

232:                                              ; preds = %226
  br label %236

233:                                              ; preds = %226
  %234 = load ptr, ptr %20, align 8, !tbaa !5
  %235 = load i32, ptr %234, align 4, !tbaa !9
  br label %236

236:                                              ; preds = %233, %232
  %237 = phi i32 [ 1, %232 ], [ %235, %233 ]
  %238 = icmp slt i32 %228, %237
  br i1 %238, label %239, label %241

239:                                              ; preds = %236
  %240 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -7, ptr %240, align 4, !tbaa !9
  br label %284

241:                                              ; preds = %236
  %242 = load ptr, ptr %29, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = icmp slt i32 %243, 1
  br i1 %244, label %254, label %245

245:                                              ; preds = %241
  %246 = load i32, ptr %54, align 4, !tbaa !9
  %247 = icmp ne i32 %246, 0
  br i1 %247, label %248, label %256

248:                                              ; preds = %245
  %249 = load ptr, ptr %29, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  %251 = load ptr, ptr %20, align 8, !tbaa !5
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = icmp slt i32 %250, %252
  br i1 %253, label %254, label %256

254:                                              ; preds = %248, %241
  %255 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -12, ptr %255, align 4, !tbaa !9
  br label %283

256:                                              ; preds = %248, %245
  %257 = load ptr, ptr %31, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = icmp slt i32 %258, 1
  br i1 %259, label %269, label %260

260:                                              ; preds = %256
  %261 = load i32, ptr %55, align 4, !tbaa !9
  %262 = icmp ne i32 %261, 0
  br i1 %262, label %263, label %271

263:                                              ; preds = %260
  %264 = load ptr, ptr %31, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  %266 = load ptr, ptr %20, align 8, !tbaa !5
  %267 = load i32, ptr %266, align 4, !tbaa !9
  %268 = icmp slt i32 %265, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %263, %256
  %270 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -14, ptr %270, align 4, !tbaa !9
  br label %282

271:                                              ; preds = %263, %260
  %272 = load ptr, ptr %33, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = load i32, ptr %85, align 4, !tbaa !9
  %275 = icmp slt i32 %273, %274
  br i1 %275, label %276, label %281

276:                                              ; preds = %271
  %277 = load i32, ptr %90, align 4, !tbaa !9
  %278 = icmp ne i32 %277, 0
  br i1 %278, label %281, label %279

279:                                              ; preds = %276
  %280 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -16, ptr %280, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %279, %276, %271
  br label %282

282:                                              ; preds = %281, %269
  br label %283

283:                                              ; preds = %282, %254
  br label %284

284:                                              ; preds = %283, %239
  br label %285

285:                                              ; preds = %284, %224
  br label %286

286:                                              ; preds = %285, %209
  br label %287

287:                                              ; preds = %286, %203
  br label %288

288:                                              ; preds = %287, %198
  %289 = load ptr, ptr %34, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = icmp eq i32 %290, 0
  br i1 %291, label %292, label %347

292:                                              ; preds = %288
  %293 = load ptr, ptr %20, align 8, !tbaa !5
  %294 = load ptr, ptr %20, align 8, !tbaa !5
  %295 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %293, ptr noundef %294, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %295, ptr %86, align 4, !tbaa !9
  %296 = load ptr, ptr %20, align 8, !tbaa !5
  %297 = load ptr, ptr %20, align 8, !tbaa !5
  %298 = load ptr, ptr %20, align 8, !tbaa !5
  %299 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %296, ptr noundef %297, ptr noundef %298, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %299, ptr %87, align 4, !tbaa !9
  %300 = load ptr, ptr %20, align 8, !tbaa !5
  %301 = load ptr, ptr %20, align 8, !tbaa !5
  %302 = load ptr, ptr %20, align 8, !tbaa !5
  %303 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.3, ptr noundef %300, ptr noundef %301, ptr noundef %302, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %303, ptr %88, align 4, !tbaa !9
  %304 = load i32, ptr %86, align 4, !tbaa !9
  %305 = load i32, ptr %87, align 4, !tbaa !9
  %306 = icmp sge i32 %304, %305
  br i1 %306, label %307, label %309

307:                                              ; preds = %292
  %308 = load i32, ptr %86, align 4, !tbaa !9
  br label %311

309:                                              ; preds = %292
  %310 = load i32, ptr %87, align 4, !tbaa !9
  br label %311

311:                                              ; preds = %309, %307
  %312 = phi i32 [ %308, %307 ], [ %310, %309 ]
  store i32 %312, ptr %43, align 4, !tbaa !9
  %313 = load i32, ptr %43, align 4, !tbaa !9
  %314 = load i32, ptr %88, align 4, !tbaa !9
  %315 = icmp sge i32 %313, %314
  br i1 %315, label %316, label %318

316:                                              ; preds = %311
  %317 = load i32, ptr %43, align 4, !tbaa !9
  br label %320

318:                                              ; preds = %311
  %319 = load i32, ptr %88, align 4, !tbaa !9
  br label %320

320:                                              ; preds = %318, %316
  %321 = phi i32 [ %317, %316 ], [ %319, %318 ]
  store i32 %321, ptr %71, align 4, !tbaa !9
  %322 = load ptr, ptr %20, align 8, !tbaa !5
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = mul nsw i32 %323, 6
  store i32 %324, ptr %43, align 4, !tbaa !9
  %325 = load ptr, ptr %20, align 8, !tbaa !5
  %326 = load i32, ptr %325, align 4, !tbaa !9
  %327 = load i32, ptr %71, align 4, !tbaa !9
  %328 = add nsw i32 %327, 1
  %329 = mul nsw i32 %326, %328
  store i32 %329, ptr %44, align 4, !tbaa !9
  %330 = load ptr, ptr %20, align 8, !tbaa !5
  %331 = load i32, ptr %330, align 4, !tbaa !9
  %332 = shl i32 %331, 1
  %333 = load i32, ptr %43, align 4, !tbaa !9
  %334 = load i32, ptr %44, align 4, !tbaa !9
  %335 = icmp sge i32 %333, %334
  br i1 %335, label %336, label %338

336:                                              ; preds = %320
  %337 = load i32, ptr %43, align 4, !tbaa !9
  br label %340

338:                                              ; preds = %320
  %339 = load i32, ptr %44, align 4, !tbaa !9
  br label %340

340:                                              ; preds = %338, %336
  %341 = phi i32 [ %337, %336 ], [ %339, %338 ]
  %342 = add nsw i32 %332, %341
  store i32 %342, ptr %56, align 4, !tbaa !9
  %343 = load i32, ptr %56, align 4, !tbaa !9
  %344 = sitofp i32 %343 to double
  %345 = load ptr, ptr %32, align 8, !tbaa !5
  %346 = getelementptr inbounds double, ptr %345, i64 1
  store double %344, ptr %346, align 8, !tbaa !11
  br label %347

347:                                              ; preds = %340, %288
  %348 = load ptr, ptr %34, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = icmp ne i32 %349, 0
  br i1 %350, label %351, label %356

351:                                              ; preds = %347
  %352 = load ptr, ptr %34, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  %354 = sub nsw i32 0, %353
  store i32 %354, ptr %43, align 4, !tbaa !9
  %355 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %43, i32 noundef 6)
  store i32 1, ptr %95, align 4
  br label %1849

356:                                              ; preds = %347
  %357 = load i32, ptr %90, align 4, !tbaa !9
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %359, label %360

359:                                              ; preds = %356
  store i32 1, ptr %95, align 4
  br label %1849

360:                                              ; preds = %356
  br label %361

361:                                              ; preds = %360
  %362 = load ptr, ptr %20, align 8, !tbaa !5
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %366

365:                                              ; preds = %361
  store i32 1, ptr %95, align 4
  br label %1849

366:                                              ; preds = %361
  %367 = call double @dlamch_(ptr noundef @.str.7)
  %368 = call double @dlamch_(ptr noundef @.str.8)
  %369 = fmul double %367, %368
  store double %369, ptr %93, align 8, !tbaa !11
  %370 = call double @dlamch_(ptr noundef @.str.9)
  store double %370, ptr %76, align 8, !tbaa !11
  %371 = load double, ptr %76, align 8, !tbaa !11
  %372 = load double, ptr %76, align 8, !tbaa !11
  %373 = fadd double %372, %371
  store double %373, ptr %76, align 8, !tbaa !11
  %374 = load double, ptr %76, align 8, !tbaa !11
  %375 = fdiv double 1.000000e+00, %374
  store double %375, ptr %77, align 8, !tbaa !11
  %376 = load double, ptr %93, align 8, !tbaa !11
  %377 = call double @llvm.fmuladd.f64(double %376, double 4.000000e+00, double 1.000000e+00)
  store double %377, ptr %84, align 8, !tbaa !11
  %378 = load ptr, ptr %20, align 8, !tbaa !5
  %379 = load ptr, ptr %20, align 8, !tbaa !5
  %380 = load ptr, ptr %21, align 8, !tbaa !5
  %381 = load i32, ptr %36, align 4, !tbaa !9
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds double, ptr %380, i64 %382
  %384 = load ptr, ptr %22, align 8, !tbaa !5
  %385 = load ptr, ptr %32, align 8, !tbaa !5
  %386 = getelementptr inbounds double, ptr %385, i64 1
  %387 = call double @dlange_(ptr noundef @.str.10, ptr noundef %378, ptr noundef %379, ptr noundef %383, ptr noundef %384, ptr noundef %386)
  store double %387, ptr %50, align 8, !tbaa !11
  %388 = load double, ptr %50, align 8, !tbaa !11
  store double %388, ptr %57, align 8, !tbaa !11
  store double 1.000000e+00, ptr %58, align 8, !tbaa !11
  %389 = load double, ptr %50, align 8, !tbaa !11
  %390 = fcmp olt double %389, 1.000000e+00
  br i1 %390, label %391, label %402

391:                                              ; preds = %366
  %392 = load double, ptr %77, align 8, !tbaa !11
  %393 = load double, ptr %50, align 8, !tbaa !11
  %394 = fmul double %392, %393
  %395 = fcmp olt double %394, 1.000000e+00
  br i1 %395, label %396, label %401

396:                                              ; preds = %391
  %397 = load double, ptr %76, align 8, !tbaa !11
  store double %397, ptr %57, align 8, !tbaa !11
  %398 = load double, ptr %77, align 8, !tbaa !11
  %399 = load double, ptr %50, align 8, !tbaa !11
  %400 = fmul double %398, %399
  store double %400, ptr %58, align 8, !tbaa !11
  br label %401

401:                                              ; preds = %396, %391
  br label %402

402:                                              ; preds = %401, %366
  %403 = load double, ptr %50, align 8, !tbaa !11
  %404 = fcmp ogt double %403, 0.000000e+00
  br i1 %404, label %405, label %421

405:                                              ; preds = %402
  %406 = load ptr, ptr %20, align 8, !tbaa !5
  %407 = load ptr, ptr %20, align 8, !tbaa !5
  %408 = load ptr, ptr %21, align 8, !tbaa !5
  %409 = load i32, ptr %36, align 4, !tbaa !9
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds double, ptr %408, i64 %410
  %412 = load ptr, ptr %22, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %50, ptr noundef @c_b27, ptr noundef %406, ptr noundef %407, ptr noundef %411, ptr noundef %412, ptr noundef %66)
  %413 = load i32, ptr %66, align 4, !tbaa !9
  %414 = icmp ne i32 %413, 0
  br i1 %414, label %415, label %420

415:                                              ; preds = %405
  %416 = load ptr, ptr %20, align 8, !tbaa !5
  %417 = load i32, ptr %416, align 4, !tbaa !9
  %418 = add nsw i32 %417, 10
  %419 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %418, ptr %419, align 4, !tbaa !9
  store i32 1, ptr %95, align 4
  br label %1849

420:                                              ; preds = %405
  br label %421

421:                                              ; preds = %420, %402
  %422 = load ptr, ptr %20, align 8, !tbaa !5
  %423 = load ptr, ptr %20, align 8, !tbaa !5
  %424 = load ptr, ptr %23, align 8, !tbaa !5
  %425 = load i32, ptr %38, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds double, ptr %424, i64 %426
  %428 = load ptr, ptr %24, align 8, !tbaa !5
  %429 = load ptr, ptr %32, align 8, !tbaa !5
  %430 = getelementptr inbounds double, ptr %429, i64 1
  %431 = call double @dlange_(ptr noundef @.str.10, ptr noundef %422, ptr noundef %423, ptr noundef %427, ptr noundef %428, ptr noundef %430)
  store double %431, ptr %51, align 8, !tbaa !11
  %432 = load double, ptr %51, align 8, !tbaa !11
  store double %432, ptr %59, align 8, !tbaa !11
  store double 1.000000e+00, ptr %60, align 8, !tbaa !11
  %433 = load double, ptr %51, align 8, !tbaa !11
  %434 = fcmp olt double %433, 1.000000e+00
  br i1 %434, label %435, label %446

435:                                              ; preds = %421
  %436 = load double, ptr %77, align 8, !tbaa !11
  %437 = load double, ptr %51, align 8, !tbaa !11
  %438 = fmul double %436, %437
  %439 = fcmp olt double %438, 1.000000e+00
  br i1 %439, label %440, label %445

440:                                              ; preds = %435
  %441 = load double, ptr %76, align 8, !tbaa !11
  store double %441, ptr %59, align 8, !tbaa !11
  %442 = load double, ptr %77, align 8, !tbaa !11
  %443 = load double, ptr %51, align 8, !tbaa !11
  %444 = fmul double %442, %443
  store double %444, ptr %60, align 8, !tbaa !11
  br label %445

445:                                              ; preds = %440, %435
  br label %446

446:                                              ; preds = %445, %421
  %447 = load double, ptr %51, align 8, !tbaa !11
  %448 = fcmp ogt double %447, 0.000000e+00
  br i1 %448, label %449, label %465

449:                                              ; preds = %446
  %450 = load ptr, ptr %20, align 8, !tbaa !5
  %451 = load ptr, ptr %20, align 8, !tbaa !5
  %452 = load ptr, ptr %23, align 8, !tbaa !5
  %453 = load i32, ptr %38, align 4, !tbaa !9
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds double, ptr %452, i64 %454
  %456 = load ptr, ptr %24, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %51, ptr noundef @c_b27, ptr noundef %450, ptr noundef %451, ptr noundef %455, ptr noundef %456, ptr noundef %66)
  %457 = load i32, ptr %66, align 4, !tbaa !9
  %458 = icmp ne i32 %457, 0
  br i1 %458, label %459, label %464

459:                                              ; preds = %449
  %460 = load ptr, ptr %20, align 8, !tbaa !5
  %461 = load i32, ptr %460, align 4, !tbaa !9
  %462 = add nsw i32 %461, 10
  %463 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %462, ptr %463, align 4, !tbaa !9
  store i32 1, ptr %95, align 4
  br label %1849

464:                                              ; preds = %449
  br label %465

465:                                              ; preds = %464, %446
  store i32 1, ptr %65, align 4, !tbaa !9
  %466 = load ptr, ptr %20, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr %81, align 4, !tbaa !9
  %469 = load i32, ptr %81, align 4, !tbaa !9
  %470 = load ptr, ptr %20, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = add nsw i32 %469, %471
  store i32 %472, ptr %68, align 4, !tbaa !9
  %473 = load ptr, ptr %20, align 8, !tbaa !5
  %474 = load ptr, ptr %21, align 8, !tbaa !5
  %475 = load i32, ptr %36, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds double, ptr %474, i64 %476
  %478 = load ptr, ptr %22, align 8, !tbaa !5
  %479 = load ptr, ptr %23, align 8, !tbaa !5
  %480 = load i32, ptr %38, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds double, ptr %479, i64 %481
  %483 = load ptr, ptr %24, align 8, !tbaa !5
  %484 = load ptr, ptr %32, align 8, !tbaa !5
  %485 = load i32, ptr %65, align 4, !tbaa !9
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds double, ptr %484, i64 %486
  %488 = load ptr, ptr %32, align 8, !tbaa !5
  %489 = load i32, ptr %81, align 4, !tbaa !9
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds double, ptr %488, i64 %490
  %492 = load ptr, ptr %32, align 8, !tbaa !5
  %493 = load i32, ptr %68, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds double, ptr %492, i64 %494
  call void @dggbal_(ptr noundef @.str.12, ptr noundef %473, ptr noundef %477, ptr noundef %478, ptr noundef %482, ptr noundef %483, ptr noundef %92, ptr noundef %91, ptr noundef %487, ptr noundef %491, ptr noundef %495, ptr noundef %66)
  %496 = load i32, ptr %66, align 4, !tbaa !9
  %497 = icmp ne i32 %496, 0
  br i1 %497, label %498, label %503

498:                                              ; preds = %465
  %499 = load ptr, ptr %20, align 8, !tbaa !5
  %500 = load i32, ptr %499, align 4, !tbaa !9
  %501 = add nsw i32 %500, 1
  %502 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %501, ptr %502, align 4, !tbaa !9
  br label %1844

503:                                              ; preds = %465
  %504 = load i32, ptr %91, align 4, !tbaa !9
  %505 = add nsw i32 %504, 1
  %506 = load i32, ptr %92, align 4, !tbaa !9
  %507 = sub nsw i32 %505, %506
  store i32 %507, ptr %69, align 4, !tbaa !9
  %508 = load i32, ptr %94, align 4, !tbaa !9
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %510, label %516

510:                                              ; preds = %503
  %511 = load ptr, ptr %20, align 8, !tbaa !5
  %512 = load i32, ptr %511, align 4, !tbaa !9
  %513 = add nsw i32 %512, 1
  %514 = load i32, ptr %92, align 4, !tbaa !9
  %515 = sub nsw i32 %513, %514
  store i32 %515, ptr %67, align 4, !tbaa !9
  br label %518

516:                                              ; preds = %503
  %517 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %517, ptr %67, align 4, !tbaa !9
  br label %518

518:                                              ; preds = %516, %510
  %519 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %519, ptr %52, align 4, !tbaa !9
  %520 = load i32, ptr %52, align 4, !tbaa !9
  %521 = load i32, ptr %69, align 4, !tbaa !9
  %522 = add nsw i32 %520, %521
  store i32 %522, ptr %68, align 4, !tbaa !9
  %523 = load ptr, ptr %33, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !9
  %525 = add nsw i32 %524, 1
  %526 = load i32, ptr %68, align 4, !tbaa !9
  %527 = sub nsw i32 %525, %526
  store i32 %527, ptr %43, align 4, !tbaa !9
  %528 = load ptr, ptr %23, align 8, !tbaa !5
  %529 = load i32, ptr %92, align 4, !tbaa !9
  %530 = load i32, ptr %92, align 4, !tbaa !9
  %531 = load i32, ptr %37, align 4, !tbaa !9
  %532 = mul nsw i32 %530, %531
  %533 = add nsw i32 %529, %532
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds double, ptr %528, i64 %534
  %536 = load ptr, ptr %24, align 8, !tbaa !5
  %537 = load ptr, ptr %32, align 8, !tbaa !5
  %538 = load i32, ptr %52, align 4, !tbaa !9
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds double, ptr %537, i64 %539
  %541 = load ptr, ptr %32, align 8, !tbaa !5
  %542 = load i32, ptr %68, align 4, !tbaa !9
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds double, ptr %541, i64 %543
  call void @dgeqrf_(ptr noundef %69, ptr noundef %67, ptr noundef %535, ptr noundef %536, ptr noundef %540, ptr noundef %544, ptr noundef %43, ptr noundef %66)
  %545 = load i32, ptr %66, align 4, !tbaa !9
  %546 = icmp sge i32 %545, 0
  br i1 %546, label %547, label %567

547:                                              ; preds = %518
  %548 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %548, ptr %43, align 4, !tbaa !9
  %549 = load ptr, ptr %32, align 8, !tbaa !5
  %550 = load i32, ptr %68, align 4, !tbaa !9
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds double, ptr %549, i64 %551
  %553 = load double, ptr %552, align 8, !tbaa !11
  %554 = fptosi double %553 to i32
  %555 = load i32, ptr %68, align 4, !tbaa !9
  %556 = add nsw i32 %554, %555
  %557 = sub nsw i32 %556, 1
  store i32 %557, ptr %44, align 4, !tbaa !9
  %558 = load i32, ptr %43, align 4, !tbaa !9
  %559 = load i32, ptr %44, align 4, !tbaa !9
  %560 = icmp sge i32 %558, %559
  br i1 %560, label %561, label %563

561:                                              ; preds = %547
  %562 = load i32, ptr %43, align 4, !tbaa !9
  br label %565

563:                                              ; preds = %547
  %564 = load i32, ptr %44, align 4, !tbaa !9
  br label %565

565:                                              ; preds = %563, %561
  %566 = phi i32 [ %562, %561 ], [ %564, %563 ]
  store i32 %566, ptr %89, align 4, !tbaa !9
  br label %567

567:                                              ; preds = %565, %518
  %568 = load i32, ptr %66, align 4, !tbaa !9
  %569 = icmp ne i32 %568, 0
  br i1 %569, label %570, label %575

570:                                              ; preds = %567
  %571 = load ptr, ptr %20, align 8, !tbaa !5
  %572 = load i32, ptr %571, align 4, !tbaa !9
  %573 = add nsw i32 %572, 2
  %574 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %573, ptr %574, align 4, !tbaa !9
  br label %1844

575:                                              ; preds = %567
  %576 = load ptr, ptr %33, align 8, !tbaa !5
  %577 = load i32, ptr %576, align 4, !tbaa !9
  %578 = add nsw i32 %577, 1
  %579 = load i32, ptr %68, align 4, !tbaa !9
  %580 = sub nsw i32 %578, %579
  store i32 %580, ptr %43, align 4, !tbaa !9
  %581 = load ptr, ptr %23, align 8, !tbaa !5
  %582 = load i32, ptr %92, align 4, !tbaa !9
  %583 = load i32, ptr %92, align 4, !tbaa !9
  %584 = load i32, ptr %37, align 4, !tbaa !9
  %585 = mul nsw i32 %583, %584
  %586 = add nsw i32 %582, %585
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds double, ptr %581, i64 %587
  %589 = load ptr, ptr %24, align 8, !tbaa !5
  %590 = load ptr, ptr %32, align 8, !tbaa !5
  %591 = load i32, ptr %52, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds double, ptr %590, i64 %592
  %594 = load ptr, ptr %21, align 8, !tbaa !5
  %595 = load i32, ptr %92, align 4, !tbaa !9
  %596 = load i32, ptr %92, align 4, !tbaa !9
  %597 = load i32, ptr %35, align 4, !tbaa !9
  %598 = mul nsw i32 %596, %597
  %599 = add nsw i32 %595, %598
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds double, ptr %594, i64 %600
  %602 = load ptr, ptr %22, align 8, !tbaa !5
  %603 = load ptr, ptr %32, align 8, !tbaa !5
  %604 = load i32, ptr %68, align 4, !tbaa !9
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds double, ptr %603, i64 %605
  call void @dormqr_(ptr noundef @.str.13, ptr noundef @.str.14, ptr noundef %69, ptr noundef %67, ptr noundef %69, ptr noundef %588, ptr noundef %589, ptr noundef %593, ptr noundef %601, ptr noundef %602, ptr noundef %606, ptr noundef %43, ptr noundef %66)
  %607 = load i32, ptr %66, align 4, !tbaa !9
  %608 = icmp sge i32 %607, 0
  br i1 %608, label %609, label %629

609:                                              ; preds = %575
  %610 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %610, ptr %43, align 4, !tbaa !9
  %611 = load ptr, ptr %32, align 8, !tbaa !5
  %612 = load i32, ptr %68, align 4, !tbaa !9
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds double, ptr %611, i64 %613
  %615 = load double, ptr %614, align 8, !tbaa !11
  %616 = fptosi double %615 to i32
  %617 = load i32, ptr %68, align 4, !tbaa !9
  %618 = add nsw i32 %616, %617
  %619 = sub nsw i32 %618, 1
  store i32 %619, ptr %44, align 4, !tbaa !9
  %620 = load i32, ptr %43, align 4, !tbaa !9
  %621 = load i32, ptr %44, align 4, !tbaa !9
  %622 = icmp sge i32 %620, %621
  br i1 %622, label %623, label %625

623:                                              ; preds = %609
  %624 = load i32, ptr %43, align 4, !tbaa !9
  br label %627

625:                                              ; preds = %609
  %626 = load i32, ptr %44, align 4, !tbaa !9
  br label %627

627:                                              ; preds = %625, %623
  %628 = phi i32 [ %624, %623 ], [ %626, %625 ]
  store i32 %628, ptr %89, align 4, !tbaa !9
  br label %629

629:                                              ; preds = %627, %575
  %630 = load i32, ptr %66, align 4, !tbaa !9
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %637

632:                                              ; preds = %629
  %633 = load ptr, ptr %20, align 8, !tbaa !5
  %634 = load i32, ptr %633, align 4, !tbaa !9
  %635 = add nsw i32 %634, 3
  %636 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %635, ptr %636, align 4, !tbaa !9
  br label %1844

637:                                              ; preds = %629
  %638 = load i32, ptr %54, align 4, !tbaa !9
  %639 = icmp ne i32 %638, 0
  br i1 %639, label %640, label %725

640:                                              ; preds = %637
  %641 = load ptr, ptr %20, align 8, !tbaa !5
  %642 = load ptr, ptr %20, align 8, !tbaa !5
  %643 = load ptr, ptr %28, align 8, !tbaa !5
  %644 = load i32, ptr %40, align 4, !tbaa !9
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds double, ptr %643, i64 %645
  %647 = load ptr, ptr %29, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.15, ptr noundef %641, ptr noundef %642, ptr noundef @c_b38, ptr noundef @c_b27, ptr noundef %646, ptr noundef %647)
  %648 = load i32, ptr %69, align 4, !tbaa !9
  %649 = sub nsw i32 %648, 1
  store i32 %649, ptr %43, align 4, !tbaa !9
  %650 = load i32, ptr %69, align 4, !tbaa !9
  %651 = sub nsw i32 %650, 1
  store i32 %651, ptr %44, align 4, !tbaa !9
  %652 = load ptr, ptr %23, align 8, !tbaa !5
  %653 = load i32, ptr %92, align 4, !tbaa !9
  %654 = add nsw i32 %653, 1
  %655 = load i32, ptr %92, align 4, !tbaa !9
  %656 = load i32, ptr %37, align 4, !tbaa !9
  %657 = mul nsw i32 %655, %656
  %658 = add nsw i32 %654, %657
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds double, ptr %652, i64 %659
  %661 = load ptr, ptr %24, align 8, !tbaa !5
  %662 = load ptr, ptr %28, align 8, !tbaa !5
  %663 = load i32, ptr %92, align 4, !tbaa !9
  %664 = add nsw i32 %663, 1
  %665 = load i32, ptr %92, align 4, !tbaa !9
  %666 = load i32, ptr %39, align 4, !tbaa !9
  %667 = mul nsw i32 %665, %666
  %668 = add nsw i32 %664, %667
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds double, ptr %662, i64 %669
  %671 = load ptr, ptr %29, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.13, ptr noundef %43, ptr noundef %44, ptr noundef %660, ptr noundef %661, ptr noundef %670, ptr noundef %671)
  %672 = load ptr, ptr %33, align 8, !tbaa !5
  %673 = load i32, ptr %672, align 4, !tbaa !9
  %674 = add nsw i32 %673, 1
  %675 = load i32, ptr %68, align 4, !tbaa !9
  %676 = sub nsw i32 %674, %675
  store i32 %676, ptr %43, align 4, !tbaa !9
  %677 = load ptr, ptr %28, align 8, !tbaa !5
  %678 = load i32, ptr %92, align 4, !tbaa !9
  %679 = load i32, ptr %92, align 4, !tbaa !9
  %680 = load i32, ptr %39, align 4, !tbaa !9
  %681 = mul nsw i32 %679, %680
  %682 = add nsw i32 %678, %681
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds double, ptr %677, i64 %683
  %685 = load ptr, ptr %29, align 8, !tbaa !5
  %686 = load ptr, ptr %32, align 8, !tbaa !5
  %687 = load i32, ptr %52, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds double, ptr %686, i64 %688
  %690 = load ptr, ptr %32, align 8, !tbaa !5
  %691 = load i32, ptr %68, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds double, ptr %690, i64 %692
  call void @dorgqr_(ptr noundef %69, ptr noundef %69, ptr noundef %69, ptr noundef %684, ptr noundef %685, ptr noundef %689, ptr noundef %693, ptr noundef %43, ptr noundef %66)
  %694 = load i32, ptr %66, align 4, !tbaa !9
  %695 = icmp sge i32 %694, 0
  br i1 %695, label %696, label %716

696:                                              ; preds = %640
  %697 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %697, ptr %43, align 4, !tbaa !9
  %698 = load ptr, ptr %32, align 8, !tbaa !5
  %699 = load i32, ptr %68, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds double, ptr %698, i64 %700
  %702 = load double, ptr %701, align 8, !tbaa !11
  %703 = fptosi double %702 to i32
  %704 = load i32, ptr %68, align 4, !tbaa !9
  %705 = add nsw i32 %703, %704
  %706 = sub nsw i32 %705, 1
  store i32 %706, ptr %44, align 4, !tbaa !9
  %707 = load i32, ptr %43, align 4, !tbaa !9
  %708 = load i32, ptr %44, align 4, !tbaa !9
  %709 = icmp sge i32 %707, %708
  br i1 %709, label %710, label %712

710:                                              ; preds = %696
  %711 = load i32, ptr %43, align 4, !tbaa !9
  br label %714

712:                                              ; preds = %696
  %713 = load i32, ptr %44, align 4, !tbaa !9
  br label %714

714:                                              ; preds = %712, %710
  %715 = phi i32 [ %711, %710 ], [ %713, %712 ]
  store i32 %715, ptr %89, align 4, !tbaa !9
  br label %716

716:                                              ; preds = %714, %640
  %717 = load i32, ptr %66, align 4, !tbaa !9
  %718 = icmp ne i32 %717, 0
  br i1 %718, label %719, label %724

719:                                              ; preds = %716
  %720 = load ptr, ptr %20, align 8, !tbaa !5
  %721 = load i32, ptr %720, align 4, !tbaa !9
  %722 = add nsw i32 %721, 4
  %723 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %722, ptr %723, align 4, !tbaa !9
  br label %1844

724:                                              ; preds = %716
  br label %725

725:                                              ; preds = %724, %637
  %726 = load i32, ptr %55, align 4, !tbaa !9
  %727 = icmp ne i32 %726, 0
  br i1 %727, label %728, label %736

728:                                              ; preds = %725
  %729 = load ptr, ptr %20, align 8, !tbaa !5
  %730 = load ptr, ptr %20, align 8, !tbaa !5
  %731 = load ptr, ptr %30, align 8, !tbaa !5
  %732 = load i32, ptr %42, align 4, !tbaa !9
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds double, ptr %731, i64 %733
  %735 = load ptr, ptr %31, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.15, ptr noundef %729, ptr noundef %730, ptr noundef @c_b38, ptr noundef @c_b27, ptr noundef %734, ptr noundef %735)
  br label %736

736:                                              ; preds = %728, %725
  %737 = load i32, ptr %94, align 4, !tbaa !9
  %738 = icmp ne i32 %737, 0
  br i1 %738, label %739, label %763

739:                                              ; preds = %736
  %740 = load ptr, ptr %18, align 8, !tbaa !5
  %741 = load ptr, ptr %19, align 8, !tbaa !5
  %742 = load ptr, ptr %20, align 8, !tbaa !5
  %743 = load ptr, ptr %21, align 8, !tbaa !5
  %744 = load i32, ptr %36, align 4, !tbaa !9
  %745 = sext i32 %744 to i64
  %746 = getelementptr inbounds double, ptr %743, i64 %745
  %747 = load ptr, ptr %22, align 8, !tbaa !5
  %748 = load ptr, ptr %23, align 8, !tbaa !5
  %749 = load i32, ptr %38, align 4, !tbaa !9
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds double, ptr %748, i64 %750
  %752 = load ptr, ptr %24, align 8, !tbaa !5
  %753 = load ptr, ptr %28, align 8, !tbaa !5
  %754 = load i32, ptr %40, align 4, !tbaa !9
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds double, ptr %753, i64 %755
  %757 = load ptr, ptr %29, align 8, !tbaa !5
  %758 = load ptr, ptr %30, align 8, !tbaa !5
  %759 = load i32, ptr %42, align 4, !tbaa !9
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds double, ptr %758, i64 %760
  %762 = load ptr, ptr %31, align 8, !tbaa !5
  call void @dgghrd_(ptr noundef %740, ptr noundef %741, ptr noundef %742, ptr noundef %92, ptr noundef %91, ptr noundef %746, ptr noundef %747, ptr noundef %751, ptr noundef %752, ptr noundef %756, ptr noundef %757, ptr noundef %761, ptr noundef %762, ptr noundef %66)
  br label %792

763:                                              ; preds = %736
  %764 = load ptr, ptr %21, align 8, !tbaa !5
  %765 = load i32, ptr %92, align 4, !tbaa !9
  %766 = load i32, ptr %92, align 4, !tbaa !9
  %767 = load i32, ptr %35, align 4, !tbaa !9
  %768 = mul nsw i32 %766, %767
  %769 = add nsw i32 %765, %768
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds double, ptr %764, i64 %770
  %772 = load ptr, ptr %22, align 8, !tbaa !5
  %773 = load ptr, ptr %23, align 8, !tbaa !5
  %774 = load i32, ptr %92, align 4, !tbaa !9
  %775 = load i32, ptr %92, align 4, !tbaa !9
  %776 = load i32, ptr %37, align 4, !tbaa !9
  %777 = mul nsw i32 %775, %776
  %778 = add nsw i32 %774, %777
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds double, ptr %773, i64 %779
  %781 = load ptr, ptr %24, align 8, !tbaa !5
  %782 = load ptr, ptr %28, align 8, !tbaa !5
  %783 = load i32, ptr %40, align 4, !tbaa !9
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds double, ptr %782, i64 %784
  %786 = load ptr, ptr %29, align 8, !tbaa !5
  %787 = load ptr, ptr %30, align 8, !tbaa !5
  %788 = load i32, ptr %42, align 4, !tbaa !9
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds double, ptr %787, i64 %789
  %791 = load ptr, ptr %31, align 8, !tbaa !5
  call void @dgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %69, ptr noundef @c__1, ptr noundef %69, ptr noundef %771, ptr noundef %772, ptr noundef %780, ptr noundef %781, ptr noundef %785, ptr noundef %786, ptr noundef %790, ptr noundef %791, ptr noundef %66)
  br label %792

792:                                              ; preds = %763, %739
  %793 = load i32, ptr %66, align 4, !tbaa !9
  %794 = icmp ne i32 %793, 0
  br i1 %794, label %795, label %800

795:                                              ; preds = %792
  %796 = load ptr, ptr %20, align 8, !tbaa !5
  %797 = load i32, ptr %796, align 4, !tbaa !9
  %798 = add nsw i32 %797, 5
  %799 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %798, ptr %799, align 4, !tbaa !9
  br label %1844

800:                                              ; preds = %792
  %801 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %801, ptr %68, align 4, !tbaa !9
  %802 = load i32, ptr %94, align 4, !tbaa !9
  %803 = icmp ne i32 %802, 0
  br i1 %803, label %804, label %806

804:                                              ; preds = %800
  %805 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  store i8 83, ptr %805, align 1, !tbaa !13
  br label %808

806:                                              ; preds = %800
  %807 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  store i8 69, ptr %807, align 1, !tbaa !13
  br label %808

808:                                              ; preds = %806, %804
  %809 = load ptr, ptr %33, align 8, !tbaa !5
  %810 = load i32, ptr %809, align 4, !tbaa !9
  %811 = add nsw i32 %810, 1
  %812 = load i32, ptr %68, align 4, !tbaa !9
  %813 = sub nsw i32 %811, %812
  store i32 %813, ptr %43, align 4, !tbaa !9
  %814 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %815 = load ptr, ptr %18, align 8, !tbaa !5
  %816 = load ptr, ptr %19, align 8, !tbaa !5
  %817 = load ptr, ptr %20, align 8, !tbaa !5
  %818 = load ptr, ptr %21, align 8, !tbaa !5
  %819 = load i32, ptr %36, align 4, !tbaa !9
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds double, ptr %818, i64 %820
  %822 = load ptr, ptr %22, align 8, !tbaa !5
  %823 = load ptr, ptr %23, align 8, !tbaa !5
  %824 = load i32, ptr %38, align 4, !tbaa !9
  %825 = sext i32 %824 to i64
  %826 = getelementptr inbounds double, ptr %823, i64 %825
  %827 = load ptr, ptr %24, align 8, !tbaa !5
  %828 = load ptr, ptr %25, align 8, !tbaa !5
  %829 = getelementptr inbounds double, ptr %828, i64 1
  %830 = load ptr, ptr %26, align 8, !tbaa !5
  %831 = getelementptr inbounds double, ptr %830, i64 1
  %832 = load ptr, ptr %27, align 8, !tbaa !5
  %833 = getelementptr inbounds double, ptr %832, i64 1
  %834 = load ptr, ptr %28, align 8, !tbaa !5
  %835 = load i32, ptr %40, align 4, !tbaa !9
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds double, ptr %834, i64 %836
  %838 = load ptr, ptr %29, align 8, !tbaa !5
  %839 = load ptr, ptr %30, align 8, !tbaa !5
  %840 = load i32, ptr %42, align 4, !tbaa !9
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds double, ptr %839, i64 %841
  %843 = load ptr, ptr %31, align 8, !tbaa !5
  %844 = load ptr, ptr %32, align 8, !tbaa !5
  %845 = load i32, ptr %68, align 4, !tbaa !9
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds double, ptr %844, i64 %846
  call void @dhgeqz_(ptr noundef %814, ptr noundef %815, ptr noundef %816, ptr noundef %817, ptr noundef %92, ptr noundef %91, ptr noundef %821, ptr noundef %822, ptr noundef %826, ptr noundef %827, ptr noundef %829, ptr noundef %831, ptr noundef %833, ptr noundef %837, ptr noundef %838, ptr noundef %842, ptr noundef %843, ptr noundef %847, ptr noundef %43, ptr noundef %66)
  %848 = load i32, ptr %66, align 4, !tbaa !9
  %849 = icmp sge i32 %848, 0
  br i1 %849, label %850, label %870

850:                                              ; preds = %808
  %851 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %851, ptr %43, align 4, !tbaa !9
  %852 = load ptr, ptr %32, align 8, !tbaa !5
  %853 = load i32, ptr %68, align 4, !tbaa !9
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds double, ptr %852, i64 %854
  %856 = load double, ptr %855, align 8, !tbaa !11
  %857 = fptosi double %856 to i32
  %858 = load i32, ptr %68, align 4, !tbaa !9
  %859 = add nsw i32 %857, %858
  %860 = sub nsw i32 %859, 1
  store i32 %860, ptr %44, align 4, !tbaa !9
  %861 = load i32, ptr %43, align 4, !tbaa !9
  %862 = load i32, ptr %44, align 4, !tbaa !9
  %863 = icmp sge i32 %861, %862
  br i1 %863, label %864, label %866

864:                                              ; preds = %850
  %865 = load i32, ptr %43, align 4, !tbaa !9
  br label %868

866:                                              ; preds = %850
  %867 = load i32, ptr %44, align 4, !tbaa !9
  br label %868

868:                                              ; preds = %866, %864
  %869 = phi i32 [ %865, %864 ], [ %867, %866 ]
  store i32 %869, ptr %89, align 4, !tbaa !9
  br label %870

870:                                              ; preds = %868, %808
  %871 = load i32, ptr %66, align 4, !tbaa !9
  %872 = icmp ne i32 %871, 0
  br i1 %872, label %873, label %908

873:                                              ; preds = %870
  %874 = load i32, ptr %66, align 4, !tbaa !9
  %875 = icmp sgt i32 %874, 0
  br i1 %875, label %876, label %884

876:                                              ; preds = %873
  %877 = load i32, ptr %66, align 4, !tbaa !9
  %878 = load ptr, ptr %20, align 8, !tbaa !5
  %879 = load i32, ptr %878, align 4, !tbaa !9
  %880 = icmp sle i32 %877, %879
  br i1 %880, label %881, label %884

881:                                              ; preds = %876
  %882 = load i32, ptr %66, align 4, !tbaa !9
  %883 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %882, ptr %883, align 4, !tbaa !9
  br label %907

884:                                              ; preds = %876, %873
  %885 = load i32, ptr %66, align 4, !tbaa !9
  %886 = load ptr, ptr %20, align 8, !tbaa !5
  %887 = load i32, ptr %886, align 4, !tbaa !9
  %888 = icmp sgt i32 %885, %887
  br i1 %888, label %889, label %901

889:                                              ; preds = %884
  %890 = load i32, ptr %66, align 4, !tbaa !9
  %891 = load ptr, ptr %20, align 8, !tbaa !5
  %892 = load i32, ptr %891, align 4, !tbaa !9
  %893 = shl i32 %892, 1
  %894 = icmp sle i32 %890, %893
  br i1 %894, label %895, label %901

895:                                              ; preds = %889
  %896 = load i32, ptr %66, align 4, !tbaa !9
  %897 = load ptr, ptr %20, align 8, !tbaa !5
  %898 = load i32, ptr %897, align 4, !tbaa !9
  %899 = sub nsw i32 %896, %898
  %900 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %899, ptr %900, align 4, !tbaa !9
  br label %906

901:                                              ; preds = %889, %884
  %902 = load ptr, ptr %20, align 8, !tbaa !5
  %903 = load i32, ptr %902, align 4, !tbaa !9
  %904 = add nsw i32 %903, 6
  %905 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %904, ptr %905, align 4, !tbaa !9
  br label %906

906:                                              ; preds = %901, %895
  br label %907

907:                                              ; preds = %906, %881
  br label %1844

908:                                              ; preds = %870
  %909 = load i32, ptr %94, align 4, !tbaa !9
  %910 = icmp ne i32 %909, 0
  br i1 %910, label %911, label %1413

911:                                              ; preds = %908
  %912 = load i32, ptr %54, align 4, !tbaa !9
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %914, label %922

914:                                              ; preds = %911
  %915 = load i32, ptr %55, align 4, !tbaa !9
  %916 = icmp ne i32 %915, 0
  br i1 %916, label %917, label %919

917:                                              ; preds = %914
  %918 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  store i8 66, ptr %918, align 1, !tbaa !13
  br label %921

919:                                              ; preds = %914
  %920 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  store i8 76, ptr %920, align 1, !tbaa !13
  br label %921

921:                                              ; preds = %919, %917
  br label %924

922:                                              ; preds = %911
  %923 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  store i8 82, ptr %923, align 1, !tbaa !13
  br label %924

924:                                              ; preds = %922, %921
  %925 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %926 = getelementptr inbounds [1 x i32], ptr %79, i64 0, i64 0
  %927 = load ptr, ptr %20, align 8, !tbaa !5
  %928 = load ptr, ptr %21, align 8, !tbaa !5
  %929 = load i32, ptr %36, align 4, !tbaa !9
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds double, ptr %928, i64 %930
  %932 = load ptr, ptr %22, align 8, !tbaa !5
  %933 = load ptr, ptr %23, align 8, !tbaa !5
  %934 = load i32, ptr %38, align 4, !tbaa !9
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds double, ptr %933, i64 %935
  %937 = load ptr, ptr %24, align 8, !tbaa !5
  %938 = load ptr, ptr %28, align 8, !tbaa !5
  %939 = load i32, ptr %40, align 4, !tbaa !9
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds double, ptr %938, i64 %940
  %942 = load ptr, ptr %29, align 8, !tbaa !5
  %943 = load ptr, ptr %30, align 8, !tbaa !5
  %944 = load i32, ptr %42, align 4, !tbaa !9
  %945 = sext i32 %944 to i64
  %946 = getelementptr inbounds double, ptr %943, i64 %945
  %947 = load ptr, ptr %31, align 8, !tbaa !5
  %948 = load ptr, ptr %20, align 8, !tbaa !5
  %949 = load ptr, ptr %32, align 8, !tbaa !5
  %950 = load i32, ptr %68, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds double, ptr %949, i64 %951
  call void @dtgevc_(ptr noundef %925, ptr noundef @.str.8, ptr noundef %926, ptr noundef %927, ptr noundef %931, ptr noundef %932, ptr noundef %936, ptr noundef %937, ptr noundef %941, ptr noundef %942, ptr noundef %946, ptr noundef %947, ptr noundef %948, ptr noundef %72, ptr noundef %952, ptr noundef %66)
  %953 = load i32, ptr %66, align 4, !tbaa !9
  %954 = icmp ne i32 %953, 0
  br i1 %954, label %955, label %960

955:                                              ; preds = %924
  %956 = load ptr, ptr %20, align 8, !tbaa !5
  %957 = load i32, ptr %956, align 4, !tbaa !9
  %958 = add nsw i32 %957, 7
  %959 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %958, ptr %959, align 4, !tbaa !9
  br label %1844

960:                                              ; preds = %924
  %961 = load i32, ptr %54, align 4, !tbaa !9
  %962 = icmp ne i32 %961, 0
  br i1 %962, label %963, label %1186

963:                                              ; preds = %960
  %964 = load ptr, ptr %20, align 8, !tbaa !5
  %965 = load ptr, ptr %32, align 8, !tbaa !5
  %966 = load i32, ptr %65, align 4, !tbaa !9
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds double, ptr %965, i64 %967
  %969 = load ptr, ptr %32, align 8, !tbaa !5
  %970 = load i32, ptr %81, align 4, !tbaa !9
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds double, ptr %969, i64 %971
  %973 = load ptr, ptr %20, align 8, !tbaa !5
  %974 = load ptr, ptr %28, align 8, !tbaa !5
  %975 = load i32, ptr %40, align 4, !tbaa !9
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds double, ptr %974, i64 %976
  %978 = load ptr, ptr %29, align 8, !tbaa !5
  call void @dggbak_(ptr noundef @.str.12, ptr noundef @.str.13, ptr noundef %964, ptr noundef %92, ptr noundef %91, ptr noundef %968, ptr noundef %972, ptr noundef %973, ptr noundef %977, ptr noundef %978, ptr noundef %66)
  %979 = load i32, ptr %66, align 4, !tbaa !9
  %980 = icmp ne i32 %979, 0
  br i1 %980, label %981, label %986

981:                                              ; preds = %963
  %982 = load ptr, ptr %20, align 8, !tbaa !5
  %983 = load i32, ptr %982, align 4, !tbaa !9
  %984 = add nsw i32 %983, 8
  %985 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %984, ptr %985, align 4, !tbaa !9
  br label %1844

986:                                              ; preds = %963
  %987 = load ptr, ptr %20, align 8, !tbaa !5
  %988 = load i32, ptr %987, align 4, !tbaa !9
  store i32 %988, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %989

989:                                              ; preds = %1182, %986
  %990 = load i32, ptr %70, align 4, !tbaa !9
  %991 = load i32, ptr %43, align 4, !tbaa !9
  %992 = icmp sle i32 %990, %991
  br i1 %992, label %993, label %1185

993:                                              ; preds = %989
  %994 = load ptr, ptr %26, align 8, !tbaa !5
  %995 = load i32, ptr %70, align 4, !tbaa !9
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds double, ptr %994, i64 %996
  %998 = load double, ptr %997, align 8, !tbaa !11
  %999 = fcmp olt double %998, 0.000000e+00
  br i1 %999, label %1000, label %1001

1000:                                             ; preds = %993
  br label %1181

1001:                                             ; preds = %993
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  %1002 = load ptr, ptr %26, align 8, !tbaa !5
  %1003 = load i32, ptr %70, align 4, !tbaa !9
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds double, ptr %1002, i64 %1004
  %1006 = load double, ptr %1005, align 8, !tbaa !11
  %1007 = fcmp oeq double %1006, 0.000000e+00
  br i1 %1007, label %1008, label %1048

1008:                                             ; preds = %1001
  %1009 = load ptr, ptr %20, align 8, !tbaa !5
  %1010 = load i32, ptr %1009, align 4, !tbaa !9
  store i32 %1010, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1011

1011:                                             ; preds = %1044, %1008
  %1012 = load i32, ptr %73, align 4, !tbaa !9
  %1013 = load i32, ptr %44, align 4, !tbaa !9
  %1014 = icmp sle i32 %1012, %1013
  br i1 %1014, label %1015, label %1047

1015:                                             ; preds = %1011
  %1016 = load double, ptr %53, align 8, !tbaa !11
  store double %1016, ptr %46, align 8, !tbaa !11
  %1017 = load ptr, ptr %28, align 8, !tbaa !5
  %1018 = load i32, ptr %73, align 4, !tbaa !9
  %1019 = load i32, ptr %70, align 4, !tbaa !9
  %1020 = load i32, ptr %39, align 4, !tbaa !9
  %1021 = mul nsw i32 %1019, %1020
  %1022 = add nsw i32 %1018, %1021
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds double, ptr %1017, i64 %1023
  %1025 = load double, ptr %1024, align 8, !tbaa !11
  store double %1025, ptr %45, align 8, !tbaa !11
  %1026 = load double, ptr %45, align 8, !tbaa !11
  %1027 = fcmp oge double %1026, 0.000000e+00
  br i1 %1027, label %1028, label %1030

1028:                                             ; preds = %1015
  %1029 = load double, ptr %45, align 8, !tbaa !11
  br label %1033

1030:                                             ; preds = %1015
  %1031 = load double, ptr %45, align 8, !tbaa !11
  %1032 = fneg double %1031
  br label %1033

1033:                                             ; preds = %1030, %1028
  %1034 = phi double [ %1029, %1028 ], [ %1032, %1030 ]
  store double %1034, ptr %47, align 8, !tbaa !11
  %1035 = load double, ptr %46, align 8, !tbaa !11
  %1036 = load double, ptr %47, align 8, !tbaa !11
  %1037 = fcmp oge double %1035, %1036
  br i1 %1037, label %1038, label %1040

1038:                                             ; preds = %1033
  %1039 = load double, ptr %46, align 8, !tbaa !11
  br label %1042

1040:                                             ; preds = %1033
  %1041 = load double, ptr %47, align 8, !tbaa !11
  br label %1042

1042:                                             ; preds = %1040, %1038
  %1043 = phi double [ %1039, %1038 ], [ %1041, %1040 ]
  store double %1043, ptr %53, align 8, !tbaa !11
  br label %1044

1044:                                             ; preds = %1042
  %1045 = load i32, ptr %73, align 4, !tbaa !9
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr %73, align 4, !tbaa !9
  br label %1011, !llvm.loop !14

1047:                                             ; preds = %1011
  br label %1108

1048:                                             ; preds = %1001
  %1049 = load ptr, ptr %20, align 8, !tbaa !5
  %1050 = load i32, ptr %1049, align 4, !tbaa !9
  store i32 %1050, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1051

1051:                                             ; preds = %1104, %1048
  %1052 = load i32, ptr %73, align 4, !tbaa !9
  %1053 = load i32, ptr %44, align 4, !tbaa !9
  %1054 = icmp sle i32 %1052, %1053
  br i1 %1054, label %1055, label %1107

1055:                                             ; preds = %1051
  %1056 = load double, ptr %53, align 8, !tbaa !11
  store double %1056, ptr %47, align 8, !tbaa !11
  %1057 = load ptr, ptr %28, align 8, !tbaa !5
  %1058 = load i32, ptr %73, align 4, !tbaa !9
  %1059 = load i32, ptr %70, align 4, !tbaa !9
  %1060 = load i32, ptr %39, align 4, !tbaa !9
  %1061 = mul nsw i32 %1059, %1060
  %1062 = add nsw i32 %1058, %1061
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds double, ptr %1057, i64 %1063
  %1065 = load double, ptr %1064, align 8, !tbaa !11
  store double %1065, ptr %45, align 8, !tbaa !11
  %1066 = load double, ptr %45, align 8, !tbaa !11
  %1067 = fcmp oge double %1066, 0.000000e+00
  br i1 %1067, label %1068, label %1070

1068:                                             ; preds = %1055
  %1069 = load double, ptr %45, align 8, !tbaa !11
  br label %1073

1070:                                             ; preds = %1055
  %1071 = load double, ptr %45, align 8, !tbaa !11
  %1072 = fneg double %1071
  br label %1073

1073:                                             ; preds = %1070, %1068
  %1074 = phi double [ %1069, %1068 ], [ %1072, %1070 ]
  %1075 = load ptr, ptr %28, align 8, !tbaa !5
  %1076 = load i32, ptr %73, align 4, !tbaa !9
  %1077 = load i32, ptr %70, align 4, !tbaa !9
  %1078 = add nsw i32 %1077, 1
  %1079 = load i32, ptr %39, align 4, !tbaa !9
  %1080 = mul nsw i32 %1078, %1079
  %1081 = add nsw i32 %1076, %1080
  %1082 = sext i32 %1081 to i64
  %1083 = getelementptr inbounds double, ptr %1075, i64 %1082
  %1084 = load double, ptr %1083, align 8, !tbaa !11
  store double %1084, ptr %46, align 8, !tbaa !11
  %1085 = load double, ptr %46, align 8, !tbaa !11
  %1086 = fcmp oge double %1085, 0.000000e+00
  br i1 %1086, label %1087, label %1089

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

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

1092:                                             ; preds = %1089, %1087
  %1093 = phi double [ %1088, %1087 ], [ %1091, %1089 ]
  %1094 = fadd double %1074, %1093
  store double %1094, ptr %48, align 8, !tbaa !11
  %1095 = load double, ptr %47, align 8, !tbaa !11
  %1096 = load double, ptr %48, align 8, !tbaa !11
  %1097 = fcmp oge double %1095, %1096
  br i1 %1097, label %1098, label %1100

1098:                                             ; preds = %1092
  %1099 = load double, ptr %47, align 8, !tbaa !11
  br label %1102

1100:                                             ; preds = %1092
  %1101 = load double, ptr %48, align 8, !tbaa !11
  br label %1102

1102:                                             ; preds = %1100, %1098
  %1103 = phi double [ %1099, %1098 ], [ %1101, %1100 ]
  store double %1103, ptr %53, align 8, !tbaa !11
  br label %1104

1104:                                             ; preds = %1102
  %1105 = load i32, ptr %73, align 4, !tbaa !9
  %1106 = add nsw i32 %1105, 1
  store i32 %1106, ptr %73, align 4, !tbaa !9
  br label %1051, !llvm.loop !16

1107:                                             ; preds = %1051
  br label %1108

1108:                                             ; preds = %1107, %1047
  %1109 = load double, ptr %53, align 8, !tbaa !11
  %1110 = load double, ptr %76, align 8, !tbaa !11
  %1111 = fcmp olt double %1109, %1110
  br i1 %1111, label %1112, label %1113

1112:                                             ; preds = %1108
  br label %1181

1113:                                             ; preds = %1108
  %1114 = load double, ptr %53, align 8, !tbaa !11
  %1115 = fdiv double 1.000000e+00, %1114
  store double %1115, ptr %53, align 8, !tbaa !11
  %1116 = load ptr, ptr %26, align 8, !tbaa !5
  %1117 = load i32, ptr %70, align 4, !tbaa !9
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds double, ptr %1116, i64 %1118
  %1120 = load double, ptr %1119, align 8, !tbaa !11
  %1121 = fcmp oeq double %1120, 0.000000e+00
  br i1 %1121, label %1122, label %1145

1122:                                             ; preds = %1113
  %1123 = load ptr, ptr %20, align 8, !tbaa !5
  %1124 = load i32, ptr %1123, align 4, !tbaa !9
  store i32 %1124, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1125

1125:                                             ; preds = %1141, %1122
  %1126 = load i32, ptr %73, align 4, !tbaa !9
  %1127 = load i32, ptr %44, align 4, !tbaa !9
  %1128 = icmp sle i32 %1126, %1127
  br i1 %1128, label %1129, label %1144

1129:                                             ; preds = %1125
  %1130 = load double, ptr %53, align 8, !tbaa !11
  %1131 = load ptr, ptr %28, align 8, !tbaa !5
  %1132 = load i32, ptr %73, align 4, !tbaa !9
  %1133 = load i32, ptr %70, align 4, !tbaa !9
  %1134 = load i32, ptr %39, align 4, !tbaa !9
  %1135 = mul nsw i32 %1133, %1134
  %1136 = add nsw i32 %1132, %1135
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds double, ptr %1131, i64 %1137
  %1139 = load double, ptr %1138, align 8, !tbaa !11
  %1140 = fmul double %1139, %1130
  store double %1140, ptr %1138, align 8, !tbaa !11
  br label %1141

1141:                                             ; preds = %1129
  %1142 = load i32, ptr %73, align 4, !tbaa !9
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr %73, align 4, !tbaa !9
  br label %1125, !llvm.loop !17

1144:                                             ; preds = %1125
  br label %1180

1145:                                             ; preds = %1113
  %1146 = load ptr, ptr %20, align 8, !tbaa !5
  %1147 = load i32, ptr %1146, align 4, !tbaa !9
  store i32 %1147, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1148

1148:                                             ; preds = %1176, %1145
  %1149 = load i32, ptr %73, align 4, !tbaa !9
  %1150 = load i32, ptr %44, align 4, !tbaa !9
  %1151 = icmp sle i32 %1149, %1150
  br i1 %1151, label %1152, label %1179

1152:                                             ; preds = %1148
  %1153 = load double, ptr %53, align 8, !tbaa !11
  %1154 = load ptr, ptr %28, align 8, !tbaa !5
  %1155 = load i32, ptr %73, align 4, !tbaa !9
  %1156 = load i32, ptr %70, align 4, !tbaa !9
  %1157 = load i32, ptr %39, align 4, !tbaa !9
  %1158 = mul nsw i32 %1156, %1157
  %1159 = add nsw i32 %1155, %1158
  %1160 = sext i32 %1159 to i64
  %1161 = getelementptr inbounds double, ptr %1154, i64 %1160
  %1162 = load double, ptr %1161, align 8, !tbaa !11
  %1163 = fmul double %1162, %1153
  store double %1163, ptr %1161, align 8, !tbaa !11
  %1164 = load double, ptr %53, align 8, !tbaa !11
  %1165 = load ptr, ptr %28, align 8, !tbaa !5
  %1166 = load i32, ptr %73, align 4, !tbaa !9
  %1167 = load i32, ptr %70, align 4, !tbaa !9
  %1168 = add nsw i32 %1167, 1
  %1169 = load i32, ptr %39, align 4, !tbaa !9
  %1170 = mul nsw i32 %1168, %1169
  %1171 = add nsw i32 %1166, %1170
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds double, ptr %1165, i64 %1172
  %1174 = load double, ptr %1173, align 8, !tbaa !11
  %1175 = fmul double %1174, %1164
  store double %1175, ptr %1173, align 8, !tbaa !11
  br label %1176

1176:                                             ; preds = %1152
  %1177 = load i32, ptr %73, align 4, !tbaa !9
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr %73, align 4, !tbaa !9
  br label %1148, !llvm.loop !18

1179:                                             ; preds = %1148
  br label %1180

1180:                                             ; preds = %1179, %1144
  br label %1181

1181:                                             ; preds = %1180, %1112, %1000
  br label %1182

1182:                                             ; preds = %1181
  %1183 = load i32, ptr %70, align 4, !tbaa !9
  %1184 = add nsw i32 %1183, 1
  store i32 %1184, ptr %70, align 4, !tbaa !9
  br label %989, !llvm.loop !19

1185:                                             ; preds = %989
  br label %1186

1186:                                             ; preds = %1185, %960
  %1187 = load i32, ptr %55, align 4, !tbaa !9
  %1188 = icmp ne i32 %1187, 0
  br i1 %1188, label %1189, label %1412

1189:                                             ; preds = %1186
  %1190 = load ptr, ptr %20, align 8, !tbaa !5
  %1191 = load ptr, ptr %32, align 8, !tbaa !5
  %1192 = load i32, ptr %65, align 4, !tbaa !9
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds double, ptr %1191, i64 %1193
  %1195 = load ptr, ptr %32, align 8, !tbaa !5
  %1196 = load i32, ptr %81, align 4, !tbaa !9
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds double, ptr %1195, i64 %1197
  %1199 = load ptr, ptr %20, align 8, !tbaa !5
  %1200 = load ptr, ptr %30, align 8, !tbaa !5
  %1201 = load i32, ptr %42, align 4, !tbaa !9
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds double, ptr %1200, i64 %1202
  %1204 = load ptr, ptr %31, align 8, !tbaa !5
  call void @dggbak_(ptr noundef @.str.12, ptr noundef @.str.16, ptr noundef %1190, ptr noundef %92, ptr noundef %91, ptr noundef %1194, ptr noundef %1198, ptr noundef %1199, ptr noundef %1203, ptr noundef %1204, ptr noundef %66)
  %1205 = load i32, ptr %66, align 4, !tbaa !9
  %1206 = icmp ne i32 %1205, 0
  br i1 %1206, label %1207, label %1212

1207:                                             ; preds = %1189
  %1208 = load ptr, ptr %20, align 8, !tbaa !5
  %1209 = load i32, ptr %1208, align 4, !tbaa !9
  %1210 = add nsw i32 %1209, 9
  %1211 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %1210, ptr %1211, align 4, !tbaa !9
  br label %1844

1212:                                             ; preds = %1189
  %1213 = load ptr, ptr %20, align 8, !tbaa !5
  %1214 = load i32, ptr %1213, align 4, !tbaa !9
  store i32 %1214, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %1215

1215:                                             ; preds = %1408, %1212
  %1216 = load i32, ptr %70, align 4, !tbaa !9
  %1217 = load i32, ptr %43, align 4, !tbaa !9
  %1218 = icmp sle i32 %1216, %1217
  br i1 %1218, label %1219, label %1411

1219:                                             ; preds = %1215
  %1220 = load ptr, ptr %26, align 8, !tbaa !5
  %1221 = load i32, ptr %70, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds double, ptr %1220, i64 %1222
  %1224 = load double, ptr %1223, align 8, !tbaa !11
  %1225 = fcmp olt double %1224, 0.000000e+00
  br i1 %1225, label %1226, label %1227

1226:                                             ; preds = %1219
  br label %1407

1227:                                             ; preds = %1219
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  %1228 = load ptr, ptr %26, align 8, !tbaa !5
  %1229 = load i32, ptr %70, align 4, !tbaa !9
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds double, ptr %1228, i64 %1230
  %1232 = load double, ptr %1231, align 8, !tbaa !11
  %1233 = fcmp oeq double %1232, 0.000000e+00
  br i1 %1233, label %1234, label %1274

1234:                                             ; preds = %1227
  %1235 = load ptr, ptr %20, align 8, !tbaa !5
  %1236 = load i32, ptr %1235, align 4, !tbaa !9
  store i32 %1236, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1237

1237:                                             ; preds = %1270, %1234
  %1238 = load i32, ptr %73, align 4, !tbaa !9
  %1239 = load i32, ptr %44, align 4, !tbaa !9
  %1240 = icmp sle i32 %1238, %1239
  br i1 %1240, label %1241, label %1273

1241:                                             ; preds = %1237
  %1242 = load double, ptr %53, align 8, !tbaa !11
  store double %1242, ptr %46, align 8, !tbaa !11
  %1243 = load ptr, ptr %30, align 8, !tbaa !5
  %1244 = load i32, ptr %73, align 4, !tbaa !9
  %1245 = load i32, ptr %70, align 4, !tbaa !9
  %1246 = load i32, ptr %41, align 4, !tbaa !9
  %1247 = mul nsw i32 %1245, %1246
  %1248 = add nsw i32 %1244, %1247
  %1249 = sext i32 %1248 to i64
  %1250 = getelementptr inbounds double, ptr %1243, i64 %1249
  %1251 = load double, ptr %1250, align 8, !tbaa !11
  store double %1251, ptr %45, align 8, !tbaa !11
  %1252 = load double, ptr %45, align 8, !tbaa !11
  %1253 = fcmp oge double %1252, 0.000000e+00
  br i1 %1253, label %1254, label %1256

1254:                                             ; preds = %1241
  %1255 = load double, ptr %45, align 8, !tbaa !11
  br label %1259

1256:                                             ; preds = %1241
  %1257 = load double, ptr %45, align 8, !tbaa !11
  %1258 = fneg double %1257
  br label %1259

1259:                                             ; preds = %1256, %1254
  %1260 = phi double [ %1255, %1254 ], [ %1258, %1256 ]
  store double %1260, ptr %47, align 8, !tbaa !11
  %1261 = load double, ptr %46, align 8, !tbaa !11
  %1262 = load double, ptr %47, align 8, !tbaa !11
  %1263 = fcmp oge double %1261, %1262
  br i1 %1263, label %1264, label %1266

1264:                                             ; preds = %1259
  %1265 = load double, ptr %46, align 8, !tbaa !11
  br label %1268

1266:                                             ; preds = %1259
  %1267 = load double, ptr %47, align 8, !tbaa !11
  br label %1268

1268:                                             ; preds = %1266, %1264
  %1269 = phi double [ %1265, %1264 ], [ %1267, %1266 ]
  store double %1269, ptr %53, align 8, !tbaa !11
  br label %1270

1270:                                             ; preds = %1268
  %1271 = load i32, ptr %73, align 4, !tbaa !9
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr %73, align 4, !tbaa !9
  br label %1237, !llvm.loop !20

1273:                                             ; preds = %1237
  br label %1334

1274:                                             ; preds = %1227
  %1275 = load ptr, ptr %20, align 8, !tbaa !5
  %1276 = load i32, ptr %1275, align 4, !tbaa !9
  store i32 %1276, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1277

1277:                                             ; preds = %1330, %1274
  %1278 = load i32, ptr %73, align 4, !tbaa !9
  %1279 = load i32, ptr %44, align 4, !tbaa !9
  %1280 = icmp sle i32 %1278, %1279
  br i1 %1280, label %1281, label %1333

1281:                                             ; preds = %1277
  %1282 = load double, ptr %53, align 8, !tbaa !11
  store double %1282, ptr %47, align 8, !tbaa !11
  %1283 = load ptr, ptr %30, align 8, !tbaa !5
  %1284 = load i32, ptr %73, align 4, !tbaa !9
  %1285 = load i32, ptr %70, align 4, !tbaa !9
  %1286 = load i32, ptr %41, align 4, !tbaa !9
  %1287 = mul nsw i32 %1285, %1286
  %1288 = add nsw i32 %1284, %1287
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds double, ptr %1283, i64 %1289
  %1291 = load double, ptr %1290, align 8, !tbaa !11
  store double %1291, ptr %45, align 8, !tbaa !11
  %1292 = load double, ptr %45, align 8, !tbaa !11
  %1293 = fcmp oge double %1292, 0.000000e+00
  br i1 %1293, label %1294, label %1296

1294:                                             ; preds = %1281
  %1295 = load double, ptr %45, align 8, !tbaa !11
  br label %1299

1296:                                             ; preds = %1281
  %1297 = load double, ptr %45, align 8, !tbaa !11
  %1298 = fneg double %1297
  br label %1299

1299:                                             ; preds = %1296, %1294
  %1300 = phi double [ %1295, %1294 ], [ %1298, %1296 ]
  %1301 = load ptr, ptr %30, align 8, !tbaa !5
  %1302 = load i32, ptr %73, align 4, !tbaa !9
  %1303 = load i32, ptr %70, align 4, !tbaa !9
  %1304 = add nsw i32 %1303, 1
  %1305 = load i32, ptr %41, align 4, !tbaa !9
  %1306 = mul nsw i32 %1304, %1305
  %1307 = add nsw i32 %1302, %1306
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds double, ptr %1301, i64 %1308
  %1310 = load double, ptr %1309, align 8, !tbaa !11
  store double %1310, ptr %46, align 8, !tbaa !11
  %1311 = load double, ptr %46, align 8, !tbaa !11
  %1312 = fcmp oge double %1311, 0.000000e+00
  br i1 %1312, label %1313, label %1315

1313:                                             ; preds = %1299
  %1314 = load double, ptr %46, align 8, !tbaa !11
  br label %1318

1315:                                             ; preds = %1299
  %1316 = load double, ptr %46, align 8, !tbaa !11
  %1317 = fneg double %1316
  br label %1318

1318:                                             ; preds = %1315, %1313
  %1319 = phi double [ %1314, %1313 ], [ %1317, %1315 ]
  %1320 = fadd double %1300, %1319
  store double %1320, ptr %48, align 8, !tbaa !11
  %1321 = load double, ptr %47, align 8, !tbaa !11
  %1322 = load double, ptr %48, align 8, !tbaa !11
  %1323 = fcmp oge double %1321, %1322
  br i1 %1323, label %1324, label %1326

1324:                                             ; preds = %1318
  %1325 = load double, ptr %47, align 8, !tbaa !11
  br label %1328

1326:                                             ; preds = %1318
  %1327 = load double, ptr %48, align 8, !tbaa !11
  br label %1328

1328:                                             ; preds = %1326, %1324
  %1329 = phi double [ %1325, %1324 ], [ %1327, %1326 ]
  store double %1329, ptr %53, align 8, !tbaa !11
  br label %1330

1330:                                             ; preds = %1328
  %1331 = load i32, ptr %73, align 4, !tbaa !9
  %1332 = add nsw i32 %1331, 1
  store i32 %1332, ptr %73, align 4, !tbaa !9
  br label %1277, !llvm.loop !21

1333:                                             ; preds = %1277
  br label %1334

1334:                                             ; preds = %1333, %1273
  %1335 = load double, ptr %53, align 8, !tbaa !11
  %1336 = load double, ptr %76, align 8, !tbaa !11
  %1337 = fcmp olt double %1335, %1336
  br i1 %1337, label %1338, label %1339

1338:                                             ; preds = %1334
  br label %1407

1339:                                             ; preds = %1334
  %1340 = load double, ptr %53, align 8, !tbaa !11
  %1341 = fdiv double 1.000000e+00, %1340
  store double %1341, ptr %53, align 8, !tbaa !11
  %1342 = load ptr, ptr %26, align 8, !tbaa !5
  %1343 = load i32, ptr %70, align 4, !tbaa !9
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds double, ptr %1342, i64 %1344
  %1346 = load double, ptr %1345, align 8, !tbaa !11
  %1347 = fcmp oeq double %1346, 0.000000e+00
  br i1 %1347, label %1348, label %1371

1348:                                             ; preds = %1339
  %1349 = load ptr, ptr %20, align 8, !tbaa !5
  %1350 = load i32, ptr %1349, align 4, !tbaa !9
  store i32 %1350, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1351

1351:                                             ; preds = %1367, %1348
  %1352 = load i32, ptr %73, align 4, !tbaa !9
  %1353 = load i32, ptr %44, align 4, !tbaa !9
  %1354 = icmp sle i32 %1352, %1353
  br i1 %1354, label %1355, label %1370

1355:                                             ; preds = %1351
  %1356 = load double, ptr %53, align 8, !tbaa !11
  %1357 = load ptr, ptr %30, align 8, !tbaa !5
  %1358 = load i32, ptr %73, align 4, !tbaa !9
  %1359 = load i32, ptr %70, align 4, !tbaa !9
  %1360 = load i32, ptr %41, align 4, !tbaa !9
  %1361 = mul nsw i32 %1359, %1360
  %1362 = add nsw i32 %1358, %1361
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds double, ptr %1357, i64 %1363
  %1365 = load double, ptr %1364, align 8, !tbaa !11
  %1366 = fmul double %1365, %1356
  store double %1366, ptr %1364, align 8, !tbaa !11
  br label %1367

1367:                                             ; preds = %1355
  %1368 = load i32, ptr %73, align 4, !tbaa !9
  %1369 = add nsw i32 %1368, 1
  store i32 %1369, ptr %73, align 4, !tbaa !9
  br label %1351, !llvm.loop !22

1370:                                             ; preds = %1351
  br label %1406

1371:                                             ; preds = %1339
  %1372 = load ptr, ptr %20, align 8, !tbaa !5
  %1373 = load i32, ptr %1372, align 4, !tbaa !9
  store i32 %1373, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1374

1374:                                             ; preds = %1402, %1371
  %1375 = load i32, ptr %73, align 4, !tbaa !9
  %1376 = load i32, ptr %44, align 4, !tbaa !9
  %1377 = icmp sle i32 %1375, %1376
  br i1 %1377, label %1378, label %1405

1378:                                             ; preds = %1374
  %1379 = load double, ptr %53, align 8, !tbaa !11
  %1380 = load ptr, ptr %30, align 8, !tbaa !5
  %1381 = load i32, ptr %73, align 4, !tbaa !9
  %1382 = load i32, ptr %70, align 4, !tbaa !9
  %1383 = load i32, ptr %41, align 4, !tbaa !9
  %1384 = mul nsw i32 %1382, %1383
  %1385 = add nsw i32 %1381, %1384
  %1386 = sext i32 %1385 to i64
  %1387 = getelementptr inbounds double, ptr %1380, i64 %1386
  %1388 = load double, ptr %1387, align 8, !tbaa !11
  %1389 = fmul double %1388, %1379
  store double %1389, ptr %1387, align 8, !tbaa !11
  %1390 = load double, ptr %53, align 8, !tbaa !11
  %1391 = load ptr, ptr %30, align 8, !tbaa !5
  %1392 = load i32, ptr %73, align 4, !tbaa !9
  %1393 = load i32, ptr %70, align 4, !tbaa !9
  %1394 = add nsw i32 %1393, 1
  %1395 = load i32, ptr %41, align 4, !tbaa !9
  %1396 = mul nsw i32 %1394, %1395
  %1397 = add nsw i32 %1392, %1396
  %1398 = sext i32 %1397 to i64
  %1399 = getelementptr inbounds double, ptr %1391, i64 %1398
  %1400 = load double, ptr %1399, align 8, !tbaa !11
  %1401 = fmul double %1400, %1390
  store double %1401, ptr %1399, align 8, !tbaa !11
  br label %1402

1402:                                             ; preds = %1378
  %1403 = load i32, ptr %73, align 4, !tbaa !9
  %1404 = add nsw i32 %1403, 1
  store i32 %1404, ptr %73, align 4, !tbaa !9
  br label %1374, !llvm.loop !23

1405:                                             ; preds = %1374
  br label %1406

1406:                                             ; preds = %1405, %1370
  br label %1407

1407:                                             ; preds = %1406, %1338, %1226
  br label %1408

1408:                                             ; preds = %1407
  %1409 = load i32, ptr %70, align 4, !tbaa !9
  %1410 = add nsw i32 %1409, 1
  store i32 %1410, ptr %70, align 4, !tbaa !9
  br label %1215, !llvm.loop !24

1411:                                             ; preds = %1215
  br label %1412

1412:                                             ; preds = %1411, %1186
  br label %1413

1413:                                             ; preds = %1412, %908
  %1414 = load ptr, ptr %20, align 8, !tbaa !5
  %1415 = load i32, ptr %1414, align 4, !tbaa !9
  store i32 %1415, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %1416

1416:                                             ; preds = %1840, %1413
  %1417 = load i32, ptr %70, align 4, !tbaa !9
  %1418 = load i32, ptr %43, align 4, !tbaa !9
  %1419 = icmp sle i32 %1417, %1418
  br i1 %1419, label %1420, label %1843

1420:                                             ; preds = %1416
  %1421 = load ptr, ptr %25, align 8, !tbaa !5
  %1422 = load i32, ptr %70, align 4, !tbaa !9
  %1423 = sext i32 %1422 to i64
  %1424 = getelementptr inbounds double, ptr %1421, i64 %1423
  %1425 = load double, ptr %1424, align 8, !tbaa !11
  store double %1425, ptr %45, align 8, !tbaa !11
  %1426 = load double, ptr %45, align 8, !tbaa !11
  %1427 = fcmp oge double %1426, 0.000000e+00
  br i1 %1427, label %1428, label %1430

1428:                                             ; preds = %1420
  %1429 = load double, ptr %45, align 8, !tbaa !11
  br label %1433

1430:                                             ; preds = %1420
  %1431 = load double, ptr %45, align 8, !tbaa !11
  %1432 = fneg double %1431
  br label %1433

1433:                                             ; preds = %1430, %1428
  %1434 = phi double [ %1429, %1428 ], [ %1432, %1430 ]
  store double %1434, ptr %63, align 8, !tbaa !11
  %1435 = load ptr, ptr %26, align 8, !tbaa !5
  %1436 = load i32, ptr %70, align 4, !tbaa !9
  %1437 = sext i32 %1436 to i64
  %1438 = getelementptr inbounds double, ptr %1435, i64 %1437
  %1439 = load double, ptr %1438, align 8, !tbaa !11
  store double %1439, ptr %45, align 8, !tbaa !11
  %1440 = load double, ptr %45, align 8, !tbaa !11
  %1441 = fcmp oge double %1440, 0.000000e+00
  br i1 %1441, label %1442, label %1444

1442:                                             ; preds = %1433
  %1443 = load double, ptr %45, align 8, !tbaa !11
  br label %1447

1444:                                             ; preds = %1433
  %1445 = load double, ptr %45, align 8, !tbaa !11
  %1446 = fneg double %1445
  br label %1447

1447:                                             ; preds = %1444, %1442
  %1448 = phi double [ %1443, %1442 ], [ %1446, %1444 ]
  store double %1448, ptr %61, align 8, !tbaa !11
  %1449 = load ptr, ptr %27, align 8, !tbaa !5
  %1450 = load i32, ptr %70, align 4, !tbaa !9
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds double, ptr %1449, i64 %1451
  %1453 = load double, ptr %1452, align 8, !tbaa !11
  store double %1453, ptr %45, align 8, !tbaa !11
  %1454 = load double, ptr %45, align 8, !tbaa !11
  %1455 = fcmp oge double %1454, 0.000000e+00
  br i1 %1455, label %1456, label %1458

1456:                                             ; preds = %1447
  %1457 = load double, ptr %45, align 8, !tbaa !11
  br label %1461

1458:                                             ; preds = %1447
  %1459 = load double, ptr %45, align 8, !tbaa !11
  %1460 = fneg double %1459
  br label %1461

1461:                                             ; preds = %1458, %1456
  %1462 = phi double [ %1457, %1456 ], [ %1460, %1458 ]
  store double %1462, ptr %49, align 8, !tbaa !11
  %1463 = load double, ptr %50, align 8, !tbaa !11
  %1464 = load ptr, ptr %25, align 8, !tbaa !5
  %1465 = load i32, ptr %70, align 4, !tbaa !9
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds double, ptr %1464, i64 %1466
  %1468 = load double, ptr %1467, align 8, !tbaa !11
  %1469 = fmul double %1463, %1468
  store double %1469, ptr %75, align 8, !tbaa !11
  %1470 = load double, ptr %50, align 8, !tbaa !11
  %1471 = load ptr, ptr %26, align 8, !tbaa !5
  %1472 = load i32, ptr %70, align 4, !tbaa !9
  %1473 = sext i32 %1472 to i64
  %1474 = getelementptr inbounds double, ptr %1471, i64 %1473
  %1475 = load double, ptr %1474, align 8, !tbaa !11
  %1476 = fmul double %1470, %1475
  store double %1476, ptr %74, align 8, !tbaa !11
  %1477 = load double, ptr %51, align 8, !tbaa !11
  %1478 = load ptr, ptr %27, align 8, !tbaa !5
  %1479 = load i32, ptr %70, align 4, !tbaa !9
  %1480 = sext i32 %1479 to i64
  %1481 = getelementptr inbounds double, ptr %1478, i64 %1480
  %1482 = load double, ptr %1481, align 8, !tbaa !11
  %1483 = fmul double %1477, %1482
  store double %1483, ptr %64, align 8, !tbaa !11
  store i32 0, ptr %82, align 4, !tbaa !9
  store double 1.000000e+00, ptr %62, align 8, !tbaa !11
  %1484 = load double, ptr %76, align 8, !tbaa !11
  store double %1484, ptr %45, align 8, !tbaa !11
  %1485 = load double, ptr %93, align 8, !tbaa !11
  %1486 = load double, ptr %63, align 8, !tbaa !11
  %1487 = fmul double %1485, %1486
  store double %1487, ptr %46, align 8, !tbaa !11
  %1488 = load double, ptr %45, align 8, !tbaa !11
  %1489 = load double, ptr %46, align 8, !tbaa !11
  %1490 = fcmp oge double %1488, %1489
  br i1 %1490, label %1491, label %1493

1491:                                             ; preds = %1461
  %1492 = load double, ptr %45, align 8, !tbaa !11
  br label %1495

1493:                                             ; preds = %1461
  %1494 = load double, ptr %46, align 8, !tbaa !11
  br label %1495

1495:                                             ; preds = %1493, %1491
  %1496 = phi double [ %1492, %1491 ], [ %1494, %1493 ]
  store double %1496, ptr %45, align 8, !tbaa !11
  %1497 = load double, ptr %93, align 8, !tbaa !11
  %1498 = load double, ptr %49, align 8, !tbaa !11
  %1499 = fmul double %1497, %1498
  store double %1499, ptr %46, align 8, !tbaa !11
  %1500 = load double, ptr %74, align 8, !tbaa !11
  %1501 = fcmp oge double %1500, 0.000000e+00
  br i1 %1501, label %1502, label %1504

1502:                                             ; preds = %1495
  %1503 = load double, ptr %74, align 8, !tbaa !11
  br label %1507

1504:                                             ; preds = %1495
  %1505 = load double, ptr %74, align 8, !tbaa !11
  %1506 = fneg double %1505
  br label %1507

1507:                                             ; preds = %1504, %1502
  %1508 = phi double [ %1503, %1502 ], [ %1506, %1504 ]
  %1509 = load double, ptr %76, align 8, !tbaa !11
  %1510 = fcmp olt double %1508, %1509
  br i1 %1510, label %1511, label %1545

1511:                                             ; preds = %1507
  %1512 = load double, ptr %61, align 8, !tbaa !11
  %1513 = load double, ptr %45, align 8, !tbaa !11
  %1514 = load double, ptr %46, align 8, !tbaa !11
  %1515 = fcmp oge double %1513, %1514
  br i1 %1515, label %1516, label %1518

1516:                                             ; preds = %1511
  %1517 = load double, ptr %45, align 8, !tbaa !11
  br label %1520

1518:                                             ; preds = %1511
  %1519 = load double, ptr %46, align 8, !tbaa !11
  br label %1520

1520:                                             ; preds = %1518, %1516
  %1521 = phi double [ %1517, %1516 ], [ %1519, %1518 ]
  %1522 = fcmp oge double %1512, %1521
  br i1 %1522, label %1523, label %1545

1523:                                             ; preds = %1520
  store i32 1, ptr %82, align 4, !tbaa !9
  %1524 = load double, ptr %84, align 8, !tbaa !11
  %1525 = load double, ptr %76, align 8, !tbaa !11
  %1526 = fmul double %1524, %1525
  store double %1526, ptr %45, align 8, !tbaa !11
  %1527 = load double, ptr %58, align 8, !tbaa !11
  %1528 = load double, ptr %61, align 8, !tbaa !11
  %1529 = fmul double %1527, %1528
  store double %1529, ptr %46, align 8, !tbaa !11
  %1530 = load double, ptr %84, align 8, !tbaa !11
  %1531 = load double, ptr %76, align 8, !tbaa !11
  %1532 = fmul double %1530, %1531
  %1533 = load double, ptr %57, align 8, !tbaa !11
  %1534 = fdiv double %1532, %1533
  %1535 = load double, ptr %45, align 8, !tbaa !11
  %1536 = load double, ptr %46, align 8, !tbaa !11
  %1537 = fcmp oge double %1535, %1536
  br i1 %1537, label %1538, label %1540

1538:                                             ; preds = %1523
  %1539 = load double, ptr %45, align 8, !tbaa !11
  br label %1542

1540:                                             ; preds = %1523
  %1541 = load double, ptr %46, align 8, !tbaa !11
  br label %1542

1542:                                             ; preds = %1540, %1538
  %1543 = phi double [ %1539, %1538 ], [ %1541, %1540 ]
  %1544 = fdiv double %1534, %1543
  store double %1544, ptr %62, align 8, !tbaa !11
  br label %1585

1545:                                             ; preds = %1520, %1507
  %1546 = load double, ptr %74, align 8, !tbaa !11
  %1547 = fcmp oeq double %1546, 0.000000e+00
  br i1 %1547, label %1548, label %1584

1548:                                             ; preds = %1545
  %1549 = load ptr, ptr %26, align 8, !tbaa !5
  %1550 = load i32, ptr %70, align 4, !tbaa !9
  %1551 = sext i32 %1550 to i64
  %1552 = getelementptr inbounds double, ptr %1549, i64 %1551
  %1553 = load double, ptr %1552, align 8, !tbaa !11
  %1554 = fcmp olt double %1553, 0.000000e+00
  br i1 %1554, label %1555, label %1564

1555:                                             ; preds = %1548
  %1556 = load i32, ptr %70, align 4, !tbaa !9
  %1557 = icmp sgt i32 %1556, 1
  br i1 %1557, label %1558, label %1564

1558:                                             ; preds = %1555
  %1559 = load ptr, ptr %26, align 8, !tbaa !5
  %1560 = load i32, ptr %70, align 4, !tbaa !9
  %1561 = sub nsw i32 %1560, 1
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds double, ptr %1559, i64 %1562
  store double 0.000000e+00, ptr %1563, align 8, !tbaa !11
  br label %1583

1564:                                             ; preds = %1555, %1548
  %1565 = load ptr, ptr %26, align 8, !tbaa !5
  %1566 = load i32, ptr %70, align 4, !tbaa !9
  %1567 = sext i32 %1566 to i64
  %1568 = getelementptr inbounds double, ptr %1565, i64 %1567
  %1569 = load double, ptr %1568, align 8, !tbaa !11
  %1570 = fcmp ogt double %1569, 0.000000e+00
  br i1 %1570, label %1571, label %1582

1571:                                             ; preds = %1564
  %1572 = load i32, ptr %70, align 4, !tbaa !9
  %1573 = load ptr, ptr %20, align 8, !tbaa !5
  %1574 = load i32, ptr %1573, align 4, !tbaa !9
  %1575 = icmp slt i32 %1572, %1574
  br i1 %1575, label %1576, label %1582

1576:                                             ; preds = %1571
  %1577 = load ptr, ptr %26, align 8, !tbaa !5
  %1578 = load i32, ptr %70, align 4, !tbaa !9
  %1579 = add nsw i32 %1578, 1
  %1580 = sext i32 %1579 to i64
  %1581 = getelementptr inbounds double, ptr %1577, i64 %1580
  store double 0.000000e+00, ptr %1581, align 8, !tbaa !11
  br label %1582

1582:                                             ; preds = %1576, %1571, %1564
  br label %1583

1583:                                             ; preds = %1582, %1558
  br label %1584

1584:                                             ; preds = %1583, %1545
  br label %1585

1585:                                             ; preds = %1584, %1542
  %1586 = load double, ptr %76, align 8, !tbaa !11
  store double %1586, ptr %45, align 8, !tbaa !11
  %1587 = load double, ptr %93, align 8, !tbaa !11
  %1588 = load double, ptr %61, align 8, !tbaa !11
  %1589 = fmul double %1587, %1588
  store double %1589, ptr %46, align 8, !tbaa !11
  %1590 = load double, ptr %45, align 8, !tbaa !11
  %1591 = load double, ptr %46, align 8, !tbaa !11
  %1592 = fcmp oge double %1590, %1591
  br i1 %1592, label %1593, label %1595

1593:                                             ; preds = %1585
  %1594 = load double, ptr %45, align 8, !tbaa !11
  br label %1597

1595:                                             ; preds = %1585
  %1596 = load double, ptr %46, align 8, !tbaa !11
  br label %1597

1597:                                             ; preds = %1595, %1593
  %1598 = phi double [ %1594, %1593 ], [ %1596, %1595 ]
  store double %1598, ptr %45, align 8, !tbaa !11
  %1599 = load double, ptr %93, align 8, !tbaa !11
  %1600 = load double, ptr %49, align 8, !tbaa !11
  %1601 = fmul double %1599, %1600
  store double %1601, ptr %46, align 8, !tbaa !11
  %1602 = load double, ptr %75, align 8, !tbaa !11
  %1603 = fcmp oge double %1602, 0.000000e+00
  br i1 %1603, label %1604, label %1606

1604:                                             ; preds = %1597
  %1605 = load double, ptr %75, align 8, !tbaa !11
  br label %1609

1606:                                             ; preds = %1597
  %1607 = load double, ptr %75, align 8, !tbaa !11
  %1608 = fneg double %1607
  br label %1609

1609:                                             ; preds = %1606, %1604
  %1610 = phi double [ %1605, %1604 ], [ %1608, %1606 ]
  %1611 = load double, ptr %76, align 8, !tbaa !11
  %1612 = fcmp olt double %1610, %1611
  br i1 %1612, label %1613, label %1657

1613:                                             ; preds = %1609
  %1614 = load double, ptr %63, align 8, !tbaa !11
  %1615 = load double, ptr %45, align 8, !tbaa !11
  %1616 = load double, ptr %46, align 8, !tbaa !11
  %1617 = fcmp oge double %1615, %1616
  br i1 %1617, label %1618, label %1620

1618:                                             ; preds = %1613
  %1619 = load double, ptr %45, align 8, !tbaa !11
  br label %1622

1620:                                             ; preds = %1613
  %1621 = load double, ptr %46, align 8, !tbaa !11
  br label %1622

1622:                                             ; preds = %1620, %1618
  %1623 = phi double [ %1619, %1618 ], [ %1621, %1620 ]
  %1624 = fcmp oge double %1614, %1623
  br i1 %1624, label %1625, label %1657

1625:                                             ; preds = %1622
  store i32 1, ptr %82, align 4, !tbaa !9
  %1626 = load double, ptr %84, align 8, !tbaa !11
  %1627 = load double, ptr %76, align 8, !tbaa !11
  %1628 = fmul double %1626, %1627
  store double %1628, ptr %47, align 8, !tbaa !11
  %1629 = load double, ptr %58, align 8, !tbaa !11
  %1630 = load double, ptr %63, align 8, !tbaa !11
  %1631 = fmul double %1629, %1630
  store double %1631, ptr %48, align 8, !tbaa !11
  %1632 = load double, ptr %62, align 8, !tbaa !11
  store double %1632, ptr %45, align 8, !tbaa !11
  %1633 = load double, ptr %84, align 8, !tbaa !11
  %1634 = load double, ptr %76, align 8, !tbaa !11
  %1635 = fmul double %1633, %1634
  %1636 = load double, ptr %57, align 8, !tbaa !11
  %1637 = fdiv double %1635, %1636
  %1638 = load double, ptr %47, align 8, !tbaa !11
  %1639 = load double, ptr %48, align 8, !tbaa !11
  %1640 = fcmp oge double %1638, %1639
  br i1 %1640, label %1641, label %1643

1641:                                             ; preds = %1625
  %1642 = load double, ptr %47, align 8, !tbaa !11
  br label %1645

1643:                                             ; preds = %1625
  %1644 = load double, ptr %48, align 8, !tbaa !11
  br label %1645

1645:                                             ; preds = %1643, %1641
  %1646 = phi double [ %1642, %1641 ], [ %1644, %1643 ]
  %1647 = fdiv double %1637, %1646
  store double %1647, ptr %46, align 8, !tbaa !11
  %1648 = load double, ptr %45, align 8, !tbaa !11
  %1649 = load double, ptr %46, align 8, !tbaa !11
  %1650 = fcmp oge double %1648, %1649
  br i1 %1650, label %1651, label %1653

1651:                                             ; preds = %1645
  %1652 = load double, ptr %45, align 8, !tbaa !11
  br label %1655

1653:                                             ; preds = %1645
  %1654 = load double, ptr %46, align 8, !tbaa !11
  br label %1655

1655:                                             ; preds = %1653, %1651
  %1656 = phi double [ %1652, %1651 ], [ %1654, %1653 ]
  store double %1656, ptr %62, align 8, !tbaa !11
  br label %1657

1657:                                             ; preds = %1655, %1622, %1609
  %1658 = load double, ptr %76, align 8, !tbaa !11
  store double %1658, ptr %45, align 8, !tbaa !11
  %1659 = load double, ptr %93, align 8, !tbaa !11
  %1660 = load double, ptr %63, align 8, !tbaa !11
  %1661 = fmul double %1659, %1660
  store double %1661, ptr %46, align 8, !tbaa !11
  %1662 = load double, ptr %45, align 8, !tbaa !11
  %1663 = load double, ptr %46, align 8, !tbaa !11
  %1664 = fcmp oge double %1662, %1663
  br i1 %1664, label %1665, label %1667

1665:                                             ; preds = %1657
  %1666 = load double, ptr %45, align 8, !tbaa !11
  br label %1669

1667:                                             ; preds = %1657
  %1668 = load double, ptr %46, align 8, !tbaa !11
  br label %1669

1669:                                             ; preds = %1667, %1665
  %1670 = phi double [ %1666, %1665 ], [ %1668, %1667 ]
  store double %1670, ptr %45, align 8, !tbaa !11
  %1671 = load double, ptr %93, align 8, !tbaa !11
  %1672 = load double, ptr %61, align 8, !tbaa !11
  %1673 = fmul double %1671, %1672
  store double %1673, ptr %46, align 8, !tbaa !11
  %1674 = load double, ptr %64, align 8, !tbaa !11
  %1675 = fcmp oge double %1674, 0.000000e+00
  br i1 %1675, label %1676, label %1678

1676:                                             ; preds = %1669
  %1677 = load double, ptr %64, align 8, !tbaa !11
  br label %1681

1678:                                             ; preds = %1669
  %1679 = load double, ptr %64, align 8, !tbaa !11
  %1680 = fneg double %1679
  br label %1681

1681:                                             ; preds = %1678, %1676
  %1682 = phi double [ %1677, %1676 ], [ %1680, %1678 ]
  %1683 = load double, ptr %76, align 8, !tbaa !11
  %1684 = fcmp olt double %1682, %1683
  br i1 %1684, label %1685, label %1729

1685:                                             ; preds = %1681
  %1686 = load double, ptr %49, align 8, !tbaa !11
  %1687 = load double, ptr %45, align 8, !tbaa !11
  %1688 = load double, ptr %46, align 8, !tbaa !11
  %1689 = fcmp oge double %1687, %1688
  br i1 %1689, label %1690, label %1692

1690:                                             ; preds = %1685
  %1691 = load double, ptr %45, align 8, !tbaa !11
  br label %1694

1692:                                             ; preds = %1685
  %1693 = load double, ptr %46, align 8, !tbaa !11
  br label %1694

1694:                                             ; preds = %1692, %1690
  %1695 = phi double [ %1691, %1690 ], [ %1693, %1692 ]
  %1696 = fcmp oge double %1686, %1695
  br i1 %1696, label %1697, label %1729

1697:                                             ; preds = %1694
  store i32 1, ptr %82, align 4, !tbaa !9
  %1698 = load double, ptr %84, align 8, !tbaa !11
  %1699 = load double, ptr %76, align 8, !tbaa !11
  %1700 = fmul double %1698, %1699
  store double %1700, ptr %47, align 8, !tbaa !11
  %1701 = load double, ptr %60, align 8, !tbaa !11
  %1702 = load double, ptr %49, align 8, !tbaa !11
  %1703 = fmul double %1701, %1702
  store double %1703, ptr %48, align 8, !tbaa !11
  %1704 = load double, ptr %62, align 8, !tbaa !11
  store double %1704, ptr %45, align 8, !tbaa !11
  %1705 = load double, ptr %84, align 8, !tbaa !11
  %1706 = load double, ptr %76, align 8, !tbaa !11
  %1707 = fmul double %1705, %1706
  %1708 = load double, ptr %59, align 8, !tbaa !11
  %1709 = fdiv double %1707, %1708
  %1710 = load double, ptr %47, align 8, !tbaa !11
  %1711 = load double, ptr %48, align 8, !tbaa !11
  %1712 = fcmp oge double %1710, %1711
  br i1 %1712, label %1713, label %1715

1713:                                             ; preds = %1697
  %1714 = load double, ptr %47, align 8, !tbaa !11
  br label %1717

1715:                                             ; preds = %1697
  %1716 = load double, ptr %48, align 8, !tbaa !11
  br label %1717

1717:                                             ; preds = %1715, %1713
  %1718 = phi double [ %1714, %1713 ], [ %1716, %1715 ]
  %1719 = fdiv double %1709, %1718
  store double %1719, ptr %46, align 8, !tbaa !11
  %1720 = load double, ptr %45, align 8, !tbaa !11
  %1721 = load double, ptr %46, align 8, !tbaa !11
  %1722 = fcmp oge double %1720, %1721
  br i1 %1722, label %1723, label %1725

1723:                                             ; preds = %1717
  %1724 = load double, ptr %45, align 8, !tbaa !11
  br label %1727

1725:                                             ; preds = %1717
  %1726 = load double, ptr %46, align 8, !tbaa !11
  br label %1727

1727:                                             ; preds = %1725, %1723
  %1728 = phi double [ %1724, %1723 ], [ %1726, %1725 ]
  store double %1728, ptr %62, align 8, !tbaa !11
  br label %1729

1729:                                             ; preds = %1727, %1694, %1681
  %1730 = load i32, ptr %82, align 4, !tbaa !9
  %1731 = icmp ne i32 %1730, 0
  br i1 %1731, label %1732, label %1793

1732:                                             ; preds = %1729
  %1733 = load double, ptr %75, align 8, !tbaa !11
  %1734 = fcmp oge double %1733, 0.000000e+00
  br i1 %1734, label %1735, label %1737

1735:                                             ; preds = %1732
  %1736 = load double, ptr %75, align 8, !tbaa !11
  br label %1740

1737:                                             ; preds = %1732
  %1738 = load double, ptr %75, align 8, !tbaa !11
  %1739 = fneg double %1738
  br label %1740

1740:                                             ; preds = %1737, %1735
  %1741 = phi double [ %1736, %1735 ], [ %1739, %1737 ]
  store double %1741, ptr %45, align 8, !tbaa !11
  %1742 = load double, ptr %74, align 8, !tbaa !11
  %1743 = fcmp oge double %1742, 0.000000e+00
  br i1 %1743, label %1744, label %1746

1744:                                             ; preds = %1740
  %1745 = load double, ptr %74, align 8, !tbaa !11
  br label %1749

1746:                                             ; preds = %1740
  %1747 = load double, ptr %74, align 8, !tbaa !11
  %1748 = fneg double %1747
  br label %1749

1749:                                             ; preds = %1746, %1744
  %1750 = phi double [ %1745, %1744 ], [ %1748, %1746 ]
  store double %1750, ptr %46, align 8, !tbaa !11
  %1751 = load double, ptr %45, align 8, !tbaa !11
  %1752 = load double, ptr %46, align 8, !tbaa !11
  %1753 = fcmp oge double %1751, %1752
  br i1 %1753, label %1754, label %1756

1754:                                             ; preds = %1749
  %1755 = load double, ptr %45, align 8, !tbaa !11
  br label %1758

1756:                                             ; preds = %1749
  %1757 = load double, ptr %46, align 8, !tbaa !11
  br label %1758

1758:                                             ; preds = %1756, %1754
  %1759 = phi double [ %1755, %1754 ], [ %1757, %1756 ]
  store double %1759, ptr %45, align 8, !tbaa !11
  %1760 = load double, ptr %64, align 8, !tbaa !11
  %1761 = fcmp oge double %1760, 0.000000e+00
  br i1 %1761, label %1762, label %1764

1762:                                             ; preds = %1758
  %1763 = load double, ptr %64, align 8, !tbaa !11
  br label %1767

1764:                                             ; preds = %1758
  %1765 = load double, ptr %64, align 8, !tbaa !11
  %1766 = fneg double %1765
  br label %1767

1767:                                             ; preds = %1764, %1762
  %1768 = phi double [ %1763, %1762 ], [ %1766, %1764 ]
  store double %1768, ptr %46, align 8, !tbaa !11
  %1769 = load double, ptr %62, align 8, !tbaa !11
  %1770 = load double, ptr %76, align 8, !tbaa !11
  %1771 = fmul double %1769, %1770
  %1772 = load double, ptr %45, align 8, !tbaa !11
  %1773 = load double, ptr %46, align 8, !tbaa !11
  %1774 = fcmp oge double %1772, %1773
  br i1 %1774, label %1775, label %1777

1775:                                             ; preds = %1767
  %1776 = load double, ptr %45, align 8, !tbaa !11
  br label %1779

1777:                                             ; preds = %1767
  %1778 = load double, ptr %46, align 8, !tbaa !11
  br label %1779

1779:                                             ; preds = %1777, %1775
  %1780 = phi double [ %1776, %1775 ], [ %1778, %1777 ]
  %1781 = fmul double %1771, %1780
  store double %1781, ptr %53, align 8, !tbaa !11
  %1782 = load double, ptr %53, align 8, !tbaa !11
  %1783 = fcmp ogt double %1782, 1.000000e+00
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1779
  %1785 = load double, ptr %53, align 8, !tbaa !11
  %1786 = load double, ptr %62, align 8, !tbaa !11
  %1787 = fdiv double %1786, %1785
  store double %1787, ptr %62, align 8, !tbaa !11
  br label %1788

1788:                                             ; preds = %1784, %1779
  %1789 = load double, ptr %62, align 8, !tbaa !11
  %1790 = fcmp olt double %1789, 1.000000e+00
  br i1 %1790, label %1791, label %1792

1791:                                             ; preds = %1788
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %1792

1792:                                             ; preds = %1791, %1788
  br label %1793

1793:                                             ; preds = %1792, %1729
  %1794 = load i32, ptr %82, align 4, !tbaa !9
  %1795 = icmp ne i32 %1794, 0
  br i1 %1795, label %1796, label %1824

1796:                                             ; preds = %1793
  %1797 = load double, ptr %62, align 8, !tbaa !11
  %1798 = load ptr, ptr %25, align 8, !tbaa !5
  %1799 = load i32, ptr %70, align 4, !tbaa !9
  %1800 = sext i32 %1799 to i64
  %1801 = getelementptr inbounds double, ptr %1798, i64 %1800
  %1802 = load double, ptr %1801, align 8, !tbaa !11
  %1803 = fmul double %1797, %1802
  %1804 = load double, ptr %50, align 8, !tbaa !11
  %1805 = fmul double %1803, %1804
  store double %1805, ptr %75, align 8, !tbaa !11
  %1806 = load double, ptr %62, align 8, !tbaa !11
  %1807 = load ptr, ptr %26, align 8, !tbaa !5
  %1808 = load i32, ptr %70, align 4, !tbaa !9
  %1809 = sext i32 %1808 to i64
  %1810 = getelementptr inbounds double, ptr %1807, i64 %1809
  %1811 = load double, ptr %1810, align 8, !tbaa !11
  %1812 = fmul double %1806, %1811
  %1813 = load double, ptr %50, align 8, !tbaa !11
  %1814 = fmul double %1812, %1813
  store double %1814, ptr %74, align 8, !tbaa !11
  %1815 = load double, ptr %62, align 8, !tbaa !11
  %1816 = load ptr, ptr %27, align 8, !tbaa !5
  %1817 = load i32, ptr %70, align 4, !tbaa !9
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds double, ptr %1816, i64 %1818
  %1820 = load double, ptr %1819, align 8, !tbaa !11
  %1821 = fmul double %1815, %1820
  %1822 = load double, ptr %51, align 8, !tbaa !11
  %1823 = fmul double %1821, %1822
  store double %1823, ptr %64, align 8, !tbaa !11
  br label %1824

1824:                                             ; preds = %1796, %1793
  %1825 = load double, ptr %75, align 8, !tbaa !11
  %1826 = load ptr, ptr %25, align 8, !tbaa !5
  %1827 = load i32, ptr %70, align 4, !tbaa !9
  %1828 = sext i32 %1827 to i64
  %1829 = getelementptr inbounds double, ptr %1826, i64 %1828
  store double %1825, ptr %1829, align 8, !tbaa !11
  %1830 = load double, ptr %74, align 8, !tbaa !11
  %1831 = load ptr, ptr %26, align 8, !tbaa !5
  %1832 = load i32, ptr %70, align 4, !tbaa !9
  %1833 = sext i32 %1832 to i64
  %1834 = getelementptr inbounds double, ptr %1831, i64 %1833
  store double %1830, ptr %1834, align 8, !tbaa !11
  %1835 = load double, ptr %64, align 8, !tbaa !11
  %1836 = load ptr, ptr %27, align 8, !tbaa !5
  %1837 = load i32, ptr %70, align 4, !tbaa !9
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds double, ptr %1836, i64 %1838
  store double %1835, ptr %1839, align 8, !tbaa !11
  br label %1840

1840:                                             ; preds = %1824
  %1841 = load i32, ptr %70, align 4, !tbaa !9
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, ptr %70, align 4, !tbaa !9
  br label %1416, !llvm.loop !25

1843:                                             ; preds = %1416
  br label %1844

1844:                                             ; preds = %1843, %1207, %981, %955, %907, %795, %719, %632, %570, %498
  %1845 = load i32, ptr %89, align 4, !tbaa !9
  %1846 = sitofp i32 %1845 to double
  %1847 = load ptr, ptr %32, align 8, !tbaa !5
  %1848 = getelementptr inbounds double, ptr %1847, i64 1
  store double %1846, ptr %1848, align 8, !tbaa !11
  store i32 1, ptr %95, align 4
  br label %1849

1849:                                             ; preds = %1844, %459, %415, %365, %359, %351
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  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 i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

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

declare double @dlamch_(ptr noundef) #2

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

declare double @dlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare void @dggbal_(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

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

declare void @dormqr_(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

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

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

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

declare void @dgghrd_(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

declare void @dhgeqz_(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

declare void @dtgevc_(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

declare void @dggbak_(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 }

!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 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}
!25 = distinct !{!25, !15}


; 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
@c__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b27 = external hidden global double, align 8
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b38 = external hidden global double, align 8
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @dgegv_(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 nocapture noundef readonly %15, ptr nocapture noundef %16) local_unnamed_addr #0 {
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca [1 x i8], align 1
  %27 = alloca [1 x i32], align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  %30 = load i32, ptr %4, align 4, !tbaa !5
  %narrow = xor i32 %30, -1
  %31 = sext i32 %narrow to i64
  %32 = getelementptr inbounds double, ptr %3, i64 %31
  %33 = load i32, ptr %6, align 4, !tbaa !5
  %narrow706 = xor i32 %33, -1
  %34 = sext i32 %narrow706 to i64
  %35 = getelementptr inbounds double, ptr %5, i64 %34
  %36 = getelementptr inbounds i8, ptr %7, i64 -8
  %37 = getelementptr inbounds i8, ptr %8, i64 -8
  %38 = getelementptr inbounds i8, ptr %9, i64 -8
  %39 = load i32, ptr %11, align 4, !tbaa !5
  %narrow717 = xor i32 %39, -1
  %40 = sext i32 %narrow717 to i64
  %41 = getelementptr inbounds double, ptr %10, i64 %40
  %42 = load i32, ptr %13, align 4, !tbaa !5
  %narrow718 = xor i32 %42, -1
  %43 = sext i32 %narrow718 to i64
  %44 = getelementptr inbounds double, ptr %12, i64 %43
  %45 = getelementptr inbounds i8, ptr %14, i64 -8
  %46 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %.not = icmp eq i32 %46, 0
  br i1 %.not, label %47, label %49

47:                                               ; preds = %17
  %48 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not698 = icmp eq i32 %48, 0
  %not..not698 = xor i1 %.not698, true
  br label %49

49:                                               ; preds = %47, %17
  %50 = phi i1 [ false, %17 ], [ %not..not698, %47 ]
  %51 = phi i1 [ false, %17 ], [ %.not698, %47 ]
  %52 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %.not699 = icmp eq i32 %52, 0
  br i1 %.not699, label %53, label %55

53:                                               ; preds = %49
  %54 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %.not700 = icmp eq i32 %54, 0
  %not..not700 = xor i1 %.not700, true
  br label %55

55:                                               ; preds = %53, %49
  %56 = phi i1 [ false, %49 ], [ %not..not700, %53 ]
  %57 = phi i1 [ false, %49 ], [ %.not700, %53 ]
  %58 = or i1 %50, %56
  %59 = load i32, ptr %2, align 4, !tbaa !5
  %60 = shl i32 %59, 3
  %61 = tail call i32 @llvm.smax.i32(i32 %60, i32 1)
  %62 = uitofp nneg i32 %61 to double
  store double %62, ptr %14, align 8, !tbaa !9
  %63 = load i32, ptr %15, align 4, !tbaa !5
  %64 = icmp eq i32 %63, -1
  store i32 0, ptr %16, align 4, !tbaa !5
  %brmerge = select i1 %51, i1 true, i1 %57
  %.mux = select i1 %51, i32 -1, i32 -2
  br i1 %brmerge, label %.thread747.sink.split, label %65

65:                                               ; preds = %55
  %66 = load i32, ptr %2, align 4, !tbaa !5
  %67 = icmp slt i32 %66, 0
  br i1 %67, label %.thread747.sink.split, label %68

68:                                               ; preds = %65
  %69 = load i32, ptr %4, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %66, i32 1)
  %70 = icmp slt i32 %69, %spec.select
  br i1 %70, label %.thread747.sink.split, label %71

71:                                               ; preds = %68
  %72 = load i32, ptr %6, align 4, !tbaa !5
  %73 = icmp slt i32 %72, %spec.select
  br i1 %73, label %.thread747.sink.split, label %74

74:                                               ; preds = %71
  %75 = load i32, ptr %11, align 4, !tbaa !5
  %76 = icmp slt i32 %75, 1
  %77 = icmp ult i32 %75, %66
  %or.cond792 = and i1 %50, %77
  %or.cond795 = select i1 %76, i1 true, i1 %or.cond792
  br i1 %or.cond795, label %.thread747.sink.split, label %78

78:                                               ; preds = %74
  %79 = load i32, ptr %13, align 4, !tbaa !5
  %80 = icmp slt i32 %79, 1
  %81 = icmp ult i32 %79, %66
  %or.cond793 = and i1 %56, %81
  %or.cond796 = select i1 %80, i1 true, i1 %or.cond793
  br i1 %or.cond796, label %.thread747.sink.split, label %82

82:                                               ; preds = %78
  %83 = load i32, ptr %15, align 4, !tbaa !5
  %84 = icmp sge i32 %83, %61
  %or.cond = select i1 %84, i1 true, i1 %64
  br i1 %or.cond, label %.thread, label %.thread747.sink.split

.thread:                                          ; preds = %82
  %85 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %86 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %87 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %88 = tail call i32 @llvm.smax.i32(i32 %85, i32 %86)
  %89 = tail call i32 @llvm.smax.i32(i32 %88, i32 %87)
  %90 = load i32, ptr %2, align 4, !tbaa !5
  %91 = mul nsw i32 %90, 6
  store i32 %91, ptr %18, align 4, !tbaa !5
  %92 = add nsw i32 %89, 1
  %93 = mul nsw i32 %90, %92
  store i32 %93, ptr %19, align 4, !tbaa !5
  %94 = shl i32 %90, 1
  %95 = tail call i32 @llvm.smax.i32(i32 %91, i32 %93)
  %96 = add nsw i32 %95, %94
  %97 = sitofp i32 %96 to double
  store double %97, ptr %14, align 8, !tbaa !9
  %.pr746.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not704 = icmp eq i32 %.pr746.pr, 0
  br i1 %.not704, label %101, label %.thread747

.thread747.sink.split:                            ; preds = %55, %82, %78, %74, %71, %68, %65
  %.sink = phi i32 [ %.mux, %55 ], [ -3, %65 ], [ -5, %68 ], [ -7, %71 ], [ -12, %74 ], [ -14, %78 ], [ -16, %82 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread747

.thread747:                                       ; preds = %.thread747.sink.split, %.thread
  %98 = phi i32 [ %.pr746.pr, %.thread ], [ %.sink, %.thread747.sink.split ]
  %99 = sub nsw i32 0, %98
  store i32 %99, ptr %18, align 4, !tbaa !5
  %100 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %18, i32 noundef 6) #5
  br label %592

101:                                              ; preds = %.thread
  %102 = icmp eq i32 %90, 0
  %or.cond944 = select i1 %64, i1 true, i1 %102
  br i1 %or.cond944, label %592, label %103

103:                                              ; preds = %101
  %104 = tail call double @dlamch_(ptr noundef nonnull @.str.7) #5
  %105 = tail call double @dlamch_(ptr noundef nonnull @.str.8) #5
  %106 = fmul double %104, %105
  %107 = tail call double @dlamch_(ptr noundef nonnull @.str.9) #5
  %108 = fadd double %107, %107
  %109 = fdiv double 1.000000e+00, %108
  %110 = tail call double @llvm.fmuladd.f64(double %106, double 4.000000e+00, double 1.000000e+00)
  %111 = tail call double @dlange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  store double %111, ptr %20, align 8, !tbaa !9
  %112 = fcmp olt double %111, 1.000000e+00
  br i1 %112, label %113, label %117

113:                                              ; preds = %103
  %114 = fmul double %111, %109
  %115 = fcmp olt double %114, 1.000000e+00
  br i1 %115, label %116, label %117

116:                                              ; preds = %113
  br label %117

117:                                              ; preds = %113, %116, %103
  %.0673 = phi double [ %108, %116 ], [ %111, %113 ], [ %111, %103 ]
  %.0672 = phi double [ %114, %116 ], [ 1.000000e+00, %113 ], [ 1.000000e+00, %103 ]
  %118 = fcmp ogt double %111, 0.000000e+00
  br i1 %118, label %119, label %124

119:                                              ; preds = %117
  call void @dlascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %20, ptr noundef nonnull @c_b27, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %22) #5
  %120 = load i32, ptr %22, align 4, !tbaa !5
  %.not705 = icmp eq i32 %120, 0
  br i1 %.not705, label %124, label %121

121:                                              ; preds = %119
  %122 = load i32, ptr %2, align 4, !tbaa !5
  %123 = add nsw i32 %122, 10
  store i32 %123, ptr %16, align 4, !tbaa !5
  br label %592

124:                                              ; preds = %119, %117
  %125 = call double @dlange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %14) #5
  store double %125, ptr %21, align 8, !tbaa !9
  %126 = fcmp olt double %125, 1.000000e+00
  br i1 %126, label %127, label %131

127:                                              ; preds = %124
  %128 = fmul double %109, %125
  %129 = fcmp olt double %128, 1.000000e+00
  br i1 %129, label %130, label %131

130:                                              ; preds = %127
  br label %131

131:                                              ; preds = %127, %130, %124
  %.0671 = phi double [ %108, %130 ], [ %125, %127 ], [ %125, %124 ]
  %.0670 = phi double [ %128, %130 ], [ 1.000000e+00, %127 ], [ 1.000000e+00, %124 ]
  %132 = fcmp ogt double %125, 0.000000e+00
  br i1 %132, label %133, label %138

133:                                              ; preds = %131
  call void @dlascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %21, ptr noundef nonnull @c_b27, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22) #5
  %134 = load i32, ptr %22, align 4, !tbaa !5
  %.not707 = icmp eq i32 %134, 0
  br i1 %.not707, label %138, label %135

135:                                              ; preds = %133
  %136 = load i32, ptr %2, align 4, !tbaa !5
  %137 = add nsw i32 %136, 10
  store i32 %137, ptr %16, align 4, !tbaa !5
  br label %592

138:                                              ; preds = %133, %131
  %139 = load i32, ptr %2, align 4, !tbaa !5
  %140 = add nsw i32 %139, 1
  %141 = add nsw i32 %140, %139
  %142 = sext i32 %140 to i64
  %143 = getelementptr inbounds double, ptr %45, i64 %142
  %144 = sext i32 %141 to i64
  %145 = getelementptr inbounds double, ptr %45, i64 %144
  call void @dggbal_(ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef nonnull %14, ptr noundef nonnull %143, ptr noundef nonnull %145, ptr noundef nonnull %22) #5
  %146 = load i32, ptr %22, align 4, !tbaa !5
  %.not708 = icmp eq i32 %146, 0
  br i1 %.not708, label %150, label %147

147:                                              ; preds = %138
  %148 = load i32, ptr %2, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  br label %.loopexit.sink.split

150:                                              ; preds = %138
  %151 = load i32, ptr %28, align 4, !tbaa !5
  %152 = add nsw i32 %151, 1
  %153 = load i32, ptr %29, align 4, !tbaa !5
  %154 = sub i32 %152, %153
  store i32 %154, ptr %24, align 4, !tbaa !5
  br i1 %58, label %155, label %158

155:                                              ; preds = %150
  %156 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub = sub i32 %156, %153
  %157 = add i32 %reass.sub, 1
  br label %158

158:                                              ; preds = %150, %155
  %storemerge = phi i32 [ %157, %155 ], [ %154, %150 ]
  store i32 %storemerge, ptr %23, align 4, !tbaa !5
  %159 = add nsw i32 %154, %141
  %160 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub848 = sub i32 %160, %159
  %161 = add i32 %reass.sub848, 1
  store i32 %161, ptr %18, align 4, !tbaa !5
  %162 = add i32 %33, 1
  %163 = mul i32 %153, %162
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds double, ptr %35, i64 %164
  %166 = sext i32 %159 to i64
  %167 = getelementptr inbounds double, ptr %45, i64 %166
  call void @dgeqrf_(ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef %165, ptr noundef nonnull %6, ptr noundef nonnull %145, ptr noundef nonnull %167, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %168 = load i32, ptr %22, align 4, !tbaa !5
  %169 = icmp sgt i32 %168, -1
  br i1 %169, label %170, label %.thread749

170:                                              ; preds = %158
  %171 = load double, ptr %167, align 8, !tbaa !9
  %172 = fptosi double %171 to i32
  %173 = add i32 %159, -1
  %174 = add i32 %173, %172
  store i32 %174, ptr %19, align 4, !tbaa !5
  %175 = call i32 @llvm.smax.i32(i32 %61, i32 %174)
  %.not710 = icmp eq i32 %168, 0
  br i1 %.not710, label %178, label %.thread749

.thread749:                                       ; preds = %158, %170
  %.0752 = phi i32 [ %175, %170 ], [ %61, %158 ]
  %176 = load i32, ptr %2, align 4, !tbaa !5
  %177 = add nsw i32 %176, 2
  br label %.loopexit.sink.split

178:                                              ; preds = %170
  %179 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub849 = sub i32 %179, %159
  %180 = add i32 %reass.sub849, 1
  store i32 %180, ptr %18, align 4, !tbaa !5
  %181 = load i32, ptr %29, align 4, !tbaa !5
  %182 = mul i32 %181, %162
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds double, ptr %35, i64 %183
  %185 = add i32 %30, 1
  %186 = mul i32 %181, %185
  %187 = sext i32 %186 to i64
  %188 = getelementptr inbounds double, ptr %32, i64 %187
  call void @dormqr_(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef %184, ptr noundef nonnull %6, ptr noundef nonnull %145, ptr noundef %188, ptr noundef nonnull %4, ptr noundef nonnull %167, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %189 = load i32, ptr %22, align 4, !tbaa !5
  %190 = icmp sgt i32 %189, -1
  br i1 %190, label %191, label %.thread753

191:                                              ; preds = %178
  store i32 %175, ptr %18, align 4, !tbaa !5
  %192 = load double, ptr %167, align 8, !tbaa !9
  %193 = fptosi double %192 to i32
  %194 = add i32 %173, %193
  store i32 %194, ptr %19, align 4, !tbaa !5
  %195 = call i32 @llvm.smax.i32(i32 %175, i32 %194)
  %.not712 = icmp eq i32 %189, 0
  br i1 %.not712, label %198, label %.thread753

.thread753:                                       ; preds = %178, %191
  %.1756 = phi i32 [ %195, %191 ], [ %175, %178 ]
  %196 = load i32, ptr %2, align 4, !tbaa !5
  %197 = add nsw i32 %196, 3
  br label %.loopexit.sink.split

198:                                              ; preds = %191
  br i1 %50, label %199, label %228

199:                                              ; preds = %198
  call void @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b38, ptr noundef nonnull @c_b27, ptr noundef %10, ptr noundef nonnull %11) #5
  %200 = load i32, ptr %24, align 4, !tbaa !5
  %201 = add nsw i32 %200, -1
  store i32 %201, ptr %18, align 4, !tbaa !5
  store i32 %201, ptr %19, align 4, !tbaa !5
  %202 = load i32, ptr %29, align 4, !tbaa !5
  %203 = add nsw i32 %202, 1
  %204 = mul nsw i32 %202, %33
  %205 = add nsw i32 %203, %204
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds double, ptr %35, i64 %206
  %208 = mul nsw i32 %202, %39
  %209 = add nsw i32 %203, %208
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds double, ptr %41, i64 %210
  call void @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %207, ptr noundef nonnull %6, ptr noundef %211, ptr noundef nonnull %11) #5
  %212 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub850 = sub i32 %212, %159
  %213 = add i32 %reass.sub850, 1
  store i32 %213, ptr %18, align 4, !tbaa !5
  %214 = load i32, ptr %29, align 4, !tbaa !5
  %215 = add i32 %39, 1
  %216 = mul i32 %214, %215
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds double, ptr %41, i64 %217
  call void @dorgqr_(ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef %218, ptr noundef nonnull %11, ptr noundef nonnull %145, ptr noundef nonnull %167, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %219 = load i32, ptr %22, align 4, !tbaa !5
  %220 = icmp sgt i32 %219, -1
  br i1 %220, label %221, label %.thread757

221:                                              ; preds = %199
  store i32 %195, ptr %18, align 4, !tbaa !5
  %222 = load double, ptr %167, align 8, !tbaa !9
  %223 = fptosi double %222 to i32
  %224 = add i32 %173, %223
  store i32 %224, ptr %19, align 4, !tbaa !5
  %225 = call i32 @llvm.smax.i32(i32 %195, i32 %224)
  %.not714 = icmp eq i32 %219, 0
  br i1 %.not714, label %.thread762, label %.thread757

.thread757:                                       ; preds = %199, %221
  %.2760 = phi i32 [ %225, %221 ], [ %195, %199 ]
  %226 = load i32, ptr %2, align 4, !tbaa !5
  %227 = add nsw i32 %226, 4
  br label %.loopexit.sink.split

228:                                              ; preds = %198
  br i1 %56, label %.thread761, label %229

.thread762:                                       ; preds = %221
  br i1 %56, label %.thread761, label %.thread768

.thread761:                                       ; preds = %228, %.thread762
  %.3767 = phi i32 [ %225, %.thread762 ], [ %195, %228 ]
  call void @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b38, ptr noundef nonnull @c_b27, ptr noundef %12, ptr noundef nonnull %13) #5
  br label %.thread768

229:                                              ; preds = %228
  br i1 %58, label %.thread768, label %230

.thread768:                                       ; preds = %.thread762, %.thread761, %229
  %.3765 = phi i32 [ %.3767, %.thread761 ], [ %195, %229 ], [ %225, %.thread762 ]
  call void @dgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %22) #5
  br label %238

230:                                              ; preds = %229
  %231 = load i32, ptr %29, align 4, !tbaa !5
  %232 = mul i32 %231, %185
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds double, ptr %32, i64 %233
  %235 = mul i32 %231, %162
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds double, ptr %35, i64 %236
  call void @dgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef %234, ptr noundef nonnull %4, ptr noundef %237, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %22) #5
  br label %238

238:                                              ; preds = %230, %.thread768
  %.3764 = phi i32 [ %195, %230 ], [ %.3765, %.thread768 ]
  %239 = load i32, ptr %22, align 4, !tbaa !5
  %.not715 = icmp eq i32 %239, 0
  br i1 %.not715, label %243, label %240

240:                                              ; preds = %238
  %241 = load i32, ptr %2, align 4, !tbaa !5
  %242 = add nsw i32 %241, 5
  br label %.loopexit.sink.split

243:                                              ; preds = %238
  %.743 = select i1 %58, i8 83, i8 69
  store i8 %.743, ptr %26, align 1, !tbaa !11
  %244 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub851 = sub i32 %244, %141
  %245 = add i32 %reass.sub851, 1
  store i32 %245, ptr %18, align 4, !tbaa !5
  call void @dhgeqz_(ptr noundef nonnull %26, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %145, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %246 = load i32, ptr %22, align 4, !tbaa !5
  %247 = icmp sgt i32 %246, -1
  br i1 %247, label %248, label %._crit_edge

._crit_edge:                                      ; preds = %243
  %.pre = load i32, ptr %2, align 4, !tbaa !5
  br label %256

248:                                              ; preds = %243
  store i32 %.3764, ptr %18, align 4, !tbaa !5
  %249 = load double, ptr %145, align 8, !tbaa !9
  %250 = fptosi double %249 to i32
  %251 = shl i32 %139, 1
  %252 = add i32 %251, %250
  store i32 %252, ptr %19, align 4, !tbaa !5
  %253 = call i32 @llvm.smax.i32(i32 %.3764, i32 %252)
  %.not720 = icmp eq i32 %246, 0
  br i1 %.not720, label %264, label %254

254:                                              ; preds = %248
  %255 = load i32, ptr %2, align 4, !tbaa !5
  %.not737 = icmp sgt i32 %246, %255
  br i1 %.not737, label %256, label %.loopexit.sink.split

256:                                              ; preds = %._crit_edge, %254
  %257 = phi i32 [ %255, %254 ], [ %.pre, %._crit_edge ]
  %.4773777 = phi i32 [ %253, %254 ], [ %.3764, %._crit_edge ]
  %258 = icmp sle i32 %246, %257
  %259 = shl i32 %257, 1
  %.not738 = icmp sgt i32 %246, %259
  %or.cond744 = or i1 %258, %.not738
  br i1 %or.cond744, label %262, label %260

260:                                              ; preds = %256
  %261 = sub nsw i32 %246, %257
  br label %.loopexit.sink.split

262:                                              ; preds = %256
  %263 = add nsw i32 %257, 6
  br label %.loopexit.sink.split

264:                                              ; preds = %248
  br i1 %58, label %265, label %.loopexit804

265:                                              ; preds = %264
  br i1 %50, label %266, label %.thread778

266:                                              ; preds = %265
  %. = select i1 %56, i8 66, i8 76
  store i8 %., ptr %26, align 1, !tbaa !11
  call void @dtgevc_(ptr noundef nonnull %26, ptr noundef nonnull @.str.8, ptr noundef nonnull %27, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef nonnull %145, ptr noundef nonnull %22) #5
  %267 = load i32, ptr %22, align 4, !tbaa !5
  %.not721 = icmp eq i32 %267, 0
  br i1 %.not721, label %272, label %269

.thread778:                                       ; preds = %265
  store i8 82, ptr %26, align 1, !tbaa !11
  call void @dtgevc_(ptr noundef nonnull %26, ptr noundef nonnull @.str.8, ptr noundef nonnull %27, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef nonnull %145, ptr noundef nonnull %22) #5
  %268 = load i32, ptr %22, align 4, !tbaa !5
  %.not721779 = icmp eq i32 %268, 0
  br i1 %.not721779, label %.thread780, label %269

269:                                              ; preds = %.thread778, %266
  %270 = load i32, ptr %2, align 4, !tbaa !5
  %271 = add nsw i32 %270, 7
  br label %.loopexit.sink.split

272:                                              ; preds = %266
  call void @dggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef nonnull %14, ptr noundef nonnull %143, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %22) #5
  %273 = load i32, ptr %22, align 4, !tbaa !5
  %.not722 = icmp eq i32 %273, 0
  %274 = load i32, ptr %2, align 4, !tbaa !5
  br i1 %.not722, label %277, label %275

275:                                              ; preds = %272
  %276 = add nsw i32 %274, 8
  br label %.loopexit.sink.split

277:                                              ; preds = %272
  store i32 %274, ptr %18, align 4, !tbaa !5
  %.not723823 = icmp slt i32 %274, 1
  br i1 %.not723823, label %.thread780, label %.lr.ph825

.lr.ph825:                                        ; preds = %277
  %278 = add nuw i32 %274, 1
  %279 = sext i32 %39 to i64
  %wide.trip.count878 = zext i32 %278 to i64
  %280 = zext nneg i32 %274 to i64
  %281 = shl nsw i64 %279, 3
  %282 = shl nsw i64 %40, 3
  %283 = getelementptr i8, ptr %10, i64 %281
  %284 = getelementptr i8, ptr %283, i64 %282
  %scevgep = getelementptr i8, ptr %284, i64 8
  %285 = shl nuw nsw i64 %wide.trip.count878, 3
  %286 = add nsw i64 %285, -8
  %287 = mul i64 %286, %279
  %288 = getelementptr i8, ptr %10, i64 %287
  %289 = getelementptr i8, ptr %288, i64 %282
  %scevgep954 = getelementptr i8, ptr %289, i64 %285
  %290 = shl nsw i64 %279, 4
  %291 = getelementptr i8, ptr %10, i64 %290
  %292 = getelementptr i8, ptr %291, i64 %282
  %scevgep955 = getelementptr i8, ptr %292, i64 8
  %293 = add nsw i64 %281, 8
  %294 = mul i64 %293, %wide.trip.count878
  %295 = getelementptr i8, ptr %10, i64 %294
  %scevgep956 = getelementptr i8, ptr %295, i64 %282
  %296 = zext nneg i32 %274 to i64
  %297 = zext nneg i32 %274 to i64
  %298 = zext nneg i32 %274 to i64
  %xtraiter = and i64 %297, 1
  %299 = icmp eq i32 %278, 2
  %unroll_iter = and i64 %297, 2147483646
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %min.iters.check960 = icmp ult i32 %274, 4
  %bound0 = icmp ult ptr %scevgep, %scevgep956
  %bound1 = icmp ult ptr %scevgep955, %scevgep954
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i32 %39, 0
  %300 = or i1 %found.conflict, %stride.check
  %n.vec963 = and i64 %296, 2147483644
  %ind.end964 = or disjoint i64 %n.vec963, 1
  %cmp.n976 = icmp eq i64 %n.vec963, %296
  %301 = and i32 %274, 1
  %lcmp.mod1032.not = icmp eq i32 %301, 0
  %min.iters.check = icmp ult i32 %274, 4
  %n.vec = and i64 %280, 2147483644
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %n.vec, %280
  br label %302

302:                                              ; preds = %.lr.ph825, %.loopexit805
  %indvars.iv875 = phi i64 [ 1, %.lr.ph825 ], [ %indvars.iv.next876, %.loopexit805 ]
  %303 = getelementptr inbounds double, ptr %37, i64 %indvars.iv875
  %304 = load double, ptr %303, align 8, !tbaa !9
  %305 = fcmp olt double %304, 0.000000e+00
  br i1 %305, label %.loopexit805, label %306

306:                                              ; preds = %302
  %307 = fcmp oeq double %304, 0.000000e+00
  store i32 %274, ptr %19, align 4, !tbaa !5
  %308 = mul nsw i64 %indvars.iv875, %279
  br i1 %307, label %.lr.ph815, label %.lr.ph

.lr.ph815:                                        ; preds = %306
  %invariant.gep924 = getelementptr double, ptr %41, i64 %308
  br i1 %299, label %.loopexit807.loopexit.unr-lcssa, label %.lr.ph815.new

.lr.ph815.new:                                    ; preds = %.lr.ph815
  %invariant.gep1044 = getelementptr i8, ptr %invariant.gep924, i64 8
  br label %309

309:                                              ; preds = %309, %.lr.ph815.new
  %indvars.iv860 = phi i64 [ 1, %.lr.ph815.new ], [ %indvars.iv.next861.1, %309 ]
  %.0658813 = phi double [ 0.000000e+00, %.lr.ph815.new ], [ %321, %309 ]
  %niter = phi i64 [ 0, %.lr.ph815.new ], [ %niter.next.1, %309 ]
  %gep925 = getelementptr double, ptr %invariant.gep924, i64 %indvars.iv860
  %310 = load double, ptr %gep925, align 8, !tbaa !9
  %311 = fcmp oge double %310, 0.000000e+00
  %312 = fneg double %310
  %313 = select i1 %311, double %310, double %312
  %314 = fcmp oge double %.0658813, %313
  %315 = select i1 %314, double %.0658813, double %313
  %gep1045 = getelementptr double, ptr %invariant.gep1044, i64 %indvars.iv860
  %316 = load double, ptr %gep1045, align 8, !tbaa !9
  %317 = fcmp oge double %316, 0.000000e+00
  %318 = fneg double %316
  %319 = select i1 %317, double %316, double %318
  %320 = fcmp oge double %315, %319
  %321 = select i1 %320, double %315, double %319
  %indvars.iv.next861.1 = add nuw nsw i64 %indvars.iv860, 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 %.loopexit807.loopexit.unr-lcssa, label %309, !llvm.loop !12

.lr.ph:                                           ; preds = %306
  %322 = add nuw nsw i64 %indvars.iv875, 1
  %323 = mul nsw i64 %322, %279
  %invariant.gep = getelementptr double, ptr %41, i64 %308
  %invariant.gep922 = getelementptr double, ptr %41, i64 %323
  br label %324

324:                                              ; preds = %.lr.ph, %324
  %indvars.iv = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next, %324 ]
  %.1659810 = phi double [ 0.000000e+00, %.lr.ph ], [ %335, %324 ]
  %gep = getelementptr double, ptr %invariant.gep, i64 %indvars.iv
  %325 = load double, ptr %gep, align 8, !tbaa !9
  %326 = fcmp oge double %325, 0.000000e+00
  %327 = fneg double %325
  %328 = select i1 %326, double %325, double %327
  %gep923 = getelementptr double, ptr %invariant.gep922, i64 %indvars.iv
  %329 = load double, ptr %gep923, align 8, !tbaa !9
  %330 = fcmp oge double %329, 0.000000e+00
  %331 = fneg double %329
  %332 = select i1 %330, double %329, double %331
  %333 = fadd double %328, %332
  %334 = fcmp oge double %.1659810, %333
  %335 = select i1 %334, double %.1659810, double %333
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count878
  br i1 %exitcond.not, label %.loopexit807, label %324, !llvm.loop !14

.loopexit807.loopexit.unr-lcssa:                  ; preds = %309, %.lr.ph815
  %.lcssa1029.ph = phi double [ poison, %.lr.ph815 ], [ %321, %309 ]
  %indvars.iv860.unr = phi i64 [ 1, %.lr.ph815 ], [ %indvars.iv.next861.1, %309 ]
  %.0658813.unr = phi double [ 0.000000e+00, %.lr.ph815 ], [ %321, %309 ]
  br i1 %lcmp.mod.not, label %.loopexit807, label %.loopexit807.loopexit.epilog-lcssa

.loopexit807.loopexit.epilog-lcssa:               ; preds = %.loopexit807.loopexit.unr-lcssa
  %gep925.epil = getelementptr double, ptr %invariant.gep924, i64 %indvars.iv860.unr
  %336 = load double, ptr %gep925.epil, align 8, !tbaa !9
  %337 = fcmp oge double %336, 0.000000e+00
  %338 = fneg double %336
  %339 = select i1 %337, double %336, double %338
  %340 = fcmp oge double %.0658813.unr, %339
  %341 = select i1 %340, double %.0658813.unr, double %339
  br label %.loopexit807

.loopexit807:                                     ; preds = %324, %.loopexit807.loopexit.epilog-lcssa, %.loopexit807.loopexit.unr-lcssa
  %.2660 = phi double [ %.lcssa1029.ph, %.loopexit807.loopexit.unr-lcssa ], [ %341, %.loopexit807.loopexit.epilog-lcssa ], [ %335, %324 ]
  %342 = fcmp olt double %.2660, %108
  br i1 %342, label %.loopexit805, label %343

343:                                              ; preds = %.loopexit807
  %344 = fdiv double 1.000000e+00, %.2660
  store i32 %274, ptr %19, align 4, !tbaa !5
  %345 = mul nsw i64 %indvars.iv875, %279
  br i1 %307, label %.lr.ph822, label %.lr.ph819

.lr.ph822:                                        ; preds = %343
  %invariant.gep930 = getelementptr double, ptr %41, i64 %345
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph822
  %broadcast.splatinsert = insertelement <2 x double> poison, double %344, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> 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 ]
  %offset.idx = or disjoint i64 %index, 1
  %346 = getelementptr double, ptr %invariant.gep930, i64 %offset.idx
  %347 = getelementptr i8, ptr %346, i64 16
  %wide.load = load <2 x double>, ptr %346, align 8, !tbaa !9
  %wide.load953 = load <2 x double>, ptr %347, align 8, !tbaa !9
  %348 = fmul <2 x double> %broadcast.splat, %wide.load
  %349 = fmul <2 x double> %broadcast.splat, %wide.load953
  store <2 x double> %348, ptr %346, align 8, !tbaa !9
  store <2 x double> %349, ptr %347, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %350 = icmp eq i64 %index.next, %n.vec
  br i1 %350, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %.loopexit805, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph822
  %indvars.iv870.ph = phi i64 [ 1, %.lr.ph822 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv870 = phi i64 [ %indvars.iv.next871, %scalar.ph ], [ %indvars.iv870.ph, %scalar.ph.preheader ]
  %gep931 = getelementptr double, ptr %invariant.gep930, i64 %indvars.iv870
  %351 = load double, ptr %gep931, align 8, !tbaa !9
  %352 = fmul double %344, %351
  store double %352, ptr %gep931, align 8, !tbaa !9
  %indvars.iv.next871 = add nuw nsw i64 %indvars.iv870, 1
  %exitcond874.not = icmp eq i64 %indvars.iv.next871, %wide.trip.count878
  br i1 %exitcond874.not, label %.loopexit805, label %scalar.ph, !llvm.loop !18

.lr.ph819:                                        ; preds = %343
  %353 = add nuw nsw i64 %indvars.iv875, 1
  %354 = mul nsw i64 %353, %279
  %invariant.gep926 = getelementptr double, ptr %41, i64 %345
  %invariant.gep928 = getelementptr double, ptr %41, i64 %354
  %brmerge1048 = select i1 %min.iters.check960, i1 true, i1 %300
  br i1 %brmerge1048, label %scalar.ph959.preheader, label %vector.ph961

vector.ph961:                                     ; preds = %.lr.ph819
  %broadcast.splatinsert971 = insertelement <2 x double> poison, double %344, i64 0
  %broadcast.splat972 = shufflevector <2 x double> %broadcast.splatinsert971, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body966

vector.body966:                                   ; preds = %vector.body966, %vector.ph961
  %index967 = phi i64 [ 0, %vector.ph961 ], [ %index.next975, %vector.body966 ]
  %offset.idx968 = or disjoint i64 %index967, 1
  %355 = getelementptr double, ptr %invariant.gep926, i64 %offset.idx968
  %356 = getelementptr i8, ptr %355, i64 16
  %wide.load969 = load <2 x double>, ptr %355, align 8, !tbaa !9, !alias.scope !19, !noalias !22
  %wide.load970 = load <2 x double>, ptr %356, align 8, !tbaa !9, !alias.scope !19, !noalias !22
  %357 = fmul <2 x double> %broadcast.splat972, %wide.load969
  %358 = fmul <2 x double> %broadcast.splat972, %wide.load970
  store <2 x double> %357, ptr %355, align 8, !tbaa !9, !alias.scope !19, !noalias !22
  store <2 x double> %358, ptr %356, align 8, !tbaa !9, !alias.scope !19, !noalias !22
  %359 = getelementptr double, ptr %invariant.gep928, i64 %offset.idx968
  %360 = getelementptr i8, ptr %359, i64 16
  %wide.load973 = load <2 x double>, ptr %359, align 8, !tbaa !9, !alias.scope !22
  %wide.load974 = load <2 x double>, ptr %360, align 8, !tbaa !9, !alias.scope !22
  %361 = fmul <2 x double> %broadcast.splat972, %wide.load973
  %362 = fmul <2 x double> %broadcast.splat972, %wide.load974
  store <2 x double> %361, ptr %359, align 8, !tbaa !9, !alias.scope !22
  store <2 x double> %362, ptr %360, align 8, !tbaa !9, !alias.scope !22
  %index.next975 = add nuw i64 %index967, 4
  %363 = icmp eq i64 %index.next975, %n.vec963
  br i1 %363, label %middle.block958, label %vector.body966, !llvm.loop !24

middle.block958:                                  ; preds = %vector.body966
  br i1 %cmp.n976, label %.loopexit805, label %scalar.ph959.preheader

scalar.ph959.preheader:                           ; preds = %.lr.ph819, %middle.block958
  %indvars.iv865.ph = phi i64 [ 1, %.lr.ph819 ], [ %ind.end964, %middle.block958 ]
  br i1 %lcmp.mod1032.not, label %scalar.ph959.prol.loopexit, label %scalar.ph959.prol

scalar.ph959.prol:                                ; preds = %scalar.ph959.preheader
  %gep927.prol = getelementptr double, ptr %invariant.gep926, i64 %indvars.iv865.ph
  %364 = load double, ptr %gep927.prol, align 8, !tbaa !9
  %365 = fmul double %344, %364
  store double %365, ptr %gep927.prol, align 8, !tbaa !9
  %gep929.prol = getelementptr double, ptr %invariant.gep928, i64 %indvars.iv865.ph
  %366 = load double, ptr %gep929.prol, align 8, !tbaa !9
  %367 = fmul double %344, %366
  store double %367, ptr %gep929.prol, align 8, !tbaa !9
  %indvars.iv.next866.prol = add nuw nsw i64 %indvars.iv865.ph, 1
  br label %scalar.ph959.prol.loopexit

scalar.ph959.prol.loopexit:                       ; preds = %scalar.ph959.prol, %scalar.ph959.preheader
  %indvars.iv865.unr = phi i64 [ %indvars.iv865.ph, %scalar.ph959.preheader ], [ %indvars.iv.next866.prol, %scalar.ph959.prol ]
  %368 = icmp eq i64 %indvars.iv865.ph, %298
  br i1 %368, label %.loopexit805, label %scalar.ph959

scalar.ph959:                                     ; preds = %scalar.ph959.prol.loopexit, %scalar.ph959
  %indvars.iv865 = phi i64 [ %indvars.iv.next866.1, %scalar.ph959 ], [ %indvars.iv865.unr, %scalar.ph959.prol.loopexit ]
  %gep927 = getelementptr double, ptr %invariant.gep926, i64 %indvars.iv865
  %369 = load double, ptr %gep927, align 8, !tbaa !9
  %370 = fmul double %344, %369
  store double %370, ptr %gep927, align 8, !tbaa !9
  %gep929 = getelementptr double, ptr %invariant.gep928, i64 %indvars.iv865
  %371 = load double, ptr %gep929, align 8, !tbaa !9
  %372 = fmul double %344, %371
  store double %372, ptr %gep929, align 8, !tbaa !9
  %indvars.iv.next866 = add nuw nsw i64 %indvars.iv865, 1
  %gep927.1 = getelementptr double, ptr %invariant.gep926, i64 %indvars.iv.next866
  %373 = load double, ptr %gep927.1, align 8, !tbaa !9
  %374 = fmul double %344, %373
  store double %374, ptr %gep927.1, align 8, !tbaa !9
  %gep929.1 = getelementptr double, ptr %invariant.gep928, i64 %indvars.iv.next866
  %375 = load double, ptr %gep929.1, align 8, !tbaa !9
  %376 = fmul double %344, %375
  store double %376, ptr %gep929.1, align 8, !tbaa !9
  %indvars.iv.next866.1 = add nuw nsw i64 %indvars.iv865, 2
  %exitcond869.not.1 = icmp eq i64 %indvars.iv.next866.1, %wide.trip.count878
  br i1 %exitcond869.not.1, label %.loopexit805, label %scalar.ph959, !llvm.loop !25

.loopexit805:                                     ; preds = %scalar.ph959.prol.loopexit, %scalar.ph959, %scalar.ph, %middle.block958, %middle.block, %302, %.loopexit807
  %indvars.iv.next876 = add nuw nsw i64 %indvars.iv875, 1
  %exitcond879.not = icmp eq i64 %indvars.iv.next876, %wide.trip.count878
  br i1 %exitcond879.not, label %.thread780, label %302, !llvm.loop !26

.thread780:                                       ; preds = %.loopexit805, %277, %.thread778
  br i1 %56, label %377, label %.loopexit804

377:                                              ; preds = %.thread780
  call void @dggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.16, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef nonnull %14, ptr noundef nonnull %143, ptr noundef nonnull %2, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %22) #5
  %378 = load i32, ptr %22, align 4, !tbaa !5
  %.not724 = icmp eq i32 %378, 0
  %379 = load i32, ptr %2, align 4, !tbaa !5
  br i1 %.not724, label %382, label %380

380:                                              ; preds = %377
  %381 = add nsw i32 %379, 9
  br label %.loopexit.sink.split

382:                                              ; preds = %377
  %.not725842 = icmp slt i32 %379, 1
  br i1 %.not725842, label %.loopexit, label %.lr.ph844

.lr.ph844:                                        ; preds = %382
  %383 = add nuw i32 %379, 1
  %384 = sext i32 %42 to i64
  %wide.trip.count903 = zext i32 %383 to i64
  %385 = zext nneg i32 %379 to i64
  %386 = shl nsw i64 %384, 3
  %387 = shl nsw i64 %43, 3
  %388 = getelementptr i8, ptr %12, i64 %386
  %389 = getelementptr i8, ptr %388, i64 %387
  %scevgep995 = getelementptr i8, ptr %389, i64 8
  %390 = shl nuw nsw i64 %wide.trip.count903, 3
  %391 = add nsw i64 %390, -8
  %392 = mul i64 %391, %384
  %393 = getelementptr i8, ptr %12, i64 %392
  %394 = getelementptr i8, ptr %393, i64 %387
  %scevgep996 = getelementptr i8, ptr %394, i64 %390
  %395 = shl nsw i64 %384, 4
  %396 = getelementptr i8, ptr %12, i64 %395
  %397 = getelementptr i8, ptr %396, i64 %387
  %scevgep997 = getelementptr i8, ptr %397, i64 8
  %398 = add nsw i64 %386, 8
  %399 = mul i64 %398, %wide.trip.count903
  %400 = getelementptr i8, ptr %12, i64 %399
  %scevgep998 = getelementptr i8, ptr %400, i64 %387
  %401 = zext nneg i32 %379 to i64
  %402 = zext nneg i32 %379 to i64
  %403 = zext nneg i32 %379 to i64
  %xtraiter1034 = and i64 %402, 1
  %404 = icmp eq i32 %383, 2
  %unroll_iter1037 = and i64 %402, 2147483646
  %lcmp.mod1035.not = icmp eq i64 %xtraiter1034, 0
  %min.iters.check1006 = icmp ult i32 %379, 4
  %bound0999 = icmp ult ptr %scevgep995, %scevgep998
  %bound11000 = icmp ult ptr %scevgep997, %scevgep996
  %found.conflict1001 = and i1 %bound0999, %bound11000
  %stride.check1002 = icmp slt i32 %42, 0
  %405 = or i1 %found.conflict1001, %stride.check1002
  %n.vec1009 = and i64 %401, 2147483644
  %ind.end1010 = or disjoint i64 %n.vec1009, 1
  %cmp.n1022 = icmp eq i64 %n.vec1009, %401
  %406 = and i32 %379, 1
  %lcmp.mod1040.not = icmp eq i32 %406, 0
  %min.iters.check979 = icmp ult i32 %379, 4
  %n.vec982 = and i64 %385, 2147483644
  %ind.end983 = or disjoint i64 %n.vec982, 1
  %cmp.n993 = icmp eq i64 %n.vec982, %385
  br label %407

407:                                              ; preds = %.lr.ph844, %.loopexit800
  %indvars.iv900 = phi i64 [ 1, %.lr.ph844 ], [ %indvars.iv.next901, %.loopexit800 ]
  %408 = getelementptr inbounds double, ptr %37, i64 %indvars.iv900
  %409 = load double, ptr %408, align 8, !tbaa !9
  %410 = fcmp olt double %409, 0.000000e+00
  br i1 %410, label %.loopexit800, label %411

411:                                              ; preds = %407
  %412 = fcmp oeq double %409, 0.000000e+00
  %413 = mul nsw i64 %indvars.iv900, %384
  br i1 %412, label %.lr.ph834, label %.lr.ph829

.lr.ph834:                                        ; preds = %411
  %invariant.gep936 = getelementptr double, ptr %44, i64 %413
  br i1 %404, label %.loopexit802.loopexit.unr-lcssa, label %.lr.ph834.new

.lr.ph834.new:                                    ; preds = %.lr.ph834
  %invariant.gep1046 = getelementptr i8, ptr %invariant.gep936, i64 8
  br label %414

414:                                              ; preds = %414, %.lr.ph834.new
  %indvars.iv885 = phi i64 [ 1, %.lr.ph834.new ], [ %indvars.iv.next886.1, %414 ]
  %.3661832 = phi double [ 0.000000e+00, %.lr.ph834.new ], [ %426, %414 ]
  %niter1038 = phi i64 [ 0, %.lr.ph834.new ], [ %niter1038.next.1, %414 ]
  %gep937 = getelementptr double, ptr %invariant.gep936, i64 %indvars.iv885
  %415 = load double, ptr %gep937, align 8, !tbaa !9
  %416 = fcmp oge double %415, 0.000000e+00
  %417 = fneg double %415
  %418 = select i1 %416, double %415, double %417
  %419 = fcmp oge double %.3661832, %418
  %420 = select i1 %419, double %.3661832, double %418
  %gep1047 = getelementptr double, ptr %invariant.gep1046, i64 %indvars.iv885
  %421 = load double, ptr %gep1047, align 8, !tbaa !9
  %422 = fcmp oge double %421, 0.000000e+00
  %423 = fneg double %421
  %424 = select i1 %422, double %421, double %423
  %425 = fcmp oge double %420, %424
  %426 = select i1 %425, double %420, double %424
  %indvars.iv.next886.1 = add nuw nsw i64 %indvars.iv885, 2
  %niter1038.next.1 = add i64 %niter1038, 2
  %niter1038.ncmp.1 = icmp eq i64 %niter1038.next.1, %unroll_iter1037
  br i1 %niter1038.ncmp.1, label %.loopexit802.loopexit.unr-lcssa, label %414, !llvm.loop !27

.lr.ph829:                                        ; preds = %411
  %427 = add nuw nsw i64 %indvars.iv900, 1
  %428 = mul nsw i64 %427, %384
  %invariant.gep932 = getelementptr double, ptr %44, i64 %413
  %invariant.gep934 = getelementptr double, ptr %44, i64 %428
  br label %429

429:                                              ; preds = %.lr.ph829, %429
  %indvars.iv880 = phi i64 [ 1, %.lr.ph829 ], [ %indvars.iv.next881, %429 ]
  %.4662827 = phi double [ 0.000000e+00, %.lr.ph829 ], [ %440, %429 ]
  %gep933 = getelementptr double, ptr %invariant.gep932, i64 %indvars.iv880
  %430 = load double, ptr %gep933, align 8, !tbaa !9
  %431 = fcmp oge double %430, 0.000000e+00
  %432 = fneg double %430
  %433 = select i1 %431, double %430, double %432
  %gep935 = getelementptr double, ptr %invariant.gep934, i64 %indvars.iv880
  %434 = load double, ptr %gep935, align 8, !tbaa !9
  %435 = fcmp oge double %434, 0.000000e+00
  %436 = fneg double %434
  %437 = select i1 %435, double %434, double %436
  %438 = fadd double %433, %437
  %439 = fcmp oge double %.4662827, %438
  %440 = select i1 %439, double %.4662827, double %438
  %indvars.iv.next881 = add nuw nsw i64 %indvars.iv880, 1
  %exitcond884.not = icmp eq i64 %indvars.iv.next881, %wide.trip.count903
  br i1 %exitcond884.not, label %.loopexit802, label %429, !llvm.loop !28

.loopexit802.loopexit.unr-lcssa:                  ; preds = %414, %.lr.ph834
  %.lcssa1025.ph = phi double [ poison, %.lr.ph834 ], [ %426, %414 ]
  %indvars.iv885.unr = phi i64 [ 1, %.lr.ph834 ], [ %indvars.iv.next886.1, %414 ]
  %.3661832.unr = phi double [ 0.000000e+00, %.lr.ph834 ], [ %426, %414 ]
  br i1 %lcmp.mod1035.not, label %.loopexit802, label %.loopexit802.loopexit.epilog-lcssa

.loopexit802.loopexit.epilog-lcssa:               ; preds = %.loopexit802.loopexit.unr-lcssa
  %gep937.epil = getelementptr double, ptr %invariant.gep936, i64 %indvars.iv885.unr
  %441 = load double, ptr %gep937.epil, align 8, !tbaa !9
  %442 = fcmp oge double %441, 0.000000e+00
  %443 = fneg double %441
  %444 = select i1 %442, double %441, double %443
  %445 = fcmp oge double %.3661832.unr, %444
  %446 = select i1 %445, double %.3661832.unr, double %444
  br label %.loopexit802

.loopexit802:                                     ; preds = %429, %.loopexit802.loopexit.epilog-lcssa, %.loopexit802.loopexit.unr-lcssa
  %.5663 = phi double [ %.lcssa1025.ph, %.loopexit802.loopexit.unr-lcssa ], [ %446, %.loopexit802.loopexit.epilog-lcssa ], [ %440, %429 ]
  %447 = fcmp olt double %.5663, %108
  br i1 %447, label %.loopexit800, label %448

448:                                              ; preds = %.loopexit802
  %449 = fdiv double 1.000000e+00, %.5663
  %450 = mul nsw i64 %indvars.iv900, %384
  br i1 %412, label %.lr.ph841, label %.lr.ph838

.lr.ph841:                                        ; preds = %448
  %invariant.gep942 = getelementptr double, ptr %44, i64 %450
  br i1 %min.iters.check979, label %scalar.ph978.preheader, label %vector.ph980

vector.ph980:                                     ; preds = %.lr.ph841
  %broadcast.splatinsert990 = insertelement <2 x double> poison, double %449, i64 0
  %broadcast.splat991 = shufflevector <2 x double> %broadcast.splatinsert990, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body985

vector.body985:                                   ; preds = %vector.body985, %vector.ph980
  %index986 = phi i64 [ 0, %vector.ph980 ], [ %index.next992, %vector.body985 ]
  %offset.idx987 = or disjoint i64 %index986, 1
  %451 = getelementptr double, ptr %invariant.gep942, i64 %offset.idx987
  %452 = getelementptr i8, ptr %451, i64 16
  %wide.load988 = load <2 x double>, ptr %451, align 8, !tbaa !9
  %wide.load989 = load <2 x double>, ptr %452, align 8, !tbaa !9
  %453 = fmul <2 x double> %broadcast.splat991, %wide.load988
  %454 = fmul <2 x double> %broadcast.splat991, %wide.load989
  store <2 x double> %453, ptr %451, align 8, !tbaa !9
  store <2 x double> %454, ptr %452, align 8, !tbaa !9
  %index.next992 = add nuw i64 %index986, 4
  %455 = icmp eq i64 %index.next992, %n.vec982
  br i1 %455, label %middle.block977, label %vector.body985, !llvm.loop !29

middle.block977:                                  ; preds = %vector.body985
  br i1 %cmp.n993, label %.loopexit800, label %scalar.ph978.preheader

scalar.ph978.preheader:                           ; preds = %middle.block977, %.lr.ph841
  %indvars.iv895.ph = phi i64 [ 1, %.lr.ph841 ], [ %ind.end983, %middle.block977 ]
  br label %scalar.ph978

scalar.ph978:                                     ; preds = %scalar.ph978.preheader, %scalar.ph978
  %indvars.iv895 = phi i64 [ %indvars.iv.next896, %scalar.ph978 ], [ %indvars.iv895.ph, %scalar.ph978.preheader ]
  %gep943 = getelementptr double, ptr %invariant.gep942, i64 %indvars.iv895
  %456 = load double, ptr %gep943, align 8, !tbaa !9
  %457 = fmul double %449, %456
  store double %457, ptr %gep943, align 8, !tbaa !9
  %indvars.iv.next896 = add nuw nsw i64 %indvars.iv895, 1
  %exitcond899.not = icmp eq i64 %indvars.iv.next896, %wide.trip.count903
  br i1 %exitcond899.not, label %.loopexit800, label %scalar.ph978, !llvm.loop !30

.lr.ph838:                                        ; preds = %448
  %458 = add nuw nsw i64 %indvars.iv900, 1
  %459 = mul nsw i64 %458, %384
  %invariant.gep938 = getelementptr double, ptr %44, i64 %450
  %invariant.gep940 = getelementptr double, ptr %44, i64 %459
  %brmerge1049 = select i1 %min.iters.check1006, i1 true, i1 %405
  br i1 %brmerge1049, label %scalar.ph1005.preheader, label %vector.ph1007

vector.ph1007:                                    ; preds = %.lr.ph838
  %broadcast.splatinsert1017 = insertelement <2 x double> poison, double %449, i64 0
  %broadcast.splat1018 = shufflevector <2 x double> %broadcast.splatinsert1017, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1012

vector.body1012:                                  ; preds = %vector.body1012, %vector.ph1007
  %index1013 = phi i64 [ 0, %vector.ph1007 ], [ %index.next1021, %vector.body1012 ]
  %offset.idx1014 = or disjoint i64 %index1013, 1
  %460 = getelementptr double, ptr %invariant.gep938, i64 %offset.idx1014
  %461 = getelementptr i8, ptr %460, i64 16
  %wide.load1015 = load <2 x double>, ptr %460, align 8, !tbaa !9, !alias.scope !31, !noalias !34
  %wide.load1016 = load <2 x double>, ptr %461, align 8, !tbaa !9, !alias.scope !31, !noalias !34
  %462 = fmul <2 x double> %broadcast.splat1018, %wide.load1015
  %463 = fmul <2 x double> %broadcast.splat1018, %wide.load1016
  store <2 x double> %462, ptr %460, align 8, !tbaa !9, !alias.scope !31, !noalias !34
  store <2 x double> %463, ptr %461, align 8, !tbaa !9, !alias.scope !31, !noalias !34
  %464 = getelementptr double, ptr %invariant.gep940, i64 %offset.idx1014
  %465 = getelementptr i8, ptr %464, i64 16
  %wide.load1019 = load <2 x double>, ptr %464, align 8, !tbaa !9, !alias.scope !34
  %wide.load1020 = load <2 x double>, ptr %465, align 8, !tbaa !9, !alias.scope !34
  %466 = fmul <2 x double> %broadcast.splat1018, %wide.load1019
  %467 = fmul <2 x double> %broadcast.splat1018, %wide.load1020
  store <2 x double> %466, ptr %464, align 8, !tbaa !9, !alias.scope !34
  store <2 x double> %467, ptr %465, align 8, !tbaa !9, !alias.scope !34
  %index.next1021 = add nuw i64 %index1013, 4
  %468 = icmp eq i64 %index.next1021, %n.vec1009
  br i1 %468, label %middle.block1004, label %vector.body1012, !llvm.loop !36

middle.block1004:                                 ; preds = %vector.body1012
  br i1 %cmp.n1022, label %.loopexit800, label %scalar.ph1005.preheader

scalar.ph1005.preheader:                          ; preds = %.lr.ph838, %middle.block1004
  %indvars.iv890.ph = phi i64 [ 1, %.lr.ph838 ], [ %ind.end1010, %middle.block1004 ]
  br i1 %lcmp.mod1040.not, label %scalar.ph1005.prol.loopexit, label %scalar.ph1005.prol

scalar.ph1005.prol:                               ; preds = %scalar.ph1005.preheader
  %gep939.prol = getelementptr double, ptr %invariant.gep938, i64 %indvars.iv890.ph
  %469 = load double, ptr %gep939.prol, align 8, !tbaa !9
  %470 = fmul double %449, %469
  store double %470, ptr %gep939.prol, align 8, !tbaa !9
  %gep941.prol = getelementptr double, ptr %invariant.gep940, i64 %indvars.iv890.ph
  %471 = load double, ptr %gep941.prol, align 8, !tbaa !9
  %472 = fmul double %449, %471
  store double %472, ptr %gep941.prol, align 8, !tbaa !9
  %indvars.iv.next891.prol = add nuw nsw i64 %indvars.iv890.ph, 1
  br label %scalar.ph1005.prol.loopexit

scalar.ph1005.prol.loopexit:                      ; preds = %scalar.ph1005.prol, %scalar.ph1005.preheader
  %indvars.iv890.unr = phi i64 [ %indvars.iv890.ph, %scalar.ph1005.preheader ], [ %indvars.iv.next891.prol, %scalar.ph1005.prol ]
  %473 = icmp eq i64 %indvars.iv890.ph, %403
  br i1 %473, label %.loopexit800, label %scalar.ph1005

scalar.ph1005:                                    ; preds = %scalar.ph1005.prol.loopexit, %scalar.ph1005
  %indvars.iv890 = phi i64 [ %indvars.iv.next891.1, %scalar.ph1005 ], [ %indvars.iv890.unr, %scalar.ph1005.prol.loopexit ]
  %gep939 = getelementptr double, ptr %invariant.gep938, i64 %indvars.iv890
  %474 = load double, ptr %gep939, align 8, !tbaa !9
  %475 = fmul double %449, %474
  store double %475, ptr %gep939, align 8, !tbaa !9
  %gep941 = getelementptr double, ptr %invariant.gep940, i64 %indvars.iv890
  %476 = load double, ptr %gep941, align 8, !tbaa !9
  %477 = fmul double %449, %476
  store double %477, ptr %gep941, align 8, !tbaa !9
  %indvars.iv.next891 = add nuw nsw i64 %indvars.iv890, 1
  %gep939.1 = getelementptr double, ptr %invariant.gep938, i64 %indvars.iv.next891
  %478 = load double, ptr %gep939.1, align 8, !tbaa !9
  %479 = fmul double %449, %478
  store double %479, ptr %gep939.1, align 8, !tbaa !9
  %gep941.1 = getelementptr double, ptr %invariant.gep940, i64 %indvars.iv.next891
  %480 = load double, ptr %gep941.1, align 8, !tbaa !9
  %481 = fmul double %449, %480
  store double %481, ptr %gep941.1, align 8, !tbaa !9
  %indvars.iv.next891.1 = add nuw nsw i64 %indvars.iv890, 2
  %exitcond894.not.1 = icmp eq i64 %indvars.iv.next891.1, %wide.trip.count903
  br i1 %exitcond894.not.1, label %.loopexit800, label %scalar.ph1005, !llvm.loop !37

.loopexit800:                                     ; preds = %scalar.ph1005.prol.loopexit, %scalar.ph1005, %scalar.ph978, %middle.block1004, %middle.block977, %407, %.loopexit802
  %indvars.iv.next901 = add nuw nsw i64 %indvars.iv900, 1
  %exitcond904.not = icmp eq i64 %indvars.iv.next901, %wide.trip.count903
  br i1 %exitcond904.not, label %.loopexit804, label %407, !llvm.loop !38

.loopexit804:                                     ; preds = %.loopexit800, %.thread780, %264
  %.pr = load i32, ptr %2, align 4, !tbaa !5
  %.not726845 = icmp slt i32 %.pr, 1
  br i1 %.not726845, label %.loopexit, label %.lr.ph847

.lr.ph847:                                        ; preds = %.loopexit804
  %482 = load double, ptr %20, align 8, !tbaa !9
  %483 = load double, ptr %21, align 8, !tbaa !9
  %484 = fmul double %110, %108
  %485 = fdiv double %484, %.0673
  %486 = fdiv double %484, %.0671
  %487 = zext nneg i32 %.pr to i64
  %488 = add nuw i32 %.pr, 1
  %wide.trip.count908 = zext i32 %488 to i64
  br label %489

489:                                              ; preds = %.lr.ph847, %.thread787
  %indvars.iv905 = phi i64 [ 1, %.lr.ph847 ], [ %indvars.iv.next906, %.thread787 ]
  %490 = getelementptr inbounds double, ptr %36, i64 %indvars.iv905
  %491 = load double, ptr %490, align 8, !tbaa !9
  %492 = fcmp oge double %491, 0.000000e+00
  %493 = fneg double %491
  %494 = select i1 %492, double %491, double %493
  %495 = getelementptr inbounds double, ptr %37, i64 %indvars.iv905
  %496 = load double, ptr %495, align 8, !tbaa !9
  %497 = fcmp oge double %496, 0.000000e+00
  %498 = fneg double %496
  %499 = select i1 %497, double %496, double %498
  %500 = getelementptr inbounds double, ptr %38, i64 %indvars.iv905
  %501 = load double, ptr %500, align 8, !tbaa !9
  %502 = fcmp oge double %501, 0.000000e+00
  %503 = fneg double %501
  %504 = select i1 %502, double %501, double %503
  %505 = fmul double %491, %482
  %506 = fmul double %496, %482
  %507 = fmul double %501, %483
  %508 = fmul double %106, %494
  %509 = fcmp oge double %108, %508
  %510 = select i1 %509, double %108, double %508
  %511 = fmul double %106, %504
  %512 = fcmp oge double %506, 0.000000e+00
  %513 = fneg double %506
  %514 = select i1 %512, double %506, double %513
  %515 = fcmp olt double %514, %108
  br i1 %515, label %516, label %525

516:                                              ; preds = %489
  %517 = fcmp oge double %510, %511
  %518 = select i1 %517, double %510, double %511
  %519 = fcmp ult double %499, %518
  br i1 %519, label %525, label %520

520:                                              ; preds = %516
  %521 = fmul double %.0672, %499
  %522 = fcmp oge double %484, %521
  %523 = select i1 %522, double %484, double %521
  %524 = fdiv double %485, %523
  br label %537

525:                                              ; preds = %516, %489
  %526 = fcmp oeq double %506, 0.000000e+00
  br i1 %526, label %527, label %537

527:                                              ; preds = %525
  %528 = fcmp olt double %496, 0.000000e+00
  %529 = icmp ugt i64 %indvars.iv905, 1
  %or.cond3 = and i1 %529, %528
  br i1 %or.cond3, label %530, label %532

530:                                              ; preds = %527
  %531 = getelementptr i8, ptr %495, i64 -8
  store double 0.000000e+00, ptr %531, align 8, !tbaa !9
  br label %537

532:                                              ; preds = %527
  %533 = fcmp ogt double %496, 0.000000e+00
  %534 = icmp ult i64 %indvars.iv905, %487
  %or.cond794 = and i1 %534, %533
  br i1 %or.cond794, label %535, label %537

535:                                              ; preds = %532
  %536 = getelementptr inbounds i8, ptr %495, i64 8
  store double 0.000000e+00, ptr %536, align 8, !tbaa !9
  br label %537

537:                                              ; preds = %525, %532, %535, %530, %520
  %.0664 = phi double [ %524, %520 ], [ 1.000000e+00, %530 ], [ 1.000000e+00, %535 ], [ 1.000000e+00, %532 ], [ 1.000000e+00, %525 ]
  %.0641 = phi i32 [ 1, %520 ], [ 0, %530 ], [ 0, %535 ], [ 0, %532 ], [ 0, %525 ]
  %538 = fmul double %106, %499
  %539 = fcmp oge double %505, 0.000000e+00
  %540 = fneg double %505
  %541 = select i1 %539, double %505, double %540
  %542 = fcmp olt double %541, %108
  br i1 %542, label %543, label %556

543:                                              ; preds = %537
  %544 = fcmp oge double %108, %538
  %545 = select i1 %544, double %108, double %538
  %546 = fcmp oge double %545, %511
  %547 = select i1 %546, double %545, double %511
  %548 = fcmp ult double %494, %547
  br i1 %548, label %556, label %549

549:                                              ; preds = %543
  %550 = fmul double %.0672, %494
  %551 = fcmp oge double %484, %550
  %552 = select i1 %551, double %484, double %550
  %553 = fdiv double %485, %552
  %554 = fcmp oge double %.0664, %553
  %555 = select i1 %554, double %.0664, double %553
  br label %556

556:                                              ; preds = %549, %543, %537
  %.1665 = phi double [ %555, %549 ], [ %.0664, %543 ], [ %.0664, %537 ]
  %.1642 = phi i32 [ 1, %549 ], [ %.0641, %543 ], [ %.0641, %537 ]
  %557 = fcmp oge double %507, 0.000000e+00
  %558 = fneg double %507
  %559 = select i1 %557, double %507, double %558
  %560 = fcmp olt double %559, %108
  br i1 %560, label %561, label %571

561:                                              ; preds = %556
  %562 = fcmp oge double %510, %538
  %563 = select i1 %562, double %510, double %538
  %564 = fcmp ult double %504, %563
  br i1 %564, label %571, label %.thread781

.thread781:                                       ; preds = %561
  %565 = fmul double %.0670, %504
  %566 = fcmp oge double %484, %565
  %567 = select i1 %566, double %484, double %565
  %568 = fdiv double %486, %567
  %569 = fcmp oge double %.1665, %568
  %570 = select i1 %569, double %.1665, double %568
  br label %572

571:                                              ; preds = %561, %556
  %.not727 = icmp eq i32 %.1642, 0
  br i1 %.not727, label %.thread787, label %572

572:                                              ; preds = %.thread781, %571
  %.2666785 = phi double [ %570, %.thread781 ], [ %.1665, %571 ]
  %573 = fcmp oge double %541, %514
  %574 = select i1 %573, double %541, double %514
  %575 = fmul double %108, %.2666785
  %576 = fcmp oge double %574, %559
  %577 = select i1 %576, double %574, double %559
  %578 = fmul double %577, %575
  %579 = fcmp ogt double %578, 1.000000e+00
  %580 = fdiv double %.2666785, %578
  %.3667 = select i1 %579, double %580, double %.2666785
  %581 = fcmp olt double %.3667, 1.000000e+00
  br i1 %581, label %.thread787, label %582

582:                                              ; preds = %572
  %583 = load double, ptr %490, align 8, !tbaa !9
  %584 = fmul double %.3667, %583
  %585 = fmul double %482, %584
  %586 = fmul double %.3667, %496
  %587 = fmul double %482, %586
  %588 = load double, ptr %500, align 8, !tbaa !9
  %589 = fmul double %.3667, %588
  %590 = fmul double %483, %589
  br label %.thread787

.thread787:                                       ; preds = %572, %571, %582
  %.0657 = phi double [ %590, %582 ], [ %507, %571 ], [ %507, %572 ]
  %.0647 = phi double [ %587, %582 ], [ %506, %571 ], [ %506, %572 ]
  %.0646 = phi double [ %585, %582 ], [ %505, %571 ], [ %505, %572 ]
  store double %.0646, ptr %490, align 8, !tbaa !9
  store double %.0647, ptr %495, align 8, !tbaa !9
  store double %.0657, ptr %500, align 8, !tbaa !9
  %indvars.iv.next906 = add nuw nsw i64 %indvars.iv905, 1
  %exitcond909.not = icmp eq i64 %indvars.iv.next906, %wide.trip.count908
  br i1 %exitcond909.not, label %.loopexit, label %489, !llvm.loop !39

.loopexit.sink.split:                             ; preds = %254, %147, %.thread749, %.thread753, %.thread757, %240, %269, %275, %380, %260, %262
  %.sink945 = phi i32 [ %263, %262 ], [ %261, %260 ], [ %381, %380 ], [ %276, %275 ], [ %271, %269 ], [ %242, %240 ], [ %227, %.thread757 ], [ %197, %.thread753 ], [ %177, %.thread749 ], [ %149, %147 ], [ %246, %254 ]
  %.5.ph = phi i32 [ %.4773777, %262 ], [ %.4773777, %260 ], [ %253, %380 ], [ %253, %275 ], [ %253, %269 ], [ %.3764, %240 ], [ %.2760, %.thread757 ], [ %.1756, %.thread753 ], [ %.0752, %.thread749 ], [ %61, %147 ], [ %253, %254 ]
  store i32 %.sink945, ptr %16, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread787, %.loopexit.sink.split, %382, %.loopexit804
  %.5 = phi i32 [ %253, %.loopexit804 ], [ %253, %382 ], [ %.5.ph, %.loopexit.sink.split ], [ %253, %.thread787 ]
  %591 = uitofp nneg i32 %.5 to double
  store double %591, ptr %14, align 8, !tbaa !9
  br label %592

592:                                              ; preds = %101, %.loopexit, %135, %121, %.thread747
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  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 i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare double @dlamch_(ptr 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

declare double @dlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @dggbal_(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

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

declare void @dormqr_(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

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

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

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

declare void @dgghrd_(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

declare void @dhgeqz_(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

declare void @dtgevc_(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

declare void @dggbak_(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.smax.i32(i32, i32) #4

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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"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 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16, !17}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !13, !17, !16}
!19 = !{!20}
!20 = distinct !{!20, !21}
!21 = distinct !{!21, !"LVerDomain"}
!22 = !{!23}
!23 = distinct !{!23, !21}
!24 = distinct !{!24, !13, !16, !17}
!25 = distinct !{!25, !13, !16}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13, !16, !17}
!30 = distinct !{!30, !13, !17, !16}
!31 = !{!32}
!32 = distinct !{!32, !33}
!33 = distinct !{!33, !"LVerDomain"}
!34 = !{!35}
!35 = distinct !{!35, !33}
!36 = distinct !{!36, !13, !16, !17}
!37 = distinct !{!37, !13, !16}
!38 = distinct !{!38, !13}
!39 = distinct !{!39, !13}


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