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

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

%struct.complex = type { float, float }

@.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__2 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__5 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c__1 = external hidden global i64, align 8
@c_b44 = external hidden global %struct.complex, align 4
@c_b45 = external hidden global %struct.complex, align 4

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

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

153:                                              ; preds = %149
  %154 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -1, ptr %154, align 8, !tbaa !9
  br label %170

155:                                              ; preds = %149, %22
  %156 = load i64, ptr %83, align 8, !tbaa !9
  %157 = icmp ne i64 %156, 0
  br i1 %157, label %158, label %169

158:                                              ; preds = %155
  %159 = load ptr, ptr %25, align 8, !tbaa !5
  %160 = load i64, ptr %159, align 8, !tbaa !9
  %161 = icmp slt i64 %160, 0
  br i1 %161, label %166, label %162

162:                                              ; preds = %158
  %163 = load ptr, ptr %25, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  %165 = icmp sgt i64 %164, 4
  br i1 %165, label %166, label %168

166:                                              ; preds = %162, %158
  %167 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -2, ptr %167, align 8, !tbaa !9
  br label %168

168:                                              ; preds = %166, %162
  br label %169

169:                                              ; preds = %168, %155
  br label %170

170:                                              ; preds = %169, %153
  %171 = load ptr, ptr %45, align 8, !tbaa !5
  %172 = load i64, ptr %171, align 8, !tbaa !9
  %173 = icmp eq i64 %172, 0
  br i1 %173, label %174, label %284

174:                                              ; preds = %170
  %175 = load ptr, ptr %26, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = icmp sle i64 %176, 0
  br i1 %177, label %178, label %180

178:                                              ; preds = %174
  %179 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -3, ptr %179, align 8, !tbaa !9
  br label %283

180:                                              ; preds = %174
  %181 = load ptr, ptr %27, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = icmp sle i64 %182, 0
  br i1 %183, label %184, label %186

184:                                              ; preds = %180
  %185 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -4, ptr %185, align 8, !tbaa !9
  br label %282

186:                                              ; preds = %180
  %187 = load ptr, ptr %29, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = load ptr, ptr %26, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = icmp sge i64 1, %190
  br i1 %191, label %192, label %193

192:                                              ; preds = %186
  br label %196

193:                                              ; preds = %186
  %194 = load ptr, ptr %26, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  br label %196

196:                                              ; preds = %193, %192
  %197 = phi i64 [ 1, %192 ], [ %195, %193 ]
  %198 = icmp slt i64 %188, %197
  br i1 %198, label %199, label %201

199:                                              ; preds = %196
  %200 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -6, ptr %200, align 8, !tbaa !9
  br label %281

201:                                              ; preds = %196
  %202 = load ptr, ptr %31, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = load ptr, ptr %27, align 8, !tbaa !5
  %205 = load i64, ptr %204, align 8, !tbaa !9
  %206 = icmp sge i64 1, %205
  br i1 %206, label %207, label %208

207:                                              ; preds = %201
  br label %211

208:                                              ; preds = %201
  %209 = load ptr, ptr %27, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  br label %211

211:                                              ; preds = %208, %207
  %212 = phi i64 [ 1, %207 ], [ %210, %208 ]
  %213 = icmp slt i64 %203, %212
  br i1 %213, label %214, label %216

214:                                              ; preds = %211
  %215 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -8, ptr %215, align 8, !tbaa !9
  br label %280

216:                                              ; preds = %211
  %217 = load ptr, ptr %33, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = load ptr, ptr %26, align 8, !tbaa !5
  %220 = load i64, ptr %219, align 8, !tbaa !9
  %221 = icmp sge i64 1, %220
  br i1 %221, label %222, label %223

222:                                              ; preds = %216
  br label %226

223:                                              ; preds = %216
  %224 = load ptr, ptr %26, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  br label %226

226:                                              ; preds = %223, %222
  %227 = phi i64 [ 1, %222 ], [ %225, %223 ]
  %228 = icmp slt i64 %218, %227
  br i1 %228, label %229, label %231

229:                                              ; preds = %226
  %230 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -10, ptr %230, align 8, !tbaa !9
  br label %279

231:                                              ; preds = %226
  %232 = load ptr, ptr %35, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = load ptr, ptr %26, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = icmp sge i64 1, %235
  br i1 %236, label %237, label %238

237:                                              ; preds = %231
  br label %241

238:                                              ; preds = %231
  %239 = load ptr, ptr %26, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  br label %241

241:                                              ; preds = %238, %237
  %242 = phi i64 [ 1, %237 ], [ %240, %238 ]
  %243 = icmp slt i64 %233, %242
  br i1 %243, label %244, label %246

244:                                              ; preds = %241
  %245 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -12, ptr %245, align 8, !tbaa !9
  br label %278

246:                                              ; preds = %241
  %247 = load ptr, ptr %37, align 8, !tbaa !5
  %248 = load i64, ptr %247, align 8, !tbaa !9
  %249 = load ptr, ptr %27, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = icmp sge i64 1, %250
  br i1 %251, label %252, label %253

252:                                              ; preds = %246
  br label %256

253:                                              ; preds = %246
  %254 = load ptr, ptr %27, align 8, !tbaa !5
  %255 = load i64, ptr %254, align 8, !tbaa !9
  br label %256

256:                                              ; preds = %253, %252
  %257 = phi i64 [ 1, %252 ], [ %255, %253 ]
  %258 = icmp slt i64 %248, %257
  br i1 %258, label %259, label %261

259:                                              ; preds = %256
  %260 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -14, ptr %260, align 8, !tbaa !9
  br label %277

261:                                              ; preds = %256
  %262 = load ptr, ptr %39, align 8, !tbaa !5
  %263 = load i64, ptr %262, align 8, !tbaa !9
  %264 = load ptr, ptr %26, align 8, !tbaa !5
  %265 = load i64, ptr %264, align 8, !tbaa !9
  %266 = icmp sge i64 1, %265
  br i1 %266, label %267, label %268

267:                                              ; preds = %261
  br label %271

268:                                              ; preds = %261
  %269 = load ptr, ptr %26, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  br label %271

271:                                              ; preds = %268, %267
  %272 = phi i64 [ 1, %267 ], [ %270, %268 ]
  %273 = icmp slt i64 %263, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %271
  %275 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -16, ptr %275, align 8, !tbaa !9
  br label %276

276:                                              ; preds = %274, %271
  br label %277

277:                                              ; preds = %276, %259
  br label %278

278:                                              ; preds = %277, %244
  br label %279

279:                                              ; preds = %278, %229
  br label %280

280:                                              ; preds = %279, %214
  br label %281

281:                                              ; preds = %280, %199
  br label %282

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

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

284:                                              ; preds = %283, %170
  %285 = load ptr, ptr %45, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = icmp eq i64 %286, 0
  br i1 %287, label %288, label %337

288:                                              ; preds = %284
  %289 = load i64, ptr %83, align 8, !tbaa !9
  %290 = icmp ne i64 %289, 0
  br i1 %290, label %291, label %317

291:                                              ; preds = %288
  %292 = load ptr, ptr %25, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  %294 = icmp eq i64 %293, 1
  br i1 %294, label %299, label %295

295:                                              ; preds = %291
  %296 = load ptr, ptr %25, align 8, !tbaa !5
  %297 = load i64, ptr %296, align 8, !tbaa !9
  %298 = icmp eq i64 %297, 2
  br i1 %298, label %299, label %315

299:                                              ; preds = %295, %291
  store i64 1, ptr %58, align 8, !tbaa !9
  %300 = load ptr, ptr %26, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  %302 = shl i64 %301, 1
  %303 = load ptr, ptr %27, align 8, !tbaa !5
  %304 = load i64, ptr %303, align 8, !tbaa !9
  %305 = mul nsw i64 %302, %304
  store i64 %305, ptr %59, align 8, !tbaa !9
  %306 = load i64, ptr %58, align 8, !tbaa !9
  %307 = load i64, ptr %59, align 8, !tbaa !9
  %308 = icmp sge i64 %306, %307
  br i1 %308, label %309, label %311

309:                                              ; preds = %299
  %310 = load i64, ptr %58, align 8, !tbaa !9
  br label %313

311:                                              ; preds = %299
  %312 = load i64, ptr %59, align 8, !tbaa !9
  br label %313

313:                                              ; preds = %311, %309
  %314 = phi i64 [ %310, %309 ], [ %312, %311 ]
  store i64 %314, ptr %78, align 8, !tbaa !9
  br label %316

315:                                              ; preds = %295
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %316

316:                                              ; preds = %315, %313
  br label %318

317:                                              ; preds = %288
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %318

318:                                              ; preds = %317, %316
  %319 = load i64, ptr %78, align 8, !tbaa !9
  %320 = sitofp i64 %319 to float
  %321 = load ptr, ptr %42, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.complex, ptr %321, i64 1
  %323 = getelementptr inbounds %struct.complex, ptr %322, i32 0, i32 0
  store float %320, ptr %323, align 4, !tbaa !11
  %324 = load ptr, ptr %42, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.complex, ptr %324, i64 1
  %326 = getelementptr inbounds %struct.complex, ptr %325, i32 0, i32 1
  store float 0.000000e+00, ptr %326, align 4, !tbaa !14
  %327 = load ptr, ptr %43, align 8, !tbaa !5
  %328 = load i64, ptr %327, align 8, !tbaa !9
  %329 = load i64, ptr %78, align 8, !tbaa !9
  %330 = icmp slt i64 %328, %329
  br i1 %330, label %331, label %336

331:                                              ; preds = %318
  %332 = load i64, ptr %85, align 8, !tbaa !9
  %333 = icmp ne i64 %332, 0
  br i1 %333, label %336, label %334

334:                                              ; preds = %331
  %335 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -20, ptr %335, align 8, !tbaa !9
  br label %336

336:                                              ; preds = %334, %331, %318
  br label %337

337:                                              ; preds = %336, %284
  %338 = load ptr, ptr %45, align 8, !tbaa !5
  %339 = load i64, ptr %338, align 8, !tbaa !9
  %340 = icmp ne i64 %339, 0
  br i1 %340, label %341, label %346

341:                                              ; preds = %337
  %342 = load ptr, ptr %45, align 8, !tbaa !5
  %343 = load i64, ptr %342, align 8, !tbaa !9
  %344 = sub nsw i64 0, %343
  store i64 %344, ptr %58, align 8, !tbaa !9
  %345 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %58)
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1631

346:                                              ; preds = %337
  %347 = load i64, ptr %85, align 8, !tbaa !9
  %348 = icmp ne i64 %347, 0
  br i1 %348, label %349, label %350

349:                                              ; preds = %346
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1631

350:                                              ; preds = %346
  br label %351

351:                                              ; preds = %350
  %352 = load ptr, ptr %26, align 8, !tbaa !5
  %353 = load i64, ptr %352, align 8, !tbaa !9
  %354 = icmp eq i64 %353, 0
  br i1 %354, label %359, label %355

355:                                              ; preds = %351
  %356 = load ptr, ptr %27, align 8, !tbaa !5
  %357 = load i64, ptr %356, align 8, !tbaa !9
  %358 = icmp eq i64 %357, 0
  br i1 %358, label %359, label %371

359:                                              ; preds = %355, %351
  %360 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %360, align 4, !tbaa !15
  %361 = load i64, ptr %83, align 8, !tbaa !9
  %362 = icmp ne i64 %361, 0
  br i1 %362, label %363, label %370

363:                                              ; preds = %359
  %364 = load ptr, ptr %25, align 8, !tbaa !5
  %365 = load i64, ptr %364, align 8, !tbaa !9
  %366 = icmp ne i64 %365, 0
  br i1 %366, label %367, label %369

367:                                              ; preds = %363
  %368 = load ptr, ptr %41, align 8, !tbaa !5
  store float 0.000000e+00, ptr %368, align 4, !tbaa !15
  br label %369

369:                                              ; preds = %367, %363
  br label %370

370:                                              ; preds = %369, %359
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1631

