; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (dtgsy2)

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__8 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c_b27 = external hidden global double, align 8
@c_b42 = external hidden global double, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b56 = external hidden global double, align 8

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

141:                                              ; preds = %22
  %142 = load ptr, ptr %24, align 8, !tbaa !5
  %143 = call i64 @lsame_(ptr noundef %142, ptr noundef @.str.1)
  %144 = icmp ne i64 %143, 0
  br i1 %144, label %147, label %145

145:                                              ; preds = %141
  %146 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -1, ptr %146, align 8, !tbaa !9
  br label %162

147:                                              ; preds = %141, %22
  %148 = load i64, ptr %84, align 8, !tbaa !9
  %149 = icmp ne i64 %148, 0
  br i1 %149, label %150, label %161

150:                                              ; preds = %147
  %151 = load ptr, ptr %25, align 8, !tbaa !5
  %152 = load i64, ptr %151, align 8, !tbaa !9
  %153 = icmp slt i64 %152, 0
  br i1 %153, label %158, label %154

154:                                              ; preds = %150
  %155 = load ptr, ptr %25, align 8, !tbaa !5
  %156 = load i64, ptr %155, align 8, !tbaa !9
  %157 = icmp sgt i64 %156, 2
  br i1 %157, label %158, label %160

158:                                              ; preds = %154, %150
  %159 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -2, ptr %159, align 8, !tbaa !9
  br label %160

160:                                              ; preds = %158, %154
  br label %161

161:                                              ; preds = %160, %147
  br label %162

162:                                              ; preds = %161, %145
  %163 = load ptr, ptr %45, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  %165 = icmp eq i64 %164, 0
  br i1 %165, label %166, label %276

166:                                              ; preds = %162
  %167 = load ptr, ptr %26, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  %169 = icmp sle i64 %168, 0
  br i1 %169, label %170, label %172

170:                                              ; preds = %166
  %171 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -3, ptr %171, align 8, !tbaa !9
  br label %275

172:                                              ; preds = %166
  %173 = load ptr, ptr %27, align 8, !tbaa !5
  %174 = load i64, ptr %173, align 8, !tbaa !9
  %175 = icmp sle i64 %174, 0
  br i1 %175, label %176, label %178

176:                                              ; preds = %172
  %177 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -4, ptr %177, align 8, !tbaa !9
  br label %274

178:                                              ; preds = %172
  %179 = load ptr, ptr %29, align 8, !tbaa !5
  %180 = load i64, ptr %179, align 8, !tbaa !9
  %181 = load ptr, ptr %26, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = icmp sge i64 1, %182
  br i1 %183, label %184, label %185

184:                                              ; preds = %178
  br label %188

185:                                              ; preds = %178
  %186 = load ptr, ptr %26, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  br label %188

188:                                              ; preds = %185, %184
  %189 = phi i64 [ 1, %184 ], [ %187, %185 ]
  %190 = icmp slt i64 %180, %189
  br i1 %190, label %191, label %193

191:                                              ; preds = %188
  %192 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -5, ptr %192, align 8, !tbaa !9
  br label %273

193:                                              ; preds = %188
  %194 = load ptr, ptr %31, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  %196 = load ptr, ptr %27, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  %198 = icmp sge i64 1, %197
  br i1 %198, label %199, label %200

199:                                              ; preds = %193
  br label %203

200:                                              ; preds = %193
  %201 = load ptr, ptr %27, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  br label %203

203:                                              ; preds = %200, %199
  %204 = phi i64 [ 1, %199 ], [ %202, %200 ]
  %205 = icmp slt i64 %195, %204
  br i1 %205, label %206, label %208

206:                                              ; preds = %203
  %207 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -8, ptr %207, align 8, !tbaa !9
  br label %272

208:                                              ; preds = %203
  %209 = load ptr, ptr %33, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = load ptr, ptr %26, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  %213 = icmp sge i64 1, %212
  br i1 %213, label %214, label %215

214:                                              ; preds = %208
  br label %218

215:                                              ; preds = %208
  %216 = load ptr, ptr %26, align 8, !tbaa !5
  %217 = load i64, ptr %216, align 8, !tbaa !9
  br label %218

218:                                              ; preds = %215, %214
  %219 = phi i64 [ 1, %214 ], [ %217, %215 ]
  %220 = icmp slt i64 %210, %219
  br i1 %220, label %221, label %223

221:                                              ; preds = %218
  %222 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -10, ptr %222, align 8, !tbaa !9
  br label %271

223:                                              ; preds = %218
  %224 = load ptr, ptr %35, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = load ptr, ptr %26, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = icmp sge i64 1, %227
  br i1 %228, label %229, label %230

229:                                              ; preds = %223
  br label %233

230:                                              ; preds = %223
  %231 = load ptr, ptr %26, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  br label %233

233:                                              ; preds = %230, %229
  %234 = phi i64 [ 1, %229 ], [ %232, %230 ]
  %235 = icmp slt i64 %225, %234
  br i1 %235, label %236, label %238

236:                                              ; preds = %233
  %237 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -12, ptr %237, align 8, !tbaa !9
  br label %270

238:                                              ; preds = %233
  %239 = load ptr, ptr %37, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = load ptr, ptr %27, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = icmp sge i64 1, %242
  br i1 %243, label %244, label %245

244:                                              ; preds = %238
  br label %248

245:                                              ; preds = %238
  %246 = load ptr, ptr %27, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  br label %248

248:                                              ; preds = %245, %244
  %249 = phi i64 [ 1, %244 ], [ %247, %245 ]
  %250 = icmp slt i64 %240, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %248
  %252 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -14, ptr %252, align 8, !tbaa !9
  br label %269

253:                                              ; preds = %248
  %254 = load ptr, ptr %39, align 8, !tbaa !5
  %255 = load i64, ptr %254, align 8, !tbaa !9
  %256 = load ptr, ptr %26, align 8, !tbaa !5
  %257 = load i64, ptr %256, align 8, !tbaa !9
  %258 = icmp sge i64 1, %257
  br i1 %258, label %259, label %260

259:                                              ; preds = %253
  br label %263

260:                                              ; preds = %253
  %261 = load ptr, ptr %26, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  br label %263

263:                                              ; preds = %260, %259
  %264 = phi i64 [ 1, %259 ], [ %262, %260 ]
  %265 = icmp slt i64 %255, %264
  br i1 %265, label %266, label %268

266:                                              ; preds = %263
  %267 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -16, ptr %267, align 8, !tbaa !9
  br label %268

268:                                              ; preds = %266, %263
  br label %269

269:                                              ; preds = %268, %251
  br label %270

270:                                              ; preds = %269, %236
  br label %271

271:                                              ; preds = %270, %221
  br label %272

272:                                              ; preds = %271, %206
  br label %273

273:                                              ; preds = %272, %191
  br label %274

274:                                              ; preds = %273, %176
  br label %275

275:                                              ; preds = %274, %170
  br label %276

276:                                              ; preds = %275, %162
  %277 = load ptr, ptr %45, align 8, !tbaa !5
  %278 = load i64, ptr %277, align 8, !tbaa !9
  %279 = icmp ne i64 %278, 0
  br i1 %279, label %280, label %285

280:                                              ; preds = %276
  %281 = load ptr, ptr %45, align 8, !tbaa !5
  %282 = load i64, ptr %281, align 8, !tbaa !9
  %283 = sub nsw i64 0, %282
  store i64 %283, ptr %58, align 8, !tbaa !9
  %284 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %58)
  store i32 0, ptr %23, align 4
  store i32 1, ptr %85, align 4
  br label %3466

285:                                              ; preds = %276
  %286 = load ptr, ptr %44, align 8, !tbaa !5
  store i64 0, ptr %286, align 8, !tbaa !9
  store i64 0, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %287

287:                                              ; preds = %322, %285
  %288 = load i64, ptr %61, align 8, !tbaa !9
  %289 = load ptr, ptr %26, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  %291 = icmp sgt i64 %288, %290
  br i1 %291, label %292, label %293

292:                                              ; preds = %287
  br label %323

293:                                              ; preds = %287
  %294 = load i64, ptr %64, align 8, !tbaa !9
  %295 = add nsw i64 %294, 1
  store i64 %295, ptr %64, align 8, !tbaa !9
  %296 = load i64, ptr %61, align 8, !tbaa !9
  %297 = load ptr, ptr %43, align 8, !tbaa !5
  %298 = load i64, ptr %64, align 8, !tbaa !9
  %299 = getelementptr inbounds i64, ptr %297, i64 %298
  store i64 %296, ptr %299, align 8, !tbaa !9
  %300 = load i64, ptr %61, align 8, !tbaa !9
  %301 = load ptr, ptr %26, align 8, !tbaa !5
  %302 = load i64, ptr %301, align 8, !tbaa !9
  %303 = icmp eq i64 %300, %302
  br i1 %303, label %304, label %305

304:                                              ; preds = %293
  br label %323

305:                                              ; preds = %293
  %306 = load ptr, ptr %28, align 8, !tbaa !5
  %307 = load i64, ptr %61, align 8, !tbaa !9
  %308 = add nsw i64 %307, 1
  %309 = load i64, ptr %61, align 8, !tbaa !9
  %310 = load i64, ptr %46, align 8, !tbaa !9
  %311 = mul nsw i64 %309, %310
  %312 = add nsw i64 %308, %311
  %313 = getelementptr inbounds double, ptr %306, i64 %312
  %314 = load double, ptr %313, align 8, !tbaa !11
  %315 = fcmp une double %314, 0.000000e+00
  br i1 %315, label %316, label %319

316:                                              ; preds = %305
  %317 = load i64, ptr %61, align 8, !tbaa !9
  %318 = add nsw i64 %317, 2
  store i64 %318, ptr %61, align 8, !tbaa !9
  br label %322

319:                                              ; preds = %305
  %320 = load i64, ptr %61, align 8, !tbaa !9
  %321 = add nsw i64 %320, 1
  store i64 %321, ptr %61, align 8, !tbaa !9
  br label %322

322:                                              ; preds = %319, %316
  br label %287

323:                                              ; preds = %304, %292
  %324 = load ptr, ptr %26, align 8, !tbaa !5
  %325 = load i64, ptr %324, align 8, !tbaa !9
  %326 = add nsw i64 %325, 1
  %327 = load ptr, ptr %43, align 8, !tbaa !5
  %328 = load i64, ptr %64, align 8, !tbaa !9
  %329 = add nsw i64 %328, 1
  %330 = getelementptr inbounds i64, ptr %327, i64 %329
  store i64 %326, ptr %330, align 8, !tbaa !9
  %331 = load i64, ptr %64, align 8, !tbaa !9
  %332 = add nsw i64 %331, 1
  store i64 %332, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %333

333:                                              ; preds = %368, %323
  %334 = load i64, ptr %62, align 8, !tbaa !9
  %335 = load ptr, ptr %27, align 8, !tbaa !5
  %336 = load i64, ptr %335, align 8, !tbaa !9
  %337 = icmp sgt i64 %334, %336
  br i1 %337, label %338, label %339

338:                                              ; preds = %333
  br label %369

339:                                              ; preds = %333
  %340 = load i64, ptr %65, align 8, !tbaa !9
  %341 = add nsw i64 %340, 1
  store i64 %341, ptr %65, align 8, !tbaa !9
  %342 = load i64, ptr %62, align 8, !tbaa !9
  %343 = load ptr, ptr %43, align 8, !tbaa !5
  %344 = load i64, ptr %65, align 8, !tbaa !9
  %345 = getelementptr inbounds i64, ptr %343, i64 %344
  store i64 %342, ptr %345, align 8, !tbaa !9
  %346 = load i64, ptr %62, align 8, !tbaa !9
  %347 = load ptr, ptr %27, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = icmp eq i64 %346, %348
  br i1 %349, label %350, label %351

350:                                              ; preds = %339
  br label %369

351:                                              ; preds = %339
  %352 = load ptr, ptr %30, align 8, !tbaa !5
  %353 = load i64, ptr %62, align 8, !tbaa !9
  %354 = add nsw i64 %353, 1
  %355 = load i64, ptr %62, align 8, !tbaa !9
  %356 = load i64, ptr %48, align 8, !tbaa !9
  %357 = mul nsw i64 %355, %356
  %358 = add nsw i64 %354, %357
  %359 = getelementptr inbounds double, ptr %352, i64 %358
  %360 = load double, ptr %359, align 8, !tbaa !11
  %361 = fcmp une double %360, 0.000000e+00
  br i1 %361, label %362, label %365

362:                                              ; preds = %351
  %363 = load i64, ptr %62, align 8, !tbaa !9
  %364 = add nsw i64 %363, 2
  store i64 %364, ptr %62, align 8, !tbaa !9
  br label %368

365:                                              ; preds = %351
  %366 = load i64, ptr %62, align 8, !tbaa !9
  %367 = add nsw i64 %366, 1
  store i64 %367, ptr %62, align 8, !tbaa !9
  br label %368

368:                                              ; preds = %365, %362
  br label %333

369:                                              ; preds = %350, %338
  %370 = load ptr, ptr %27, align 8, !tbaa !5
  %371 = load i64, ptr %370, align 8, !tbaa !9
  %372 = add nsw i64 %371, 1
  %373 = load ptr, ptr %43, align 8, !tbaa !5
  %374 = load i64, ptr %65, align 8, !tbaa !9
  %375 = add nsw i64 %374, 1
  %376 = getelementptr inbounds i64, ptr %373, i64 %375
  store i64 %372, ptr %376, align 8, !tbaa !9
  %377 = load i64, ptr %64, align 8, !tbaa !9
  %378 = load i64, ptr %65, align 8, !tbaa !9
  %379 = load i64, ptr %64, align 8, !tbaa !9
  %380 = sub nsw i64 %378, %379
  %381 = sub nsw i64 %380, 1
  %382 = mul nsw i64 %377, %381
  %383 = load ptr, ptr %44, align 8, !tbaa !5
  store i64 %382, ptr %383, align 8, !tbaa !9
  %384 = load i64, ptr %84, align 8, !tbaa !9
  %385 = icmp ne i64 %384, 0
  br i1 %385, label %386, label %1952

386:                                              ; preds = %369
  %387 = load ptr, ptr %40, align 8, !tbaa !5
  store double 1.000000e+00, ptr %387, align 8, !tbaa !11
  store double 1.000000e+00, ptr %83, align 8, !tbaa !11
  %388 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %388, ptr %58, align 8, !tbaa !9
  %389 = load i64, ptr %64, align 8, !tbaa !9
  %390 = add nsw i64 %389, 2
  store i64 %390, ptr %62, align 8, !tbaa !9
  br label %391

391:                                              ; preds = %1948, %386
  %392 = load i64, ptr %62, align 8, !tbaa !9
  %393 = load i64, ptr %58, align 8, !tbaa !9
  %394 = icmp sle i64 %392, %393
  br i1 %394, label %395, label %1951

395:                                              ; preds = %391
  %396 = load ptr, ptr %43, align 8, !tbaa !5
  %397 = load i64, ptr %62, align 8, !tbaa !9
  %398 = getelementptr inbounds i64, ptr %396, i64 %397
  %399 = load i64, ptr %398, align 8, !tbaa !9
  store i64 %399, ptr %74, align 8, !tbaa !9
  %400 = load i64, ptr %74, align 8, !tbaa !9
  %401 = add nsw i64 %400, 1
  store i64 %401, ptr %77, align 8, !tbaa !9
  %402 = load ptr, ptr %43, align 8, !tbaa !5
  %403 = load i64, ptr %62, align 8, !tbaa !9
  %404 = add nsw i64 %403, 1
  %405 = getelementptr inbounds i64, ptr %402, i64 %404
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = sub nsw i64 %406, 1
  store i64 %407, ptr %68, align 8, !tbaa !9
  %408 = load i64, ptr %68, align 8, !tbaa !9
  %409 = load i64, ptr %74, align 8, !tbaa !9
  %410 = sub nsw i64 %408, %409
  %411 = add nsw i64 %410, 1
  store i64 %411, ptr %70, align 8, !tbaa !9
  %412 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %412, ptr %61, align 8, !tbaa !9
  br label %413

413:                                              ; preds = %1944, %395
  %414 = load i64, ptr %61, align 8, !tbaa !9
  %415 = icmp sge i64 %414, 1
  br i1 %415, label %416, label %1947

416:                                              ; preds = %413
  %417 = load ptr, ptr %43, align 8, !tbaa !5
  %418 = load i64, ptr %61, align 8, !tbaa !9
  %419 = getelementptr inbounds i64, ptr %417, i64 %418
  %420 = load i64, ptr %419, align 8, !tbaa !9
  store i64 %420, ptr %73, align 8, !tbaa !9
  %421 = load i64, ptr %73, align 8, !tbaa !9
  %422 = add nsw i64 %421, 1
  store i64 %422, ptr %76, align 8, !tbaa !9
  %423 = load ptr, ptr %43, align 8, !tbaa !5
  %424 = load i64, ptr %61, align 8, !tbaa !9
  %425 = add nsw i64 %424, 1
  %426 = getelementptr inbounds i64, ptr %423, i64 %425
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = sub nsw i64 %427, 1
  store i64 %428, ptr %67, align 8, !tbaa !9
  %429 = load i64, ptr %67, align 8, !tbaa !9
  %430 = load i64, ptr %73, align 8, !tbaa !9
  %431 = sub nsw i64 %429, %430
  %432 = add nsw i64 %431, 1
  store i64 %432, ptr %69, align 8, !tbaa !9
  %433 = load i64, ptr %69, align 8, !tbaa !9
  %434 = load i64, ptr %70, align 8, !tbaa !9
  %435 = mul nsw i64 %433, %434
  %436 = shl i64 %435, 1
  store i64 %436, ptr %79, align 8, !tbaa !9
  %437 = load i64, ptr %69, align 8, !tbaa !9
  %438 = icmp eq i64 %437, 1
  br i1 %438, label %439, label %671

439:                                              ; preds = %416
  %440 = load i64, ptr %70, align 8, !tbaa !9
  %441 = icmp eq i64 %440, 1
  br i1 %441, label %442, label %671

442:                                              ; preds = %439
  %443 = load ptr, ptr %28, align 8, !tbaa !5
  %444 = load i64, ptr %73, align 8, !tbaa !9
  %445 = load i64, ptr %73, align 8, !tbaa !9
  %446 = load i64, ptr %46, align 8, !tbaa !9
  %447 = mul nsw i64 %445, %446
  %448 = add nsw i64 %444, %447
  %449 = getelementptr inbounds double, ptr %443, i64 %448
  %450 = load double, ptr %449, align 8, !tbaa !11
  %451 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %450, ptr %451, align 16, !tbaa !11
  %452 = load ptr, ptr %34, align 8, !tbaa !5
  %453 = load i64, ptr %73, align 8, !tbaa !9
  %454 = load i64, ptr %73, align 8, !tbaa !9
  %455 = load i64, ptr %52, align 8, !tbaa !9
  %456 = mul nsw i64 %454, %455
  %457 = add nsw i64 %453, %456
  %458 = getelementptr inbounds double, ptr %452, i64 %457
  %459 = load double, ptr %458, align 8, !tbaa !11
  %460 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double %459, ptr %460, align 8, !tbaa !11
  %461 = load ptr, ptr %30, align 8, !tbaa !5
  %462 = load i64, ptr %74, align 8, !tbaa !9
  %463 = load i64, ptr %74, align 8, !tbaa !9
  %464 = load i64, ptr %48, align 8, !tbaa !9
  %465 = mul nsw i64 %463, %464
  %466 = add nsw i64 %462, %465
  %467 = getelementptr inbounds double, ptr %461, i64 %466
  %468 = load double, ptr %467, align 8, !tbaa !11
  %469 = fneg double %468
  %470 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double %469, ptr %470, align 16, !tbaa !11
  %471 = load ptr, ptr %36, align 8, !tbaa !5
  %472 = load i64, ptr %74, align 8, !tbaa !9
  %473 = load i64, ptr %74, align 8, !tbaa !9
  %474 = load i64, ptr %54, align 8, !tbaa !9
  %475 = mul nsw i64 %473, %474
  %476 = add nsw i64 %472, %475
  %477 = getelementptr inbounds double, ptr %471, i64 %476
  %478 = load double, ptr %477, align 8, !tbaa !11
  %479 = fneg double %478
  %480 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %479, ptr %480, align 8, !tbaa !11
  %481 = load ptr, ptr %32, align 8, !tbaa !5
  %482 = load i64, ptr %73, align 8, !tbaa !9
  %483 = load i64, ptr %74, align 8, !tbaa !9
  %484 = load i64, ptr %50, align 8, !tbaa !9
  %485 = mul nsw i64 %483, %484
  %486 = add nsw i64 %482, %485
  %487 = getelementptr inbounds double, ptr %481, i64 %486
  %488 = load double, ptr %487, align 8, !tbaa !11
  %489 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  store double %488, ptr %489, align 16, !tbaa !11
  %490 = load ptr, ptr %38, align 8, !tbaa !5
  %491 = load i64, ptr %73, align 8, !tbaa !9
  %492 = load i64, ptr %74, align 8, !tbaa !9
  %493 = load i64, ptr %56, align 8, !tbaa !9
  %494 = mul nsw i64 %492, %493
  %495 = add nsw i64 %491, %494
  %496 = getelementptr inbounds double, ptr %490, i64 %495
  %497 = load double, ptr %496, align 8, !tbaa !11
  %498 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  store double %497, ptr %498, align 8, !tbaa !11
  %499 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %500 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %501 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %502 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %499, ptr noundef @c__8, ptr noundef %500, ptr noundef %501, ptr noundef %78)
  %503 = load i64, ptr %78, align 8, !tbaa !9
  %504 = icmp sgt i64 %503, 0
  br i1 %504, label %505, label %508

505:                                              ; preds = %442
  %506 = load i64, ptr %78, align 8, !tbaa !9
  %507 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %506, ptr %507, align 8, !tbaa !9
  br label %508

508:                                              ; preds = %505, %442
  %509 = load ptr, ptr %25, align 8, !tbaa !5
  %510 = load i64, ptr %509, align 8, !tbaa !9
  %511 = icmp eq i64 %510, 0
  br i1 %511, label %512, label %553

512:                                              ; preds = %508
  %513 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %514 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %515 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %516 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %517 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %513, ptr noundef @c__8, ptr noundef %514, ptr noundef %515, ptr noundef %516, ptr noundef %83)
  %518 = load double, ptr %83, align 8, !tbaa !11
  %519 = fcmp une double %518, 1.000000e+00
  br i1 %519, label %520, label %552

520:                                              ; preds = %512
  %521 = load ptr, ptr %27, align 8, !tbaa !5
  %522 = load i64, ptr %521, align 8, !tbaa !9
  store i64 %522, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %523

523:                                              ; preds = %544, %520
  %524 = load i64, ptr %63, align 8, !tbaa !9
  %525 = load i64, ptr %59, align 8, !tbaa !9
  %526 = icmp sle i64 %524, %525
  br i1 %526, label %527, label %547

527:                                              ; preds = %523
  %528 = load ptr, ptr %26, align 8, !tbaa !5
  %529 = load ptr, ptr %32, align 8, !tbaa !5
  %530 = load i64, ptr %63, align 8, !tbaa !9
  %531 = load i64, ptr %50, align 8, !tbaa !9
  %532 = mul nsw i64 %530, %531
  %533 = add nsw i64 %532, 1
  %534 = getelementptr inbounds double, ptr %529, i64 %533
  %535 = call i32 @f2c_dscal(ptr noundef %528, ptr noundef %83, ptr noundef %534, ptr noundef @c__1)
  %536 = load ptr, ptr %26, align 8, !tbaa !5
  %537 = load ptr, ptr %38, align 8, !tbaa !5
  %538 = load i64, ptr %63, align 8, !tbaa !9
  %539 = load i64, ptr %56, align 8, !tbaa !9
  %540 = mul nsw i64 %538, %539
  %541 = add nsw i64 %540, 1
  %542 = getelementptr inbounds double, ptr %537, i64 %541
  %543 = call i32 @f2c_dscal(ptr noundef %536, ptr noundef %83, ptr noundef %542, ptr noundef @c__1)
  br label %544

544:                                              ; preds = %527
  %545 = load i64, ptr %63, align 8, !tbaa !9
  %546 = add nsw i64 %545, 1
  store i64 %546, ptr %63, align 8, !tbaa !9
  br label %523, !llvm.loop !13

547:                                              ; preds = %523
  %548 = load double, ptr %83, align 8, !tbaa !11
  %549 = load ptr, ptr %40, align 8, !tbaa !5
  %550 = load double, ptr %549, align 8, !tbaa !11
  %551 = fmul double %550, %548
  store double %551, ptr %549, align 8, !tbaa !11
  br label %552

552:                                              ; preds = %547, %512
  br label %562

553:                                              ; preds = %508
  %554 = load ptr, ptr %25, align 8, !tbaa !5
  %555 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %556 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %557 = load ptr, ptr %41, align 8, !tbaa !5
  %558 = load ptr, ptr %42, align 8, !tbaa !5
  %559 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %560 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %561 = call i32 @dlatdf_(ptr noundef %554, ptr noundef %79, ptr noundef %555, ptr noundef @c__8, ptr noundef %556, ptr noundef %557, ptr noundef %558, ptr noundef %559, ptr noundef %560)
  br label %562

562:                                              ; preds = %553, %552
  %563 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %564 = load double, ptr %563, align 16, !tbaa !11
  %565 = load ptr, ptr %32, align 8, !tbaa !5
  %566 = load i64, ptr %73, align 8, !tbaa !9
  %567 = load i64, ptr %74, align 8, !tbaa !9
  %568 = load i64, ptr %50, align 8, !tbaa !9
  %569 = mul nsw i64 %567, %568
  %570 = add nsw i64 %566, %569
  %571 = getelementptr inbounds double, ptr %565, i64 %570
  store double %564, ptr %571, align 8, !tbaa !11
  %572 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %573 = load double, ptr %572, align 8, !tbaa !11
  %574 = load ptr, ptr %38, align 8, !tbaa !5
  %575 = load i64, ptr %73, align 8, !tbaa !9
  %576 = load i64, ptr %74, align 8, !tbaa !9
  %577 = load i64, ptr %56, align 8, !tbaa !9
  %578 = mul nsw i64 %576, %577
  %579 = add nsw i64 %575, %578
  %580 = getelementptr inbounds double, ptr %574, i64 %579
  store double %573, ptr %580, align 8, !tbaa !11
  %581 = load i64, ptr %61, align 8, !tbaa !9
  %582 = icmp sgt i64 %581, 1
  br i1 %582, label %583, label %617

583:                                              ; preds = %562
  %584 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %585 = load double, ptr %584, align 16, !tbaa !11
  %586 = fneg double %585
  store double %586, ptr %82, align 8, !tbaa !11
  %587 = load i64, ptr %73, align 8, !tbaa !9
  %588 = sub nsw i64 %587, 1
  store i64 %588, ptr %59, align 8, !tbaa !9
  %589 = load ptr, ptr %28, align 8, !tbaa !5
  %590 = load i64, ptr %73, align 8, !tbaa !9
  %591 = load i64, ptr %46, align 8, !tbaa !9
  %592 = mul nsw i64 %590, %591
  %593 = add nsw i64 %592, 1
  %594 = getelementptr inbounds double, ptr %589, i64 %593
  %595 = load ptr, ptr %32, align 8, !tbaa !5
  %596 = load i64, ptr %74, align 8, !tbaa !9
  %597 = load i64, ptr %50, align 8, !tbaa !9
  %598 = mul nsw i64 %596, %597
  %599 = add nsw i64 %598, 1
  %600 = getelementptr inbounds double, ptr %595, i64 %599
  %601 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %82, ptr noundef %594, ptr noundef @c__1, ptr noundef %600, ptr noundef @c__1)
  %602 = load i64, ptr %73, align 8, !tbaa !9
  %603 = sub nsw i64 %602, 1
  store i64 %603, ptr %59, align 8, !tbaa !9
  %604 = load ptr, ptr %34, align 8, !tbaa !5
  %605 = load i64, ptr %73, align 8, !tbaa !9
  %606 = load i64, ptr %52, align 8, !tbaa !9
  %607 = mul nsw i64 %605, %606
  %608 = add nsw i64 %607, 1
  %609 = getelementptr inbounds double, ptr %604, i64 %608
  %610 = load ptr, ptr %38, align 8, !tbaa !5
  %611 = load i64, ptr %74, align 8, !tbaa !9
  %612 = load i64, ptr %56, align 8, !tbaa !9
  %613 = mul nsw i64 %611, %612
  %614 = add nsw i64 %613, 1
  %615 = getelementptr inbounds double, ptr %610, i64 %614
  %616 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %82, ptr noundef %609, ptr noundef @c__1, ptr noundef %615, ptr noundef @c__1)
  br label %617

617:                                              ; preds = %583, %562
  %618 = load i64, ptr %62, align 8, !tbaa !9
  %619 = load i64, ptr %65, align 8, !tbaa !9
  %620 = icmp slt i64 %618, %619
  br i1 %620, label %621, label %670

621:                                              ; preds = %617
  %622 = load ptr, ptr %27, align 8, !tbaa !5
  %623 = load i64, ptr %622, align 8, !tbaa !9
  %624 = load i64, ptr %68, align 8, !tbaa !9
  %625 = sub nsw i64 %623, %624
  store i64 %625, ptr %59, align 8, !tbaa !9
  %626 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %627 = load ptr, ptr %30, align 8, !tbaa !5
  %628 = load i64, ptr %74, align 8, !tbaa !9
  %629 = load i64, ptr %68, align 8, !tbaa !9
  %630 = add nsw i64 %629, 1
  %631 = load i64, ptr %48, align 8, !tbaa !9
  %632 = mul nsw i64 %630, %631
  %633 = add nsw i64 %628, %632
  %634 = getelementptr inbounds double, ptr %627, i64 %633
  %635 = load ptr, ptr %31, align 8, !tbaa !5
  %636 = load ptr, ptr %32, align 8, !tbaa !5
  %637 = load i64, ptr %73, align 8, !tbaa !9
  %638 = load i64, ptr %68, align 8, !tbaa !9
  %639 = add nsw i64 %638, 1
  %640 = load i64, ptr %50, align 8, !tbaa !9
  %641 = mul nsw i64 %639, %640
  %642 = add nsw i64 %637, %641
  %643 = getelementptr inbounds double, ptr %636, i64 %642
  %644 = load ptr, ptr %33, align 8, !tbaa !5
  %645 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %626, ptr noundef %634, ptr noundef %635, ptr noundef %643, ptr noundef %644)
  %646 = load ptr, ptr %27, align 8, !tbaa !5
  %647 = load i64, ptr %646, align 8, !tbaa !9
  %648 = load i64, ptr %68, align 8, !tbaa !9
  %649 = sub nsw i64 %647, %648
  store i64 %649, ptr %59, align 8, !tbaa !9
  %650 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %651 = load ptr, ptr %36, align 8, !tbaa !5
  %652 = load i64, ptr %74, align 8, !tbaa !9
  %653 = load i64, ptr %68, align 8, !tbaa !9
  %654 = add nsw i64 %653, 1
  %655 = load i64, ptr %54, align 8, !tbaa !9
  %656 = mul nsw i64 %654, %655
  %657 = add nsw i64 %652, %656
  %658 = getelementptr inbounds double, ptr %651, i64 %657
  %659 = load ptr, ptr %37, align 8, !tbaa !5
  %660 = load ptr, ptr %38, align 8, !tbaa !5
  %661 = load i64, ptr %73, align 8, !tbaa !9
  %662 = load i64, ptr %68, align 8, !tbaa !9
  %663 = add nsw i64 %662, 1
  %664 = load i64, ptr %56, align 8, !tbaa !9
  %665 = mul nsw i64 %663, %664
  %666 = add nsw i64 %661, %665
  %667 = getelementptr inbounds double, ptr %660, i64 %666
  %668 = load ptr, ptr %39, align 8, !tbaa !5
  %669 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %650, ptr noundef %658, ptr noundef %659, ptr noundef %667, ptr noundef %668)
  br label %670

670:                                              ; preds = %621, %617
  br label %1943

671:                                              ; preds = %439, %416
  %672 = load i64, ptr %69, align 8, !tbaa !9
  %673 = icmp eq i64 %672, 1
  br i1 %673, label %674, label %1064

674:                                              ; preds = %671
  %675 = load i64, ptr %70, align 8, !tbaa !9
  %676 = icmp eq i64 %675, 2
  br i1 %676, label %677, label %1064

677:                                              ; preds = %674
  %678 = load ptr, ptr %28, align 8, !tbaa !5
  %679 = load i64, ptr %73, align 8, !tbaa !9
  %680 = load i64, ptr %73, align 8, !tbaa !9
  %681 = load i64, ptr %46, align 8, !tbaa !9
  %682 = mul nsw i64 %680, %681
  %683 = add nsw i64 %679, %682
  %684 = getelementptr inbounds double, ptr %678, i64 %683
  %685 = load double, ptr %684, align 8, !tbaa !11
  %686 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %685, ptr %686, align 16, !tbaa !11
  %687 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double 0.000000e+00, ptr %687, align 8, !tbaa !11
  %688 = load ptr, ptr %34, align 8, !tbaa !5
  %689 = load i64, ptr %73, align 8, !tbaa !9
  %690 = load i64, ptr %73, align 8, !tbaa !9
  %691 = load i64, ptr %52, align 8, !tbaa !9
  %692 = mul nsw i64 %690, %691
  %693 = add nsw i64 %689, %692
  %694 = getelementptr inbounds double, ptr %688, i64 %693
  %695 = load double, ptr %694, align 8, !tbaa !11
  %696 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 2
  store double %695, ptr %696, align 16, !tbaa !11
  %697 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 3
  store double 0.000000e+00, ptr %697, align 8, !tbaa !11
  %698 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double 0.000000e+00, ptr %698, align 16, !tbaa !11
  %699 = load ptr, ptr %28, align 8, !tbaa !5
  %700 = load i64, ptr %73, align 8, !tbaa !9
  %701 = load i64, ptr %73, align 8, !tbaa !9
  %702 = load i64, ptr %46, align 8, !tbaa !9
  %703 = mul nsw i64 %701, %702
  %704 = add nsw i64 %700, %703
  %705 = getelementptr inbounds double, ptr %699, i64 %704
  %706 = load double, ptr %705, align 8, !tbaa !11
  %707 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %706, ptr %707, align 8, !tbaa !11
  %708 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 10
  store double 0.000000e+00, ptr %708, align 16, !tbaa !11
  %709 = load ptr, ptr %34, align 8, !tbaa !5
  %710 = load i64, ptr %73, align 8, !tbaa !9
  %711 = load i64, ptr %73, align 8, !tbaa !9
  %712 = load i64, ptr %52, align 8, !tbaa !9
  %713 = mul nsw i64 %711, %712
  %714 = add nsw i64 %710, %713
  %715 = getelementptr inbounds double, ptr %709, i64 %714
  %716 = load double, ptr %715, align 8, !tbaa !11
  %717 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 11
  store double %716, ptr %717, align 8, !tbaa !11
  %718 = load ptr, ptr %30, align 8, !tbaa !5
  %719 = load i64, ptr %74, align 8, !tbaa !9
  %720 = load i64, ptr %74, align 8, !tbaa !9
  %721 = load i64, ptr %48, align 8, !tbaa !9
  %722 = mul nsw i64 %720, %721
  %723 = add nsw i64 %719, %722
  %724 = getelementptr inbounds double, ptr %718, i64 %723
  %725 = load double, ptr %724, align 8, !tbaa !11
  %726 = fneg double %725
  %727 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 16
  store double %726, ptr %727, align 16, !tbaa !11
  %728 = load ptr, ptr %30, align 8, !tbaa !5
  %729 = load i64, ptr %74, align 8, !tbaa !9
  %730 = load i64, ptr %77, align 8, !tbaa !9
  %731 = load i64, ptr %48, align 8, !tbaa !9
  %732 = mul nsw i64 %730, %731
  %733 = add nsw i64 %729, %732
  %734 = getelementptr inbounds double, ptr %728, i64 %733
  %735 = load double, ptr %734, align 8, !tbaa !11
  %736 = fneg double %735
  %737 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 17
  store double %736, ptr %737, align 8, !tbaa !11
  %738 = load ptr, ptr %36, align 8, !tbaa !5
  %739 = load i64, ptr %74, align 8, !tbaa !9
  %740 = load i64, ptr %74, align 8, !tbaa !9
  %741 = load i64, ptr %54, align 8, !tbaa !9
  %742 = mul nsw i64 %740, %741
  %743 = add nsw i64 %739, %742
  %744 = getelementptr inbounds double, ptr %738, i64 %743
  %745 = load double, ptr %744, align 8, !tbaa !11
  %746 = fneg double %745
  %747 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 18
  store double %746, ptr %747, align 16, !tbaa !11
  %748 = load ptr, ptr %36, align 8, !tbaa !5
  %749 = load i64, ptr %74, align 8, !tbaa !9
  %750 = load i64, ptr %77, align 8, !tbaa !9
  %751 = load i64, ptr %54, align 8, !tbaa !9
  %752 = mul nsw i64 %750, %751
  %753 = add nsw i64 %749, %752
  %754 = getelementptr inbounds double, ptr %748, i64 %753
  %755 = load double, ptr %754, align 8, !tbaa !11
  %756 = fneg double %755
  %757 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 19
  store double %756, ptr %757, align 8, !tbaa !11
  %758 = load ptr, ptr %30, align 8, !tbaa !5
  %759 = load i64, ptr %77, align 8, !tbaa !9
  %760 = load i64, ptr %74, align 8, !tbaa !9
  %761 = load i64, ptr %48, align 8, !tbaa !9
  %762 = mul nsw i64 %760, %761
  %763 = add nsw i64 %759, %762
  %764 = getelementptr inbounds double, ptr %758, i64 %763
  %765 = load double, ptr %764, align 8, !tbaa !11
  %766 = fneg double %765
  %767 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 24
  store double %766, ptr %767, align 16, !tbaa !11
  %768 = load ptr, ptr %30, align 8, !tbaa !5
  %769 = load i64, ptr %77, align 8, !tbaa !9
  %770 = load i64, ptr %77, align 8, !tbaa !9
  %771 = load i64, ptr %48, align 8, !tbaa !9
  %772 = mul nsw i64 %770, %771
  %773 = add nsw i64 %769, %772
  %774 = getelementptr inbounds double, ptr %768, i64 %773
  %775 = load double, ptr %774, align 8, !tbaa !11
  %776 = fneg double %775
  %777 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 25
  store double %776, ptr %777, align 8, !tbaa !11
  %778 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 26
  store double 0.000000e+00, ptr %778, align 16, !tbaa !11
  %779 = load ptr, ptr %36, align 8, !tbaa !5
  %780 = load i64, ptr %77, align 8, !tbaa !9
  %781 = load i64, ptr %77, align 8, !tbaa !9
  %782 = load i64, ptr %54, align 8, !tbaa !9
  %783 = mul nsw i64 %781, %782
  %784 = add nsw i64 %780, %783
  %785 = getelementptr inbounds double, ptr %779, i64 %784
  %786 = load double, ptr %785, align 8, !tbaa !11
  %787 = fneg double %786
  %788 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 27
  store double %787, ptr %788, align 8, !tbaa !11
  %789 = load ptr, ptr %32, align 8, !tbaa !5
  %790 = load i64, ptr %73, align 8, !tbaa !9
  %791 = load i64, ptr %74, align 8, !tbaa !9
  %792 = load i64, ptr %50, align 8, !tbaa !9
  %793 = mul nsw i64 %791, %792
  %794 = add nsw i64 %790, %793
  %795 = getelementptr inbounds double, ptr %789, i64 %794
  %796 = load double, ptr %795, align 8, !tbaa !11
  %797 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  store double %796, ptr %797, align 16, !tbaa !11
  %798 = load ptr, ptr %32, align 8, !tbaa !5
  %799 = load i64, ptr %73, align 8, !tbaa !9
  %800 = load i64, ptr %77, align 8, !tbaa !9
  %801 = load i64, ptr %50, align 8, !tbaa !9
  %802 = mul nsw i64 %800, %801
  %803 = add nsw i64 %799, %802
  %804 = getelementptr inbounds double, ptr %798, i64 %803
  %805 = load double, ptr %804, align 8, !tbaa !11
  %806 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  store double %805, ptr %806, align 8, !tbaa !11
  %807 = load ptr, ptr %38, align 8, !tbaa !5
  %808 = load i64, ptr %73, align 8, !tbaa !9
  %809 = load i64, ptr %74, align 8, !tbaa !9
  %810 = load i64, ptr %56, align 8, !tbaa !9
  %811 = mul nsw i64 %809, %810
  %812 = add nsw i64 %808, %811
  %813 = getelementptr inbounds double, ptr %807, i64 %812
  %814 = load double, ptr %813, align 8, !tbaa !11
  %815 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  store double %814, ptr %815, align 16, !tbaa !11
  %816 = load ptr, ptr %38, align 8, !tbaa !5
  %817 = load i64, ptr %73, align 8, !tbaa !9
  %818 = load i64, ptr %77, align 8, !tbaa !9
  %819 = load i64, ptr %56, align 8, !tbaa !9
  %820 = mul nsw i64 %818, %819
  %821 = add nsw i64 %817, %820
  %822 = getelementptr inbounds double, ptr %816, i64 %821
  %823 = load double, ptr %822, align 8, !tbaa !11
  %824 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  store double %823, ptr %824, align 8, !tbaa !11
  %825 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %826 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %827 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %828 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %825, ptr noundef @c__8, ptr noundef %826, ptr noundef %827, ptr noundef %78)
  %829 = load i64, ptr %78, align 8, !tbaa !9
  %830 = icmp sgt i64 %829, 0
  br i1 %830, label %831, label %834

