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

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

163:                                              ; preds = %159
  %164 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -1, ptr %164, align 4, !tbaa !9
  br label %180

165:                                              ; preds = %159, %22
  %166 = load i32, ptr %82, align 4, !tbaa !9
  %167 = icmp ne i32 %166, 0
  br i1 %167, label %168, label %179

168:                                              ; preds = %165
  %169 = load ptr, ptr %24, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = icmp slt i32 %170, 0
  br i1 %171, label %176, label %172

172:                                              ; preds = %168
  %173 = load ptr, ptr %24, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  %175 = icmp sgt i32 %174, 4
  br i1 %175, label %176, label %178

176:                                              ; preds = %172, %168
  %177 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -2, ptr %177, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %176, %172
  br label %179

179:                                              ; preds = %178, %165
  br label %180

180:                                              ; preds = %179, %163
  %181 = load ptr, ptr %44, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = icmp eq i32 %182, 0
  br i1 %183, label %184, label %294

184:                                              ; preds = %180
  %185 = load ptr, ptr %25, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = icmp sle i32 %186, 0
  br i1 %187, label %188, label %190

188:                                              ; preds = %184
  %189 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -3, ptr %189, align 4, !tbaa !9
  br label %293

190:                                              ; preds = %184
  %191 = load ptr, ptr %26, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  %193 = icmp sle i32 %192, 0
  br i1 %193, label %194, label %196

194:                                              ; preds = %190
  %195 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -4, ptr %195, align 4, !tbaa !9
  br label %292

196:                                              ; preds = %190
  %197 = load ptr, ptr %28, align 8, !tbaa !5
  %198 = load i32, ptr %197, align 4, !tbaa !9
  %199 = load ptr, ptr %25, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = icmp sge i32 1, %200
  br i1 %201, label %202, label %203

202:                                              ; preds = %196
  br label %206

203:                                              ; preds = %196
  %204 = load ptr, ptr %25, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  br label %206

206:                                              ; preds = %203, %202
  %207 = phi i32 [ 1, %202 ], [ %205, %203 ]
  %208 = icmp slt i32 %198, %207
  br i1 %208, label %209, label %211

209:                                              ; preds = %206
  %210 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -6, ptr %210, align 4, !tbaa !9
  br label %291

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

217:                                              ; preds = %211
  br label %221

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

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

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

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

232:                                              ; preds = %226
  br label %236

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

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

239:                                              ; preds = %236
  %240 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -10, ptr %240, align 4, !tbaa !9
  br label %289

241:                                              ; preds = %236
  %242 = load ptr, ptr %34, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = load ptr, ptr %25, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp sge i32 1, %245
  br i1 %246, label %247, label %248

247:                                              ; preds = %241
  br label %251

248:                                              ; preds = %241
  %249 = load ptr, ptr %25, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  br label %251

251:                                              ; preds = %248, %247
  %252 = phi i32 [ 1, %247 ], [ %250, %248 ]
  %253 = icmp slt i32 %243, %252
  br i1 %253, label %254, label %256

254:                                              ; preds = %251
  %255 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -12, ptr %255, align 4, !tbaa !9
  br label %288

256:                                              ; preds = %251
  %257 = load ptr, ptr %36, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %26, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp sge i32 1, %260
  br i1 %261, label %262, label %263

262:                                              ; preds = %256
  br label %266

263:                                              ; preds = %256
  %264 = load ptr, ptr %26, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  br label %266

266:                                              ; preds = %263, %262
  %267 = phi i32 [ 1, %262 ], [ %265, %263 ]
  %268 = icmp slt i32 %258, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %266
  %270 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -14, ptr %270, align 4, !tbaa !9
  br label %287

271:                                              ; preds = %266
  %272 = load ptr, ptr %38, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = load ptr, ptr %25, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = icmp sge i32 1, %275
  br i1 %276, label %277, label %278

277:                                              ; preds = %271
  br label %281

278:                                              ; preds = %271
  %279 = load ptr, ptr %25, align 8, !tbaa !5
  %280 = load i32, ptr %279, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %278, %277
  %282 = phi i32 [ 1, %277 ], [ %280, %278 ]
  %283 = icmp slt i32 %273, %282
  br i1 %283, label %284, label %286

284:                                              ; preds = %281
  %285 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -16, ptr %285, align 4, !tbaa !9
  br label %286

286:                                              ; preds = %284, %281
  br label %287

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

288:                                              ; preds = %287, %254
  br label %289

289:                                              ; preds = %288, %239
  br label %290

290:                                              ; preds = %289, %224
  br label %291

291:                                              ; preds = %290, %209
  br label %292

292:                                              ; preds = %291, %194
  br label %293

293:                                              ; preds = %292, %188
  br label %294

294:                                              ; preds = %293, %180
  %295 = load ptr, ptr %44, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  %297 = icmp eq i32 %296, 0
  br i1 %297, label %298, label %347

298:                                              ; preds = %294
  %299 = load i32, ptr %82, align 4, !tbaa !9
  %300 = icmp ne i32 %299, 0
  br i1 %300, label %301, label %327

301:                                              ; preds = %298
  %302 = load ptr, ptr %24, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = icmp eq i32 %303, 1
  br i1 %304, label %309, label %305

305:                                              ; preds = %301
  %306 = load ptr, ptr %24, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  %308 = icmp eq i32 %307, 2
  br i1 %308, label %309, label %325

309:                                              ; preds = %305, %301
  store i32 1, ptr %57, align 4, !tbaa !9
  %310 = load ptr, ptr %25, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = shl i32 %311, 1
  %313 = load ptr, ptr %26, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = mul nsw i32 %312, %314
  store i32 %315, ptr %58, align 4, !tbaa !9
  %316 = load i32, ptr %57, align 4, !tbaa !9
  %317 = load i32, ptr %58, align 4, !tbaa !9
  %318 = icmp sge i32 %316, %317
  br i1 %318, label %319, label %321

319:                                              ; preds = %309
  %320 = load i32, ptr %57, align 4, !tbaa !9
  br label %323

321:                                              ; preds = %309
  %322 = load i32, ptr %58, align 4, !tbaa !9
  br label %323

323:                                              ; preds = %321, %319
  %324 = phi i32 [ %320, %319 ], [ %322, %321 ]
  store i32 %324, ptr %70, align 4, !tbaa !9
  br label %326

325:                                              ; preds = %305
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %325, %323
  br label %328

327:                                              ; preds = %298
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %327, %326
  %329 = load i32, ptr %70, align 4, !tbaa !9
  %330 = sitofp i32 %329 to float
  %331 = load ptr, ptr %41, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.complex, ptr %331, i64 1
  %333 = getelementptr inbounds %struct.complex, ptr %332, i32 0, i32 0
  store float %330, ptr %333, align 4, !tbaa !11
  %334 = load ptr, ptr %41, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.complex, ptr %334, i64 1
  %336 = getelementptr inbounds %struct.complex, ptr %335, i32 0, i32 1
  store float 0.000000e+00, ptr %336, align 4, !tbaa !14
  %337 = load ptr, ptr %42, align 8, !tbaa !5
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = load i32, ptr %70, align 4, !tbaa !9
  %340 = icmp slt i32 %338, %339
  br i1 %340, label %341, label %346

341:                                              ; preds = %328
  %342 = load i32, ptr %84, align 4, !tbaa !9
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %346, label %344

344:                                              ; preds = %341
  %345 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -20, ptr %345, align 4, !tbaa !9
  br label %346

346:                                              ; preds = %344, %341, %328
  br label %347

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

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

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

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

360:                                              ; preds = %356
  br label %361

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

365:                                              ; preds = %361
  %366 = load ptr, ptr %26, align 8, !tbaa !5
  %367 = load i32, ptr %366, align 4, !tbaa !9
  %368 = icmp eq i32 %367, 0
  br i1 %368, label %369, label %381

369:                                              ; preds = %365, %361
  %370 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %370, align 4, !tbaa !15
  %371 = load i32, ptr %82, align 4, !tbaa !9
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %373, label %380

373:                                              ; preds = %369
  %374 = load ptr, ptr %24, align 8, !tbaa !5
  %375 = load i32, ptr %374, align 4, !tbaa !9
  %376 = icmp ne i32 %375, 0
  br i1 %376, label %377, label %379

377:                                              ; preds = %373
  %378 = load ptr, ptr %40, align 8, !tbaa !5
  store float 0.000000e+00, ptr %378, align 4, !tbaa !15
  br label %379

379:                                              ; preds = %377, %373
  br label %380

380:                                              ; preds = %379, %369
  store i32 1, ptr %85, align 4
  br label %1692

381:                                              ; preds = %365
  %382 = load ptr, ptr %23, align 8, !tbaa !5
  %383 = load ptr, ptr %25, align 8, !tbaa !5
  %384 = load ptr, ptr %26, align 8, !tbaa !5
  %385 = call i32 @ilaenv_(ptr noundef @c__2, ptr noundef @.str.2, ptr noundef %382, ptr noundef %383, ptr noundef %384, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %385, ptr %74, align 4, !tbaa !9
  %386 = load ptr, ptr %23, align 8, !tbaa !5
  %387 = load ptr, ptr %25, align 8, !tbaa !5
  %388 = load ptr, ptr %26, align 8, !tbaa !5
  %389 = call i32 @ilaenv_(ptr noundef @c__5, ptr noundef @.str.2, ptr noundef %386, ptr noundef %387, ptr noundef %388, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %389, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %68, align 4, !tbaa !9
  %390 = load i32, ptr %82, align 4, !tbaa !9
  %391 = icmp ne i32 %390, 0
  br i1 %391, label %392, label %424

392:                                              ; preds = %381
  %393 = load ptr, ptr %24, align 8, !tbaa !5
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = icmp sge i32 %394, 3
  br i1 %395, label %396, label %414

396:                                              ; preds = %392
  %397 = load ptr, ptr %24, align 8, !tbaa !5
  %398 = load i32, ptr %397, align 4, !tbaa !9
  %399 = sub nsw i32 %398, 2
  store i32 %399, ptr %68, align 4, !tbaa !9
  %400 = load ptr, ptr %25, align 8, !tbaa !5
  %401 = load ptr, ptr %26, align 8, !tbaa !5
  %402 = load ptr, ptr %31, align 8, !tbaa !5
  %403 = load i32, ptr %50, align 4, !tbaa !9
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds %struct.complex, ptr %402, i64 %404
  %406 = load ptr, ptr %32, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.3, ptr noundef %400, ptr noundef %401, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %405, ptr noundef %406)
  %407 = load ptr, ptr %25, align 8, !tbaa !5
  %408 = load ptr, ptr %26, align 8, !tbaa !5
  %409 = load ptr, ptr %37, align 8, !tbaa !5
  %410 = load i32, ptr %56, align 4, !tbaa !9
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds %struct.complex, ptr %409, i64 %411
  %413 = load ptr, ptr %38, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.3, ptr noundef %407, ptr noundef %408, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %412, ptr noundef %413)
  br label %423

414:                                              ; preds = %392
  %415 = load ptr, ptr %24, align 8, !tbaa !5
  %416 = load i32, ptr %415, align 4, !tbaa !9
  %417 = icmp sge i32 %416, 1
  br i1 %417, label %418, label %422

418:                                              ; preds = %414
  %419 = load i32, ptr %82, align 4, !tbaa !9
  %420 = icmp ne i32 %419, 0
  br i1 %420, label %421, label %422

421:                                              ; preds = %418
  store i32 2, ptr %83, align 4, !tbaa !9
  br label %422

422:                                              ; preds = %421, %418, %414
  br label %423

423:                                              ; preds = %422, %396
  br label %424

424:                                              ; preds = %423, %381
  %425 = load i32, ptr %74, align 4, !tbaa !9
  %426 = icmp sle i32 %425, 1
  br i1 %426, label %427, label %430

427:                                              ; preds = %424
  %428 = load i32, ptr %75, align 4, !tbaa !9
  %429 = icmp sle i32 %428, 1
  br i1 %429, label %440, label %430

430:                                              ; preds = %427, %424
  %431 = load i32, ptr %74, align 4, !tbaa !9
  %432 = load ptr, ptr %25, align 8, !tbaa !5
  %433 = load i32, ptr %432, align 4, !tbaa !9
  %434 = icmp sge i32 %431, %433
  br i1 %434, label %435, label %630

435:                                              ; preds = %430
  %436 = load i32, ptr %75, align 4, !tbaa !9
  %437 = load ptr, ptr %26, align 8, !tbaa !5
  %438 = load i32, ptr %437, align 4, !tbaa !9
  %439 = icmp sge i32 %436, %438
  br i1 %439, label %440, label %630

440:                                              ; preds = %435, %427
  %441 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %441, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %626, %440
  %443 = load i32, ptr %81, align 4, !tbaa !9
  %444 = load i32, ptr %57, align 4, !tbaa !9
  %445 = icmp sle i32 %443, %444
  br i1 %445, label %446, label %629

446:                                              ; preds = %442
  %447 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %447, align 4, !tbaa !15
  store float 0.000000e+00, ptr %76, align 4, !tbaa !15
  store float 1.000000e+00, ptr %62, align 4, !tbaa !15
  %448 = load ptr, ptr %25, align 8, !tbaa !5
  %449 = load i32, ptr %448, align 4, !tbaa !9
  %450 = load ptr, ptr %26, align 8, !tbaa !5
  %451 = load i32, ptr %450, align 4, !tbaa !9
  %452 = mul nsw i32 %449, %451
  store i32 %452, ptr %79, align 4, !tbaa !9
  %453 = load ptr, ptr %23, align 8, !tbaa !5
  %454 = load ptr, ptr %25, align 8, !tbaa !5
  %455 = load ptr, ptr %26, align 8, !tbaa !5
  %456 = load ptr, ptr %27, align 8, !tbaa !5
  %457 = load i32, ptr %46, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds %struct.complex, ptr %456, i64 %458
  %460 = load ptr, ptr %28, align 8, !tbaa !5
  %461 = load ptr, ptr %29, align 8, !tbaa !5
  %462 = load i32, ptr %48, align 4, !tbaa !9
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds %struct.complex, ptr %461, i64 %463
  %465 = load ptr, ptr %30, align 8, !tbaa !5
  %466 = load ptr, ptr %31, align 8, !tbaa !5
  %467 = load i32, ptr %50, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds %struct.complex, ptr %466, i64 %468
  %470 = load ptr, ptr %32, align 8, !tbaa !5
  %471 = load ptr, ptr %33, align 8, !tbaa !5
  %472 = load i32, ptr %52, align 4, !tbaa !9
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds %struct.complex, ptr %471, i64 %473
  %475 = load ptr, ptr %34, align 8, !tbaa !5
  %476 = load ptr, ptr %35, align 8, !tbaa !5
  %477 = load i32, ptr %54, align 4, !tbaa !9
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds %struct.complex, ptr %476, i64 %478
  %480 = load ptr, ptr %36, align 8, !tbaa !5
  %481 = load ptr, ptr %37, align 8, !tbaa !5
  %482 = load i32, ptr %56, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds %struct.complex, ptr %481, i64 %483
  %485 = load ptr, ptr %38, align 8, !tbaa !5
  %486 = load ptr, ptr %39, align 8, !tbaa !5
  %487 = load ptr, ptr %44, align 8, !tbaa !5
  call void @ctgsy2_(ptr noundef %453, ptr noundef %68, ptr noundef %454, ptr noundef %455, ptr noundef %459, ptr noundef %460, ptr noundef %464, ptr noundef %465, ptr noundef %469, ptr noundef %470, ptr noundef %474, ptr noundef %475, ptr noundef %479, ptr noundef %480, ptr noundef %484, ptr noundef %485, ptr noundef %486, ptr noundef %62, ptr noundef %76, ptr noundef %487)
  %488 = load float, ptr %76, align 4, !tbaa !15
  %489 = fcmp une float %488, 0.000000e+00
  br i1 %489, label %490, label %532

490:                                              ; preds = %446
  %491 = load ptr, ptr %24, align 8, !tbaa !5
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = icmp eq i32 %492, 1
  br i1 %493, label %498, label %494

494:                                              ; preds = %490
  %495 = load ptr, ptr %24, align 8, !tbaa !5
  %496 = load i32, ptr %495, align 4, !tbaa !9
  %497 = icmp eq i32 %496, 3
  br i1 %497, label %498, label %517

498:                                              ; preds = %494, %490
  %499 = load ptr, ptr %25, align 8, !tbaa !5
  %500 = load i32, ptr %499, align 4, !tbaa !9
  %501 = shl i32 %500, 1
  %502 = load ptr, ptr %26, align 8, !tbaa !5
  %503 = load i32, ptr %502, align 4, !tbaa !9
  %504 = mul nsw i32 %501, %503
  %505 = sitofp i32 %504 to float
  %506 = fpext float %505 to double
  %507 = call double @sqrt(double noundef %506) #4
  %508 = load float, ptr %76, align 4, !tbaa !15
  %509 = fpext float %508 to double
  %510 = load float, ptr %62, align 4, !tbaa !15
  %511 = fpext float %510 to double
  %512 = call double @sqrt(double noundef %511) #4
  %513 = fmul double %509, %512
  %514 = fdiv double %507, %513
  %515 = fptrunc double %514 to float
  %516 = load ptr, ptr %40, align 8, !tbaa !5
  store float %515, ptr %516, align 4, !tbaa !15
  br label %531