371:                                              ; preds = %355
  %372 = load ptr, ptr %24, align 8, !tbaa !5
  %373 = load ptr, ptr %26, align 8, !tbaa !5
  %374 = load ptr, ptr %27, align 8, !tbaa !5
  %375 = call i64 @ilaenv_(ptr noundef @c__2, ptr noundef @.str.2, ptr noundef %372, ptr noundef %373, ptr noundef %374, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %375, ptr %70, align 8, !tbaa !9
  %376 = load ptr, ptr %24, align 8, !tbaa !5
  %377 = load ptr, ptr %26, align 8, !tbaa !5
  %378 = load ptr, ptr %27, align 8, !tbaa !5
  %379 = call i64 @ilaenv_(ptr noundef @c__5, ptr noundef @.str.2, ptr noundef %376, ptr noundef %377, ptr noundef %378, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %379, ptr %71, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  store i64 0, ptr %76, align 8, !tbaa !9
  %380 = load i64, ptr %83, align 8, !tbaa !9
  %381 = icmp ne i64 %380, 0
  br i1 %381, label %382, label %414

382:                                              ; preds = %371
  %383 = load ptr, ptr %25, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  %385 = icmp sge i64 %384, 3
  br i1 %385, label %386, label %404

386:                                              ; preds = %382
  %387 = load ptr, ptr %25, align 8, !tbaa !5
  %388 = load i64, ptr %387, align 8, !tbaa !9
  %389 = sub nsw i64 %388, 2
  store i64 %389, ptr %76, align 8, !tbaa !9
  %390 = load ptr, ptr %26, align 8, !tbaa !5
  %391 = load ptr, ptr %27, align 8, !tbaa !5
  %392 = load ptr, ptr %32, align 8, !tbaa !5
  %393 = load i64, ptr %51, align 8, !tbaa !9
  %394 = getelementptr inbounds %struct.complex, ptr %392, i64 %393
  %395 = load ptr, ptr %33, align 8, !tbaa !5
  %396 = call i32 @claset_(ptr noundef @.str.3, ptr noundef %390, ptr noundef %391, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %394, ptr noundef %395)
  %397 = load ptr, ptr %26, align 8, !tbaa !5
  %398 = load ptr, ptr %27, align 8, !tbaa !5
  %399 = load ptr, ptr %38, align 8, !tbaa !5
  %400 = load i64, ptr %57, align 8, !tbaa !9
  %401 = getelementptr inbounds %struct.complex, ptr %399, i64 %400
  %402 = load ptr, ptr %39, align 8, !tbaa !5
  %403 = call i32 @claset_(ptr noundef @.str.3, ptr noundef %397, ptr noundef %398, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %401, ptr noundef %402)
  br label %413

404:                                              ; preds = %382
  %405 = load ptr, ptr %25, align 8, !tbaa !5
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = icmp sge i64 %406, 1
  br i1 %407, label %408, label %412

408:                                              ; preds = %404
  %409 = load i64, ptr %83, align 8, !tbaa !9
  %410 = icmp ne i64 %409, 0
  br i1 %410, label %411, label %412

411:                                              ; preds = %408
  store i64 2, ptr %84, align 8, !tbaa !9
  br label %412

412:                                              ; preds = %411, %408, %404
  br label %413

413:                                              ; preds = %412, %386
  br label %414

414:                                              ; preds = %413, %371
  %415 = load i64, ptr %70, align 8, !tbaa !9
  %416 = icmp sle i64 %415, 1
  br i1 %416, label %417, label %420

417:                                              ; preds = %414
  %418 = load i64, ptr %71, align 8, !tbaa !9
  %419 = icmp sle i64 %418, 1
  br i1 %419, label %430, label %420

420:                                              ; preds = %417, %414
  %421 = load i64, ptr %70, align 8, !tbaa !9
  %422 = load ptr, ptr %26, align 8, !tbaa !5
  %423 = load i64, ptr %422, align 8, !tbaa !9
  %424 = icmp sge i64 %421, %423
  br i1 %424, label %425, label %613

425:                                              ; preds = %420
  %426 = load i64, ptr %71, align 8, !tbaa !9
  %427 = load ptr, ptr %27, align 8, !tbaa !5
  %428 = load i64, ptr %427, align 8, !tbaa !9
  %429 = icmp sge i64 %426, %428
  br i1 %429, label %430, label %613

430:                                              ; preds = %425, %417
  %431 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %431, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %432

432:                                              ; preds = %609, %430
  %433 = load i64, ptr %82, align 8, !tbaa !9
  %434 = load i64, ptr %58, align 8, !tbaa !9
  %435 = icmp sle i64 %433, %434
  br i1 %435, label %436, label %612

436:                                              ; preds = %432
  %437 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %437, align 4, !tbaa !15
  store float 0.000000e+00, ptr %80, align 4, !tbaa !15
  store float 1.000000e+00, ptr %75, align 4, !tbaa !15
  %438 = load ptr, ptr %26, align 8, !tbaa !5
  %439 = load i64, ptr %438, align 8, !tbaa !9
  %440 = load ptr, ptr %27, align 8, !tbaa !5
  %441 = load i64, ptr %440, align 8, !tbaa !9
  %442 = mul nsw i64 %439, %441
  store i64 %442, ptr %74, align 8, !tbaa !9
  %443 = load ptr, ptr %24, align 8, !tbaa !5
  %444 = load ptr, ptr %26, align 8, !tbaa !5
  %445 = load ptr, ptr %27, align 8, !tbaa !5
  %446 = load ptr, ptr %28, align 8, !tbaa !5
  %447 = load i64, ptr %47, align 8, !tbaa !9
  %448 = getelementptr inbounds %struct.complex, ptr %446, i64 %447
  %449 = load ptr, ptr %29, align 8, !tbaa !5
  %450 = load ptr, ptr %30, align 8, !tbaa !5
  %451 = load i64, ptr %49, align 8, !tbaa !9
  %452 = getelementptr inbounds %struct.complex, ptr %450, i64 %451
  %453 = load ptr, ptr %31, align 8, !tbaa !5
  %454 = load ptr, ptr %32, align 8, !tbaa !5
  %455 = load i64, ptr %51, align 8, !tbaa !9
  %456 = getelementptr inbounds %struct.complex, ptr %454, i64 %455
  %457 = load ptr, ptr %33, align 8, !tbaa !5
  %458 = load ptr, ptr %34, align 8, !tbaa !5
  %459 = load i64, ptr %53, align 8, !tbaa !9
  %460 = getelementptr inbounds %struct.complex, ptr %458, i64 %459
  %461 = load ptr, ptr %35, align 8, !tbaa !5
  %462 = load ptr, ptr %36, align 8, !tbaa !5
  %463 = load i64, ptr %55, align 8, !tbaa !9
  %464 = getelementptr inbounds %struct.complex, ptr %462, i64 %463
  %465 = load ptr, ptr %37, align 8, !tbaa !5
  %466 = load ptr, ptr %38, align 8, !tbaa !5
  %467 = load i64, ptr %57, align 8, !tbaa !9
  %468 = getelementptr inbounds %struct.complex, ptr %466, i64 %467
  %469 = load ptr, ptr %39, align 8, !tbaa !5
  %470 = load ptr, ptr %40, align 8, !tbaa !5
  %471 = load ptr, ptr %45, align 8, !tbaa !5
  %472 = call i32 @ctgsy2_(ptr noundef %443, ptr noundef %76, ptr noundef %444, ptr noundef %445, ptr noundef %448, ptr noundef %449, ptr noundef %452, ptr noundef %453, ptr noundef %456, ptr noundef %457, ptr noundef %460, ptr noundef %461, ptr noundef %464, ptr noundef %465, ptr noundef %468, ptr noundef %469, ptr noundef %470, ptr noundef %75, ptr noundef %80, ptr noundef %471)
  %473 = load float, ptr %80, align 4, !tbaa !15
  %474 = fcmp une float %473, 0.000000e+00
  br i1 %474, label %475, label %517

475:                                              ; preds = %436
  %476 = load ptr, ptr %25, align 8, !tbaa !5
  %477 = load i64, ptr %476, align 8, !tbaa !9
  %478 = icmp eq i64 %477, 1
  br i1 %478, label %483, label %479

479:                                              ; preds = %475
  %480 = load ptr, ptr %25, align 8, !tbaa !5
  %481 = load i64, ptr %480, align 8, !tbaa !9
  %482 = icmp eq i64 %481, 3
  br i1 %482, label %483, label %502

483:                                              ; preds = %479, %475
  %484 = load ptr, ptr %26, align 8, !tbaa !5
  %485 = load i64, ptr %484, align 8, !tbaa !9
  %486 = shl i64 %485, 1
  %487 = load ptr, ptr %27, align 8, !tbaa !5
  %488 = load i64, ptr %487, align 8, !tbaa !9
  %489 = mul nsw i64 %486, %488
  %490 = sitofp i64 %489 to float
  %491 = fpext float %490 to double
  %492 = call double @sqrt(double noundef %491) #4
  %493 = load float, ptr %80, align 4, !tbaa !15
  %494 = fpext float %493 to double
  %495 = load float, ptr %75, align 4, !tbaa !15
  %496 = fpext float %495 to double
  %497 = call double @sqrt(double noundef %496) #4
  %498 = fmul double %494, %497
  %499 = fdiv double %492, %498
  %500 = fptrunc double %499 to float
  %501 = load ptr, ptr %41, align 8, !tbaa !5
  store float %500, ptr %501, align 4, !tbaa !15
  br label %516

502:                                              ; preds = %479
  %503 = load i64, ptr %74, align 8, !tbaa !9
  %504 = sitofp i64 %503 to float
  %505 = fpext float %504 to double
  %506 = call double @sqrt(double noundef %505) #4
  %507 = load float, ptr %80, align 4, !tbaa !15
  %508 = fpext float %507 to double
  %509 = load float, ptr %75, align 4, !tbaa !15
  %510 = fpext float %509 to double
  %511 = call double @sqrt(double noundef %510) #4
  %512 = fmul double %508, %511
  %513 = fdiv double %506, %512
  %514 = fptrunc double %513 to float
  %515 = load ptr, ptr %41, align 8, !tbaa !5
  store float %514, ptr %515, align 4, !tbaa !15
  br label %516

516:                                              ; preds = %502, %483
  br label %517

517:                                              ; preds = %516, %436
  %518 = load i64, ptr %84, align 8, !tbaa !9
  %519 = icmp eq i64 %518, 2
  br i1 %519, label %520, label %572

520:                                              ; preds = %517
  %521 = load i64, ptr %82, align 8, !tbaa !9
  %522 = icmp eq i64 %521, 1
  br i1 %522, label %523, label %572

523:                                              ; preds = %520
  %524 = load i64, ptr %83, align 8, !tbaa !9
  %525 = icmp ne i64 %524, 0
  br i1 %525, label %526, label %529

526:                                              ; preds = %523
  %527 = load ptr, ptr %25, align 8, !tbaa !5
  %528 = load i64, ptr %527, align 8, !tbaa !9
  store i64 %528, ptr %76, align 8, !tbaa !9
  br label %529

529:                                              ; preds = %526, %523
  %530 = load ptr, ptr %40, align 8, !tbaa !5
  %531 = load float, ptr %530, align 4, !tbaa !15
  store float %531, ptr %79, align 4, !tbaa !15
  %532 = load ptr, ptr %26, align 8, !tbaa !5
  %533 = load ptr, ptr %27, align 8, !tbaa !5
  %534 = load ptr, ptr %32, align 8, !tbaa !5
  %535 = load i64, ptr %51, align 8, !tbaa !9
  %536 = getelementptr inbounds %struct.complex, ptr %534, i64 %535
  %537 = load ptr, ptr %33, align 8, !tbaa !5
  %538 = load ptr, ptr %42, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.complex, ptr %538, i64 1
  %540 = load ptr, ptr %26, align 8, !tbaa !5
  %541 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %532, ptr noundef %533, ptr noundef %536, ptr noundef %537, ptr noundef %539, ptr noundef %540)
  %542 = load ptr, ptr %26, align 8, !tbaa !5
  %543 = load ptr, ptr %27, align 8, !tbaa !5
  %544 = load ptr, ptr %38, align 8, !tbaa !5
  %545 = load i64, ptr %57, align 8, !tbaa !9
  %546 = getelementptr inbounds %struct.complex, ptr %544, i64 %545
  %547 = load ptr, ptr %39, align 8, !tbaa !5
  %548 = load ptr, ptr %42, align 8, !tbaa !5
  %549 = load ptr, ptr %26, align 8, !tbaa !5
  %550 = load i64, ptr %549, align 8, !tbaa !9
  %551 = load ptr, ptr %27, align 8, !tbaa !5
  %552 = load i64, ptr %551, align 8, !tbaa !9
  %553 = mul nsw i64 %550, %552
  %554 = add nsw i64 %553, 1
  %555 = getelementptr inbounds %struct.complex, ptr %548, i64 %554
  %556 = load ptr, ptr %26, align 8, !tbaa !5
  %557 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %542, ptr noundef %543, ptr noundef %546, ptr noundef %547, ptr noundef %555, ptr noundef %556)
  %558 = load ptr, ptr %26, align 8, !tbaa !5
  %559 = load ptr, ptr %27, align 8, !tbaa !5
  %560 = load ptr, ptr %32, align 8, !tbaa !5
  %561 = load i64, ptr %51, align 8, !tbaa !9
  %562 = getelementptr inbounds %struct.complex, ptr %560, i64 %561
  %563 = load ptr, ptr %33, align 8, !tbaa !5
  %564 = call i32 @claset_(ptr noundef @.str.3, ptr noundef %558, ptr noundef %559, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %562, ptr noundef %563)
  %565 = load ptr, ptr %26, align 8, !tbaa !5
  %566 = load ptr, ptr %27, align 8, !tbaa !5
  %567 = load ptr, ptr %38, align 8, !tbaa !5
  %568 = load i64, ptr %57, align 8, !tbaa !9
  %569 = getelementptr inbounds %struct.complex, ptr %567, i64 %568
  %570 = load ptr, ptr %39, align 8, !tbaa !5
  %571 = call i32 @claset_(ptr noundef @.str.3, ptr noundef %565, ptr noundef %566, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %569, ptr noundef %570)
  br label %608

572:                                              ; preds = %520, %517
  %573 = load i64, ptr %84, align 8, !tbaa !9
  %574 = icmp eq i64 %573, 2
  br i1 %574, label %575, label %607

575:                                              ; preds = %572
  %576 = load i64, ptr %82, align 8, !tbaa !9
  %577 = icmp eq i64 %576, 2
  br i1 %577, label %578, label %607

578:                                              ; preds = %575
  %579 = load ptr, ptr %26, align 8, !tbaa !5
  %580 = load ptr, ptr %27, align 8, !tbaa !5
  %581 = load ptr, ptr %42, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.complex, ptr %581, i64 1
  %583 = load ptr, ptr %26, align 8, !tbaa !5
  %584 = load ptr, ptr %32, align 8, !tbaa !5
  %585 = load i64, ptr %51, align 8, !tbaa !9
  %586 = getelementptr inbounds %struct.complex, ptr %584, i64 %585
  %587 = load ptr, ptr %33, align 8, !tbaa !5
  %588 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %579, ptr noundef %580, ptr noundef %582, ptr noundef %583, ptr noundef %586, ptr noundef %587)
  %589 = load ptr, ptr %26, align 8, !tbaa !5
  %590 = load ptr, ptr %27, align 8, !tbaa !5
  %591 = load ptr, ptr %42, align 8, !tbaa !5
  %592 = load ptr, ptr %26, align 8, !tbaa !5
  %593 = load i64, ptr %592, align 8, !tbaa !9
  %594 = load ptr, ptr %27, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = mul nsw i64 %593, %595
  %597 = add nsw i64 %596, 1
  %598 = getelementptr inbounds %struct.complex, ptr %591, i64 %597
  %599 = load ptr, ptr %26, align 8, !tbaa !5
  %600 = load ptr, ptr %38, align 8, !tbaa !5
  %601 = load i64, ptr %57, align 8, !tbaa !9
  %602 = getelementptr inbounds %struct.complex, ptr %600, i64 %601
  %603 = load ptr, ptr %39, align 8, !tbaa !5
  %604 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %589, ptr noundef %590, ptr noundef %598, ptr noundef %599, ptr noundef %602, ptr noundef %603)
  %605 = load float, ptr %79, align 4, !tbaa !15
  %606 = load ptr, ptr %40, align 8, !tbaa !5
  store float %605, ptr %606, align 4, !tbaa !15
  br label %607

607:                                              ; preds = %578, %575, %572
  br label %608

608:                                              ; preds = %607, %529
  br label %609

609:                                              ; preds = %608
  %610 = load i64, ptr %82, align 8, !tbaa !9
  %611 = add nsw i64 %610, 1
  store i64 %611, ptr %82, align 8, !tbaa !9
  br label %432, !llvm.loop !16

612:                                              ; preds = %432
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1631

613:                                              ; preds = %425, %420
  store i64 0, ptr %66, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %614

614:                                              ; preds = %635, %613
  %615 = load i64, ptr %63, align 8, !tbaa !9
  %616 = load ptr, ptr %26, align 8, !tbaa !5
  %617 = load i64, ptr %616, align 8, !tbaa !9
  %618 = icmp sgt i64 %615, %617
  br i1 %618, label %619, label %620

619:                                              ; preds = %614
  br label %636

620:                                              ; preds = %614
  %621 = load i64, ptr %66, align 8, !tbaa !9
  %622 = add nsw i64 %621, 1
  store i64 %622, ptr %66, align 8, !tbaa !9
  %623 = load i64, ptr %63, align 8, !tbaa !9
  %624 = load ptr, ptr %44, align 8, !tbaa !5
  %625 = load i64, ptr %66, align 8, !tbaa !9
  %626 = getelementptr inbounds i64, ptr %624, i64 %625
  store i64 %623, ptr %626, align 8, !tbaa !9
  %627 = load i64, ptr %70, align 8, !tbaa !9
  %628 = load i64, ptr %63, align 8, !tbaa !9
  %629 = add nsw i64 %628, %627
  store i64 %629, ptr %63, align 8, !tbaa !9
  %630 = load i64, ptr %63, align 8, !tbaa !9
  %631 = load ptr, ptr %26, align 8, !tbaa !5
  %632 = load i64, ptr %631, align 8, !tbaa !9
  %633 = icmp sge i64 %630, %632
  br i1 %633, label %634, label %635

634:                                              ; preds = %620
  br label %636

635:                                              ; preds = %620
  br label %614

636:                                              ; preds = %634, %619
  %637 = load ptr, ptr %26, align 8, !tbaa !5
  %638 = load i64, ptr %637, align 8, !tbaa !9
  %639 = add nsw i64 %638, 1
  %640 = load ptr, ptr %44, align 8, !tbaa !5
  %641 = load i64, ptr %66, align 8, !tbaa !9
  %642 = add nsw i64 %641, 1
  %643 = getelementptr inbounds i64, ptr %640, i64 %642
  store i64 %639, ptr %643, align 8, !tbaa !9
  %644 = load ptr, ptr %44, align 8, !tbaa !5
  %645 = load i64, ptr %66, align 8, !tbaa !9
  %646 = getelementptr inbounds i64, ptr %644, i64 %645
  %647 = load i64, ptr %646, align 8, !tbaa !9
  %648 = load ptr, ptr %44, align 8, !tbaa !5
  %649 = load i64, ptr %66, align 8, !tbaa !9
  %650 = add nsw i64 %649, 1
  %651 = getelementptr inbounds i64, ptr %648, i64 %650
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = icmp eq i64 %647, %652
  br i1 %653, label %654, label %657

654:                                              ; preds = %636
  %655 = load i64, ptr %66, align 8, !tbaa !9
  %656 = add nsw i64 %655, -1
  store i64 %656, ptr %66, align 8, !tbaa !9
  br label %657

657:                                              ; preds = %654, %636
  %658 = load i64, ptr %66, align 8, !tbaa !9
  %659 = add nsw i64 %658, 1
  store i64 %659, ptr %67, align 8, !tbaa !9
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %660

660:                                              ; preds = %681, %657
  %661 = load i64, ptr %64, align 8, !tbaa !9
  %662 = load ptr, ptr %27, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = icmp sgt i64 %661, %663
  br i1 %664, label %665, label %666

665:                                              ; preds = %660
  br label %682

666:                                              ; preds = %660
  %667 = load i64, ptr %67, align 8, !tbaa !9
  %668 = add nsw i64 %667, 1
  store i64 %668, ptr %67, align 8, !tbaa !9
  %669 = load i64, ptr %64, align 8, !tbaa !9
  %670 = load ptr, ptr %44, align 8, !tbaa !5
  %671 = load i64, ptr %67, align 8, !tbaa !9
  %672 = getelementptr inbounds i64, ptr %670, i64 %671
  store i64 %669, ptr %672, align 8, !tbaa !9
  %673 = load i64, ptr %71, align 8, !tbaa !9
  %674 = load i64, ptr %64, align 8, !tbaa !9
  %675 = add nsw i64 %674, %673
  store i64 %675, ptr %64, align 8, !tbaa !9
  %676 = load i64, ptr %64, align 8, !tbaa !9
  %677 = load ptr, ptr %27, align 8, !tbaa !5
  %678 = load i64, ptr %677, align 8, !tbaa !9
  %679 = icmp sge i64 %676, %678
  br i1 %679, label %680, label %681

680:                                              ; preds = %666
  br label %682

681:                                              ; preds = %666
  br label %660

682:                                              ; preds = %680, %665
  %683 = load ptr, ptr %27, align 8, !tbaa !5
  %684 = load i64, ptr %683, align 8, !tbaa !9
  %685 = add nsw i64 %684, 1
  %686 = load ptr, ptr %44, align 8, !tbaa !5
  %687 = load i64, ptr %67, align 8, !tbaa !9
  %688 = add nsw i64 %687, 1
  %689 = getelementptr inbounds i64, ptr %686, i64 %688
  store i64 %685, ptr %689, align 8, !tbaa !9
  %690 = load ptr, ptr %44, align 8, !tbaa !5
  %691 = load i64, ptr %67, align 8, !tbaa !9
  %692 = getelementptr inbounds i64, ptr %690, i64 %691
  %693 = load i64, ptr %692, align 8, !tbaa !9
  %694 = load ptr, ptr %44, align 8, !tbaa !5
  %695 = load i64, ptr %67, align 8, !tbaa !9
  %696 = add nsw i64 %695, 1
  %697 = getelementptr inbounds i64, ptr %694, i64 %696
  %698 = load i64, ptr %697, align 8, !tbaa !9
  %699 = icmp eq i64 %693, %698
  br i1 %699, label %700, label %703

700:                                              ; preds = %682
  %701 = load i64, ptr %67, align 8, !tbaa !9
  %702 = add nsw i64 %701, -1
  store i64 %702, ptr %67, align 8, !tbaa !9
  br label %703

703:                                              ; preds = %700, %682
  %704 = load i64, ptr %83, align 8, !tbaa !9
  %705 = icmp ne i64 %704, 0
  br i1 %705, label %706, label %1239

706:                                              ; preds = %703
  %707 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %707, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %708

708:                                              ; preds = %1235, %706
  %709 = load i64, ptr %82, align 8, !tbaa !9
  %710 = load i64, ptr %58, align 8, !tbaa !9
  %711 = icmp sle i64 %709, %710
  br i1 %711, label %712, label %1238

712:                                              ; preds = %708
  store i64 0, ptr %74, align 8, !tbaa !9
  %713 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %713, align 4, !tbaa !15
  store float 0.000000e+00, ptr %80, align 4, !tbaa !15
  store float 1.000000e+00, ptr %75, align 4, !tbaa !15
  %714 = load i64, ptr %67, align 8, !tbaa !9
  store i64 %714, ptr %59, align 8, !tbaa !9
  %715 = load i64, ptr %66, align 8, !tbaa !9
  %716 = add nsw i64 %715, 2
  store i64 %716, ptr %64, align 8, !tbaa !9
  br label %717

717:                                              ; preds = %1095, %712
  %718 = load i64, ptr %64, align 8, !tbaa !9
  %719 = load i64, ptr %59, align 8, !tbaa !9
  %720 = icmp sle i64 %718, %719
  br i1 %720, label %721, label %1098

721:                                              ; preds = %717
  %722 = load ptr, ptr %44, align 8, !tbaa !5
  %723 = load i64, ptr %64, align 8, !tbaa !9
  %724 = getelementptr inbounds i64, ptr %722, i64 %723
  %725 = load i64, ptr %724, align 8, !tbaa !9
  store i64 %725, ptr %73, align 8, !tbaa !9
  %726 = load ptr, ptr %44, align 8, !tbaa !5
  %727 = load i64, ptr %64, align 8, !tbaa !9
  %728 = add nsw i64 %727, 1
  %729 = getelementptr inbounds i64, ptr %726, i64 %728
  %730 = load i64, ptr %729, align 8, !tbaa !9
  %731 = sub nsw i64 %730, 1
  store i64 %731, ptr %69, align 8, !tbaa !9
  %732 = load i64, ptr %69, align 8, !tbaa !9
  %733 = load i64, ptr %73, align 8, !tbaa !9
  %734 = sub nsw i64 %732, %733
  %735 = add nsw i64 %734, 1
  store i64 %735, ptr %71, align 8, !tbaa !9
  %736 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %736, ptr %63, align 8, !tbaa !9
  br label %737