831:                                              ; preds = %677
  %832 = load i64, ptr %78, align 8, !tbaa !9
  %833 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %832, ptr %833, align 8, !tbaa !9
  br label %834

834:                                              ; preds = %831, %677
  %835 = load ptr, ptr %25, align 8, !tbaa !5
  %836 = load i64, ptr %835, align 8, !tbaa !9
  %837 = icmp eq i64 %836, 0
  br i1 %837, label %838, label %879

838:                                              ; preds = %834
  %839 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %840 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %841 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %842 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %843 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %839, ptr noundef @c__8, ptr noundef %840, ptr noundef %841, ptr noundef %842, ptr noundef %83)
  %844 = load double, ptr %83, align 8, !tbaa !11
  %845 = fcmp une double %844, 1.000000e+00
  br i1 %845, label %846, label %878

846:                                              ; preds = %838
  %847 = load ptr, ptr %27, align 8, !tbaa !5
  %848 = load i64, ptr %847, align 8, !tbaa !9
  store i64 %848, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %849

849:                                              ; preds = %870, %846
  %850 = load i64, ptr %63, align 8, !tbaa !9
  %851 = load i64, ptr %59, align 8, !tbaa !9
  %852 = icmp sle i64 %850, %851
  br i1 %852, label %853, label %873

853:                                              ; preds = %849
  %854 = load ptr, ptr %26, align 8, !tbaa !5
  %855 = load ptr, ptr %32, align 8, !tbaa !5
  %856 = load i64, ptr %63, align 8, !tbaa !9
  %857 = load i64, ptr %50, align 8, !tbaa !9
  %858 = mul nsw i64 %856, %857
  %859 = add nsw i64 %858, 1
  %860 = getelementptr inbounds double, ptr %855, i64 %859
  %861 = call i32 @f2c_dscal(ptr noundef %854, ptr noundef %83, ptr noundef %860, ptr noundef @c__1)
  %862 = load ptr, ptr %26, align 8, !tbaa !5
  %863 = load ptr, ptr %38, align 8, !tbaa !5
  %864 = load i64, ptr %63, align 8, !tbaa !9
  %865 = load i64, ptr %56, align 8, !tbaa !9
  %866 = mul nsw i64 %864, %865
  %867 = add nsw i64 %866, 1
  %868 = getelementptr inbounds double, ptr %863, i64 %867
  %869 = call i32 @f2c_dscal(ptr noundef %862, ptr noundef %83, ptr noundef %868, ptr noundef @c__1)
  br label %870

870:                                              ; preds = %853
  %871 = load i64, ptr %63, align 8, !tbaa !9
  %872 = add nsw i64 %871, 1
  store i64 %872, ptr %63, align 8, !tbaa !9
  br label %849, !llvm.loop !15

873:                                              ; preds = %849
  %874 = load double, ptr %83, align 8, !tbaa !11
  %875 = load ptr, ptr %40, align 8, !tbaa !5
  %876 = load double, ptr %875, align 8, !tbaa !11
  %877 = fmul double %876, %874
  store double %877, ptr %875, align 8, !tbaa !11
  br label %878

878:                                              ; preds = %873, %838
  br label %888

879:                                              ; preds = %834
  %880 = load ptr, ptr %25, align 8, !tbaa !5
  %881 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %882 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %883 = load ptr, ptr %41, align 8, !tbaa !5
  %884 = load ptr, ptr %42, align 8, !tbaa !5
  %885 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %886 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %887 = call i32 @dlatdf_(ptr noundef %880, ptr noundef %79, ptr noundef %881, ptr noundef @c__8, ptr noundef %882, ptr noundef %883, ptr noundef %884, ptr noundef %885, ptr noundef %886)
  br label %888

888:                                              ; preds = %879, %878
  %889 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %890 = load double, ptr %889, align 16, !tbaa !11
  %891 = load ptr, ptr %32, align 8, !tbaa !5
  %892 = load i64, ptr %73, align 8, !tbaa !9
  %893 = load i64, ptr %74, align 8, !tbaa !9
  %894 = load i64, ptr %50, align 8, !tbaa !9
  %895 = mul nsw i64 %893, %894
  %896 = add nsw i64 %892, %895
  %897 = getelementptr inbounds double, ptr %891, i64 %896
  store double %890, ptr %897, align 8, !tbaa !11
  %898 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %899 = load double, ptr %898, align 8, !tbaa !11
  %900 = load ptr, ptr %32, align 8, !tbaa !5
  %901 = load i64, ptr %73, align 8, !tbaa !9
  %902 = load i64, ptr %77, align 8, !tbaa !9
  %903 = load i64, ptr %50, align 8, !tbaa !9
  %904 = mul nsw i64 %902, %903
  %905 = add nsw i64 %901, %904
  %906 = getelementptr inbounds double, ptr %900, i64 %905
  store double %899, ptr %906, align 8, !tbaa !11
  %907 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %908 = load double, ptr %907, align 16, !tbaa !11
  %909 = load ptr, ptr %38, align 8, !tbaa !5
  %910 = load i64, ptr %73, align 8, !tbaa !9
  %911 = load i64, ptr %74, align 8, !tbaa !9
  %912 = load i64, ptr %56, align 8, !tbaa !9
  %913 = mul nsw i64 %911, %912
  %914 = add nsw i64 %910, %913
  %915 = getelementptr inbounds double, ptr %909, i64 %914
  store double %908, ptr %915, align 8, !tbaa !11
  %916 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  %917 = load double, ptr %916, align 8, !tbaa !11
  %918 = load ptr, ptr %38, align 8, !tbaa !5
  %919 = load i64, ptr %73, align 8, !tbaa !9
  %920 = load i64, ptr %77, align 8, !tbaa !9
  %921 = load i64, ptr %56, align 8, !tbaa !9
  %922 = mul nsw i64 %920, %921
  %923 = add nsw i64 %919, %922
  %924 = getelementptr inbounds double, ptr %918, i64 %923
  store double %917, ptr %924, align 8, !tbaa !11
  %925 = load i64, ptr %61, align 8, !tbaa !9
  %926 = icmp sgt i64 %925, 1
  br i1 %926, label %927, label %962

927:                                              ; preds = %888
  %928 = load i64, ptr %73, align 8, !tbaa !9
  %929 = sub nsw i64 %928, 1
  store i64 %929, ptr %59, align 8, !tbaa !9
  %930 = load ptr, ptr %28, align 8, !tbaa !5
  %931 = load i64, ptr %73, align 8, !tbaa !9
  %932 = load i64, ptr %46, align 8, !tbaa !9
  %933 = mul nsw i64 %931, %932
  %934 = add nsw i64 %933, 1
  %935 = getelementptr inbounds double, ptr %930, i64 %934
  %936 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %937 = load ptr, ptr %32, align 8, !tbaa !5
  %938 = load i64, ptr %74, align 8, !tbaa !9
  %939 = load i64, ptr %50, align 8, !tbaa !9
  %940 = mul nsw i64 %938, %939
  %941 = add nsw i64 %940, 1
  %942 = getelementptr inbounds double, ptr %937, i64 %941
  %943 = load ptr, ptr %33, align 8, !tbaa !5
  %944 = call i32 @f2c_dger(ptr noundef %59, ptr noundef %70, ptr noundef @c_b27, ptr noundef %935, ptr noundef @c__1, ptr noundef %936, ptr noundef @c__1, ptr noundef %942, ptr noundef %943)
  %945 = load i64, ptr %73, align 8, !tbaa !9
  %946 = sub nsw i64 %945, 1
  store i64 %946, ptr %59, align 8, !tbaa !9
  %947 = load ptr, ptr %34, align 8, !tbaa !5
  %948 = load i64, ptr %73, align 8, !tbaa !9
  %949 = load i64, ptr %52, align 8, !tbaa !9
  %950 = mul nsw i64 %948, %949
  %951 = add nsw i64 %950, 1
  %952 = getelementptr inbounds double, ptr %947, i64 %951
  %953 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %954 = load ptr, ptr %38, align 8, !tbaa !5
  %955 = load i64, ptr %74, align 8, !tbaa !9
  %956 = load i64, ptr %56, align 8, !tbaa !9
  %957 = mul nsw i64 %955, %956
  %958 = add nsw i64 %957, 1
  %959 = getelementptr inbounds double, ptr %954, i64 %958
  %960 = load ptr, ptr %39, align 8, !tbaa !5
  %961 = call i32 @f2c_dger(ptr noundef %59, ptr noundef %70, ptr noundef @c_b27, ptr noundef %952, ptr noundef @c__1, ptr noundef %953, ptr noundef @c__1, ptr noundef %959, ptr noundef %960)
  br label %962

962:                                              ; preds = %927, %888
  %963 = load i64, ptr %62, align 8, !tbaa !9
  %964 = load i64, ptr %65, align 8, !tbaa !9
  %965 = icmp slt i64 %963, %964
  br i1 %965, label %966, label %1063

966:                                              ; preds = %962
  %967 = load ptr, ptr %27, align 8, !tbaa !5
  %968 = load i64, ptr %967, align 8, !tbaa !9
  %969 = load i64, ptr %68, align 8, !tbaa !9
  %970 = sub nsw i64 %968, %969
  store i64 %970, ptr %59, align 8, !tbaa !9
  %971 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %972 = load ptr, ptr %30, align 8, !tbaa !5
  %973 = load i64, ptr %74, align 8, !tbaa !9
  %974 = load i64, ptr %68, align 8, !tbaa !9
  %975 = add nsw i64 %974, 1
  %976 = load i64, ptr %48, align 8, !tbaa !9
  %977 = mul nsw i64 %975, %976
  %978 = add nsw i64 %973, %977
  %979 = getelementptr inbounds double, ptr %972, i64 %978
  %980 = load ptr, ptr %31, align 8, !tbaa !5
  %981 = load ptr, ptr %32, align 8, !tbaa !5
  %982 = load i64, ptr %73, align 8, !tbaa !9
  %983 = load i64, ptr %68, align 8, !tbaa !9
  %984 = add nsw i64 %983, 1
  %985 = load i64, ptr %50, align 8, !tbaa !9
  %986 = mul nsw i64 %984, %985
  %987 = add nsw i64 %982, %986
  %988 = getelementptr inbounds double, ptr %981, i64 %987
  %989 = load ptr, ptr %33, align 8, !tbaa !5
  %990 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %971, ptr noundef %979, ptr noundef %980, ptr noundef %988, ptr noundef %989)
  %991 = load ptr, ptr %27, align 8, !tbaa !5
  %992 = load i64, ptr %991, align 8, !tbaa !9
  %993 = load i64, ptr %68, align 8, !tbaa !9
  %994 = sub nsw i64 %992, %993
  store i64 %994, ptr %59, align 8, !tbaa !9
  %995 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %996 = load ptr, ptr %36, align 8, !tbaa !5
  %997 = load i64, ptr %74, align 8, !tbaa !9
  %998 = load i64, ptr %68, align 8, !tbaa !9
  %999 = add nsw i64 %998, 1
  %1000 = load i64, ptr %54, align 8, !tbaa !9
  %1001 = mul nsw i64 %999, %1000
  %1002 = add nsw i64 %997, %1001
  %1003 = getelementptr inbounds double, ptr %996, i64 %1002
  %1004 = load ptr, ptr %37, align 8, !tbaa !5
  %1005 = load ptr, ptr %38, align 8, !tbaa !5
  %1006 = load i64, ptr %73, align 8, !tbaa !9
  %1007 = load i64, ptr %68, align 8, !tbaa !9
  %1008 = add nsw i64 %1007, 1
  %1009 = load i64, ptr %56, align 8, !tbaa !9
  %1010 = mul nsw i64 %1008, %1009
  %1011 = add nsw i64 %1006, %1010
  %1012 = getelementptr inbounds double, ptr %1005, i64 %1011
  %1013 = load ptr, ptr %39, align 8, !tbaa !5
  %1014 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %995, ptr noundef %1003, ptr noundef %1004, ptr noundef %1012, ptr noundef %1013)
  %1015 = load ptr, ptr %27, align 8, !tbaa !5
  %1016 = load i64, ptr %1015, align 8, !tbaa !9
  %1017 = load i64, ptr %68, align 8, !tbaa !9
  %1018 = sub nsw i64 %1016, %1017
  store i64 %1018, ptr %59, align 8, !tbaa !9
  %1019 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  %1020 = load ptr, ptr %30, align 8, !tbaa !5
  %1021 = load i64, ptr %77, align 8, !tbaa !9
  %1022 = load i64, ptr %68, align 8, !tbaa !9
  %1023 = add nsw i64 %1022, 1
  %1024 = load i64, ptr %48, align 8, !tbaa !9
  %1025 = mul nsw i64 %1023, %1024
  %1026 = add nsw i64 %1021, %1025
  %1027 = getelementptr inbounds double, ptr %1020, i64 %1026
  %1028 = load ptr, ptr %31, align 8, !tbaa !5
  %1029 = load ptr, ptr %32, align 8, !tbaa !5
  %1030 = load i64, ptr %73, align 8, !tbaa !9
  %1031 = load i64, ptr %68, align 8, !tbaa !9
  %1032 = add nsw i64 %1031, 1
  %1033 = load i64, ptr %50, align 8, !tbaa !9
  %1034 = mul nsw i64 %1032, %1033
  %1035 = add nsw i64 %1030, %1034
  %1036 = getelementptr inbounds double, ptr %1029, i64 %1035
  %1037 = load ptr, ptr %33, align 8, !tbaa !5
  %1038 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %1019, ptr noundef %1027, ptr noundef %1028, ptr noundef %1036, ptr noundef %1037)
  %1039 = load ptr, ptr %27, align 8, !tbaa !5
  %1040 = load i64, ptr %1039, align 8, !tbaa !9
  %1041 = load i64, ptr %68, align 8, !tbaa !9
  %1042 = sub nsw i64 %1040, %1041
  store i64 %1042, ptr %59, align 8, !tbaa !9
  %1043 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  %1044 = load ptr, ptr %36, align 8, !tbaa !5
  %1045 = load i64, ptr %77, align 8, !tbaa !9
  %1046 = load i64, ptr %68, align 8, !tbaa !9
  %1047 = add nsw i64 %1046, 1
  %1048 = load i64, ptr %54, align 8, !tbaa !9
  %1049 = mul nsw i64 %1047, %1048
  %1050 = add nsw i64 %1045, %1049
  %1051 = getelementptr inbounds double, ptr %1044, i64 %1050
  %1052 = load ptr, ptr %37, align 8, !tbaa !5
  %1053 = load ptr, ptr %38, align 8, !tbaa !5
  %1054 = load i64, ptr %73, align 8, !tbaa !9
  %1055 = load i64, ptr %68, align 8, !tbaa !9
  %1056 = add nsw i64 %1055, 1
  %1057 = load i64, ptr %56, align 8, !tbaa !9
  %1058 = mul nsw i64 %1056, %1057
  %1059 = add nsw i64 %1054, %1058
  %1060 = getelementptr inbounds double, ptr %1053, i64 %1059
  %1061 = load ptr, ptr %39, align 8, !tbaa !5
  %1062 = call i32 @f2c_daxpy(ptr noundef %59, ptr noundef %1043, ptr noundef %1051, ptr noundef %1052, ptr noundef %1060, ptr noundef %1061)
  br label %1063

1063:                                             ; preds = %966, %962
  br label %1942

1064:                                             ; preds = %674, %671
  %1065 = load i64, ptr %69, align 8, !tbaa !9
  %1066 = icmp eq i64 %1065, 2
  br i1 %1066, label %1067, label %1406

1067:                                             ; preds = %1064
  %1068 = load i64, ptr %70, align 8, !tbaa !9
  %1069 = icmp eq i64 %1068, 1
  br i1 %1069, label %1070, label %1406

1070:                                             ; preds = %1067
  %1071 = load ptr, ptr %28, align 8, !tbaa !5
  %1072 = load i64, ptr %73, align 8, !tbaa !9
  %1073 = load i64, ptr %73, align 8, !tbaa !9
  %1074 = load i64, ptr %46, align 8, !tbaa !9
  %1075 = mul nsw i64 %1073, %1074
  %1076 = add nsw i64 %1072, %1075
  %1077 = getelementptr inbounds double, ptr %1071, i64 %1076
  %1078 = load double, ptr %1077, align 8, !tbaa !11
  %1079 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %1078, ptr %1079, align 16, !tbaa !11
  %1080 = load ptr, ptr %28, align 8, !tbaa !5
  %1081 = load i64, ptr %76, align 8, !tbaa !9
  %1082 = load i64, ptr %73, align 8, !tbaa !9
  %1083 = load i64, ptr %46, align 8, !tbaa !9
  %1084 = mul nsw i64 %1082, %1083
  %1085 = add nsw i64 %1081, %1084
  %1086 = getelementptr inbounds double, ptr %1080, i64 %1085
  %1087 = load double, ptr %1086, align 8, !tbaa !11
  %1088 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double %1087, ptr %1088, align 8, !tbaa !11
  %1089 = load ptr, ptr %34, align 8, !tbaa !5
  %1090 = load i64, ptr %73, align 8, !tbaa !9
  %1091 = load i64, ptr %73, align 8, !tbaa !9
  %1092 = load i64, ptr %52, align 8, !tbaa !9
  %1093 = mul nsw i64 %1091, %1092
  %1094 = add nsw i64 %1090, %1093
  %1095 = getelementptr inbounds double, ptr %1089, i64 %1094
  %1096 = load double, ptr %1095, align 8, !tbaa !11
  %1097 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 2
  store double %1096, ptr %1097, align 16, !tbaa !11
  %1098 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 3
  store double 0.000000e+00, ptr %1098, align 8, !tbaa !11
  %1099 = load ptr, ptr %28, align 8, !tbaa !5
  %1100 = load i64, ptr %73, align 8, !tbaa !9
  %1101 = load i64, ptr %76, align 8, !tbaa !9
  %1102 = load i64, ptr %46, align 8, !tbaa !9
  %1103 = mul nsw i64 %1101, %1102
  %1104 = add nsw i64 %1100, %1103
  %1105 = getelementptr inbounds double, ptr %1099, i64 %1104
  %1106 = load double, ptr %1105, align 8, !tbaa !11
  %1107 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double %1106, ptr %1107, align 16, !tbaa !11
  %1108 = load ptr, ptr %28, align 8, !tbaa !5
  %1109 = load i64, ptr %76, align 8, !tbaa !9
  %1110 = load i64, ptr %76, align 8, !tbaa !9
  %1111 = load i64, ptr %46, align 8, !tbaa !9
  %1112 = mul nsw i64 %1110, %1111
  %1113 = add nsw i64 %1109, %1112
  %1114 = getelementptr inbounds double, ptr %1108, i64 %1113
  %1115 = load double, ptr %1114, align 8, !tbaa !11
  %1116 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %1115, ptr %1116, align 8, !tbaa !11
  %1117 = load ptr, ptr %34, align 8, !tbaa !5
  %1118 = load i64, ptr %73, align 8, !tbaa !9
  %1119 = load i64, ptr %76, align 8, !tbaa !9
  %1120 = load i64, ptr %52, align 8, !tbaa !9
  %1121 = mul nsw i64 %1119, %1120
  %1122 = add nsw i64 %1118, %1121
  %1123 = getelementptr inbounds double, ptr %1117, i64 %1122
  %1124 = load double, ptr %1123, align 8, !tbaa !11
  %1125 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 10
  store double %1124, ptr %1125, align 16, !tbaa !11
  %1126 = load ptr, ptr %34, align 8, !tbaa !5
  %1127 = load i64, ptr %76, align 8, !tbaa !9
  %1128 = load i64, ptr %76, align 8, !tbaa !9
  %1129 = load i64, ptr %52, align 8, !tbaa !9
  %1130 = mul nsw i64 %1128, %1129
  %1131 = add nsw i64 %1127, %1130
  %1132 = getelementptr inbounds double, ptr %1126, i64 %1131
  %1133 = load double, ptr %1132, align 8, !tbaa !11
  %1134 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 11
  store double %1133, ptr %1134, align 8, !tbaa !11
  %1135 = load ptr, ptr %30, align 8, !tbaa !5
  %1136 = load i64, ptr %74, align 8, !tbaa !9
  %1137 = load i64, ptr %74, align 8, !tbaa !9
  %1138 = load i64, ptr %48, align 8, !tbaa !9
  %1139 = mul nsw i64 %1137, %1138
  %1140 = add nsw i64 %1136, %1139
  %1141 = getelementptr inbounds double, ptr %1135, i64 %1140
  %1142 = load double, ptr %1141, align 8, !tbaa !11
  %1143 = fneg double %1142
  %1144 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 16
  store double %1143, ptr %1144, align 16, !tbaa !11
  %1145 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 17
  store double 0.000000e+00, ptr %1145, align 8, !tbaa !11
  %1146 = load ptr, ptr %36, align 8, !tbaa !5
  %1147 = load i64, ptr %74, align 8, !tbaa !9
  %1148 = load i64, ptr %74, align 8, !tbaa !9
  %1149 = load i64, ptr %54, align 8, !tbaa !9
  %1150 = mul nsw i64 %1148, %1149
  %1151 = add nsw i64 %1147, %1150
  %1152 = getelementptr inbounds double, ptr %1146, i64 %1151
  %1153 = load double, ptr %1152, align 8, !tbaa !11
  %1154 = fneg double %1153
  %1155 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 18
  store double %1154, ptr %1155, align 16, !tbaa !11
  %1156 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 19
  store double 0.000000e+00, ptr %1156, align 8, !tbaa !11
  %1157 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 24
  store double 0.000000e+00, ptr %1157, align 16, !tbaa !11
  %1158 = load ptr, ptr %30, align 8, !tbaa !5
  %1159 = load i64, ptr %74, align 8, !tbaa !9
  %1160 = load i64, ptr %74, align 8, !tbaa !9
  %1161 = load i64, ptr %48, align 8, !tbaa !9
  %1162 = mul nsw i64 %1160, %1161
  %1163 = add nsw i64 %1159, %1162
  %1164 = getelementptr inbounds double, ptr %1158, i64 %1163
  %1165 = load double, ptr %1164, align 8, !tbaa !11
  %1166 = fneg double %1165
  %1167 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 25
  store double %1166, ptr %1167, align 8, !tbaa !11
  %1168 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 26
  store double 0.000000e+00, ptr %1168, align 16, !tbaa !11
  %1169 = load ptr, ptr %36, align 8, !tbaa !5
  %1170 = load i64, ptr %74, align 8, !tbaa !9
  %1171 = load i64, ptr %74, align 8, !tbaa !9
  %1172 = load i64, ptr %54, align 8, !tbaa !9
  %1173 = mul nsw i64 %1171, %1172
  %1174 = add nsw i64 %1170, %1173
  %1175 = getelementptr inbounds double, ptr %1169, i64 %1174
  %1176 = load double, ptr %1175, align 8, !tbaa !11
  %1177 = fneg double %1176
  %1178 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 27
  store double %1177, ptr %1178, align 8, !tbaa !11
  %1179 = load ptr, ptr %32, align 8, !tbaa !5
  %1180 = load i64, ptr %73, align 8, !tbaa !9
  %1181 = load i64, ptr %74, align 8, !tbaa !9
  %1182 = load i64, ptr %50, align 8, !tbaa !9
  %1183 = mul nsw i64 %1181, %1182
  %1184 = add nsw i64 %1180, %1183
  %1185 = getelementptr inbounds double, ptr %1179, i64 %1184
  %1186 = load double, ptr %1185, align 8, !tbaa !11
  %1187 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  store double %1186, ptr %1187, align 16, !tbaa !11
  %1188 = load ptr, ptr %32, align 8, !tbaa !5
  %1189 = load i64, ptr %76, align 8, !tbaa !9
  %1190 = load i64, ptr %74, align 8, !tbaa !9
  %1191 = load i64, ptr %50, align 8, !tbaa !9
  %1192 = mul nsw i64 %1190, %1191
  %1193 = add nsw i64 %1189, %1192
  %1194 = getelementptr inbounds double, ptr %1188, i64 %1193
  %1195 = load double, ptr %1194, align 8, !tbaa !11
  %1196 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  store double %1195, ptr %1196, align 8, !tbaa !11
  %1197 = load ptr, ptr %38, align 8, !tbaa !5
  %1198 = load i64, ptr %73, align 8, !tbaa !9
  %1199 = load i64, ptr %74, align 8, !tbaa !9
  %1200 = load i64, ptr %56, align 8, !tbaa !9
  %1201 = mul nsw i64 %1199, %1200
  %1202 = add nsw i64 %1198, %1201
  %1203 = getelementptr inbounds double, ptr %1197, i64 %1202
  %1204 = load double, ptr %1203, align 8, !tbaa !11
  %1205 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  store double %1204, ptr %1205, align 16, !tbaa !11
  %1206 = load ptr, ptr %38, align 8, !tbaa !5
  %1207 = load i64, ptr %76, align 8, !tbaa !9
  %1208 = load i64, ptr %74, align 8, !tbaa !9
  %1209 = load i64, ptr %56, align 8, !tbaa !9
  %1210 = mul nsw i64 %1208, %1209
  %1211 = add nsw i64 %1207, %1210
  %1212 = getelementptr inbounds double, ptr %1206, i64 %1211
  %1213 = load double, ptr %1212, align 8, !tbaa !11
  %1214 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  store double %1213, ptr %1214, align 8, !tbaa !11
  %1215 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %1216 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %1217 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %1218 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %1215, ptr noundef @c__8, ptr noundef %1216, ptr noundef %1217, ptr noundef %78)
  %1219 = load i64, ptr %78, align 8, !tbaa !9
  %1220 = icmp sgt i64 %1219, 0
  br i1 %1220, label %1221, label %1224

1221:                                             ; preds = %1070
  %1222 = load i64, ptr %78, align 8, !tbaa !9
  %1223 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %1222, ptr %1223, align 8, !tbaa !9
  br label %1224

1224:                                             ; preds = %1221, %1070
  %1225 = load ptr, ptr %25, align 8, !tbaa !5
  %1226 = load i64, ptr %1225, align 8, !tbaa !9
  %1227 = icmp eq i64 %1226, 0
  br i1 %1227, label %1228, label %1269

1228:                                             ; preds = %1224
  %1229 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %1230 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1231 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %1232 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %1233 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %1229, ptr noundef @c__8, ptr noundef %1230, ptr noundef %1231, ptr noundef %1232, ptr noundef %83)
  %1234 = load double, ptr %83, align 8, !tbaa !11
  %1235 = fcmp une double %1234, 1.000000e+00
  br i1 %1235, label %1236, label %1268

1236:                                             ; preds = %1228
  %1237 = load ptr, ptr %27, align 8, !tbaa !5
  %1238 = load i64, ptr %1237, align 8, !tbaa !9
  store i64 %1238, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %1239

1239:                                             ; preds = %1260, %1236
  %1240 = load i64, ptr %63, align 8, !tbaa !9
  %1241 = load i64, ptr %59, align 8, !tbaa !9
  %1242 = icmp sle i64 %1240, %1241
  br i1 %1242, label %1243, label %1263

1243:                                             ; preds = %1239
  %1244 = load ptr, ptr %26, align 8, !tbaa !5
  %1245 = load ptr, ptr %32, align 8, !tbaa !5
  %1246 = load i64, ptr %63, align 8, !tbaa !9
  %1247 = load i64, ptr %50, align 8, !tbaa !9
  %1248 = mul nsw i64 %1246, %1247
  %1249 = add nsw i64 %1248, 1
  %1250 = getelementptr inbounds double, ptr %1245, i64 %1249
  %1251 = call i32 @f2c_dscal(ptr noundef %1244, ptr noundef %83, ptr noundef %1250, ptr noundef @c__1)
  %1252 = load ptr, ptr %26, align 8, !tbaa !5
  %1253 = load ptr, ptr %38, align 8, !tbaa !5
  %1254 = load i64, ptr %63, align 8, !tbaa !9
  %1255 = load i64, ptr %56, align 8, !tbaa !9
  %1256 = mul nsw i64 %1254, %1255
  %1257 = add nsw i64 %1256, 1
  %1258 = getelementptr inbounds double, ptr %1253, i64 %1257
  %1259 = call i32 @f2c_dscal(ptr noundef %1252, ptr noundef %83, ptr noundef %1258, ptr noundef @c__1)
  br label %1260

1260:                                             ; preds = %1243
  %1261 = load i64, ptr %63, align 8, !tbaa !9
  %1262 = add nsw i64 %1261, 1
  store i64 %1262, ptr %63, align 8, !tbaa !9
  br label %1239, !llvm.loop !16

1263:                                             ; preds = %1239
  %1264 = load double, ptr %83, align 8, !tbaa !11
  %1265 = load ptr, ptr %40, align 8, !tbaa !5
  %1266 = load double, ptr %1265, align 8, !tbaa !11
  %1267 = fmul double %1266, %1264
  store double %1267, ptr %1265, align 8, !tbaa !11
  br label %1268

1268:                                             ; preds = %1263, %1228
  br label %1278

1269:                                             ; preds = %1224
  %1270 = load ptr, ptr %25, align 8, !tbaa !5
  %1271 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %1272 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1273 = load ptr, ptr %41, align 8, !tbaa !5
  %1274 = load ptr, ptr %42, align 8, !tbaa !5
  %1275 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %1276 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %1277 = call i32 @dlatdf_(ptr noundef %1270, ptr noundef %79, ptr noundef %1271, ptr noundef @c__8, ptr noundef %1272, ptr noundef %1273, ptr noundef %1274, ptr noundef %1275, ptr noundef %1276)
  br label %1278

1278:                                             ; preds = %1269, %1268
  %1279 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1280 = load double, ptr %1279, align 16, !tbaa !11
  %1281 = load ptr, ptr %32, align 8, !tbaa !5
  %1282 = load i64, ptr %73, align 8, !tbaa !9
  %1283 = load i64, ptr %74, align 8, !tbaa !9
  %1284 = load i64, ptr %50, align 8, !tbaa !9
  %1285 = mul nsw i64 %1283, %1284
  %1286 = add nsw i64 %1282, %1285
  %1287 = getelementptr inbounds double, ptr %1281, i64 %1286
  store double %1280, ptr %1287, align 8, !tbaa !11
  %1288 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %1289 = load double, ptr %1288, align 8, !tbaa !11
  %1290 = load ptr, ptr %32, align 8, !tbaa !5
  %1291 = load i64, ptr %76, align 8, !tbaa !9
  %1292 = load i64, ptr %74, align 8, !tbaa !9
  %1293 = load i64, ptr %50, align 8, !tbaa !9
  %1294 = mul nsw i64 %1292, %1293
  %1295 = add nsw i64 %1291, %1294
  %1296 = getelementptr inbounds double, ptr %1290, i64 %1295
  store double %1289, ptr %1296, align 8, !tbaa !11
  %1297 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %1298 = load double, ptr %1297, align 16, !tbaa !11
  %1299 = load ptr, ptr %38, align 8, !tbaa !5
  %1300 = load i64, ptr %73, align 8, !tbaa !9
  %1301 = load i64, ptr %74, align 8, !tbaa !9
  %1302 = load i64, ptr %56, align 8, !tbaa !9
  %1303 = mul nsw i64 %1301, %1302
  %1304 = add nsw i64 %1300, %1303
  %1305 = getelementptr inbounds double, ptr %1299, i64 %1304
  store double %1298, ptr %1305, align 8, !tbaa !11
  %1306 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  %1307 = load double, ptr %1306, align 8, !tbaa !11
  %1308 = load ptr, ptr %38, align 8, !tbaa !5
  %1309 = load i64, ptr %76, align 8, !tbaa !9
  %1310 = load i64, ptr %74, align 8, !tbaa !9
  %1311 = load i64, ptr %56, align 8, !tbaa !9
  %1312 = mul nsw i64 %1310, %1311
  %1313 = add nsw i64 %1309, %1312
  %1314 = getelementptr inbounds double, ptr %1308, i64 %1313
  store double %1307, ptr %1314, align 8, !tbaa !11
  %1315 = load i64, ptr %61, align 8, !tbaa !9
  %1316 = icmp sgt i64 %1315, 1
  br i1 %1316, label %1317, label %1352

1317:                                             ; preds = %1278
  %1318 = load i64, ptr %73, align 8, !tbaa !9
  %1319 = sub nsw i64 %1318, 1
  store i64 %1319, ptr %59, align 8, !tbaa !9
  %1320 = load ptr, ptr %28, align 8, !tbaa !5
  %1321 = load i64, ptr %73, align 8, !tbaa !9
  %1322 = load i64, ptr %46, align 8, !tbaa !9
  %1323 = mul nsw i64 %1321, %1322
  %1324 = add nsw i64 %1323, 1
  %1325 = getelementptr inbounds double, ptr %1320, i64 %1324
  %1326 = load ptr, ptr %29, align 8, !tbaa !5
  %1327 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1328 = load ptr, ptr %32, align 8, !tbaa !5
  %1329 = load i64, ptr %74, align 8, !tbaa !9
  %1330 = load i64, ptr %50, align 8, !tbaa !9
  %1331 = mul nsw i64 %1329, %1330
  %1332 = add nsw i64 %1331, 1
  %1333 = getelementptr inbounds double, ptr %1328, i64 %1332
  %1334 = call i32 @f2c_dgemv(ptr noundef @.str, ptr noundef %59, ptr noundef %69, ptr noundef @c_b27, ptr noundef %1325, ptr noundef %1326, ptr noundef %1327, ptr noundef @c__1, ptr noundef @c_b42, ptr noundef %1333, ptr noundef @c__1)
  %1335 = load i64, ptr %73, align 8, !tbaa !9
  %1336 = sub nsw i64 %1335, 1
  store i64 %1336, ptr %59, align 8, !tbaa !9
  %1337 = load ptr, ptr %34, align 8, !tbaa !5
  %1338 = load i64, ptr %73, align 8, !tbaa !9
  %1339 = load i64, ptr %52, align 8, !tbaa !9
  %1340 = mul nsw i64 %1338, %1339
  %1341 = add nsw i64 %1340, 1
  %1342 = getelementptr inbounds double, ptr %1337, i64 %1341
  %1343 = load ptr, ptr %35, align 8, !tbaa !5
  %1344 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1345 = load ptr, ptr %38, align 8, !tbaa !5
  %1346 = load i64, ptr %74, align 8, !tbaa !9
  %1347 = load i64, ptr %56, align 8, !tbaa !9
  %1348 = mul nsw i64 %1346, %1347
  %1349 = add nsw i64 %1348, 1
  %1350 = getelementptr inbounds double, ptr %1345, i64 %1349
  %1351 = call i32 @f2c_dgemv(ptr noundef @.str, ptr noundef %59, ptr noundef %69, ptr noundef @c_b27, ptr noundef %1342, ptr noundef %1343, ptr noundef %1344, ptr noundef @c__1, ptr noundef @c_b42, ptr noundef %1350, ptr noundef @c__1)
  br label %1352

1352:                                             ; preds = %1317, %1278
  %1353 = load i64, ptr %62, align 8, !tbaa !9
  %1354 = load i64, ptr %65, align 8, !tbaa !9
  %1355 = icmp slt i64 %1353, %1354
  br i1 %1355, label %1356, label %1405