517:                                              ; preds = %494
  %518 = load i32, ptr %79, align 4, !tbaa !9
  %519 = sitofp i32 %518 to float
  %520 = fpext float %519 to double
  %521 = call double @sqrt(double noundef %520) #4
  %522 = load float, ptr %76, align 4, !tbaa !15
  %523 = fpext float %522 to double
  %524 = load float, ptr %62, align 4, !tbaa !15
  %525 = fpext float %524 to double
  %526 = call double @sqrt(double noundef %525) #4
  %527 = fmul double %523, %526
  %528 = fdiv double %521, %527
  %529 = fptrunc double %528 to float
  %530 = load ptr, ptr %40, align 8, !tbaa !5
  store float %529, ptr %530, align 4, !tbaa !15
  br label %531

531:                                              ; preds = %517, %498
  br label %532

532:                                              ; preds = %531, %446
  %533 = load i32, ptr %83, align 4, !tbaa !9
  %534 = icmp eq i32 %533, 2
  br i1 %534, label %535, label %588

535:                                              ; preds = %532
  %536 = load i32, ptr %81, align 4, !tbaa !9
  %537 = icmp eq i32 %536, 1
  br i1 %537, label %538, label %588

538:                                              ; preds = %535
  %539 = load i32, ptr %82, align 4, !tbaa !9
  %540 = icmp ne i32 %539, 0
  br i1 %540, label %541, label %544

541:                                              ; preds = %538
  %542 = load ptr, ptr %24, align 8, !tbaa !5
  %543 = load i32, ptr %542, align 4, !tbaa !9
  store i32 %543, ptr %68, align 4, !tbaa !9
  br label %544

544:                                              ; preds = %541, %538
  %545 = load ptr, ptr %39, align 8, !tbaa !5
  %546 = load float, ptr %545, align 4, !tbaa !15
  store float %546, ptr %71, align 4, !tbaa !15
  %547 = load ptr, ptr %25, align 8, !tbaa !5
  %548 = load ptr, ptr %26, align 8, !tbaa !5
  %549 = load ptr, ptr %31, align 8, !tbaa !5
  %550 = load i32, ptr %50, align 4, !tbaa !9
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds %struct.complex, ptr %549, i64 %551
  %553 = load ptr, ptr %32, align 8, !tbaa !5
  %554 = load ptr, ptr %41, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.complex, ptr %554, i64 1
  %556 = load ptr, ptr %25, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %547, ptr noundef %548, ptr noundef %552, ptr noundef %553, ptr noundef %555, ptr noundef %556)
  %557 = load ptr, ptr %25, align 8, !tbaa !5
  %558 = load ptr, ptr %26, align 8, !tbaa !5
  %559 = load ptr, ptr %37, align 8, !tbaa !5
  %560 = load i32, ptr %56, align 4, !tbaa !9
  %561 = sext i32 %560 to i64
  %562 = getelementptr inbounds %struct.complex, ptr %559, i64 %561
  %563 = load ptr, ptr %38, align 8, !tbaa !5
  %564 = load ptr, ptr %41, align 8, !tbaa !5
  %565 = load ptr, ptr %25, align 8, !tbaa !5
  %566 = load i32, ptr %565, align 4, !tbaa !9
  %567 = load ptr, ptr %26, align 8, !tbaa !5
  %568 = load i32, ptr %567, align 4, !tbaa !9
  %569 = mul nsw i32 %566, %568
  %570 = add nsw i32 %569, 1
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds %struct.complex, ptr %564, i64 %571
  %573 = load ptr, ptr %25, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %557, ptr noundef %558, ptr noundef %562, ptr noundef %563, ptr noundef %572, ptr noundef %573)
  %574 = load ptr, ptr %25, align 8, !tbaa !5
  %575 = load ptr, ptr %26, align 8, !tbaa !5
  %576 = load ptr, ptr %31, align 8, !tbaa !5
  %577 = load i32, ptr %50, align 4, !tbaa !9
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds %struct.complex, ptr %576, i64 %578
  %580 = load ptr, ptr %32, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.3, ptr noundef %574, ptr noundef %575, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %579, ptr noundef %580)
  %581 = load ptr, ptr %25, align 8, !tbaa !5
  %582 = load ptr, ptr %26, align 8, !tbaa !5
  %583 = load ptr, ptr %37, align 8, !tbaa !5
  %584 = load i32, ptr %56, align 4, !tbaa !9
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds %struct.complex, ptr %583, i64 %585
  %587 = load ptr, ptr %38, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.3, ptr noundef %581, ptr noundef %582, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %586, ptr noundef %587)
  br label %625

588:                                              ; preds = %535, %532
  %589 = load i32, ptr %83, align 4, !tbaa !9
  %590 = icmp eq i32 %589, 2
  br i1 %590, label %591, label %624

591:                                              ; preds = %588
  %592 = load i32, ptr %81, align 4, !tbaa !9
  %593 = icmp eq i32 %592, 2
  br i1 %593, label %594, label %624

594:                                              ; preds = %591
  %595 = load ptr, ptr %25, align 8, !tbaa !5
  %596 = load ptr, ptr %26, align 8, !tbaa !5
  %597 = load ptr, ptr %41, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.complex, ptr %597, i64 1
  %599 = load ptr, ptr %25, align 8, !tbaa !5
  %600 = load ptr, ptr %31, align 8, !tbaa !5
  %601 = load i32, ptr %50, align 4, !tbaa !9
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds %struct.complex, ptr %600, i64 %602
  %604 = load ptr, ptr %32, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %595, ptr noundef %596, ptr noundef %598, ptr noundef %599, ptr noundef %603, ptr noundef %604)
  %605 = load ptr, ptr %25, align 8, !tbaa !5
  %606 = load ptr, ptr %26, align 8, !tbaa !5
  %607 = load ptr, ptr %41, align 8, !tbaa !5
  %608 = load ptr, ptr %25, align 8, !tbaa !5
  %609 = load i32, ptr %608, align 4, !tbaa !9
  %610 = load ptr, ptr %26, align 8, !tbaa !5
  %611 = load i32, ptr %610, align 4, !tbaa !9
  %612 = mul nsw i32 %609, %611
  %613 = add nsw i32 %612, 1
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds %struct.complex, ptr %607, i64 %614
  %616 = load ptr, ptr %25, align 8, !tbaa !5
  %617 = load ptr, ptr %37, align 8, !tbaa !5
  %618 = load i32, ptr %56, align 4, !tbaa !9
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds %struct.complex, ptr %617, i64 %619
  %621 = load ptr, ptr %38, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %605, ptr noundef %606, ptr noundef %615, ptr noundef %616, ptr noundef %620, ptr noundef %621)
  %622 = load float, ptr %71, align 4, !tbaa !15
  %623 = load ptr, ptr %39, align 8, !tbaa !5
  store float %622, ptr %623, align 4, !tbaa !15
  br label %624

624:                                              ; preds = %594, %591, %588
  br label %625

625:                                              ; preds = %624, %544
  br label %626

626:                                              ; preds = %625
  %627 = load i32, ptr %81, align 4, !tbaa !9
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr %81, align 4, !tbaa !9
  br label %442, !llvm.loop !16

629:                                              ; preds = %442
  store i32 1, ptr %85, align 4
  br label %1692

630:                                              ; preds = %435, %430
  store i32 0, ptr %66, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %631

631:                                              ; preds = %653, %630
  %632 = load i32, ptr %63, align 4, !tbaa !9
  %633 = load ptr, ptr %25, align 8, !tbaa !5
  %634 = load i32, ptr %633, align 4, !tbaa !9
  %635 = icmp sgt i32 %632, %634
  br i1 %635, label %636, label %637

636:                                              ; preds = %631
  br label %654

637:                                              ; preds = %631
  %638 = load i32, ptr %66, align 4, !tbaa !9
  %639 = add nsw i32 %638, 1
  store i32 %639, ptr %66, align 4, !tbaa !9
  %640 = load i32, ptr %63, align 4, !tbaa !9
  %641 = load ptr, ptr %43, align 8, !tbaa !5
  %642 = load i32, ptr %66, align 4, !tbaa !9
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds i32, ptr %641, i64 %643
  store i32 %640, ptr %644, align 4, !tbaa !9
  %645 = load i32, ptr %74, align 4, !tbaa !9
  %646 = load i32, ptr %63, align 4, !tbaa !9
  %647 = add nsw i32 %646, %645
  store i32 %647, ptr %63, align 4, !tbaa !9
  %648 = load i32, ptr %63, align 4, !tbaa !9
  %649 = load ptr, ptr %25, align 8, !tbaa !5
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = icmp sge i32 %648, %650
  br i1 %651, label %652, label %653

652:                                              ; preds = %637
  br label %654

653:                                              ; preds = %637
  br label %631

654:                                              ; preds = %652, %636
  %655 = load ptr, ptr %25, align 8, !tbaa !5
  %656 = load i32, ptr %655, align 4, !tbaa !9
  %657 = add nsw i32 %656, 1
  %658 = load ptr, ptr %43, align 8, !tbaa !5
  %659 = load i32, ptr %66, align 4, !tbaa !9
  %660 = add nsw i32 %659, 1
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds i32, ptr %658, i64 %661
  store i32 %657, ptr %662, align 4, !tbaa !9
  %663 = load ptr, ptr %43, align 8, !tbaa !5
  %664 = load i32, ptr %66, align 4, !tbaa !9
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds i32, ptr %663, i64 %665
  %667 = load i32, ptr %666, align 4, !tbaa !9
  %668 = load ptr, ptr %43, align 8, !tbaa !5
  %669 = load i32, ptr %66, align 4, !tbaa !9
  %670 = add nsw i32 %669, 1
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds i32, ptr %668, i64 %671
  %673 = load i32, ptr %672, align 4, !tbaa !9
  %674 = icmp eq i32 %667, %673
  br i1 %674, label %675, label %678

675:                                              ; preds = %654
  %676 = load i32, ptr %66, align 4, !tbaa !9
  %677 = add nsw i32 %676, -1
  store i32 %677, ptr %66, align 4, !tbaa !9
  br label %678

678:                                              ; preds = %675, %654
  %679 = load i32, ptr %66, align 4, !tbaa !9
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %681

681:                                              ; preds = %703, %678
  %682 = load i32, ptr %64, align 4, !tbaa !9
  %683 = load ptr, ptr %26, align 8, !tbaa !5
  %684 = load i32, ptr %683, align 4, !tbaa !9
  %685 = icmp sgt i32 %682, %684
  br i1 %685, label %686, label %687

686:                                              ; preds = %681
  br label %704

687:                                              ; preds = %681
  %688 = load i32, ptr %67, align 4, !tbaa !9
  %689 = add nsw i32 %688, 1
  store i32 %689, ptr %67, align 4, !tbaa !9
  %690 = load i32, ptr %64, align 4, !tbaa !9
  %691 = load ptr, ptr %43, align 8, !tbaa !5
  %692 = load i32, ptr %67, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds i32, ptr %691, i64 %693
  store i32 %690, ptr %694, align 4, !tbaa !9
  %695 = load i32, ptr %75, align 4, !tbaa !9
  %696 = load i32, ptr %64, align 4, !tbaa !9
  %697 = add nsw i32 %696, %695
  store i32 %697, ptr %64, align 4, !tbaa !9
  %698 = load i32, ptr %64, align 4, !tbaa !9
  %699 = load ptr, ptr %26, align 8, !tbaa !5
  %700 = load i32, ptr %699, align 4, !tbaa !9
  %701 = icmp sge i32 %698, %700
  br i1 %701, label %702, label %703

702:                                              ; preds = %687
  br label %704

703:                                              ; preds = %687
  br label %681

704:                                              ; preds = %702, %686
  %705 = load ptr, ptr %26, align 8, !tbaa !5
  %706 = load i32, ptr %705, align 4, !tbaa !9
  %707 = add nsw i32 %706, 1
  %708 = load ptr, ptr %43, align 8, !tbaa !5
  %709 = load i32, ptr %67, align 4, !tbaa !9
  %710 = add nsw i32 %709, 1
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds i32, ptr %708, i64 %711
  store i32 %707, ptr %712, align 4, !tbaa !9
  %713 = load ptr, ptr %43, align 8, !tbaa !5
  %714 = load i32, ptr %67, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds i32, ptr %713, i64 %715
  %717 = load i32, ptr %716, align 4, !tbaa !9
  %718 = load ptr, ptr %43, align 8, !tbaa !5
  %719 = load i32, ptr %67, align 4, !tbaa !9
  %720 = add nsw i32 %719, 1
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds i32, ptr %718, i64 %721
  %723 = load i32, ptr %722, align 4, !tbaa !9
  %724 = icmp eq i32 %717, %723
  br i1 %724, label %725, label %728

725:                                              ; preds = %704
  %726 = load i32, ptr %67, align 4, !tbaa !9
  %727 = add nsw i32 %726, -1
  store i32 %727, ptr %67, align 4, !tbaa !9
  br label %728

728:                                              ; preds = %725, %704
  %729 = load i32, ptr %82, align 4, !tbaa !9
  %730 = icmp ne i32 %729, 0
  br i1 %730, label %731, label %1283

731:                                              ; preds = %728
  %732 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %732, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %733

733:                                              ; preds = %1279, %731
  %734 = load i32, ptr %81, align 4, !tbaa !9
  %735 = load i32, ptr %57, align 4, !tbaa !9
  %736 = icmp sle i32 %734, %735
  br i1 %736, label %737, label %1282

737:                                              ; preds = %733
  store i32 0, ptr %79, align 4, !tbaa !9
  %738 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %738, align 4, !tbaa !15
  store float 0.000000e+00, ptr %76, align 4, !tbaa !15
  store float 1.000000e+00, ptr %62, align 4, !tbaa !15
  %739 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %739, ptr %58, align 4, !tbaa !9
  %740 = load i32, ptr %66, align 4, !tbaa !9
  %741 = add nsw i32 %740, 2
  store i32 %741, ptr %64, align 4, !tbaa !9
  br label %742

742:                                              ; preds = %1137, %737
  %743 = load i32, ptr %64, align 4, !tbaa !9
  %744 = load i32, ptr %58, align 4, !tbaa !9
  %745 = icmp sle i32 %743, %744
  br i1 %745, label %746, label %1140

746:                                              ; preds = %742
  %747 = load ptr, ptr %43, align 8, !tbaa !5
  %748 = load i32, ptr %64, align 4, !tbaa !9
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds i32, ptr %747, i64 %749
  %751 = load i32, ptr %750, align 4, !tbaa !9
  store i32 %751, ptr %78, align 4, !tbaa !9
  %752 = load ptr, ptr %43, align 8, !tbaa !5
  %753 = load i32, ptr %64, align 4, !tbaa !9
  %754 = add nsw i32 %753, 1
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds i32, ptr %752, i64 %755
  %757 = load i32, ptr %756, align 4, !tbaa !9
  %758 = sub nsw i32 %757, 1
  store i32 %758, ptr %73, align 4, !tbaa !9
  %759 = load i32, ptr %73, align 4, !tbaa !9
  %760 = load i32, ptr %78, align 4, !tbaa !9
  %761 = sub nsw i32 %759, %760
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr %75, align 4, !tbaa !9
  %763 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %763, ptr %63, align 4, !tbaa !9
  br label %764

764:                                              ; preds = %1133, %746
  %765 = load i32, ptr %63, align 4, !tbaa !9
  %766 = icmp sge i32 %765, 1
  br i1 %766, label %767, label %1136

767:                                              ; preds = %764
  %768 = load ptr, ptr %43, align 8, !tbaa !5
  %769 = load i32, ptr %63, align 4, !tbaa !9
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds i32, ptr %768, i64 %770
  %772 = load i32, ptr %771, align 4, !tbaa !9
  store i32 %772, ptr %77, align 4, !tbaa !9
  %773 = load ptr, ptr %43, align 8, !tbaa !5
  %774 = load i32, ptr %63, align 4, !tbaa !9
  %775 = add nsw i32 %774, 1
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds i32, ptr %773, i64 %776
  %778 = load i32, ptr %777, align 4, !tbaa !9
  %779 = sub nsw i32 %778, 1
  store i32 %779, ptr %72, align 4, !tbaa !9
  %780 = load i32, ptr %72, align 4, !tbaa !9
  %781 = load i32, ptr %77, align 4, !tbaa !9
  %782 = sub nsw i32 %780, %781
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr %74, align 4, !tbaa !9
  %784 = load ptr, ptr %23, align 8, !tbaa !5
  %785 = load ptr, ptr %27, align 8, !tbaa !5
  %786 = load i32, ptr %77, align 4, !tbaa !9
  %787 = load i32, ptr %77, align 4, !tbaa !9
  %788 = load i32, ptr %45, align 4, !tbaa !9
  %789 = mul nsw i32 %787, %788
  %790 = add nsw i32 %786, %789
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds %struct.complex, ptr %785, i64 %791
  %793 = load ptr, ptr %28, align 8, !tbaa !5
  %794 = load ptr, ptr %29, align 8, !tbaa !5
  %795 = load i32, ptr %78, align 4, !tbaa !9
  %796 = load i32, ptr %78, align 4, !tbaa !9
  %797 = load i32, ptr %47, align 4, !tbaa !9
  %798 = mul nsw i32 %796, %797
  %799 = add nsw i32 %795, %798
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds %struct.complex, ptr %794, i64 %800
  %802 = load ptr, ptr %30, align 8, !tbaa !5
  %803 = load ptr, ptr %31, align 8, !tbaa !5
  %804 = load i32, ptr %77, align 4, !tbaa !9
  %805 = load i32, ptr %78, align 4, !tbaa !9
  %806 = load i32, ptr %49, align 4, !tbaa !9
  %807 = mul nsw i32 %805, %806
  %808 = add nsw i32 %804, %807
  %809 = sext i32 %808 to i64
  %810 = getelementptr inbounds %struct.complex, ptr %803, i64 %809
  %811 = load ptr, ptr %32, align 8, !tbaa !5
  %812 = load ptr, ptr %33, align 8, !tbaa !5
  %813 = load i32, ptr %77, align 4, !tbaa !9
  %814 = load i32, ptr %77, align 4, !tbaa !9
  %815 = load i32, ptr %51, align 4, !tbaa !9
  %816 = mul nsw i32 %814, %815
  %817 = add nsw i32 %813, %816
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds %struct.complex, ptr %812, i64 %818
  %820 = load ptr, ptr %34, align 8, !tbaa !5
  %821 = load ptr, ptr %35, align 8, !tbaa !5
  %822 = load i32, ptr %78, align 4, !tbaa !9
  %823 = load i32, ptr %78, align 4, !tbaa !9
  %824 = load i32, ptr %53, align 4, !tbaa !9
  %825 = mul nsw i32 %823, %824
  %826 = add nsw i32 %822, %825
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds %struct.complex, ptr %821, i64 %827
  %829 = load ptr, ptr %36, align 8, !tbaa !5
  %830 = load ptr, ptr %37, align 8, !tbaa !5
  %831 = load i32, ptr %77, align 4, !tbaa !9
  %832 = load i32, ptr %78, align 4, !tbaa !9
  %833 = load i32, ptr %55, align 4, !tbaa !9
  %834 = mul nsw i32 %832, %833
  %835 = add nsw i32 %831, %834
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds %struct.complex, ptr %830, i64 %836
  %838 = load ptr, ptr %38, align 8, !tbaa !5
  call void @ctgsy2_(ptr noundef %784, ptr noundef %68, ptr noundef %74, ptr noundef %75, ptr noundef %792, ptr noundef %793, ptr noundef %801, ptr noundef %802, ptr noundef %810, ptr noundef %811, ptr noundef %819, ptr noundef %820, ptr noundef %828, ptr noundef %829, ptr noundef %837, ptr noundef %838, ptr noundef %80, ptr noundef %62, ptr noundef %76, ptr noundef %69)
  %839 = load i32, ptr %69, align 4, !tbaa !9
  %840 = icmp sgt i32 %839, 0
  br i1 %840, label %841, label %844