737:                                              ; preds = %1091, %721
  %738 = load i64, ptr %63, align 8, !tbaa !9
  %739 = icmp sge i64 %738, 1
  br i1 %739, label %740, label %1094

740:                                              ; preds = %737
  %741 = load ptr, ptr %44, align 8, !tbaa !5
  %742 = load i64, ptr %63, align 8, !tbaa !9
  %743 = getelementptr inbounds i64, ptr %741, i64 %742
  %744 = load i64, ptr %743, align 8, !tbaa !9
  store i64 %744, ptr %72, align 8, !tbaa !9
  %745 = load ptr, ptr %44, align 8, !tbaa !5
  %746 = load i64, ptr %63, align 8, !tbaa !9
  %747 = add nsw i64 %746, 1
  %748 = getelementptr inbounds i64, ptr %745, i64 %747
  %749 = load i64, ptr %748, align 8, !tbaa !9
  %750 = sub nsw i64 %749, 1
  store i64 %750, ptr %68, align 8, !tbaa !9
  %751 = load i64, ptr %68, align 8, !tbaa !9
  %752 = load i64, ptr %72, align 8, !tbaa !9
  %753 = sub nsw i64 %751, %752
  %754 = add nsw i64 %753, 1
  store i64 %754, ptr %70, align 8, !tbaa !9
  %755 = load ptr, ptr %24, align 8, !tbaa !5
  %756 = load ptr, ptr %28, align 8, !tbaa !5
  %757 = load i64, ptr %72, align 8, !tbaa !9
  %758 = load i64, ptr %72, align 8, !tbaa !9
  %759 = load i64, ptr %46, align 8, !tbaa !9
  %760 = mul nsw i64 %758, %759
  %761 = add nsw i64 %757, %760
  %762 = getelementptr inbounds %struct.complex, ptr %756, i64 %761
  %763 = load ptr, ptr %29, align 8, !tbaa !5
  %764 = load ptr, ptr %30, align 8, !tbaa !5
  %765 = load i64, ptr %73, align 8, !tbaa !9
  %766 = load i64, ptr %73, align 8, !tbaa !9
  %767 = load i64, ptr %48, align 8, !tbaa !9
  %768 = mul nsw i64 %766, %767
  %769 = add nsw i64 %765, %768
  %770 = getelementptr inbounds %struct.complex, ptr %764, i64 %769
  %771 = load ptr, ptr %31, align 8, !tbaa !5
  %772 = load ptr, ptr %32, align 8, !tbaa !5
  %773 = load i64, ptr %72, align 8, !tbaa !9
  %774 = load i64, ptr %73, align 8, !tbaa !9
  %775 = load i64, ptr %50, align 8, !tbaa !9
  %776 = mul nsw i64 %774, %775
  %777 = add nsw i64 %773, %776
  %778 = getelementptr inbounds %struct.complex, ptr %772, i64 %777
  %779 = load ptr, ptr %33, align 8, !tbaa !5
  %780 = load ptr, ptr %34, align 8, !tbaa !5
  %781 = load i64, ptr %72, align 8, !tbaa !9
  %782 = load i64, ptr %72, align 8, !tbaa !9
  %783 = load i64, ptr %52, align 8, !tbaa !9
  %784 = mul nsw i64 %782, %783
  %785 = add nsw i64 %781, %784
  %786 = getelementptr inbounds %struct.complex, ptr %780, i64 %785
  %787 = load ptr, ptr %35, align 8, !tbaa !5
  %788 = load ptr, ptr %36, align 8, !tbaa !5
  %789 = load i64, ptr %73, align 8, !tbaa !9
  %790 = load i64, ptr %73, align 8, !tbaa !9
  %791 = load i64, ptr %54, align 8, !tbaa !9
  %792 = mul nsw i64 %790, %791
  %793 = add nsw i64 %789, %792
  %794 = getelementptr inbounds %struct.complex, ptr %788, i64 %793
  %795 = load ptr, ptr %37, align 8, !tbaa !5
  %796 = load ptr, ptr %38, align 8, !tbaa !5
  %797 = load i64, ptr %72, align 8, !tbaa !9
  %798 = load i64, ptr %73, align 8, !tbaa !9
  %799 = load i64, ptr %56, align 8, !tbaa !9
  %800 = mul nsw i64 %798, %799
  %801 = add nsw i64 %797, %800
  %802 = getelementptr inbounds %struct.complex, ptr %796, i64 %801
  %803 = load ptr, ptr %39, align 8, !tbaa !5
  %804 = call i32 @ctgsy2_(ptr noundef %755, ptr noundef %76, ptr noundef %70, ptr noundef %71, ptr noundef %762, ptr noundef %763, ptr noundef %770, ptr noundef %771, ptr noundef %778, ptr noundef %779, ptr noundef %786, ptr noundef %787, ptr noundef %794, ptr noundef %795, ptr noundef %802, ptr noundef %803, ptr noundef %81, ptr noundef %75, ptr noundef %80, ptr noundef %77)
  %805 = load i64, ptr %77, align 8, !tbaa !9
  %806 = icmp sgt i64 %805, 0
  br i1 %806, label %807, label %810

807:                                              ; preds = %740
  %808 = load i64, ptr %77, align 8, !tbaa !9
  %809 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %808, ptr %809, align 8, !tbaa !9
  br label %810

810:                                              ; preds = %807, %740
  %811 = load i64, ptr %70, align 8, !tbaa !9
  %812 = load i64, ptr %71, align 8, !tbaa !9
  %813 = mul nsw i64 %811, %812
  %814 = load i64, ptr %74, align 8, !tbaa !9
  %815 = add nsw i64 %814, %813
  store i64 %815, ptr %74, align 8, !tbaa !9
  %816 = load float, ptr %81, align 4, !tbaa !15
  %817 = fcmp une float %816, 1.000000e+00
  br i1 %817, label %818, label %969

818:                                              ; preds = %810
  %819 = load i64, ptr %73, align 8, !tbaa !9
  %820 = sub nsw i64 %819, 1
  store i64 %820, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %821

821:                                              ; preds = %848, %818
  %822 = load i64, ptr %65, align 8, !tbaa !9
  %823 = load i64, ptr %60, align 8, !tbaa !9
  %824 = icmp sle i64 %822, %823
  br i1 %824, label %825, label %851

825:                                              ; preds = %821
  %826 = load float, ptr %81, align 4, !tbaa !15
  %827 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %826, ptr %827, align 4, !tbaa !11
  %828 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %828, align 4, !tbaa !14
  %829 = load ptr, ptr %26, align 8, !tbaa !5
  %830 = load ptr, ptr %32, align 8, !tbaa !5
  %831 = load i64, ptr %65, align 8, !tbaa !9
  %832 = load i64, ptr %50, align 8, !tbaa !9
  %833 = mul nsw i64 %831, %832
  %834 = add nsw i64 %833, 1
  %835 = getelementptr inbounds %struct.complex, ptr %830, i64 %834
  %836 = call i32 @f2c_cscal(ptr noundef %829, ptr noundef %62, ptr noundef %835, ptr noundef @c__1)
  %837 = load float, ptr %81, align 4, !tbaa !15
  %838 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %837, ptr %838, align 4, !tbaa !11
  %839 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %839, align 4, !tbaa !14
  %840 = load ptr, ptr %26, align 8, !tbaa !5
  %841 = load ptr, ptr %38, align 8, !tbaa !5
  %842 = load i64, ptr %65, align 8, !tbaa !9
  %843 = load i64, ptr %56, align 8, !tbaa !9
  %844 = mul nsw i64 %842, %843
  %845 = add nsw i64 %844, 1
  %846 = getelementptr inbounds %struct.complex, ptr %841, i64 %845
  %847 = call i32 @f2c_cscal(ptr noundef %840, ptr noundef %62, ptr noundef %846, ptr noundef @c__1)
  br label %848

848:                                              ; preds = %825
  %849 = load i64, ptr %65, align 8, !tbaa !9
  %850 = add nsw i64 %849, 1
  store i64 %850, ptr %65, align 8, !tbaa !9
  br label %821, !llvm.loop !18

851:                                              ; preds = %821
  %852 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %852, ptr %60, align 8, !tbaa !9
  %853 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %853, ptr %65, align 8, !tbaa !9
  br label %854

854:                                              ; preds = %883, %851
  %855 = load i64, ptr %65, align 8, !tbaa !9
  %856 = load i64, ptr %60, align 8, !tbaa !9
  %857 = icmp sle i64 %855, %856
  br i1 %857, label %858, label %886

858:                                              ; preds = %854
  %859 = load i64, ptr %72, align 8, !tbaa !9
  %860 = sub nsw i64 %859, 1
  store i64 %860, ptr %61, align 8, !tbaa !9
  %861 = load float, ptr %81, align 4, !tbaa !15
  %862 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %861, ptr %862, align 4, !tbaa !11
  %863 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %863, align 4, !tbaa !14
  %864 = load ptr, ptr %32, align 8, !tbaa !5
  %865 = load i64, ptr %65, align 8, !tbaa !9
  %866 = load i64, ptr %50, align 8, !tbaa !9
  %867 = mul nsw i64 %865, %866
  %868 = add nsw i64 %867, 1
  %869 = getelementptr inbounds %struct.complex, ptr %864, i64 %868
  %870 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %869, ptr noundef @c__1)
  %871 = load i64, ptr %72, align 8, !tbaa !9
  %872 = sub nsw i64 %871, 1
  store i64 %872, ptr %61, align 8, !tbaa !9
  %873 = load float, ptr %81, align 4, !tbaa !15
  %874 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %873, ptr %874, align 4, !tbaa !11
  %875 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %875, align 4, !tbaa !14
  %876 = load ptr, ptr %38, align 8, !tbaa !5
  %877 = load i64, ptr %65, align 8, !tbaa !9
  %878 = load i64, ptr %56, align 8, !tbaa !9
  %879 = mul nsw i64 %877, %878
  %880 = add nsw i64 %879, 1
  %881 = getelementptr inbounds %struct.complex, ptr %876, i64 %880
  %882 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %881, ptr noundef @c__1)
  br label %883

883:                                              ; preds = %858
  %884 = load i64, ptr %65, align 8, !tbaa !9
  %885 = add nsw i64 %884, 1
  store i64 %885, ptr %65, align 8, !tbaa !9
  br label %854, !llvm.loop !19

886:                                              ; preds = %854
  %887 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %887, ptr %60, align 8, !tbaa !9
  %888 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %888, ptr %65, align 8, !tbaa !9
  br label %889

889:                                              ; preds = %926, %886
  %890 = load i64, ptr %65, align 8, !tbaa !9
  %891 = load i64, ptr %60, align 8, !tbaa !9
  %892 = icmp sle i64 %890, %891
  br i1 %892, label %893, label %929

893:                                              ; preds = %889
  %894 = load ptr, ptr %26, align 8, !tbaa !5
  %895 = load i64, ptr %894, align 8, !tbaa !9
  %896 = load i64, ptr %68, align 8, !tbaa !9
  %897 = sub nsw i64 %895, %896
  store i64 %897, ptr %61, align 8, !tbaa !9
  %898 = load float, ptr %81, align 4, !tbaa !15
  %899 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %898, ptr %899, align 4, !tbaa !11
  %900 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %900, align 4, !tbaa !14
  %901 = load ptr, ptr %32, align 8, !tbaa !5
  %902 = load i64, ptr %68, align 8, !tbaa !9
  %903 = add nsw i64 %902, 1
  %904 = load i64, ptr %65, align 8, !tbaa !9
  %905 = load i64, ptr %50, align 8, !tbaa !9
  %906 = mul nsw i64 %904, %905
  %907 = add nsw i64 %903, %906
  %908 = getelementptr inbounds %struct.complex, ptr %901, i64 %907
  %909 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %908, ptr noundef @c__1)
  %910 = load ptr, ptr %26, align 8, !tbaa !5
  %911 = load i64, ptr %910, align 8, !tbaa !9
  %912 = load i64, ptr %68, align 8, !tbaa !9
  %913 = sub nsw i64 %911, %912
  store i64 %913, ptr %61, align 8, !tbaa !9
  %914 = load float, ptr %81, align 4, !tbaa !15
  %915 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %914, ptr %915, align 4, !tbaa !11
  %916 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %916, align 4, !tbaa !14
  %917 = load ptr, ptr %38, align 8, !tbaa !5
  %918 = load i64, ptr %68, align 8, !tbaa !9
  %919 = add nsw i64 %918, 1
  %920 = load i64, ptr %65, 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 %struct.complex, ptr %917, i64 %923
  %925 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %924, ptr noundef @c__1)
  br label %926

926:                                              ; preds = %893
  %927 = load i64, ptr %65, align 8, !tbaa !9
  %928 = add nsw i64 %927, 1
  store i64 %928, ptr %65, align 8, !tbaa !9
  br label %889, !llvm.loop !20

929:                                              ; preds = %889
  %930 = load ptr, ptr %27, align 8, !tbaa !5
  %931 = load i64, ptr %930, align 8, !tbaa !9
  store i64 %931, ptr %60, align 8, !tbaa !9
  %932 = load i64, ptr %69, align 8, !tbaa !9
  %933 = add nsw i64 %932, 1
  store i64 %933, ptr %65, align 8, !tbaa !9
  br label %934

934:                                              ; preds = %961, %929
  %935 = load i64, ptr %65, align 8, !tbaa !9
  %936 = load i64, ptr %60, align 8, !tbaa !9
  %937 = icmp sle i64 %935, %936
  br i1 %937, label %938, label %964

938:                                              ; preds = %934
  %939 = load float, ptr %81, align 4, !tbaa !15
  %940 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %939, ptr %940, align 4, !tbaa !11
  %941 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %941, align 4, !tbaa !14
  %942 = load ptr, ptr %26, align 8, !tbaa !5
  %943 = load ptr, ptr %32, align 8, !tbaa !5
  %944 = load i64, ptr %65, align 8, !tbaa !9
  %945 = load i64, ptr %50, align 8, !tbaa !9
  %946 = mul nsw i64 %944, %945
  %947 = add nsw i64 %946, 1
  %948 = getelementptr inbounds %struct.complex, ptr %943, i64 %947
  %949 = call i32 @f2c_cscal(ptr noundef %942, ptr noundef %62, ptr noundef %948, ptr noundef @c__1)
  %950 = load float, ptr %81, align 4, !tbaa !15
  %951 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %950, ptr %951, align 4, !tbaa !11
  %952 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %952, align 4, !tbaa !14
  %953 = load ptr, ptr %26, align 8, !tbaa !5
  %954 = load ptr, ptr %38, align 8, !tbaa !5
  %955 = load i64, ptr %65, 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 %struct.complex, ptr %954, i64 %958
  %960 = call i32 @f2c_cscal(ptr noundef %953, ptr noundef %62, ptr noundef %959, ptr noundef @c__1)
  br label %961

961:                                              ; preds = %938
  %962 = load i64, ptr %65, align 8, !tbaa !9
  %963 = add nsw i64 %962, 1
  store i64 %963, ptr %65, align 8, !tbaa !9
  br label %934, !llvm.loop !21

964:                                              ; preds = %934
  %965 = load float, ptr %81, align 4, !tbaa !15
  %966 = load ptr, ptr %40, align 8, !tbaa !5
  %967 = load float, ptr %966, align 4, !tbaa !15
  %968 = fmul float %967, %965
  store float %968, ptr %966, align 4, !tbaa !15
  br label %969

969:                                              ; preds = %964, %810
  %970 = load i64, ptr %63, align 8, !tbaa !9
  %971 = icmp sgt i64 %970, 1
  br i1 %971, label %972, label %1023

972:                                              ; preds = %969
  %973 = load i64, ptr %72, align 8, !tbaa !9
  %974 = sub nsw i64 %973, 1
  store i64 %974, ptr %60, align 8, !tbaa !9
  %975 = load ptr, ptr %28, align 8, !tbaa !5
  %976 = load i64, ptr %72, align 8, !tbaa !9
  %977 = load i64, ptr %46, align 8, !tbaa !9
  %978 = mul nsw i64 %976, %977
  %979 = add nsw i64 %978, 1
  %980 = getelementptr inbounds %struct.complex, ptr %975, i64 %979
  %981 = load ptr, ptr %29, align 8, !tbaa !5
  %982 = load ptr, ptr %32, align 8, !tbaa !5
  %983 = load i64, ptr %72, align 8, !tbaa !9
  %984 = load i64, ptr %73, align 8, !tbaa !9
  %985 = load i64, ptr %50, align 8, !tbaa !9
  %986 = mul nsw i64 %984, %985
  %987 = add nsw i64 %983, %986
  %988 = getelementptr inbounds %struct.complex, ptr %982, i64 %987
  %989 = load ptr, ptr %33, align 8, !tbaa !5
  %990 = load ptr, ptr %32, align 8, !tbaa !5
  %991 = load i64, ptr %73, align 8, !tbaa !9
  %992 = load i64, ptr %50, align 8, !tbaa !9
  %993 = mul nsw i64 %991, %992
  %994 = add nsw i64 %993, 1
  %995 = getelementptr inbounds %struct.complex, ptr %990, i64 %994
  %996 = load ptr, ptr %33, align 8, !tbaa !5
  %997 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %60, ptr noundef %71, ptr noundef %70, ptr noundef @c_b44, ptr noundef %980, ptr noundef %981, ptr noundef %988, ptr noundef %989, ptr noundef @c_b45, ptr noundef %995, ptr noundef %996)
  %998 = load i64, ptr %72, align 8, !tbaa !9
  %999 = sub nsw i64 %998, 1
  store i64 %999, ptr %60, align 8, !tbaa !9
  %1000 = load ptr, ptr %34, align 8, !tbaa !5
  %1001 = load i64, ptr %72, align 8, !tbaa !9
  %1002 = load i64, ptr %52, align 8, !tbaa !9
  %1003 = mul nsw i64 %1001, %1002
  %1004 = add nsw i64 %1003, 1
  %1005 = getelementptr inbounds %struct.complex, ptr %1000, i64 %1004
  %1006 = load ptr, ptr %35, align 8, !tbaa !5
  %1007 = load ptr, ptr %32, align 8, !tbaa !5
  %1008 = load i64, ptr %72, align 8, !tbaa !9
  %1009 = load i64, ptr %73, align 8, !tbaa !9
  %1010 = load i64, ptr %50, align 8, !tbaa !9
  %1011 = mul nsw i64 %1009, %1010
  %1012 = add nsw i64 %1008, %1011
  %1013 = getelementptr inbounds %struct.complex, ptr %1007, i64 %1012
  %1014 = load ptr, ptr %33, align 8, !tbaa !5
  %1015 = load ptr, ptr %38, align 8, !tbaa !5
  %1016 = load i64, ptr %73, align 8, !tbaa !9
  %1017 = load i64, ptr %56, align 8, !tbaa !9
  %1018 = mul nsw i64 %1016, %1017
  %1019 = add nsw i64 %1018, 1
  %1020 = getelementptr inbounds %struct.complex, ptr %1015, i64 %1019
  %1021 = load ptr, ptr %39, align 8, !tbaa !5
  %1022 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %60, ptr noundef %71, ptr noundef %70, ptr noundef @c_b44, ptr noundef %1005, ptr noundef %1006, ptr noundef %1013, ptr noundef %1014, ptr noundef @c_b45, ptr noundef %1020, ptr noundef %1021)
  br label %1023