1356:                                             ; preds = %1352
  %1357 = load ptr, ptr %27, align 8, !tbaa !5
  %1358 = load i64, ptr %1357, align 8, !tbaa !9
  %1359 = load i64, ptr %68, align 8, !tbaa !9
  %1360 = sub nsw i64 %1358, %1359
  store i64 %1360, ptr %59, align 8, !tbaa !9
  %1361 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %1362 = load ptr, ptr %30, align 8, !tbaa !5
  %1363 = load i64, ptr %74, align 8, !tbaa !9
  %1364 = load i64, ptr %68, align 8, !tbaa !9
  %1365 = add nsw i64 %1364, 1
  %1366 = load i64, ptr %48, align 8, !tbaa !9
  %1367 = mul nsw i64 %1365, %1366
  %1368 = add nsw i64 %1363, %1367
  %1369 = getelementptr inbounds double, ptr %1362, i64 %1368
  %1370 = load ptr, ptr %31, align 8, !tbaa !5
  %1371 = load ptr, ptr %32, align 8, !tbaa !5
  %1372 = load i64, ptr %73, align 8, !tbaa !9
  %1373 = load i64, ptr %68, align 8, !tbaa !9
  %1374 = add nsw i64 %1373, 1
  %1375 = load i64, ptr %50, align 8, !tbaa !9
  %1376 = mul nsw i64 %1374, %1375
  %1377 = add nsw i64 %1372, %1376
  %1378 = getelementptr inbounds double, ptr %1371, i64 %1377
  %1379 = load ptr, ptr %33, align 8, !tbaa !5
  %1380 = call i32 @f2c_dger(ptr noundef %69, ptr noundef %59, ptr noundef @c_b42, ptr noundef %1361, ptr noundef @c__1, ptr noundef %1369, ptr noundef %1370, ptr noundef %1378, ptr noundef %1379)
  %1381 = load ptr, ptr %27, align 8, !tbaa !5
  %1382 = load i64, ptr %1381, align 8, !tbaa !9
  %1383 = load i64, ptr %68, align 8, !tbaa !9
  %1384 = sub nsw i64 %1382, %1383
  store i64 %1384, ptr %59, align 8, !tbaa !9
  %1385 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %1386 = load ptr, ptr %36, align 8, !tbaa !5
  %1387 = load i64, ptr %74, align 8, !tbaa !9
  %1388 = load i64, ptr %68, align 8, !tbaa !9
  %1389 = add nsw i64 %1388, 1
  %1390 = load i64, ptr %54, align 8, !tbaa !9
  %1391 = mul nsw i64 %1389, %1390
  %1392 = add nsw i64 %1387, %1391
  %1393 = getelementptr inbounds double, ptr %1386, i64 %1392
  %1394 = load ptr, ptr %37, align 8, !tbaa !5
  %1395 = load ptr, ptr %38, align 8, !tbaa !5
  %1396 = load i64, ptr %73, align 8, !tbaa !9
  %1397 = load i64, ptr %68, align 8, !tbaa !9
  %1398 = add nsw i64 %1397, 1
  %1399 = load i64, ptr %56, align 8, !tbaa !9
  %1400 = mul nsw i64 %1398, %1399
  %1401 = add nsw i64 %1396, %1400
  %1402 = getelementptr inbounds double, ptr %1395, i64 %1401
  %1403 = load ptr, ptr %39, align 8, !tbaa !5
  %1404 = call i32 @f2c_dger(ptr noundef %69, ptr noundef %59, ptr noundef @c_b42, ptr noundef %1385, ptr noundef @c__1, ptr noundef %1393, ptr noundef %1394, ptr noundef %1402, ptr noundef %1403)
  br label %1405

1405:                                             ; preds = %1356, %1352
  br label %1941

1406:                                             ; preds = %1067, %1064
  %1407 = load i64, ptr %69, align 8, !tbaa !9
  %1408 = icmp eq i64 %1407, 2
  br i1 %1408, label %1409, label %1940

1409:                                             ; preds = %1406
  %1410 = load i64, ptr %70, align 8, !tbaa !9
  %1411 = icmp eq i64 %1410, 2
  br i1 %1411, label %1412, label %1940

1412:                                             ; preds = %1409
  %1413 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %1414 = call i32 @dlaset_(ptr noundef @.str.3, ptr noundef @c__8, ptr noundef @c__8, ptr noundef @c_b56, ptr noundef @c_b56, ptr noundef %1413, ptr noundef @c__8)
  %1415 = load ptr, ptr %28, align 8, !tbaa !5
  %1416 = load i64, ptr %73, align 8, !tbaa !9
  %1417 = load i64, ptr %73, align 8, !tbaa !9
  %1418 = load i64, ptr %46, align 8, !tbaa !9
  %1419 = mul nsw i64 %1417, %1418
  %1420 = add nsw i64 %1416, %1419
  %1421 = getelementptr inbounds double, ptr %1415, i64 %1420
  %1422 = load double, ptr %1421, align 8, !tbaa !11
  %1423 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %1422, ptr %1423, align 16, !tbaa !11
  %1424 = load ptr, ptr %28, align 8, !tbaa !5
  %1425 = load i64, ptr %76, align 8, !tbaa !9
  %1426 = load i64, ptr %73, align 8, !tbaa !9
  %1427 = load i64, ptr %46, align 8, !tbaa !9
  %1428 = mul nsw i64 %1426, %1427
  %1429 = add nsw i64 %1425, %1428
  %1430 = getelementptr inbounds double, ptr %1424, i64 %1429
  %1431 = load double, ptr %1430, align 8, !tbaa !11
  %1432 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double %1431, ptr %1432, align 8, !tbaa !11
  %1433 = load ptr, ptr %34, align 8, !tbaa !5
  %1434 = load i64, ptr %73, align 8, !tbaa !9
  %1435 = load i64, ptr %73, align 8, !tbaa !9
  %1436 = load i64, ptr %52, align 8, !tbaa !9
  %1437 = mul nsw i64 %1435, %1436
  %1438 = add nsw i64 %1434, %1437
  %1439 = getelementptr inbounds double, ptr %1433, i64 %1438
  %1440 = load double, ptr %1439, align 8, !tbaa !11
  %1441 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 4
  store double %1440, ptr %1441, align 16, !tbaa !11
  %1442 = load ptr, ptr %28, align 8, !tbaa !5
  %1443 = load i64, ptr %73, align 8, !tbaa !9
  %1444 = load i64, ptr %76, align 8, !tbaa !9
  %1445 = load i64, ptr %46, align 8, !tbaa !9
  %1446 = mul nsw i64 %1444, %1445
  %1447 = add nsw i64 %1443, %1446
  %1448 = getelementptr inbounds double, ptr %1442, i64 %1447
  %1449 = load double, ptr %1448, align 8, !tbaa !11
  %1450 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double %1449, ptr %1450, align 16, !tbaa !11
  %1451 = load ptr, ptr %28, align 8, !tbaa !5
  %1452 = load i64, ptr %76, align 8, !tbaa !9
  %1453 = load i64, ptr %76, align 8, !tbaa !9
  %1454 = load i64, ptr %46, align 8, !tbaa !9
  %1455 = mul nsw i64 %1453, %1454
  %1456 = add nsw i64 %1452, %1455
  %1457 = getelementptr inbounds double, ptr %1451, i64 %1456
  %1458 = load double, ptr %1457, align 8, !tbaa !11
  %1459 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %1458, ptr %1459, align 8, !tbaa !11
  %1460 = load ptr, ptr %34, align 8, !tbaa !5
  %1461 = load i64, ptr %73, align 8, !tbaa !9
  %1462 = load i64, ptr %76, align 8, !tbaa !9
  %1463 = load i64, ptr %52, align 8, !tbaa !9
  %1464 = mul nsw i64 %1462, %1463
  %1465 = add nsw i64 %1461, %1464
  %1466 = getelementptr inbounds double, ptr %1460, i64 %1465
  %1467 = load double, ptr %1466, align 8, !tbaa !11
  %1468 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 12
  store double %1467, ptr %1468, align 16, !tbaa !11
  %1469 = load ptr, ptr %34, align 8, !tbaa !5
  %1470 = load i64, ptr %76, align 8, !tbaa !9
  %1471 = load i64, ptr %76, align 8, !tbaa !9
  %1472 = load i64, ptr %52, align 8, !tbaa !9
  %1473 = mul nsw i64 %1471, %1472
  %1474 = add nsw i64 %1470, %1473
  %1475 = getelementptr inbounds double, ptr %1469, i64 %1474
  %1476 = load double, ptr %1475, align 8, !tbaa !11
  %1477 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 13
  store double %1476, ptr %1477, align 8, !tbaa !11
  %1478 = load ptr, ptr %28, align 8, !tbaa !5
  %1479 = load i64, ptr %73, align 8, !tbaa !9
  %1480 = load i64, ptr %73, align 8, !tbaa !9
  %1481 = load i64, ptr %46, align 8, !tbaa !9
  %1482 = mul nsw i64 %1480, %1481
  %1483 = add nsw i64 %1479, %1482
  %1484 = getelementptr inbounds double, ptr %1478, i64 %1483
  %1485 = load double, ptr %1484, align 8, !tbaa !11
  %1486 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 18
  store double %1485, ptr %1486, align 16, !tbaa !11
  %1487 = load ptr, ptr %28, align 8, !tbaa !5
  %1488 = load i64, ptr %76, align 8, !tbaa !9
  %1489 = load i64, ptr %73, align 8, !tbaa !9
  %1490 = load i64, ptr %46, align 8, !tbaa !9
  %1491 = mul nsw i64 %1489, %1490
  %1492 = add nsw i64 %1488, %1491
  %1493 = getelementptr inbounds double, ptr %1487, i64 %1492
  %1494 = load double, ptr %1493, align 8, !tbaa !11
  %1495 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 19
  store double %1494, ptr %1495, align 8, !tbaa !11
  %1496 = load ptr, ptr %34, align 8, !tbaa !5
  %1497 = load i64, ptr %73, align 8, !tbaa !9
  %1498 = load i64, ptr %73, align 8, !tbaa !9
  %1499 = load i64, ptr %52, align 8, !tbaa !9
  %1500 = mul nsw i64 %1498, %1499
  %1501 = add nsw i64 %1497, %1500
  %1502 = getelementptr inbounds double, ptr %1496, i64 %1501
  %1503 = load double, ptr %1502, align 8, !tbaa !11
  %1504 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 22
  store double %1503, ptr %1504, align 16, !tbaa !11
  %1505 = load ptr, ptr %28, align 8, !tbaa !5
  %1506 = load i64, ptr %73, align 8, !tbaa !9
  %1507 = load i64, ptr %76, align 8, !tbaa !9
  %1508 = load i64, ptr %46, align 8, !tbaa !9
  %1509 = mul nsw i64 %1507, %1508
  %1510 = add nsw i64 %1506, %1509
  %1511 = getelementptr inbounds double, ptr %1505, i64 %1510
  %1512 = load double, ptr %1511, align 8, !tbaa !11
  %1513 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 26
  store double %1512, ptr %1513, align 16, !tbaa !11
  %1514 = load ptr, ptr %28, align 8, !tbaa !5
  %1515 = load i64, ptr %76, align 8, !tbaa !9
  %1516 = load i64, ptr %76, align 8, !tbaa !9
  %1517 = load i64, ptr %46, align 8, !tbaa !9
  %1518 = mul nsw i64 %1516, %1517
  %1519 = add nsw i64 %1515, %1518
  %1520 = getelementptr inbounds double, ptr %1514, i64 %1519
  %1521 = load double, ptr %1520, align 8, !tbaa !11
  %1522 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 27
  store double %1521, ptr %1522, align 8, !tbaa !11
  %1523 = load ptr, ptr %34, align 8, !tbaa !5
  %1524 = load i64, ptr %73, align 8, !tbaa !9
  %1525 = load i64, ptr %76, align 8, !tbaa !9
  %1526 = load i64, ptr %52, align 8, !tbaa !9
  %1527 = mul nsw i64 %1525, %1526
  %1528 = add nsw i64 %1524, %1527
  %1529 = getelementptr inbounds double, ptr %1523, i64 %1528
  %1530 = load double, ptr %1529, align 8, !tbaa !11
  %1531 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 30
  store double %1530, ptr %1531, align 16, !tbaa !11
  %1532 = load ptr, ptr %34, align 8, !tbaa !5
  %1533 = load i64, ptr %76, align 8, !tbaa !9
  %1534 = load i64, ptr %76, align 8, !tbaa !9
  %1535 = load i64, ptr %52, align 8, !tbaa !9
  %1536 = mul nsw i64 %1534, %1535
  %1537 = add nsw i64 %1533, %1536
  %1538 = getelementptr inbounds double, ptr %1532, i64 %1537
  %1539 = load double, ptr %1538, align 8, !tbaa !11
  %1540 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 31
  store double %1539, ptr %1540, align 8, !tbaa !11
  %1541 = load ptr, ptr %30, align 8, !tbaa !5
  %1542 = load i64, ptr %74, align 8, !tbaa !9
  %1543 = load i64, ptr %74, align 8, !tbaa !9
  %1544 = load i64, ptr %48, align 8, !tbaa !9
  %1545 = mul nsw i64 %1543, %1544
  %1546 = add nsw i64 %1542, %1545
  %1547 = getelementptr inbounds double, ptr %1541, i64 %1546
  %1548 = load double, ptr %1547, align 8, !tbaa !11
  %1549 = fneg double %1548
  %1550 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 32
  store double %1549, ptr %1550, align 16, !tbaa !11
  %1551 = load ptr, ptr %30, align 8, !tbaa !5
  %1552 = load i64, ptr %74, align 8, !tbaa !9
  %1553 = load i64, ptr %77, align 8, !tbaa !9
  %1554 = load i64, ptr %48, align 8, !tbaa !9
  %1555 = mul nsw i64 %1553, %1554
  %1556 = add nsw i64 %1552, %1555
  %1557 = getelementptr inbounds double, ptr %1551, i64 %1556
  %1558 = load double, ptr %1557, align 8, !tbaa !11
  %1559 = fneg double %1558
  %1560 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 34
  store double %1559, ptr %1560, align 16, !tbaa !11
  %1561 = load ptr, ptr %36, align 8, !tbaa !5
  %1562 = load i64, ptr %74, align 8, !tbaa !9
  %1563 = load i64, ptr %74, align 8, !tbaa !9
  %1564 = load i64, ptr %54, align 8, !tbaa !9
  %1565 = mul nsw i64 %1563, %1564
  %1566 = add nsw i64 %1562, %1565
  %1567 = getelementptr inbounds double, ptr %1561, i64 %1566
  %1568 = load double, ptr %1567, align 8, !tbaa !11
  %1569 = fneg double %1568
  %1570 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 36
  store double %1569, ptr %1570, align 16, !tbaa !11
  %1571 = load ptr, ptr %36, align 8, !tbaa !5
  %1572 = load i64, ptr %74, align 8, !tbaa !9
  %1573 = load i64, ptr %77, align 8, !tbaa !9
  %1574 = load i64, ptr %54, align 8, !tbaa !9
  %1575 = mul nsw i64 %1573, %1574
  %1576 = add nsw i64 %1572, %1575
  %1577 = getelementptr inbounds double, ptr %1571, i64 %1576
  %1578 = load double, ptr %1577, align 8, !tbaa !11
  %1579 = fneg double %1578
  %1580 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 38
  store double %1579, ptr %1580, align 16, !tbaa !11
  %1581 = load ptr, ptr %30, align 8, !tbaa !5
  %1582 = load i64, ptr %74, align 8, !tbaa !9
  %1583 = load i64, ptr %74, align 8, !tbaa !9
  %1584 = load i64, ptr %48, align 8, !tbaa !9
  %1585 = mul nsw i64 %1583, %1584
  %1586 = add nsw i64 %1582, %1585
  %1587 = getelementptr inbounds double, ptr %1581, i64 %1586
  %1588 = load double, ptr %1587, align 8, !tbaa !11
  %1589 = fneg double %1588
  %1590 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 41
  store double %1589, ptr %1590, align 8, !tbaa !11
  %1591 = load ptr, ptr %30, align 8, !tbaa !5
  %1592 = load i64, ptr %74, align 8, !tbaa !9
  %1593 = load i64, ptr %77, align 8, !tbaa !9
  %1594 = load i64, ptr %48, align 8, !tbaa !9
  %1595 = mul nsw i64 %1593, %1594
  %1596 = add nsw i64 %1592, %1595
  %1597 = getelementptr inbounds double, ptr %1591, i64 %1596
  %1598 = load double, ptr %1597, align 8, !tbaa !11
  %1599 = fneg double %1598
  %1600 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 43
  store double %1599, ptr %1600, align 8, !tbaa !11
  %1601 = load ptr, ptr %36, align 8, !tbaa !5
  %1602 = load i64, ptr %74, align 8, !tbaa !9
  %1603 = load i64, ptr %74, align 8, !tbaa !9
  %1604 = load i64, ptr %54, align 8, !tbaa !9
  %1605 = mul nsw i64 %1603, %1604
  %1606 = add nsw i64 %1602, %1605
  %1607 = getelementptr inbounds double, ptr %1601, i64 %1606
  %1608 = load double, ptr %1607, align 8, !tbaa !11
  %1609 = fneg double %1608
  %1610 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 45
  store double %1609, ptr %1610, align 8, !tbaa !11
  %1611 = load ptr, ptr %36, align 8, !tbaa !5
  %1612 = load i64, ptr %74, align 8, !tbaa !9
  %1613 = load i64, ptr %77, align 8, !tbaa !9
  %1614 = load i64, ptr %54, align 8, !tbaa !9
  %1615 = mul nsw i64 %1613, %1614
  %1616 = add nsw i64 %1612, %1615
  %1617 = getelementptr inbounds double, ptr %1611, i64 %1616
  %1618 = load double, ptr %1617, align 8, !tbaa !11
  %1619 = fneg double %1618
  %1620 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 47
  store double %1619, ptr %1620, align 8, !tbaa !11
  %1621 = load ptr, ptr %30, align 8, !tbaa !5
  %1622 = load i64, ptr %77, align 8, !tbaa !9
  %1623 = load i64, ptr %74, align 8, !tbaa !9
  %1624 = load i64, ptr %48, align 8, !tbaa !9
  %1625 = mul nsw i64 %1623, %1624
  %1626 = add nsw i64 %1622, %1625
  %1627 = getelementptr inbounds double, ptr %1621, i64 %1626
  %1628 = load double, ptr %1627, align 8, !tbaa !11
  %1629 = fneg double %1628
  %1630 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 48
  store double %1629, ptr %1630, align 16, !tbaa !11
  %1631 = load ptr, ptr %30, align 8, !tbaa !5
  %1632 = load i64, ptr %77, align 8, !tbaa !9
  %1633 = load i64, ptr %77, align 8, !tbaa !9
  %1634 = load i64, ptr %48, align 8, !tbaa !9
  %1635 = mul nsw i64 %1633, %1634
  %1636 = add nsw i64 %1632, %1635
  %1637 = getelementptr inbounds double, ptr %1631, i64 %1636
  %1638 = load double, ptr %1637, align 8, !tbaa !11
  %1639 = fneg double %1638
  %1640 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 50
  store double %1639, ptr %1640, align 16, !tbaa !11
  %1641 = load ptr, ptr %36, align 8, !tbaa !5
  %1642 = load i64, ptr %77, align 8, !tbaa !9
  %1643 = load i64, ptr %77, align 8, !tbaa !9
  %1644 = load i64, ptr %54, align 8, !tbaa !9
  %1645 = mul nsw i64 %1643, %1644
  %1646 = add nsw i64 %1642, %1645
  %1647 = getelementptr inbounds double, ptr %1641, i64 %1646
  %1648 = load double, ptr %1647, align 8, !tbaa !11
  %1649 = fneg double %1648
  %1650 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 54
  store double %1649, ptr %1650, align 16, !tbaa !11
  %1651 = load ptr, ptr %30, align 8, !tbaa !5
  %1652 = load i64, ptr %77, align 8, !tbaa !9
  %1653 = load i64, ptr %74, align 8, !tbaa !9
  %1654 = load i64, ptr %48, align 8, !tbaa !9
  %1655 = mul nsw i64 %1653, %1654
  %1656 = add nsw i64 %1652, %1655
  %1657 = getelementptr inbounds double, ptr %1651, i64 %1656
  %1658 = load double, ptr %1657, align 8, !tbaa !11
  %1659 = fneg double %1658
  %1660 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 57
  store double %1659, ptr %1660, align 8, !tbaa !11
  %1661 = load ptr, ptr %30, align 8, !tbaa !5
  %1662 = load i64, ptr %77, align 8, !tbaa !9
  %1663 = load i64, ptr %77, align 8, !tbaa !9
  %1664 = load i64, ptr %48, align 8, !tbaa !9
  %1665 = mul nsw i64 %1663, %1664
  %1666 = add nsw i64 %1662, %1665
  %1667 = getelementptr inbounds double, ptr %1661, i64 %1666
  %1668 = load double, ptr %1667, align 8, !tbaa !11
  %1669 = fneg double %1668
  %1670 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 59
  store double %1669, ptr %1670, align 8, !tbaa !11
  %1671 = load ptr, ptr %36, align 8, !tbaa !5
  %1672 = load i64, ptr %77, align 8, !tbaa !9
  %1673 = load i64, ptr %77, align 8, !tbaa !9
  %1674 = load i64, ptr %54, align 8, !tbaa !9
  %1675 = mul nsw i64 %1673, %1674
  %1676 = add nsw i64 %1672, %1675
  %1677 = getelementptr inbounds double, ptr %1671, i64 %1676
  %1678 = load double, ptr %1677, align 8, !tbaa !11
  %1679 = fneg double %1678
  %1680 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 63
  store double %1679, ptr %1680, align 8, !tbaa !11
  store i64 1, ptr %63, align 8, !tbaa !9
  %1681 = load i64, ptr %69, align 8, !tbaa !9
  %1682 = load i64, ptr %70, align 8, !tbaa !9
  %1683 = mul nsw i64 %1681, %1682
  %1684 = add nsw i64 %1683, 1
  store i64 %1684, ptr %71, align 8, !tbaa !9
  %1685 = load i64, ptr %70, align 8, !tbaa !9
  %1686 = sub nsw i64 %1685, 1
  store i64 %1686, ptr %59, align 8, !tbaa !9
  store i64 0, ptr %72, align 8, !tbaa !9
  br label %1687

1687:                                             ; preds = %1724, %1412
  %1688 = load i64, ptr %72, align 8, !tbaa !9
  %1689 = load i64, ptr %59, align 8, !tbaa !9
  %1690 = icmp sle i64 %1688, %1689
  br i1 %1690, label %1691, label %1727

1691:                                             ; preds = %1687
  %1692 = load ptr, ptr %32, align 8, !tbaa !5
  %1693 = load i64, ptr %73, align 8, !tbaa !9
  %1694 = load i64, ptr %74, align 8, !tbaa !9
  %1695 = load i64, ptr %72, align 8, !tbaa !9
  %1696 = add nsw i64 %1694, %1695
  %1697 = load i64, ptr %50, align 8, !tbaa !9
  %1698 = mul nsw i64 %1696, %1697
  %1699 = add nsw i64 %1693, %1698
  %1700 = getelementptr inbounds double, ptr %1692, i64 %1699
  %1701 = load i64, ptr %63, align 8, !tbaa !9
  %1702 = sub nsw i64 %1701, 1
  %1703 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %1702
  %1704 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %1700, ptr noundef @c__1, ptr noundef %1703, ptr noundef @c__1)
  %1705 = load ptr, ptr %38, align 8, !tbaa !5
  %1706 = load i64, ptr %73, align 8, !tbaa !9
  %1707 = load i64, ptr %74, align 8, !tbaa !9
  %1708 = load i64, ptr %72, align 8, !tbaa !9
  %1709 = add nsw i64 %1707, %1708
  %1710 = load i64, ptr %56, align 8, !tbaa !9
  %1711 = mul nsw i64 %1709, %1710
  %1712 = add nsw i64 %1706, %1711
  %1713 = getelementptr inbounds double, ptr %1705, i64 %1712
  %1714 = load i64, ptr %71, align 8, !tbaa !9
  %1715 = sub nsw i64 %1714, 1
  %1716 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %1715
  %1717 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %1713, ptr noundef @c__1, ptr noundef %1716, ptr noundef @c__1)
  %1718 = load i64, ptr %69, align 8, !tbaa !9
  %1719 = load i64, ptr %63, align 8, !tbaa !9
  %1720 = add nsw i64 %1719, %1718
  store i64 %1720, ptr %63, align 8, !tbaa !9
  %1721 = load i64, ptr %69, align 8, !tbaa !9
  %1722 = load i64, ptr %71, align 8, !tbaa !9
  %1723 = add nsw i64 %1722, %1721
  store i64 %1723, ptr %71, align 8, !tbaa !9
  br label %1724

1724:                                             ; preds = %1691
  %1725 = load i64, ptr %72, align 8, !tbaa !9
  %1726 = add nsw i64 %1725, 1
  store i64 %1726, ptr %72, align 8, !tbaa !9
  br label %1687, !llvm.loop !17

1727:                                             ; preds = %1687
  %1728 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %1729 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %1730 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %1731 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %1728, ptr noundef @c__8, ptr noundef %1729, ptr noundef %1730, ptr noundef %78)
  %1732 = load i64, ptr %78, align 8, !tbaa !9
  %1733 = icmp sgt i64 %1732, 0
  br i1 %1733, label %1734, label %1737

1734:                                             ; preds = %1727
  %1735 = load i64, ptr %78, align 8, !tbaa !9
  %1736 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %1735, ptr %1736, align 8, !tbaa !9
  br label %1737

1737:                                             ; preds = %1734, %1727
  %1738 = load ptr, ptr %25, align 8, !tbaa !5
  %1739 = load i64, ptr %1738, align 8, !tbaa !9
  %1740 = icmp eq i64 %1739, 0
  br i1 %1740, label %1741, label %1782

1741:                                             ; preds = %1737
  %1742 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %1743 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1744 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %1745 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %1746 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %1742, ptr noundef @c__8, ptr noundef %1743, ptr noundef %1744, ptr noundef %1745, ptr noundef %83)
  %1747 = load double, ptr %83, align 8, !tbaa !11
  %1748 = fcmp une double %1747, 1.000000e+00
  br i1 %1748, label %1749, label %1781

1749:                                             ; preds = %1741
  %1750 = load ptr, ptr %27, align 8, !tbaa !5
  %1751 = load i64, ptr %1750, align 8, !tbaa !9
  store i64 %1751, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %1752

1752:                                             ; preds = %1773, %1749
  %1753 = load i64, ptr %63, align 8, !tbaa !9
  %1754 = load i64, ptr %59, align 8, !tbaa !9
  %1755 = icmp sle i64 %1753, %1754
  br i1 %1755, label %1756, label %1776

1756:                                             ; preds = %1752
  %1757 = load ptr, ptr %26, align 8, !tbaa !5
  %1758 = load ptr, ptr %32, align 8, !tbaa !5
  %1759 = load i64, ptr %63, align 8, !tbaa !9
  %1760 = load i64, ptr %50, align 8, !tbaa !9
  %1761 = mul nsw i64 %1759, %1760
  %1762 = add nsw i64 %1761, 1
  %1763 = getelementptr inbounds double, ptr %1758, i64 %1762
  %1764 = call i32 @f2c_dscal(ptr noundef %1757, ptr noundef %83, ptr noundef %1763, ptr noundef @c__1)
  %1765 = load ptr, ptr %26, align 8, !tbaa !5
  %1766 = load ptr, ptr %38, align 8, !tbaa !5
  %1767 = load i64, ptr %63, align 8, !tbaa !9
  %1768 = load i64, ptr %56, align 8, !tbaa !9
  %1769 = mul nsw i64 %1767, %1768
  %1770 = add nsw i64 %1769, 1
  %1771 = getelementptr inbounds double, ptr %1766, i64 %1770
  %1772 = call i32 @f2c_dscal(ptr noundef %1765, ptr noundef %83, ptr noundef %1771, ptr noundef @c__1)
  br label %1773

1773:                                             ; preds = %1756
  %1774 = load i64, ptr %63, align 8, !tbaa !9
  %1775 = add nsw i64 %1774, 1
  store i64 %1775, ptr %63, align 8, !tbaa !9
  br label %1752, !llvm.loop !18

1776:                                             ; preds = %1752
  %1777 = load double, ptr %83, align 8, !tbaa !11
  %1778 = load ptr, ptr %40, align 8, !tbaa !5
  %1779 = load double, ptr %1778, align 8, !tbaa !11
  %1780 = fmul double %1779, %1777
  store double %1780, ptr %1778, align 8, !tbaa !11
  br label %1781

1781:                                             ; preds = %1776, %1741
  br label %1791

1782:                                             ; preds = %1737
  %1783 = load ptr, ptr %25, align 8, !tbaa !5
  %1784 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %1785 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1786 = load ptr, ptr %41, align 8, !tbaa !5
  %1787 = load ptr, ptr %42, align 8, !tbaa !5
  %1788 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %1789 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %1790 = call i32 @dlatdf_(ptr noundef %1783, ptr noundef %79, ptr noundef %1784, ptr noundef @c__8, ptr noundef %1785, ptr noundef %1786, ptr noundef %1787, ptr noundef %1788, ptr noundef %1789)
  br label %1791

1791:                                             ; preds = %1782, %1781
  store i64 1, ptr %63, align 8, !tbaa !9
  %1792 = load i64, ptr %69, align 8, !tbaa !9
  %1793 = load i64, ptr %70, align 8, !tbaa !9
  %1794 = mul nsw i64 %1792, %1793
  %1795 = add nsw i64 %1794, 1
  store i64 %1795, ptr %71, align 8, !tbaa !9
  %1796 = load i64, ptr %70, align 8, !tbaa !9
  %1797 = sub nsw i64 %1796, 1
  store i64 %1797, ptr %59, align 8, !tbaa !9
  store i64 0, ptr %72, align 8, !tbaa !9
  br label %1798

1798:                                             ; preds = %1835, %1791
  %1799 = load i64, ptr %72, align 8, !tbaa !9
  %1800 = load i64, ptr %59, align 8, !tbaa !9
  %1801 = icmp sle i64 %1799, %1800
  br i1 %1801, label %1802, label %1838

1802:                                             ; preds = %1798
  %1803 = load i64, ptr %63, align 8, !tbaa !9
  %1804 = sub nsw i64 %1803, 1
  %1805 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %1804
  %1806 = load ptr, ptr %32, align 8, !tbaa !5
  %1807 = load i64, ptr %73, align 8, !tbaa !9
  %1808 = load i64, ptr %74, align 8, !tbaa !9
  %1809 = load i64, ptr %72, align 8, !tbaa !9
  %1810 = add nsw i64 %1808, %1809
  %1811 = load i64, ptr %50, align 8, !tbaa !9
  %1812 = mul nsw i64 %1810, %1811
  %1813 = add nsw i64 %1807, %1812
  %1814 = getelementptr inbounds double, ptr %1806, i64 %1813
  %1815 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %1805, ptr noundef @c__1, ptr noundef %1814, ptr noundef @c__1)
  %1816 = load i64, ptr %71, align 8, !tbaa !9
  %1817 = sub nsw i64 %1816, 1
  %1818 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %1817
  %1819 = load ptr, ptr %38, align 8, !tbaa !5
  %1820 = load i64, ptr %73, align 8, !tbaa !9
  %1821 = load i64, ptr %74, align 8, !tbaa !9
  %1822 = load i64, ptr %72, align 8, !tbaa !9
  %1823 = add nsw i64 %1821, %1822
  %1824 = load i64, ptr %56, align 8, !tbaa !9
  %1825 = mul nsw i64 %1823, %1824
  %1826 = add nsw i64 %1820, %1825
  %1827 = getelementptr inbounds double, ptr %1819, i64 %1826
  %1828 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %1818, ptr noundef @c__1, ptr noundef %1827, ptr noundef @c__1)
  %1829 = load i64, ptr %69, align 8, !tbaa !9
  %1830 = load i64, ptr %63, align 8, !tbaa !9
  %1831 = add nsw i64 %1830, %1829
  store i64 %1831, ptr %63, align 8, !tbaa !9
  %1832 = load i64, ptr %69, align 8, !tbaa !9
  %1833 = load i64, ptr %71, align 8, !tbaa !9
  %1834 = add nsw i64 %1833, %1832
  store i64 %1834, ptr %71, align 8, !tbaa !9
  br label %1835

1835:                                             ; preds = %1802
  %1836 = load i64, ptr %72, align 8, !tbaa !9
  %1837 = add nsw i64 %1836, 1
  store i64 %1837, ptr %72, align 8, !tbaa !9
  br label %1798, !llvm.loop !19

1838:                                             ; preds = %1798
  %1839 = load i64, ptr %61, align 8, !tbaa !9
  %1840 = icmp sgt i64 %1839, 1
  br i1 %1840, label %1841, label %1878

1841:                                             ; preds = %1838
  %1842 = load i64, ptr %73, align 8, !tbaa !9
  %1843 = sub nsw i64 %1842, 1
  store i64 %1843, ptr %59, align 8, !tbaa !9
  %1844 = load ptr, ptr %28, align 8, !tbaa !5
  %1845 = load i64, ptr %73, align 8, !tbaa !9
  %1846 = load i64, ptr %46, align 8, !tbaa !9
  %1847 = mul nsw i64 %1845, %1846
  %1848 = add nsw i64 %1847, 1
  %1849 = getelementptr inbounds double, ptr %1844, i64 %1848
  %1850 = load ptr, ptr %29, align 8, !tbaa !5
  %1851 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1852 = load ptr, ptr %32, align 8, !tbaa !5
  %1853 = load i64, ptr %74, align 8, !tbaa !9
  %1854 = load i64, ptr %50, align 8, !tbaa !9
  %1855 = mul nsw i64 %1853, %1854
  %1856 = add nsw i64 %1855, 1
  %1857 = getelementptr inbounds double, ptr %1852, i64 %1856
  %1858 = load ptr, ptr %33, align 8, !tbaa !5
  %1859 = call i32 @f2c_dgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef %70, ptr noundef %69, ptr noundef @c_b27, ptr noundef %1849, ptr noundef %1850, ptr noundef %1851, ptr noundef %69, ptr noundef @c_b42, ptr noundef %1857, ptr noundef %1858)
  %1860 = load i64, ptr %73, align 8, !tbaa !9
  %1861 = sub nsw i64 %1860, 1
  store i64 %1861, ptr %59, align 8, !tbaa !9
  %1862 = load ptr, ptr %34, align 8, !tbaa !5
  %1863 = load i64, ptr %73, align 8, !tbaa !9
  %1864 = load i64, ptr %52, align 8, !tbaa !9
  %1865 = mul nsw i64 %1863, %1864
  %1866 = add nsw i64 %1865, 1
  %1867 = getelementptr inbounds double, ptr %1862, i64 %1866
  %1868 = load ptr, ptr %35, align 8, !tbaa !5
  %1869 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %1870 = load ptr, ptr %38, align 8, !tbaa !5
  %1871 = load i64, ptr %74, align 8, !tbaa !9
  %1872 = load i64, ptr %56, align 8, !tbaa !9
  %1873 = mul nsw i64 %1871, %1872
  %1874 = add nsw i64 %1873, 1
  %1875 = getelementptr inbounds double, ptr %1870, i64 %1874
  %1876 = load ptr, ptr %39, align 8, !tbaa !5
  %1877 = call i32 @f2c_dgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef %70, ptr noundef %69, ptr noundef @c_b27, ptr noundef %1867, ptr noundef %1868, ptr noundef %1869, ptr noundef %69, ptr noundef @c_b42, ptr noundef %1875, ptr noundef %1876)
  br label %1878

1878:                                             ; preds = %1841, %1838
  %1879 = load i64, ptr %62, align 8, !tbaa !9
  %1880 = load i64, ptr %65, align 8, !tbaa !9
  %1881 = icmp slt i64 %1879, %1880
  br i1 %1881, label %1882, label %1939

1882:                                             ; preds = %1878
  %1883 = load i64, ptr %69, align 8, !tbaa !9
  %1884 = load i64, ptr %70, align 8, !tbaa !9
  %1885 = mul nsw i64 %1883, %1884
  %1886 = add nsw i64 %1885, 1
  store i64 %1886, ptr %63, align 8, !tbaa !9
  %1887 = load ptr, ptr %27, align 8, !tbaa !5
  %1888 = load i64, ptr %1887, align 8, !tbaa !9
  %1889 = load i64, ptr %68, align 8, !tbaa !9
  %1890 = sub nsw i64 %1888, %1889
  store i64 %1890, ptr %59, align 8, !tbaa !9
  %1891 = load i64, ptr %63, align 8, !tbaa !9
  %1892 = sub nsw i64 %1891, 1
  %1893 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %1892
  %1894 = load ptr, ptr %30, align 8, !tbaa !5
  %1895 = load i64, ptr %74, align 8, !tbaa !9
  %1896 = load i64, ptr %68, align 8, !tbaa !9
  %1897 = add nsw i64 %1896, 1
  %1898 = load i64, ptr %48, align 8, !tbaa !9
  %1899 = mul nsw i64 %1897, %1898
  %1900 = add nsw i64 %1895, %1899
  %1901 = getelementptr inbounds double, ptr %1894, i64 %1900
  %1902 = load ptr, ptr %31, align 8, !tbaa !5
  %1903 = load ptr, ptr %32, align 8, !tbaa !5
  %1904 = load i64, ptr %73, align 8, !tbaa !9
  %1905 = load i64, ptr %68, align 8, !tbaa !9
  %1906 = add nsw i64 %1905, 1
  %1907 = load i64, ptr %50, align 8, !tbaa !9
  %1908 = mul nsw i64 %1906, %1907
  %1909 = add nsw i64 %1904, %1908
  %1910 = getelementptr inbounds double, ptr %1903, i64 %1909
  %1911 = load ptr, ptr %33, align 8, !tbaa !5
  %1912 = call i32 @f2c_dgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %69, ptr noundef %59, ptr noundef %70, ptr noundef @c_b42, ptr noundef %1893, ptr noundef %69, ptr noundef %1901, ptr noundef %1902, ptr noundef @c_b42, ptr noundef %1910, ptr noundef %1911)
  %1913 = load ptr, ptr %27, align 8, !tbaa !5
  %1914 = load i64, ptr %1913, align 8, !tbaa !9
  %1915 = load i64, ptr %68, align 8, !tbaa !9
  %1916 = sub nsw i64 %1914, %1915
  store i64 %1916, ptr %59, align 8, !tbaa !9
  %1917 = load i64, ptr %63, align 8, !tbaa !9
  %1918 = sub nsw i64 %1917, 1
  %1919 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %1918
  %1920 = load ptr, ptr %36, align 8, !tbaa !5
  %1921 = load i64, ptr %74, align 8, !tbaa !9
  %1922 = load i64, ptr %68, align 8, !tbaa !9
  %1923 = add nsw i64 %1922, 1
  %1924 = load i64, ptr %54, align 8, !tbaa !9
  %1925 = mul nsw i64 %1923, %1924
  %1926 = add nsw i64 %1921, %1925
  %1927 = getelementptr inbounds double, ptr %1920, i64 %1926
  %1928 = load ptr, ptr %37, align 8, !tbaa !5
  %1929 = load ptr, ptr %38, align 8, !tbaa !5
  %1930 = load i64, ptr %73, align 8, !tbaa !9
  %1931 = load i64, ptr %68, align 8, !tbaa !9
  %1932 = add nsw i64 %1931, 1
  %1933 = load i64, ptr %56, align 8, !tbaa !9
  %1934 = mul nsw i64 %1932, %1933
  %1935 = add nsw i64 %1930, %1934
  %1936 = getelementptr inbounds double, ptr %1929, i64 %1935
  %1937 = load ptr, ptr %39, align 8, !tbaa !5
  %1938 = call i32 @f2c_dgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %69, ptr noundef %59, ptr noundef %70, ptr noundef @c_b42, ptr noundef %1919, ptr noundef %69, ptr noundef %1927, ptr noundef %1928, ptr noundef @c_b42, ptr noundef %1936, ptr noundef %1937)
  br label %1939

1939:                                             ; preds = %1882, %1878
  br label %1940

1940:                                             ; preds = %1939, %1409, %1406
  br label %1941

1941:                                             ; preds = %1940, %1405
  br label %1942

1942:                                             ; preds = %1941, %1063
  br label %1943

1943:                                             ; preds = %1942, %670
  br label %1944

1944:                                             ; preds = %1943
  %1945 = load i64, ptr %61, align 8, !tbaa !9
  %1946 = add nsw i64 %1945, -1
  store i64 %1946, ptr %61, align 8, !tbaa !9
  br label %413, !llvm.loop !20

1947:                                             ; preds = %413
  br label %1948