841:                                              ; preds = %767
  %842 = load i32, ptr %69, align 4, !tbaa !9
  %843 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 %842, ptr %843, align 4, !tbaa !9
  br label %844

844:                                              ; preds = %841, %767
  %845 = load i32, ptr %74, align 4, !tbaa !9
  %846 = load i32, ptr %75, align 4, !tbaa !9
  %847 = mul nsw i32 %845, %846
  %848 = load i32, ptr %79, align 4, !tbaa !9
  %849 = add nsw i32 %848, %847
  store i32 %849, ptr %79, align 4, !tbaa !9
  %850 = load float, ptr %80, align 4, !tbaa !15
  %851 = fcmp une float %850, 1.000000e+00
  br i1 %851, label %852, label %1003

852:                                              ; preds = %844
  %853 = load i32, ptr %78, align 4, !tbaa !9
  %854 = sub nsw i32 %853, 1
  store i32 %854, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %855

855:                                              ; preds = %882, %852
  %856 = load i32, ptr %65, align 4, !tbaa !9
  %857 = load i32, ptr %59, align 4, !tbaa !9
  %858 = icmp sle i32 %856, %857
  br i1 %858, label %859, label %885

859:                                              ; preds = %855
  %860 = load float, ptr %80, align 4, !tbaa !15
  %861 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %860, ptr %861, align 4, !tbaa !11
  %862 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %862, align 4, !tbaa !14
  %863 = load ptr, ptr %25, align 8, !tbaa !5
  %864 = load ptr, ptr %31, align 8, !tbaa !5
  %865 = load i32, ptr %65, align 4, !tbaa !9
  %866 = load i32, ptr %49, align 4, !tbaa !9
  %867 = mul nsw i32 %865, %866
  %868 = add nsw i32 %867, 1
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds %struct.complex, ptr %864, i64 %869
  call void @cscal_(ptr noundef %863, ptr noundef %61, ptr noundef %870, ptr noundef @c__1)
  %871 = load float, ptr %80, align 4, !tbaa !15
  %872 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %871, ptr %872, align 4, !tbaa !11
  %873 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %873, align 4, !tbaa !14
  %874 = load ptr, ptr %25, align 8, !tbaa !5
  %875 = load ptr, ptr %37, align 8, !tbaa !5
  %876 = load i32, ptr %65, align 4, !tbaa !9
  %877 = load i32, ptr %55, align 4, !tbaa !9
  %878 = mul nsw i32 %876, %877
  %879 = add nsw i32 %878, 1
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds %struct.complex, ptr %875, i64 %880
  call void @cscal_(ptr noundef %874, ptr noundef %61, ptr noundef %881, ptr noundef @c__1)
  br label %882

882:                                              ; preds = %859
  %883 = load i32, ptr %65, align 4, !tbaa !9
  %884 = add nsw i32 %883, 1
  store i32 %884, ptr %65, align 4, !tbaa !9
  br label %855, !llvm.loop !18

885:                                              ; preds = %855
  %886 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %886, ptr %59, align 4, !tbaa !9
  %887 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %887, ptr %65, align 4, !tbaa !9
  br label %888

888:                                              ; preds = %917, %885
  %889 = load i32, ptr %65, align 4, !tbaa !9
  %890 = load i32, ptr %59, align 4, !tbaa !9
  %891 = icmp sle i32 %889, %890
  br i1 %891, label %892, label %920

892:                                              ; preds = %888
  %893 = load i32, ptr %77, align 4, !tbaa !9
  %894 = sub nsw i32 %893, 1
  store i32 %894, ptr %60, align 4, !tbaa !9
  %895 = load float, ptr %80, align 4, !tbaa !15
  %896 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %895, ptr %896, align 4, !tbaa !11
  %897 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %897, align 4, !tbaa !14
  %898 = load ptr, ptr %31, align 8, !tbaa !5
  %899 = load i32, ptr %65, align 4, !tbaa !9
  %900 = load i32, ptr %49, align 4, !tbaa !9
  %901 = mul nsw i32 %899, %900
  %902 = add nsw i32 %901, 1
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds %struct.complex, ptr %898, i64 %903
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %904, ptr noundef @c__1)
  %905 = load i32, ptr %77, align 4, !tbaa !9
  %906 = sub nsw i32 %905, 1
  store i32 %906, ptr %60, align 4, !tbaa !9
  %907 = load float, ptr %80, align 4, !tbaa !15
  %908 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %907, ptr %908, align 4, !tbaa !11
  %909 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %909, align 4, !tbaa !14
  %910 = load ptr, ptr %37, align 8, !tbaa !5
  %911 = load i32, ptr %65, align 4, !tbaa !9
  %912 = load i32, ptr %55, align 4, !tbaa !9
  %913 = mul nsw i32 %911, %912
  %914 = add nsw i32 %913, 1
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds %struct.complex, ptr %910, i64 %915
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %916, ptr noundef @c__1)
  br label %917

917:                                              ; preds = %892
  %918 = load i32, ptr %65, align 4, !tbaa !9
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr %65, align 4, !tbaa !9
  br label %888, !llvm.loop !19

920:                                              ; preds = %888
  %921 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %921, ptr %59, align 4, !tbaa !9
  %922 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %922, ptr %65, align 4, !tbaa !9
  br label %923

923:                                              ; preds = %960, %920
  %924 = load i32, ptr %65, align 4, !tbaa !9
  %925 = load i32, ptr %59, align 4, !tbaa !9
  %926 = icmp sle i32 %924, %925
  br i1 %926, label %927, label %963

927:                                              ; preds = %923
  %928 = load ptr, ptr %25, align 8, !tbaa !5
  %929 = load i32, ptr %928, align 4, !tbaa !9
  %930 = load i32, ptr %72, align 4, !tbaa !9
  %931 = sub nsw i32 %929, %930
  store i32 %931, ptr %60, align 4, !tbaa !9
  %932 = load float, ptr %80, align 4, !tbaa !15
  %933 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %932, ptr %933, align 4, !tbaa !11
  %934 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %934, align 4, !tbaa !14
  %935 = load ptr, ptr %31, align 8, !tbaa !5
  %936 = load i32, ptr %72, align 4, !tbaa !9
  %937 = add nsw i32 %936, 1
  %938 = load i32, ptr %65, align 4, !tbaa !9
  %939 = load i32, ptr %49, align 4, !tbaa !9
  %940 = mul nsw i32 %938, %939
  %941 = add nsw i32 %937, %940
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds %struct.complex, ptr %935, i64 %942
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %943, ptr noundef @c__1)
  %944 = load ptr, ptr %25, align 8, !tbaa !5
  %945 = load i32, ptr %944, align 4, !tbaa !9
  %946 = load i32, ptr %72, align 4, !tbaa !9
  %947 = sub nsw i32 %945, %946
  store i32 %947, ptr %60, align 4, !tbaa !9
  %948 = load float, ptr %80, align 4, !tbaa !15
  %949 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %948, ptr %949, align 4, !tbaa !11
  %950 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %950, align 4, !tbaa !14
  %951 = load ptr, ptr %37, align 8, !tbaa !5
  %952 = load i32, ptr %72, align 4, !tbaa !9
  %953 = add nsw i32 %952, 1
  %954 = load i32, ptr %65, align 4, !tbaa !9
  %955 = load i32, ptr %55, align 4, !tbaa !9
  %956 = mul nsw i32 %954, %955
  %957 = add nsw i32 %953, %956
  %958 = sext i32 %957 to i64
  %959 = getelementptr inbounds %struct.complex, ptr %951, i64 %958
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %959, ptr noundef @c__1)
  br label %960

960:                                              ; preds = %927
  %961 = load i32, ptr %65, align 4, !tbaa !9
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr %65, align 4, !tbaa !9
  br label %923, !llvm.loop !20

963:                                              ; preds = %923
  %964 = load ptr, ptr %26, align 8, !tbaa !5
  %965 = load i32, ptr %964, align 4, !tbaa !9
  store i32 %965, ptr %59, align 4, !tbaa !9
  %966 = load i32, ptr %73, align 4, !tbaa !9
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr %65, align 4, !tbaa !9
  br label %968

968:                                              ; preds = %995, %963
  %969 = load i32, ptr %65, align 4, !tbaa !9
  %970 = load i32, ptr %59, align 4, !tbaa !9
  %971 = icmp sle i32 %969, %970
  br i1 %971, label %972, label %998

972:                                              ; preds = %968
  %973 = load float, ptr %80, align 4, !tbaa !15
  %974 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %973, ptr %974, align 4, !tbaa !11
  %975 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %975, align 4, !tbaa !14
  %976 = load ptr, ptr %25, align 8, !tbaa !5
  %977 = load ptr, ptr %31, align 8, !tbaa !5
  %978 = load i32, ptr %65, align 4, !tbaa !9
  %979 = load i32, ptr %49, align 4, !tbaa !9
  %980 = mul nsw i32 %978, %979
  %981 = add nsw i32 %980, 1
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds %struct.complex, ptr %977, i64 %982
  call void @cscal_(ptr noundef %976, ptr noundef %61, ptr noundef %983, ptr noundef @c__1)
  %984 = load float, ptr %80, align 4, !tbaa !15
  %985 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %984, ptr %985, align 4, !tbaa !11
  %986 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %986, align 4, !tbaa !14
  %987 = load ptr, ptr %25, align 8, !tbaa !5
  %988 = load ptr, ptr %37, align 8, !tbaa !5
  %989 = load i32, ptr %65, align 4, !tbaa !9
  %990 = load i32, ptr %55, align 4, !tbaa !9
  %991 = mul nsw i32 %989, %990
  %992 = add nsw i32 %991, 1
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds %struct.complex, ptr %988, i64 %993
  call void @cscal_(ptr noundef %987, ptr noundef %61, ptr noundef %994, ptr noundef @c__1)
  br label %995

995:                                              ; preds = %972
  %996 = load i32, ptr %65, align 4, !tbaa !9
  %997 = add nsw i32 %996, 1
  store i32 %997, ptr %65, align 4, !tbaa !9
  br label %968, !llvm.loop !21

998:                                              ; preds = %968
  %999 = load float, ptr %80, align 4, !tbaa !15
  %1000 = load ptr, ptr %39, align 8, !tbaa !5
  %1001 = load float, ptr %1000, align 4, !tbaa !15
  %1002 = fmul float %1001, %999
  store float %1002, ptr %1000, align 4, !tbaa !15
  br label %1003

1003:                                             ; preds = %998, %844
  %1004 = load i32, ptr %63, align 4, !tbaa !9
  %1005 = icmp sgt i32 %1004, 1
  br i1 %1005, label %1006, label %1061

1006:                                             ; preds = %1003
  %1007 = load i32, ptr %77, align 4, !tbaa !9
  %1008 = sub nsw i32 %1007, 1
  store i32 %1008, ptr %59, align 4, !tbaa !9
  %1009 = load ptr, ptr %27, align 8, !tbaa !5
  %1010 = load i32, ptr %77, align 4, !tbaa !9
  %1011 = load i32, ptr %45, align 4, !tbaa !9
  %1012 = mul nsw i32 %1010, %1011
  %1013 = add nsw i32 %1012, 1
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds %struct.complex, ptr %1009, i64 %1014
  %1016 = load ptr, ptr %28, align 8, !tbaa !5
  %1017 = load ptr, ptr %31, align 8, !tbaa !5
  %1018 = load i32, ptr %77, align 4, !tbaa !9
  %1019 = load i32, ptr %78, align 4, !tbaa !9
  %1020 = load i32, ptr %49, align 4, !tbaa !9
  %1021 = mul nsw i32 %1019, %1020
  %1022 = add nsw i32 %1018, %1021
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds %struct.complex, ptr %1017, i64 %1023
  %1025 = load ptr, ptr %32, align 8, !tbaa !5
  %1026 = load ptr, ptr %31, align 8, !tbaa !5
  %1027 = load i32, ptr %78, align 4, !tbaa !9
  %1028 = load i32, ptr %49, align 4, !tbaa !9
  %1029 = mul nsw i32 %1027, %1028
  %1030 = add nsw i32 %1029, 1
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds %struct.complex, ptr %1026, i64 %1031
  %1033 = load ptr, ptr %32, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b44, ptr noundef %1015, ptr noundef %1016, ptr noundef %1024, ptr noundef %1025, ptr noundef @c_b45, ptr noundef %1032, ptr noundef %1033)
  %1034 = load i32, ptr %77, align 4, !tbaa !9
  %1035 = sub nsw i32 %1034, 1
  store i32 %1035, ptr %59, align 4, !tbaa !9
  %1036 = load ptr, ptr %33, align 8, !tbaa !5
  %1037 = load i32, ptr %77, align 4, !tbaa !9
  %1038 = load i32, ptr %51, align 4, !tbaa !9
  %1039 = mul nsw i32 %1037, %1038
  %1040 = add nsw i32 %1039, 1
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds %struct.complex, ptr %1036, i64 %1041
  %1043 = load ptr, ptr %34, align 8, !tbaa !5
  %1044 = load ptr, ptr %31, align 8, !tbaa !5
  %1045 = load i32, ptr %77, align 4, !tbaa !9
  %1046 = load i32, ptr %78, align 4, !tbaa !9
  %1047 = load i32, ptr %49, align 4, !tbaa !9
  %1048 = mul nsw i32 %1046, %1047
  %1049 = add nsw i32 %1045, %1048
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds %struct.complex, ptr %1044, i64 %1050
  %1052 = load ptr, ptr %32, align 8, !tbaa !5
  %1053 = load ptr, ptr %37, align 8, !tbaa !5
  %1054 = load i32, ptr %78, align 4, !tbaa !9
  %1055 = load i32, ptr %55, align 4, !tbaa !9
  %1056 = mul nsw i32 %1054, %1055
  %1057 = add nsw i32 %1056, 1
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds %struct.complex, ptr %1053, i64 %1058
  %1060 = load ptr, ptr %38, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b44, ptr noundef %1042, ptr noundef %1043, ptr noundef %1051, ptr noundef %1052, ptr noundef @c_b45, ptr noundef %1059, ptr noundef %1060)
  br label %1061

1061:                                             ; preds = %1006, %1003
  %1062 = load i32, ptr %64, align 4, !tbaa !9
  %1063 = load i32, ptr %67, align 4, !tbaa !9
  %1064 = icmp slt i32 %1062, %1063
  br i1 %1064, label %1065, label %1132