1023:                                             ; preds = %972, %969
  %1024 = load i64, ptr %64, align 8, !tbaa !9
  %1025 = load i64, ptr %67, align 8, !tbaa !9
  %1026 = icmp slt i64 %1024, %1025
  br i1 %1026, label %1027, label %1090

1027:                                             ; preds = %1023
  %1028 = load ptr, ptr %27, align 8, !tbaa !5
  %1029 = load i64, ptr %1028, align 8, !tbaa !9
  %1030 = load i64, ptr %69, align 8, !tbaa !9
  %1031 = sub nsw i64 %1029, %1030
  store i64 %1031, ptr %60, align 8, !tbaa !9
  %1032 = load ptr, ptr %38, align 8, !tbaa !5
  %1033 = load i64, ptr %72, align 8, !tbaa !9
  %1034 = load i64, ptr %73, align 8, !tbaa !9
  %1035 = load i64, ptr %56, align 8, !tbaa !9
  %1036 = mul nsw i64 %1034, %1035
  %1037 = add nsw i64 %1033, %1036
  %1038 = getelementptr inbounds %struct.complex, ptr %1032, i64 %1037
  %1039 = load ptr, ptr %39, align 8, !tbaa !5
  %1040 = load ptr, ptr %30, align 8, !tbaa !5
  %1041 = load i64, ptr %73, align 8, !tbaa !9
  %1042 = load i64, ptr %69, align 8, !tbaa !9
  %1043 = add nsw i64 %1042, 1
  %1044 = load i64, ptr %48, align 8, !tbaa !9
  %1045 = mul nsw i64 %1043, %1044
  %1046 = add nsw i64 %1041, %1045
  %1047 = getelementptr inbounds %struct.complex, ptr %1040, i64 %1046
  %1048 = load ptr, ptr %31, align 8, !tbaa !5
  %1049 = load ptr, ptr %32, align 8, !tbaa !5
  %1050 = load i64, ptr %72, align 8, !tbaa !9
  %1051 = load i64, ptr %69, align 8, !tbaa !9
  %1052 = add nsw i64 %1051, 1
  %1053 = load i64, ptr %50, align 8, !tbaa !9
  %1054 = mul nsw i64 %1052, %1053
  %1055 = add nsw i64 %1050, %1054
  %1056 = getelementptr inbounds %struct.complex, ptr %1049, i64 %1055
  %1057 = load ptr, ptr %33, align 8, !tbaa !5
  %1058 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %70, ptr noundef %60, ptr noundef %71, ptr noundef @c_b45, ptr noundef %1038, ptr noundef %1039, ptr noundef %1047, ptr noundef %1048, ptr noundef @c_b45, ptr noundef %1056, ptr noundef %1057)
  %1059 = load ptr, ptr %27, align 8, !tbaa !5
  %1060 = load i64, ptr %1059, align 8, !tbaa !9
  %1061 = load i64, ptr %69, align 8, !tbaa !9
  %1062 = sub nsw i64 %1060, %1061
  store i64 %1062, ptr %60, align 8, !tbaa !9
  %1063 = load ptr, ptr %38, align 8, !tbaa !5
  %1064 = load i64, ptr %72, align 8, !tbaa !9
  %1065 = load i64, ptr %73, align 8, !tbaa !9
  %1066 = load i64, ptr %56, align 8, !tbaa !9
  %1067 = mul nsw i64 %1065, %1066
  %1068 = add nsw i64 %1064, %1067
  %1069 = getelementptr inbounds %struct.complex, ptr %1063, i64 %1068
  %1070 = load ptr, ptr %39, align 8, !tbaa !5
  %1071 = load ptr, ptr %36, align 8, !tbaa !5
  %1072 = load i64, ptr %73, align 8, !tbaa !9
  %1073 = load i64, ptr %69, align 8, !tbaa !9
  %1074 = add nsw i64 %1073, 1
  %1075 = load i64, ptr %54, align 8, !tbaa !9
  %1076 = mul nsw i64 %1074, %1075
  %1077 = add nsw i64 %1072, %1076
  %1078 = getelementptr inbounds %struct.complex, ptr %1071, i64 %1077
  %1079 = load ptr, ptr %37, align 8, !tbaa !5
  %1080 = load ptr, ptr %38, align 8, !tbaa !5
  %1081 = load i64, ptr %72, align 8, !tbaa !9
  %1082 = load i64, ptr %69, align 8, !tbaa !9
  %1083 = add nsw i64 %1082, 1
  %1084 = load i64, ptr %56, align 8, !tbaa !9
  %1085 = mul nsw i64 %1083, %1084
  %1086 = add nsw i64 %1081, %1085
  %1087 = getelementptr inbounds %struct.complex, ptr %1080, i64 %1086
  %1088 = load ptr, ptr %39, align 8, !tbaa !5
  %1089 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %70, ptr noundef %60, ptr noundef %71, ptr noundef @c_b45, ptr noundef %1069, ptr noundef %1070, ptr noundef %1078, ptr noundef %1079, ptr noundef @c_b45, ptr noundef %1087, ptr noundef %1088)
  br label %1090

1090:                                             ; preds = %1027, %1023
  br label %1091

1091:                                             ; preds = %1090
  %1092 = load i64, ptr %63, align 8, !tbaa !9
  %1093 = add nsw i64 %1092, -1
  store i64 %1093, ptr %63, align 8, !tbaa !9
  br label %737, !llvm.loop !22

1094:                                             ; preds = %737
  br label %1095

1095:                                             ; preds = %1094
  %1096 = load i64, ptr %64, align 8, !tbaa !9
  %1097 = add nsw i64 %1096, 1
  store i64 %1097, ptr %64, align 8, !tbaa !9
  br label %717, !llvm.loop !23

1098:                                             ; preds = %717
  %1099 = load float, ptr %80, align 4, !tbaa !15
  %1100 = fcmp une float %1099, 0.000000e+00
  br i1 %1100, label %1101, label %1143

1101:                                             ; preds = %1098
  %1102 = load ptr, ptr %25, align 8, !tbaa !5
  %1103 = load i64, ptr %1102, align 8, !tbaa !9
  %1104 = icmp eq i64 %1103, 1
  br i1 %1104, label %1109, label %1105

1105:                                             ; preds = %1101
  %1106 = load ptr, ptr %25, align 8, !tbaa !5
  %1107 = load i64, ptr %1106, align 8, !tbaa !9
  %1108 = icmp eq i64 %1107, 3
  br i1 %1108, label %1109, label %1128

1109:                                             ; preds = %1105, %1101
  %1110 = load ptr, ptr %26, align 8, !tbaa !5
  %1111 = load i64, ptr %1110, align 8, !tbaa !9
  %1112 = shl i64 %1111, 1
  %1113 = load ptr, ptr %27, align 8, !tbaa !5
  %1114 = load i64, ptr %1113, align 8, !tbaa !9
  %1115 = mul nsw i64 %1112, %1114
  %1116 = sitofp i64 %1115 to float
  %1117 = fpext float %1116 to double
  %1118 = call double @sqrt(double noundef %1117) #4
  %1119 = load float, ptr %80, align 4, !tbaa !15
  %1120 = fpext float %1119 to double
  %1121 = load float, ptr %75, align 4, !tbaa !15
  %1122 = fpext float %1121 to double
  %1123 = call double @sqrt(double noundef %1122) #4
  %1124 = fmul double %1120, %1123
  %1125 = fdiv double %1118, %1124
  %1126 = fptrunc double %1125 to float
  %1127 = load ptr, ptr %41, align 8, !tbaa !5
  store float %1126, ptr %1127, align 4, !tbaa !15
  br label %1142

1128:                                             ; preds = %1105
  %1129 = load i64, ptr %74, align 8, !tbaa !9
  %1130 = sitofp i64 %1129 to float
  %1131 = fpext float %1130 to double
  %1132 = call double @sqrt(double noundef %1131) #4
  %1133 = load float, ptr %80, align 4, !tbaa !15
  %1134 = fpext float %1133 to double
  %1135 = load float, ptr %75, align 4, !tbaa !15
  %1136 = fpext float %1135 to double
  %1137 = call double @sqrt(double noundef %1136) #4
  %1138 = fmul double %1134, %1137
  %1139 = fdiv double %1132, %1138
  %1140 = fptrunc double %1139 to float
  %1141 = load ptr, ptr %41, align 8, !tbaa !5
  store float %1140, ptr %1141, align 4, !tbaa !15
  br label %1142

1142:                                             ; preds = %1128, %1109
  br label %1143

1143:                                             ; preds = %1142, %1098
  %1144 = load i64, ptr %84, align 8, !tbaa !9
  %1145 = icmp eq i64 %1144, 2
  br i1 %1145, label %1146, label %1198

1146:                                             ; preds = %1143
  %1147 = load i64, ptr %82, align 8, !tbaa !9
  %1148 = icmp eq i64 %1147, 1
  br i1 %1148, label %1149, label %1198

1149:                                             ; preds = %1146
  %1150 = load i64, ptr %83, align 8, !tbaa !9
  %1151 = icmp ne i64 %1150, 0
  br i1 %1151, label %1152, label %1155

1152:                                             ; preds = %1149
  %1153 = load ptr, ptr %25, align 8, !tbaa !5
  %1154 = load i64, ptr %1153, align 8, !tbaa !9
  store i64 %1154, ptr %76, align 8, !tbaa !9
  br label %1155

1155:                                             ; preds = %1152, %1149
  %1156 = load ptr, ptr %40, align 8, !tbaa !5
  %1157 = load float, ptr %1156, align 4, !tbaa !15
  store float %1157, ptr %79, align 4, !tbaa !15
  %1158 = load ptr, ptr %26, align 8, !tbaa !5
  %1159 = load ptr, ptr %27, align 8, !tbaa !5
  %1160 = load ptr, ptr %32, align 8, !tbaa !5
  %1161 = load i64, ptr %51, align 8, !tbaa !9
  %1162 = getelementptr inbounds %struct.complex, ptr %1160, i64 %1161
  %1163 = load ptr, ptr %33, align 8, !tbaa !5
  %1164 = load ptr, ptr %42, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.complex, ptr %1164, i64 1
  %1166 = load ptr, ptr %26, align 8, !tbaa !5
  %1167 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %1158, ptr noundef %1159, ptr noundef %1162, ptr noundef %1163, ptr noundef %1165, ptr noundef %1166)
  %1168 = load ptr, ptr %26, align 8, !tbaa !5
  %1169 = load ptr, ptr %27, align 8, !tbaa !5
  %1170 = load ptr, ptr %38, align 8, !tbaa !5
  %1171 = load i64, ptr %57, align 8, !tbaa !9
  %1172 = getelementptr inbounds %struct.complex, ptr %1170, i64 %1171
  %1173 = load ptr, ptr %39, align 8, !tbaa !5
  %1174 = load ptr, ptr %42, align 8, !tbaa !5
  %1175 = load ptr, ptr %26, align 8, !tbaa !5
  %1176 = load i64, ptr %1175, align 8, !tbaa !9
  %1177 = load ptr, ptr %27, align 8, !tbaa !5
  %1178 = load i64, ptr %1177, align 8, !tbaa !9
  %1179 = mul nsw i64 %1176, %1178
  %1180 = add nsw i64 %1179, 1
  %1181 = getelementptr inbounds %struct.complex, ptr %1174, i64 %1180
  %1182 = load ptr, ptr %26, align 8, !tbaa !5
  %1183 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %1168, ptr noundef %1169, ptr noundef %1172, ptr noundef %1173, ptr noundef %1181, ptr noundef %1182)
  %1184 = load ptr, ptr %26, align 8, !tbaa !5
  %1185 = load ptr, ptr %27, align 8, !tbaa !5
  %1186 = load ptr, ptr %32, align 8, !tbaa !5
  %1187 = load i64, ptr %51, align 8, !tbaa !9
  %1188 = getelementptr inbounds %struct.complex, ptr %1186, i64 %1187
  %1189 = load ptr, ptr %33, align 8, !tbaa !5
  %1190 = call i32 @claset_(ptr noundef @.str.3, ptr noundef %1184, ptr noundef %1185, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %1188, ptr noundef %1189)
  %1191 = load ptr, ptr %26, align 8, !tbaa !5
  %1192 = load ptr, ptr %27, align 8, !tbaa !5
  %1193 = load ptr, ptr %38, align 8, !tbaa !5
  %1194 = load i64, ptr %57, align 8, !tbaa !9
  %1195 = getelementptr inbounds %struct.complex, ptr %1193, i64 %1194
  %1196 = load ptr, ptr %39, align 8, !tbaa !5
  %1197 = call i32 @claset_(ptr noundef @.str.3, ptr noundef %1191, ptr noundef %1192, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %1195, ptr noundef %1196)
  br label %1234

1198:                                             ; preds = %1146, %1143
  %1199 = load i64, ptr %84, align 8, !tbaa !9
  %1200 = icmp eq i64 %1199, 2
  br i1 %1200, label %1201, label %1233

1201:                                             ; preds = %1198
  %1202 = load i64, ptr %82, align 8, !tbaa !9
  %1203 = icmp eq i64 %1202, 2
  br i1 %1203, label %1204, label %1233

1204:                                             ; preds = %1201
  %1205 = load ptr, ptr %26, align 8, !tbaa !5
  %1206 = load ptr, ptr %27, align 8, !tbaa !5
  %1207 = load ptr, ptr %42, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i64 1
  %1209 = load ptr, ptr %26, align 8, !tbaa !5
  %1210 = load ptr, ptr %32, align 8, !tbaa !5
  %1211 = load i64, ptr %51, align 8, !tbaa !9
  %1212 = getelementptr inbounds %struct.complex, ptr %1210, i64 %1211
  %1213 = load ptr, ptr %33, align 8, !tbaa !5
  %1214 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %1205, ptr noundef %1206, ptr noundef %1208, ptr noundef %1209, ptr noundef %1212, ptr noundef %1213)
  %1215 = load ptr, ptr %26, align 8, !tbaa !5
  %1216 = load ptr, ptr %27, align 8, !tbaa !5
  %1217 = load ptr, ptr %42, align 8, !tbaa !5
  %1218 = load ptr, ptr %26, align 8, !tbaa !5
  %1219 = load i64, ptr %1218, align 8, !tbaa !9
  %1220 = load ptr, ptr %27, align 8, !tbaa !5
  %1221 = load i64, ptr %1220, align 8, !tbaa !9
  %1222 = mul nsw i64 %1219, %1221
  %1223 = add nsw i64 %1222, 1
  %1224 = getelementptr inbounds %struct.complex, ptr %1217, i64 %1223
  %1225 = load ptr, ptr %26, align 8, !tbaa !5
  %1226 = load ptr, ptr %38, align 8, !tbaa !5
  %1227 = load i64, ptr %57, align 8, !tbaa !9
  %1228 = getelementptr inbounds %struct.complex, ptr %1226, i64 %1227
  %1229 = load ptr, ptr %39, align 8, !tbaa !5
  %1230 = call i32 @clacpy_(ptr noundef @.str.3, ptr noundef %1215, ptr noundef %1216, ptr noundef %1224, ptr noundef %1225, ptr noundef %1228, ptr noundef %1229)
  %1231 = load float, ptr %79, align 4, !tbaa !15
  %1232 = load ptr, ptr %40, align 8, !tbaa !5
  store float %1231, ptr %1232, align 4, !tbaa !15
  br label %1233

1233:                                             ; preds = %1204, %1201, %1198
  br label %1234

1234:                                             ; preds = %1233, %1155
  br label %1235

1235:                                             ; preds = %1234
  %1236 = load i64, ptr %82, align 8, !tbaa !9
  %1237 = add nsw i64 %1236, 1
  store i64 %1237, ptr %82, align 8, !tbaa !9
  br label %708, !llvm.loop !24

1238:                                             ; preds = %708
  br label %1622

1239:                                             ; preds = %703
  %1240 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %1240, align 4, !tbaa !15
  %1241 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %1241, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %1242

1242:                                             ; preds = %1618, %1239
  %1243 = load i64, ptr %63, align 8, !tbaa !9
  %1244 = load i64, ptr %58, align 8, !tbaa !9
  %1245 = icmp sle i64 %1243, %1244
  br i1 %1245, label %1246, label %1621

1246:                                             ; preds = %1242
  %1247 = load ptr, ptr %44, align 8, !tbaa !5
  %1248 = load i64, ptr %63, align 8, !tbaa !9
  %1249 = getelementptr inbounds i64, ptr %1247, i64 %1248
  %1250 = load i64, ptr %1249, align 8, !tbaa !9
  store i64 %1250, ptr %72, align 8, !tbaa !9
  %1251 = load ptr, ptr %44, align 8, !tbaa !5
  %1252 = load i64, ptr %63, align 8, !tbaa !9
  %1253 = add nsw i64 %1252, 1
  %1254 = getelementptr inbounds i64, ptr %1251, i64 %1253
  %1255 = load i64, ptr %1254, align 8, !tbaa !9
  %1256 = sub nsw i64 %1255, 1
  store i64 %1256, ptr %68, align 8, !tbaa !9
  %1257 = load i64, ptr %68, align 8, !tbaa !9
  %1258 = load i64, ptr %72, align 8, !tbaa !9
  %1259 = sub nsw i64 %1257, %1258
  %1260 = add nsw i64 %1259, 1
  store i64 %1260, ptr %70, align 8, !tbaa !9
  %1261 = load i64, ptr %66, align 8, !tbaa !9
  %1262 = add nsw i64 %1261, 2
  store i64 %1262, ptr %59, align 8, !tbaa !9
  %1263 = load i64, ptr %67, align 8, !tbaa !9
  store i64 %1263, ptr %64, align 8, !tbaa !9
  br label %1264