1948:                                             ; preds = %1947
  %1949 = load i64, ptr %62, align 8, !tbaa !9
  %1950 = add nsw i64 %1949, 1
  store i64 %1950, ptr %62, align 8, !tbaa !9
  br label %391, !llvm.loop !21

1951:                                             ; preds = %391
  br label %3465

1952:                                             ; preds = %369
  %1953 = load ptr, ptr %40, align 8, !tbaa !5
  store double 1.000000e+00, ptr %1953, align 8, !tbaa !11
  store double 1.000000e+00, ptr %83, align 8, !tbaa !11
  %1954 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %1954, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %1955

1955:                                             ; preds = %3461, %1952
  %1956 = load i64, ptr %61, align 8, !tbaa !9
  %1957 = load i64, ptr %58, align 8, !tbaa !9
  %1958 = icmp sle i64 %1956, %1957
  br i1 %1958, label %1959, label %3464

1959:                                             ; preds = %1955
  %1960 = load ptr, ptr %43, align 8, !tbaa !5
  %1961 = load i64, ptr %61, align 8, !tbaa !9
  %1962 = getelementptr inbounds i64, ptr %1960, i64 %1961
  %1963 = load i64, ptr %1962, align 8, !tbaa !9
  store i64 %1963, ptr %73, align 8, !tbaa !9
  %1964 = load i64, ptr %73, align 8, !tbaa !9
  %1965 = add nsw i64 %1964, 1
  store i64 %1965, ptr %76, align 8, !tbaa !9
  %1966 = load i64, ptr %61, align 8, !tbaa !9
  store i64 %1966, ptr %67, align 8, !tbaa !9
  %1967 = load i64, ptr %67, align 8, !tbaa !9
  %1968 = load i64, ptr %73, align 8, !tbaa !9
  %1969 = sub nsw i64 %1967, %1968
  %1970 = add nsw i64 %1969, 1
  store i64 %1970, ptr %69, align 8, !tbaa !9
  %1971 = load i64, ptr %64, align 8, !tbaa !9
  %1972 = add nsw i64 %1971, 2
  store i64 %1972, ptr %59, align 8, !tbaa !9
  %1973 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %1973, ptr %62, align 8, !tbaa !9
  br label %1974

1974:                                             ; preds = %3457, %1959
  %1975 = load i64, ptr %62, align 8, !tbaa !9
  %1976 = load i64, ptr %59, align 8, !tbaa !9
  %1977 = icmp sge i64 %1975, %1976
  br i1 %1977, label %1978, label %3460

1978:                                             ; preds = %1974
  %1979 = load ptr, ptr %43, align 8, !tbaa !5
  %1980 = load i64, ptr %62, align 8, !tbaa !9
  %1981 = getelementptr inbounds i64, ptr %1979, i64 %1980
  %1982 = load i64, ptr %1981, align 8, !tbaa !9
  store i64 %1982, ptr %74, align 8, !tbaa !9
  %1983 = load i64, ptr %74, align 8, !tbaa !9
  %1984 = add nsw i64 %1983, 1
  store i64 %1984, ptr %77, align 8, !tbaa !9
  %1985 = load ptr, ptr %43, align 8, !tbaa !5
  %1986 = load i64, ptr %62, align 8, !tbaa !9
  %1987 = add nsw i64 %1986, 1
  %1988 = getelementptr inbounds i64, ptr %1985, i64 %1987
  %1989 = load i64, ptr %1988, align 8, !tbaa !9
  %1990 = sub nsw i64 %1989, 1
  store i64 %1990, ptr %68, align 8, !tbaa !9
  %1991 = load i64, ptr %68, align 8, !tbaa !9
  %1992 = load i64, ptr %74, align 8, !tbaa !9
  %1993 = sub nsw i64 %1991, %1992
  %1994 = add nsw i64 %1993, 1
  store i64 %1994, ptr %70, align 8, !tbaa !9
  %1995 = load i64, ptr %69, align 8, !tbaa !9
  %1996 = load i64, ptr %70, align 8, !tbaa !9
  %1997 = mul nsw i64 %1995, %1996
  %1998 = shl i64 %1997, 1
  store i64 %1998, ptr %79, align 8, !tbaa !9
  %1999 = load i64, ptr %69, align 8, !tbaa !9
  %2000 = icmp eq i64 %1999, 1
  br i1 %2000, label %2001, label %2224

2001:                                             ; preds = %1978
  %2002 = load i64, ptr %70, align 8, !tbaa !9
  %2003 = icmp eq i64 %2002, 1
  br i1 %2003, label %2004, label %2224

2004:                                             ; preds = %2001
  %2005 = load ptr, ptr %28, align 8, !tbaa !5
  %2006 = load i64, ptr %73, align 8, !tbaa !9
  %2007 = load i64, ptr %73, align 8, !tbaa !9
  %2008 = load i64, ptr %46, align 8, !tbaa !9
  %2009 = mul nsw i64 %2007, %2008
  %2010 = add nsw i64 %2006, %2009
  %2011 = getelementptr inbounds double, ptr %2005, i64 %2010
  %2012 = load double, ptr %2011, align 8, !tbaa !11
  %2013 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %2012, ptr %2013, align 16, !tbaa !11
  %2014 = load ptr, ptr %30, align 8, !tbaa !5
  %2015 = load i64, ptr %74, align 8, !tbaa !9
  %2016 = load i64, ptr %74, align 8, !tbaa !9
  %2017 = load i64, ptr %48, align 8, !tbaa !9
  %2018 = mul nsw i64 %2016, %2017
  %2019 = add nsw i64 %2015, %2018
  %2020 = getelementptr inbounds double, ptr %2014, i64 %2019
  %2021 = load double, ptr %2020, align 8, !tbaa !11
  %2022 = fneg double %2021
  %2023 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double %2022, ptr %2023, align 8, !tbaa !11
  %2024 = load ptr, ptr %34, align 8, !tbaa !5
  %2025 = load i64, ptr %73, align 8, !tbaa !9
  %2026 = load i64, ptr %73, align 8, !tbaa !9
  %2027 = load i64, ptr %52, align 8, !tbaa !9
  %2028 = mul nsw i64 %2026, %2027
  %2029 = add nsw i64 %2025, %2028
  %2030 = getelementptr inbounds double, ptr %2024, i64 %2029
  %2031 = load double, ptr %2030, align 8, !tbaa !11
  %2032 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double %2031, ptr %2032, align 16, !tbaa !11
  %2033 = load ptr, ptr %36, align 8, !tbaa !5
  %2034 = load i64, ptr %74, align 8, !tbaa !9
  %2035 = load i64, ptr %74, align 8, !tbaa !9
  %2036 = load i64, ptr %54, align 8, !tbaa !9
  %2037 = mul nsw i64 %2035, %2036
  %2038 = add nsw i64 %2034, %2037
  %2039 = getelementptr inbounds double, ptr %2033, i64 %2038
  %2040 = load double, ptr %2039, align 8, !tbaa !11
  %2041 = fneg double %2040
  %2042 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %2041, ptr %2042, align 8, !tbaa !11
  %2043 = load ptr, ptr %32, align 8, !tbaa !5
  %2044 = load i64, ptr %73, align 8, !tbaa !9
  %2045 = load i64, ptr %74, align 8, !tbaa !9
  %2046 = load i64, ptr %50, align 8, !tbaa !9
  %2047 = mul nsw i64 %2045, %2046
  %2048 = add nsw i64 %2044, %2047
  %2049 = getelementptr inbounds double, ptr %2043, i64 %2048
  %2050 = load double, ptr %2049, align 8, !tbaa !11
  %2051 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  store double %2050, ptr %2051, align 16, !tbaa !11
  %2052 = load ptr, ptr %38, align 8, !tbaa !5
  %2053 = load i64, ptr %73, align 8, !tbaa !9
  %2054 = load i64, ptr %74, align 8, !tbaa !9
  %2055 = load i64, ptr %56, align 8, !tbaa !9
  %2056 = mul nsw i64 %2054, %2055
  %2057 = add nsw i64 %2053, %2056
  %2058 = getelementptr inbounds double, ptr %2052, i64 %2057
  %2059 = load double, ptr %2058, align 8, !tbaa !11
  %2060 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  store double %2059, ptr %2060, align 8, !tbaa !11
  %2061 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %2062 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %2063 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %2064 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %2061, ptr noundef @c__8, ptr noundef %2062, ptr noundef %2063, ptr noundef %78)
  %2065 = load i64, ptr %78, align 8, !tbaa !9
  %2066 = icmp sgt i64 %2065, 0
  br i1 %2066, label %2067, label %2070

2067:                                             ; preds = %2004
  %2068 = load i64, ptr %78, align 8, !tbaa !9
  %2069 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %2068, ptr %2069, align 8, !tbaa !9
  br label %2070

2070:                                             ; preds = %2067, %2004
  %2071 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %2072 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2073 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %2074 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %2075 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %2071, ptr noundef @c__8, ptr noundef %2072, ptr noundef %2073, ptr noundef %2074, ptr noundef %83)
  %2076 = load double, ptr %83, align 8, !tbaa !11
  %2077 = fcmp une double %2076, 1.000000e+00
  br i1 %2077, label %2078, label %2110

2078:                                             ; preds = %2070
  %2079 = load ptr, ptr %27, align 8, !tbaa !5
  %2080 = load i64, ptr %2079, align 8, !tbaa !9
  store i64 %2080, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %2081

2081:                                             ; preds = %2102, %2078
  %2082 = load i64, ptr %63, align 8, !tbaa !9
  %2083 = load i64, ptr %60, align 8, !tbaa !9
  %2084 = icmp sle i64 %2082, %2083
  br i1 %2084, label %2085, label %2105

2085:                                             ; preds = %2081
  %2086 = load ptr, ptr %26, align 8, !tbaa !5
  %2087 = load ptr, ptr %32, align 8, !tbaa !5
  %2088 = load i64, ptr %63, align 8, !tbaa !9
  %2089 = load i64, ptr %50, align 8, !tbaa !9
  %2090 = mul nsw i64 %2088, %2089
  %2091 = add nsw i64 %2090, 1
  %2092 = getelementptr inbounds double, ptr %2087, i64 %2091
  %2093 = call i32 @f2c_dscal(ptr noundef %2086, ptr noundef %83, ptr noundef %2092, ptr noundef @c__1)
  %2094 = load ptr, ptr %26, align 8, !tbaa !5
  %2095 = load ptr, ptr %38, align 8, !tbaa !5
  %2096 = load i64, ptr %63, align 8, !tbaa !9
  %2097 = load i64, ptr %56, align 8, !tbaa !9
  %2098 = mul nsw i64 %2096, %2097
  %2099 = add nsw i64 %2098, 1
  %2100 = getelementptr inbounds double, ptr %2095, i64 %2099
  %2101 = call i32 @f2c_dscal(ptr noundef %2094, ptr noundef %83, ptr noundef %2100, ptr noundef @c__1)
  br label %2102

2102:                                             ; preds = %2085
  %2103 = load i64, ptr %63, align 8, !tbaa !9
  %2104 = add nsw i64 %2103, 1
  store i64 %2104, ptr %63, align 8, !tbaa !9
  br label %2081, !llvm.loop !22

2105:                                             ; preds = %2081
  %2106 = load double, ptr %83, align 8, !tbaa !11
  %2107 = load ptr, ptr %40, align 8, !tbaa !5
  %2108 = load double, ptr %2107, align 8, !tbaa !11
  %2109 = fmul double %2108, %2106
  store double %2109, ptr %2107, align 8, !tbaa !11
  br label %2110

2110:                                             ; preds = %2105, %2070
  %2111 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2112 = load double, ptr %2111, align 16, !tbaa !11
  %2113 = load ptr, ptr %32, align 8, !tbaa !5
  %2114 = load i64, ptr %73, align 8, !tbaa !9
  %2115 = load i64, ptr %74, align 8, !tbaa !9
  %2116 = load i64, ptr %50, align 8, !tbaa !9
  %2117 = mul nsw i64 %2115, %2116
  %2118 = add nsw i64 %2114, %2117
  %2119 = getelementptr inbounds double, ptr %2113, i64 %2118
  store double %2112, ptr %2119, align 8, !tbaa !11
  %2120 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %2121 = load double, ptr %2120, align 8, !tbaa !11
  %2122 = load ptr, ptr %38, align 8, !tbaa !5
  %2123 = load i64, ptr %73, align 8, !tbaa !9
  %2124 = load i64, ptr %74, align 8, !tbaa !9
  %2125 = load i64, ptr %56, align 8, !tbaa !9
  %2126 = mul nsw i64 %2124, %2125
  %2127 = add nsw i64 %2123, %2126
  %2128 = getelementptr inbounds double, ptr %2122, i64 %2127
  store double %2121, ptr %2128, align 8, !tbaa !11
  %2129 = load i64, ptr %62, align 8, !tbaa !9
  %2130 = load i64, ptr %64, align 8, !tbaa !9
  %2131 = add nsw i64 %2130, 2
  %2132 = icmp sgt i64 %2129, %2131
  br i1 %2132, label %2133, label %2168

2133:                                             ; preds = %2110
  %2134 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2135 = load double, ptr %2134, align 16, !tbaa !11
  store double %2135, ptr %82, align 8, !tbaa !11
  %2136 = load i64, ptr %74, align 8, !tbaa !9
  %2137 = sub nsw i64 %2136, 1
  store i64 %2137, ptr %60, align 8, !tbaa !9
  %2138 = load ptr, ptr %30, align 8, !tbaa !5
  %2139 = load i64, ptr %74, align 8, !tbaa !9
  %2140 = load i64, ptr %48, align 8, !tbaa !9
  %2141 = mul nsw i64 %2139, %2140
  %2142 = add nsw i64 %2141, 1
  %2143 = getelementptr inbounds double, ptr %2138, i64 %2142
  %2144 = load ptr, ptr %38, align 8, !tbaa !5
  %2145 = load i64, ptr %73, align 8, !tbaa !9
  %2146 = load i64, ptr %56, align 8, !tbaa !9
  %2147 = add nsw i64 %2145, %2146
  %2148 = getelementptr inbounds double, ptr %2144, i64 %2147
  %2149 = load ptr, ptr %39, align 8, !tbaa !5
  %2150 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %82, ptr noundef %2143, ptr noundef @c__1, ptr noundef %2148, ptr noundef %2149)
  %2151 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %2152 = load double, ptr %2151, align 8, !tbaa !11
  store double %2152, ptr %82, align 8, !tbaa !11
  %2153 = load i64, ptr %74, align 8, !tbaa !9
  %2154 = sub nsw i64 %2153, 1
  store i64 %2154, ptr %60, align 8, !tbaa !9
  %2155 = load ptr, ptr %36, align 8, !tbaa !5
  %2156 = load i64, ptr %74, align 8, !tbaa !9
  %2157 = load i64, ptr %54, align 8, !tbaa !9
  %2158 = mul nsw i64 %2156, %2157
  %2159 = add nsw i64 %2158, 1
  %2160 = getelementptr inbounds double, ptr %2155, i64 %2159
  %2161 = load ptr, ptr %38, align 8, !tbaa !5
  %2162 = load i64, ptr %73, align 8, !tbaa !9
  %2163 = load i64, ptr %56, align 8, !tbaa !9
  %2164 = add nsw i64 %2162, %2163
  %2165 = getelementptr inbounds double, ptr %2161, i64 %2164
  %2166 = load ptr, ptr %39, align 8, !tbaa !5
  %2167 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %82, ptr noundef %2160, ptr noundef @c__1, ptr noundef %2165, ptr noundef %2166)
  br label %2168

2168:                                             ; preds = %2133, %2110
  %2169 = load i64, ptr %61, align 8, !tbaa !9
  %2170 = load i64, ptr %64, align 8, !tbaa !9
  %2171 = icmp slt i64 %2169, %2170
  br i1 %2171, label %2172, label %2223

2172:                                             ; preds = %2168
  %2173 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2174 = load double, ptr %2173, align 16, !tbaa !11
  %2175 = fneg double %2174
  store double %2175, ptr %82, align 8, !tbaa !11
  %2176 = load ptr, ptr %26, align 8, !tbaa !5
  %2177 = load i64, ptr %2176, align 8, !tbaa !9
  %2178 = load i64, ptr %67, align 8, !tbaa !9
  %2179 = sub nsw i64 %2177, %2178
  store i64 %2179, ptr %60, align 8, !tbaa !9
  %2180 = load ptr, ptr %28, align 8, !tbaa !5
  %2181 = load i64, ptr %73, align 8, !tbaa !9
  %2182 = load i64, ptr %67, align 8, !tbaa !9
  %2183 = add nsw i64 %2182, 1
  %2184 = load i64, ptr %46, align 8, !tbaa !9
  %2185 = mul nsw i64 %2183, %2184
  %2186 = add nsw i64 %2181, %2185
  %2187 = getelementptr inbounds double, ptr %2180, i64 %2186
  %2188 = load ptr, ptr %29, align 8, !tbaa !5
  %2189 = load ptr, ptr %32, align 8, !tbaa !5
  %2190 = load i64, ptr %67, align 8, !tbaa !9
  %2191 = add nsw i64 %2190, 1
  %2192 = load i64, ptr %74, align 8, !tbaa !9
  %2193 = load i64, ptr %50, align 8, !tbaa !9
  %2194 = mul nsw i64 %2192, %2193
  %2195 = add nsw i64 %2191, %2194
  %2196 = getelementptr inbounds double, ptr %2189, i64 %2195
  %2197 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %82, ptr noundef %2187, ptr noundef %2188, ptr noundef %2196, ptr noundef @c__1)
  %2198 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %2199 = load double, ptr %2198, align 8, !tbaa !11
  %2200 = fneg double %2199
  store double %2200, ptr %82, align 8, !tbaa !11
  %2201 = load ptr, ptr %26, align 8, !tbaa !5
  %2202 = load i64, ptr %2201, align 8, !tbaa !9
  %2203 = load i64, ptr %67, align 8, !tbaa !9
  %2204 = sub nsw i64 %2202, %2203
  store i64 %2204, ptr %60, align 8, !tbaa !9
  %2205 = load ptr, ptr %34, align 8, !tbaa !5
  %2206 = load i64, ptr %73, align 8, !tbaa !9
  %2207 = load i64, ptr %67, align 8, !tbaa !9
  %2208 = add nsw i64 %2207, 1
  %2209 = load i64, ptr %52, align 8, !tbaa !9
  %2210 = mul nsw i64 %2208, %2209
  %2211 = add nsw i64 %2206, %2210
  %2212 = getelementptr inbounds double, ptr %2205, i64 %2211
  %2213 = load ptr, ptr %35, align 8, !tbaa !5
  %2214 = load ptr, ptr %32, align 8, !tbaa !5
  %2215 = load i64, ptr %67, align 8, !tbaa !9
  %2216 = add nsw i64 %2215, 1
  %2217 = load i64, ptr %74, align 8, !tbaa !9
  %2218 = load i64, ptr %50, align 8, !tbaa !9
  %2219 = mul nsw i64 %2217, %2218
  %2220 = add nsw i64 %2216, %2219
  %2221 = getelementptr inbounds double, ptr %2214, i64 %2220
  %2222 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %82, ptr noundef %2212, ptr noundef %2213, ptr noundef %2221, ptr noundef @c__1)
  br label %2223

2223:                                             ; preds = %2172, %2168
  br label %3456

2224:                                             ; preds = %2001, %1978
  %2225 = load i64, ptr %69, align 8, !tbaa !9
  %2226 = icmp eq i64 %2225, 1
  br i1 %2226, label %2227, label %2587

2227:                                             ; preds = %2224
  %2228 = load i64, ptr %70, align 8, !tbaa !9
  %2229 = icmp eq i64 %2228, 2
  br i1 %2229, label %2230, label %2587

2230:                                             ; preds = %2227
  %2231 = load ptr, ptr %28, align 8, !tbaa !5
  %2232 = load i64, ptr %73, align 8, !tbaa !9
  %2233 = load i64, ptr %73, align 8, !tbaa !9
  %2234 = load i64, ptr %46, align 8, !tbaa !9
  %2235 = mul nsw i64 %2233, %2234
  %2236 = add nsw i64 %2232, %2235
  %2237 = getelementptr inbounds double, ptr %2231, i64 %2236
  %2238 = load double, ptr %2237, align 8, !tbaa !11
  %2239 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %2238, ptr %2239, align 16, !tbaa !11
  %2240 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double 0.000000e+00, ptr %2240, align 8, !tbaa !11
  %2241 = load ptr, ptr %30, align 8, !tbaa !5
  %2242 = load i64, ptr %74, align 8, !tbaa !9
  %2243 = load i64, ptr %74, align 8, !tbaa !9
  %2244 = load i64, ptr %48, align 8, !tbaa !9
  %2245 = mul nsw i64 %2243, %2244
  %2246 = add nsw i64 %2242, %2245
  %2247 = getelementptr inbounds double, ptr %2241, i64 %2246
  %2248 = load double, ptr %2247, align 8, !tbaa !11
  %2249 = fneg double %2248
  %2250 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 2
  store double %2249, ptr %2250, align 16, !tbaa !11
  %2251 = load ptr, ptr %30, align 8, !tbaa !5
  %2252 = load i64, ptr %77, align 8, !tbaa !9
  %2253 = load i64, ptr %74, align 8, !tbaa !9
  %2254 = load i64, ptr %48, align 8, !tbaa !9
  %2255 = mul nsw i64 %2253, %2254
  %2256 = add nsw i64 %2252, %2255
  %2257 = getelementptr inbounds double, ptr %2251, i64 %2256
  %2258 = load double, ptr %2257, align 8, !tbaa !11
  %2259 = fneg double %2258
  %2260 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 3
  store double %2259, ptr %2260, align 8, !tbaa !11
  %2261 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double 0.000000e+00, ptr %2261, align 16, !tbaa !11
  %2262 = load ptr, ptr %28, align 8, !tbaa !5
  %2263 = load i64, ptr %73, align 8, !tbaa !9
  %2264 = load i64, ptr %73, align 8, !tbaa !9
  %2265 = load i64, ptr %46, align 8, !tbaa !9
  %2266 = mul nsw i64 %2264, %2265
  %2267 = add nsw i64 %2263, %2266
  %2268 = getelementptr inbounds double, ptr %2262, i64 %2267
  %2269 = load double, ptr %2268, align 8, !tbaa !11
  %2270 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %2269, ptr %2270, align 8, !tbaa !11
  %2271 = load ptr, ptr %30, align 8, !tbaa !5
  %2272 = load i64, ptr %74, align 8, !tbaa !9
  %2273 = load i64, ptr %77, align 8, !tbaa !9
  %2274 = load i64, ptr %48, align 8, !tbaa !9
  %2275 = mul nsw i64 %2273, %2274
  %2276 = add nsw i64 %2272, %2275
  %2277 = getelementptr inbounds double, ptr %2271, i64 %2276
  %2278 = load double, ptr %2277, align 8, !tbaa !11
  %2279 = fneg double %2278
  %2280 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 10
  store double %2279, ptr %2280, align 16, !tbaa !11
  %2281 = load ptr, ptr %30, align 8, !tbaa !5
  %2282 = load i64, ptr %77, align 8, !tbaa !9
  %2283 = load i64, ptr %77, align 8, !tbaa !9
  %2284 = load i64, ptr %48, align 8, !tbaa !9
  %2285 = mul nsw i64 %2283, %2284
  %2286 = add nsw i64 %2282, %2285
  %2287 = getelementptr inbounds double, ptr %2281, i64 %2286
  %2288 = load double, ptr %2287, align 8, !tbaa !11
  %2289 = fneg double %2288
  %2290 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 11
  store double %2289, ptr %2290, align 8, !tbaa !11
  %2291 = load ptr, ptr %34, align 8, !tbaa !5
  %2292 = load i64, ptr %73, align 8, !tbaa !9
  %2293 = load i64, ptr %73, align 8, !tbaa !9
  %2294 = load i64, ptr %52, align 8, !tbaa !9
  %2295 = mul nsw i64 %2293, %2294
  %2296 = add nsw i64 %2292, %2295
  %2297 = getelementptr inbounds double, ptr %2291, i64 %2296
  %2298 = load double, ptr %2297, align 8, !tbaa !11
  %2299 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 16
  store double %2298, ptr %2299, align 16, !tbaa !11
  %2300 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 17
  store double 0.000000e+00, ptr %2300, align 8, !tbaa !11
  %2301 = load ptr, ptr %36, align 8, !tbaa !5
  %2302 = load i64, ptr %74, align 8, !tbaa !9
  %2303 = load i64, ptr %74, align 8, !tbaa !9
  %2304 = load i64, ptr %54, align 8, !tbaa !9
  %2305 = mul nsw i64 %2303, %2304
  %2306 = add nsw i64 %2302, %2305
  %2307 = getelementptr inbounds double, ptr %2301, i64 %2306
  %2308 = load double, ptr %2307, align 8, !tbaa !11
  %2309 = fneg double %2308
  %2310 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 18
  store double %2309, ptr %2310, align 16, !tbaa !11
  %2311 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 19
  store double 0.000000e+00, ptr %2311, align 8, !tbaa !11
  %2312 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 24
  store double 0.000000e+00, ptr %2312, align 16, !tbaa !11
  %2313 = load ptr, ptr %34, align 8, !tbaa !5
  %2314 = load i64, ptr %73, align 8, !tbaa !9
  %2315 = load i64, ptr %73, align 8, !tbaa !9
  %2316 = load i64, ptr %52, align 8, !tbaa !9
  %2317 = mul nsw i64 %2315, %2316
  %2318 = add nsw i64 %2314, %2317
  %2319 = getelementptr inbounds double, ptr %2313, i64 %2318
  %2320 = load double, ptr %2319, align 8, !tbaa !11
  %2321 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 25
  store double %2320, ptr %2321, align 8, !tbaa !11
  %2322 = load ptr, ptr %36, align 8, !tbaa !5
  %2323 = load i64, ptr %74, align 8, !tbaa !9
  %2324 = load i64, ptr %77, align 8, !tbaa !9
  %2325 = load i64, ptr %54, align 8, !tbaa !9
  %2326 = mul nsw i64 %2324, %2325
  %2327 = add nsw i64 %2323, %2326
  %2328 = getelementptr inbounds double, ptr %2322, i64 %2327
  %2329 = load double, ptr %2328, align 8, !tbaa !11
  %2330 = fneg double %2329
  %2331 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 26
  store double %2330, ptr %2331, align 16, !tbaa !11
  %2332 = load ptr, ptr %36, align 8, !tbaa !5
  %2333 = load i64, ptr %77, align 8, !tbaa !9
  %2334 = load i64, ptr %77, align 8, !tbaa !9
  %2335 = load i64, ptr %54, align 8, !tbaa !9
  %2336 = mul nsw i64 %2334, %2335
  %2337 = add nsw i64 %2333, %2336
  %2338 = getelementptr inbounds double, ptr %2332, i64 %2337
  %2339 = load double, ptr %2338, align 8, !tbaa !11
  %2340 = fneg double %2339
  %2341 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 27
  store double %2340, ptr %2341, align 8, !tbaa !11
  %2342 = load ptr, ptr %32, align 8, !tbaa !5
  %2343 = load i64, ptr %73, align 8, !tbaa !9
  %2344 = load i64, ptr %74, align 8, !tbaa !9
  %2345 = load i64, ptr %50, align 8, !tbaa !9
  %2346 = mul nsw i64 %2344, %2345
  %2347 = add nsw i64 %2343, %2346
  %2348 = getelementptr inbounds double, ptr %2342, i64 %2347
  %2349 = load double, ptr %2348, align 8, !tbaa !11
  %2350 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  store double %2349, ptr %2350, align 16, !tbaa !11
  %2351 = load ptr, ptr %32, align 8, !tbaa !5
  %2352 = load i64, ptr %73, align 8, !tbaa !9
  %2353 = load i64, ptr %77, align 8, !tbaa !9
  %2354 = load i64, ptr %50, align 8, !tbaa !9
  %2355 = mul nsw i64 %2353, %2354
  %2356 = add nsw i64 %2352, %2355
  %2357 = getelementptr inbounds double, ptr %2351, i64 %2356
  %2358 = load double, ptr %2357, align 8, !tbaa !11
  %2359 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  store double %2358, ptr %2359, align 8, !tbaa !11
  %2360 = load ptr, ptr %38, align 8, !tbaa !5
  %2361 = load i64, ptr %73, align 8, !tbaa !9
  %2362 = load i64, ptr %74, align 8, !tbaa !9
  %2363 = load i64, ptr %56, align 8, !tbaa !9
  %2364 = mul nsw i64 %2362, %2363
  %2365 = add nsw i64 %2361, %2364
  %2366 = getelementptr inbounds double, ptr %2360, i64 %2365
  %2367 = load double, ptr %2366, align 8, !tbaa !11
  %2368 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  store double %2367, ptr %2368, align 16, !tbaa !11
  %2369 = load ptr, ptr %38, align 8, !tbaa !5
  %2370 = load i64, ptr %73, align 8, !tbaa !9
  %2371 = load i64, ptr %77, align 8, !tbaa !9
  %2372 = load i64, ptr %56, align 8, !tbaa !9
  %2373 = mul nsw i64 %2371, %2372
  %2374 = add nsw i64 %2370, %2373
  %2375 = getelementptr inbounds double, ptr %2369, i64 %2374
  %2376 = load double, ptr %2375, align 8, !tbaa !11
  %2377 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  store double %2376, ptr %2377, align 8, !tbaa !11
  %2378 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %2379 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %2380 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %2381 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %2378, ptr noundef @c__8, ptr noundef %2379, ptr noundef %2380, ptr noundef %78)
  %2382 = load i64, ptr %78, align 8, !tbaa !9
  %2383 = icmp sgt i64 %2382, 0
  br i1 %2383, label %2384, label %2387

2384:                                             ; preds = %2230
  %2385 = load i64, ptr %78, align 8, !tbaa !9
  %2386 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %2385, ptr %2386, align 8, !tbaa !9
  br label %2387

2387:                                             ; preds = %2384, %2230
  %2388 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %2389 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2390 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %2391 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %2392 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %2388, ptr noundef @c__8, ptr noundef %2389, ptr noundef %2390, ptr noundef %2391, ptr noundef %83)
  %2393 = load double, ptr %83, align 8, !tbaa !11
  %2394 = fcmp une double %2393, 1.000000e+00
  br i1 %2394, label %2395, label %2427

2395:                                             ; preds = %2387
  %2396 = load ptr, ptr %27, align 8, !tbaa !5
  %2397 = load i64, ptr %2396, align 8, !tbaa !9
  store i64 %2397, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %2398

2398:                                             ; preds = %2419, %2395
  %2399 = load i64, ptr %63, align 8, !tbaa !9
  %2400 = load i64, ptr %60, align 8, !tbaa !9
  %2401 = icmp sle i64 %2399, %2400
  br i1 %2401, label %2402, label %2422

2402:                                             ; preds = %2398
  %2403 = load ptr, ptr %26, align 8, !tbaa !5
  %2404 = load ptr, ptr %32, align 8, !tbaa !5
  %2405 = load i64, ptr %63, align 8, !tbaa !9
  %2406 = load i64, ptr %50, align 8, !tbaa !9
  %2407 = mul nsw i64 %2405, %2406
  %2408 = add nsw i64 %2407, 1
  %2409 = getelementptr inbounds double, ptr %2404, i64 %2408
  %2410 = call i32 @f2c_dscal(ptr noundef %2403, ptr noundef %83, ptr noundef %2409, ptr noundef @c__1)
  %2411 = load ptr, ptr %26, align 8, !tbaa !5
  %2412 = load ptr, ptr %38, align 8, !tbaa !5
  %2413 = load i64, ptr %63, align 8, !tbaa !9
  %2414 = load i64, ptr %56, align 8, !tbaa !9
  %2415 = mul nsw i64 %2413, %2414
  %2416 = add nsw i64 %2415, 1
  %2417 = getelementptr inbounds double, ptr %2412, i64 %2416
  %2418 = call i32 @f2c_dscal(ptr noundef %2411, ptr noundef %83, ptr noundef %2417, ptr noundef @c__1)
  br label %2419

2419:                                             ; preds = %2402
  %2420 = load i64, ptr %63, align 8, !tbaa !9
  %2421 = add nsw i64 %2420, 1
  store i64 %2421, ptr %63, align 8, !tbaa !9
  br label %2398, !llvm.loop !23

2422:                                             ; preds = %2398
  %2423 = load double, ptr %83, align 8, !tbaa !11
  %2424 = load ptr, ptr %40, align 8, !tbaa !5
  %2425 = load double, ptr %2424, align 8, !tbaa !11
  %2426 = fmul double %2425, %2423
  store double %2426, ptr %2424, align 8, !tbaa !11
  br label %2427

2427:                                             ; preds = %2422, %2387
  %2428 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2429 = load double, ptr %2428, align 16, !tbaa !11
  %2430 = load ptr, ptr %32, align 8, !tbaa !5
  %2431 = load i64, ptr %73, align 8, !tbaa !9
  %2432 = load i64, ptr %74, align 8, !tbaa !9
  %2433 = load i64, ptr %50, align 8, !tbaa !9
  %2434 = mul nsw i64 %2432, %2433
  %2435 = add nsw i64 %2431, %2434
  %2436 = getelementptr inbounds double, ptr %2430, i64 %2435
  store double %2429, ptr %2436, align 8, !tbaa !11
  %2437 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %2438 = load double, ptr %2437, align 8, !tbaa !11
  %2439 = load ptr, ptr %32, align 8, !tbaa !5
  %2440 = load i64, ptr %73, align 8, !tbaa !9
  %2441 = load i64, ptr %77, align 8, !tbaa !9
  %2442 = load i64, ptr %50, align 8, !tbaa !9
  %2443 = mul nsw i64 %2441, %2442
  %2444 = add nsw i64 %2440, %2443
  %2445 = getelementptr inbounds double, ptr %2439, i64 %2444
  store double %2438, ptr %2445, align 8, !tbaa !11
  %2446 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %2447 = load double, ptr %2446, align 16, !tbaa !11
  %2448 = load ptr, ptr %38, align 8, !tbaa !5
  %2449 = load i64, ptr %73, align 8, !tbaa !9
  %2450 = load i64, ptr %74, align 8, !tbaa !9
  %2451 = load i64, ptr %56, align 8, !tbaa !9
  %2452 = mul nsw i64 %2450, %2451
  %2453 = add nsw i64 %2449, %2452
  %2454 = getelementptr inbounds double, ptr %2448, i64 %2453
  store double %2447, ptr %2454, align 8, !tbaa !11
  %2455 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  %2456 = load double, ptr %2455, align 8, !tbaa !11
  %2457 = load ptr, ptr %38, align 8, !tbaa !5
  %2458 = load i64, ptr %73, align 8, !tbaa !9
  %2459 = load i64, ptr %77, align 8, !tbaa !9
  %2460 = load i64, ptr %56, align 8, !tbaa !9
  %2461 = mul nsw i64 %2459, %2460
  %2462 = add nsw i64 %2458, %2461
  %2463 = getelementptr inbounds double, ptr %2457, i64 %2462
  store double %2456, ptr %2463, align 8, !tbaa !11
  %2464 = load i64, ptr %62, align 8, !tbaa !9
  %2465 = load i64, ptr %64, align 8, !tbaa !9
  %2466 = add nsw i64 %2465, 2
  %2467 = icmp sgt i64 %2464, %2466
  br i1 %2467, label %2468, label %2533

2468:                                             ; preds = %2427
  %2469 = load i64, ptr %74, align 8, !tbaa !9
  %2470 = sub nsw i64 %2469, 1
  store i64 %2470, ptr %60, align 8, !tbaa !9
  %2471 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2472 = load ptr, ptr %30, align 8, !tbaa !5
  %2473 = load i64, ptr %74, align 8, !tbaa !9
  %2474 = load i64, ptr %48, align 8, !tbaa !9
  %2475 = mul nsw i64 %2473, %2474
  %2476 = add nsw i64 %2475, 1
  %2477 = getelementptr inbounds double, ptr %2472, i64 %2476
  %2478 = load ptr, ptr %38, align 8, !tbaa !5
  %2479 = load i64, ptr %73, align 8, !tbaa !9
  %2480 = load i64, ptr %56, align 8, !tbaa !9
  %2481 = add nsw i64 %2479, %2480
  %2482 = getelementptr inbounds double, ptr %2478, i64 %2481
  %2483 = load ptr, ptr %39, align 8, !tbaa !5
  %2484 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %2471, ptr noundef %2477, ptr noundef @c__1, ptr noundef %2482, ptr noundef %2483)
  %2485 = load i64, ptr %74, align 8, !tbaa !9
  %2486 = sub nsw i64 %2485, 1
  store i64 %2486, ptr %60, align 8, !tbaa !9
  %2487 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %2488 = load ptr, ptr %30, align 8, !tbaa !5
  %2489 = load i64, ptr %77, align 8, !tbaa !9
  %2490 = load i64, ptr %48, align 8, !tbaa !9
  %2491 = mul nsw i64 %2489, %2490
  %2492 = add nsw i64 %2491, 1
  %2493 = getelementptr inbounds double, ptr %2488, i64 %2492
  %2494 = load ptr, ptr %38, align 8, !tbaa !5
  %2495 = load i64, ptr %73, align 8, !tbaa !9
  %2496 = load i64, ptr %56, align 8, !tbaa !9
  %2497 = add nsw i64 %2495, %2496
  %2498 = getelementptr inbounds double, ptr %2494, i64 %2497
  %2499 = load ptr, ptr %39, align 8, !tbaa !5
  %2500 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %2487, ptr noundef %2493, ptr noundef @c__1, ptr noundef %2498, ptr noundef %2499)
  %2501 = load i64, ptr %74, align 8, !tbaa !9
  %2502 = sub nsw i64 %2501, 1
  store i64 %2502, ptr %60, align 8, !tbaa !9
  %2503 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %2504 = load ptr, ptr %36, align 8, !tbaa !5
  %2505 = load i64, ptr %74, align 8, !tbaa !9
  %2506 = load i64, ptr %54, align 8, !tbaa !9
  %2507 = mul nsw i64 %2505, %2506
  %2508 = add nsw i64 %2507, 1
  %2509 = getelementptr inbounds double, ptr %2504, i64 %2508
  %2510 = load ptr, ptr %38, align 8, !tbaa !5
  %2511 = load i64, ptr %73, align 8, !tbaa !9
  %2512 = load i64, ptr %56, align 8, !tbaa !9
  %2513 = add nsw i64 %2511, %2512
  %2514 = getelementptr inbounds double, ptr %2510, i64 %2513
  %2515 = load ptr, ptr %39, align 8, !tbaa !5
  %2516 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %2503, ptr noundef %2509, ptr noundef @c__1, ptr noundef %2514, ptr noundef %2515)
  %2517 = load i64, ptr %74, align 8, !tbaa !9
  %2518 = sub nsw i64 %2517, 1
  store i64 %2518, ptr %60, align 8, !tbaa !9
  %2519 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  %2520 = load ptr, ptr %36, align 8, !tbaa !5
  %2521 = load i64, ptr %77, align 8, !tbaa !9
  %2522 = load i64, ptr %54, align 8, !tbaa !9
  %2523 = mul nsw i64 %2521, %2522
  %2524 = add nsw i64 %2523, 1
  %2525 = getelementptr inbounds double, ptr %2520, i64 %2524
  %2526 = load ptr, ptr %38, align 8, !tbaa !5
  %2527 = load i64, ptr %73, align 8, !tbaa !9
  %2528 = load i64, ptr %56, align 8, !tbaa !9
  %2529 = add nsw i64 %2527, %2528
  %2530 = getelementptr inbounds double, ptr %2526, i64 %2529
  %2531 = load ptr, ptr %39, align 8, !tbaa !5
  %2532 = call i32 @f2c_daxpy(ptr noundef %60, ptr noundef %2519, ptr noundef %2525, ptr noundef @c__1, ptr noundef %2530, ptr noundef %2531)
  br label %2533