1065:                                             ; preds = %1061
  %1066 = load ptr, ptr %26, align 8, !tbaa !5
  %1067 = load i32, ptr %1066, align 4, !tbaa !9
  %1068 = load i32, ptr %73, align 4, !tbaa !9
  %1069 = sub nsw i32 %1067, %1068
  store i32 %1069, ptr %59, align 4, !tbaa !9
  %1070 = load ptr, ptr %37, align 8, !tbaa !5
  %1071 = load i32, ptr %77, align 4, !tbaa !9
  %1072 = load i32, ptr %78, align 4, !tbaa !9
  %1073 = load i32, ptr %55, align 4, !tbaa !9
  %1074 = mul nsw i32 %1072, %1073
  %1075 = add nsw i32 %1071, %1074
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds %struct.complex, ptr %1070, i64 %1076
  %1078 = load ptr, ptr %38, align 8, !tbaa !5
  %1079 = load ptr, ptr %29, align 8, !tbaa !5
  %1080 = load i32, ptr %78, align 4, !tbaa !9
  %1081 = load i32, ptr %73, align 4, !tbaa !9
  %1082 = add nsw i32 %1081, 1
  %1083 = load i32, ptr %47, align 4, !tbaa !9
  %1084 = mul nsw i32 %1082, %1083
  %1085 = add nsw i32 %1080, %1084
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds %struct.complex, ptr %1079, i64 %1086
  %1088 = load ptr, ptr %30, align 8, !tbaa !5
  %1089 = load ptr, ptr %31, align 8, !tbaa !5
  %1090 = load i32, ptr %77, align 4, !tbaa !9
  %1091 = load i32, ptr %73, align 4, !tbaa !9
  %1092 = add nsw i32 %1091, 1
  %1093 = load i32, ptr %49, align 4, !tbaa !9
  %1094 = mul nsw i32 %1092, %1093
  %1095 = add nsw i32 %1090, %1094
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds %struct.complex, ptr %1089, i64 %1096
  %1098 = load ptr, ptr %32, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b45, ptr noundef %1077, ptr noundef %1078, ptr noundef %1087, ptr noundef %1088, ptr noundef @c_b45, ptr noundef %1097, ptr noundef %1098)
  %1099 = load ptr, ptr %26, align 8, !tbaa !5
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = load i32, ptr %73, align 4, !tbaa !9
  %1102 = sub nsw i32 %1100, %1101
  store i32 %1102, ptr %59, align 4, !tbaa !9
  %1103 = load ptr, ptr %37, align 8, !tbaa !5
  %1104 = load i32, ptr %77, align 4, !tbaa !9
  %1105 = load i32, ptr %78, align 4, !tbaa !9
  %1106 = load i32, ptr %55, align 4, !tbaa !9
  %1107 = mul nsw i32 %1105, %1106
  %1108 = add nsw i32 %1104, %1107
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds %struct.complex, ptr %1103, i64 %1109
  %1111 = load ptr, ptr %38, align 8, !tbaa !5
  %1112 = load ptr, ptr %35, align 8, !tbaa !5
  %1113 = load i32, ptr %78, align 4, !tbaa !9
  %1114 = load i32, ptr %73, align 4, !tbaa !9
  %1115 = add nsw i32 %1114, 1
  %1116 = load i32, ptr %53, align 4, !tbaa !9
  %1117 = mul nsw i32 %1115, %1116
  %1118 = add nsw i32 %1113, %1117
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds %struct.complex, ptr %1112, i64 %1119
  %1121 = load ptr, ptr %36, align 8, !tbaa !5
  %1122 = load ptr, ptr %37, align 8, !tbaa !5
  %1123 = load i32, ptr %77, align 4, !tbaa !9
  %1124 = load i32, ptr %73, align 4, !tbaa !9
  %1125 = add nsw i32 %1124, 1
  %1126 = load i32, ptr %55, align 4, !tbaa !9
  %1127 = mul nsw i32 %1125, %1126
  %1128 = add nsw i32 %1123, %1127
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds %struct.complex, ptr %1122, i64 %1129
  %1131 = load ptr, ptr %38, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b45, ptr noundef %1110, ptr noundef %1111, ptr noundef %1120, ptr noundef %1121, ptr noundef @c_b45, ptr noundef %1130, ptr noundef %1131)
  br label %1132

1132:                                             ; preds = %1065, %1061
  br label %1133

1133:                                             ; preds = %1132
  %1134 = load i32, ptr %63, align 4, !tbaa !9
  %1135 = add nsw i32 %1134, -1
  store i32 %1135, ptr %63, align 4, !tbaa !9
  br label %764, !llvm.loop !22

1136:                                             ; preds = %764
  br label %1137

1137:                                             ; preds = %1136
  %1138 = load i32, ptr %64, align 4, !tbaa !9
  %1139 = add nsw i32 %1138, 1
  store i32 %1139, ptr %64, align 4, !tbaa !9
  br label %742, !llvm.loop !23

1140:                                             ; preds = %742
  %1141 = load float, ptr %76, align 4, !tbaa !15
  %1142 = fcmp une float %1141, 0.000000e+00
  br i1 %1142, label %1143, label %1185

1143:                                             ; preds = %1140
  %1144 = load ptr, ptr %24, align 8, !tbaa !5
  %1145 = load i32, ptr %1144, align 4, !tbaa !9
  %1146 = icmp eq i32 %1145, 1
  br i1 %1146, label %1151, label %1147

1147:                                             ; preds = %1143
  %1148 = load ptr, ptr %24, align 8, !tbaa !5
  %1149 = load i32, ptr %1148, align 4, !tbaa !9
  %1150 = icmp eq i32 %1149, 3
  br i1 %1150, label %1151, label %1170

1151:                                             ; preds = %1147, %1143
  %1152 = load ptr, ptr %25, align 8, !tbaa !5
  %1153 = load i32, ptr %1152, align 4, !tbaa !9
  %1154 = shl i32 %1153, 1
  %1155 = load ptr, ptr %26, align 8, !tbaa !5
  %1156 = load i32, ptr %1155, align 4, !tbaa !9
  %1157 = mul nsw i32 %1154, %1156
  %1158 = sitofp i32 %1157 to float
  %1159 = fpext float %1158 to double
  %1160 = call double @sqrt(double noundef %1159) #4
  %1161 = load float, ptr %76, align 4, !tbaa !15
  %1162 = fpext float %1161 to double
  %1163 = load float, ptr %62, align 4, !tbaa !15
  %1164 = fpext float %1163 to double
  %1165 = call double @sqrt(double noundef %1164) #4
  %1166 = fmul double %1162, %1165
  %1167 = fdiv double %1160, %1166
  %1168 = fptrunc double %1167 to float
  %1169 = load ptr, ptr %40, align 8, !tbaa !5
  store float %1168, ptr %1169, align 4, !tbaa !15
  br label %1184

1170:                                             ; preds = %1147
  %1171 = load i32, ptr %79, align 4, !tbaa !9
  %1172 = sitofp i32 %1171 to float
  %1173 = fpext float %1172 to double
  %1174 = call double @sqrt(double noundef %1173) #4
  %1175 = load float, ptr %76, align 4, !tbaa !15
  %1176 = fpext float %1175 to double
  %1177 = load float, ptr %62, align 4, !tbaa !15
  %1178 = fpext float %1177 to double
  %1179 = call double @sqrt(double noundef %1178) #4
  %1180 = fmul double %1176, %1179
  %1181 = fdiv double %1174, %1180
  %1182 = fptrunc double %1181 to float
  %1183 = load ptr, ptr %40, align 8, !tbaa !5
  store float %1182, ptr %1183, align 4, !tbaa !15
  br label %1184

1184:                                             ; preds = %1170, %1151
  br label %1185

1185:                                             ; preds = %1184, %1140
  %1186 = load i32, ptr %83, align 4, !tbaa !9
  %1187 = icmp eq i32 %1186, 2
  br i1 %1187, label %1188, label %1241

1188:                                             ; preds = %1185
  %1189 = load i32, ptr %81, align 4, !tbaa !9
  %1190 = icmp eq i32 %1189, 1
  br i1 %1190, label %1191, label %1241

1191:                                             ; preds = %1188
  %1192 = load i32, ptr %82, align 4, !tbaa !9
  %1193 = icmp ne i32 %1192, 0
  br i1 %1193, label %1194, label %1197

1194:                                             ; preds = %1191
  %1195 = load ptr, ptr %24, align 8, !tbaa !5
  %1196 = load i32, ptr %1195, align 4, !tbaa !9
  store i32 %1196, ptr %68, align 4, !tbaa !9
  br label %1197

1197:                                             ; preds = %1194, %1191
  %1198 = load ptr, ptr %39, align 8, !tbaa !5
  %1199 = load float, ptr %1198, align 4, !tbaa !15
  store float %1199, ptr %71, align 4, !tbaa !15
  %1200 = load ptr, ptr %25, align 8, !tbaa !5
  %1201 = load ptr, ptr %26, align 8, !tbaa !5
  %1202 = load ptr, ptr %31, align 8, !tbaa !5
  %1203 = load i32, ptr %50, align 4, !tbaa !9
  %1204 = sext i32 %1203 to i64
  %1205 = getelementptr inbounds %struct.complex, ptr %1202, i64 %1204
  %1206 = load ptr, ptr %32, align 8, !tbaa !5
  %1207 = load ptr, ptr %41, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i64 1
  %1209 = load ptr, ptr %25, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %1200, ptr noundef %1201, ptr noundef %1205, ptr noundef %1206, ptr noundef %1208, ptr noundef %1209)
  %1210 = load ptr, ptr %25, align 8, !tbaa !5
  %1211 = load ptr, ptr %26, align 8, !tbaa !5
  %1212 = load ptr, ptr %37, align 8, !tbaa !5
  %1213 = load i32, ptr %56, align 4, !tbaa !9
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds %struct.complex, ptr %1212, i64 %1214
  %1216 = load ptr, ptr %38, align 8, !tbaa !5
  %1217 = load ptr, ptr %41, align 8, !tbaa !5
  %1218 = load ptr, ptr %25, align 8, !tbaa !5
  %1219 = load i32, ptr %1218, align 4, !tbaa !9
  %1220 = load ptr, ptr %26, align 8, !tbaa !5
  %1221 = load i32, ptr %1220, align 4, !tbaa !9
  %1222 = mul nsw i32 %1219, %1221
  %1223 = add nsw i32 %1222, 1
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds %struct.complex, ptr %1217, i64 %1224
  %1226 = load ptr, ptr %25, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %1210, ptr noundef %1211, ptr noundef %1215, ptr noundef %1216, ptr noundef %1225, ptr noundef %1226)
  %1227 = load ptr, ptr %25, align 8, !tbaa !5
  %1228 = load ptr, ptr %26, align 8, !tbaa !5
  %1229 = load ptr, ptr %31, align 8, !tbaa !5
  %1230 = load i32, ptr %50, align 4, !tbaa !9
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds %struct.complex, ptr %1229, i64 %1231
  %1233 = load ptr, ptr %32, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.3, ptr noundef %1227, ptr noundef %1228, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %1232, ptr noundef %1233)
  %1234 = load ptr, ptr %25, align 8, !tbaa !5
  %1235 = load ptr, ptr %26, align 8, !tbaa !5
  %1236 = load ptr, ptr %37, align 8, !tbaa !5
  %1237 = load i32, ptr %56, align 4, !tbaa !9
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds %struct.complex, ptr %1236, i64 %1238
  %1240 = load ptr, ptr %38, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.3, ptr noundef %1234, ptr noundef %1235, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %1239, ptr noundef %1240)
  br label %1278

1241:                                             ; preds = %1188, %1185
  %1242 = load i32, ptr %83, align 4, !tbaa !9
  %1243 = icmp eq i32 %1242, 2
  br i1 %1243, label %1244, label %1277

1244:                                             ; preds = %1241
  %1245 = load i32, ptr %81, align 4, !tbaa !9
  %1246 = icmp eq i32 %1245, 2
  br i1 %1246, label %1247, label %1277

1247:                                             ; preds = %1244
  %1248 = load ptr, ptr %25, align 8, !tbaa !5
  %1249 = load ptr, ptr %26, align 8, !tbaa !5
  %1250 = load ptr, ptr %41, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.complex, ptr %1250, i64 1
  %1252 = load ptr, ptr %25, align 8, !tbaa !5
  %1253 = load ptr, ptr %31, align 8, !tbaa !5
  %1254 = load i32, ptr %50, align 4, !tbaa !9
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds %struct.complex, ptr %1253, i64 %1255
  %1257 = load ptr, ptr %32, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %1248, ptr noundef %1249, ptr noundef %1251, ptr noundef %1252, ptr noundef %1256, ptr noundef %1257)
  %1258 = load ptr, ptr %25, align 8, !tbaa !5
  %1259 = load ptr, ptr %26, align 8, !tbaa !5
  %1260 = load ptr, ptr %41, align 8, !tbaa !5
  %1261 = load ptr, ptr %25, align 8, !tbaa !5
  %1262 = load i32, ptr %1261, align 4, !tbaa !9
  %1263 = load ptr, ptr %26, align 8, !tbaa !5
  %1264 = load i32, ptr %1263, align 4, !tbaa !9
  %1265 = mul nsw i32 %1262, %1264
  %1266 = add nsw i32 %1265, 1
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds %struct.complex, ptr %1260, i64 %1267
  %1269 = load ptr, ptr %25, align 8, !tbaa !5
  %1270 = load ptr, ptr %37, align 8, !tbaa !5
  %1271 = load i32, ptr %56, align 4, !tbaa !9
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds %struct.complex, ptr %1270, i64 %1272
  %1274 = load ptr, ptr %38, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.3, ptr noundef %1258, ptr noundef %1259, ptr noundef %1268, ptr noundef %1269, ptr noundef %1273, ptr noundef %1274)
  %1275 = load float, ptr %71, align 4, !tbaa !15
  %1276 = load ptr, ptr %39, align 8, !tbaa !5
  store float %1275, ptr %1276, align 4, !tbaa !15
  br label %1277

1277:                                             ; preds = %1247, %1244, %1241
  br label %1278

1278:                                             ; preds = %1277, %1197
  br label %1279

1279:                                             ; preds = %1278
  %1280 = load i32, ptr %81, align 4, !tbaa !9
  %1281 = add nsw i32 %1280, 1
  store i32 %1281, ptr %81, align 4, !tbaa !9
  br label %733, !llvm.loop !24

1282:                                             ; preds = %733
  br label %1683

1283:                                             ; preds = %728
  %1284 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %1284, align 4, !tbaa !15
  %1285 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %1285, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %1286

1286:                                             ; preds = %1679, %1283
  %1287 = load i32, ptr %63, align 4, !tbaa !9
  %1288 = load i32, ptr %57, align 4, !tbaa !9
  %1289 = icmp sle i32 %1287, %1288
  br i1 %1289, label %1290, label %1682

1290:                                             ; preds = %1286
  %1291 = load ptr, ptr %43, align 8, !tbaa !5
  %1292 = load i32, ptr %63, align 4, !tbaa !9
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds i32, ptr %1291, i64 %1293
  %1295 = load i32, ptr %1294, align 4, !tbaa !9
  store i32 %1295, ptr %77, align 4, !tbaa !9
  %1296 = load ptr, ptr %43, align 8, !tbaa !5
  %1297 = load i32, ptr %63, align 4, !tbaa !9
  %1298 = add nsw i32 %1297, 1
  %1299 = sext i32 %1298 to i64
  %1300 = getelementptr inbounds i32, ptr %1296, i64 %1299
  %1301 = load i32, ptr %1300, align 4, !tbaa !9
  %1302 = sub nsw i32 %1301, 1
  store i32 %1302, ptr %72, align 4, !tbaa !9
  %1303 = load i32, ptr %72, align 4, !tbaa !9
  %1304 = load i32, ptr %77, align 4, !tbaa !9
  %1305 = sub nsw i32 %1303, %1304
  %1306 = add nsw i32 %1305, 1
  store i32 %1306, ptr %74, align 4, !tbaa !9
  %1307 = load i32, ptr %66, align 4, !tbaa !9
  %1308 = add nsw i32 %1307, 2
  store i32 %1308, ptr %58, align 4, !tbaa !9
  %1309 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %1309, ptr %64, align 4, !tbaa !9
  br label %1310

1310:                                             ; preds = %1675, %1290
  %1311 = load i32, ptr %64, align 4, !tbaa !9
  %1312 = load i32, ptr %58, align 4, !tbaa !9
  %1313 = icmp sge i32 %1311, %1312
  br i1 %1313, label %1314, label %1678