1264:                                             ; preds = %1614, %1246
  %1265 = load i64, ptr %64, align 8, !tbaa !9
  %1266 = load i64, ptr %59, align 8, !tbaa !9
  %1267 = icmp sge i64 %1265, %1266
  br i1 %1267, label %1268, label %1617

1268:                                             ; preds = %1264
  %1269 = load ptr, ptr %44, align 8, !tbaa !5
  %1270 = load i64, ptr %64, align 8, !tbaa !9
  %1271 = getelementptr inbounds i64, ptr %1269, i64 %1270
  %1272 = load i64, ptr %1271, align 8, !tbaa !9
  store i64 %1272, ptr %73, align 8, !tbaa !9
  %1273 = load ptr, ptr %44, align 8, !tbaa !5
  %1274 = load i64, ptr %64, align 8, !tbaa !9
  %1275 = add nsw i64 %1274, 1
  %1276 = getelementptr inbounds i64, ptr %1273, i64 %1275
  %1277 = load i64, ptr %1276, align 8, !tbaa !9
  %1278 = sub nsw i64 %1277, 1
  store i64 %1278, ptr %69, align 8, !tbaa !9
  %1279 = load i64, ptr %69, align 8, !tbaa !9
  %1280 = load i64, ptr %73, align 8, !tbaa !9
  %1281 = sub nsw i64 %1279, %1280
  %1282 = add nsw i64 %1281, 1
  store i64 %1282, ptr %71, align 8, !tbaa !9
  %1283 = load ptr, ptr %24, align 8, !tbaa !5
  %1284 = load ptr, ptr %28, align 8, !tbaa !5
  %1285 = load i64, ptr %72, align 8, !tbaa !9
  %1286 = load i64, ptr %72, align 8, !tbaa !9
  %1287 = load i64, ptr %46, align 8, !tbaa !9
  %1288 = mul nsw i64 %1286, %1287
  %1289 = add nsw i64 %1285, %1288
  %1290 = getelementptr inbounds %struct.complex, ptr %1284, i64 %1289
  %1291 = load ptr, ptr %29, align 8, !tbaa !5
  %1292 = load ptr, ptr %30, align 8, !tbaa !5
  %1293 = load i64, ptr %73, align 8, !tbaa !9
  %1294 = load i64, ptr %73, align 8, !tbaa !9
  %1295 = load i64, ptr %48, align 8, !tbaa !9
  %1296 = mul nsw i64 %1294, %1295
  %1297 = add nsw i64 %1293, %1296
  %1298 = getelementptr inbounds %struct.complex, ptr %1292, i64 %1297
  %1299 = load ptr, ptr %31, align 8, !tbaa !5
  %1300 = load ptr, ptr %32, align 8, !tbaa !5
  %1301 = load i64, ptr %72, align 8, !tbaa !9
  %1302 = load i64, ptr %73, align 8, !tbaa !9
  %1303 = load i64, ptr %50, align 8, !tbaa !9
  %1304 = mul nsw i64 %1302, %1303
  %1305 = add nsw i64 %1301, %1304
  %1306 = getelementptr inbounds %struct.complex, ptr %1300, i64 %1305
  %1307 = load ptr, ptr %33, align 8, !tbaa !5
  %1308 = load ptr, ptr %34, align 8, !tbaa !5
  %1309 = load i64, ptr %72, align 8, !tbaa !9
  %1310 = load i64, ptr %72, align 8, !tbaa !9
  %1311 = load i64, ptr %52, align 8, !tbaa !9
  %1312 = mul nsw i64 %1310, %1311
  %1313 = add nsw i64 %1309, %1312
  %1314 = getelementptr inbounds %struct.complex, ptr %1308, i64 %1313
  %1315 = load ptr, ptr %35, align 8, !tbaa !5
  %1316 = load ptr, ptr %36, align 8, !tbaa !5
  %1317 = load i64, ptr %73, align 8, !tbaa !9
  %1318 = load i64, ptr %73, align 8, !tbaa !9
  %1319 = load i64, ptr %54, align 8, !tbaa !9
  %1320 = mul nsw i64 %1318, %1319
  %1321 = add nsw i64 %1317, %1320
  %1322 = getelementptr inbounds %struct.complex, ptr %1316, i64 %1321
  %1323 = load ptr, ptr %37, align 8, !tbaa !5
  %1324 = load ptr, ptr %38, align 8, !tbaa !5
  %1325 = load i64, ptr %72, align 8, !tbaa !9
  %1326 = load i64, ptr %73, align 8, !tbaa !9
  %1327 = load i64, ptr %56, align 8, !tbaa !9
  %1328 = mul nsw i64 %1326, %1327
  %1329 = add nsw i64 %1325, %1328
  %1330 = getelementptr inbounds %struct.complex, ptr %1324, i64 %1329
  %1331 = load ptr, ptr %39, align 8, !tbaa !5
  %1332 = call i32 @ctgsy2_(ptr noundef %1283, ptr noundef %76, ptr noundef %70, ptr noundef %71, ptr noundef %1290, ptr noundef %1291, ptr noundef %1298, ptr noundef %1299, ptr noundef %1306, ptr noundef %1307, ptr noundef %1314, ptr noundef %1315, ptr noundef %1322, ptr noundef %1323, ptr noundef %1330, ptr noundef %1331, ptr noundef %81, ptr noundef %75, ptr noundef %80, ptr noundef %77)
  %1333 = load i64, ptr %77, align 8, !tbaa !9
  %1334 = icmp sgt i64 %1333, 0
  br i1 %1334, label %1335, label %1338

1335:                                             ; preds = %1268
  %1336 = load i64, ptr %77, align 8, !tbaa !9
  %1337 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %1336, ptr %1337, align 8, !tbaa !9
  br label %1338

1338:                                             ; preds = %1335, %1268
  %1339 = load float, ptr %81, align 4, !tbaa !15
  %1340 = fcmp une float %1339, 1.000000e+00
  br i1 %1340, label %1341, label %1492

1341:                                             ; preds = %1338
  %1342 = load i64, ptr %73, align 8, !tbaa !9
  %1343 = sub nsw i64 %1342, 1
  store i64 %1343, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %1344

1344:                                             ; preds = %1371, %1341
  %1345 = load i64, ptr %65, align 8, !tbaa !9
  %1346 = load i64, ptr %60, align 8, !tbaa !9
  %1347 = icmp sle i64 %1345, %1346
  br i1 %1347, label %1348, label %1374

1348:                                             ; preds = %1344
  %1349 = load float, ptr %81, align 4, !tbaa !15
  %1350 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1349, ptr %1350, align 4, !tbaa !11
  %1351 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1351, align 4, !tbaa !14
  %1352 = load ptr, ptr %26, align 8, !tbaa !5
  %1353 = load ptr, ptr %32, align 8, !tbaa !5
  %1354 = load i64, ptr %65, align 8, !tbaa !9
  %1355 = load i64, ptr %50, align 8, !tbaa !9
  %1356 = mul nsw i64 %1354, %1355
  %1357 = add nsw i64 %1356, 1
  %1358 = getelementptr inbounds %struct.complex, ptr %1353, i64 %1357
  %1359 = call i32 @f2c_cscal(ptr noundef %1352, ptr noundef %62, ptr noundef %1358, ptr noundef @c__1)
  %1360 = load float, ptr %81, align 4, !tbaa !15
  %1361 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1360, ptr %1361, align 4, !tbaa !11
  %1362 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1362, align 4, !tbaa !14
  %1363 = load ptr, ptr %26, align 8, !tbaa !5
  %1364 = load ptr, ptr %38, align 8, !tbaa !5
  %1365 = load i64, ptr %65, align 8, !tbaa !9
  %1366 = load i64, ptr %56, align 8, !tbaa !9
  %1367 = mul nsw i64 %1365, %1366
  %1368 = add nsw i64 %1367, 1
  %1369 = getelementptr inbounds %struct.complex, ptr %1364, i64 %1368
  %1370 = call i32 @f2c_cscal(ptr noundef %1363, ptr noundef %62, ptr noundef %1369, ptr noundef @c__1)
  br label %1371

1371:                                             ; preds = %1348
  %1372 = load i64, ptr %65, align 8, !tbaa !9
  %1373 = add nsw i64 %1372, 1
  store i64 %1373, ptr %65, align 8, !tbaa !9
  br label %1344, !llvm.loop !25

1374:                                             ; preds = %1344
  %1375 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1375, ptr %60, align 8, !tbaa !9
  %1376 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %1376, ptr %65, align 8, !tbaa !9
  br label %1377

1377:                                             ; preds = %1406, %1374
  %1378 = load i64, ptr %65, align 8, !tbaa !9
  %1379 = load i64, ptr %60, align 8, !tbaa !9
  %1380 = icmp sle i64 %1378, %1379
  br i1 %1380, label %1381, label %1409

1381:                                             ; preds = %1377
  %1382 = load i64, ptr %72, align 8, !tbaa !9
  %1383 = sub nsw i64 %1382, 1
  store i64 %1383, ptr %61, align 8, !tbaa !9
  %1384 = load float, ptr %81, align 4, !tbaa !15
  %1385 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1384, ptr %1385, align 4, !tbaa !11
  %1386 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1386, align 4, !tbaa !14
  %1387 = load ptr, ptr %32, align 8, !tbaa !5
  %1388 = load i64, ptr %65, align 8, !tbaa !9
  %1389 = load i64, ptr %50, align 8, !tbaa !9
  %1390 = mul nsw i64 %1388, %1389
  %1391 = add nsw i64 %1390, 1
  %1392 = getelementptr inbounds %struct.complex, ptr %1387, i64 %1391
  %1393 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %1392, ptr noundef @c__1)
  %1394 = load i64, ptr %72, align 8, !tbaa !9
  %1395 = sub nsw i64 %1394, 1
  store i64 %1395, ptr %61, align 8, !tbaa !9
  %1396 = load float, ptr %81, align 4, !tbaa !15
  %1397 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1396, ptr %1397, align 4, !tbaa !11
  %1398 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1398, align 4, !tbaa !14
  %1399 = load ptr, ptr %38, align 8, !tbaa !5
  %1400 = load i64, ptr %65, align 8, !tbaa !9
  %1401 = load i64, ptr %56, align 8, !tbaa !9
  %1402 = mul nsw i64 %1400, %1401
  %1403 = add nsw i64 %1402, 1
  %1404 = getelementptr inbounds %struct.complex, ptr %1399, i64 %1403
  %1405 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %1404, ptr noundef @c__1)
  br label %1406

1406:                                             ; preds = %1381
  %1407 = load i64, ptr %65, align 8, !tbaa !9
  %1408 = add nsw i64 %1407, 1
  store i64 %1408, ptr %65, align 8, !tbaa !9
  br label %1377, !llvm.loop !26

1409:                                             ; preds = %1377
  %1410 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1410, ptr %60, align 8, !tbaa !9
  %1411 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %1411, ptr %65, align 8, !tbaa !9
  br label %1412

1412:                                             ; preds = %1449, %1409
  %1413 = load i64, ptr %65, align 8, !tbaa !9
  %1414 = load i64, ptr %60, align 8, !tbaa !9
  %1415 = icmp sle i64 %1413, %1414
  br i1 %1415, label %1416, label %1452

1416:                                             ; preds = %1412
  %1417 = load ptr, ptr %26, align 8, !tbaa !5
  %1418 = load i64, ptr %1417, align 8, !tbaa !9
  %1419 = load i64, ptr %68, align 8, !tbaa !9
  %1420 = sub nsw i64 %1418, %1419
  store i64 %1420, ptr %61, align 8, !tbaa !9
  %1421 = load float, ptr %81, align 4, !tbaa !15
  %1422 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1421, ptr %1422, align 4, !tbaa !11
  %1423 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1423, align 4, !tbaa !14
  %1424 = load ptr, ptr %32, align 8, !tbaa !5
  %1425 = load i64, ptr %68, align 8, !tbaa !9
  %1426 = add nsw i64 %1425, 1
  %1427 = load i64, ptr %65, align 8, !tbaa !9
  %1428 = load i64, ptr %50, align 8, !tbaa !9
  %1429 = mul nsw i64 %1427, %1428
  %1430 = add nsw i64 %1426, %1429
  %1431 = getelementptr inbounds %struct.complex, ptr %1424, i64 %1430
  %1432 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %1431, ptr noundef @c__1)
  %1433 = load ptr, ptr %26, align 8, !tbaa !5
  %1434 = load i64, ptr %1433, align 8, !tbaa !9
  %1435 = load i64, ptr %68, align 8, !tbaa !9
  %1436 = sub nsw i64 %1434, %1435
  store i64 %1436, ptr %61, align 8, !tbaa !9
  %1437 = load float, ptr %81, align 4, !tbaa !15
  %1438 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1437, ptr %1438, align 4, !tbaa !11
  %1439 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1439, align 4, !tbaa !14
  %1440 = load ptr, ptr %38, align 8, !tbaa !5
  %1441 = load i64, ptr %68, align 8, !tbaa !9
  %1442 = add nsw i64 %1441, 1
  %1443 = load i64, ptr %65, align 8, !tbaa !9
  %1444 = load i64, ptr %56, align 8, !tbaa !9
  %1445 = mul nsw i64 %1443, %1444
  %1446 = add nsw i64 %1442, %1445
  %1447 = getelementptr inbounds %struct.complex, ptr %1440, i64 %1446
  %1448 = call i32 @f2c_cscal(ptr noundef %61, ptr noundef %62, ptr noundef %1447, ptr noundef @c__1)
  br label %1449

1449:                                             ; preds = %1416
  %1450 = load i64, ptr %65, align 8, !tbaa !9
  %1451 = add nsw i64 %1450, 1
  store i64 %1451, ptr %65, align 8, !tbaa !9
  br label %1412, !llvm.loop !27

1452:                                             ; preds = %1412
  %1453 = load ptr, ptr %27, align 8, !tbaa !5
  %1454 = load i64, ptr %1453, align 8, !tbaa !9
  store i64 %1454, ptr %60, align 8, !tbaa !9
  %1455 = load i64, ptr %69, align 8, !tbaa !9
  %1456 = add nsw i64 %1455, 1
  store i64 %1456, ptr %65, align 8, !tbaa !9
  br label %1457

1457:                                             ; preds = %1484, %1452
  %1458 = load i64, ptr %65, align 8, !tbaa !9
  %1459 = load i64, ptr %60, align 8, !tbaa !9
  %1460 = icmp sle i64 %1458, %1459
  br i1 %1460, label %1461, label %1487

1461:                                             ; preds = %1457
  %1462 = load float, ptr %81, align 4, !tbaa !15
  %1463 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1462, ptr %1463, align 4, !tbaa !11
  %1464 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1464, align 4, !tbaa !14
  %1465 = load ptr, ptr %26, align 8, !tbaa !5
  %1466 = load ptr, ptr %32, align 8, !tbaa !5
  %1467 = load i64, ptr %65, align 8, !tbaa !9
  %1468 = load i64, ptr %50, align 8, !tbaa !9
  %1469 = mul nsw i64 %1467, %1468
  %1470 = add nsw i64 %1469, 1
  %1471 = getelementptr inbounds %struct.complex, ptr %1466, i64 %1470
  %1472 = call i32 @f2c_cscal(ptr noundef %1465, ptr noundef %62, ptr noundef %1471, ptr noundef @c__1)
  %1473 = load float, ptr %81, align 4, !tbaa !15
  %1474 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1473, ptr %1474, align 4, !tbaa !11
  %1475 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %1475, align 4, !tbaa !14
  %1476 = load ptr, ptr %26, align 8, !tbaa !5
  %1477 = load ptr, ptr %38, align 8, !tbaa !5
  %1478 = load i64, ptr %65, align 8, !tbaa !9
  %1479 = load i64, ptr %56, align 8, !tbaa !9
  %1480 = mul nsw i64 %1478, %1479
  %1481 = add nsw i64 %1480, 1
  %1482 = getelementptr inbounds %struct.complex, ptr %1477, i64 %1481
  %1483 = call i32 @f2c_cscal(ptr noundef %1476, ptr noundef %62, ptr noundef %1482, ptr noundef @c__1)
  br label %1484

1484:                                             ; preds = %1461
  %1485 = load i64, ptr %65, align 8, !tbaa !9
  %1486 = add nsw i64 %1485, 1
  store i64 %1486, ptr %65, align 8, !tbaa !9
  br label %1457, !llvm.loop !28

1487:                                             ; preds = %1457
  %1488 = load float, ptr %81, align 4, !tbaa !15
  %1489 = load ptr, ptr %40, align 8, !tbaa !5
  %1490 = load float, ptr %1489, align 4, !tbaa !15
  %1491 = fmul float %1490, %1488
  store float %1491, ptr %1489, align 4, !tbaa !15
  br label %1492

1492:                                             ; preds = %1487, %1338
  %1493 = load i64, ptr %64, align 8, !tbaa !9
  %1494 = load i64, ptr %66, align 8, !tbaa !9
  %1495 = add nsw i64 %1494, 2
  %1496 = icmp sgt i64 %1493, %1495
  br i1 %1496, label %1497, label %1546