2533:                                             ; preds = %2468, %2427
  %2534 = load i64, ptr %61, align 8, !tbaa !9
  %2535 = load i64, ptr %64, align 8, !tbaa !9
  %2536 = icmp slt i64 %2534, %2535
  br i1 %2536, label %2537, label %2586

2537:                                             ; preds = %2533
  %2538 = load ptr, ptr %26, align 8, !tbaa !5
  %2539 = load i64, ptr %2538, align 8, !tbaa !9
  %2540 = load i64, ptr %67, align 8, !tbaa !9
  %2541 = sub nsw i64 %2539, %2540
  store i64 %2541, ptr %60, align 8, !tbaa !9
  %2542 = load ptr, ptr %28, align 8, !tbaa !5
  %2543 = load i64, ptr %73, align 8, !tbaa !9
  %2544 = load i64, ptr %67, align 8, !tbaa !9
  %2545 = add nsw i64 %2544, 1
  %2546 = load i64, ptr %46, align 8, !tbaa !9
  %2547 = mul nsw i64 %2545, %2546
  %2548 = add nsw i64 %2543, %2547
  %2549 = getelementptr inbounds double, ptr %2542, i64 %2548
  %2550 = load ptr, ptr %29, align 8, !tbaa !5
  %2551 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2552 = load ptr, ptr %32, align 8, !tbaa !5
  %2553 = load i64, ptr %67, align 8, !tbaa !9
  %2554 = add nsw i64 %2553, 1
  %2555 = load i64, ptr %74, align 8, !tbaa !9
  %2556 = load i64, ptr %50, align 8, !tbaa !9
  %2557 = mul nsw i64 %2555, %2556
  %2558 = add nsw i64 %2554, %2557
  %2559 = getelementptr inbounds double, ptr %2552, i64 %2558
  %2560 = load ptr, ptr %33, align 8, !tbaa !5
  %2561 = call i32 @f2c_dger(ptr noundef %60, ptr noundef %70, ptr noundef @c_b27, ptr noundef %2549, ptr noundef %2550, ptr noundef %2551, ptr noundef @c__1, ptr noundef %2559, ptr noundef %2560)
  %2562 = load ptr, ptr %26, align 8, !tbaa !5
  %2563 = load i64, ptr %2562, align 8, !tbaa !9
  %2564 = load i64, ptr %67, align 8, !tbaa !9
  %2565 = sub nsw i64 %2563, %2564
  store i64 %2565, ptr %60, align 8, !tbaa !9
  %2566 = load ptr, ptr %34, align 8, !tbaa !5
  %2567 = load i64, ptr %73, align 8, !tbaa !9
  %2568 = load i64, ptr %67, align 8, !tbaa !9
  %2569 = add nsw i64 %2568, 1
  %2570 = load i64, ptr %52, align 8, !tbaa !9
  %2571 = mul nsw i64 %2569, %2570
  %2572 = add nsw i64 %2567, %2571
  %2573 = getelementptr inbounds double, ptr %2566, i64 %2572
  %2574 = load ptr, ptr %35, align 8, !tbaa !5
  %2575 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %2576 = load ptr, ptr %32, align 8, !tbaa !5
  %2577 = load i64, ptr %67, align 8, !tbaa !9
  %2578 = add nsw i64 %2577, 1
  %2579 = load i64, ptr %74, align 8, !tbaa !9
  %2580 = load i64, ptr %50, align 8, !tbaa !9
  %2581 = mul nsw i64 %2579, %2580
  %2582 = add nsw i64 %2578, %2581
  %2583 = getelementptr inbounds double, ptr %2576, i64 %2582
  %2584 = load ptr, ptr %33, align 8, !tbaa !5
  %2585 = call i32 @f2c_dger(ptr noundef %60, ptr noundef %70, ptr noundef @c_b27, ptr noundef %2573, ptr noundef %2574, ptr noundef %2575, ptr noundef @c__1, ptr noundef %2583, ptr noundef %2584)
  br label %2586

2586:                                             ; preds = %2537, %2533
  br label %3455

2587:                                             ; preds = %2227, %2224
  %2588 = load i64, ptr %69, align 8, !tbaa !9
  %2589 = icmp eq i64 %2588, 2
  br i1 %2589, label %2590, label %2913

2590:                                             ; preds = %2587
  %2591 = load i64, ptr %70, align 8, !tbaa !9
  %2592 = icmp eq i64 %2591, 1
  br i1 %2592, label %2593, label %2913

2593:                                             ; preds = %2590
  %2594 = load ptr, ptr %28, align 8, !tbaa !5
  %2595 = load i64, ptr %73, align 8, !tbaa !9
  %2596 = load i64, ptr %73, align 8, !tbaa !9
  %2597 = load i64, ptr %46, align 8, !tbaa !9
  %2598 = mul nsw i64 %2596, %2597
  %2599 = add nsw i64 %2595, %2598
  %2600 = getelementptr inbounds double, ptr %2594, i64 %2599
  %2601 = load double, ptr %2600, align 8, !tbaa !11
  %2602 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %2601, ptr %2602, align 16, !tbaa !11
  %2603 = load ptr, ptr %28, align 8, !tbaa !5
  %2604 = load i64, ptr %73, align 8, !tbaa !9
  %2605 = load i64, ptr %76, align 8, !tbaa !9
  %2606 = load i64, ptr %46, align 8, !tbaa !9
  %2607 = mul nsw i64 %2605, %2606
  %2608 = add nsw i64 %2604, %2607
  %2609 = getelementptr inbounds double, ptr %2603, i64 %2608
  %2610 = load double, ptr %2609, align 8, !tbaa !11
  %2611 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double %2610, ptr %2611, align 8, !tbaa !11
  %2612 = load ptr, ptr %30, align 8, !tbaa !5
  %2613 = load i64, ptr %74, align 8, !tbaa !9
  %2614 = load i64, ptr %74, align 8, !tbaa !9
  %2615 = load i64, ptr %48, align 8, !tbaa !9
  %2616 = mul nsw i64 %2614, %2615
  %2617 = add nsw i64 %2613, %2616
  %2618 = getelementptr inbounds double, ptr %2612, i64 %2617
  %2619 = load double, ptr %2618, align 8, !tbaa !11
  %2620 = fneg double %2619
  %2621 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 2
  store double %2620, ptr %2621, align 16, !tbaa !11
  %2622 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 3
  store double 0.000000e+00, ptr %2622, align 8, !tbaa !11
  %2623 = load ptr, ptr %28, align 8, !tbaa !5
  %2624 = load i64, ptr %76, align 8, !tbaa !9
  %2625 = load i64, ptr %73, align 8, !tbaa !9
  %2626 = load i64, ptr %46, align 8, !tbaa !9
  %2627 = mul nsw i64 %2625, %2626
  %2628 = add nsw i64 %2624, %2627
  %2629 = getelementptr inbounds double, ptr %2623, i64 %2628
  %2630 = load double, ptr %2629, align 8, !tbaa !11
  %2631 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double %2630, ptr %2631, align 16, !tbaa !11
  %2632 = load ptr, ptr %28, align 8, !tbaa !5
  %2633 = load i64, ptr %76, align 8, !tbaa !9
  %2634 = load i64, ptr %76, align 8, !tbaa !9
  %2635 = load i64, ptr %46, align 8, !tbaa !9
  %2636 = mul nsw i64 %2634, %2635
  %2637 = add nsw i64 %2633, %2636
  %2638 = getelementptr inbounds double, ptr %2632, i64 %2637
  %2639 = load double, ptr %2638, align 8, !tbaa !11
  %2640 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %2639, ptr %2640, align 8, !tbaa !11
  %2641 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 10
  store double 0.000000e+00, ptr %2641, align 16, !tbaa !11
  %2642 = load ptr, ptr %30, align 8, !tbaa !5
  %2643 = load i64, ptr %74, align 8, !tbaa !9
  %2644 = load i64, ptr %74, align 8, !tbaa !9
  %2645 = load i64, ptr %48, align 8, !tbaa !9
  %2646 = mul nsw i64 %2644, %2645
  %2647 = add nsw i64 %2643, %2646
  %2648 = getelementptr inbounds double, ptr %2642, i64 %2647
  %2649 = load double, ptr %2648, align 8, !tbaa !11
  %2650 = fneg double %2649
  %2651 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 11
  store double %2650, ptr %2651, align 8, !tbaa !11
  %2652 = load ptr, ptr %34, align 8, !tbaa !5
  %2653 = load i64, ptr %73, align 8, !tbaa !9
  %2654 = load i64, ptr %73, align 8, !tbaa !9
  %2655 = load i64, ptr %52, align 8, !tbaa !9
  %2656 = mul nsw i64 %2654, %2655
  %2657 = add nsw i64 %2653, %2656
  %2658 = getelementptr inbounds double, ptr %2652, i64 %2657
  %2659 = load double, ptr %2658, align 8, !tbaa !11
  %2660 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 16
  store double %2659, ptr %2660, align 16, !tbaa !11
  %2661 = load ptr, ptr %34, align 8, !tbaa !5
  %2662 = load i64, ptr %73, align 8, !tbaa !9
  %2663 = load i64, ptr %76, align 8, !tbaa !9
  %2664 = load i64, ptr %52, align 8, !tbaa !9
  %2665 = mul nsw i64 %2663, %2664
  %2666 = add nsw i64 %2662, %2665
  %2667 = getelementptr inbounds double, ptr %2661, i64 %2666
  %2668 = load double, ptr %2667, align 8, !tbaa !11
  %2669 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 17
  store double %2668, ptr %2669, align 8, !tbaa !11
  %2670 = load ptr, ptr %36, align 8, !tbaa !5
  %2671 = load i64, ptr %74, align 8, !tbaa !9
  %2672 = load i64, ptr %74, align 8, !tbaa !9
  %2673 = load i64, ptr %54, align 8, !tbaa !9
  %2674 = mul nsw i64 %2672, %2673
  %2675 = add nsw i64 %2671, %2674
  %2676 = getelementptr inbounds double, ptr %2670, i64 %2675
  %2677 = load double, ptr %2676, align 8, !tbaa !11
  %2678 = fneg double %2677
  %2679 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 18
  store double %2678, ptr %2679, align 16, !tbaa !11
  %2680 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 19
  store double 0.000000e+00, ptr %2680, align 8, !tbaa !11
  %2681 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 24
  store double 0.000000e+00, ptr %2681, align 16, !tbaa !11
  %2682 = load ptr, ptr %34, align 8, !tbaa !5
  %2683 = load i64, ptr %76, align 8, !tbaa !9
  %2684 = load i64, ptr %76, align 8, !tbaa !9
  %2685 = load i64, ptr %52, align 8, !tbaa !9
  %2686 = mul nsw i64 %2684, %2685
  %2687 = add nsw i64 %2683, %2686
  %2688 = getelementptr inbounds double, ptr %2682, i64 %2687
  %2689 = load double, ptr %2688, align 8, !tbaa !11
  %2690 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 25
  store double %2689, ptr %2690, align 8, !tbaa !11
  %2691 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 26
  store double 0.000000e+00, ptr %2691, align 16, !tbaa !11
  %2692 = load ptr, ptr %36, align 8, !tbaa !5
  %2693 = load i64, ptr %74, align 8, !tbaa !9
  %2694 = load i64, ptr %74, align 8, !tbaa !9
  %2695 = load i64, ptr %54, align 8, !tbaa !9
  %2696 = mul nsw i64 %2694, %2695
  %2697 = add nsw i64 %2693, %2696
  %2698 = getelementptr inbounds double, ptr %2692, i64 %2697
  %2699 = load double, ptr %2698, align 8, !tbaa !11
  %2700 = fneg double %2699
  %2701 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 27
  store double %2700, ptr %2701, align 8, !tbaa !11
  %2702 = load ptr, ptr %32, align 8, !tbaa !5
  %2703 = load i64, ptr %73, align 8, !tbaa !9
  %2704 = load i64, ptr %74, align 8, !tbaa !9
  %2705 = load i64, ptr %50, align 8, !tbaa !9
  %2706 = mul nsw i64 %2704, %2705
  %2707 = add nsw i64 %2703, %2706
  %2708 = getelementptr inbounds double, ptr %2702, i64 %2707
  %2709 = load double, ptr %2708, align 8, !tbaa !11
  %2710 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  store double %2709, ptr %2710, align 16, !tbaa !11
  %2711 = load ptr, ptr %32, align 8, !tbaa !5
  %2712 = load i64, ptr %76, align 8, !tbaa !9
  %2713 = load i64, ptr %74, align 8, !tbaa !9
  %2714 = load i64, ptr %50, align 8, !tbaa !9
  %2715 = mul nsw i64 %2713, %2714
  %2716 = add nsw i64 %2712, %2715
  %2717 = getelementptr inbounds double, ptr %2711, i64 %2716
  %2718 = load double, ptr %2717, align 8, !tbaa !11
  %2719 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  store double %2718, ptr %2719, align 8, !tbaa !11
  %2720 = load ptr, ptr %38, align 8, !tbaa !5
  %2721 = load i64, ptr %73, align 8, !tbaa !9
  %2722 = load i64, ptr %74, align 8, !tbaa !9
  %2723 = load i64, ptr %56, align 8, !tbaa !9
  %2724 = mul nsw i64 %2722, %2723
  %2725 = add nsw i64 %2721, %2724
  %2726 = getelementptr inbounds double, ptr %2720, i64 %2725
  %2727 = load double, ptr %2726, align 8, !tbaa !11
  %2728 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  store double %2727, ptr %2728, align 16, !tbaa !11
  %2729 = load ptr, ptr %38, align 8, !tbaa !5
  %2730 = load i64, ptr %76, align 8, !tbaa !9
  %2731 = load i64, ptr %74, align 8, !tbaa !9
  %2732 = load i64, ptr %56, align 8, !tbaa !9
  %2733 = mul nsw i64 %2731, %2732
  %2734 = add nsw i64 %2730, %2733
  %2735 = getelementptr inbounds double, ptr %2729, i64 %2734
  %2736 = load double, ptr %2735, align 8, !tbaa !11
  %2737 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  store double %2736, ptr %2737, align 8, !tbaa !11
  %2738 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %2739 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %2740 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %2741 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %2738, ptr noundef @c__8, ptr noundef %2739, ptr noundef %2740, ptr noundef %78)
  %2742 = load i64, ptr %78, align 8, !tbaa !9
  %2743 = icmp sgt i64 %2742, 0
  br i1 %2743, label %2744, label %2747

2744:                                             ; preds = %2593
  %2745 = load i64, ptr %78, align 8, !tbaa !9
  %2746 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %2745, ptr %2746, align 8, !tbaa !9
  br label %2747

2747:                                             ; preds = %2744, %2593
  %2748 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %2749 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2750 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %2751 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %2752 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %2748, ptr noundef @c__8, ptr noundef %2749, ptr noundef %2750, ptr noundef %2751, ptr noundef %83)
  %2753 = load double, ptr %83, align 8, !tbaa !11
  %2754 = fcmp une double %2753, 1.000000e+00
  br i1 %2754, label %2755, label %2787

2755:                                             ; preds = %2747
  %2756 = load ptr, ptr %27, align 8, !tbaa !5
  %2757 = load i64, ptr %2756, align 8, !tbaa !9
  store i64 %2757, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %2758

2758:                                             ; preds = %2779, %2755
  %2759 = load i64, ptr %63, align 8, !tbaa !9
  %2760 = load i64, ptr %60, align 8, !tbaa !9
  %2761 = icmp sle i64 %2759, %2760
  br i1 %2761, label %2762, label %2782

2762:                                             ; preds = %2758
  %2763 = load ptr, ptr %26, align 8, !tbaa !5
  %2764 = load ptr, ptr %32, align 8, !tbaa !5
  %2765 = load i64, ptr %63, align 8, !tbaa !9
  %2766 = load i64, ptr %50, align 8, !tbaa !9
  %2767 = mul nsw i64 %2765, %2766
  %2768 = add nsw i64 %2767, 1
  %2769 = getelementptr inbounds double, ptr %2764, i64 %2768
  %2770 = call i32 @f2c_dscal(ptr noundef %2763, ptr noundef %83, ptr noundef %2769, ptr noundef @c__1)
  %2771 = load ptr, ptr %26, align 8, !tbaa !5
  %2772 = load ptr, ptr %38, align 8, !tbaa !5
  %2773 = load i64, ptr %63, align 8, !tbaa !9
  %2774 = load i64, ptr %56, align 8, !tbaa !9
  %2775 = mul nsw i64 %2773, %2774
  %2776 = add nsw i64 %2775, 1
  %2777 = getelementptr inbounds double, ptr %2772, i64 %2776
  %2778 = call i32 @f2c_dscal(ptr noundef %2771, ptr noundef %83, ptr noundef %2777, ptr noundef @c__1)
  br label %2779

2779:                                             ; preds = %2762
  %2780 = load i64, ptr %63, align 8, !tbaa !9
  %2781 = add nsw i64 %2780, 1
  store i64 %2781, ptr %63, align 8, !tbaa !9
  br label %2758, !llvm.loop !24

2782:                                             ; preds = %2758
  %2783 = load double, ptr %83, align 8, !tbaa !11
  %2784 = load ptr, ptr %40, align 8, !tbaa !5
  %2785 = load double, ptr %2784, align 8, !tbaa !11
  %2786 = fmul double %2785, %2783
  store double %2786, ptr %2784, align 8, !tbaa !11
  br label %2787

2787:                                             ; preds = %2782, %2747
  %2788 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2789 = load double, ptr %2788, align 16, !tbaa !11
  %2790 = load ptr, ptr %32, align 8, !tbaa !5
  %2791 = load i64, ptr %73, align 8, !tbaa !9
  %2792 = load i64, ptr %74, align 8, !tbaa !9
  %2793 = load i64, ptr %50, align 8, !tbaa !9
  %2794 = mul nsw i64 %2792, %2793
  %2795 = add nsw i64 %2791, %2794
  %2796 = getelementptr inbounds double, ptr %2790, i64 %2795
  store double %2789, ptr %2796, align 8, !tbaa !11
  %2797 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 1
  %2798 = load double, ptr %2797, align 8, !tbaa !11
  %2799 = load ptr, ptr %32, align 8, !tbaa !5
  %2800 = load i64, ptr %76, align 8, !tbaa !9
  %2801 = load i64, ptr %74, align 8, !tbaa !9
  %2802 = load i64, ptr %50, align 8, !tbaa !9
  %2803 = mul nsw i64 %2801, %2802
  %2804 = add nsw i64 %2800, %2803
  %2805 = getelementptr inbounds double, ptr %2799, i64 %2804
  store double %2798, ptr %2805, align 8, !tbaa !11
  %2806 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %2807 = load double, ptr %2806, align 16, !tbaa !11
  %2808 = load ptr, ptr %38, align 8, !tbaa !5
  %2809 = load i64, ptr %73, align 8, !tbaa !9
  %2810 = load i64, ptr %74, align 8, !tbaa !9
  %2811 = load i64, ptr %56, align 8, !tbaa !9
  %2812 = mul nsw i64 %2810, %2811
  %2813 = add nsw i64 %2809, %2812
  %2814 = getelementptr inbounds double, ptr %2808, i64 %2813
  store double %2807, ptr %2814, align 8, !tbaa !11
  %2815 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 3
  %2816 = load double, ptr %2815, align 8, !tbaa !11
  %2817 = load ptr, ptr %38, align 8, !tbaa !5
  %2818 = load i64, ptr %76, align 8, !tbaa !9
  %2819 = load i64, ptr %74, align 8, !tbaa !9
  %2820 = load i64, ptr %56, align 8, !tbaa !9
  %2821 = mul nsw i64 %2819, %2820
  %2822 = add nsw i64 %2818, %2821
  %2823 = getelementptr inbounds double, ptr %2817, i64 %2822
  store double %2816, ptr %2823, align 8, !tbaa !11
  %2824 = load i64, ptr %62, align 8, !tbaa !9
  %2825 = load i64, ptr %64, align 8, !tbaa !9
  %2826 = add nsw i64 %2825, 2
  %2827 = icmp sgt i64 %2824, %2826
  br i1 %2827, label %2828, label %2861

2828:                                             ; preds = %2787
  %2829 = load i64, ptr %74, align 8, !tbaa !9
  %2830 = sub nsw i64 %2829, 1
  store i64 %2830, ptr %60, align 8, !tbaa !9
  %2831 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2832 = load ptr, ptr %30, align 8, !tbaa !5
  %2833 = load i64, ptr %74, align 8, !tbaa !9
  %2834 = load i64, ptr %48, align 8, !tbaa !9
  %2835 = mul nsw i64 %2833, %2834
  %2836 = add nsw i64 %2835, 1
  %2837 = getelementptr inbounds double, ptr %2832, i64 %2836
  %2838 = load ptr, ptr %38, align 8, !tbaa !5
  %2839 = load i64, ptr %73, align 8, !tbaa !9
  %2840 = load i64, ptr %56, align 8, !tbaa !9
  %2841 = add nsw i64 %2839, %2840
  %2842 = getelementptr inbounds double, ptr %2838, i64 %2841
  %2843 = load ptr, ptr %39, align 8, !tbaa !5
  %2844 = call i32 @f2c_dger(ptr noundef %69, ptr noundef %60, ptr noundef @c_b42, ptr noundef %2831, ptr noundef @c__1, ptr noundef %2837, ptr noundef @c__1, ptr noundef %2842, ptr noundef %2843)
  %2845 = load i64, ptr %74, align 8, !tbaa !9
  %2846 = sub nsw i64 %2845, 1
  store i64 %2846, ptr %60, align 8, !tbaa !9
  %2847 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %2848 = load ptr, ptr %36, align 8, !tbaa !5
  %2849 = load i64, ptr %74, align 8, !tbaa !9
  %2850 = load i64, ptr %54, align 8, !tbaa !9
  %2851 = mul nsw i64 %2849, %2850
  %2852 = add nsw i64 %2851, 1
  %2853 = getelementptr inbounds double, ptr %2848, i64 %2852
  %2854 = load ptr, ptr %38, align 8, !tbaa !5
  %2855 = load i64, ptr %73, align 8, !tbaa !9
  %2856 = load i64, ptr %56, align 8, !tbaa !9
  %2857 = add nsw i64 %2855, %2856
  %2858 = getelementptr inbounds double, ptr %2854, i64 %2857
  %2859 = load ptr, ptr %39, align 8, !tbaa !5
  %2860 = call i32 @f2c_dger(ptr noundef %69, ptr noundef %60, ptr noundef @c_b42, ptr noundef %2847, ptr noundef @c__1, ptr noundef %2853, ptr noundef @c__1, ptr noundef %2858, ptr noundef %2859)
  br label %2861

2861:                                             ; preds = %2828, %2787
  %2862 = load i64, ptr %61, align 8, !tbaa !9
  %2863 = load i64, ptr %64, align 8, !tbaa !9
  %2864 = icmp slt i64 %2862, %2863
  br i1 %2864, label %2865, label %2912

2865:                                             ; preds = %2861
  %2866 = load ptr, ptr %26, align 8, !tbaa !5
  %2867 = load i64, ptr %2866, align 8, !tbaa !9
  %2868 = load i64, ptr %67, align 8, !tbaa !9
  %2869 = sub nsw i64 %2867, %2868
  store i64 %2869, ptr %60, align 8, !tbaa !9
  %2870 = load ptr, ptr %28, align 8, !tbaa !5
  %2871 = load i64, ptr %73, align 8, !tbaa !9
  %2872 = load i64, ptr %67, align 8, !tbaa !9
  %2873 = add nsw i64 %2872, 1
  %2874 = load i64, ptr %46, align 8, !tbaa !9
  %2875 = mul nsw i64 %2873, %2874
  %2876 = add nsw i64 %2871, %2875
  %2877 = getelementptr inbounds double, ptr %2870, i64 %2876
  %2878 = load ptr, ptr %29, align 8, !tbaa !5
  %2879 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %2880 = load ptr, ptr %32, align 8, !tbaa !5
  %2881 = load i64, ptr %67, align 8, !tbaa !9
  %2882 = add nsw i64 %2881, 1
  %2883 = load i64, ptr %74, align 8, !tbaa !9
  %2884 = load i64, ptr %50, align 8, !tbaa !9
  %2885 = mul nsw i64 %2883, %2884
  %2886 = add nsw i64 %2882, %2885
  %2887 = getelementptr inbounds double, ptr %2880, i64 %2886
  %2888 = call i32 @f2c_dgemv(ptr noundef @.str.1, ptr noundef %69, ptr noundef %60, ptr noundef @c_b27, ptr noundef %2877, ptr noundef %2878, ptr noundef %2879, ptr noundef @c__1, ptr noundef @c_b42, ptr noundef %2887, ptr noundef @c__1)
  %2889 = load ptr, ptr %26, align 8, !tbaa !5
  %2890 = load i64, ptr %2889, align 8, !tbaa !9
  %2891 = load i64, ptr %67, align 8, !tbaa !9
  %2892 = sub nsw i64 %2890, %2891
  store i64 %2892, ptr %60, align 8, !tbaa !9
  %2893 = load ptr, ptr %34, align 8, !tbaa !5
  %2894 = load i64, ptr %73, align 8, !tbaa !9
  %2895 = load i64, ptr %67, align 8, !tbaa !9
  %2896 = add nsw i64 %2895, 1
  %2897 = load i64, ptr %52, align 8, !tbaa !9
  %2898 = mul nsw i64 %2896, %2897
  %2899 = add nsw i64 %2894, %2898
  %2900 = getelementptr inbounds double, ptr %2893, i64 %2899
  %2901 = load ptr, ptr %35, align 8, !tbaa !5
  %2902 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 2
  %2903 = load ptr, ptr %32, align 8, !tbaa !5
  %2904 = load i64, ptr %67, align 8, !tbaa !9
  %2905 = add nsw i64 %2904, 1
  %2906 = load i64, ptr %74, align 8, !tbaa !9
  %2907 = load i64, ptr %50, align 8, !tbaa !9
  %2908 = mul nsw i64 %2906, %2907
  %2909 = add nsw i64 %2905, %2908
  %2910 = getelementptr inbounds double, ptr %2903, i64 %2909
  %2911 = call i32 @f2c_dgemv(ptr noundef @.str.1, ptr noundef %69, ptr noundef %60, ptr noundef @c_b27, ptr noundef %2900, ptr noundef %2901, ptr noundef %2902, ptr noundef @c__1, ptr noundef @c_b42, ptr noundef %2910, ptr noundef @c__1)
  br label %2912

2912:                                             ; preds = %2865, %2861
  br label %3454

2913:                                             ; preds = %2590, %2587
  %2914 = load i64, ptr %69, align 8, !tbaa !9
  %2915 = icmp eq i64 %2914, 2
  br i1 %2915, label %2916, label %3453

2916:                                             ; preds = %2913
  %2917 = load i64, ptr %70, align 8, !tbaa !9
  %2918 = icmp eq i64 %2917, 2
  br i1 %2918, label %2919, label %3453

2919:                                             ; preds = %2916
  %2920 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %2921 = call i32 @dlaset_(ptr noundef @.str.3, ptr noundef @c__8, ptr noundef @c__8, ptr noundef @c_b56, ptr noundef @c_b56, ptr noundef %2920, ptr noundef @c__8)
  %2922 = load ptr, ptr %28, align 8, !tbaa !5
  %2923 = load i64, ptr %73, align 8, !tbaa !9
  %2924 = load i64, ptr %73, align 8, !tbaa !9
  %2925 = load i64, ptr %46, align 8, !tbaa !9
  %2926 = mul nsw i64 %2924, %2925
  %2927 = add nsw i64 %2923, %2926
  %2928 = getelementptr inbounds double, ptr %2922, i64 %2927
  %2929 = load double, ptr %2928, align 8, !tbaa !11
  %2930 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  store double %2929, ptr %2930, align 16, !tbaa !11
  %2931 = load ptr, ptr %28, align 8, !tbaa !5
  %2932 = load i64, ptr %73, align 8, !tbaa !9
  %2933 = load i64, ptr %76, align 8, !tbaa !9
  %2934 = load i64, ptr %46, align 8, !tbaa !9
  %2935 = mul nsw i64 %2933, %2934
  %2936 = add nsw i64 %2932, %2935
  %2937 = getelementptr inbounds double, ptr %2931, i64 %2936
  %2938 = load double, ptr %2937, align 8, !tbaa !11
  %2939 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 1
  store double %2938, ptr %2939, align 8, !tbaa !11
  %2940 = load ptr, ptr %30, align 8, !tbaa !5
  %2941 = load i64, ptr %74, align 8, !tbaa !9
  %2942 = load i64, ptr %74, align 8, !tbaa !9
  %2943 = load i64, ptr %48, align 8, !tbaa !9
  %2944 = mul nsw i64 %2942, %2943
  %2945 = add nsw i64 %2941, %2944
  %2946 = getelementptr inbounds double, ptr %2940, i64 %2945
  %2947 = load double, ptr %2946, align 8, !tbaa !11
  %2948 = fneg double %2947
  %2949 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 4
  store double %2948, ptr %2949, align 16, !tbaa !11
  %2950 = load ptr, ptr %30, align 8, !tbaa !5
  %2951 = load i64, ptr %77, align 8, !tbaa !9
  %2952 = load i64, ptr %74, align 8, !tbaa !9
  %2953 = load i64, ptr %48, align 8, !tbaa !9
  %2954 = mul nsw i64 %2952, %2953
  %2955 = add nsw i64 %2951, %2954
  %2956 = getelementptr inbounds double, ptr %2950, i64 %2955
  %2957 = load double, ptr %2956, align 8, !tbaa !11
  %2958 = fneg double %2957
  %2959 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 6
  store double %2958, ptr %2959, align 16, !tbaa !11
  %2960 = load ptr, ptr %28, align 8, !tbaa !5
  %2961 = load i64, ptr %76, align 8, !tbaa !9
  %2962 = load i64, ptr %73, align 8, !tbaa !9
  %2963 = load i64, ptr %46, align 8, !tbaa !9
  %2964 = mul nsw i64 %2962, %2963
  %2965 = add nsw i64 %2961, %2964
  %2966 = getelementptr inbounds double, ptr %2960, i64 %2965
  %2967 = load double, ptr %2966, align 8, !tbaa !11
  %2968 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 8
  store double %2967, ptr %2968, align 16, !tbaa !11
  %2969 = load ptr, ptr %28, align 8, !tbaa !5
  %2970 = load i64, ptr %76, align 8, !tbaa !9
  %2971 = load i64, ptr %76, align 8, !tbaa !9
  %2972 = load i64, ptr %46, align 8, !tbaa !9
  %2973 = mul nsw i64 %2971, %2972
  %2974 = add nsw i64 %2970, %2973
  %2975 = getelementptr inbounds double, ptr %2969, i64 %2974
  %2976 = load double, ptr %2975, align 8, !tbaa !11
  %2977 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 9
  store double %2976, ptr %2977, align 8, !tbaa !11
  %2978 = load ptr, ptr %30, align 8, !tbaa !5
  %2979 = load i64, ptr %74, align 8, !tbaa !9
  %2980 = load i64, ptr %74, align 8, !tbaa !9
  %2981 = load i64, ptr %48, align 8, !tbaa !9
  %2982 = mul nsw i64 %2980, %2981
  %2983 = add nsw i64 %2979, %2982
  %2984 = getelementptr inbounds double, ptr %2978, i64 %2983
  %2985 = load double, ptr %2984, align 8, !tbaa !11
  %2986 = fneg double %2985
  %2987 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 13
  store double %2986, ptr %2987, align 8, !tbaa !11
  %2988 = load ptr, ptr %30, align 8, !tbaa !5
  %2989 = load i64, ptr %77, align 8, !tbaa !9
  %2990 = load i64, ptr %74, align 8, !tbaa !9
  %2991 = load i64, ptr %48, align 8, !tbaa !9
  %2992 = mul nsw i64 %2990, %2991
  %2993 = add nsw i64 %2989, %2992
  %2994 = getelementptr inbounds double, ptr %2988, i64 %2993
  %2995 = load double, ptr %2994, align 8, !tbaa !11
  %2996 = fneg double %2995
  %2997 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 15
  store double %2996, ptr %2997, align 8, !tbaa !11
  %2998 = load ptr, ptr %28, align 8, !tbaa !5
  %2999 = load i64, ptr %73, align 8, !tbaa !9
  %3000 = load i64, ptr %73, align 8, !tbaa !9
  %3001 = load i64, ptr %46, align 8, !tbaa !9
  %3002 = mul nsw i64 %3000, %3001
  %3003 = add nsw i64 %2999, %3002
  %3004 = getelementptr inbounds double, ptr %2998, i64 %3003
  %3005 = load double, ptr %3004, align 8, !tbaa !11
  %3006 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 18
  store double %3005, ptr %3006, align 16, !tbaa !11
  %3007 = load ptr, ptr %28, align 8, !tbaa !5
  %3008 = load i64, ptr %73, align 8, !tbaa !9
  %3009 = load i64, ptr %76, align 8, !tbaa !9
  %3010 = load i64, ptr %46, align 8, !tbaa !9
  %3011 = mul nsw i64 %3009, %3010
  %3012 = add nsw i64 %3008, %3011
  %3013 = getelementptr inbounds double, ptr %3007, i64 %3012
  %3014 = load double, ptr %3013, align 8, !tbaa !11
  %3015 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 19
  store double %3014, ptr %3015, align 8, !tbaa !11
  %3016 = load ptr, ptr %30, align 8, !tbaa !5
  %3017 = load i64, ptr %74, align 8, !tbaa !9
  %3018 = load i64, ptr %77, align 8, !tbaa !9
  %3019 = load i64, ptr %48, align 8, !tbaa !9
  %3020 = mul nsw i64 %3018, %3019
  %3021 = add nsw i64 %3017, %3020
  %3022 = getelementptr inbounds double, ptr %3016, i64 %3021
  %3023 = load double, ptr %3022, align 8, !tbaa !11
  %3024 = fneg double %3023
  %3025 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 20
  store double %3024, ptr %3025, align 16, !tbaa !11
  %3026 = load ptr, ptr %30, align 8, !tbaa !5
  %3027 = load i64, ptr %77, align 8, !tbaa !9
  %3028 = load i64, ptr %77, align 8, !tbaa !9
  %3029 = load i64, ptr %48, align 8, !tbaa !9
  %3030 = mul nsw i64 %3028, %3029
  %3031 = add nsw i64 %3027, %3030
  %3032 = getelementptr inbounds double, ptr %3026, i64 %3031
  %3033 = load double, ptr %3032, align 8, !tbaa !11
  %3034 = fneg double %3033
  %3035 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 22
  store double %3034, ptr %3035, align 16, !tbaa !11
  %3036 = load ptr, ptr %28, align 8, !tbaa !5
  %3037 = load i64, ptr %76, align 8, !tbaa !9
  %3038 = load i64, ptr %73, align 8, !tbaa !9
  %3039 = load i64, ptr %46, align 8, !tbaa !9
  %3040 = mul nsw i64 %3038, %3039
  %3041 = add nsw i64 %3037, %3040
  %3042 = getelementptr inbounds double, ptr %3036, i64 %3041
  %3043 = load double, ptr %3042, align 8, !tbaa !11
  %3044 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 26
  store double %3043, ptr %3044, align 16, !tbaa !11
  %3045 = load ptr, ptr %28, align 8, !tbaa !5
  %3046 = load i64, ptr %76, align 8, !tbaa !9
  %3047 = load i64, ptr %76, align 8, !tbaa !9
  %3048 = load i64, ptr %46, align 8, !tbaa !9
  %3049 = mul nsw i64 %3047, %3048
  %3050 = add nsw i64 %3046, %3049
  %3051 = getelementptr inbounds double, ptr %3045, i64 %3050
  %3052 = load double, ptr %3051, align 8, !tbaa !11
  %3053 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 27
  store double %3052, ptr %3053, align 8, !tbaa !11
  %3054 = load ptr, ptr %30, align 8, !tbaa !5
  %3055 = load i64, ptr %74, align 8, !tbaa !9
  %3056 = load i64, ptr %77, align 8, !tbaa !9
  %3057 = load i64, ptr %48, align 8, !tbaa !9
  %3058 = mul nsw i64 %3056, %3057
  %3059 = add nsw i64 %3055, %3058
  %3060 = getelementptr inbounds double, ptr %3054, i64 %3059
  %3061 = load double, ptr %3060, align 8, !tbaa !11
  %3062 = fneg double %3061
  %3063 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 29
  store double %3062, ptr %3063, align 8, !tbaa !11
  %3064 = load ptr, ptr %30, align 8, !tbaa !5
  %3065 = load i64, ptr %77, align 8, !tbaa !9
  %3066 = load i64, ptr %77, align 8, !tbaa !9
  %3067 = load i64, ptr %48, align 8, !tbaa !9
  %3068 = mul nsw i64 %3066, %3067
  %3069 = add nsw i64 %3065, %3068
  %3070 = getelementptr inbounds double, ptr %3064, i64 %3069
  %3071 = load double, ptr %3070, align 8, !tbaa !11
  %3072 = fneg double %3071
  %3073 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 31
  store double %3072, ptr %3073, align 8, !tbaa !11
  %3074 = load ptr, ptr %34, align 8, !tbaa !5
  %3075 = load i64, ptr %73, align 8, !tbaa !9
  %3076 = load i64, ptr %73, align 8, !tbaa !9
  %3077 = load i64, ptr %52, align 8, !tbaa !9
  %3078 = mul nsw i64 %3076, %3077
  %3079 = add nsw i64 %3075, %3078
  %3080 = getelementptr inbounds double, ptr %3074, i64 %3079
  %3081 = load double, ptr %3080, align 8, !tbaa !11
  %3082 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 32
  store double %3081, ptr %3082, align 16, !tbaa !11
  %3083 = load ptr, ptr %34, align 8, !tbaa !5
  %3084 = load i64, ptr %73, align 8, !tbaa !9
  %3085 = load i64, ptr %76, align 8, !tbaa !9
  %3086 = load i64, ptr %52, align 8, !tbaa !9
  %3087 = mul nsw i64 %3085, %3086
  %3088 = add nsw i64 %3084, %3087
  %3089 = getelementptr inbounds double, ptr %3083, i64 %3088
  %3090 = load double, ptr %3089, align 8, !tbaa !11
  %3091 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 33
  store double %3090, ptr %3091, align 8, !tbaa !11
  %3092 = load ptr, ptr %36, align 8, !tbaa !5
  %3093 = load i64, ptr %74, align 8, !tbaa !9
  %3094 = load i64, ptr %74, align 8, !tbaa !9
  %3095 = load i64, ptr %54, align 8, !tbaa !9
  %3096 = mul nsw i64 %3094, %3095
  %3097 = add nsw i64 %3093, %3096
  %3098 = getelementptr inbounds double, ptr %3092, i64 %3097
  %3099 = load double, ptr %3098, align 8, !tbaa !11
  %3100 = fneg double %3099
  %3101 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 36
  store double %3100, ptr %3101, align 16, !tbaa !11
  %3102 = load ptr, ptr %34, align 8, !tbaa !5
  %3103 = load i64, ptr %76, align 8, !tbaa !9
  %3104 = load i64, ptr %76, align 8, !tbaa !9
  %3105 = load i64, ptr %52, align 8, !tbaa !9
  %3106 = mul nsw i64 %3104, %3105
  %3107 = add nsw i64 %3103, %3106
  %3108 = getelementptr inbounds double, ptr %3102, i64 %3107
  %3109 = load double, ptr %3108, align 8, !tbaa !11
  %3110 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 41
  store double %3109, ptr %3110, align 8, !tbaa !11
  %3111 = load ptr, ptr %36, align 8, !tbaa !5
  %3112 = load i64, ptr %74, align 8, !tbaa !9
  %3113 = load i64, ptr %74, align 8, !tbaa !9
  %3114 = load i64, ptr %54, align 8, !tbaa !9
  %3115 = mul nsw i64 %3113, %3114
  %3116 = add nsw i64 %3112, %3115
  %3117 = getelementptr inbounds double, ptr %3111, i64 %3116
  %3118 = load double, ptr %3117, align 8, !tbaa !11
  %3119 = fneg double %3118
  %3120 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 45
  store double %3119, ptr %3120, align 8, !tbaa !11
  %3121 = load ptr, ptr %34, align 8, !tbaa !5
  %3122 = load i64, ptr %73, align 8, !tbaa !9
  %3123 = load i64, ptr %73, align 8, !tbaa !9
  %3124 = load i64, ptr %52, align 8, !tbaa !9
  %3125 = mul nsw i64 %3123, %3124
  %3126 = add nsw i64 %3122, %3125
  %3127 = getelementptr inbounds double, ptr %3121, i64 %3126
  %3128 = load double, ptr %3127, align 8, !tbaa !11
  %3129 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 50
  store double %3128, ptr %3129, align 16, !tbaa !11
  %3130 = load ptr, ptr %34, align 8, !tbaa !5
  %3131 = load i64, ptr %73, align 8, !tbaa !9
  %3132 = load i64, ptr %76, align 8, !tbaa !9
  %3133 = load i64, ptr %52, align 8, !tbaa !9
  %3134 = mul nsw i64 %3132, %3133
  %3135 = add nsw i64 %3131, %3134
  %3136 = getelementptr inbounds double, ptr %3130, i64 %3135
  %3137 = load double, ptr %3136, align 8, !tbaa !11
  %3138 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 51
  store double %3137, ptr %3138, align 8, !tbaa !11
  %3139 = load ptr, ptr %36, align 8, !tbaa !5
  %3140 = load i64, ptr %74, align 8, !tbaa !9
  %3141 = load i64, ptr %77, align 8, !tbaa !9
  %3142 = load i64, ptr %54, align 8, !tbaa !9
  %3143 = mul nsw i64 %3141, %3142
  %3144 = add nsw i64 %3140, %3143
  %3145 = getelementptr inbounds double, ptr %3139, i64 %3144
  %3146 = load double, ptr %3145, align 8, !tbaa !11
  %3147 = fneg double %3146
  %3148 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 52
  store double %3147, ptr %3148, align 16, !tbaa !11
  %3149 = load ptr, ptr %36, align 8, !tbaa !5
  %3150 = load i64, ptr %77, align 8, !tbaa !9
  %3151 = load i64, ptr %77, align 8, !tbaa !9
  %3152 = load i64, ptr %54, align 8, !tbaa !9
  %3153 = mul nsw i64 %3151, %3152
  %3154 = add nsw i64 %3150, %3153
  %3155 = getelementptr inbounds double, ptr %3149, i64 %3154
  %3156 = load double, ptr %3155, align 8, !tbaa !11
  %3157 = fneg double %3156
  %3158 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 54
  store double %3157, ptr %3158, align 16, !tbaa !11
  %3159 = load ptr, ptr %34, align 8, !tbaa !5
  %3160 = load i64, ptr %76, align 8, !tbaa !9
  %3161 = load i64, ptr %76, align 8, !tbaa !9
  %3162 = load i64, ptr %52, align 8, !tbaa !9
  %3163 = mul nsw i64 %3161, %3162
  %3164 = add nsw i64 %3160, %3163
  %3165 = getelementptr inbounds double, ptr %3159, i64 %3164
  %3166 = load double, ptr %3165, align 8, !tbaa !11
  %3167 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 59
  store double %3166, ptr %3167, align 8, !tbaa !11
  %3168 = load ptr, ptr %36, align 8, !tbaa !5
  %3169 = load i64, ptr %74, align 8, !tbaa !9
  %3170 = load i64, ptr %77, align 8, !tbaa !9
  %3171 = load i64, ptr %54, align 8, !tbaa !9
  %3172 = mul nsw i64 %3170, %3171
  %3173 = add nsw i64 %3169, %3172
  %3174 = getelementptr inbounds double, ptr %3168, i64 %3173
  %3175 = load double, ptr %3174, align 8, !tbaa !11
  %3176 = fneg double %3175
  %3177 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 61
  store double %3176, ptr %3177, align 8, !tbaa !11
  %3178 = load ptr, ptr %36, align 8, !tbaa !5
  %3179 = load i64, ptr %77, align 8, !tbaa !9
  %3180 = load i64, ptr %77, align 8, !tbaa !9
  %3181 = load i64, ptr %54, align 8, !tbaa !9
  %3182 = mul nsw i64 %3180, %3181
  %3183 = add nsw i64 %3179, %3182
  %3184 = getelementptr inbounds double, ptr %3178, i64 %3183
  %3185 = load double, ptr %3184, align 8, !tbaa !11
  %3186 = fneg double %3185
  %3187 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 63
  store double %3186, ptr %3187, align 8, !tbaa !11
  store i64 1, ptr %63, align 8, !tbaa !9
  %3188 = load i64, ptr %69, align 8, !tbaa !9
  %3189 = load i64, ptr %70, align 8, !tbaa !9
  %3190 = mul nsw i64 %3188, %3189
  %3191 = add nsw i64 %3190, 1
  store i64 %3191, ptr %71, align 8, !tbaa !9
  %3192 = load i64, ptr %70, align 8, !tbaa !9
  %3193 = sub nsw i64 %3192, 1
  store i64 %3193, ptr %60, align 8, !tbaa !9
  store i64 0, ptr %72, align 8, !tbaa !9
  br label %3194