1314:                                             ; preds = %1310
  %1315 = load ptr, ptr %43, align 8, !tbaa !5
  %1316 = load i32, ptr %64, align 4, !tbaa !9
  %1317 = sext i32 %1316 to i64
  %1318 = getelementptr inbounds i32, ptr %1315, i64 %1317
  %1319 = load i32, ptr %1318, align 4, !tbaa !9
  store i32 %1319, ptr %78, align 4, !tbaa !9
  %1320 = load ptr, ptr %43, align 8, !tbaa !5
  %1321 = load i32, ptr %64, align 4, !tbaa !9
  %1322 = add nsw i32 %1321, 1
  %1323 = sext i32 %1322 to i64
  %1324 = getelementptr inbounds i32, ptr %1320, i64 %1323
  %1325 = load i32, ptr %1324, align 4, !tbaa !9
  %1326 = sub nsw i32 %1325, 1
  store i32 %1326, ptr %73, align 4, !tbaa !9
  %1327 = load i32, ptr %73, align 4, !tbaa !9
  %1328 = load i32, ptr %78, align 4, !tbaa !9
  %1329 = sub nsw i32 %1327, %1328
  %1330 = add nsw i32 %1329, 1
  store i32 %1330, ptr %75, align 4, !tbaa !9
  %1331 = load ptr, ptr %23, align 8, !tbaa !5
  %1332 = load ptr, ptr %27, align 8, !tbaa !5
  %1333 = load i32, ptr %77, align 4, !tbaa !9
  %1334 = load i32, ptr %77, align 4, !tbaa !9
  %1335 = load i32, ptr %45, align 4, !tbaa !9
  %1336 = mul nsw i32 %1334, %1335
  %1337 = add nsw i32 %1333, %1336
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds %struct.complex, ptr %1332, i64 %1338
  %1340 = load ptr, ptr %28, align 8, !tbaa !5
  %1341 = load ptr, ptr %29, align 8, !tbaa !5
  %1342 = load i32, ptr %78, align 4, !tbaa !9
  %1343 = load i32, ptr %78, align 4, !tbaa !9
  %1344 = load i32, ptr %47, align 4, !tbaa !9
  %1345 = mul nsw i32 %1343, %1344
  %1346 = add nsw i32 %1342, %1345
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds %struct.complex, ptr %1341, i64 %1347
  %1349 = load ptr, ptr %30, align 8, !tbaa !5
  %1350 = load ptr, ptr %31, align 8, !tbaa !5
  %1351 = load i32, ptr %77, align 4, !tbaa !9
  %1352 = load i32, ptr %78, align 4, !tbaa !9
  %1353 = load i32, ptr %49, align 4, !tbaa !9
  %1354 = mul nsw i32 %1352, %1353
  %1355 = add nsw i32 %1351, %1354
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds %struct.complex, ptr %1350, i64 %1356
  %1358 = load ptr, ptr %32, align 8, !tbaa !5
  %1359 = load ptr, ptr %33, align 8, !tbaa !5
  %1360 = load i32, ptr %77, align 4, !tbaa !9
  %1361 = load i32, ptr %77, align 4, !tbaa !9
  %1362 = load i32, ptr %51, align 4, !tbaa !9
  %1363 = mul nsw i32 %1361, %1362
  %1364 = add nsw i32 %1360, %1363
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds %struct.complex, ptr %1359, i64 %1365
  %1367 = load ptr, ptr %34, align 8, !tbaa !5
  %1368 = load ptr, ptr %35, align 8, !tbaa !5
  %1369 = load i32, ptr %78, align 4, !tbaa !9
  %1370 = load i32, ptr %78, align 4, !tbaa !9
  %1371 = load i32, ptr %53, align 4, !tbaa !9
  %1372 = mul nsw i32 %1370, %1371
  %1373 = add nsw i32 %1369, %1372
  %1374 = sext i32 %1373 to i64
  %1375 = getelementptr inbounds %struct.complex, ptr %1368, i64 %1374
  %1376 = load ptr, ptr %36, align 8, !tbaa !5
  %1377 = load ptr, ptr %37, align 8, !tbaa !5
  %1378 = load i32, ptr %77, align 4, !tbaa !9
  %1379 = load i32, ptr %78, align 4, !tbaa !9
  %1380 = load i32, ptr %55, align 4, !tbaa !9
  %1381 = mul nsw i32 %1379, %1380
  %1382 = add nsw i32 %1378, %1381
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds %struct.complex, ptr %1377, i64 %1383
  %1385 = load ptr, ptr %38, align 8, !tbaa !5
  call void @ctgsy2_(ptr noundef %1331, ptr noundef %68, ptr noundef %74, ptr noundef %75, ptr noundef %1339, ptr noundef %1340, ptr noundef %1348, ptr noundef %1349, ptr noundef %1357, ptr noundef %1358, ptr noundef %1366, ptr noundef %1367, ptr noundef %1375, ptr noundef %1376, ptr noundef %1384, ptr noundef %1385, ptr noundef %80, ptr noundef %62, ptr noundef %76, ptr noundef %69)
  %1386 = load i32, ptr %69, align 4, !tbaa !9
  %1387 = icmp sgt i32 %1386, 0
  br i1 %1387, label %1388, label %1391

1388:                                             ; preds = %1314
  %1389 = load i32, ptr %69, align 4, !tbaa !9
  %1390 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 %1389, ptr %1390, align 4, !tbaa !9
  br label %1391

1391:                                             ; preds = %1388, %1314
  %1392 = load float, ptr %80, align 4, !tbaa !15
  %1393 = fcmp une float %1392, 1.000000e+00
  br i1 %1393, label %1394, label %1545

1394:                                             ; preds = %1391
  %1395 = load i32, ptr %78, align 4, !tbaa !9
  %1396 = sub nsw i32 %1395, 1
  store i32 %1396, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %1397

1397:                                             ; preds = %1424, %1394
  %1398 = load i32, ptr %65, align 4, !tbaa !9
  %1399 = load i32, ptr %59, align 4, !tbaa !9
  %1400 = icmp sle i32 %1398, %1399
  br i1 %1400, label %1401, label %1427

1401:                                             ; preds = %1397
  %1402 = load float, ptr %80, align 4, !tbaa !15
  %1403 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1402, ptr %1403, align 4, !tbaa !11
  %1404 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1404, align 4, !tbaa !14
  %1405 = load ptr, ptr %25, align 8, !tbaa !5
  %1406 = load ptr, ptr %31, align 8, !tbaa !5
  %1407 = load i32, ptr %65, align 4, !tbaa !9
  %1408 = load i32, ptr %49, align 4, !tbaa !9
  %1409 = mul nsw i32 %1407, %1408
  %1410 = add nsw i32 %1409, 1
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds %struct.complex, ptr %1406, i64 %1411
  call void @cscal_(ptr noundef %1405, ptr noundef %61, ptr noundef %1412, ptr noundef @c__1)
  %1413 = load float, ptr %80, align 4, !tbaa !15
  %1414 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1413, ptr %1414, align 4, !tbaa !11
  %1415 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1415, align 4, !tbaa !14
  %1416 = load ptr, ptr %25, align 8, !tbaa !5
  %1417 = load ptr, ptr %37, align 8, !tbaa !5
  %1418 = load i32, ptr %65, align 4, !tbaa !9
  %1419 = load i32, ptr %55, align 4, !tbaa !9
  %1420 = mul nsw i32 %1418, %1419
  %1421 = add nsw i32 %1420, 1
  %1422 = sext i32 %1421 to i64
  %1423 = getelementptr inbounds %struct.complex, ptr %1417, i64 %1422
  call void @cscal_(ptr noundef %1416, ptr noundef %61, ptr noundef %1423, ptr noundef @c__1)
  br label %1424

1424:                                             ; preds = %1401
  %1425 = load i32, ptr %65, align 4, !tbaa !9
  %1426 = add nsw i32 %1425, 1
  store i32 %1426, ptr %65, align 4, !tbaa !9
  br label %1397, !llvm.loop !25

1427:                                             ; preds = %1397
  %1428 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %1428, ptr %59, align 4, !tbaa !9
  %1429 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1429, ptr %65, align 4, !tbaa !9
  br label %1430

1430:                                             ; preds = %1459, %1427
  %1431 = load i32, ptr %65, align 4, !tbaa !9
  %1432 = load i32, ptr %59, align 4, !tbaa !9
  %1433 = icmp sle i32 %1431, %1432
  br i1 %1433, label %1434, label %1462

1434:                                             ; preds = %1430
  %1435 = load i32, ptr %77, align 4, !tbaa !9
  %1436 = sub nsw i32 %1435, 1
  store i32 %1436, ptr %60, align 4, !tbaa !9
  %1437 = load float, ptr %80, align 4, !tbaa !15
  %1438 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1437, ptr %1438, align 4, !tbaa !11
  %1439 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1439, align 4, !tbaa !14
  %1440 = load ptr, ptr %31, align 8, !tbaa !5
  %1441 = load i32, ptr %65, align 4, !tbaa !9
  %1442 = load i32, ptr %49, align 4, !tbaa !9
  %1443 = mul nsw i32 %1441, %1442
  %1444 = add nsw i32 %1443, 1
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds %struct.complex, ptr %1440, i64 %1445
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %1446, ptr noundef @c__1)
  %1447 = load i32, ptr %77, align 4, !tbaa !9
  %1448 = sub nsw i32 %1447, 1
  store i32 %1448, ptr %60, align 4, !tbaa !9
  %1449 = load float, ptr %80, align 4, !tbaa !15
  %1450 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1449, ptr %1450, align 4, !tbaa !11
  %1451 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1451, align 4, !tbaa !14
  %1452 = load ptr, ptr %37, align 8, !tbaa !5
  %1453 = load i32, ptr %65, align 4, !tbaa !9
  %1454 = load i32, ptr %55, align 4, !tbaa !9
  %1455 = mul nsw i32 %1453, %1454
  %1456 = add nsw i32 %1455, 1
  %1457 = sext i32 %1456 to i64
  %1458 = getelementptr inbounds %struct.complex, ptr %1452, i64 %1457
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %1458, ptr noundef @c__1)
  br label %1459

1459:                                             ; preds = %1434
  %1460 = load i32, ptr %65, align 4, !tbaa !9
  %1461 = add nsw i32 %1460, 1
  store i32 %1461, ptr %65, align 4, !tbaa !9
  br label %1430, !llvm.loop !26

1462:                                             ; preds = %1430
  %1463 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %1463, ptr %59, align 4, !tbaa !9
  %1464 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1464, ptr %65, align 4, !tbaa !9
  br label %1465

1465:                                             ; preds = %1502, %1462
  %1466 = load i32, ptr %65, align 4, !tbaa !9
  %1467 = load i32, ptr %59, align 4, !tbaa !9
  %1468 = icmp sle i32 %1466, %1467
  br i1 %1468, label %1469, label %1505

1469:                                             ; preds = %1465
  %1470 = load ptr, ptr %25, align 8, !tbaa !5
  %1471 = load i32, ptr %1470, align 4, !tbaa !9
  %1472 = load i32, ptr %72, align 4, !tbaa !9
  %1473 = sub nsw i32 %1471, %1472
  store i32 %1473, ptr %60, align 4, !tbaa !9
  %1474 = load float, ptr %80, align 4, !tbaa !15
  %1475 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1474, ptr %1475, align 4, !tbaa !11
  %1476 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1476, align 4, !tbaa !14
  %1477 = load ptr, ptr %31, align 8, !tbaa !5
  %1478 = load i32, ptr %72, align 4, !tbaa !9
  %1479 = add nsw i32 %1478, 1
  %1480 = load i32, ptr %65, align 4, !tbaa !9
  %1481 = load i32, ptr %49, align 4, !tbaa !9
  %1482 = mul nsw i32 %1480, %1481
  %1483 = add nsw i32 %1479, %1482
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds %struct.complex, ptr %1477, i64 %1484
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %1485, ptr noundef @c__1)
  %1486 = load ptr, ptr %25, align 8, !tbaa !5
  %1487 = load i32, ptr %1486, align 4, !tbaa !9
  %1488 = load i32, ptr %72, align 4, !tbaa !9
  %1489 = sub nsw i32 %1487, %1488
  store i32 %1489, ptr %60, align 4, !tbaa !9
  %1490 = load float, ptr %80, align 4, !tbaa !15
  %1491 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1490, ptr %1491, align 4, !tbaa !11
  %1492 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1492, align 4, !tbaa !14
  %1493 = load ptr, ptr %37, align 8, !tbaa !5
  %1494 = load i32, ptr %72, align 4, !tbaa !9
  %1495 = add nsw i32 %1494, 1
  %1496 = load i32, ptr %65, align 4, !tbaa !9
  %1497 = load i32, ptr %55, align 4, !tbaa !9
  %1498 = mul nsw i32 %1496, %1497
  %1499 = add nsw i32 %1495, %1498
  %1500 = sext i32 %1499 to i64
  %1501 = getelementptr inbounds %struct.complex, ptr %1493, i64 %1500
  call void @cscal_(ptr noundef %60, ptr noundef %61, ptr noundef %1501, ptr noundef @c__1)
  br label %1502

1502:                                             ; preds = %1469
  %1503 = load i32, ptr %65, align 4, !tbaa !9
  %1504 = add nsw i32 %1503, 1
  store i32 %1504, ptr %65, align 4, !tbaa !9
  br label %1465, !llvm.loop !27

1505:                                             ; preds = %1465
  %1506 = load ptr, ptr %26, align 8, !tbaa !5
  %1507 = load i32, ptr %1506, align 4, !tbaa !9
  store i32 %1507, ptr %59, align 4, !tbaa !9
  %1508 = load i32, ptr %73, align 4, !tbaa !9
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr %65, align 4, !tbaa !9
  br label %1510

1510:                                             ; preds = %1537, %1505
  %1511 = load i32, ptr %65, align 4, !tbaa !9
  %1512 = load i32, ptr %59, align 4, !tbaa !9
  %1513 = icmp sle i32 %1511, %1512
  br i1 %1513, label %1514, label %1540

1514:                                             ; preds = %1510
  %1515 = load float, ptr %80, align 4, !tbaa !15
  %1516 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1515, ptr %1516, align 4, !tbaa !11
  %1517 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1517, align 4, !tbaa !14
  %1518 = load ptr, ptr %25, align 8, !tbaa !5
  %1519 = load ptr, ptr %31, align 8, !tbaa !5
  %1520 = load i32, ptr %65, align 4, !tbaa !9
  %1521 = load i32, ptr %49, align 4, !tbaa !9
  %1522 = mul nsw i32 %1520, %1521
  %1523 = add nsw i32 %1522, 1
  %1524 = sext i32 %1523 to i64
  %1525 = getelementptr inbounds %struct.complex, ptr %1519, i64 %1524
  call void @cscal_(ptr noundef %1518, ptr noundef %61, ptr noundef %1525, ptr noundef @c__1)
  %1526 = load float, ptr %80, align 4, !tbaa !15
  %1527 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1526, ptr %1527, align 4, !tbaa !11
  %1528 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float 0.000000e+00, ptr %1528, align 4, !tbaa !14
  %1529 = load ptr, ptr %25, align 8, !tbaa !5
  %1530 = load ptr, ptr %37, align 8, !tbaa !5
  %1531 = load i32, ptr %65, align 4, !tbaa !9
  %1532 = load i32, ptr %55, align 4, !tbaa !9
  %1533 = mul nsw i32 %1531, %1532
  %1534 = add nsw i32 %1533, 1
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds %struct.complex, ptr %1530, i64 %1535
  call void @cscal_(ptr noundef %1529, ptr noundef %61, ptr noundef %1536, ptr noundef @c__1)
  br label %1537

1537:                                             ; preds = %1514
  %1538 = load i32, ptr %65, align 4, !tbaa !9
  %1539 = add nsw i32 %1538, 1
  store i32 %1539, ptr %65, align 4, !tbaa !9
  br label %1510, !llvm.loop !28

1540:                                             ; preds = %1510
  %1541 = load float, ptr %80, align 4, !tbaa !15
  %1542 = load ptr, ptr %39, align 8, !tbaa !5
  %1543 = load float, ptr %1542, align 4, !tbaa !15
  %1544 = fmul float %1543, %1541
  store float %1544, ptr %1542, align 4, !tbaa !15
  br label %1545

1545:                                             ; preds = %1540, %1391
  %1546 = load i32, ptr %64, align 4, !tbaa !9
  %1547 = load i32, ptr %66, align 4, !tbaa !9
  %1548 = add nsw i32 %1547, 2
  %1549 = icmp sgt i32 %1546, %1548
  br i1 %1549, label %1550, label %1603

1550:                                             ; preds = %1545
  %1551 = load i32, ptr %78, align 4, !tbaa !9
  %1552 = sub nsw i32 %1551, 1
  store i32 %1552, ptr %59, align 4, !tbaa !9
  %1553 = load ptr, ptr %31, align 8, !tbaa !5
  %1554 = load i32, ptr %77, align 4, !tbaa !9
  %1555 = load i32, ptr %78, align 4, !tbaa !9
  %1556 = load i32, ptr %49, align 4, !tbaa !9
  %1557 = mul nsw i32 %1555, %1556
  %1558 = add nsw i32 %1554, %1557
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds %struct.complex, ptr %1553, i64 %1559
  %1561 = load ptr, ptr %32, align 8, !tbaa !5
  %1562 = load ptr, ptr %29, align 8, !tbaa !5
  %1563 = load i32, ptr %78, align 4, !tbaa !9
  %1564 = load i32, ptr %47, align 4, !tbaa !9
  %1565 = mul nsw i32 %1563, %1564
  %1566 = add nsw i32 %1565, 1
  %1567 = sext i32 %1566 to i64
  %1568 = getelementptr inbounds %struct.complex, ptr %1562, i64 %1567
  %1569 = load ptr, ptr %30, align 8, !tbaa !5
  %1570 = load ptr, ptr %37, align 8, !tbaa !5
  %1571 = load i32, ptr %77, align 4, !tbaa !9
  %1572 = load i32, ptr %55, align 4, !tbaa !9
  %1573 = add nsw i32 %1571, %1572
  %1574 = sext i32 %1573 to i64
  %1575 = getelementptr inbounds %struct.complex, ptr %1570, i64 %1574
  %1576 = load ptr, ptr %38, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b45, ptr noundef %1560, ptr noundef %1561, ptr noundef %1568, ptr noundef %1569, ptr noundef @c_b45, ptr noundef %1575, ptr noundef %1576)
  %1577 = load i32, ptr %78, align 4, !tbaa !9
  %1578 = sub nsw i32 %1577, 1
  store i32 %1578, ptr %59, align 4, !tbaa !9
  %1579 = load ptr, ptr %37, align 8, !tbaa !5
  %1580 = load i32, ptr %77, align 4, !tbaa !9
  %1581 = load i32, ptr %78, align 4, !tbaa !9
  %1582 = load i32, ptr %55, align 4, !tbaa !9
  %1583 = mul nsw i32 %1581, %1582
  %1584 = add nsw i32 %1580, %1583
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds %struct.complex, ptr %1579, i64 %1585
  %1587 = load ptr, ptr %38, align 8, !tbaa !5
  %1588 = load ptr, ptr %35, align 8, !tbaa !5
  %1589 = load i32, ptr %78, align 4, !tbaa !9
  %1590 = load i32, ptr %53, align 4, !tbaa !9
  %1591 = mul nsw i32 %1589, %1590
  %1592 = add nsw i32 %1591, 1
  %1593 = sext i32 %1592 to i64
  %1594 = getelementptr inbounds %struct.complex, ptr %1588, i64 %1593
  %1595 = load ptr, ptr %36, align 8, !tbaa !5
  %1596 = load ptr, ptr %37, align 8, !tbaa !5
  %1597 = load i32, ptr %77, align 4, !tbaa !9
  %1598 = load i32, ptr %55, align 4, !tbaa !9
  %1599 = add nsw i32 %1597, %1598
  %1600 = sext i32 %1599 to i64
  %1601 = getelementptr inbounds %struct.complex, ptr %1596, i64 %1600
  %1602 = load ptr, ptr %38, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b45, ptr noundef %1586, ptr noundef %1587, ptr noundef %1594, ptr noundef %1595, ptr noundef @c_b45, ptr noundef %1601, ptr noundef %1602)
  br label %1603