1497:                                             ; preds = %1492
  %1498 = load i64, ptr %73, align 8, !tbaa !9
  %1499 = sub nsw i64 %1498, 1
  store i64 %1499, ptr %60, align 8, !tbaa !9
  %1500 = load ptr, ptr %32, align 8, !tbaa !5
  %1501 = load i64, ptr %72, align 8, !tbaa !9
  %1502 = load i64, ptr %73, align 8, !tbaa !9
  %1503 = load i64, ptr %50, align 8, !tbaa !9
  %1504 = mul nsw i64 %1502, %1503
  %1505 = add nsw i64 %1501, %1504
  %1506 = getelementptr inbounds %struct.complex, ptr %1500, i64 %1505
  %1507 = load ptr, ptr %33, align 8, !tbaa !5
  %1508 = load ptr, ptr %30, align 8, !tbaa !5
  %1509 = load i64, ptr %73, align 8, !tbaa !9
  %1510 = load i64, ptr %48, align 8, !tbaa !9
  %1511 = mul nsw i64 %1509, %1510
  %1512 = add nsw i64 %1511, 1
  %1513 = getelementptr inbounds %struct.complex, ptr %1508, i64 %1512
  %1514 = load ptr, ptr %31, align 8, !tbaa !5
  %1515 = load ptr, ptr %38, align 8, !tbaa !5
  %1516 = load i64, ptr %72, align 8, !tbaa !9
  %1517 = load i64, ptr %56, align 8, !tbaa !9
  %1518 = add nsw i64 %1516, %1517
  %1519 = getelementptr inbounds %struct.complex, ptr %1515, i64 %1518
  %1520 = load ptr, ptr %39, align 8, !tbaa !5
  %1521 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %70, ptr noundef %60, ptr noundef %71, ptr noundef @c_b45, ptr noundef %1506, ptr noundef %1507, ptr noundef %1513, ptr noundef %1514, ptr noundef @c_b45, ptr noundef %1519, ptr noundef %1520)
  %1522 = load i64, ptr %73, align 8, !tbaa !9
  %1523 = sub nsw i64 %1522, 1
  store i64 %1523, ptr %60, align 8, !tbaa !9
  %1524 = load ptr, ptr %38, align 8, !tbaa !5
  %1525 = load i64, ptr %72, align 8, !tbaa !9
  %1526 = load i64, ptr %73, align 8, !tbaa !9
  %1527 = load i64, ptr %56, align 8, !tbaa !9
  %1528 = mul nsw i64 %1526, %1527
  %1529 = add nsw i64 %1525, %1528
  %1530 = getelementptr inbounds %struct.complex, ptr %1524, i64 %1529
  %1531 = load ptr, ptr %39, align 8, !tbaa !5
  %1532 = load ptr, ptr %36, align 8, !tbaa !5
  %1533 = load i64, ptr %73, align 8, !tbaa !9
  %1534 = load i64, ptr %54, align 8, !tbaa !9
  %1535 = mul nsw i64 %1533, %1534
  %1536 = add nsw i64 %1535, 1
  %1537 = getelementptr inbounds %struct.complex, ptr %1532, i64 %1536
  %1538 = load ptr, ptr %37, align 8, !tbaa !5
  %1539 = load ptr, ptr %38, align 8, !tbaa !5
  %1540 = load i64, ptr %72, align 8, !tbaa !9
  %1541 = load i64, ptr %56, align 8, !tbaa !9
  %1542 = add nsw i64 %1540, %1541
  %1543 = getelementptr inbounds %struct.complex, ptr %1539, i64 %1542
  %1544 = load ptr, ptr %39, align 8, !tbaa !5
  %1545 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %70, ptr noundef %60, ptr noundef %71, ptr noundef @c_b45, ptr noundef %1530, ptr noundef %1531, ptr noundef %1537, ptr noundef %1538, ptr noundef @c_b45, ptr noundef %1543, ptr noundef %1544)
  br label %1546

1546:                                             ; preds = %1497, %1492
  %1547 = load i64, ptr %63, align 8, !tbaa !9
  %1548 = load i64, ptr %66, align 8, !tbaa !9
  %1549 = icmp slt i64 %1547, %1548
  br i1 %1549, label %1550, label %1613

1550:                                             ; preds = %1546
  %1551 = load ptr, ptr %26, align 8, !tbaa !5
  %1552 = load i64, ptr %1551, align 8, !tbaa !9
  %1553 = load i64, ptr %68, align 8, !tbaa !9
  %1554 = sub nsw i64 %1552, %1553
  store i64 %1554, ptr %60, align 8, !tbaa !9
  %1555 = load ptr, ptr %28, align 8, !tbaa !5
  %1556 = load i64, ptr %72, align 8, !tbaa !9
  %1557 = load i64, ptr %68, align 8, !tbaa !9
  %1558 = add nsw i64 %1557, 1
  %1559 = load i64, ptr %46, align 8, !tbaa !9
  %1560 = mul nsw i64 %1558, %1559
  %1561 = add nsw i64 %1556, %1560
  %1562 = getelementptr inbounds %struct.complex, ptr %1555, i64 %1561
  %1563 = load ptr, ptr %29, align 8, !tbaa !5
  %1564 = load ptr, ptr %32, align 8, !tbaa !5
  %1565 = load i64, ptr %72, align 8, !tbaa !9
  %1566 = load i64, ptr %73, align 8, !tbaa !9
  %1567 = load i64, ptr %50, align 8, !tbaa !9
  %1568 = mul nsw i64 %1566, %1567
  %1569 = add nsw i64 %1565, %1568
  %1570 = getelementptr inbounds %struct.complex, ptr %1564, i64 %1569
  %1571 = load ptr, ptr %33, align 8, !tbaa !5
  %1572 = load ptr, ptr %32, align 8, !tbaa !5
  %1573 = load i64, ptr %68, align 8, !tbaa !9
  %1574 = add nsw i64 %1573, 1
  %1575 = load i64, ptr %73, align 8, !tbaa !9
  %1576 = load i64, ptr %50, align 8, !tbaa !9
  %1577 = mul nsw i64 %1575, %1576
  %1578 = add nsw i64 %1574, %1577
  %1579 = getelementptr inbounds %struct.complex, ptr %1572, i64 %1578
  %1580 = load ptr, ptr %33, align 8, !tbaa !5
  %1581 = call i32 @f2c_cgemm(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %60, ptr noundef %71, ptr noundef %70, ptr noundef @c_b44, ptr noundef %1562, ptr noundef %1563, ptr noundef %1570, ptr noundef %1571, ptr noundef @c_b45, ptr noundef %1579, ptr noundef %1580)
  %1582 = load ptr, ptr %26, align 8, !tbaa !5
  %1583 = load i64, ptr %1582, align 8, !tbaa !9
  %1584 = load i64, ptr %68, align 8, !tbaa !9
  %1585 = sub nsw i64 %1583, %1584
  store i64 %1585, ptr %60, align 8, !tbaa !9
  %1586 = load ptr, ptr %34, align 8, !tbaa !5
  %1587 = load i64, ptr %72, align 8, !tbaa !9
  %1588 = load i64, ptr %68, align 8, !tbaa !9
  %1589 = add nsw i64 %1588, 1
  %1590 = load i64, ptr %52, align 8, !tbaa !9
  %1591 = mul nsw i64 %1589, %1590
  %1592 = add nsw i64 %1587, %1591
  %1593 = getelementptr inbounds %struct.complex, ptr %1586, i64 %1592
  %1594 = load ptr, ptr %35, align 8, !tbaa !5
  %1595 = load ptr, ptr %38, align 8, !tbaa !5
  %1596 = load i64, ptr %72, align 8, !tbaa !9
  %1597 = load i64, ptr %73, align 8, !tbaa !9
  %1598 = load i64, ptr %56, align 8, !tbaa !9
  %1599 = mul nsw i64 %1597, %1598
  %1600 = add nsw i64 %1596, %1599
  %1601 = getelementptr inbounds %struct.complex, ptr %1595, i64 %1600
  %1602 = load ptr, ptr %39, align 8, !tbaa !5
  %1603 = load ptr, ptr %32, align 8, !tbaa !5
  %1604 = load i64, ptr %68, align 8, !tbaa !9
  %1605 = add nsw i64 %1604, 1
  %1606 = load i64, ptr %73, align 8, !tbaa !9
  %1607 = load i64, ptr %50, align 8, !tbaa !9
  %1608 = mul nsw i64 %1606, %1607
  %1609 = add nsw i64 %1605, %1608
  %1610 = getelementptr inbounds %struct.complex, ptr %1603, i64 %1609
  %1611 = load ptr, ptr %33, align 8, !tbaa !5
  %1612 = call i32 @f2c_cgemm(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %60, ptr noundef %71, ptr noundef %70, ptr noundef @c_b44, ptr noundef %1593, ptr noundef %1594, ptr noundef %1601, ptr noundef %1602, ptr noundef @c_b45, ptr noundef %1610, ptr noundef %1611)
  br label %1613

1613:                                             ; preds = %1550, %1546
  br label %1614

1614:                                             ; preds = %1613
  %1615 = load i64, ptr %64, align 8, !tbaa !9
  %1616 = add nsw i64 %1615, -1
  store i64 %1616, ptr %64, align 8, !tbaa !9
  br label %1264, !llvm.loop !29

1617:                                             ; preds = %1264
  br label %1618

1618:                                             ; preds = %1617
  %1619 = load i64, ptr %63, align 8, !tbaa !9
  %1620 = add nsw i64 %1619, 1
  store i64 %1620, ptr %63, align 8, !tbaa !9
  br label %1242, !llvm.loop !30

1621:                                             ; preds = %1242
  br label %1622

1622:                                             ; preds = %1621, %1238
  %1623 = load i64, ptr %78, align 8, !tbaa !9
  %1624 = sitofp i64 %1623 to float
  %1625 = load ptr, ptr %42, align 8, !tbaa !5
  %1626 = getelementptr inbounds %struct.complex, ptr %1625, i64 1
  %1627 = getelementptr inbounds %struct.complex, ptr %1626, i32 0, i32 0
  store float %1624, ptr %1627, align 4, !tbaa !11
  %1628 = load ptr, ptr %42, align 8, !tbaa !5
  %1629 = getelementptr inbounds %struct.complex, ptr %1628, i64 1
  %1630 = getelementptr inbounds %struct.complex, ptr %1629, i32 0, i32 1
  store float 0.000000e+00, ptr %1630, align 4, !tbaa !14
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1631

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

; 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 i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

; Function Attrs: nounwind
declare double @sqrt(double noundef) #3

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

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

declare i32 @f2c_cgemm(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 "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }

!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, !13, i64 0}
!12 = !{!"", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!12, !13, i64 4}
!15 = !{!13, !13, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}


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

%struct.complex = type { float, float }

@.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__2 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__5 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c__1 = external hidden global i64, align 8
@c_b44 = external hidden global %struct.complex, align 4
@c_b45 = external hidden global %struct.complex, align 4

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

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

.critedge:                                        ; preds = %22
  %58 = load i64, ptr %1, align 8, !tbaa !5
  %or.cond716 = icmp ugt i64 %58, 4
  br i1 %or.cond716, label %.thread734.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 %.thread734

61:                                               ; preds = %59
  %62 = load i64, ptr %2, align 8, !tbaa !5
  %63 = icmp slt i64 %62, 1
  br i1 %63, label %.thread734.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 %.thread734.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 %.thread734.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 %.thread734.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 %.thread734.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 %.thread734.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 %.thread734.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 %.thread734.sink.split, label %.thread

.thread:                                          ; preds = %82
  br i1 %.not, label %91, label %85

85:                                               ; preds = %.thread
  %86 = load i64, ptr %1, align 8, !tbaa !5
  %.off = add i64 %86, -1
  %switch = icmp ult i64 %.off, 2
  br i1 %switch, label %87, label %91

87:                                               ; preds = %85
  %88 = shl nuw i64 %62, 1
  %89 = mul nsw i64 %88, %65
  %90 = tail call i64 @llvm.smax.i64(i64 %89, i64 1)
  br label %91

91:                                               ; preds = %85, %.thread, %87
  %.0658 = phi i64 [ %90, %87 ], [ 1, %85 ], [ 1, %.thread ]
  %92 = uitofp nneg i64 %.0658 to float
  store float %92, ptr %18, align 4, !tbaa !9
  %93 = getelementptr inbounds i8, ptr %18, i64 4
  store float 0.000000e+00, ptr %93, align 4, !tbaa !12
  %94 = load i64, ptr %19, align 8, !tbaa !5
  %95 = icmp sge i64 %94, %.0658
  %or.cond = select i1 %95, i1 true, i1 %55
  br i1 %or.cond, label %.thread729, label %.thread734.sink.split

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

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

.thread729:                                       ; preds = %91
  br i1 %55, label %.loopexit, label %99

99:                                               ; preds = %.thread729
  %100 = tail call i64 @ilaenv_(ptr noundef nonnull @c__2, ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  store i64 %100, ptr %27, align 8, !tbaa !5
  %101 = tail call i64 @ilaenv_(ptr noundef nonnull @c__5, ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  store i64 %101, ptr %28, align 8, !tbaa !5
  store i64 0, ptr %30, align 8, !tbaa !5
  br i1 %.not, label %111, label %102

102:                                              ; preds = %99
  %103 = load i64, ptr %1, align 8, !tbaa !5
  %104 = icmp sgt i64 %103, 2
  br i1 %104, label %105, label %109

105:                                              ; preds = %102
  %106 = add nsw i64 %103, -2
  store i64 %106, ptr %30, align 8, !tbaa !5
  %107 = tail call i32 @claset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %8, ptr noundef nonnull %9) #5
  %108 = tail call i32 @claset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %14, ptr noundef nonnull %15) #5
  br label %111

109:                                              ; preds = %102
  %110 = icmp sgt i64 %103, 0
  %spec.select723 = select i1 %110, i64 2, i64 1
  br label %111

111:                                              ; preds = %109, %105, %99
  %112 = phi i1 [ false, %105 ], [ false, %99 ], [ %110, %109 ]
  %113 = phi i64 [ 1, %105 ], [ 1, %99 ], [ %spec.select723, %109 ]
  %114 = icmp slt i64 %100, 2
  %115 = icmp slt i64 %101, 2
  %or.cond5 = select i1 %114, i1 %115, i1 false
  br i1 %or.cond5, label %.lr.ph854.preheader, label %116

116:                                              ; preds = %111
  %117 = load i64, ptr %2, align 8, !tbaa !5
  %.not697 = icmp slt i64 %100, %117
  br i1 %.not697, label %.preheader, label %118

.preheader:                                       ; preds = %118, %116
  br label %185

118:                                              ; preds = %116
  %119 = load i64, ptr %3, align 8, !tbaa !5
  %.not698 = icmp slt i64 %101, %119
  br i1 %.not698, label %.preheader, label %.lr.ph854.preheader

.lr.ph854.preheader:                              ; preds = %118, %111
  store float 1.000000e+00, ptr %16, align 4, !tbaa !13
  store float 0.000000e+00, ptr %32, align 4, !tbaa !13
  store float 1.000000e+00, ptr %29, align 4, !tbaa !13
  %120 = load i64, ptr %2, align 8, !tbaa !5
  %121 = load i64, ptr %3, align 8, !tbaa !5
  %122 = call i32 @ctgsy2_(ptr noundef %0, ptr noundef nonnull %30, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %21) #5
  %123 = load float, ptr %32, align 4, !tbaa !13
  %124 = fcmp une float %123, 0.000000e+00
  br i1 %124, label %125, label %141

125:                                              ; preds = %.lr.ph854.preheader
  %126 = mul nsw i64 %121, %120
  %127 = load i64, ptr %1, align 8, !tbaa !5
  switch i64 %127, label %.sink.split [
    i64 1, label %128
    i64 3, label %128
  ]

128:                                              ; preds = %125, %125
  %129 = load i64, ptr %2, align 8, !tbaa !5
  %130 = shl i64 %129, 1
  %131 = load i64, ptr %3, align 8, !tbaa !5
  %132 = mul nsw i64 %130, %131
  br label %.sink.split

.sink.split:                                      ; preds = %125, %128
  %.sink891 = phi i64 [ %132, %128 ], [ %126, %125 ]
  %133 = sitofp i64 %.sink891 to float
  %134 = fpext float %133 to double
  %135 = call double @sqrt(double noundef %134) #5
  %.sink875.in = load float, ptr %32, align 4, !tbaa !13
  %.sink875 = fpext float %.sink875.in to double
  %.sink877 = load float, ptr %29, align 4, !tbaa !13
  %136 = fpext float %.sink877 to double
  %137 = call double @sqrt(double noundef %136) #5
  %138 = fmul double %137, %.sink875
  %139 = fdiv double %135, %138
  %140 = fptrunc double %139 to float
  store float %140, ptr %17, align 4, !tbaa !13
  br label %141

141:                                              ; preds = %.sink.split, %.lr.ph854.preheader
  br i1 %112, label %142, label %155

142:                                              ; preds = %141
  br i1 %.not, label %145, label %143

143:                                              ; preds = %142
  %144 = load i64, ptr %1, align 8, !tbaa !5
  store i64 %144, ptr %30, align 8, !tbaa !5
  br label %145

145:                                              ; preds = %143, %142
  %146 = load float, ptr %16, align 4, !tbaa !13
  %147 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %18, ptr noundef nonnull %2) #5
  %148 = load i64, ptr %2, align 8, !tbaa !5
  %149 = load i64, ptr %3, align 8, !tbaa !5
  %150 = mul nsw i64 %149, %148
  %151 = getelementptr %struct.complex, ptr %18, i64 %150
  %152 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %151, ptr noundef nonnull %2) #5
  %153 = call i32 @claset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %8, ptr noundef nonnull %9) #5
  %154 = call i32 @claset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %14, ptr noundef nonnull %15) #5
  br label %155

155:                                              ; preds = %141, %145
  %.1657.peel = phi float [ %146, %145 ], [ undef, %141 ]
  %.not714.not.peel = icmp ugt i64 %113, 1
  br i1 %.not714.not.peel, label %.lr.ph854, label %.loopexit

.lr.ph854:                                        ; preds = %155
  store float 1.000000e+00, ptr %16, align 4, !tbaa !13
  store float 0.000000e+00, ptr %32, align 4, !tbaa !13
  store float 1.000000e+00, ptr %29, align 4, !tbaa !13
  %156 = load i64, ptr %2, align 8, !tbaa !5
  %157 = load i64, ptr %3, align 8, !tbaa !5
  %158 = call i32 @ctgsy2_(ptr noundef %0, ptr noundef nonnull %30, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %21) #5
  %159 = load float, ptr %32, align 4, !tbaa !13
  %160 = fcmp une float %159, 0.000000e+00
  br i1 %160, label %161, label %177

161:                                              ; preds = %.lr.ph854
  %162 = mul nsw i64 %157, %156
  %163 = load i64, ptr %1, align 8, !tbaa !5
  switch i64 %163, label %.sink.split878 [
    i64 1, label %164
    i64 3, label %164
  ]

164:                                              ; preds = %161, %161
  %165 = load i64, ptr %2, align 8, !tbaa !5
  %166 = shl i64 %165, 1
  %167 = load i64, ptr %3, align 8, !tbaa !5
  %168 = mul nsw i64 %166, %167
  br label %.sink.split878