3194:                                             ; preds = %3231, %2919
  %3195 = load i64, ptr %72, align 8, !tbaa !9
  %3196 = load i64, ptr %60, align 8, !tbaa !9
  %3197 = icmp sle i64 %3195, %3196
  br i1 %3197, label %3198, label %3234

3198:                                             ; preds = %3194
  %3199 = load ptr, ptr %32, align 8, !tbaa !5
  %3200 = load i64, ptr %73, align 8, !tbaa !9
  %3201 = load i64, ptr %74, align 8, !tbaa !9
  %3202 = load i64, ptr %72, align 8, !tbaa !9
  %3203 = add nsw i64 %3201, %3202
  %3204 = load i64, ptr %50, align 8, !tbaa !9
  %3205 = mul nsw i64 %3203, %3204
  %3206 = add nsw i64 %3200, %3205
  %3207 = getelementptr inbounds double, ptr %3199, i64 %3206
  %3208 = load i64, ptr %63, align 8, !tbaa !9
  %3209 = sub nsw i64 %3208, 1
  %3210 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %3209
  %3211 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %3207, ptr noundef @c__1, ptr noundef %3210, ptr noundef @c__1)
  %3212 = load ptr, ptr %38, align 8, !tbaa !5
  %3213 = load i64, ptr %73, align 8, !tbaa !9
  %3214 = load i64, ptr %74, align 8, !tbaa !9
  %3215 = load i64, ptr %72, align 8, !tbaa !9
  %3216 = add nsw i64 %3214, %3215
  %3217 = load i64, ptr %56, align 8, !tbaa !9
  %3218 = mul nsw i64 %3216, %3217
  %3219 = add nsw i64 %3213, %3218
  %3220 = getelementptr inbounds double, ptr %3212, i64 %3219
  %3221 = load i64, ptr %71, align 8, !tbaa !9
  %3222 = sub nsw i64 %3221, 1
  %3223 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %3222
  %3224 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %3220, ptr noundef @c__1, ptr noundef %3223, ptr noundef @c__1)
  %3225 = load i64, ptr %69, align 8, !tbaa !9
  %3226 = load i64, ptr %63, align 8, !tbaa !9
  %3227 = add nsw i64 %3226, %3225
  store i64 %3227, ptr %63, align 8, !tbaa !9
  %3228 = load i64, ptr %69, align 8, !tbaa !9
  %3229 = load i64, ptr %71, align 8, !tbaa !9
  %3230 = add nsw i64 %3229, %3228
  store i64 %3230, ptr %71, align 8, !tbaa !9
  br label %3231

3231:                                             ; preds = %3198
  %3232 = load i64, ptr %72, align 8, !tbaa !9
  %3233 = add nsw i64 %3232, 1
  store i64 %3233, ptr %72, align 8, !tbaa !9
  br label %3194, !llvm.loop !25

3234:                                             ; preds = %3194
  %3235 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %3236 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %3237 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %3238 = call i32 @dgetc2_(ptr noundef %79, ptr noundef %3235, ptr noundef @c__8, ptr noundef %3236, ptr noundef %3237, ptr noundef %78)
  %3239 = load i64, ptr %78, align 8, !tbaa !9
  %3240 = icmp sgt i64 %3239, 0
  br i1 %3240, label %3241, label %3244

3241:                                             ; preds = %3234
  %3242 = load i64, ptr %78, align 8, !tbaa !9
  %3243 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %3242, ptr %3243, align 8, !tbaa !9
  br label %3244

3244:                                             ; preds = %3241, %3234
  %3245 = getelementptr inbounds [64 x double], ptr %66, i64 0, i64 0
  %3246 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 0
  %3247 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 0
  %3248 = getelementptr inbounds [8 x i64], ptr %81, i64 0, i64 0
  %3249 = call i32 @dgesc2_(ptr noundef %79, ptr noundef %3245, ptr noundef @c__8, ptr noundef %3246, ptr noundef %3247, ptr noundef %3248, ptr noundef %83)
  %3250 = load double, ptr %83, align 8, !tbaa !11
  %3251 = fcmp une double %3250, 1.000000e+00
  br i1 %3251, label %3252, label %3284

3252:                                             ; preds = %3244
  %3253 = load ptr, ptr %27, align 8, !tbaa !5
  %3254 = load i64, ptr %3253, align 8, !tbaa !9
  store i64 %3254, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %3255

3255:                                             ; preds = %3276, %3252
  %3256 = load i64, ptr %63, align 8, !tbaa !9
  %3257 = load i64, ptr %60, align 8, !tbaa !9
  %3258 = icmp sle i64 %3256, %3257
  br i1 %3258, label %3259, label %3279

3259:                                             ; preds = %3255
  %3260 = load ptr, ptr %26, align 8, !tbaa !5
  %3261 = load ptr, ptr %32, align 8, !tbaa !5
  %3262 = load i64, ptr %63, align 8, !tbaa !9
  %3263 = load i64, ptr %50, align 8, !tbaa !9
  %3264 = mul nsw i64 %3262, %3263
  %3265 = add nsw i64 %3264, 1
  %3266 = getelementptr inbounds double, ptr %3261, i64 %3265
  %3267 = call i32 @f2c_dscal(ptr noundef %3260, ptr noundef %83, ptr noundef %3266, ptr noundef @c__1)
  %3268 = load ptr, ptr %26, align 8, !tbaa !5
  %3269 = load ptr, ptr %38, align 8, !tbaa !5
  %3270 = load i64, ptr %63, align 8, !tbaa !9
  %3271 = load i64, ptr %56, align 8, !tbaa !9
  %3272 = mul nsw i64 %3270, %3271
  %3273 = add nsw i64 %3272, 1
  %3274 = getelementptr inbounds double, ptr %3269, i64 %3273
  %3275 = call i32 @f2c_dscal(ptr noundef %3268, ptr noundef %83, ptr noundef %3274, ptr noundef @c__1)
  br label %3276

3276:                                             ; preds = %3259
  %3277 = load i64, ptr %63, align 8, !tbaa !9
  %3278 = add nsw i64 %3277, 1
  store i64 %3278, ptr %63, align 8, !tbaa !9
  br label %3255, !llvm.loop !26

3279:                                             ; preds = %3255
  %3280 = load double, ptr %83, align 8, !tbaa !11
  %3281 = load ptr, ptr %40, align 8, !tbaa !5
  %3282 = load double, ptr %3281, align 8, !tbaa !11
  %3283 = fmul double %3282, %3280
  store double %3283, ptr %3281, align 8, !tbaa !11
  br label %3284

3284:                                             ; preds = %3279, %3244
  store i64 1, ptr %63, align 8, !tbaa !9
  %3285 = load i64, ptr %69, align 8, !tbaa !9
  %3286 = load i64, ptr %70, align 8, !tbaa !9
  %3287 = mul nsw i64 %3285, %3286
  %3288 = add nsw i64 %3287, 1
  store i64 %3288, ptr %71, align 8, !tbaa !9
  %3289 = load i64, ptr %70, align 8, !tbaa !9
  %3290 = sub nsw i64 %3289, 1
  store i64 %3290, ptr %60, align 8, !tbaa !9
  store i64 0, ptr %72, align 8, !tbaa !9
  br label %3291

3291:                                             ; preds = %3328, %3284
  %3292 = load i64, ptr %72, align 8, !tbaa !9
  %3293 = load i64, ptr %60, align 8, !tbaa !9
  %3294 = icmp sle i64 %3292, %3293
  br i1 %3294, label %3295, label %3331

3295:                                             ; preds = %3291
  %3296 = load i64, ptr %63, align 8, !tbaa !9
  %3297 = sub nsw i64 %3296, 1
  %3298 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %3297
  %3299 = load ptr, ptr %32, align 8, !tbaa !5
  %3300 = load i64, ptr %73, align 8, !tbaa !9
  %3301 = load i64, ptr %74, align 8, !tbaa !9
  %3302 = load i64, ptr %72, align 8, !tbaa !9
  %3303 = add nsw i64 %3301, %3302
  %3304 = load i64, ptr %50, align 8, !tbaa !9
  %3305 = mul nsw i64 %3303, %3304
  %3306 = add nsw i64 %3300, %3305
  %3307 = getelementptr inbounds double, ptr %3299, i64 %3306
  %3308 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %3298, ptr noundef @c__1, ptr noundef %3307, ptr noundef @c__1)
  %3309 = load i64, ptr %71, align 8, !tbaa !9
  %3310 = sub nsw i64 %3309, 1
  %3311 = getelementptr inbounds [8 x double], ptr %75, i64 0, i64 %3310
  %3312 = load ptr, ptr %38, align 8, !tbaa !5
  %3313 = load i64, ptr %73, align 8, !tbaa !9
  %3314 = load i64, ptr %74, align 8, !tbaa !9
  %3315 = load i64, ptr %72, align 8, !tbaa !9
  %3316 = add nsw i64 %3314, %3315
  %3317 = load i64, ptr %56, align 8, !tbaa !9
  %3318 = mul nsw i64 %3316, %3317
  %3319 = add nsw i64 %3313, %3318
  %3320 = getelementptr inbounds double, ptr %3312, i64 %3319
  %3321 = call i32 @f2c_dcopy(ptr noundef %69, ptr noundef %3311, ptr noundef @c__1, ptr noundef %3320, ptr noundef @c__1)
  %3322 = load i64, ptr %69, align 8, !tbaa !9
  %3323 = load i64, ptr %63, align 8, !tbaa !9
  %3324 = add nsw i64 %3323, %3322
  store i64 %3324, ptr %63, align 8, !tbaa !9
  %3325 = load i64, ptr %69, align 8, !tbaa !9
  %3326 = load i64, ptr %71, align 8, !tbaa !9
  %3327 = add nsw i64 %3326, %3325
  store i64 %3327, ptr %71, align 8, !tbaa !9
  br label %3328

3328:                                             ; preds = %3295
  %3329 = load i64, ptr %72, align 8, !tbaa !9
  %3330 = add nsw i64 %3329, 1
  store i64 %3330, ptr %72, align 8, !tbaa !9
  br label %3291, !llvm.loop !27

3331:                                             ; preds = %3291
  %3332 = load i64, ptr %62, align 8, !tbaa !9
  %3333 = load i64, ptr %64, align 8, !tbaa !9
  %3334 = add nsw i64 %3333, 2
  %3335 = icmp sgt i64 %3332, %3334
  br i1 %3335, label %3336, label %3385

3336:                                             ; preds = %3331
  %3337 = load i64, ptr %74, align 8, !tbaa !9
  %3338 = sub nsw i64 %3337, 1
  store i64 %3338, ptr %60, align 8, !tbaa !9
  %3339 = load ptr, ptr %32, align 8, !tbaa !5
  %3340 = load i64, ptr %73, align 8, !tbaa !9
  %3341 = load i64, ptr %74, align 8, !tbaa !9
  %3342 = load i64, ptr %50, align 8, !tbaa !9
  %3343 = mul nsw i64 %3341, %3342
  %3344 = add nsw i64 %3340, %3343
  %3345 = getelementptr inbounds double, ptr %3339, i64 %3344
  %3346 = load ptr, ptr %33, align 8, !tbaa !5
  %3347 = load ptr, ptr %30, align 8, !tbaa !5
  %3348 = load i64, ptr %74, align 8, !tbaa !9
  %3349 = load i64, ptr %48, align 8, !tbaa !9
  %3350 = mul nsw i64 %3348, %3349
  %3351 = add nsw i64 %3350, 1
  %3352 = getelementptr inbounds double, ptr %3347, i64 %3351
  %3353 = load ptr, ptr %31, align 8, !tbaa !5
  %3354 = load ptr, ptr %38, align 8, !tbaa !5
  %3355 = load i64, ptr %73, align 8, !tbaa !9
  %3356 = load i64, ptr %56, align 8, !tbaa !9
  %3357 = add nsw i64 %3355, %3356
  %3358 = getelementptr inbounds double, ptr %3354, i64 %3357
  %3359 = load ptr, ptr %39, align 8, !tbaa !5
  %3360 = call i32 @f2c_dgemm(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %69, ptr noundef %60, ptr noundef %70, ptr noundef @c_b42, ptr noundef %3345, ptr noundef %3346, ptr noundef %3352, ptr noundef %3353, ptr noundef @c_b42, ptr noundef %3358, ptr noundef %3359)
  %3361 = load i64, ptr %74, align 8, !tbaa !9
  %3362 = sub nsw i64 %3361, 1
  store i64 %3362, ptr %60, align 8, !tbaa !9
  %3363 = load ptr, ptr %38, align 8, !tbaa !5
  %3364 = load i64, ptr %73, align 8, !tbaa !9
  %3365 = load i64, ptr %74, align 8, !tbaa !9
  %3366 = load i64, ptr %56, align 8, !tbaa !9
  %3367 = mul nsw i64 %3365, %3366
  %3368 = add nsw i64 %3364, %3367
  %3369 = getelementptr inbounds double, ptr %3363, i64 %3368
  %3370 = load ptr, ptr %39, align 8, !tbaa !5
  %3371 = load ptr, ptr %36, align 8, !tbaa !5
  %3372 = load i64, ptr %74, align 8, !tbaa !9
  %3373 = load i64, ptr %54, align 8, !tbaa !9
  %3374 = mul nsw i64 %3372, %3373
  %3375 = add nsw i64 %3374, 1
  %3376 = getelementptr inbounds double, ptr %3371, i64 %3375
  %3377 = load ptr, ptr %37, align 8, !tbaa !5
  %3378 = load ptr, ptr %38, align 8, !tbaa !5
  %3379 = load i64, ptr %73, align 8, !tbaa !9
  %3380 = load i64, ptr %56, align 8, !tbaa !9
  %3381 = add nsw i64 %3379, %3380
  %3382 = getelementptr inbounds double, ptr %3378, i64 %3381
  %3383 = load ptr, ptr %39, align 8, !tbaa !5
  %3384 = call i32 @f2c_dgemm(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %69, ptr noundef %60, ptr noundef %70, ptr noundef @c_b42, ptr noundef %3369, ptr noundef %3370, ptr noundef %3376, ptr noundef %3377, ptr noundef @c_b42, ptr noundef %3382, ptr noundef %3383)
  br label %3385

3385:                                             ; preds = %3336, %3331
  %3386 = load i64, ptr %61, align 8, !tbaa !9
  %3387 = load i64, ptr %64, align 8, !tbaa !9
  %3388 = icmp slt i64 %3386, %3387
  br i1 %3388, label %3389, label %3452

3389:                                             ; preds = %3385
  %3390 = load ptr, ptr %26, align 8, !tbaa !5
  %3391 = load i64, ptr %3390, align 8, !tbaa !9
  %3392 = load i64, ptr %67, align 8, !tbaa !9
  %3393 = sub nsw i64 %3391, %3392
  store i64 %3393, ptr %60, align 8, !tbaa !9
  %3394 = load ptr, ptr %28, align 8, !tbaa !5
  %3395 = load i64, ptr %73, align 8, !tbaa !9
  %3396 = load i64, ptr %67, align 8, !tbaa !9
  %3397 = add nsw i64 %3396, 1
  %3398 = load i64, ptr %46, align 8, !tbaa !9
  %3399 = mul nsw i64 %3397, %3398
  %3400 = add nsw i64 %3395, %3399
  %3401 = getelementptr inbounds double, ptr %3394, i64 %3400
  %3402 = load ptr, ptr %29, align 8, !tbaa !5
  %3403 = load ptr, ptr %32, align 8, !tbaa !5
  %3404 = load i64, ptr %73, align 8, !tbaa !9
  %3405 = load i64, ptr %74, align 8, !tbaa !9
  %3406 = load i64, ptr %50, align 8, !tbaa !9
  %3407 = mul nsw i64 %3405, %3406
  %3408 = add nsw i64 %3404, %3407
  %3409 = getelementptr inbounds double, ptr %3403, i64 %3408
  %3410 = load ptr, ptr %33, align 8, !tbaa !5
  %3411 = load ptr, ptr %32, align 8, !tbaa !5
  %3412 = load i64, ptr %67, align 8, !tbaa !9
  %3413 = add nsw i64 %3412, 1
  %3414 = load i64, ptr %74, align 8, !tbaa !9
  %3415 = load i64, ptr %50, align 8, !tbaa !9
  %3416 = mul nsw i64 %3414, %3415
  %3417 = add nsw i64 %3413, %3416
  %3418 = getelementptr inbounds double, ptr %3411, i64 %3417
  %3419 = load ptr, ptr %33, align 8, !tbaa !5
  %3420 = call i32 @f2c_dgemm(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %60, ptr noundef %70, ptr noundef %69, ptr noundef @c_b27, ptr noundef %3401, ptr noundef %3402, ptr noundef %3409, ptr noundef %3410, ptr noundef @c_b42, ptr noundef %3418, ptr noundef %3419)
  %3421 = load ptr, ptr %26, align 8, !tbaa !5
  %3422 = load i64, ptr %3421, align 8, !tbaa !9
  %3423 = load i64, ptr %67, align 8, !tbaa !9
  %3424 = sub nsw i64 %3422, %3423
  store i64 %3424, ptr %60, align 8, !tbaa !9
  %3425 = load ptr, ptr %34, align 8, !tbaa !5
  %3426 = load i64, ptr %73, align 8, !tbaa !9
  %3427 = load i64, ptr %67, align 8, !tbaa !9
  %3428 = add nsw i64 %3427, 1
  %3429 = load i64, ptr %52, align 8, !tbaa !9
  %3430 = mul nsw i64 %3428, %3429
  %3431 = add nsw i64 %3426, %3430
  %3432 = getelementptr inbounds double, ptr %3425, i64 %3431
  %3433 = load ptr, ptr %35, align 8, !tbaa !5
  %3434 = load ptr, ptr %38, align 8, !tbaa !5
  %3435 = load i64, ptr %73, align 8, !tbaa !9
  %3436 = load i64, ptr %74, align 8, !tbaa !9
  %3437 = load i64, ptr %56, align 8, !tbaa !9
  %3438 = mul nsw i64 %3436, %3437
  %3439 = add nsw i64 %3435, %3438
  %3440 = getelementptr inbounds double, ptr %3434, i64 %3439
  %3441 = load ptr, ptr %39, align 8, !tbaa !5
  %3442 = load ptr, ptr %32, align 8, !tbaa !5
  %3443 = load i64, ptr %67, align 8, !tbaa !9
  %3444 = add nsw i64 %3443, 1
  %3445 = load i64, ptr %74, align 8, !tbaa !9
  %3446 = load i64, ptr %50, align 8, !tbaa !9
  %3447 = mul nsw i64 %3445, %3446
  %3448 = add nsw i64 %3444, %3447
  %3449 = getelementptr inbounds double, ptr %3442, i64 %3448
  %3450 = load ptr, ptr %33, align 8, !tbaa !5
  %3451 = call i32 @f2c_dgemm(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %60, ptr noundef %70, ptr noundef %69, ptr noundef @c_b27, ptr noundef %3432, ptr noundef %3433, ptr noundef %3440, ptr noundef %3441, ptr noundef @c_b42, ptr noundef %3449, ptr noundef %3450)
  br label %3452

3452:                                             ; preds = %3389, %3385
  br label %3453

3453:                                             ; preds = %3452, %2916, %2913
  br label %3454

3454:                                             ; preds = %3453, %2912
  br label %3455

3455:                                             ; preds = %3454, %2586
  br label %3456

3456:                                             ; preds = %3455, %2223
  br label %3457

3457:                                             ; preds = %3456
  %3458 = load i64, ptr %62, align 8, !tbaa !9
  %3459 = add nsw i64 %3458, -1
  store i64 %3459, ptr %62, align 8, !tbaa !9
  br label %1974, !llvm.loop !28

3460:                                             ; preds = %1974
  br label %3461

3461:                                             ; preds = %3460
  %3462 = load i64, ptr %61, align 8, !tbaa !9
  %3463 = add nsw i64 %3462, 1
  store i64 %3463, ptr %61, align 8, !tbaa !9
  br label %1955, !llvm.loop !29

3464:                                             ; preds = %1955
  br label %3465

3465:                                             ; preds = %3464, %1951
  store i32 0, ptr %23, align 4
  store i32 1, ptr %85, align 4
  br label %3466

3466:                                             ; preds = %3465, %280
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 512, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  %3467 = load i32, ptr %23, align 4
  ret i32 %3467
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__8 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c_b27 = external hidden global double, align 8
@c_b42 = external hidden global double, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b56 = external hidden global double, align 8

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

56:                                               ; preds = %22
  %57 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #3
  %.not1384 = icmp eq i64 %57, 0
  br i1 %.not1384, label %.thread1414.sink.split, label %59

.critedge:                                        ; preds = %22
  %58 = load i64, ptr %1, align 8, !tbaa !5
  %or.cond1405 = icmp ugt i64 %58, 2
  br i1 %or.cond1405, label %.thread1414.sink.split, label %59

59:                                               ; preds = %56, %.critedge
  %.pr = load i64, ptr %21, align 8, !tbaa !5
  %60 = icmp eq i64 %.pr, 0
  br i1 %60, label %61, label %.thread1414

61:                                               ; preds = %59
  %62 = load i64, ptr %2, align 8, !tbaa !5
  %63 = icmp slt i64 %62, 1
  br i1 %63, label %.thread1414.sink.split, label %64

64:                                               ; preds = %61
  %65 = load i64, ptr %3, align 8, !tbaa !5
  %66 = icmp slt i64 %65, 1
  br i1 %66, label %.thread1414.sink.split, label %67

67:                                               ; preds = %64
  %68 = load i64, ptr %5, align 8, !tbaa !5
  %69 = icmp slt i64 %68, %62
  br i1 %69, label %.thread1414.sink.split, label %70

70:                                               ; preds = %67
  %71 = load i64, ptr %7, align 8, !tbaa !5
  %72 = icmp slt i64 %71, %65
  br i1 %72, label %.thread1414.sink.split, label %73

73:                                               ; preds = %70
  %74 = load i64, ptr %9, align 8, !tbaa !5
  %75 = icmp slt i64 %74, %62
  br i1 %75, label %.thread1414.sink.split, label %76

76:                                               ; preds = %73
  %77 = load i64, ptr %11, align 8, !tbaa !5
  %78 = icmp slt i64 %77, %62
  br i1 %78, label %.thread1414.sink.split, label %79

79:                                               ; preds = %76
  %80 = load i64, ptr %13, align 8, !tbaa !5
  %81 = icmp slt i64 %80, %65
  br i1 %81, label %.thread1414.sink.split, label %82

82:                                               ; preds = %79
  %83 = load i64, ptr %15, align 8, !tbaa !5
  %84 = icmp slt i64 %83, %62
  br i1 %84, label %.thread1414.sink.split, label %.thread

.thread1414.sink.split:                           ; preds = %82, %79, %76, %73, %70, %67, %64, %61, %.critedge, %56
  %.sink = phi i64 [ -1, %56 ], [ -2, %.critedge ], [ -3, %61 ], [ -4, %64 ], [ -5, %67 ], [ -8, %70 ], [ -10, %73 ], [ -12, %76 ], [ -14, %79 ], [ -16, %82 ]
  store i64 %.sink, ptr %21, align 8, !tbaa !5
  br label %.thread1414

.thread1414:                                      ; preds = %.thread1414.sink.split, %59
  %85 = phi i64 [ %.pr, %59 ], [ %.sink, %.thread1414.sink.split ]
  %86 = sub nsw i64 0, %85
  store i64 %86, ptr %23, align 8, !tbaa !5
  %87 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %23) #3
  br label %.loopexit

.thread:                                          ; preds = %82
  store i64 0, ptr %20, align 8, !tbaa !5
  %88 = load i64, ptr %2, align 8, !tbaa !5
  %89 = icmp slt i64 %88, 1
  br i1 %89, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.thread, %94
  %.013551422 = phi i64 [ %90, %94 ], [ 0, %.thread ]
  %.013651421 = phi i64 [ %.11366, %94 ], [ 1, %.thread ]
  %90 = add nuw nsw i64 %.013551422, 1
  %91 = getelementptr i64, ptr %19, i64 %.013551422
  store i64 %.013651421, ptr %91, align 8, !tbaa !5
  %92 = load i64, ptr %2, align 8, !tbaa !5
  %93 = icmp eq i64 %.013651421, %92
  br i1 %93, label %._crit_edge, label %94

94:                                               ; preds = %.lr.ph
  %95 = add nsw i64 %.013651421, 1
  %96 = mul nsw i64 %.013651421, %36
  %97 = getelementptr double, ptr %38, i64 %95
  %98 = getelementptr double, ptr %97, i64 %96
  %99 = load double, ptr %98, align 8, !tbaa !9
  %100 = fcmp une double %99, 0.000000e+00
  %101 = add nsw i64 %.013651421, 2
  %.11366 = select i1 %100, i64 %101, i64 %95
  %102 = icmp sgt i64 %.11366, %92
  br i1 %102, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %94, %.lr.ph, %.thread
  %103 = phi i64 [ %88, %.thread ], [ %92, %.lr.ph ], [ %92, %94 ]
  %104 = phi i64 [ 0, %.thread ], [ %90, %.lr.ph ], [ %90, %94 ]
  %105 = add nsw i64 %103, 1
  %106 = add nsw i64 %104, 1
  %107 = getelementptr i64, ptr %19, i64 %104
  store i64 %105, ptr %107, align 8, !tbaa !5
  %108 = load i64, ptr %3, align 8, !tbaa !5
  %109 = icmp slt i64 %108, 1
  br i1 %109, label %._crit_edge1429, label %.lr.ph1428

.lr.ph1428:                                       ; preds = %._crit_edge, %114
  %.013531426 = phi i64 [ %110, %114 ], [ %106, %._crit_edge ]
  %.013611425 = phi i64 [ %.11362, %114 ], [ 1, %._crit_edge ]
  %110 = add nsw i64 %.013531426, 1
  %111 = getelementptr i64, ptr %19, i64 %.013531426
  store i64 %.013611425, ptr %111, align 8, !tbaa !5
  %112 = load i64, ptr %3, align 8, !tbaa !5
  %113 = icmp eq i64 %.013611425, %112
  br i1 %113, label %._crit_edge1429, label %114

114:                                              ; preds = %.lr.ph1428
  %115 = add nsw i64 %.013611425, 1
  %116 = mul nsw i64 %.013611425, %39
  %117 = getelementptr double, ptr %41, i64 %115
  %118 = getelementptr double, ptr %117, i64 %116
  %119 = load double, ptr %118, align 8, !tbaa !9
  %120 = fcmp une double %119, 0.000000e+00
  %121 = add nsw i64 %.013611425, 2
  %.11362 = select i1 %120, i64 %121, i64 %115
  %122 = icmp sgt i64 %.11362, %112
  br i1 %122, label %._crit_edge1429, label %.lr.ph1428

._crit_edge1429:                                  ; preds = %114, %.lr.ph1428, %._crit_edge
  %123 = phi i64 [ %108, %._crit_edge ], [ %112, %.lr.ph1428 ], [ %112, %114 ]
  %124 = phi i64 [ %106, %._crit_edge ], [ %110, %.lr.ph1428 ], [ %110, %114 ]
  %125 = add nsw i64 %123, 1
  %126 = getelementptr i64, ptr %19, i64 %124
  store i64 %125, ptr %126, align 8, !tbaa !5
  %127 = xor i64 %104, -1
  %128 = add i64 %124, %127
  %129 = mul nsw i64 %128, %104
  store i64 %129, ptr %20, align 8, !tbaa !5
  store double 1.000000e+00, ptr %16, align 8, !tbaa !9
  store double 1.000000e+00, ptr %35, align 8, !tbaa !9
  br i1 %.not, label %561, label %130

130:                                              ; preds = %._crit_edge1429
  store i64 %124, ptr %23, align 8, !tbaa !5
  %131 = add nsw i64 %104, 2
  %.not13941524 = icmp sgt i64 %131, %124
  br i1 %.not13941524, label %.loopexit, label %.lr.ph1527

.lr.ph1527:                                       ; preds = %130
  %invariant.gep1481 = getelementptr i8, ptr %38, i64 8
  %invariant.gep1483 = getelementptr i8, ptr %44, i64 8
  %invariant.gep1485 = getelementptr i8, ptr %47, i64 8
  %invariant.gep1487 = getelementptr i8, ptr %53, i64 8
  %132 = icmp sgt i64 %104, 0
  %133 = getelementptr inbounds i8, ptr %26, i64 8
  %134 = getelementptr inbounds i8, ptr %26, i64 32
  %135 = getelementptr inbounds i8, ptr %26, i64 64
  %136 = getelementptr inbounds i8, ptr %26, i64 72
  %137 = getelementptr inbounds i8, ptr %26, i64 96
  %138 = getelementptr inbounds i8, ptr %26, i64 144
  %139 = getelementptr inbounds i8, ptr %26, i64 152
  %140 = getelementptr inbounds i8, ptr %26, i64 176
  %141 = getelementptr inbounds i8, ptr %26, i64 208
  %142 = getelementptr inbounds i8, ptr %26, i64 216
  %143 = getelementptr inbounds i8, ptr %26, i64 240
  %144 = getelementptr inbounds i8, ptr %26, i64 256
  %145 = getelementptr inbounds i8, ptr %26, i64 272
  %146 = add i64 %48, 1
  %147 = getelementptr inbounds i8, ptr %26, i64 288
  %148 = getelementptr inbounds i8, ptr %26, i64 304
  %149 = getelementptr inbounds i8, ptr %26, i64 328
  %150 = getelementptr inbounds i8, ptr %26, i64 344
  %151 = getelementptr inbounds i8, ptr %26, i64 360
  %152 = getelementptr inbounds i8, ptr %26, i64 376
  %153 = getelementptr inbounds i8, ptr %26, i64 384
  %154 = getelementptr inbounds i8, ptr %26, i64 400
  %155 = getelementptr inbounds i8, ptr %26, i64 432
  %156 = getelementptr inbounds i8, ptr %26, i64 456
  %157 = getelementptr inbounds i8, ptr %26, i64 472
  %158 = getelementptr inbounds i8, ptr %26, i64 504
  %159 = getelementptr inbounds i8, ptr %26, i64 16
  %160 = getelementptr inbounds i8, ptr %26, i64 24
  %161 = getelementptr inbounds i8, ptr %26, i64 80
  %162 = getelementptr inbounds i8, ptr %26, i64 88
  %163 = add i64 %39, 1
  %164 = getelementptr inbounds i8, ptr %26, i64 128
  %165 = getelementptr inbounds i8, ptr %26, i64 136
  %166 = getelementptr inbounds i8, ptr %26, i64 192
  %167 = getelementptr inbounds i8, ptr %26, i64 200
  %168 = getelementptr inbounds i8, ptr %29, i64 8
  %169 = getelementptr inbounds i8, ptr %29, i64 16
  %170 = getelementptr inbounds i8, ptr %29, i64 24
  br i1 %132, label %.lr.ph1515.us, label %.loopexit

.lr.ph1515.us:                                    ; preds = %.lr.ph1527, %..loopexit1419_crit_edge.us
  %.213631525.us = phi i64 [ %560, %..loopexit1419_crit_edge.us ], [ %131, %.lr.ph1527 ]
  %171 = getelementptr inbounds i64, ptr %54, i64 %.213631525.us
  %172 = load i64, ptr %171, align 8, !tbaa !5
  %173 = add nsw i64 %172, 1
  %174 = getelementptr i64, ptr %19, i64 %.213631525.us
  %175 = load i64, ptr %174, align 8, !tbaa !5
  %176 = add nsw i64 %175, -1
  %177 = sub i64 %175, %172
  store i64 %177, ptr %28, align 8, !tbaa !5
  %178 = mul nsw i64 %172, %39
  %179 = getelementptr double, ptr %41, i64 %172
  %180 = getelementptr double, ptr %179, i64 %178
  %181 = mul nsw i64 %173, %39
  %182 = getelementptr double, ptr %179, i64 %181
  %183 = mul i64 %172, %146
  %184 = getelementptr inbounds double, ptr %50, i64 %183
  %185 = mul nsw i64 %173, %48
  %186 = getelementptr double, ptr %50, i64 %172
  %187 = getelementptr double, ptr %186, i64 %185
  %188 = getelementptr double, ptr %41, i64 %173
  %189 = getelementptr double, ptr %188, i64 %178
  %190 = getelementptr double, ptr %188, i64 %181
  %191 = getelementptr double, ptr %50, i64 %173
  %192 = getelementptr double, ptr %191, i64 %185
  %193 = mul nsw i64 %172, %42
  %gep1484.us = getelementptr double, ptr %invariant.gep1483, i64 %193
  %194 = mul nsw i64 %172, %51
  %gep1488.us = getelementptr double, ptr %invariant.gep1487, i64 %194
  %195 = icmp slt i64 %.213631525.us, %124
  %196 = mul nsw i64 %175, %39
  %197 = getelementptr double, ptr %179, i64 %196
  %198 = mul nsw i64 %175, %42
  %invariant.gep1516.us = getelementptr double, ptr %44, i64 %198
  %199 = mul nsw i64 %175, %48
  %200 = getelementptr double, ptr %186, i64 %199
  %201 = mul nsw i64 %175, %51
  %invariant.gep1518.us = getelementptr double, ptr %53, i64 %201
  %202 = mul i64 %172, %163
  %203 = getelementptr inbounds double, ptr %41, i64 %202
  %204 = mul nsw i64 %173, %42
  %205 = mul nsw i64 %173, %51
  %206 = getelementptr double, ptr %188, i64 %196
  %207 = getelementptr double, ptr %191, i64 %199
  br label %208