1603:                                             ; preds = %1550, %1545
  %1604 = load i32, ptr %63, align 4, !tbaa !9
  %1605 = load i32, ptr %66, align 4, !tbaa !9
  %1606 = icmp slt i32 %1604, %1605
  br i1 %1606, label %1607, label %1674

1607:                                             ; preds = %1603
  %1608 = load ptr, ptr %25, align 8, !tbaa !5
  %1609 = load i32, ptr %1608, align 4, !tbaa !9
  %1610 = load i32, ptr %72, align 4, !tbaa !9
  %1611 = sub nsw i32 %1609, %1610
  store i32 %1611, ptr %59, align 4, !tbaa !9
  %1612 = load ptr, ptr %27, align 8, !tbaa !5
  %1613 = load i32, ptr %77, align 4, !tbaa !9
  %1614 = load i32, ptr %72, align 4, !tbaa !9
  %1615 = add nsw i32 %1614, 1
  %1616 = load i32, ptr %45, align 4, !tbaa !9
  %1617 = mul nsw i32 %1615, %1616
  %1618 = add nsw i32 %1613, %1617
  %1619 = sext i32 %1618 to i64
  %1620 = getelementptr inbounds %struct.complex, ptr %1612, i64 %1619
  %1621 = load ptr, ptr %28, align 8, !tbaa !5
  %1622 = load ptr, ptr %31, align 8, !tbaa !5
  %1623 = load i32, ptr %77, align 4, !tbaa !9
  %1624 = load i32, ptr %78, align 4, !tbaa !9
  %1625 = load i32, ptr %49, align 4, !tbaa !9
  %1626 = mul nsw i32 %1624, %1625
  %1627 = add nsw i32 %1623, %1626
  %1628 = sext i32 %1627 to i64
  %1629 = getelementptr inbounds %struct.complex, ptr %1622, i64 %1628
  %1630 = load ptr, ptr %32, align 8, !tbaa !5
  %1631 = load ptr, ptr %31, align 8, !tbaa !5
  %1632 = load i32, ptr %72, align 4, !tbaa !9
  %1633 = add nsw i32 %1632, 1
  %1634 = load i32, ptr %78, align 4, !tbaa !9
  %1635 = load i32, ptr %49, align 4, !tbaa !9
  %1636 = mul nsw i32 %1634, %1635
  %1637 = add nsw i32 %1633, %1636
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds %struct.complex, ptr %1631, i64 %1638
  %1640 = load ptr, ptr %32, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b44, ptr noundef %1620, ptr noundef %1621, ptr noundef %1629, ptr noundef %1630, ptr noundef @c_b45, ptr noundef %1639, ptr noundef %1640)
  %1641 = load ptr, ptr %25, align 8, !tbaa !5
  %1642 = load i32, ptr %1641, align 4, !tbaa !9
  %1643 = load i32, ptr %72, align 4, !tbaa !9
  %1644 = sub nsw i32 %1642, %1643
  store i32 %1644, ptr %59, align 4, !tbaa !9
  %1645 = load ptr, ptr %33, align 8, !tbaa !5
  %1646 = load i32, ptr %77, align 4, !tbaa !9
  %1647 = load i32, ptr %72, align 4, !tbaa !9
  %1648 = add nsw i32 %1647, 1
  %1649 = load i32, ptr %51, align 4, !tbaa !9
  %1650 = mul nsw i32 %1648, %1649
  %1651 = add nsw i32 %1646, %1650
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds %struct.complex, ptr %1645, i64 %1652
  %1654 = load ptr, ptr %34, align 8, !tbaa !5
  %1655 = load ptr, ptr %37, align 8, !tbaa !5
  %1656 = load i32, ptr %77, align 4, !tbaa !9
  %1657 = load i32, ptr %78, align 4, !tbaa !9
  %1658 = load i32, ptr %55, align 4, !tbaa !9
  %1659 = mul nsw i32 %1657, %1658
  %1660 = add nsw i32 %1656, %1659
  %1661 = sext i32 %1660 to i64
  %1662 = getelementptr inbounds %struct.complex, ptr %1655, i64 %1661
  %1663 = load ptr, ptr %38, align 8, !tbaa !5
  %1664 = load ptr, ptr %31, align 8, !tbaa !5
  %1665 = load i32, ptr %72, align 4, !tbaa !9
  %1666 = add nsw i32 %1665, 1
  %1667 = load i32, ptr %78, align 4, !tbaa !9
  %1668 = load i32, ptr %49, align 4, !tbaa !9
  %1669 = mul nsw i32 %1667, %1668
  %1670 = add nsw i32 %1666, %1669
  %1671 = sext i32 %1670 to i64
  %1672 = getelementptr inbounds %struct.complex, ptr %1664, i64 %1671
  %1673 = load ptr, ptr %32, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b44, ptr noundef %1653, ptr noundef %1654, ptr noundef %1662, ptr noundef %1663, ptr noundef @c_b45, ptr noundef %1672, ptr noundef %1673)
  br label %1674

1674:                                             ; preds = %1607, %1603
  br label %1675

1675:                                             ; preds = %1674
  %1676 = load i32, ptr %64, align 4, !tbaa !9
  %1677 = add nsw i32 %1676, -1
  store i32 %1677, ptr %64, align 4, !tbaa !9
  br label %1310, !llvm.loop !29

1678:                                             ; preds = %1310
  br label %1679

1679:                                             ; preds = %1678
  %1680 = load i32, ptr %63, align 4, !tbaa !9
  %1681 = add nsw i32 %1680, 1
  store i32 %1681, ptr %63, align 4, !tbaa !9
  br label %1286, !llvm.loop !30

1682:                                             ; preds = %1286
  br label %1683

1683:                                             ; preds = %1682, %1282
  %1684 = load i32, ptr %70, align 4, !tbaa !9
  %1685 = sitofp i32 %1684 to float
  %1686 = load ptr, ptr %41, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.complex, ptr %1686, i64 1
  %1688 = getelementptr inbounds %struct.complex, ptr %1687, i32 0, i32 0
  store float %1685, ptr %1688, align 4, !tbaa !11
  %1689 = load ptr, ptr %41, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.complex, ptr %1689, i64 1
  %1691 = getelementptr inbounds %struct.complex, ptr %1690, i32 0, i32 1
  store float 0.000000e+00, ptr %1691, align 4, !tbaa !14
  store i32 1, ptr %85, align 4
  br label %1692

1692:                                             ; preds = %1683, %629, %380, %359, %351
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  ret void
}

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

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

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

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

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

declare void @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 void @clacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare void @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 = !{!"int", !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 i32, align 4
@c_n1 = external hidden global i32, align 4
@c__5 = external hidden global i32, align 4
@.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 i32, align 4
@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 void @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 i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.complex, align 4
  %27 = alloca float, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 i32, ptr %5, align 4, !tbaa !5
  %narrow = xor i32 %34, -1
  %35 = sext i32 %narrow to i64
  %36 = getelementptr inbounds %struct.complex, ptr %4, i64 %35
  %37 = load i32, ptr %7, align 4, !tbaa !5
  %narrow714 = xor i32 %37, -1
  %38 = sext i32 %narrow714 to i64
  %39 = getelementptr inbounds %struct.complex, ptr %6, i64 %38
  %40 = load i32, ptr %9, align 4, !tbaa !5
  %narrow715 = xor i32 %40, -1
  %41 = sext i32 %narrow715 to i64
  %42 = getelementptr inbounds %struct.complex, ptr %8, i64 %41
  %43 = load i32, ptr %11, align 4, !tbaa !5
  %narrow716 = xor i32 %43, -1
  %44 = sext i32 %narrow716 to i64
  %45 = getelementptr inbounds %struct.complex, ptr %10, i64 %44
  %46 = load i32, ptr %13, align 4, !tbaa !5
  %narrow717 = xor i32 %46, -1
  %47 = sext i32 %narrow717 to i64
  %48 = getelementptr inbounds %struct.complex, ptr %12, i64 %47
  %49 = load i32, ptr %15, align 4, !tbaa !5
  %narrow718 = xor i32 %49, -1
  %50 = sext i32 %narrow718 to i64
  %51 = getelementptr inbounds %struct.complex, ptr %14, i64 %50
  %52 = getelementptr inbounds i8, ptr %20, i64 -4
  store i32 0, ptr %21, align 4, !tbaa !5
  %53 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %54 = load i32, ptr %19, align 4, !tbaa !5
  %55 = icmp eq i32 %54, -1
  %.not = icmp eq i32 %53, 0
  br i1 %.not, label %56, label %.critedge

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

.critedge:                                        ; preds = %22
  %58 = load i32, ptr %1, align 4, !tbaa !5
  %or.cond720 = icmp ugt i32 %58, 4
  br i1 %or.cond720, label %.thread738.sink.split, label %59

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

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

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

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

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

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

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

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

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

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

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

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

91:                                               ; preds = %85, %.thread, %87
  %.0658 = phi i32 [ %90, %87 ], [ 1, %85 ], [ 1, %.thread ]
  %92 = uitofp nneg i32 %.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 i32, ptr %19, align 4, !tbaa !5
  %95 = icmp sge i32 %94, %.0658
  %or.cond = select i1 %95, i1 true, i1 %55
  br i1 %or.cond, label %.thread733, label %.thread738.sink.split

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

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

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

99:                                               ; preds = %.thread733
  %100 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #5
  store i32 %100, ptr %30, align 4, !tbaa !5
  %101 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #5
  store i32 %101, ptr %31, align 4, !tbaa !5
  store i32 0, ptr %28, align 4, !tbaa !5
  br i1 %.not, label %109, label %102

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

105:                                              ; preds = %102
  %106 = add nsw i32 %103, -2
  store i32 %106, ptr %28, align 4, !tbaa !5
  tail call void @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
  tail call void @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 %109

107:                                              ; preds = %102
  %108 = icmp sgt i32 %103, 0
  %spec.select727 = select i1 %108, i32 2, i32 1
  br label %109

109:                                              ; preds = %107, %105, %99
  %110 = phi i1 [ false, %105 ], [ false, %99 ], [ %108, %107 ]
  %111 = phi i32 [ 1, %105 ], [ 1, %99 ], [ %spec.select727, %107 ]
  %112 = icmp slt i32 %100, 2
  %113 = icmp slt i32 %101, 2
  %or.cond5 = select i1 %112, i1 %113, i1 false
  br i1 %or.cond5, label %.lr.ph868.preheader, label %114

114:                                              ; preds = %109
  %115 = load i32, ptr %2, align 4, !tbaa !5
  %.not696 = icmp slt i32 %100, %115
  br i1 %.not696, label %.preheader, label %116

.preheader:                                       ; preds = %116, %114
  br label %175

116:                                              ; preds = %114
  %117 = load i32, ptr %3, align 4, !tbaa !5
  %.not697 = icmp slt i32 %101, %117
  br i1 %.not697, label %.preheader, label %.lr.ph868.preheader

.lr.ph868.preheader:                              ; preds = %116, %109
  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 %27, align 4, !tbaa !13
  %118 = load i32, ptr %2, align 4, !tbaa !5
  %119 = load i32, ptr %3, align 4, !tbaa !5
  call void @ctgsy2_(ptr noundef %0, ptr noundef nonnull %28, 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 %27, ptr noundef nonnull %32, ptr noundef nonnull %21) #5
  %120 = load float, ptr %32, align 4, !tbaa !13
  %121 = fcmp une float %120, 0.000000e+00
  br i1 %121, label %122, label %138

122:                                              ; preds = %.lr.ph868.preheader
  %123 = mul nsw i32 %119, %118
  %124 = load i32, ptr %1, align 4, !tbaa !5
  switch i32 %124, label %.sink.split [
    i32 1, label %125
    i32 3, label %125
  ]

125:                                              ; preds = %122, %122
  %126 = load i32, ptr %2, align 4, !tbaa !5
  %127 = shl i32 %126, 1
  %128 = load i32, ptr %3, align 4, !tbaa !5
  %129 = mul nsw i32 %127, %128
  br label %.sink.split

.sink.split:                                      ; preds = %122, %125
  %.sink970 = phi i32 [ %129, %125 ], [ %123, %122 ]
  %130 = sitofp i32 %.sink970 to float
  %131 = fpext float %130 to double
  %132 = call double @sqrt(double noundef %131) #5
  %.sink954.in = load float, ptr %32, align 4, !tbaa !13
  %.sink954 = fpext float %.sink954.in to double
  %.sink956 = load float, ptr %27, align 4, !tbaa !13
  %133 = fpext float %.sink956 to double
  %134 = call double @sqrt(double noundef %133) #5
  %135 = fmul double %134, %.sink954
  %136 = fdiv double %132, %135
  %137 = fptrunc double %136 to float
  store float %137, ptr %17, align 4, !tbaa !13
  br label %138

138:                                              ; preds = %.sink.split, %.lr.ph868.preheader
  br i1 %110, label %139, label %148

139:                                              ; preds = %138
  br i1 %.not, label %142, label %140

140:                                              ; preds = %139
  %141 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %141, ptr %28, align 4, !tbaa !5
  br label %142

142:                                              ; preds = %140, %139
  %143 = load float, ptr %16, align 4, !tbaa !13
  call void @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
  %144 = load i32, ptr %2, align 4, !tbaa !5
  %145 = load i32, ptr %3, align 4, !tbaa !5
  %146 = mul nsw i32 %145, %144
  %147 = sext i32 %146 to i64
  %gep863.peel = getelementptr %struct.complex, ptr %18, i64 %147
  call void @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %gep863.peel, ptr noundef nonnull %2) #5
  call void @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
  call void @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 %148

148:                                              ; preds = %138, %142
  %.1657.peel = phi float [ %143, %142 ], [ undef, %138 ]
  %.not713.not.peel = icmp ugt i32 %111, 1
  br i1 %.not713.not.peel, label %.lr.ph868, label %.loopexit

.lr.ph868:                                        ; preds = %148
  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 %27, align 4, !tbaa !13
  %149 = load i32, ptr %2, align 4, !tbaa !5
  %150 = load i32, ptr %3, align 4, !tbaa !5
  call void @ctgsy2_(ptr noundef %0, ptr noundef nonnull %28, 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 %27, ptr noundef nonnull %32, ptr noundef nonnull %21) #5
  %151 = load float, ptr %32, align 4, !tbaa !13
  %152 = fcmp une float %151, 0.000000e+00
  br i1 %152, label %153, label %169

153:                                              ; preds = %.lr.ph868
  %154 = mul nsw i32 %150, %149
  %155 = load i32, ptr %1, align 4, !tbaa !5
  switch i32 %155, label %.sink.split957 [
    i32 1, label %156
    i32 3, label %156
  ]

156:                                              ; preds = %153, %153
  %157 = load i32, ptr %2, align 4, !tbaa !5
  %158 = shl i32 %157, 1
  %159 = load i32, ptr %3, align 4, !tbaa !5
  %160 = mul nsw i32 %158, %159
  br label %.sink.split957

.sink.split957:                                   ; preds = %153, %156
  %.sink973 = phi i32 [ %160, %156 ], [ %154, %153 ]
  %161 = sitofp i32 %.sink973 to float
  %162 = fpext float %161 to double
  %163 = call double @sqrt(double noundef %162) #5
  %.sink963.in = load float, ptr %32, align 4, !tbaa !13
  %.sink963 = fpext float %.sink963.in to double
  %.sink965 = load float, ptr %27, align 4, !tbaa !13
  %164 = fpext float %.sink965 to double
  %165 = call double @sqrt(double noundef %164) #5
  %166 = fmul double %165, %.sink963
  %167 = fdiv double %163, %166
  %168 = fptrunc double %167 to float
  store float %168, ptr %17, align 4, !tbaa !13
  br label %169

169:                                              ; preds = %.sink.split957, %.lr.ph868
  br i1 %110, label %170, label %.loopexit

170:                                              ; preds = %169
  call void @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
  %171 = load i32, ptr %2, align 4, !tbaa !5
  %172 = load i32, ptr %3, align 4, !tbaa !5
  %173 = mul nsw i32 %172, %171
  %174 = sext i32 %173 to i64
  %gep861 = getelementptr %struct.complex, ptr %18, i64 %174
  call void @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %gep861, 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

175:                                              ; preds = %.preheader, %178
  %176 = phi i32 [ %181, %178 ], [ %115, %.preheader ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %178 ], [ 0, %.preheader ]
  %.0673 = phi i32 [ %180, %178 ], [ 1, %.preheader ]
  %177 = icmp sgt i32 %.0673, %176
  br i1 %177, label %182, label %178

178:                                              ; preds = %175
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %179 = getelementptr i32, ptr %20, i64 %indvars.iv
  store i32 %.0673, ptr %179, align 4, !tbaa !5
  %180 = add nsw i32 %.0673, %100
  %181 = load i32, ptr %2, align 4, !tbaa !5
  %.not698 = icmp slt i32 %180, %181
  br i1 %.not698, label %175, label %182