.sink.split878:                                   ; preds = %161, %164
  %.sink894 = phi i64 [ %168, %164 ], [ %162, %161 ]
  %169 = sitofp i64 %.sink894 to float
  %170 = fpext float %169 to double
  %171 = call double @sqrt(double noundef %170) #5
  %.sink884.in = load float, ptr %32, align 4, !tbaa !13
  %.sink884 = fpext float %.sink884.in to double
  %.sink886 = load float, ptr %29, align 4, !tbaa !13
  %172 = fpext float %.sink886 to double
  %173 = call double @sqrt(double noundef %172) #5
  %174 = fmul double %173, %.sink884
  %175 = fdiv double %171, %174
  %176 = fptrunc double %175 to float
  store float %176, ptr %17, align 4, !tbaa !13
  br label %177

177:                                              ; preds = %.sink.split878, %.lr.ph854
  br i1 %112, label %178, label %.loopexit

178:                                              ; preds = %177
  %179 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull %9) #5
  %180 = load i64, ptr %2, align 8, !tbaa !5
  %181 = load i64, ptr %3, align 8, !tbaa !5
  %182 = mul nsw i64 %181, %180
  %183 = getelementptr %struct.complex, ptr %18, i64 %182
  %184 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %183, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %15) #5
  store float %.1657.peel, ptr %16, align 4, !tbaa !13
  br label %.loopexit

185:                                              ; preds = %.preheader, %188
  %186 = phi i64 [ %192, %188 ], [ %117, %.preheader ]
  %.0675 = phi i64 [ %191, %188 ], [ 1, %.preheader ]
  %.0665 = phi i64 [ %189, %188 ], [ 0, %.preheader ]
  %187 = icmp sgt i64 %.0675, %186
  br i1 %187, label %193, label %188

188:                                              ; preds = %185
  %189 = add nuw nsw i64 %.0665, 1
  %190 = getelementptr i64, ptr %20, i64 %.0665
  store i64 %.0675, ptr %190, align 8, !tbaa !5
  %191 = add nsw i64 %.0675, %100
  %192 = load i64, ptr %2, align 8, !tbaa !5
  %.not699 = icmp slt i64 %191, %192
  br i1 %.not699, label %185, label %193

193:                                              ; preds = %188, %185
  %194 = phi i64 [ %186, %185 ], [ %192, %188 ]
  %.1666 = phi i64 [ %.0665, %185 ], [ %189, %188 ]
  %195 = add nsw i64 %194, 1
  %196 = getelementptr i64, ptr %20, i64 %.1666
  store i64 %195, ptr %196, align 8, !tbaa !5
  %197 = getelementptr inbounds i64, ptr %52, i64 %.1666
  %198 = load i64, ptr %197, align 8, !tbaa !5
  %199 = icmp eq i64 %198, %195
  %200 = sext i1 %199 to i64
  %spec.select724 = add nsw i64 %.1666, %200
  %201 = add nsw i64 %spec.select724, 1
  %.pre = load i64, ptr %3, align 8, !tbaa !5
  br label %202

202:                                              ; preds = %205, %193
  %203 = phi i64 [ %.pre, %193 ], [ %209, %205 ]
  %.0672 = phi i64 [ 1, %193 ], [ %208, %205 ]
  %.0662 = phi i64 [ %201, %193 ], [ %206, %205 ]
  %204 = icmp sgt i64 %.0672, %203
  br i1 %204, label %210, label %205

205:                                              ; preds = %202
  %206 = add nsw i64 %.0662, 1
  %207 = getelementptr i64, ptr %20, i64 %.0662
  store i64 %.0672, ptr %207, align 8, !tbaa !5
  %208 = add nsw i64 %.0672, %101
  %209 = load i64, ptr %3, align 8, !tbaa !5
  %.not700 = icmp slt i64 %208, %209
  br i1 %.not700, label %202, label %210

210:                                              ; preds = %205, %202
  %211 = phi i64 [ %203, %202 ], [ %209, %205 ]
  %.1663 = phi i64 [ %.0662, %202 ], [ %206, %205 ]
  %212 = add nsw i64 %211, 1
  %213 = getelementptr i64, ptr %20, i64 %.1663
  store i64 %212, ptr %213, align 8, !tbaa !5
  %214 = getelementptr inbounds i64, ptr %52, i64 %.1663
  %215 = load i64, ptr %214, align 8, !tbaa !5
  %216 = icmp eq i64 %215, %212
  %217 = sext i1 %216 to i64
  %spec.select725 = add nsw i64 %.1663, %217
  br i1 %.not, label %398, label %.lr.ph

.lr.ph:                                           ; preds = %210
  %218 = add nsw i64 %spec.select724, 2
  %.not708787 = icmp sgt i64 %218, %spec.select725
  %invariant.gep775 = getelementptr i8, ptr %36, i64 8
  %invariant.gep777 = getelementptr i8, ptr %42, i64 8
  %invariant.gep779 = getelementptr i8, ptr %45, i64 8
  %invariant.gep781 = getelementptr i8, ptr %51, i64 8
  %219 = icmp sgt i64 %spec.select724, 0
  %220 = add i64 %37, 1
  %221 = add i64 %46, 1
  %222 = getelementptr inbounds i8, ptr %26, i64 4
  %223 = getelementptr inbounds i64, ptr %52, i64 %spec.select725
  %224 = getelementptr i64, ptr %20, i64 %spec.select725
  br label %225

225:                                              ; preds = %.lr.ph, %396
  %.1802 = phi i64 [ 1, %.lr.ph ], [ %397, %396 ]
  %.2801 = phi float [ undef, %.lr.ph ], [ %.3, %396 ]
  store float 1.000000e+00, ptr %16, align 4, !tbaa !13
  store float 0.000000e+00, ptr %32, align 4, !tbaa !13
  store float 1.000000e+00, ptr %29, align 4, !tbaa !13
  br i1 %.not708787, label %._crit_edge792.thread, label %.lr.ph791

.lr.ph791:                                        ; preds = %225
  br i1 %219, label %.lr.ph786.us, label %.loopexit746.preheader

.loopexit746.preheader:                           ; preds = %.lr.ph791
  %226 = load i64, ptr %223, align 8, !tbaa !5
  %227 = load i64, ptr %224, align 8, !tbaa !5
  %228 = sub i64 %227, %226
  store i64 %228, ptr %28, align 8, !tbaa !5
  br label %._crit_edge792.thread

.lr.ph786.us:                                     ; preds = %.lr.ph791, %..loopexit746_crit_edge.us
  %.0660789.us = phi i64 [ %276, %..loopexit746_crit_edge.us ], [ 0, %.lr.ph791 ]
  %.1673788.us = phi i64 [ %343, %..loopexit746_crit_edge.us ], [ %218, %.lr.ph791 ]
  %229 = getelementptr inbounds i64, ptr %52, i64 %.1673788.us
  %230 = load i64, ptr %229, align 8, !tbaa !5
  %231 = getelementptr i64, ptr %20, i64 %.1673788.us
  %232 = load i64, ptr %231, align 8, !tbaa !5
  %233 = add nsw i64 %232, -1
  %234 = sub i64 %232, %230
  store i64 %234, ptr %28, align 8, !tbaa !5
  %235 = mul i64 %230, %220
  %236 = getelementptr inbounds %struct.complex, ptr %39, i64 %235
  %237 = mul nsw i64 %230, %40
  %238 = mul i64 %230, %221
  %239 = getelementptr inbounds %struct.complex, ptr %48, i64 %238
  %240 = mul nsw i64 %230, %49
  %241 = add nsw i64 %230, -1
  %gep778.us = getelementptr %struct.complex, ptr %invariant.gep777, i64 %237
  %gep782.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %240
  %242 = icmp slt i64 %.1673788.us, %spec.select725
  %243 = mul nsw i64 %232, %37
  %244 = getelementptr %struct.complex, ptr %39, i64 %230
  %245 = getelementptr %struct.complex, ptr %244, i64 %243
  %246 = mul nsw i64 %232, %40
  %247 = mul nsw i64 %232, %46
  %248 = getelementptr %struct.complex, ptr %48, i64 %230
  %249 = getelementptr %struct.complex, ptr %248, i64 %247
  %250 = mul nsw i64 %232, %49
  %.not709750.us = icmp slt i64 %230, 2
  %.not710756.us.not = icmp slt i64 %230, %232
  br label %251

251:                                              ; preds = %.backedge867, %.lr.ph786.us
  %.1661784.us = phi i64 [ %.0660789.us, %.lr.ph786.us ], [ %276, %.backedge867 ]
  %.1676783.us = phi i64 [ %spec.select724, %.lr.ph786.us ], [ %.1676783.us.be, %.backedge867 ]
  %252 = getelementptr inbounds i64, ptr %52, i64 %.1676783.us
  %253 = load i64, ptr %252, align 8, !tbaa !5
  %254 = getelementptr i64, ptr %20, i64 %.1676783.us
  %255 = load i64, ptr %254, align 8, !tbaa !5
  %256 = add nsw i64 %255, -1
  %257 = sub i64 %255, %253
  store i64 %257, ptr %27, align 8, !tbaa !5
  %258 = mul nsw i64 %253, %34
  %259 = getelementptr %struct.complex, ptr %36, i64 %253
  %260 = getelementptr %struct.complex, ptr %259, i64 %258
  %261 = getelementptr %struct.complex, ptr %42, i64 %253
  %262 = getelementptr %struct.complex, ptr %261, i64 %237
  %263 = mul nsw i64 %253, %43
  %264 = getelementptr %struct.complex, ptr %45, i64 %253
  %265 = getelementptr %struct.complex, ptr %264, i64 %263
  %266 = getelementptr %struct.complex, ptr %51, i64 %253
  %267 = getelementptr %struct.complex, ptr %266, i64 %240
  %268 = call i32 @ctgsy2_(ptr noundef %0, ptr noundef nonnull %30, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %260, ptr noundef nonnull %5, ptr noundef %236, ptr noundef nonnull %7, ptr noundef %262, ptr noundef nonnull %9, ptr noundef %265, ptr noundef nonnull %11, ptr noundef %239, ptr noundef nonnull %13, ptr noundef %267, ptr noundef nonnull %15, ptr noundef nonnull %33, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %31) #5
  %269 = load i64, ptr %31, align 8, !tbaa !5
  %270 = icmp sgt i64 %269, 0
  br i1 %270, label %271, label %272

271:                                              ; preds = %251
  store i64 %269, ptr %21, align 8, !tbaa !5
  br label %272

272:                                              ; preds = %271, %251
  %273 = load i64, ptr %27, align 8, !tbaa !5
  %274 = load i64, ptr %28, align 8, !tbaa !5
  %275 = mul nsw i64 %274, %273
  %276 = add nsw i64 %275, %.1661784.us
  %277 = load float, ptr %33, align 4, !tbaa !13
  %278 = fcmp une float %277, 1.000000e+00
  br i1 %278, label %279, label %324

279:                                              ; preds = %272
  store i64 %241, ptr %24, align 8, !tbaa !5
  br i1 %.not709750.us, label %._crit_edge.us, label %.lr.ph.us

.lr.ph.us:                                        ; preds = %279, %.lr.ph.us
  %.0668751.us = phi i64 [ %286, %.lr.ph.us ], [ 1, %279 ]
  %280 = load float, ptr %33, align 4, !tbaa !13
  store float %280, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %281 = mul nsw i64 %.0668751.us, %40
  %gep.us = getelementptr %struct.complex, ptr %invariant.gep777, i64 %281
  %282 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep.us, ptr noundef nonnull @c__1) #5
  %283 = load float, ptr %33, align 4, !tbaa !13
  store float %283, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %284 = mul nsw i64 %.0668751.us, %49
  %gep749.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %284
  %285 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep749.us, ptr noundef nonnull @c__1) #5
  %286 = add nuw nsw i64 %.0668751.us, 1
  %287 = load i64, ptr %24, align 8, !tbaa !5
  %.not709.us.not = icmp slt i64 %.0668751.us, %287
  br i1 %.not709.us.not, label %.lr.ph.us, label %._crit_edge.us, !llvm.loop !14

._crit_edge.us:                                   ; preds = %.lr.ph.us, %279
  store i64 %233, ptr %24, align 8, !tbaa !5
  br i1 %.not710756.us.not, label %.lr.ph759.us, label %._crit_edge765.us

288:                                              ; preds = %.lr.ph759.us, %288
  %.1669757.us = phi i64 [ %230, %.lr.ph759.us ], [ %295, %288 ]
  store i64 %340, ptr %25, align 8, !tbaa !5
  %289 = load float, ptr %33, align 4, !tbaa !13
  store float %289, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %290 = mul nsw i64 %.1669757.us, %40
  %gep753.us = getelementptr %struct.complex, ptr %invariant.gep777, i64 %290
  %291 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep753.us, ptr noundef nonnull @c__1) #5
  store i64 %340, ptr %25, align 8, !tbaa !5
  %292 = load float, ptr %33, align 4, !tbaa !13
  store float %292, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %293 = mul nsw i64 %.1669757.us, %49
  %gep755.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %293
  %294 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep755.us, ptr noundef nonnull @c__1) #5
  %295 = add nsw i64 %.1669757.us, 1
  %296 = load i64, ptr %24, align 8, !tbaa !5
  %.not710.us.not = icmp slt i64 %.1669757.us, %296
  br i1 %.not710.us.not, label %288, label %._crit_edge760.us, !llvm.loop !16

._crit_edge760.us:                                ; preds = %288
  store i64 %233, ptr %24, align 8, !tbaa !5
  br i1 %.not710756.us.not, label %.lr.ph764.us, label %._crit_edge765.us

297:                                              ; preds = %.lr.ph764.us, %297
  %.2670762.us = phi i64 [ %230, %.lr.ph764.us ], [ %310, %297 ]
  %298 = load i64, ptr %2, align 8, !tbaa !5
  %299 = sub nsw i64 %298, %256
  store i64 %299, ptr %25, align 8, !tbaa !5
  %300 = load float, ptr %33, align 4, !tbaa !13
  store float %300, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %301 = mul nsw i64 %.2670762.us, %40
  %302 = getelementptr %struct.complex, ptr %341, i64 %301
  %303 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %302, ptr noundef nonnull @c__1) #5
  %304 = load i64, ptr %2, align 8, !tbaa !5
  %305 = sub nsw i64 %304, %256
  store i64 %305, ptr %25, align 8, !tbaa !5
  %306 = load float, ptr %33, align 4, !tbaa !13
  store float %306, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %307 = mul nsw i64 %.2670762.us, %49
  %308 = getelementptr %struct.complex, ptr %342, i64 %307
  %309 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %308, ptr noundef nonnull @c__1) #5
  %310 = add nsw i64 %.2670762.us, 1
  %311 = load i64, ptr %24, align 8, !tbaa !5
  %.not711.us.not = icmp slt i64 %.2670762.us, %311
  br i1 %.not711.us.not, label %297, label %._crit_edge765.us, !llvm.loop !17

._crit_edge765.us:                                ; preds = %297, %._crit_edge.us, %._crit_edge760.us
  %312 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %312, ptr %24, align 8, !tbaa !5
  %.not712770.us = icmp sgt i64 %232, %312
  br i1 %.not712770.us, label %._crit_edge774.us, label %.lr.ph773.us

.lr.ph773.us:                                     ; preds = %._crit_edge765.us, %.lr.ph773.us
  %.3671771.us = phi i64 [ %319, %.lr.ph773.us ], [ %232, %._crit_edge765.us ]
  %313 = load float, ptr %33, align 4, !tbaa !13
  store float %313, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %314 = mul nsw i64 %.3671771.us, %40
  %gep767.us = getelementptr %struct.complex, ptr %invariant.gep777, i64 %314
  %315 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep767.us, ptr noundef nonnull @c__1) #5
  %316 = load float, ptr %33, align 4, !tbaa !13
  store float %316, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %222, align 4, !tbaa !12
  %317 = mul nsw i64 %.3671771.us, %49
  %gep769.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %317
  %318 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep769.us, ptr noundef nonnull @c__1) #5
  %319 = add nsw i64 %.3671771.us, 1
  %320 = load i64, ptr %24, align 8, !tbaa !5
  %.not712.us.not = icmp slt i64 %.3671771.us, %320
  br i1 %.not712.us.not, label %.lr.ph773.us, label %._crit_edge774.us, !llvm.loop !18

._crit_edge774.us:                                ; preds = %.lr.ph773.us, %._crit_edge765.us
  %321 = load float, ptr %33, align 4, !tbaa !13
  %322 = load float, ptr %16, align 4, !tbaa !13
  %323 = fmul float %321, %322
  store float %323, ptr %16, align 4, !tbaa !13
  br label %324

324:                                              ; preds = %._crit_edge774.us, %272
  %.not713.us = icmp eq i64 %.1676783.us, 1
  br i1 %.not713.us, label %.thread866, label %325

325:                                              ; preds = %324
  %326 = add nsw i64 %253, -1
  store i64 %326, ptr %24, align 8, !tbaa !5
  %gep776.us = getelementptr %struct.complex, ptr %invariant.gep775, i64 %258
  %327 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b44, ptr noundef %gep776.us, ptr noundef nonnull %5, ptr noundef %262, ptr noundef nonnull %9, ptr noundef nonnull @c_b45, ptr noundef %gep778.us, ptr noundef nonnull %9) #5
  store i64 %326, ptr %24, align 8, !tbaa !5
  %gep780.us = getelementptr %struct.complex, ptr %invariant.gep779, i64 %263
  %328 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b44, ptr noundef %gep780.us, ptr noundef nonnull %11, ptr noundef %262, ptr noundef nonnull %9, ptr noundef nonnull @c_b45, ptr noundef %gep782.us, ptr noundef nonnull %15) #5
  br i1 %242, label %329, label %.thread862

.thread866:                                       ; preds = %324
  br i1 %242, label %329, label %._crit_edge792

329:                                              ; preds = %.thread866, %325
  %330 = load i64, ptr %3, align 8, !tbaa !5
  %331 = sub nsw i64 %330, %233
  store i64 %331, ptr %24, align 8, !tbaa !5
  %332 = getelementptr %struct.complex, ptr %261, i64 %246
  %333 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b45, ptr noundef %267, ptr noundef nonnull %15, ptr noundef %245, ptr noundef nonnull %7, ptr noundef nonnull @c_b45, ptr noundef %332, ptr noundef nonnull %9) #5
  %334 = load i64, ptr %3, align 8, !tbaa !5
  %335 = sub nsw i64 %334, %233
  store i64 %335, ptr %24, align 8, !tbaa !5
  %336 = getelementptr %struct.complex, ptr %266, i64 %250
  %337 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b45, ptr noundef %267, ptr noundef nonnull %15, ptr noundef %249, ptr noundef nonnull %13, ptr noundef nonnull @c_b45, ptr noundef %336, ptr noundef nonnull %15) #5
  %338 = icmp sgt i64 %.1676783.us, 1
  br i1 %338, label %.backedge867, label %..loopexit746_crit_edge.us