208:                                              ; preds = %.lr.ph1515.us, %549
  %.213671513.us = phi i64 [ %104, %.lr.ph1515.us ], [ %550, %549 ]
  %209 = getelementptr inbounds i64, ptr %54, i64 %.213671513.us
  %210 = load i64, ptr %209, align 8, !tbaa !5
  %211 = add nsw i64 %210, 1
  %212 = getelementptr i64, ptr %19, i64 %.213671513.us
  %213 = load i64, ptr %212, align 8, !tbaa !5
  %214 = sub i64 %213, %210
  store i64 %214, ptr %27, align 8, !tbaa !5
  %215 = load i64, ptr %28, align 8
  %216 = shl i64 %214, 1
  %217 = mul i64 %216, %215
  store i64 %217, ptr %31, align 8, !tbaa !5
  %218 = icmp eq i64 %214, 1
  %219 = icmp eq i64 %215, 1
  %or.cond.us = select i1 %218, i1 %219, i1 false
  br i1 %or.cond.us, label %487, label %220

220:                                              ; preds = %208
  %221 = icmp eq i64 %215, 2
  %or.cond3.us = select i1 %218, i1 %221, i1 false
  br i1 %or.cond3.us, label %402, label %222

222:                                              ; preds = %220
  %223 = icmp eq i64 %214, 2
  %or.cond5.us = select i1 %223, i1 %219, i1 false
  br i1 %or.cond5.us, label %336, label %224

224:                                              ; preds = %222
  %or.cond7.us = select i1 %223, i1 %221, i1 false
  br i1 %or.cond7.us, label %225, label %549

225:                                              ; preds = %224
  %226 = call i32 @dlaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__8, ptr noundef nonnull @c__8, ptr noundef nonnull @c_b56, ptr noundef nonnull @c_b56, ptr noundef nonnull %26, ptr noundef nonnull @c__8) #3
  %227 = mul nsw i64 %210, %36
  %228 = getelementptr double, ptr %38, i64 %210
  %229 = getelementptr double, ptr %228, i64 %227
  %230 = load <2 x double>, ptr %229, align 8, !tbaa !9
  store <2 x double> %230, ptr %26, align 16, !tbaa !9
  %231 = mul nsw i64 %210, %45
  %232 = getelementptr double, ptr %47, i64 %210
  %233 = getelementptr double, ptr %232, i64 %231
  %234 = load double, ptr %233, align 8, !tbaa !9
  store double %234, ptr %134, align 16, !tbaa !9
  %235 = mul nsw i64 %211, %36
  %236 = getelementptr double, ptr %228, i64 %235
  %237 = load <2 x double>, ptr %236, align 8, !tbaa !9
  store <2 x double> %237, ptr %135, align 16, !tbaa !9
  %238 = mul nsw i64 %211, %45
  %239 = getelementptr double, ptr %232, i64 %238
  %240 = load <2 x double>, ptr %239, align 8, !tbaa !9
  store <2 x double> %240, ptr %137, align 16, !tbaa !9
  store <2 x double> %230, ptr %138, align 16, !tbaa !9
  store double %234, ptr %140, align 16, !tbaa !9
  store <2 x double> %237, ptr %141, align 16, !tbaa !9
  store <2 x double> %240, ptr %143, align 16, !tbaa !9
  %241 = load double, ptr %180, align 8, !tbaa !9
  %242 = fneg double %241
  store double %242, ptr %144, align 16, !tbaa !9
  %243 = load double, ptr %182, align 8, !tbaa !9
  %244 = fneg double %243
  store double %244, ptr %145, align 16, !tbaa !9
  %245 = load double, ptr %184, align 8, !tbaa !9
  %246 = fneg double %245
  store double %246, ptr %147, align 16, !tbaa !9
  %247 = load double, ptr %187, align 8, !tbaa !9
  %248 = fneg double %247
  store double %248, ptr %148, align 16, !tbaa !9
  store double %242, ptr %149, align 8, !tbaa !9
  store double %244, ptr %150, align 8, !tbaa !9
  store double %246, ptr %151, align 8, !tbaa !9
  store double %248, ptr %152, align 8, !tbaa !9
  %249 = load double, ptr %189, align 8, !tbaa !9
  %250 = fneg double %249
  store double %250, ptr %153, align 16, !tbaa !9
  %251 = load double, ptr %190, align 8, !tbaa !9
  %252 = fneg double %251
  store double %252, ptr %154, align 16, !tbaa !9
  %253 = load double, ptr %192, align 8, !tbaa !9
  %254 = fneg double %253
  store double %254, ptr %155, align 16, !tbaa !9
  store double %250, ptr %156, align 8, !tbaa !9
  store double %252, ptr %157, align 8, !tbaa !9
  store double %254, ptr %158, align 8, !tbaa !9
  %255 = load i64, ptr %27, align 8, !tbaa !5
  %256 = load i64, ptr %28, align 8, !tbaa !5
  %257 = add nsw i64 %256, -1
  store i64 %257, ptr %24, align 8, !tbaa !5
  %.not13951433.us = icmp slt i64 %256, 1
  br i1 %.not13951433.us, label %._crit_edge1439.us, label %.lr.ph1438.us

258:                                              ; preds = %.lr.ph1438.us, %258
  %.013481436.us = phi i64 [ 0, %.lr.ph1438.us ], [ %273, %258 ]
  %.013491435.us = phi i64 [ %553, %.lr.ph1438.us ], [ %272, %258 ]
  %.313601434.us = phi i64 [ 1, %.lr.ph1438.us ], [ %271, %258 ]
  %259 = add nsw i64 %.013481436.us, %172
  %260 = mul nsw i64 %259, %42
  %261 = getelementptr double, ptr %554, i64 %260
  %262 = add nsw i64 %.313601434.us, -1
  %263 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %262
  %264 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef %261, ptr noundef nonnull @c__1, ptr noundef nonnull %263, ptr noundef nonnull @c__1) #3
  %265 = mul nsw i64 %259, %51
  %266 = getelementptr double, ptr %555, i64 %265
  %267 = add nsw i64 %.013491435.us, -1
  %268 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %267
  %269 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef %266, ptr noundef nonnull @c__1, ptr noundef nonnull %268, ptr noundef nonnull @c__1) #3
  %270 = load i64, ptr %27, align 8, !tbaa !5
  %271 = add nsw i64 %270, %.313601434.us
  %272 = add nsw i64 %270, %.013491435.us
  %273 = add nuw nsw i64 %.013481436.us, 1
  %274 = load i64, ptr %24, align 8, !tbaa !5
  %.not1395.us.not = icmp slt i64 %.013481436.us, %274
  br i1 %.not1395.us.not, label %258, label %._crit_edge1439.us, !llvm.loop !11

._crit_edge1439.us:                               ; preds = %258, %225
  %275 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %276 = load i64, ptr %30, align 8, !tbaa !5
  %277 = icmp sgt i64 %276, 0
  br i1 %277, label %278, label %279

278:                                              ; preds = %._crit_edge1439.us
  store i64 %276, ptr %21, align 8, !tbaa !5
  br label %279

279:                                              ; preds = %278, %._crit_edge1439.us
  %280 = load i64, ptr %1, align 8, !tbaa !5
  %281 = icmp eq i64 %280, 0
  br i1 %281, label %284, label %282

282:                                              ; preds = %279
  %283 = call i32 @dlatdf_(ptr noundef nonnull %1, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %32, ptr noundef nonnull %33) #3
  br label %299

284:                                              ; preds = %279
  %285 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %286 = load double, ptr %35, align 8, !tbaa !9
  %287 = fcmp une double %286, 1.000000e+00
  br i1 %287, label %288, label %299

288:                                              ; preds = %284
  %289 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %289, ptr %24, align 8, !tbaa !5
  %.not13961442.us = icmp slt i64 %289, 1
  br i1 %.not13961442.us, label %._crit_edge1446.us, label %.lr.ph1445.us

.lr.ph1445.us:                                    ; preds = %288, %.lr.ph1445.us
  %.41443.us = phi i64 [ %294, %.lr.ph1445.us ], [ 1, %288 ]
  %290 = mul nsw i64 %.41443.us, %42
  %gep.us = getelementptr double, ptr %invariant.gep1483, i64 %290
  %291 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep.us, ptr noundef nonnull @c__1) #3
  %292 = mul nsw i64 %.41443.us, %51
  %gep1441.us = getelementptr double, ptr %invariant.gep1487, i64 %292
  %293 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1441.us, ptr noundef nonnull @c__1) #3
  %294 = add nuw nsw i64 %.41443.us, 1
  %295 = load i64, ptr %24, align 8, !tbaa !5
  %.not1396.us.not = icmp slt i64 %.41443.us, %295
  br i1 %.not1396.us.not, label %.lr.ph1445.us, label %._crit_edge1446.us.loopexit, !llvm.loop !13

._crit_edge1446.us.loopexit:                      ; preds = %.lr.ph1445.us
  %.pre = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1446.us

._crit_edge1446.us:                               ; preds = %._crit_edge1446.us.loopexit, %288
  %296 = phi double [ %.pre, %._crit_edge1446.us.loopexit ], [ %286, %288 ]
  %297 = load double, ptr %16, align 8, !tbaa !9
  %298 = fmul double %296, %297
  store double %298, ptr %16, align 8, !tbaa !9
  br label %299

299:                                              ; preds = %._crit_edge1446.us, %284, %282
  %300 = load i64, ptr %27, align 8, !tbaa !5
  %301 = load i64, ptr %28, align 8, !tbaa !5
  %302 = add nsw i64 %301, -1
  store i64 %302, ptr %24, align 8, !tbaa !5
  %.not13971447.us = icmp slt i64 %301, 1
  br i1 %.not13971447.us, label %._crit_edge1453.us, label %.lr.ph1452.us

303:                                              ; preds = %.lr.ph1452.us, %303
  %.11450.us = phi i64 [ 0, %.lr.ph1452.us ], [ %318, %303 ]
  %.113501449.us = phi i64 [ %557, %.lr.ph1452.us ], [ %317, %303 ]
  %.51448.us = phi i64 [ 1, %.lr.ph1452.us ], [ %316, %303 ]
  %304 = add nsw i64 %.51448.us, -1
  %305 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %304
  %306 = add nsw i64 %.11450.us, %172
  %307 = mul nsw i64 %306, %42
  %308 = getelementptr double, ptr %558, i64 %307
  %309 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef nonnull %305, ptr noundef nonnull @c__1, ptr noundef %308, ptr noundef nonnull @c__1) #3
  %310 = add nsw i64 %.113501449.us, -1
  %311 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %310
  %312 = mul nsw i64 %306, %51
  %313 = getelementptr double, ptr %559, i64 %312
  %314 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef nonnull %311, ptr noundef nonnull @c__1, ptr noundef %313, ptr noundef nonnull @c__1) #3
  %315 = load i64, ptr %27, align 8, !tbaa !5
  %316 = add nsw i64 %315, %.51448.us
  %317 = add nsw i64 %315, %.113501449.us
  %318 = add nuw nsw i64 %.11450.us, 1
  %319 = load i64, ptr %24, align 8, !tbaa !5
  %.not1397.us.not = icmp slt i64 %.11450.us, %319
  br i1 %.not1397.us.not, label %303, label %._crit_edge1453.us, !llvm.loop !14

._crit_edge1453.us:                               ; preds = %303, %299
  %.not1398.us = icmp eq i64 %.213671513.us, 1
  br i1 %.not1398.us, label %324, label %320

320:                                              ; preds = %._crit_edge1453.us
  %321 = add nsw i64 %210, -1
  store i64 %321, ptr %24, align 8, !tbaa !5
  %gep1482.us = getelementptr double, ptr %invariant.gep1481, i64 %227
  %322 = call i32 @f2c_dgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b27, ptr noundef %gep1482.us, ptr noundef nonnull %5, ptr noundef nonnull %29, ptr noundef nonnull %27, ptr noundef nonnull @c_b42, ptr noundef %gep1484.us, ptr noundef nonnull %9) #3
  store i64 %321, ptr %24, align 8, !tbaa !5
  %gep1486.us = getelementptr double, ptr %invariant.gep1485, i64 %231
  %323 = call i32 @f2c_dgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b27, ptr noundef %gep1486.us, ptr noundef nonnull %11, ptr noundef nonnull %29, ptr noundef nonnull %27, ptr noundef nonnull @c_b42, ptr noundef %gep1488.us, ptr noundef nonnull %15) #3
  br label %324

324:                                              ; preds = %320, %._crit_edge1453.us
  br i1 %195, label %325, label %549

325:                                              ; preds = %324
  %326 = load i64, ptr %27, align 8, !tbaa !5
  %327 = load i64, ptr %28, align 8, !tbaa !5
  %328 = mul nsw i64 %327, %326
  %329 = load i64, ptr %3, align 8, !tbaa !5
  %330 = sub nsw i64 %329, %176
  store i64 %330, ptr %24, align 8, !tbaa !5
  %331 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %328
  %gep1517.us = getelementptr double, ptr %invariant.gep1516.us, i64 %210
  %332 = call i32 @f2c_dgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b42, ptr noundef nonnull %331, ptr noundef nonnull %27, ptr noundef %197, ptr noundef nonnull %7, ptr noundef nonnull @c_b42, ptr noundef %gep1517.us, ptr noundef nonnull %9) #3
  %333 = load i64, ptr %3, align 8, !tbaa !5
  %334 = sub nsw i64 %333, %176
  store i64 %334, ptr %24, align 8, !tbaa !5
  %gep1519.us = getelementptr double, ptr %invariant.gep1518.us, i64 %210
  %335 = call i32 @f2c_dgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b42, ptr noundef nonnull %331, ptr noundef nonnull %27, ptr noundef %200, ptr noundef nonnull %13, ptr noundef nonnull @c_b42, ptr noundef %gep1519.us, ptr noundef nonnull %15) #3
  br label %549

336:                                              ; preds = %222
  %337 = mul nsw i64 %210, %36
  %338 = getelementptr double, ptr %38, i64 %210
  %339 = getelementptr double, ptr %338, i64 %337
  %340 = load <2 x double>, ptr %339, align 8, !tbaa !9
  store <2 x double> %340, ptr %26, align 16, !tbaa !9
  %341 = mul nsw i64 %210, %45
  %342 = getelementptr double, ptr %47, i64 %210
  %343 = getelementptr double, ptr %342, i64 %341
  %344 = load double, ptr %343, align 8, !tbaa !9
  store double %344, ptr %159, align 16, !tbaa !9
  store double 0.000000e+00, ptr %160, align 8, !tbaa !9
  %345 = mul nsw i64 %211, %36
  %346 = getelementptr double, ptr %338, i64 %345
  %347 = load <2 x double>, ptr %346, align 8, !tbaa !9
  store <2 x double> %347, ptr %135, align 16, !tbaa !9
  %348 = mul nsw i64 %211, %45
  %349 = getelementptr double, ptr %342, i64 %348
  %350 = load <2 x double>, ptr %349, align 8, !tbaa !9
  store <2 x double> %350, ptr %161, align 16, !tbaa !9
  %351 = load double, ptr %203, align 8, !tbaa !9
  %352 = fneg double %351
  store double %352, ptr %164, align 16, !tbaa !9
  store double 0.000000e+00, ptr %165, align 8, !tbaa !9
  %353 = load double, ptr %184, align 8, !tbaa !9
  %354 = fneg double %353
  store double %354, ptr %138, align 16, !tbaa !9
  store double 0.000000e+00, ptr %139, align 8, !tbaa !9
  store double 0.000000e+00, ptr %166, align 16, !tbaa !9
  store double %352, ptr %167, align 8, !tbaa !9
  store double 0.000000e+00, ptr %141, align 16, !tbaa !9
  store double %354, ptr %142, align 8, !tbaa !9
  %355 = getelementptr double, ptr %44, i64 %210
  %356 = getelementptr double, ptr %355, i64 %193
  %357 = load <2 x double>, ptr %356, align 8, !tbaa !9
  store <2 x double> %357, ptr %29, align 16, !tbaa !9
  %358 = getelementptr double, ptr %53, i64 %210
  %359 = getelementptr double, ptr %358, i64 %194
  %360 = load <2 x double>, ptr %359, align 8, !tbaa !9
  store <2 x double> %360, ptr %169, align 16, !tbaa !9
  %361 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %362 = load i64, ptr %30, align 8, !tbaa !5
  %363 = icmp sgt i64 %362, 0
  br i1 %363, label %364, label %365

364:                                              ; preds = %336
  store i64 %362, ptr %21, align 8, !tbaa !5
  br label %365

365:                                              ; preds = %364, %336
  %366 = load i64, ptr %1, align 8, !tbaa !5
  %367 = icmp eq i64 %366, 0
  br i1 %367, label %370, label %368

368:                                              ; preds = %365
  %369 = call i32 @dlatdf_(ptr noundef nonnull %1, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %32, ptr noundef nonnull %33) #3
  br label %385

370:                                              ; preds = %365
  %371 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %372 = load double, ptr %35, align 8, !tbaa !9
  %373 = fcmp une double %372, 1.000000e+00
  br i1 %373, label %374, label %385

374:                                              ; preds = %370
  %375 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %375, ptr %24, align 8, !tbaa !5
  %.not13991458.us = icmp slt i64 %375, 1
  br i1 %.not13991458.us, label %._crit_edge1462.us, label %.lr.ph1461.us

.lr.ph1461.us:                                    ; preds = %374, %.lr.ph1461.us
  %.213591459.us = phi i64 [ %380, %.lr.ph1461.us ], [ 1, %374 ]
  %376 = mul nsw i64 %.213591459.us, %42
  %gep1455.us = getelementptr double, ptr %invariant.gep1483, i64 %376
  %377 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1455.us, ptr noundef nonnull @c__1) #3
  %378 = mul nsw i64 %.213591459.us, %51
  %gep1457.us = getelementptr double, ptr %invariant.gep1487, i64 %378
  %379 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1457.us, ptr noundef nonnull @c__1) #3
  %380 = add nuw nsw i64 %.213591459.us, 1
  %381 = load i64, ptr %24, align 8, !tbaa !5
  %.not1399.us.not = icmp slt i64 %.213591459.us, %381
  br i1 %.not1399.us.not, label %.lr.ph1461.us, label %._crit_edge1462.us.loopexit, !llvm.loop !15

._crit_edge1462.us.loopexit:                      ; preds = %.lr.ph1461.us
  %.pre1614 = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1462.us

._crit_edge1462.us:                               ; preds = %._crit_edge1462.us.loopexit, %374
  %382 = phi double [ %.pre1614, %._crit_edge1462.us.loopexit ], [ %372, %374 ]
  %383 = load double, ptr %16, align 8, !tbaa !9
  %384 = fmul double %382, %383
  store double %384, ptr %16, align 8, !tbaa !9
  br label %385

385:                                              ; preds = %._crit_edge1462.us, %370, %368
  %386 = load <2 x double>, ptr %29, align 16, !tbaa !9
  store <2 x double> %386, ptr %356, align 8, !tbaa !9
  %387 = load <2 x double>, ptr %169, align 16, !tbaa !9
  store <2 x double> %387, ptr %359, align 8, !tbaa !9
  %.not1400.us = icmp eq i64 %.213671513.us, 1
  br i1 %.not1400.us, label %392, label %388

388:                                              ; preds = %385
  %389 = add nsw i64 %210, -1
  store i64 %389, ptr %24, align 8, !tbaa !5
  %gep1490.us = getelementptr double, ptr %invariant.gep1481, i64 %337
  %390 = call i32 @f2c_dgemv(ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull @c_b27, ptr noundef %gep1490.us, ptr noundef nonnull %5, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b42, ptr noundef %gep1484.us, ptr noundef nonnull @c__1) #3
  store i64 %389, ptr %24, align 8, !tbaa !5
  %gep1494.us = getelementptr double, ptr %invariant.gep1485, i64 %341
  %391 = call i32 @f2c_dgemv(ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull @c_b27, ptr noundef %gep1494.us, ptr noundef nonnull %11, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b42, ptr noundef %gep1488.us, ptr noundef nonnull @c__1) #3
  br label %392

392:                                              ; preds = %388, %385
  br i1 %195, label %393, label %549

393:                                              ; preds = %392
  %394 = load i64, ptr %3, align 8, !tbaa !5
  %395 = sub nsw i64 %394, %176
  store i64 %395, ptr %24, align 8, !tbaa !5
  %396 = getelementptr double, ptr %355, i64 %198
  %397 = call i32 @f2c_dger(ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull @c_b42, ptr noundef nonnull %169, ptr noundef nonnull @c__1, ptr noundef %197, ptr noundef nonnull %7, ptr noundef %396, ptr noundef nonnull %9) #3
  %398 = load i64, ptr %3, align 8, !tbaa !5
  %399 = sub nsw i64 %398, %176
  store i64 %399, ptr %24, align 8, !tbaa !5
  %400 = getelementptr double, ptr %358, i64 %201
  %401 = call i32 @f2c_dger(ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull @c_b42, ptr noundef nonnull %169, ptr noundef nonnull @c__1, ptr noundef %200, ptr noundef nonnull %13, ptr noundef %400, ptr noundef nonnull %15) #3
  br label %549

402:                                              ; preds = %220
  %403 = mul nsw i64 %210, %36
  %404 = getelementptr double, ptr %38, i64 %210
  %405 = getelementptr double, ptr %404, i64 %403
  %406 = load double, ptr %405, align 8, !tbaa !9
  store double %406, ptr %26, align 16, !tbaa !9
  store double 0.000000e+00, ptr %133, align 8, !tbaa !9
  %407 = mul nsw i64 %210, %45
  %408 = getelementptr double, ptr %47, i64 %210
  %409 = getelementptr double, ptr %408, i64 %407
  %410 = load double, ptr %409, align 8, !tbaa !9
  store double %410, ptr %159, align 16, !tbaa !9
  store double 0.000000e+00, ptr %160, align 8, !tbaa !9
  store double 0.000000e+00, ptr %135, align 16, !tbaa !9
  store double %406, ptr %136, align 8, !tbaa !9
  store double 0.000000e+00, ptr %161, align 16, !tbaa !9
  store double %410, ptr %162, align 8, !tbaa !9
  %411 = load double, ptr %180, align 8, !tbaa !9
  %412 = load double, ptr %182, align 8, !tbaa !9
  %413 = insertelement <2 x double> poison, double %411, i64 0
  %414 = insertelement <2 x double> %413, double %412, i64 1
  %415 = fneg <2 x double> %414
  store <2 x double> %415, ptr %164, align 16, !tbaa !9
  %416 = load double, ptr %184, align 8, !tbaa !9
  %417 = load double, ptr %187, align 8, !tbaa !9
  %418 = insertelement <2 x double> poison, double %416, i64 0
  %419 = insertelement <2 x double> %418, double %417, i64 1
  %420 = fneg <2 x double> %419
  store <2 x double> %420, ptr %138, align 16, !tbaa !9
  %421 = load double, ptr %189, align 8, !tbaa !9
  %422 = load double, ptr %190, align 8, !tbaa !9
  %423 = insertelement <2 x double> poison, double %421, i64 0
  %424 = insertelement <2 x double> %423, double %422, i64 1
  %425 = fneg <2 x double> %424
  store <2 x double> %425, ptr %166, align 16, !tbaa !9
  store double 0.000000e+00, ptr %141, align 16, !tbaa !9
  %426 = load double, ptr %192, align 8, !tbaa !9
  %427 = fneg double %426
  store double %427, ptr %142, align 8, !tbaa !9
  %428 = getelementptr double, ptr %44, i64 %210
  %429 = getelementptr double, ptr %428, i64 %193
  %430 = load double, ptr %429, align 8, !tbaa !9
  store double %430, ptr %29, align 16, !tbaa !9
  %431 = getelementptr double, ptr %428, i64 %204
  %432 = load double, ptr %431, align 8, !tbaa !9
  store double %432, ptr %168, align 8, !tbaa !9
  %433 = getelementptr double, ptr %53, i64 %210
  %434 = getelementptr double, ptr %433, i64 %194
  %435 = load double, ptr %434, align 8, !tbaa !9
  store double %435, ptr %169, align 16, !tbaa !9
  %436 = getelementptr double, ptr %433, i64 %205
  %437 = load double, ptr %436, align 8, !tbaa !9
  store double %437, ptr %170, align 8, !tbaa !9
  %438 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %439 = load i64, ptr %30, align 8, !tbaa !5
  %440 = icmp sgt i64 %439, 0
  br i1 %440, label %441, label %442

441:                                              ; preds = %402
  store i64 %439, ptr %21, align 8, !tbaa !5
  br label %442

442:                                              ; preds = %441, %402
  %443 = load i64, ptr %1, align 8, !tbaa !5
  %444 = icmp eq i64 %443, 0
  br i1 %444, label %447, label %445

445:                                              ; preds = %442
  %446 = call i32 @dlatdf_(ptr noundef nonnull %1, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %32, ptr noundef nonnull %33) #3
  br label %462

447:                                              ; preds = %442
  %448 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %449 = load double, ptr %35, align 8, !tbaa !9
  %450 = fcmp une double %449, 1.000000e+00
  br i1 %450, label %451, label %462

451:                                              ; preds = %447
  %452 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %452, ptr %24, align 8, !tbaa !5
  %.not14011467.us = icmp slt i64 %452, 1
  br i1 %.not14011467.us, label %._crit_edge1471.us, label %.lr.ph1470.us

.lr.ph1470.us:                                    ; preds = %451, %.lr.ph1470.us
  %.113581468.us = phi i64 [ %457, %.lr.ph1470.us ], [ 1, %451 ]
  %453 = mul nsw i64 %.113581468.us, %42
  %gep1464.us = getelementptr double, ptr %invariant.gep1483, i64 %453
  %454 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1464.us, ptr noundef nonnull @c__1) #3
  %455 = mul nsw i64 %.113581468.us, %51
  %gep1466.us = getelementptr double, ptr %invariant.gep1487, i64 %455
  %456 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1466.us, ptr noundef nonnull @c__1) #3
  %457 = add nuw nsw i64 %.113581468.us, 1
  %458 = load i64, ptr %24, align 8, !tbaa !5
  %.not1401.us.not = icmp slt i64 %.113581468.us, %458
  br i1 %.not1401.us.not, label %.lr.ph1470.us, label %._crit_edge1471.us.loopexit, !llvm.loop !16

._crit_edge1471.us.loopexit:                      ; preds = %.lr.ph1470.us
  %.pre1615 = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1471.us

._crit_edge1471.us:                               ; preds = %._crit_edge1471.us.loopexit, %451
  %459 = phi double [ %.pre1615, %._crit_edge1471.us.loopexit ], [ %449, %451 ]
  %460 = load double, ptr %16, align 8, !tbaa !9
  %461 = fmul double %459, %460
  store double %461, ptr %16, align 8, !tbaa !9
  br label %462

462:                                              ; preds = %._crit_edge1471.us, %447, %445
  %463 = load double, ptr %29, align 16, !tbaa !9
  store double %463, ptr %429, align 8, !tbaa !9
  %464 = load double, ptr %168, align 8, !tbaa !9
  store double %464, ptr %431, align 8, !tbaa !9
  %465 = load double, ptr %169, align 16, !tbaa !9
  store double %465, ptr %434, align 8, !tbaa !9
  %466 = load double, ptr %170, align 8, !tbaa !9
  store double %466, ptr %436, align 8, !tbaa !9
  %.not1402.us = icmp eq i64 %.213671513.us, 1
  br i1 %.not1402.us, label %471, label %467

467:                                              ; preds = %462
  %468 = add nsw i64 %210, -1
  store i64 %468, ptr %24, align 8, !tbaa !5
  %gep1498.us = getelementptr double, ptr %invariant.gep1481, i64 %403
  %469 = call i32 @f2c_dger(ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b27, ptr noundef %gep1498.us, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef %gep1484.us, ptr noundef nonnull %9) #3
  store i64 %468, ptr %24, align 8, !tbaa !5
  %gep1502.us = getelementptr double, ptr %invariant.gep1485, i64 %407
  %470 = call i32 @f2c_dger(ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b27, ptr noundef %gep1502.us, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef %gep1488.us, ptr noundef nonnull %15) #3
  br label %471

471:                                              ; preds = %467, %462
  br i1 %195, label %472, label %549

472:                                              ; preds = %471
  %473 = load i64, ptr %3, align 8, !tbaa !5
  %474 = sub nsw i64 %473, %176
  store i64 %474, ptr %24, align 8, !tbaa !5
  %475 = getelementptr double, ptr %428, i64 %198
  %476 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %169, ptr noundef %197, ptr noundef nonnull %7, ptr noundef %475, ptr noundef nonnull %9) #3
  %477 = load i64, ptr %3, align 8, !tbaa !5
  %478 = sub nsw i64 %477, %176
  store i64 %478, ptr %24, align 8, !tbaa !5
  %479 = getelementptr double, ptr %433, i64 %201
  %480 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %169, ptr noundef %200, ptr noundef nonnull %13, ptr noundef %479, ptr noundef nonnull %15) #3
  %481 = load i64, ptr %3, align 8, !tbaa !5
  %482 = sub nsw i64 %481, %176
  store i64 %482, ptr %24, align 8, !tbaa !5
  %483 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %170, ptr noundef %206, ptr noundef nonnull %7, ptr noundef %475, ptr noundef nonnull %9) #3
  %484 = load i64, ptr %3, align 8, !tbaa !5
  %485 = sub nsw i64 %484, %176
  store i64 %485, ptr %24, align 8, !tbaa !5
  %486 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %170, ptr noundef %207, ptr noundef nonnull %13, ptr noundef %479, ptr noundef nonnull %15) #3
  br label %549

487:                                              ; preds = %208
  %488 = mul nsw i64 %210, %36
  %489 = getelementptr double, ptr %38, i64 %210
  %490 = getelementptr double, ptr %489, i64 %488
  %491 = load double, ptr %490, align 8, !tbaa !9
  store double %491, ptr %26, align 16, !tbaa !9
  %492 = mul nsw i64 %210, %45
  %493 = getelementptr double, ptr %47, i64 %210
  %494 = getelementptr double, ptr %493, i64 %492
  %495 = load double, ptr %494, align 8, !tbaa !9
  store double %495, ptr %133, align 8, !tbaa !9
  %496 = load double, ptr %203, align 8, !tbaa !9
  %497 = load double, ptr %184, align 8, !tbaa !9
  %498 = insertelement <2 x double> poison, double %496, i64 0
  %499 = insertelement <2 x double> %498, double %497, i64 1
  %500 = fneg <2 x double> %499
  store <2 x double> %500, ptr %135, align 16, !tbaa !9
  %501 = getelementptr double, ptr %44, i64 %210
  %502 = getelementptr double, ptr %501, i64 %193
  %503 = load double, ptr %502, align 8, !tbaa !9
  store double %503, ptr %29, align 16, !tbaa !9
  %504 = getelementptr double, ptr %53, i64 %210
  %505 = getelementptr double, ptr %504, i64 %194
  %506 = load double, ptr %505, align 8, !tbaa !9
  store double %506, ptr %168, align 8, !tbaa !9
  %507 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %508 = load i64, ptr %30, align 8, !tbaa !5
  %509 = icmp sgt i64 %508, 0
  br i1 %509, label %510, label %511

510:                                              ; preds = %487
  store i64 %508, ptr %21, align 8, !tbaa !5
  br label %511

511:                                              ; preds = %510, %487
  %512 = load i64, ptr %1, align 8, !tbaa !5
  %513 = icmp eq i64 %512, 0
  br i1 %513, label %516, label %514

514:                                              ; preds = %511
  %515 = call i32 @dlatdf_(ptr noundef nonnull %1, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %32, ptr noundef nonnull %33) #3
  br label %531

516:                                              ; preds = %511
  %517 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %518 = load double, ptr %35, align 8, !tbaa !9
  %519 = fcmp une double %518, 1.000000e+00
  br i1 %519, label %520, label %531

520:                                              ; preds = %516
  %521 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %521, ptr %24, align 8, !tbaa !5
  %.not14031476.us = icmp slt i64 %521, 1
  br i1 %.not14031476.us, label %._crit_edge1480.us, label %.lr.ph1479.us

.lr.ph1479.us:                                    ; preds = %520, %.lr.ph1479.us
  %.013571477.us = phi i64 [ %526, %.lr.ph1479.us ], [ 1, %520 ]
  %522 = mul nsw i64 %.013571477.us, %42
  %gep1473.us = getelementptr double, ptr %invariant.gep1483, i64 %522
  %523 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1473.us, ptr noundef nonnull @c__1) #3
  %524 = mul nsw i64 %.013571477.us, %51
  %gep1475.us = getelementptr double, ptr %invariant.gep1487, i64 %524
  %525 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1475.us, ptr noundef nonnull @c__1) #3
  %526 = add nuw nsw i64 %.013571477.us, 1
  %527 = load i64, ptr %24, align 8, !tbaa !5
  %.not1403.us.not = icmp slt i64 %.013571477.us, %527
  br i1 %.not1403.us.not, label %.lr.ph1479.us, label %._crit_edge1480.us.loopexit, !llvm.loop !17

._crit_edge1480.us.loopexit:                      ; preds = %.lr.ph1479.us
  %.pre1616 = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1480.us

._crit_edge1480.us:                               ; preds = %._crit_edge1480.us.loopexit, %520
  %528 = phi double [ %.pre1616, %._crit_edge1480.us.loopexit ], [ %518, %520 ]
  %529 = load double, ptr %16, align 8, !tbaa !9
  %530 = fmul double %528, %529
  store double %530, ptr %16, align 8, !tbaa !9
  br label %531

531:                                              ; preds = %._crit_edge1480.us, %516, %514
  %532 = load double, ptr %29, align 16, !tbaa !9
  store double %532, ptr %502, align 8, !tbaa !9
  %533 = load double, ptr %168, align 8, !tbaa !9
  store double %533, ptr %505, align 8, !tbaa !9
  %.not1404.us = icmp eq i64 %.213671513.us, 1
  br i1 %.not1404.us, label %539, label %534

534:                                              ; preds = %531
  %535 = fneg double %532
  store double %535, ptr %34, align 8, !tbaa !9
  %536 = add nsw i64 %210, -1
  store i64 %536, ptr %24, align 8, !tbaa !5
  %gep1506.us = getelementptr double, ptr %invariant.gep1481, i64 %488
  %537 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %34, ptr noundef %gep1506.us, ptr noundef nonnull @c__1, ptr noundef %gep1484.us, ptr noundef nonnull @c__1) #3
  store i64 %536, ptr %24, align 8, !tbaa !5
  %gep1510.us = getelementptr double, ptr %invariant.gep1485, i64 %492
  %538 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %34, ptr noundef %gep1510.us, ptr noundef nonnull @c__1, ptr noundef %gep1488.us, ptr noundef nonnull @c__1) #3
  br label %539

539:                                              ; preds = %534, %531
  br i1 %195, label %540, label %549

540:                                              ; preds = %539
  %541 = load i64, ptr %3, align 8, !tbaa !5
  %542 = sub nsw i64 %541, %176
  store i64 %542, ptr %24, align 8, !tbaa !5
  %543 = getelementptr double, ptr %501, i64 %198
  %544 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %168, ptr noundef %197, ptr noundef nonnull %7, ptr noundef %543, ptr noundef nonnull %9) #3
  %545 = load i64, ptr %3, align 8, !tbaa !5
  %546 = sub nsw i64 %545, %176
  store i64 %546, ptr %24, align 8, !tbaa !5
  %547 = getelementptr double, ptr %504, i64 %201
  %548 = call i32 @f2c_daxpy(ptr noundef nonnull %24, ptr noundef nonnull %168, ptr noundef %200, ptr noundef nonnull %13, ptr noundef %547, ptr noundef nonnull %15) #3
  br label %549

549:                                              ; preds = %540, %539, %472, %471, %393, %392, %325, %324, %224
  %550 = add nsw i64 %.213671513.us, -1
  %551 = icmp sgt i64 %.213671513.us, 1
  br i1 %551, label %208, label %..loopexit1419_crit_edge.us, !llvm.loop !18

.lr.ph1438.us:                                    ; preds = %225
  %552 = mul nsw i64 %256, %255
  %553 = add nsw i64 %552, 1
  %554 = getelementptr double, ptr %44, i64 %210
  %555 = getelementptr double, ptr %53, i64 %210
  br label %258

.lr.ph1452.us:                                    ; preds = %299
  %556 = mul nsw i64 %301, %300
  %557 = add nsw i64 %556, 1
  %558 = getelementptr double, ptr %44, i64 %210
  %559 = getelementptr double, ptr %53, i64 %210
  br label %303

..loopexit1419_crit_edge.us:                      ; preds = %549
  %560 = add nuw nsw i64 %.213631525.us, 1
  br i1 %195, label %.lr.ph1515.us, label %.loopexit, !llvm.loop !19

561:                                              ; preds = %._crit_edge1429
  store i64 %104, ptr %23, align 8, !tbaa !5
  %.not13861608 = icmp slt i64 %104, 1
  br i1 %.not13861608, label %.loopexit, label %.lr.ph1611