182:                                              ; preds = %178, %175
  %183 = phi i32 [ %176, %175 ], [ %181, %178 ]
  %.1664.in = phi i64 [ %indvars.iv, %175 ], [ %indvars.iv.next, %178 ]
  %.1664 = trunc i64 %.1664.in to i32
  %184 = add nsw i32 %183, 1
  %sext = shl i64 %.1664.in, 32
  %185 = ashr exact i64 %sext, 30
  %186 = getelementptr i8, ptr %52, i64 %185
  %187 = getelementptr i8, ptr %186, i64 4
  store i32 %184, ptr %187, align 4, !tbaa !5
  %188 = load i32, ptr %186, align 4, !tbaa !5
  %189 = icmp eq i32 %188, %184
  %190 = sext i1 %189 to i32
  %spec.select728 = add i32 %.1664, %190
  %191 = add i32 %spec.select728, 1
  %192 = sext i32 %191 to i64
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  br label %193

193:                                              ; preds = %196, %182
  %194 = phi i32 [ %199, %196 ], [ %.pre, %182 ]
  %indvars.iv873 = phi i64 [ %indvars.iv.next874, %196 ], [ %192, %182 ]
  %.0670 = phi i32 [ %198, %196 ], [ 1, %182 ]
  %195 = icmp sgt i32 %.0670, %194
  br i1 %195, label %200, label %196

196:                                              ; preds = %193
  %indvars.iv.next874 = add nsw i64 %indvars.iv873, 1
  %197 = getelementptr i32, ptr %20, i64 %indvars.iv873
  store i32 %.0670, ptr %197, align 4, !tbaa !5
  %198 = add nsw i32 %.0670, %101
  %199 = load i32, ptr %3, align 4, !tbaa !5
  %.not699 = icmp slt i32 %198, %199
  br i1 %.not699, label %193, label %200

200:                                              ; preds = %196, %193
  %201 = phi i32 [ %194, %193 ], [ %199, %196 ]
  %.1661.in = phi i64 [ %indvars.iv873, %193 ], [ %indvars.iv.next874, %196 ]
  %.1661 = trunc i64 %.1661.in to i32
  %202 = add nsw i32 %201, 1
  %sext931 = shl i64 %.1661.in, 32
  %203 = ashr exact i64 %sext931, 30
  %204 = getelementptr i8, ptr %52, i64 %203
  %205 = getelementptr i8, ptr %204, i64 4
  store i32 %202, ptr %205, align 4, !tbaa !5
  %206 = load i32, ptr %204, align 4, !tbaa !5
  %207 = icmp eq i32 %206, %202
  %208 = sext i1 %207 to i32
  %spec.select729 = add i32 %.1661, %208
  br i1 %.not, label %393, label %.lr.ph

.lr.ph:                                           ; preds = %200
  %209 = add i32 %spec.select728, 2
  %.not707791 = icmp sgt i32 %209, %spec.select729
  %invariant.gep779 = getelementptr i8, ptr %36, i64 8
  %invariant.gep781 = getelementptr i8, ptr %42, i64 8
  %invariant.gep783 = getelementptr i8, ptr %45, i64 8
  %invariant.gep785 = getelementptr i8, ptr %51, i64 8
  %210 = icmp sgt i32 %spec.select728, 0
  %211 = add i32 %37, 1
  %212 = add i32 %46, 1
  %213 = getelementptr inbounds i8, ptr %26, i64 4
  %214 = add i32 %spec.select729, 1
  %215 = sext i32 %40 to i64
  %216 = sext i32 %49 to i64
  %217 = zext i32 %spec.select728 to i64
  %218 = sext i32 %209 to i64
  %219 = sext i32 %spec.select729 to i64
  %220 = getelementptr inbounds i32, ptr %52, i64 %219
  %221 = sext i32 %214 to i64
  %222 = getelementptr inbounds i32, ptr %52, i64 %221
  br label %223

223:                                              ; preds = %.lr.ph, %391
  %.1810 = phi i32 [ 1, %.lr.ph ], [ %392, %391 ]
  %.2809 = phi float [ undef, %.lr.ph ], [ %.3, %391 ]
  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 %27, align 4, !tbaa !13
  br i1 %.not707791, label %._crit_edge796.thread, label %.lr.ph795

.lr.ph795:                                        ; preds = %223
  br i1 %210, label %.lr.ph790.us, label %.loopexit750.preheader

.loopexit750.preheader:                           ; preds = %.lr.ph795
  %224 = load i32, ptr %220, align 4, !tbaa !5
  %225 = load i32, ptr %222, align 4, !tbaa !5
  %226 = sub i32 %225, %224
  store i32 %226, ptr %31, align 4, !tbaa !5
  br label %._crit_edge796.thread

.lr.ph790.us:                                     ; preds = %329, %.lr.ph795
  %indvars.iv897 = phi i64 [ %218, %.lr.ph795 ], [ %indvars.iv.next898, %329 ]
  %.0654793.us = phi i32 [ 0, %.lr.ph795 ], [ %285, %329 ]
  %227 = getelementptr inbounds i32, ptr %52, i64 %indvars.iv897
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %indvars.iv.next898 = add nsw i64 %indvars.iv897, 1
  %229 = getelementptr i32, ptr %20, i64 %indvars.iv897
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = add nsw i32 %230, -1
  %232 = sub i32 %230, %228
  store i32 %232, ptr %31, align 4, !tbaa !5
  %233 = mul i32 %228, %211
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds %struct.complex, ptr %39, i64 %234
  %236 = mul nsw i32 %228, %40
  %237 = mul i32 %228, %212
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds %struct.complex, ptr %48, i64 %238
  %240 = mul nsw i32 %228, %49
  %241 = add nsw i32 %228, -1
  %242 = sext i32 %236 to i64
  %gep782.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %242
  %243 = sext i32 %240 to i64
  %gep786.us = getelementptr %struct.complex, ptr %invariant.gep785, i64 %243
  %244 = icmp slt i64 %indvars.iv897, %219
  %245 = mul nsw i32 %230, %37
  %246 = add nsw i32 %245, %228
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds %struct.complex, ptr %39, i64 %247
  %249 = mul nsw i32 %230, %40
  %250 = mul nsw i32 %230, %46
  %251 = add nsw i32 %250, %228
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds %struct.complex, ptr %48, i64 %252
  %254 = mul nsw i32 %230, %49
  %255 = sext i32 %228 to i64
  %256 = sext i32 %230 to i64
  %.not708754.us = icmp slt i32 %228, 2
  %.not709760.us.not = icmp slt i32 %228, %230
  br label %257

257:                                              ; preds = %.backedge939, %.lr.ph790.us
  %indvars.iv893 = phi i64 [ %217, %.lr.ph790.us ], [ %indvars.iv893.be, %.backedge939 ]
  %.1655788.us = phi i32 [ %.0654793.us, %.lr.ph790.us ], [ %285, %.backedge939 ]
  %258 = getelementptr inbounds i32, ptr %52, i64 %indvars.iv893
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = getelementptr inbounds i8, ptr %258, i64 4
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = add nsw i32 %261, -1
  %263 = sub i32 %261, %259
  store i32 %263, ptr %30, align 4, !tbaa !5
  %264 = mul nsw i32 %259, %34
  %265 = add nsw i32 %264, %259
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds %struct.complex, ptr %36, i64 %266
  %268 = add nsw i32 %259, %236
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds %struct.complex, ptr %42, i64 %269
  %271 = mul nsw i32 %259, %43
  %272 = add nsw i32 %271, %259
  %273 = sext i32 %272 to i64
  %274 = getelementptr inbounds %struct.complex, ptr %45, i64 %273
  %275 = add nsw i32 %259, %240
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds %struct.complex, ptr %51, i64 %276
  call void @ctgsy2_(ptr noundef %0, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %267, ptr noundef nonnull %5, ptr noundef %235, ptr noundef nonnull %7, ptr noundef %270, ptr noundef nonnull %9, ptr noundef %274, ptr noundef nonnull %11, ptr noundef %239, ptr noundef nonnull %13, ptr noundef %277, ptr noundef nonnull %15, ptr noundef nonnull %33, ptr noundef nonnull %27, ptr noundef nonnull %32, ptr noundef nonnull %29) #5
  %278 = load i32, ptr %29, align 4, !tbaa !5
  %279 = icmp sgt i32 %278, 0
  br i1 %279, label %280, label %281

280:                                              ; preds = %257
  store i32 %278, ptr %21, align 4, !tbaa !5
  br label %281

281:                                              ; preds = %280, %257
  %282 = load i32, ptr %30, align 4, !tbaa !5
  %283 = load i32, ptr %31, align 4, !tbaa !5
  %284 = mul nsw i32 %283, %282
  %285 = add nsw i32 %284, %.1655788.us
  %286 = load float, ptr %33, align 4, !tbaa !13
  %287 = fcmp une float %286, 1.000000e+00
  br i1 %287, label %288, label %323

288:                                              ; preds = %281
  store i32 %241, ptr %24, align 4, !tbaa !5
  br i1 %.not708754.us, label %._crit_edge.us, label %.lr.ph.us

.lr.ph.us:                                        ; preds = %288, %.lr.ph.us
  %indvars.iv877 = phi i64 [ %indvars.iv.next878, %.lr.ph.us ], [ 1, %288 ]
  %289 = load float, ptr %33, align 4, !tbaa !13
  store float %289, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %213, align 4, !tbaa !12
  %290 = mul nsw i64 %indvars.iv877, %215
  %gep.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %290
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep.us, ptr noundef nonnull @c__1) #5
  %291 = load float, ptr %33, align 4, !tbaa !13
  store float %291, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %213, align 4, !tbaa !12
  %292 = mul nsw i64 %indvars.iv877, %216
  %gep753.us = getelementptr %struct.complex, ptr %invariant.gep785, i64 %292
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep753.us, ptr noundef nonnull @c__1) #5
  %indvars.iv.next878 = add nuw nsw i64 %indvars.iv877, 1
  %293 = load i32, ptr %24, align 4, !tbaa !5
  %294 = sext i32 %293 to i64
  %.not708.us.not = icmp slt i64 %indvars.iv877, %294
  br i1 %.not708.us.not, label %.lr.ph.us, label %._crit_edge.us, !llvm.loop !14

._crit_edge.us:                                   ; preds = %.lr.ph.us, %288
  store i32 %231, ptr %24, align 4, !tbaa !5
  br i1 %.not709760.us.not, label %.lr.ph763.us, label %._crit_edge769.us

295:                                              ; preds = %.lr.ph763.us, %295
  %indvars.iv881 = phi i64 [ %255, %.lr.ph763.us ], [ %indvars.iv.next882, %295 ]
  store i32 %344, ptr %25, align 4, !tbaa !5
  %296 = load float, ptr %33, align 4, !tbaa !13
  store float %296, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %213, align 4, !tbaa !12
  %297 = mul nsw i64 %indvars.iv881, %215
  %gep757.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %297
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep757.us, ptr noundef nonnull @c__1) #5
  store i32 %344, ptr %25, align 4, !tbaa !5
  %298 = load float, ptr %33, align 4, !tbaa !13
  store float %298, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %213, align 4, !tbaa !12
  %299 = mul nsw i64 %indvars.iv881, %216
  %gep759.us = getelementptr %struct.complex, ptr %invariant.gep785, i64 %299
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep759.us, ptr noundef nonnull @c__1) #5
  %indvars.iv.next882 = add nsw i64 %indvars.iv881, 1
  %300 = load i32, ptr %24, align 4, !tbaa !5
  %301 = sext i32 %300 to i64
  %.not709.us.not = icmp slt i64 %indvars.iv881, %301
  br i1 %.not709.us.not, label %295, label %._crit_edge764.us, !llvm.loop !16

._crit_edge764.us:                                ; preds = %295
  store i32 %231, ptr %24, align 4, !tbaa !5
  br i1 %.not709760.us.not, label %.lr.ph768.us.preheader, label %._crit_edge769.us

.lr.ph768.us.preheader:                           ; preds = %._crit_edge764.us
  %302 = sext i32 %261 to i64
  %invariant.gep = getelementptr %struct.complex, ptr %42, i64 %302
  %invariant.gep943 = getelementptr %struct.complex, ptr %51, i64 %302
  br label %.lr.ph768.us

.lr.ph768.us:                                     ; preds = %.lr.ph768.us.preheader, %.lr.ph768.us
  %indvars.iv885 = phi i64 [ %255, %.lr.ph768.us.preheader ], [ %indvars.iv.next886, %.lr.ph768.us ]
  %303 = load i32, ptr %2, align 4, !tbaa !5
  %304 = sub nsw i32 %303, %262
  store i32 %304, ptr %25, align 4, !tbaa !5
  %305 = load float, ptr %33, align 4, !tbaa !13
  store float %305, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %213, align 4, !tbaa !12
  %306 = mul nsw i64 %indvars.iv885, %215
  %gep942 = getelementptr %struct.complex, ptr %invariant.gep, i64 %306
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep942, ptr noundef nonnull @c__1) #5
  %307 = load i32, ptr %2, align 4, !tbaa !5
  %308 = sub nsw i32 %307, %262
  store i32 %308, ptr %25, align 4, !tbaa !5
  %309 = load float, ptr %33, align 4, !tbaa !13
  store float %309, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %213, align 4, !tbaa !12
  %310 = mul nsw i64 %indvars.iv885, %216
  %gep944 = getelementptr %struct.complex, ptr %invariant.gep943, i64 %310
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep944, ptr noundef nonnull @c__1) #5
  %indvars.iv.next886 = add nsw i64 %indvars.iv885, 1
  %311 = load i32, ptr %24, align 4, !tbaa !5
  %312 = sext i32 %311 to i64
  %.not710.us.not = icmp slt i64 %indvars.iv885, %312
  br i1 %.not710.us.not, label %.lr.ph768.us, label %._crit_edge769.us, !llvm.loop !17

._crit_edge769.us:                                ; preds = %.lr.ph768.us, %._crit_edge.us, %._crit_edge764.us
  %313 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %313, ptr %24, align 4, !tbaa !5
  %.not711774.us = icmp sgt i32 %230, %313
  br i1 %.not711774.us, label %._crit_edge778.us, label %.lr.ph777.us

.lr.ph777.us:                                     ; preds = %._crit_edge769.us, %.lr.ph777.us
  %indvars.iv889 = phi i64 [ %indvars.iv.next890, %.lr.ph777.us ], [ %256, %._crit_edge769.us ]
  %314 = load float, ptr %33, align 4, !tbaa !13
  store float %314, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %213, align 4, !tbaa !12
  %315 = mul nsw i64 %indvars.iv889, %215
  %gep771.us = getelementptr %struct.complex, ptr %invariant.gep781, i64 %315
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep771.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 %213, align 4, !tbaa !12
  %317 = mul nsw i64 %indvars.iv889, %216
  %gep773.us = getelementptr %struct.complex, ptr %invariant.gep785, i64 %317
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep773.us, ptr noundef nonnull @c__1) #5
  %indvars.iv.next890 = add nsw i64 %indvars.iv889, 1
  %318 = load i32, ptr %24, align 4, !tbaa !5
  %319 = sext i32 %318 to i64
  %.not711.us.not = icmp slt i64 %indvars.iv889, %319
  br i1 %.not711.us.not, label %.lr.ph777.us, label %._crit_edge778.us, !llvm.loop !18

._crit_edge778.us:                                ; preds = %.lr.ph777.us, %._crit_edge769.us
  %320 = load float, ptr %33, align 4, !tbaa !13
  %321 = load float, ptr %16, align 4, !tbaa !13
  %322 = fmul float %320, %321
  store float %322, ptr %16, align 4, !tbaa !13
  br label %323

323:                                              ; preds = %._crit_edge778.us, %281
  %.not712.us = icmp eq i64 %indvars.iv893, 1
  br i1 %.not712.us, label %328, label %324

324:                                              ; preds = %323
  %325 = add nsw i32 %259, -1
  store i32 %325, ptr %24, align 4, !tbaa !5
  %326 = sext i32 %264 to i64
  %gep780.us = getelementptr %struct.complex, ptr %invariant.gep779, i64 %326
  call void @cgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b44, ptr noundef %gep780.us, ptr noundef nonnull %5, ptr noundef %270, ptr noundef nonnull %9, ptr noundef nonnull @c_b45, ptr noundef %gep782.us, ptr noundef nonnull %9) #5
  store i32 %325, ptr %24, align 4, !tbaa !5
  %327 = sext i32 %271 to i64
  %gep784.us = getelementptr %struct.complex, ptr %invariant.gep783, i64 %327
  call void @cgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b44, ptr noundef %gep784.us, ptr noundef nonnull %11, ptr noundef %270, ptr noundef nonnull %9, ptr noundef nonnull @c_b45, ptr noundef %gep786.us, ptr noundef nonnull %15) #5
  br label %328

328:                                              ; preds = %324, %323
  br i1 %244, label %329, label %.thread932

329:                                              ; preds = %328
  %330 = load i32, ptr %3, align 4, !tbaa !5
  %331 = sub nsw i32 %330, %231
  store i32 %331, ptr %24, align 4, !tbaa !5
  %332 = add nsw i32 %259, %249
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds %struct.complex, ptr %42, i64 %333
  call void @cgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b45, ptr noundef %277, ptr noundef nonnull %15, ptr noundef %248, ptr noundef nonnull %7, ptr noundef nonnull @c_b45, ptr noundef %334, ptr noundef nonnull %9) #5
  %335 = load i32, ptr %3, align 4, !tbaa !5
  %336 = sub nsw i32 %335, %231
  store i32 %336, ptr %24, align 4, !tbaa !5
  %337 = add nsw i32 %259, %254
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds %struct.complex, ptr %51, i64 %338
  call void @cgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b45, ptr noundef %277, ptr noundef nonnull %15, ptr noundef %253, ptr noundef nonnull %13, ptr noundef nonnull @c_b45, ptr noundef %339, ptr noundef nonnull %15) #5
  %340 = trunc nuw i64 %indvars.iv893 to i32
  %341 = icmp sgt i32 %340, 1
  br i1 %341, label %.backedge939, label %.lr.ph790.us