.backedge867:                                     ; preds = %329, %.thread862
  %.1676783.us.be = add nsw i64 %.1676783.us, -1
  br label %251, !llvm.loop !19

.thread862:                                       ; preds = %325
  %339 = icmp sgt i64 %.1676783.us, 1
  br i1 %339, label %.backedge867, label %._crit_edge792

.lr.ph759.us:                                     ; preds = %._crit_edge.us
  %340 = add nsw i64 %253, -1
  br label %288

.lr.ph764.us:                                     ; preds = %._crit_edge760.us
  %341 = getelementptr %struct.complex, ptr %42, i64 %255
  %342 = getelementptr %struct.complex, ptr %51, i64 %255
  br label %297

..loopexit746_crit_edge.us:                       ; preds = %329
  %343 = add nuw nsw i64 %.1673788.us, 1
  br label %.lr.ph786.us

._crit_edge792:                                   ; preds = %.thread866, %.thread862
  %.pre860 = load float, ptr %32, align 4, !tbaa !13
  %344 = fcmp une float %.pre860, 0.000000e+00
  br i1 %344, label %345, label %._crit_edge792.thread

345:                                              ; preds = %._crit_edge792
  %346 = load i64, ptr %1, align 8, !tbaa !5
  switch i64 %346, label %363 [
    i64 1, label %347
    i64 3, label %347
  ]

347:                                              ; preds = %345, %345
  %348 = load i64, ptr %2, align 8, !tbaa !5
  %349 = shl i64 %348, 1
  %350 = load i64, ptr %3, align 8, !tbaa !5
  %351 = mul nsw i64 %349, %350
  %352 = sitofp i64 %351 to float
  %353 = fpext float %352 to double
  %354 = call double @sqrt(double noundef %353) #5
  %355 = load float, ptr %32, align 4, !tbaa !13
  %356 = fpext float %355 to double
  %357 = load float, ptr %29, align 4, !tbaa !13
  %358 = fpext float %357 to double
  %359 = call double @sqrt(double noundef %358) #5
  %360 = fmul double %359, %356
  %361 = fdiv double %354, %360
  %362 = fptrunc double %361 to float
  store float %362, ptr %17, align 4, !tbaa !13
  br label %._crit_edge792.thread

363:                                              ; preds = %345
  %364 = sitofp i64 %276 to float
  %365 = fpext float %364 to double
  %366 = call double @sqrt(double noundef %365) #5
  %367 = load float, ptr %32, align 4, !tbaa !13
  %368 = fpext float %367 to double
  %369 = load float, ptr %29, align 4, !tbaa !13
  %370 = fpext float %369 to double
  %371 = call double @sqrt(double noundef %370) #5
  %372 = fmul double %371, %368
  %373 = fdiv double %366, %372
  %374 = fptrunc double %373 to float
  store float %374, ptr %17, align 4, !tbaa !13
  br label %._crit_edge792.thread

._crit_edge792.thread:                            ; preds = %.loopexit746.preheader, %225, %347, %363, %._crit_edge792
  %375 = icmp eq i64 %.1802, 1
  %or.cond11 = and i1 %112, %375
  br i1 %or.cond11, label %376, label %387

376:                                              ; preds = %._crit_edge792.thread
  %377 = load i64, ptr %1, align 8, !tbaa !5
  store i64 %377, ptr %30, align 8, !tbaa !5
  %378 = load float, ptr %16, align 4, !tbaa !13
  %379 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %18, ptr noundef nonnull %2) #5
  %380 = load i64, ptr %2, align 8, !tbaa !5
  %381 = load i64, ptr %3, align 8, !tbaa !5
  %382 = mul nsw i64 %381, %380
  %383 = getelementptr %struct.complex, ptr %18, i64 %382
  %384 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %383, ptr noundef nonnull %2) #5
  %385 = call i32 @claset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %8, ptr noundef nonnull %9) #5
  %386 = call i32 @claset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %14, ptr noundef nonnull %15) #5
  br label %396

387:                                              ; preds = %._crit_edge792.thread
  %388 = icmp eq i64 %.1802, 2
  %or.cond13 = and i1 %112, %388
  br i1 %or.cond13, label %389, label %396

389:                                              ; preds = %387
  %390 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull %9) #5
  %391 = load i64, ptr %2, align 8, !tbaa !5
  %392 = load i64, ptr %3, align 8, !tbaa !5
  %393 = mul nsw i64 %392, %391
  %394 = getelementptr %struct.complex, ptr %18, i64 %393
  %395 = call i32 @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %394, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %15) #5
  store float %.2801, ptr %16, align 4, !tbaa !13
  br label %396

396:                                              ; preds = %376, %389, %387
  %.3 = phi float [ %378, %376 ], [ %.2801, %389 ], [ %.2801, %387 ]
  %397 = add nuw nsw i64 %.1802, 1
  %.not707.not = icmp ult i64 %.1802, %113
  br i1 %.not707.not, label %225, label %.loopexit745, !llvm.loop !20

398:                                              ; preds = %210
  store float 1.000000e+00, ptr %16, align 4, !tbaa !13
  %.not701840 = icmp slt i64 %spec.select724, 1
  br i1 %.not701840, label %.loopexit745, label %.lr.ph843

.lr.ph843:                                        ; preds = %398
  %399 = add nuw nsw i64 %spec.select724, 2
  %invariant.gep832 = getelementptr i8, ptr %39, i64 8
  %invariant.gep834 = getelementptr i8, ptr %48, i64 8
  %.not702836 = icmp slt i64 %spec.select725, %399
  %400 = add i64 %34, 1
  %401 = add i64 %43, 1
  %invariant.gep803 = getelementptr i8, ptr %42, i64 8
  %invariant.gep804 = getelementptr i8, ptr %51, i64 8
  %402 = getelementptr inbounds i8, ptr %26, i64 4
  br i1 %.not702836, label %.loopexit745, label %.lr.ph839

..loopexit744_crit_edge:                          ; preds = %501
  %403 = add nuw nsw i64 %.2677841, 1
  br label %.lr.ph839

.lr.ph839:                                        ; preds = %.lr.ph843, %..loopexit744_crit_edge
  %.2677841 = phi i64 [ %403, %..loopexit744_crit_edge ], [ 1, %.lr.ph843 ]
  %404 = getelementptr inbounds i64, ptr %52, i64 %.2677841
  %405 = load i64, ptr %404, align 8, !tbaa !5
  %406 = getelementptr i64, ptr %20, i64 %.2677841
  %407 = load i64, ptr %406, align 8, !tbaa !5
  %408 = add nsw i64 %407, -1
  %409 = sub i64 %407, %405
  store i64 %409, ptr %27, align 8, !tbaa !5
  %410 = mul i64 %405, %400
  %411 = getelementptr inbounds %struct.complex, ptr %36, i64 %410
  %412 = getelementptr %struct.complex, ptr %42, i64 %405
  %413 = mul i64 %405, %401
  %414 = getelementptr inbounds %struct.complex, ptr %45, i64 %413
  %415 = getelementptr %struct.complex, ptr %51, i64 %405
  %416 = add nsw i64 %405, -1
  %417 = getelementptr %struct.complex, ptr %42, i64 %407
  %418 = getelementptr %struct.complex, ptr %51, i64 %407
  %419 = getelementptr %struct.complex, ptr %415, i64 %49
  %420 = icmp slt i64 %.2677841, %spec.select724
  %421 = mul nsw i64 %407, %34
  %422 = getelementptr %struct.complex, ptr %36, i64 %405
  %423 = getelementptr %struct.complex, ptr %422, i64 %421
  %424 = mul nsw i64 %407, %43
  %425 = getelementptr %struct.complex, ptr %45, i64 %405
  %426 = getelementptr %struct.complex, ptr %425, i64 %424
  br label %427

427:                                              ; preds = %.backedge, %.lr.ph839
  %.2674837 = phi i64 [ %spec.select725, %.lr.ph839 ], [ %.2674837.be, %.backedge ]
  %428 = getelementptr inbounds i64, ptr %52, i64 %.2674837
  %429 = load i64, ptr %428, align 8, !tbaa !5
  %430 = getelementptr i64, ptr %20, i64 %.2674837
  %431 = load i64, ptr %430, align 8, !tbaa !5
  %432 = add nsw i64 %431, -1
  %433 = sub i64 %431, %429
  store i64 %433, ptr %28, align 8, !tbaa !5
  %434 = mul nsw i64 %429, %37
  %435 = getelementptr %struct.complex, ptr %39, i64 %429
  %436 = getelementptr %struct.complex, ptr %435, i64 %434
  %437 = mul nsw i64 %429, %40
  %438 = getelementptr %struct.complex, ptr %412, i64 %437
  %439 = mul nsw i64 %429, %46
  %440 = getelementptr %struct.complex, ptr %48, i64 %429
  %441 = getelementptr %struct.complex, ptr %440, i64 %439
  %442 = mul nsw i64 %429, %49
  %443 = getelementptr %struct.complex, ptr %415, i64 %442
  %444 = call i32 @ctgsy2_(ptr noundef %0, ptr noundef nonnull %30, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %411, ptr noundef nonnull %5, ptr noundef %436, ptr noundef nonnull %7, ptr noundef %438, ptr noundef nonnull %9, ptr noundef %414, ptr noundef nonnull %11, ptr noundef %441, ptr noundef nonnull %13, ptr noundef %443, ptr noundef nonnull %15, ptr noundef nonnull %33, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %31) #5
  %445 = load i64, ptr %31, align 8, !tbaa !5
  %446 = icmp sgt i64 %445, 0
  br i1 %446, label %447, label %448

447:                                              ; preds = %427
  store i64 %445, ptr %21, align 8, !tbaa !5
  br label %448

448:                                              ; preds = %447, %427
  %449 = load float, ptr %33, align 4, !tbaa !13
  %450 = fcmp une float %449, 1.000000e+00
  br i1 %450, label %451, label %495

451:                                              ; preds = %448
  %452 = add nsw i64 %429, -1
  store i64 %452, ptr %24, align 8, !tbaa !5
  %.not703806 = icmp slt i64 %429, 2
  br i1 %.not703806, label %._crit_edge, label %.lr.ph808

.lr.ph808:                                        ; preds = %451, %.lr.ph808
  %.4807 = phi i64 [ %459, %.lr.ph808 ], [ 1, %451 ]
  %453 = load float, ptr %33, align 4, !tbaa !13
  store float %453, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %454 = mul nsw i64 %.4807, %40
  %gep = getelementptr %struct.complex, ptr %invariant.gep803, i64 %454
  %455 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %456 = load float, ptr %33, align 4, !tbaa !13
  store float %456, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %457 = mul nsw i64 %.4807, %49
  %gep805 = getelementptr %struct.complex, ptr %invariant.gep804, i64 %457
  %458 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep805, ptr noundef nonnull @c__1) #5
  %459 = add nuw nsw i64 %.4807, 1
  %460 = load i64, ptr %24, align 8, !tbaa !5
  %.not703.not = icmp slt i64 %.4807, %460
  br i1 %.not703.not, label %.lr.ph808, label %._crit_edge, !llvm.loop !21

._crit_edge:                                      ; preds = %.lr.ph808, %451
  store i64 %432, ptr %24, align 8, !tbaa !5
  %.not704813.not = icmp slt i64 %429, %431
  br i1 %.not704813.not, label %.lr.ph816, label %._crit_edge822

.lr.ph816:                                        ; preds = %._crit_edge, %.lr.ph816
  %.5814 = phi i64 [ %467, %.lr.ph816 ], [ %429, %._crit_edge ]
  store i64 %416, ptr %25, align 8, !tbaa !5
  %461 = load float, ptr %33, align 4, !tbaa !13
  store float %461, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %462 = mul nsw i64 %.5814, %40
  %gep810 = getelementptr %struct.complex, ptr %invariant.gep803, i64 %462
  %463 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep810, ptr noundef nonnull @c__1) #5
  store i64 %416, ptr %25, align 8, !tbaa !5
  %464 = load float, ptr %33, align 4, !tbaa !13
  store float %464, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %465 = mul nsw i64 %.5814, %49
  %gep812 = getelementptr %struct.complex, ptr %invariant.gep804, i64 %465
  %466 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep812, ptr noundef nonnull @c__1) #5
  %467 = add nsw i64 %.5814, 1
  %468 = load i64, ptr %24, align 8, !tbaa !5
  %.not704.not = icmp slt i64 %.5814, %468
  br i1 %.not704.not, label %.lr.ph816, label %._crit_edge817, !llvm.loop !22

._crit_edge817:                                   ; preds = %.lr.ph816
  store i64 %432, ptr %24, align 8, !tbaa !5
  br i1 %.not704813.not, label %.lr.ph821, label %._crit_edge822

.lr.ph821:                                        ; preds = %._crit_edge817, %.lr.ph821
  %.6819 = phi i64 [ %481, %.lr.ph821 ], [ %429, %._crit_edge817 ]
  %469 = load i64, ptr %2, align 8, !tbaa !5
  %470 = sub nsw i64 %469, %408
  store i64 %470, ptr %25, align 8, !tbaa !5
  %471 = load float, ptr %33, align 4, !tbaa !13
  store float %471, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %472 = mul nsw i64 %.6819, %40
  %473 = getelementptr %struct.complex, ptr %417, i64 %472
  %474 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %473, ptr noundef nonnull @c__1) #5
  %475 = load i64, ptr %2, align 8, !tbaa !5
  %476 = sub nsw i64 %475, %408
  store i64 %476, ptr %25, align 8, !tbaa !5
  %477 = load float, ptr %33, align 4, !tbaa !13
  store float %477, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %478 = mul nsw i64 %.6819, %49
  %479 = getelementptr %struct.complex, ptr %418, i64 %478
  %480 = call i32 @f2c_cscal(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %479, ptr noundef nonnull @c__1) #5
  %481 = add nsw i64 %.6819, 1
  %482 = load i64, ptr %24, align 8, !tbaa !5
  %.not705.not = icmp slt i64 %.6819, %482
  br i1 %.not705.not, label %.lr.ph821, label %._crit_edge822, !llvm.loop !23

._crit_edge822:                                   ; preds = %.lr.ph821, %._crit_edge, %._crit_edge817
  %483 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %483, ptr %24, align 8, !tbaa !5
  %.not706827 = icmp sgt i64 %431, %483
  br i1 %.not706827, label %._crit_edge831, label %.lr.ph830

.lr.ph830:                                        ; preds = %._crit_edge822, %.lr.ph830
  %.7828 = phi i64 [ %490, %.lr.ph830 ], [ %431, %._crit_edge822 ]
  %484 = load float, ptr %33, align 4, !tbaa !13
  store float %484, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %485 = mul nsw i64 %.7828, %40
  %gep824 = getelementptr %struct.complex, ptr %invariant.gep803, i64 %485
  %486 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep824, ptr noundef nonnull @c__1) #5
  %487 = load float, ptr %33, align 4, !tbaa !13
  store float %487, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %402, align 4, !tbaa !12
  %488 = mul nsw i64 %.7828, %49
  %gep826 = getelementptr %struct.complex, ptr %invariant.gep804, i64 %488
  %489 = call i32 @f2c_cscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep826, ptr noundef nonnull @c__1) #5
  %490 = add nsw i64 %.7828, 1
  %491 = load i64, ptr %24, align 8, !tbaa !5
  %.not706.not = icmp slt i64 %.7828, %491
  br i1 %.not706.not, label %.lr.ph830, label %._crit_edge831, !llvm.loop !24

._crit_edge831:                                   ; preds = %.lr.ph830, %._crit_edge822
  %492 = load float, ptr %33, align 4, !tbaa !13
  %493 = load float, ptr %16, align 4, !tbaa !13
  %494 = fmul float %492, %493
  store float %494, ptr %16, align 4, !tbaa !13
  br label %495

495:                                              ; preds = %._crit_edge831, %448
  %496 = icmp sgt i64 %.2674837, %399
  br i1 %496, label %497, label %.thread865

497:                                              ; preds = %495
  %498 = add nsw i64 %429, -1
  store i64 %498, ptr %24, align 8, !tbaa !5
  %gep833 = getelementptr %struct.complex, ptr %invariant.gep832, i64 %434
  %499 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b45, ptr noundef %438, ptr noundef nonnull %9, ptr noundef %gep833, ptr noundef nonnull %7, ptr noundef nonnull @c_b45, ptr noundef %419, ptr noundef nonnull %15) #5
  store i64 %498, ptr %24, align 8, !tbaa !5
  %gep835 = getelementptr %struct.complex, ptr %invariant.gep834, i64 %439
  %500 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull @c_b45, ptr noundef %443, ptr noundef nonnull %15, ptr noundef %gep835, ptr noundef nonnull %13, ptr noundef nonnull @c_b45, ptr noundef %419, ptr noundef nonnull %15) #5
  br i1 %420, label %501, label %.backedge

.thread865:                                       ; preds = %495
  br i1 %420, label %501, label %.loopexit745

501:                                              ; preds = %.thread865, %497
  %502 = load i64, ptr %2, align 8, !tbaa !5
  %503 = sub nsw i64 %502, %408
  store i64 %503, ptr %24, align 8, !tbaa !5
  %504 = getelementptr %struct.complex, ptr %417, i64 %437
  %505 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b44, ptr noundef %423, ptr noundef nonnull %5, ptr noundef %438, ptr noundef nonnull %9, ptr noundef nonnull @c_b45, ptr noundef %504, ptr noundef nonnull %9) #5
  %506 = load i64, ptr %2, align 8, !tbaa !5
  %507 = sub nsw i64 %506, %408
  store i64 %507, ptr %24, align 8, !tbaa !5
  %508 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull @c_b44, ptr noundef %426, ptr noundef nonnull %11, ptr noundef %443, ptr noundef nonnull %15, ptr noundef nonnull @c_b45, ptr noundef %504, ptr noundef nonnull %9) #5
  br i1 %496, label %.backedge, label %..loopexit744_crit_edge

.backedge:                                        ; preds = %497, %501
  %.2674837.be = add nsw i64 %.2674837, -1
  br label %427, !llvm.loop !25

.loopexit745:                                     ; preds = %396, %.thread865, %.lr.ph843, %398
  store float %92, ptr %18, align 4, !tbaa !9
  store float 0.000000e+00, ptr %93, align 4, !tbaa !12
  br label %.loopexit

.loopexit:                                        ; preds = %155, %177, %178, %.thread729, %.loopexit745, %.thread734
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  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 i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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


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