.lr.ph1611:                                       ; preds = %561
  %562 = add nuw nsw i64 %104, 2
  %invariant.gep1583 = getelementptr i8, ptr %41, i64 8
  %invariant.gep1585 = getelementptr i8, ptr %50, i64 8
  %563 = getelementptr inbounds i8, ptr %26, i64 8
  %564 = getelementptr inbounds i8, ptr %26, i64 32
  %565 = getelementptr inbounds i8, ptr %26, i64 48
  %566 = getelementptr inbounds i8, ptr %26, i64 64
  %567 = getelementptr inbounds i8, ptr %26, i64 72
  %568 = getelementptr inbounds i8, ptr %26, i64 104
  %569 = getelementptr inbounds i8, ptr %26, i64 120
  %570 = getelementptr inbounds i8, ptr %26, i64 144
  %571 = getelementptr inbounds i8, ptr %26, i64 152
  %572 = getelementptr inbounds i8, ptr %26, i64 160
  %573 = getelementptr inbounds i8, ptr %26, i64 176
  %574 = getelementptr inbounds i8, ptr %26, i64 208
  %575 = getelementptr inbounds i8, ptr %26, i64 216
  %576 = getelementptr inbounds i8, ptr %26, i64 232
  %577 = getelementptr inbounds i8, ptr %26, i64 248
  %578 = add i64 %45, 1
  %579 = getelementptr inbounds i8, ptr %26, i64 256
  %580 = getelementptr inbounds i8, ptr %26, i64 264
  %581 = getelementptr inbounds i8, ptr %26, i64 288
  %582 = getelementptr inbounds i8, ptr %26, i64 328
  %583 = getelementptr inbounds i8, ptr %26, i64 360
  %584 = getelementptr inbounds i8, ptr %26, i64 400
  %585 = getelementptr inbounds i8, ptr %26, i64 408
  %586 = getelementptr inbounds i8, ptr %26, i64 416
  %587 = getelementptr inbounds i8, ptr %26, i64 432
  %588 = getelementptr inbounds i8, ptr %26, i64 472
  %589 = getelementptr inbounds i8, ptr %26, i64 488
  %590 = getelementptr inbounds i8, ptr %26, i64 504
  %invariant.gep1541 = getelementptr i8, ptr %44, i64 8
  %invariant.gep1542 = getelementptr i8, ptr %53, i64 8
  %591 = getelementptr inbounds i8, ptr %26, i64 16
  %592 = getelementptr inbounds i8, ptr %26, i64 24
  %593 = getelementptr inbounds i8, ptr %26, i64 80
  %594 = getelementptr inbounds i8, ptr %26, i64 88
  %595 = getelementptr inbounds i8, ptr %26, i64 128
  %596 = getelementptr inbounds i8, ptr %26, i64 136
  %597 = getelementptr inbounds i8, ptr %26, i64 192
  %598 = getelementptr inbounds i8, ptr %26, i64 200
  %599 = getelementptr inbounds i8, ptr %29, i64 8
  %600 = getelementptr inbounds i8, ptr %29, i64 16
  %601 = getelementptr inbounds i8, ptr %29, i64 24
  %602 = add i64 %36, 1
  %.not13871603 = icmp slt i64 %124, %562
  br label %603

603:                                              ; preds = %.lr.ph1611, %._crit_edge1607
  %.313681609 = phi i64 [ 1, %.lr.ph1611 ], [ %606, %._crit_edge1607 ]
  %604 = getelementptr inbounds i64, ptr %54, i64 %.313681609
  %605 = load i64, ptr %604, align 8, !tbaa !5
  %606 = add nuw i64 %.313681609, 1
  %607 = sub i64 %606, %605
  store i64 %607, ptr %27, align 8, !tbaa !5
  store i64 %562, ptr %24, align 8, !tbaa !5
  br i1 %.not13871603, label %._crit_edge1607, label %.lr.ph1606

.lr.ph1606:                                       ; preds = %603
  %608 = add nsw i64 %605, 1
  %609 = mul nsw i64 %605, %36
  %610 = getelementptr double, ptr %38, i64 %605
  %611 = getelementptr double, ptr %610, i64 %609
  %612 = mul nsw i64 %608, %36
  %613 = getelementptr double, ptr %610, i64 %612
  %614 = getelementptr double, ptr %38, i64 %608
  %615 = getelementptr double, ptr %614, i64 %609
  %616 = getelementptr double, ptr %614, i64 %612
  %617 = mul i64 %605, %578
  %618 = getelementptr inbounds double, ptr %47, i64 %617
  %619 = mul nsw i64 %608, %45
  %620 = getelementptr double, ptr %47, i64 %605
  %621 = getelementptr double, ptr %620, i64 %619
  %622 = getelementptr double, ptr %47, i64 %608
  %623 = getelementptr double, ptr %622, i64 %619
  %624 = getelementptr double, ptr %44, i64 %605
  %625 = getelementptr double, ptr %53, i64 %605
  %626 = getelementptr double, ptr %625, i64 %51
  %627 = icmp slt i64 %.313681609, %104
  %628 = mul nsw i64 %606, %36
  %629 = getelementptr double, ptr %610, i64 %628
  %630 = getelementptr double, ptr %44, i64 %606
  %631 = mul nsw i64 %606, %45
  %632 = getelementptr double, ptr %620, i64 %631
  %633 = mul i64 %605, %602
  %634 = getelementptr inbounds double, ptr %38, i64 %633
  br label %635

635:                                              ; preds = %.lr.ph1606, %967
  %.313641604 = phi i64 [ %124, %.lr.ph1606 ], [ %968, %967 ]
  %636 = getelementptr inbounds i64, ptr %54, i64 %.313641604
  %637 = load i64, ptr %636, align 8, !tbaa !5
  %638 = add nsw i64 %637, 1
  %639 = getelementptr i64, ptr %19, i64 %.313641604
  %640 = load i64, ptr %639, align 8, !tbaa !5
  %641 = sub i64 %640, %637
  store i64 %641, ptr %28, align 8, !tbaa !5
  %642 = load i64, ptr %27, align 8, !tbaa !5
  %643 = shl i64 %641, 1
  %644 = mul i64 %643, %642
  store i64 %644, ptr %31, align 8, !tbaa !5
  %645 = icmp eq i64 %642, 1
  %646 = icmp eq i64 %641, 1
  %or.cond9 = select i1 %645, i1 %646, i1 false
  br i1 %or.cond9, label %647, label %707

647:                                              ; preds = %635
  %648 = load double, ptr %634, align 8, !tbaa !9
  store double %648, ptr %26, align 16, !tbaa !9
  %649 = mul nsw i64 %637, %39
  %650 = getelementptr double, ptr %41, i64 %637
  %651 = getelementptr double, ptr %650, i64 %649
  %652 = load double, ptr %651, align 8, !tbaa !9
  %653 = fneg double %652
  store double %653, ptr %563, align 8, !tbaa !9
  %654 = load double, ptr %618, align 8, !tbaa !9
  store double %654, ptr %566, align 16, !tbaa !9
  %655 = mul nsw i64 %637, %48
  %656 = getelementptr double, ptr %50, i64 %637
  %657 = getelementptr double, ptr %656, i64 %655
  %658 = load double, ptr %657, align 8, !tbaa !9
  %659 = fneg double %658
  store double %659, ptr %567, align 8, !tbaa !9
  %660 = mul nsw i64 %637, %42
  %661 = getelementptr double, ptr %624, i64 %660
  %662 = load double, ptr %661, align 8, !tbaa !9
  store double %662, ptr %29, align 16, !tbaa !9
  %663 = mul nsw i64 %637, %51
  %664 = getelementptr double, ptr %625, i64 %663
  %665 = load double, ptr %664, align 8, !tbaa !9
  store double %665, ptr %599, align 8, !tbaa !9
  %666 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %667 = load i64, ptr %30, align 8, !tbaa !5
  %668 = icmp sgt i64 %667, 0
  br i1 %668, label %669, label %670

669:                                              ; preds = %647
  store i64 %667, ptr %21, align 8, !tbaa !5
  br label %670

670:                                              ; preds = %669, %647
  %671 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %672 = load double, ptr %35, align 8, !tbaa !9
  %673 = fcmp une double %672, 1.000000e+00
  br i1 %673, label %674, label %685

674:                                              ; preds = %670
  %675 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %675, ptr %25, align 8, !tbaa !5
  %.not13931578 = icmp slt i64 %675, 1
  br i1 %.not13931578, label %._crit_edge1582, label %.lr.ph1581

.lr.ph1581:                                       ; preds = %674, %.lr.ph1581
  %.61579 = phi i64 [ %680, %.lr.ph1581 ], [ 1, %674 ]
  %676 = mul nsw i64 %.61579, %42
  %gep1575 = getelementptr double, ptr %invariant.gep1541, i64 %676
  %677 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1575, ptr noundef nonnull @c__1) #3
  %678 = mul nsw i64 %.61579, %51
  %gep1577 = getelementptr double, ptr %invariant.gep1542, i64 %678
  %679 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1577, ptr noundef nonnull @c__1) #3
  %680 = add nuw nsw i64 %.61579, 1
  %681 = load i64, ptr %25, align 8, !tbaa !5
  %.not1393.not = icmp slt i64 %.61579, %681
  br i1 %.not1393.not, label %.lr.ph1581, label %._crit_edge1582.loopexit, !llvm.loop !20

._crit_edge1582.loopexit:                         ; preds = %.lr.ph1581
  %.pre1620 = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1582

._crit_edge1582:                                  ; preds = %._crit_edge1582.loopexit, %674
  %682 = phi double [ %.pre1620, %._crit_edge1582.loopexit ], [ %672, %674 ]
  %683 = load double, ptr %16, align 8, !tbaa !9
  %684 = fmul double %682, %683
  store double %684, ptr %16, align 8, !tbaa !9
  br label %685

685:                                              ; preds = %._crit_edge1582, %670
  %686 = load double, ptr %29, align 16, !tbaa !9
  store double %686, ptr %661, align 8, !tbaa !9
  %687 = load double, ptr %599, align 8, !tbaa !9
  store double %687, ptr %664, align 8, !tbaa !9
  %688 = icmp sgt i64 %.313641604, %562
  br i1 %688, label %689, label %694

689:                                              ; preds = %685
  store double %686, ptr %34, align 8, !tbaa !9
  %690 = add nsw i64 %637, -1
  store i64 %690, ptr %25, align 8, !tbaa !5
  %gep1600 = getelementptr double, ptr %invariant.gep1583, i64 %649
  %691 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep1600, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  %692 = load double, ptr %599, align 8, !tbaa !9
  store double %692, ptr %34, align 8, !tbaa !9
  store i64 %690, ptr %25, align 8, !tbaa !5
  %gep1602 = getelementptr double, ptr %invariant.gep1585, i64 %655
  %693 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep1602, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  br label %694

694:                                              ; preds = %689, %685
  br i1 %627, label %695, label %967

695:                                              ; preds = %694
  %696 = load double, ptr %29, align 16, !tbaa !9
  %697 = fneg double %696
  store double %697, ptr %34, align 8, !tbaa !9
  %698 = load i64, ptr %2, align 8, !tbaa !5
  %699 = sub nsw i64 %698, %.313681609
  store i64 %699, ptr %25, align 8, !tbaa !5
  %700 = getelementptr double, ptr %630, i64 %660
  %701 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %629, ptr noundef nonnull %5, ptr noundef %700, ptr noundef nonnull @c__1) #3
  %702 = load double, ptr %599, align 8, !tbaa !9
  %703 = fneg double %702
  store double %703, ptr %34, align 8, !tbaa !9
  %704 = load i64, ptr %2, align 8, !tbaa !5
  %705 = sub nsw i64 %704, %.313681609
  store i64 %705, ptr %25, align 8, !tbaa !5
  %706 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %632, ptr noundef nonnull %11, ptr noundef %700, ptr noundef nonnull @c__1) #3
  br label %967

707:                                              ; preds = %635
  %708 = icmp eq i64 %641, 2
  %or.cond11 = select i1 %645, i1 %708, i1 false
  br i1 %or.cond11, label %709, label %782

709:                                              ; preds = %707
  %710 = load double, ptr %634, align 8, !tbaa !9
  store double %710, ptr %26, align 16, !tbaa !9
  store double 0.000000e+00, ptr %563, align 8, !tbaa !9
  %711 = mul nsw i64 %637, %39
  %712 = getelementptr double, ptr %41, i64 %637
  %713 = getelementptr double, ptr %712, i64 %711
  %714 = load <2 x double>, ptr %713, align 8, !tbaa !9
  %715 = fneg <2 x double> %714
  store <2 x double> %715, ptr %591, align 16, !tbaa !9
  store double 0.000000e+00, ptr %566, align 16, !tbaa !9
  store double %710, ptr %567, align 8, !tbaa !9
  %716 = mul nsw i64 %638, %39
  %717 = getelementptr double, ptr %712, i64 %716
  %718 = load <2 x double>, ptr %717, align 8, !tbaa !9
  %719 = fneg <2 x double> %718
  store <2 x double> %719, ptr %593, align 16, !tbaa !9
  %720 = load double, ptr %618, align 8, !tbaa !9
  store double %720, ptr %595, align 16, !tbaa !9
  store double 0.000000e+00, ptr %596, align 8, !tbaa !9
  %721 = mul nsw i64 %637, %48
  %722 = getelementptr double, ptr %50, i64 %637
  %723 = getelementptr double, ptr %722, i64 %721
  %724 = load double, ptr %723, align 8, !tbaa !9
  %725 = fneg double %724
  store double %725, ptr %570, align 16, !tbaa !9
  store double 0.000000e+00, ptr %571, align 8, !tbaa !9
  store double 0.000000e+00, ptr %597, align 16, !tbaa !9
  store double %720, ptr %598, align 8, !tbaa !9
  %726 = mul nsw i64 %638, %48
  %727 = getelementptr double, ptr %722, i64 %726
  %728 = load <2 x double>, ptr %727, align 8, !tbaa !9
  %729 = fneg <2 x double> %728
  store <2 x double> %729, ptr %574, align 16, !tbaa !9
  %730 = mul nsw i64 %637, %42
  %731 = getelementptr double, ptr %624, i64 %730
  %732 = load double, ptr %731, align 8, !tbaa !9
  store double %732, ptr %29, align 16, !tbaa !9
  %733 = mul nsw i64 %638, %42
  %734 = getelementptr double, ptr %624, i64 %733
  %735 = load double, ptr %734, align 8, !tbaa !9
  store double %735, ptr %599, align 8, !tbaa !9
  %736 = mul nsw i64 %637, %51
  %737 = getelementptr double, ptr %625, i64 %736
  %738 = load double, ptr %737, align 8, !tbaa !9
  store double %738, ptr %600, align 16, !tbaa !9
  %739 = mul nsw i64 %638, %51
  %740 = getelementptr double, ptr %625, i64 %739
  %741 = load double, ptr %740, align 8, !tbaa !9
  store double %741, ptr %601, align 8, !tbaa !9
  %742 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %743 = load i64, ptr %30, align 8, !tbaa !5
  %744 = icmp sgt i64 %743, 0
  br i1 %744, label %745, label %746

745:                                              ; preds = %709
  store i64 %743, ptr %21, align 8, !tbaa !5
  br label %746

746:                                              ; preds = %745, %709
  %747 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %748 = load double, ptr %35, align 8, !tbaa !9
  %749 = fcmp une double %748, 1.000000e+00
  br i1 %749, label %750, label %761

750:                                              ; preds = %746
  %751 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %751, ptr %25, align 8, !tbaa !5
  %.not13921569 = icmp slt i64 %751, 1
  br i1 %.not13921569, label %._crit_edge1573, label %.lr.ph1572

.lr.ph1572:                                       ; preds = %750, %.lr.ph1572
  %.71570 = phi i64 [ %756, %.lr.ph1572 ], [ 1, %750 ]
  %752 = mul nsw i64 %.71570, %42
  %gep1566 = getelementptr double, ptr %invariant.gep1541, i64 %752
  %753 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1566, ptr noundef nonnull @c__1) #3
  %754 = mul nsw i64 %.71570, %51
  %gep1568 = getelementptr double, ptr %invariant.gep1542, i64 %754
  %755 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1568, ptr noundef nonnull @c__1) #3
  %756 = add nuw nsw i64 %.71570, 1
  %757 = load i64, ptr %25, align 8, !tbaa !5
  %.not1392.not = icmp slt i64 %.71570, %757
  br i1 %.not1392.not, label %.lr.ph1572, label %._crit_edge1573.loopexit, !llvm.loop !21

._crit_edge1573.loopexit:                         ; preds = %.lr.ph1572
  %.pre1619 = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1573

._crit_edge1573:                                  ; preds = %._crit_edge1573.loopexit, %750
  %758 = phi double [ %.pre1619, %._crit_edge1573.loopexit ], [ %748, %750 ]
  %759 = load double, ptr %16, align 8, !tbaa !9
  %760 = fmul double %758, %759
  store double %760, ptr %16, align 8, !tbaa !9
  br label %761

761:                                              ; preds = %._crit_edge1573, %746
  %762 = load double, ptr %29, align 16, !tbaa !9
  store double %762, ptr %731, align 8, !tbaa !9
  %763 = load double, ptr %599, align 8, !tbaa !9
  store double %763, ptr %734, align 8, !tbaa !9
  %764 = load double, ptr %600, align 16, !tbaa !9
  store double %764, ptr %737, align 8, !tbaa !9
  %765 = load double, ptr %601, align 8, !tbaa !9
  store double %765, ptr %740, align 8, !tbaa !9
  %766 = icmp sgt i64 %.313641604, %562
  br i1 %766, label %767, label %773

767:                                              ; preds = %761
  %768 = add nsw i64 %637, -1
  store i64 %768, ptr %25, align 8, !tbaa !5
  %gep1592 = getelementptr double, ptr %invariant.gep1583, i64 %711
  %769 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %29, ptr noundef %gep1592, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  store i64 %768, ptr %25, align 8, !tbaa !5
  %gep1594 = getelementptr double, ptr %invariant.gep1583, i64 %716
  %770 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %599, ptr noundef %gep1594, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  store i64 %768, ptr %25, align 8, !tbaa !5
  %gep1596 = getelementptr double, ptr %invariant.gep1585, i64 %721
  %771 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %600, ptr noundef %gep1596, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  store i64 %768, ptr %25, align 8, !tbaa !5
  %gep1598 = getelementptr double, ptr %invariant.gep1585, i64 %726
  %772 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %601, ptr noundef %gep1598, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  br label %773

773:                                              ; preds = %767, %761
  br i1 %627, label %774, label %967

774:                                              ; preds = %773
  %775 = load i64, ptr %2, align 8, !tbaa !5
  %776 = sub nsw i64 %775, %.313681609
  store i64 %776, ptr %25, align 8, !tbaa !5
  %777 = getelementptr double, ptr %630, i64 %730
  %778 = call i32 @f2c_dger(ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull @c_b27, ptr noundef %629, ptr noundef nonnull %5, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef %777, ptr noundef nonnull %9) #3
  %779 = load i64, ptr %2, align 8, !tbaa !5
  %780 = sub nsw i64 %779, %.313681609
  store i64 %780, ptr %25, align 8, !tbaa !5
  %781 = call i32 @f2c_dger(ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull @c_b27, ptr noundef %632, ptr noundef nonnull %11, ptr noundef nonnull %600, ptr noundef nonnull @c__1, ptr noundef %777, ptr noundef nonnull %9) #3
  br label %967

782:                                              ; preds = %707
  %783 = icmp eq i64 %642, 2
  %or.cond13 = select i1 %783, i1 %646, i1 false
  br i1 %or.cond13, label %784, label %844

784:                                              ; preds = %782
  %785 = load double, ptr %611, align 8, !tbaa !9
  store double %785, ptr %26, align 16, !tbaa !9
  %786 = load double, ptr %613, align 8, !tbaa !9
  store double %786, ptr %563, align 8, !tbaa !9
  %787 = mul nsw i64 %637, %39
  %788 = getelementptr double, ptr %41, i64 %637
  %789 = getelementptr double, ptr %788, i64 %787
  %790 = load double, ptr %789, align 8, !tbaa !9
  %791 = fneg double %790
  store double %791, ptr %591, align 16, !tbaa !9
  store double 0.000000e+00, ptr %592, align 8, !tbaa !9
  %792 = load double, ptr %615, align 8, !tbaa !9
  store double %792, ptr %566, align 16, !tbaa !9
  %793 = load double, ptr %616, align 8, !tbaa !9
  store double %793, ptr %567, align 8, !tbaa !9
  store double 0.000000e+00, ptr %593, align 16, !tbaa !9
  store double %791, ptr %594, align 8, !tbaa !9
  %794 = load double, ptr %618, align 8, !tbaa !9
  store double %794, ptr %595, align 16, !tbaa !9
  %795 = load double, ptr %621, align 8, !tbaa !9
  store double %795, ptr %596, align 8, !tbaa !9
  %796 = mul nsw i64 %637, %48
  %797 = getelementptr double, ptr %50, i64 %637
  %798 = getelementptr double, ptr %797, i64 %796
  %799 = load double, ptr %798, align 8, !tbaa !9
  %800 = fneg double %799
  store double %800, ptr %570, align 16, !tbaa !9
  store double 0.000000e+00, ptr %571, align 8, !tbaa !9
  store double 0.000000e+00, ptr %597, align 16, !tbaa !9
  %801 = load double, ptr %623, align 8, !tbaa !9
  store double %801, ptr %598, align 8, !tbaa !9
  store double 0.000000e+00, ptr %574, align 16, !tbaa !9
  store double %800, ptr %575, align 8, !tbaa !9
  %802 = mul nsw i64 %637, %42
  %803 = getelementptr double, ptr %624, i64 %802
  %804 = load <2 x double>, ptr %803, align 8, !tbaa !9
  store <2 x double> %804, ptr %29, align 16, !tbaa !9
  %805 = mul nsw i64 %637, %51
  %806 = getelementptr double, ptr %625, i64 %805
  %807 = load <2 x double>, ptr %806, align 8, !tbaa !9
  store <2 x double> %807, ptr %600, align 16, !tbaa !9
  %808 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %809 = load i64, ptr %30, align 8, !tbaa !5
  %810 = icmp sgt i64 %809, 0
  br i1 %810, label %811, label %812

811:                                              ; preds = %784
  store i64 %809, ptr %21, align 8, !tbaa !5
  br label %812

812:                                              ; preds = %811, %784
  %813 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %814 = load double, ptr %35, align 8, !tbaa !9
  %815 = fcmp une double %814, 1.000000e+00
  br i1 %815, label %816, label %827

816:                                              ; preds = %812
  %817 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %817, ptr %25, align 8, !tbaa !5
  %.not13911560 = icmp slt i64 %817, 1
  br i1 %.not13911560, label %._crit_edge1564, label %.lr.ph1563

.lr.ph1563:                                       ; preds = %816, %.lr.ph1563
  %.81561 = phi i64 [ %822, %.lr.ph1563 ], [ 1, %816 ]
  %818 = mul nsw i64 %.81561, %42
  %gep1557 = getelementptr double, ptr %invariant.gep1541, i64 %818
  %819 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1557, ptr noundef nonnull @c__1) #3
  %820 = mul nsw i64 %.81561, %51
  %gep1559 = getelementptr double, ptr %invariant.gep1542, i64 %820
  %821 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1559, ptr noundef nonnull @c__1) #3
  %822 = add nuw nsw i64 %.81561, 1
  %823 = load i64, ptr %25, align 8, !tbaa !5
  %.not1391.not = icmp slt i64 %.81561, %823
  br i1 %.not1391.not, label %.lr.ph1563, label %._crit_edge1564.loopexit, !llvm.loop !22

._crit_edge1564.loopexit:                         ; preds = %.lr.ph1563
  %.pre1618 = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1564

._crit_edge1564:                                  ; preds = %._crit_edge1564.loopexit, %816
  %824 = phi double [ %.pre1618, %._crit_edge1564.loopexit ], [ %814, %816 ]
  %825 = load double, ptr %16, align 8, !tbaa !9
  %826 = fmul double %824, %825
  store double %826, ptr %16, align 8, !tbaa !9
  br label %827

827:                                              ; preds = %._crit_edge1564, %812
  %828 = load <2 x double>, ptr %29, align 16, !tbaa !9
  store <2 x double> %828, ptr %803, align 8, !tbaa !9
  %829 = load <2 x double>, ptr %600, align 16, !tbaa !9
  store <2 x double> %829, ptr %806, align 8, !tbaa !9
  %830 = icmp sgt i64 %.313641604, %562
  br i1 %830, label %831, label %835

831:                                              ; preds = %827
  %832 = add nsw i64 %637, -1
  store i64 %832, ptr %25, align 8, !tbaa !5
  %gep1588 = getelementptr double, ptr %invariant.gep1583, i64 %787
  %833 = call i32 @f2c_dger(ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef %gep1588, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  store i64 %832, ptr %25, align 8, !tbaa !5
  %gep1590 = getelementptr double, ptr %invariant.gep1585, i64 %796
  %834 = call i32 @f2c_dger(ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull @c_b42, ptr noundef nonnull %600, ptr noundef nonnull @c__1, ptr noundef %gep1590, ptr noundef nonnull @c__1, ptr noundef %626, ptr noundef nonnull %15) #3
  br label %835

835:                                              ; preds = %831, %827
  br i1 %627, label %836, label %967

836:                                              ; preds = %835
  %837 = load i64, ptr %2, align 8, !tbaa !5
  %838 = sub nsw i64 %837, %.313681609
  store i64 %838, ptr %25, align 8, !tbaa !5
  %839 = getelementptr double, ptr %630, i64 %802
  %840 = call i32 @f2c_dgemv(ptr noundef nonnull @.str.1, ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull @c_b27, ptr noundef %629, ptr noundef nonnull %5, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b42, ptr noundef %839, ptr noundef nonnull @c__1) #3
  %841 = load i64, ptr %2, align 8, !tbaa !5
  %842 = sub nsw i64 %841, %.313681609
  store i64 %842, ptr %25, align 8, !tbaa !5
  %843 = call i32 @f2c_dgemv(ptr noundef nonnull @.str.1, ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull @c_b27, ptr noundef %632, ptr noundef nonnull %11, ptr noundef nonnull %600, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b42, ptr noundef %839, ptr noundef nonnull @c__1) #3
  br label %967

844:                                              ; preds = %782
  %or.cond15 = select i1 %783, i1 %708, i1 false
  br i1 %or.cond15, label %845, label %967

845:                                              ; preds = %844
  %846 = call i32 @dlaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__8, ptr noundef nonnull @c__8, ptr noundef nonnull @c_b56, ptr noundef nonnull @c_b56, ptr noundef nonnull %26, ptr noundef nonnull @c__8) #3
  %847 = load double, ptr %611, align 8, !tbaa !9
  store double %847, ptr %26, align 16, !tbaa !9
  %848 = load double, ptr %613, align 8, !tbaa !9
  store double %848, ptr %563, align 8, !tbaa !9
  %849 = mul nsw i64 %637, %39
  %850 = getelementptr double, ptr %41, i64 %637
  %851 = getelementptr double, ptr %850, i64 %849
  %852 = load double, ptr %851, align 8, !tbaa !9
  %853 = fneg double %852
  store double %853, ptr %564, align 16, !tbaa !9
  %854 = getelementptr double, ptr %41, i64 %638
  %855 = getelementptr double, ptr %854, i64 %849
  %856 = load double, ptr %855, align 8, !tbaa !9
  %857 = fneg double %856
  store double %857, ptr %565, align 16, !tbaa !9
  %858 = load double, ptr %615, align 8, !tbaa !9
  store double %858, ptr %566, align 16, !tbaa !9
  %859 = load double, ptr %616, align 8, !tbaa !9
  store double %859, ptr %567, align 8, !tbaa !9
  store double %853, ptr %568, align 8, !tbaa !9
  store double %857, ptr %569, align 8, !tbaa !9
  store double %847, ptr %570, align 16, !tbaa !9
  store double %848, ptr %571, align 8, !tbaa !9
  %860 = mul nsw i64 %638, %39
  %861 = getelementptr double, ptr %850, i64 %860
  %862 = load double, ptr %861, align 8, !tbaa !9
  %863 = fneg double %862
  store double %863, ptr %572, align 16, !tbaa !9
  %864 = getelementptr double, ptr %854, i64 %860
  %865 = load double, ptr %864, align 8, !tbaa !9
  %866 = fneg double %865
  store double %866, ptr %573, align 16, !tbaa !9
  store double %858, ptr %574, align 16, !tbaa !9
  store double %859, ptr %575, align 8, !tbaa !9
  store double %863, ptr %576, align 8, !tbaa !9
  store double %866, ptr %577, align 8, !tbaa !9
  %867 = load double, ptr %618, align 8, !tbaa !9
  store double %867, ptr %579, align 16, !tbaa !9
  %868 = load double, ptr %621, align 8, !tbaa !9
  store double %868, ptr %580, align 8, !tbaa !9
  %869 = mul nsw i64 %637, %48
  %870 = getelementptr double, ptr %50, i64 %637
  %871 = getelementptr double, ptr %870, i64 %869
  %872 = load double, ptr %871, align 8, !tbaa !9
  %873 = fneg double %872
  store double %873, ptr %581, align 16, !tbaa !9
  %874 = load double, ptr %623, align 8, !tbaa !9
  store double %874, ptr %582, align 8, !tbaa !9
  store double %873, ptr %583, align 8, !tbaa !9
  store double %867, ptr %584, align 16, !tbaa !9
  store double %868, ptr %585, align 8, !tbaa !9
  %875 = mul nsw i64 %638, %48
  %876 = getelementptr double, ptr %870, i64 %875
  %877 = load double, ptr %876, align 8, !tbaa !9
  %878 = fneg double %877
  store double %878, ptr %586, align 16, !tbaa !9
  %879 = getelementptr double, ptr %50, i64 %638
  %880 = getelementptr double, ptr %879, i64 %875
  %881 = load double, ptr %880, align 8, !tbaa !9
  %882 = fneg double %881
  store double %882, ptr %587, align 16, !tbaa !9
  store double %874, ptr %588, align 8, !tbaa !9
  store double %878, ptr %589, align 8, !tbaa !9
  store double %882, ptr %590, align 8, !tbaa !9
  %883 = load i64, ptr %27, align 8, !tbaa !5
  %884 = load i64, ptr %28, align 8, !tbaa !5
  %885 = add nsw i64 %884, -1
  store i64 %885, ptr %25, align 8, !tbaa !5
  %.not13881534 = icmp slt i64 %884, 1
  br i1 %.not13881534, label %._crit_edge1540, label %.lr.ph1539.preheader

.lr.ph1539.preheader:                             ; preds = %845
  %886 = mul nsw i64 %884, %883
  %887 = add nsw i64 %886, 1
  br label %.lr.ph1539

.lr.ph1539:                                       ; preds = %.lr.ph1539.preheader, %.lr.ph1539
  %.21537 = phi i64 [ %902, %.lr.ph1539 ], [ 0, %.lr.ph1539.preheader ]
  %.213511536 = phi i64 [ %901, %.lr.ph1539 ], [ %887, %.lr.ph1539.preheader ]
  %.91535 = phi i64 [ %900, %.lr.ph1539 ], [ 1, %.lr.ph1539.preheader ]
  %888 = add nsw i64 %.21537, %637
  %889 = mul nsw i64 %888, %42
  %890 = getelementptr double, ptr %624, i64 %889
  %891 = add nsw i64 %.91535, -1
  %892 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %891
  %893 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef %890, ptr noundef nonnull @c__1, ptr noundef nonnull %892, ptr noundef nonnull @c__1) #3
  %894 = mul nsw i64 %888, %51
  %895 = getelementptr double, ptr %625, i64 %894
  %896 = add nsw i64 %.213511536, -1
  %897 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %896
  %898 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef %895, ptr noundef nonnull @c__1, ptr noundef nonnull %897, ptr noundef nonnull @c__1) #3
  %899 = load i64, ptr %27, align 8, !tbaa !5
  %900 = add nsw i64 %899, %.91535
  %901 = add nsw i64 %899, %.213511536
  %902 = add nuw nsw i64 %.21537, 1
  %903 = load i64, ptr %25, align 8, !tbaa !5
  %.not1388.not = icmp slt i64 %.21537, %903
  br i1 %.not1388.not, label %.lr.ph1539, label %._crit_edge1540, !llvm.loop !23

._crit_edge1540:                                  ; preds = %.lr.ph1539, %845
  %904 = call i32 @dgetc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %30) #3
  %905 = load i64, ptr %30, align 8, !tbaa !5
  %906 = icmp sgt i64 %905, 0
  br i1 %906, label %907, label %908

907:                                              ; preds = %._crit_edge1540
  store i64 %905, ptr %21, align 8, !tbaa !5
  br label %908

908:                                              ; preds = %907, %._crit_edge1540
  %909 = call i32 @dgesc2_(ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull @c__8, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %35) #3
  %910 = load double, ptr %35, align 8, !tbaa !9
  %911 = fcmp une double %910, 1.000000e+00
  br i1 %911, label %912, label %923

912:                                              ; preds = %908
  %913 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %913, ptr %25, align 8, !tbaa !5
  %.not13891544 = icmp slt i64 %913, 1
  br i1 %.not13891544, label %._crit_edge1548, label %.lr.ph1547

.lr.ph1547:                                       ; preds = %912, %.lr.ph1547
  %.101545 = phi i64 [ %918, %.lr.ph1547 ], [ 1, %912 ]
  %914 = mul nsw i64 %.101545, %42
  %gep = getelementptr double, ptr %invariant.gep1541, i64 %914
  %915 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep, ptr noundef nonnull @c__1) #3
  %916 = mul nsw i64 %.101545, %51
  %gep1543 = getelementptr double, ptr %invariant.gep1542, i64 %916
  %917 = call i32 @f2c_dscal(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep1543, ptr noundef nonnull @c__1) #3
  %918 = add nuw nsw i64 %.101545, 1
  %919 = load i64, ptr %25, align 8, !tbaa !5
  %.not1389.not = icmp slt i64 %.101545, %919
  br i1 %.not1389.not, label %.lr.ph1547, label %._crit_edge1548.loopexit, !llvm.loop !24

._crit_edge1548.loopexit:                         ; preds = %.lr.ph1547
  %.pre1617 = load double, ptr %35, align 8, !tbaa !9
  br label %._crit_edge1548

._crit_edge1548:                                  ; preds = %._crit_edge1548.loopexit, %912
  %920 = phi double [ %.pre1617, %._crit_edge1548.loopexit ], [ %910, %912 ]
  %921 = load double, ptr %16, align 8, !tbaa !9
  %922 = fmul double %920, %921
  store double %922, ptr %16, align 8, !tbaa !9
  br label %923

923:                                              ; preds = %._crit_edge1548, %908
  %924 = load i64, ptr %27, align 8, !tbaa !5
  %925 = load i64, ptr %28, align 8, !tbaa !5
  %926 = add nsw i64 %925, -1
  store i64 %926, ptr %25, align 8, !tbaa !5
  %.not13901549 = icmp slt i64 %925, 1
  br i1 %.not13901549, label %._crit_edge1555, label %.lr.ph1554.preheader

.lr.ph1554.preheader:                             ; preds = %923
  %927 = mul nsw i64 %925, %924
  %928 = add nsw i64 %927, 1
  br label %.lr.ph1554

.lr.ph1554:                                       ; preds = %.lr.ph1554.preheader, %.lr.ph1554
  %.31552 = phi i64 [ %943, %.lr.ph1554 ], [ 0, %.lr.ph1554.preheader ]
  %.313521551 = phi i64 [ %942, %.lr.ph1554 ], [ %928, %.lr.ph1554.preheader ]
  %.111550 = phi i64 [ %941, %.lr.ph1554 ], [ 1, %.lr.ph1554.preheader ]
  %929 = add nsw i64 %.111550, -1
  %930 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %929
  %931 = add nsw i64 %.31552, %637
  %932 = mul nsw i64 %931, %42
  %933 = getelementptr double, ptr %624, i64 %932
  %934 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef nonnull %930, ptr noundef nonnull @c__1, ptr noundef %933, ptr noundef nonnull @c__1) #3
  %935 = add nsw i64 %.313521551, -1
  %936 = getelementptr inbounds [8 x double], ptr %29, i64 0, i64 %935
  %937 = mul nsw i64 %931, %51
  %938 = getelementptr double, ptr %625, i64 %937
  %939 = call i32 @f2c_dcopy(ptr noundef nonnull %27, ptr noundef nonnull %936, ptr noundef nonnull @c__1, ptr noundef %938, ptr noundef nonnull @c__1) #3
  %940 = load i64, ptr %27, align 8, !tbaa !5
  %941 = add nsw i64 %940, %.111550
  %942 = add nsw i64 %940, %.313521551
  %943 = add nuw nsw i64 %.31552, 1
  %944 = load i64, ptr %25, align 8, !tbaa !5
  %.not1390.not = icmp slt i64 %.31552, %944
  br i1 %.not1390.not, label %.lr.ph1554, label %._crit_edge1555, !llvm.loop !25

._crit_edge1555:                                  ; preds = %.lr.ph1554, %923
  %945 = icmp sgt i64 %.313641604, %562
  br i1 %945, label %946, label %954

946:                                              ; preds = %._crit_edge1555
  %947 = add nsw i64 %637, -1
  store i64 %947, ptr %25, align 8, !tbaa !5
  %948 = mul nsw i64 %637, %42
  %949 = getelementptr double, ptr %624, i64 %948
  %gep1584 = getelementptr double, ptr %invariant.gep1583, i64 %849
  %950 = call i32 @f2c_dgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull @c_b42, ptr noundef %949, ptr noundef nonnull %9, ptr noundef %gep1584, ptr noundef nonnull %7, ptr noundef nonnull @c_b42, ptr noundef %626, ptr noundef nonnull %15) #3
  store i64 %947, ptr %25, align 8, !tbaa !5
  %951 = mul nsw i64 %637, %51
  %952 = getelementptr double, ptr %625, i64 %951
  %gep1586 = getelementptr double, ptr %invariant.gep1585, i64 %869
  %953 = call i32 @f2c_dgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull @c_b42, ptr noundef %952, ptr noundef nonnull %15, ptr noundef %gep1586, ptr noundef nonnull %13, ptr noundef nonnull @c_b42, ptr noundef %626, ptr noundef nonnull %15) #3
  br label %954

954:                                              ; preds = %946, %._crit_edge1555
  br i1 %627, label %955, label %967

955:                                              ; preds = %954
  %956 = load i64, ptr %2, align 8, !tbaa !5
  %957 = sub nsw i64 %956, %.313681609
  store i64 %957, ptr %25, align 8, !tbaa !5
  %958 = mul nsw i64 %637, %42
  %959 = getelementptr double, ptr %624, i64 %958
  %960 = getelementptr double, ptr %630, i64 %958
  %961 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b27, ptr noundef %629, ptr noundef nonnull %5, ptr noundef %959, ptr noundef nonnull %9, ptr noundef nonnull @c_b42, ptr noundef %960, ptr noundef nonnull %9) #3
  %962 = load i64, ptr %2, align 8, !tbaa !5
  %963 = sub nsw i64 %962, %.313681609
  store i64 %963, ptr %25, align 8, !tbaa !5
  %964 = mul nsw i64 %637, %51
  %965 = getelementptr double, ptr %625, i64 %964
  %966 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b27, ptr noundef %632, ptr noundef nonnull %11, ptr noundef %965, ptr noundef nonnull %15, ptr noundef nonnull @c_b42, ptr noundef %960, ptr noundef nonnull %9) #3
  br label %967

967:                                              ; preds = %695, %694, %836, %835, %954, %955, %844, %773, %774
  %968 = add nsw i64 %.313641604, -1
  %969 = load i64, ptr %24, align 8, !tbaa !5
  %.not1387.not = icmp sgt i64 %.313641604, %969
  br i1 %.not1387.not, label %635, label %._crit_edge1607, !llvm.loop !26

._crit_edge1607:                                  ; preds = %967, %603
  %.not1386.not = icmp slt i64 %.313681609, %104
  br i1 %.not1386.not, label %603, label %.loopexit, !llvm.loop !27

.loopexit:                                        ; preds = %..loopexit1419_crit_edge.us, %._crit_edge1607, %.lr.ph1527, %130, %561, %.thread1414
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #3
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %26) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #3
  ret i32 0
}

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

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

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

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

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

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

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

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

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

declare i32 @f2c_dgemv(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 i32 @dlaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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


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