.backedge939:                                     ; preds = %329, %.thread932
  %indvars.iv893.be = add nsw i64 %indvars.iv893, -1
  br label %257, !llvm.loop !19

.thread932:                                       ; preds = %328
  %342 = trunc nuw i64 %indvars.iv893 to i32
  %343 = icmp sgt i32 %342, 1
  br i1 %343, label %.backedge939, label %._crit_edge796

.lr.ph763.us:                                     ; preds = %._crit_edge.us
  %344 = add nsw i32 %259, -1
  br label %295

._crit_edge796:                                   ; preds = %.thread932
  %.pre929 = load float, ptr %32, align 4, !tbaa !13
  %345 = fcmp une float %.pre929, 0.000000e+00
  br i1 %345, label %346, label %._crit_edge796.thread

346:                                              ; preds = %._crit_edge796
  %347 = load i32, ptr %1, align 4, !tbaa !5
  switch i32 %347, label %364 [
    i32 1, label %348
    i32 3, label %348
  ]

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

364:                                              ; preds = %346
  %365 = sitofp i32 %285 to float
  %366 = fpext float %365 to double
  %367 = call double @sqrt(double noundef %366) #5
  %368 = load float, ptr %32, align 4, !tbaa !13
  %369 = fpext float %368 to double
  %370 = load float, ptr %27, align 4, !tbaa !13
  %371 = fpext float %370 to double
  %372 = call double @sqrt(double noundef %371) #5
  %373 = fmul double %372, %369
  %374 = fdiv double %367, %373
  %375 = fptrunc double %374 to float
  store float %375, ptr %17, align 4, !tbaa !13
  br label %._crit_edge796.thread

._crit_edge796.thread:                            ; preds = %.loopexit750.preheader, %223, %348, %364, %._crit_edge796
  %376 = icmp eq i32 %.1810, 1
  %or.cond11 = and i1 %110, %376
  br i1 %or.cond11, label %377, label %384

377:                                              ; preds = %._crit_edge796.thread
  %378 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %378, ptr %28, align 4, !tbaa !5
  %379 = load float, ptr %16, align 4, !tbaa !13
  call void @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 i32, ptr %2, align 4, !tbaa !5
  %381 = load i32, ptr %3, align 4, !tbaa !5
  %382 = mul nsw i32 %381, %380
  %383 = sext i32 %382 to i64
  %gep807 = getelementptr %struct.complex, ptr %18, i64 %383
  call void @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %gep807, ptr noundef nonnull %2) #5
  call void @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
  call void @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 %391

384:                                              ; preds = %._crit_edge796.thread
  %385 = icmp eq i32 %.1810, 2
  %or.cond13 = and i1 %110, %385
  br i1 %or.cond13, label %386, label %391

386:                                              ; preds = %384
  call void @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
  %387 = load i32, ptr %2, align 4, !tbaa !5
  %388 = load i32, ptr %3, align 4, !tbaa !5
  %389 = mul nsw i32 %388, %387
  %390 = sext i32 %389 to i64
  %gep = getelementptr %struct.complex, ptr %18, i64 %390
  call void @clacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %15) #5
  store float %.2809, ptr %16, align 4, !tbaa !13
  br label %391

391:                                              ; preds = %377, %386, %384
  %.3 = phi float [ %379, %377 ], [ %.2809, %386 ], [ %.2809, %384 ]
  %392 = add nuw nsw i32 %.1810, 1
  %.not706.not = icmp ult i32 %.1810, %111
  br i1 %.not706.not, label %223, label %.loopexit749, !llvm.loop !20

393:                                              ; preds = %200
  store float 1.000000e+00, ptr %16, align 4, !tbaa !13
  %.not700849 = icmp slt i32 %spec.select728, 1
  br i1 %.not700849, label %.loopexit749, label %.lr.ph852

.lr.ph852:                                        ; preds = %393
  %394 = add nuw nsw i32 %spec.select728, 2
  %invariant.gep841 = getelementptr i8, ptr %39, i64 8
  %invariant.gep843 = getelementptr i8, ptr %48, i64 8
  %.not701845 = icmp slt i32 %spec.select729, %394
  %395 = add i32 %34, 1
  %396 = add i32 %43, 1
  %invariant.gep811 = getelementptr i8, ptr %42, i64 8
  %invariant.gep813 = getelementptr i8, ptr %51, i64 8
  %397 = getelementptr inbounds i8, ptr %26, i64 4
  br i1 %.not701845, label %.loopexit749, label %.lr.ph848.preheader

.lr.ph848.preheader:                              ; preds = %.lr.ph852
  %398 = sext i32 %40 to i64
  %399 = sext i32 %49 to i64
  %400 = zext nneg i32 %spec.select729 to i64
  %401 = zext nneg i32 %394 to i64
  %402 = zext nneg i32 %spec.select728 to i64
  br label %.lr.ph848

.lr.ph848:                                        ; preds = %501, %.lr.ph848.preheader
  %indvars.iv921 = phi i64 [ 1, %.lr.ph848.preheader ], [ %indvars.iv.next922, %501 ]
  %403 = getelementptr inbounds i32, ptr %52, i64 %indvars.iv921
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %indvars.iv.next922 = add nuw nsw i64 %indvars.iv921, 1
  %405 = getelementptr i32, ptr %20, i64 %indvars.iv921
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = add nsw i32 %406, -1
  %408 = sub i32 %406, %404
  store i32 %408, ptr %30, align 4, !tbaa !5
  %409 = mul i32 %404, %395
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds %struct.complex, ptr %36, i64 %410
  %412 = mul i32 %404, %396
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds %struct.complex, ptr %45, i64 %413
  %415 = add nsw i32 %404, -1
  %416 = add nsw i32 %404, %49
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds %struct.complex, ptr %51, i64 %417
  %419 = icmp ult i64 %indvars.iv921, %402
  %420 = mul nsw i32 %406, %34
  %421 = add nsw i32 %420, %404
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds %struct.complex, ptr %36, i64 %422
  %424 = mul nsw i32 %406, %43
  %425 = add nsw i32 %424, %404
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds %struct.complex, ptr %45, i64 %426
  %428 = sext i32 %406 to i64
  %invariant.gep945 = getelementptr %struct.complex, ptr %42, i64 %428
  %invariant.gep947 = getelementptr %struct.complex, ptr %51, i64 %428
  br label %429

429:                                              ; preds = %.backedge, %.lr.ph848
  %indvars.iv917 = phi i64 [ %400, %.lr.ph848 ], [ %indvars.iv917.be, %.backedge ]
  %430 = getelementptr inbounds i32, ptr %52, i64 %indvars.iv917
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = getelementptr i8, ptr %430, i64 4
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = add nsw i32 %433, -1
  %435 = sub i32 %433, %431
  store i32 %435, ptr %31, align 4, !tbaa !5
  %436 = mul nsw i32 %431, %37
  %437 = add nsw i32 %436, %431
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds %struct.complex, ptr %39, i64 %438
  %440 = mul nsw i32 %431, %40
  %441 = add nsw i32 %440, %404
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds %struct.complex, ptr %42, i64 %442
  %444 = mul nsw i32 %431, %46
  %445 = add nsw i32 %444, %431
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds %struct.complex, ptr %48, i64 %446
  %448 = mul nsw i32 %431, %49
  %449 = add nsw i32 %448, %404
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds %struct.complex, ptr %51, i64 %450
  call void @ctgsy2_(ptr noundef %0, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %411, ptr noundef nonnull %5, ptr noundef %439, ptr noundef nonnull %7, ptr noundef %443, ptr noundef nonnull %9, ptr noundef %414, ptr noundef nonnull %11, ptr noundef %447, ptr noundef nonnull %13, ptr noundef %451, ptr noundef nonnull %15, ptr noundef nonnull %33, ptr noundef nonnull %27, ptr noundef nonnull %32, ptr noundef nonnull %29) #5
  %452 = load i32, ptr %29, align 4, !tbaa !5
  %453 = icmp sgt i32 %452, 0
  br i1 %453, label %454, label %455

454:                                              ; preds = %429
  store i32 %452, ptr %21, align 4, !tbaa !5
  br label %455

455:                                              ; preds = %454, %429
  %456 = load float, ptr %33, align 4, !tbaa !13
  %457 = fcmp une float %456, 1.000000e+00
  br i1 %457, label %458, label %495

458:                                              ; preds = %455
  %459 = add nsw i32 %431, -1
  store i32 %459, ptr %24, align 4, !tbaa !5
  %.not702815 = icmp slt i32 %431, 2
  br i1 %.not702815, label %._crit_edge, label %.lr.ph817

.lr.ph817:                                        ; preds = %458, %.lr.ph817
  %indvars.iv901 = phi i64 [ %indvars.iv.next902, %.lr.ph817 ], [ 1, %458 ]
  %460 = load float, ptr %33, align 4, !tbaa !13
  store float %460, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %461 = mul nsw i64 %indvars.iv901, %398
  %gep812 = getelementptr %struct.complex, ptr %invariant.gep811, i64 %461
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep812, ptr noundef nonnull @c__1) #5
  %462 = load float, ptr %33, align 4, !tbaa !13
  store float %462, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %463 = mul nsw i64 %indvars.iv901, %399
  %gep814 = getelementptr %struct.complex, ptr %invariant.gep813, i64 %463
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep814, ptr noundef nonnull @c__1) #5
  %indvars.iv.next902 = add nuw nsw i64 %indvars.iv901, 1
  %464 = load i32, ptr %24, align 4, !tbaa !5
  %465 = sext i32 %464 to i64
  %.not702.not = icmp slt i64 %indvars.iv901, %465
  br i1 %.not702.not, label %.lr.ph817, label %._crit_edge, !llvm.loop !21

._crit_edge:                                      ; preds = %.lr.ph817, %458
  store i32 %434, ptr %24, align 4, !tbaa !5
  %.not703822.not = icmp slt i32 %431, %433
  br i1 %.not703822.not, label %.lr.ph825.preheader, label %._crit_edge831

.lr.ph825.preheader:                              ; preds = %._crit_edge
  %466 = sext i32 %431 to i64
  br label %.lr.ph825

.lr.ph825:                                        ; preds = %.lr.ph825.preheader, %.lr.ph825
  %indvars.iv905 = phi i64 [ %466, %.lr.ph825.preheader ], [ %indvars.iv.next906, %.lr.ph825 ]
  store i32 %415, ptr %25, align 4, !tbaa !5
  %467 = load float, ptr %33, align 4, !tbaa !13
  store float %467, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %468 = mul nsw i64 %indvars.iv905, %398
  %gep819 = getelementptr %struct.complex, ptr %invariant.gep811, i64 %468
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep819, ptr noundef nonnull @c__1) #5
  store i32 %415, ptr %25, align 4, !tbaa !5
  %469 = load float, ptr %33, align 4, !tbaa !13
  store float %469, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %470 = mul nsw i64 %indvars.iv905, %399
  %gep821 = getelementptr %struct.complex, ptr %invariant.gep813, i64 %470
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep821, ptr noundef nonnull @c__1) #5
  %indvars.iv.next906 = add nsw i64 %indvars.iv905, 1
  %471 = load i32, ptr %24, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %.not703.not = icmp slt i64 %indvars.iv905, %472
  br i1 %.not703.not, label %.lr.ph825, label %._crit_edge826, !llvm.loop !22

._crit_edge826:                                   ; preds = %.lr.ph825
  store i32 %434, ptr %24, align 4, !tbaa !5
  br i1 %.not703822.not, label %.lr.ph830.preheader, label %._crit_edge831

.lr.ph830.preheader:                              ; preds = %._crit_edge826
  %473 = sext i32 %431 to i64
  br label %.lr.ph830

.lr.ph830:                                        ; preds = %.lr.ph830.preheader, %.lr.ph830
  %indvars.iv909 = phi i64 [ %473, %.lr.ph830.preheader ], [ %indvars.iv.next910, %.lr.ph830 ]
  %474 = load i32, ptr %2, align 4, !tbaa !5
  %475 = sub nsw i32 %474, %407
  store i32 %475, ptr %25, align 4, !tbaa !5
  %476 = load float, ptr %33, align 4, !tbaa !13
  store float %476, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %477 = mul nsw i64 %indvars.iv909, %398
  %gep946 = getelementptr %struct.complex, ptr %invariant.gep945, i64 %477
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep946, ptr noundef nonnull @c__1) #5
  %478 = load i32, ptr %2, align 4, !tbaa !5
  %479 = sub nsw i32 %478, %407
  store i32 %479, ptr %25, align 4, !tbaa !5
  %480 = load float, ptr %33, align 4, !tbaa !13
  store float %480, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %481 = mul nsw i64 %indvars.iv909, %399
  %gep948 = getelementptr %struct.complex, ptr %invariant.gep947, i64 %481
  call void @cscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep948, ptr noundef nonnull @c__1) #5
  %indvars.iv.next910 = add nsw i64 %indvars.iv909, 1
  %482 = load i32, ptr %24, align 4, !tbaa !5
  %483 = sext i32 %482 to i64
  %.not704.not = icmp slt i64 %indvars.iv909, %483
  br i1 %.not704.not, label %.lr.ph830, label %._crit_edge831, !llvm.loop !23

._crit_edge831:                                   ; preds = %.lr.ph830, %._crit_edge, %._crit_edge826
  %484 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %484, ptr %24, align 4, !tbaa !5
  %.not705836 = icmp sgt i32 %433, %484
  br i1 %.not705836, label %._crit_edge840, label %.lr.ph839.preheader

.lr.ph839.preheader:                              ; preds = %._crit_edge831
  %485 = sext i32 %433 to i64
  br label %.lr.ph839

.lr.ph839:                                        ; preds = %.lr.ph839.preheader, %.lr.ph839
  %indvars.iv913 = phi i64 [ %485, %.lr.ph839.preheader ], [ %indvars.iv.next914, %.lr.ph839 ]
  %486 = load float, ptr %33, align 4, !tbaa !13
  store float %486, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %487 = mul nsw i64 %indvars.iv913, %398
  %gep833 = getelementptr %struct.complex, ptr %invariant.gep811, i64 %487
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep833, ptr noundef nonnull @c__1) #5
  %488 = load float, ptr %33, align 4, !tbaa !13
  store float %488, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %397, align 4, !tbaa !12
  %489 = mul nsw i64 %indvars.iv913, %399
  %gep835 = getelementptr %struct.complex, ptr %invariant.gep813, i64 %489
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %gep835, ptr noundef nonnull @c__1) #5
  %indvars.iv.next914 = add nsw i64 %indvars.iv913, 1
  %490 = load i32, ptr %24, align 4, !tbaa !5
  %491 = sext i32 %490 to i64
  %.not705.not = icmp slt i64 %indvars.iv913, %491
  br i1 %.not705.not, label %.lr.ph839, label %._crit_edge840, !llvm.loop !24

._crit_edge840:                                   ; preds = %.lr.ph839, %._crit_edge831
  %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_edge840, %455
  %496 = icmp sgt i64 %indvars.iv917, %401
  br i1 %496, label %497, label %.thread937

497:                                              ; preds = %495
  %498 = add nsw i32 %431, -1
  store i32 %498, ptr %24, align 4, !tbaa !5
  %499 = sext i32 %436 to i64
  %gep842 = getelementptr %struct.complex, ptr %invariant.gep841, i64 %499
  call void @cgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b45, ptr noundef %443, ptr noundef nonnull %9, ptr noundef %gep842, ptr noundef nonnull %7, ptr noundef nonnull @c_b45, ptr noundef %418, ptr noundef nonnull %15) #5
  store i32 %498, ptr %24, align 4, !tbaa !5
  %500 = sext i32 %444 to i64
  %gep844 = getelementptr %struct.complex, ptr %invariant.gep843, i64 %500
  call void @cgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b45, ptr noundef %451, ptr noundef nonnull %15, ptr noundef %gep844, ptr noundef nonnull %13, ptr noundef nonnull @c_b45, ptr noundef %418, ptr noundef nonnull %15) #5
  br i1 %419, label %501, label %.backedge

.thread937:                                       ; preds = %495
  br i1 %419, label %501, label %.loopexit749

501:                                              ; preds = %.thread937, %497
  %502 = load i32, ptr %2, align 4, !tbaa !5
  %503 = sub nsw i32 %502, %407
  store i32 %503, ptr %24, align 4, !tbaa !5
  %504 = add nsw i32 %440, %406
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds %struct.complex, ptr %42, i64 %505
  call void @cgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b44, ptr noundef %423, ptr noundef nonnull %5, ptr noundef %443, ptr noundef nonnull %9, ptr noundef nonnull @c_b45, ptr noundef %506, ptr noundef nonnull %9) #5
  %507 = load i32, ptr %2, align 4, !tbaa !5
  %508 = sub nsw i32 %507, %407
  store i32 %508, ptr %24, align 4, !tbaa !5
  call void @cgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b44, ptr noundef %427, ptr noundef nonnull %11, ptr noundef %451, ptr noundef nonnull %15, ptr noundef nonnull @c_b45, ptr noundef %506, ptr noundef nonnull %9) #5
  br i1 %496, label %.backedge, label %.lr.ph848

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

.loopexit749:                                     ; preds = %391, %.thread937, %.lr.ph852, %393
  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 = %148, %169, %170, %.thread733, %.loopexit749, %.thread738
  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 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  ret void
}

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

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

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

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

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

declare void @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 void @clacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress 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 = !{!"int", !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