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

; 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 [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @ctpmlqt_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16) #0 {
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca 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
  store ptr %0, ptr %18, align 8, !tbaa !5
  store ptr %1, ptr %19, align 8, !tbaa !5
  store ptr %2, ptr %20, align 8, !tbaa !5
  store ptr %3, ptr %21, align 8, !tbaa !5
  store ptr %4, ptr %22, align 8, !tbaa !5
  store ptr %5, ptr %23, align 8, !tbaa !5
  store ptr %6, ptr %24, align 8, !tbaa !5
  store ptr %7, ptr %25, align 8, !tbaa !5
  store ptr %8, ptr %26, align 8, !tbaa !5
  store ptr %9, ptr %27, align 8, !tbaa !5
  store ptr %10, ptr %28, align 8, !tbaa !5
  store ptr %11, ptr %29, align 8, !tbaa !5
  store ptr %12, ptr %30, align 8, !tbaa !5
  store ptr %13, ptr %31, align 8, !tbaa !5
  store ptr %14, ptr %32, align 8, !tbaa !5
  store ptr %15, ptr %33, align 8, !tbaa !5
  store ptr %16, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #3
  %58 = load ptr, ptr %26, align 8, !tbaa !5
  %59 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %59, ptr %35, align 4, !tbaa !9
  %60 = load i32, ptr %35, align 4, !tbaa !9
  %61 = mul nsw i32 %60, 1
  %62 = add nsw i32 1, %61
  store i32 %62, ptr %36, align 4, !tbaa !9
  %63 = load i32, ptr %36, align 4, !tbaa !9
  %64 = load ptr, ptr %25, align 8, !tbaa !5
  %65 = sext i32 %63 to i64
  %66 = sub i64 0, %65
  %67 = getelementptr inbounds %struct.complex, ptr %64, i64 %66
  store ptr %67, ptr %25, align 8, !tbaa !5
  %68 = load ptr, ptr %28, align 8, !tbaa !5
  %69 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %69, ptr %41, align 4, !tbaa !9
  %70 = load i32, ptr %41, align 4, !tbaa !9
  %71 = mul nsw i32 %70, 1
  %72 = add nsw i32 1, %71
  store i32 %72, ptr %42, align 4, !tbaa !9
  %73 = load i32, ptr %42, align 4, !tbaa !9
  %74 = load ptr, ptr %27, align 8, !tbaa !5
  %75 = sext i32 %73 to i64
  %76 = sub i64 0, %75
  %77 = getelementptr inbounds %struct.complex, ptr %74, i64 %76
  store ptr %77, ptr %27, align 8, !tbaa !5
  %78 = load ptr, ptr %30, align 8, !tbaa !5
  %79 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %79, ptr %37, align 4, !tbaa !9
  %80 = load i32, ptr %37, align 4, !tbaa !9
  %81 = mul nsw i32 %80, 1
  %82 = add nsw i32 1, %81
  store i32 %82, ptr %38, align 4, !tbaa !9
  %83 = load i32, ptr %38, align 4, !tbaa !9
  %84 = load ptr, ptr %29, align 8, !tbaa !5
  %85 = sext i32 %83 to i64
  %86 = sub i64 0, %85
  %87 = getelementptr inbounds %struct.complex, ptr %84, i64 %86
  store ptr %87, ptr %29, align 8, !tbaa !5
  %88 = load ptr, ptr %32, align 8, !tbaa !5
  %89 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %89, ptr %39, align 4, !tbaa !9
  %90 = load i32, ptr %39, align 4, !tbaa !9
  %91 = mul nsw i32 %90, 1
  %92 = add nsw i32 1, %91
  store i32 %92, ptr %40, align 4, !tbaa !9
  %93 = load i32, ptr %40, align 4, !tbaa !9
  %94 = load ptr, ptr %31, align 8, !tbaa !5
  %95 = sext i32 %93 to i64
  %96 = sub i64 0, %95
  %97 = getelementptr inbounds %struct.complex, ptr %94, i64 %96
  store ptr %97, ptr %31, align 8, !tbaa !5
  %98 = load ptr, ptr %33, align 8, !tbaa !5
  %99 = getelementptr inbounds %struct.complex, ptr %98, i32 -1
  store ptr %99, ptr %33, align 8, !tbaa !5
  %100 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %100, align 4, !tbaa !9
  %101 = load ptr, ptr %18, align 8, !tbaa !5
  %102 = call i32 @lsame_(ptr noundef %101, ptr noundef @.str)
  store i32 %102, ptr %48, align 4, !tbaa !9
  %103 = load ptr, ptr %18, align 8, !tbaa !5
  %104 = call i32 @lsame_(ptr noundef %103, ptr noundef @.str.1)
  store i32 %104, ptr %51, align 4, !tbaa !9
  %105 = load ptr, ptr %19, align 8, !tbaa !5
  %106 = call i32 @lsame_(ptr noundef %105, ptr noundef @.str.2)
  store i32 %106, ptr %49, align 4, !tbaa !9
  %107 = load ptr, ptr %19, align 8, !tbaa !5
  %108 = call i32 @lsame_(ptr noundef %107, ptr noundef @.str.3)
  store i32 %108, ptr %56, align 4, !tbaa !9
  %109 = load i32, ptr %48, align 4, !tbaa !9
  %110 = icmp ne i32 %109, 0
  br i1 %110, label %111, label %121

111:                                              ; preds = %17
  %112 = load ptr, ptr %22, align 8, !tbaa !5
  %113 = load i32, ptr %112, align 4, !tbaa !9
  %114 = icmp sge i32 1, %113
  br i1 %114, label %115, label %116

115:                                              ; preds = %111
  br label %119

116:                                              ; preds = %111
  %117 = load ptr, ptr %22, align 8, !tbaa !5
  %118 = load i32, ptr %117, align 4, !tbaa !9
  br label %119

119:                                              ; preds = %116, %115
  %120 = phi i32 [ 1, %115 ], [ %118, %116 ]
  store i32 %120, ptr %47, align 4, !tbaa !9
  br label %135

121:                                              ; preds = %17
  %122 = load i32, ptr %51, align 4, !tbaa !9
  %123 = icmp ne i32 %122, 0
  br i1 %123, label %124, label %134

124:                                              ; preds = %121
  %125 = load ptr, ptr %20, align 8, !tbaa !5
  %126 = load i32, ptr %125, align 4, !tbaa !9
  %127 = icmp sge i32 1, %126
  br i1 %127, label %128, label %129

128:                                              ; preds = %124
  br label %132

129:                                              ; preds = %124
  %130 = load ptr, ptr %20, align 8, !tbaa !5
  %131 = load i32, ptr %130, align 4, !tbaa !9
  br label %132

132:                                              ; preds = %129, %128
  %133 = phi i32 [ 1, %128 ], [ %131, %129 ]
  store i32 %133, ptr %47, align 4, !tbaa !9
  br label %134

134:                                              ; preds = %132, %121
  br label %135

135:                                              ; preds = %134, %119
  %136 = load i32, ptr %48, align 4, !tbaa !9
  %137 = icmp ne i32 %136, 0
  br i1 %137, label %143, label %138

138:                                              ; preds = %135
  %139 = load i32, ptr %51, align 4, !tbaa !9
  %140 = icmp ne i32 %139, 0
  br i1 %140, label %143, label %141

141:                                              ; preds = %138
  %142 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %142, align 4, !tbaa !9
  br label %245

143:                                              ; preds = %138, %135
  %144 = load i32, ptr %49, align 4, !tbaa !9
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %151, label %146

146:                                              ; preds = %143
  %147 = load i32, ptr %56, align 4, !tbaa !9
  %148 = icmp ne i32 %147, 0
  br i1 %148, label %151, label %149

149:                                              ; preds = %146
  %150 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %150, align 4, !tbaa !9
  br label %244

151:                                              ; preds = %146, %143
  %152 = load ptr, ptr %20, align 8, !tbaa !5
  %153 = load i32, ptr %152, align 4, !tbaa !9
  %154 = icmp slt i32 %153, 0
  br i1 %154, label %155, label %157

155:                                              ; preds = %151
  %156 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %156, align 4, !tbaa !9
  br label %243

157:                                              ; preds = %151
  %158 = load ptr, ptr %21, align 8, !tbaa !5
  %159 = load i32, ptr %158, align 4, !tbaa !9
  %160 = icmp slt i32 %159, 0
  br i1 %160, label %161, label %163

161:                                              ; preds = %157
  %162 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -4, ptr %162, align 4, !tbaa !9
  br label %242

163:                                              ; preds = %157
  %164 = load ptr, ptr %22, align 8, !tbaa !5
  %165 = load i32, ptr %164, align 4, !tbaa !9
  %166 = icmp slt i32 %165, 0
  br i1 %166, label %167, label %169

167:                                              ; preds = %163
  %168 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %168, align 4, !tbaa !9
  br label %241

169:                                              ; preds = %163
  %170 = load ptr, ptr %23, align 8, !tbaa !5
  %171 = load i32, ptr %170, align 4, !tbaa !9
  %172 = icmp slt i32 %171, 0
  br i1 %172, label %179, label %173

173:                                              ; preds = %169
  %174 = load ptr, ptr %23, align 8, !tbaa !5
  %175 = load i32, ptr %174, align 4, !tbaa !9
  %176 = load ptr, ptr %22, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = icmp sgt i32 %175, %177
  br i1 %178, label %179, label %181

179:                                              ; preds = %173, %169
  %180 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -6, ptr %180, align 4, !tbaa !9
  br label %240

181:                                              ; preds = %173
  %182 = load ptr, ptr %24, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  %184 = icmp slt i32 %183, 1
  br i1 %184, label %195, label %185

185:                                              ; preds = %181
  %186 = load ptr, ptr %24, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = load ptr, ptr %22, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = icmp sgt i32 %187, %189
  br i1 %190, label %191, label %197

191:                                              ; preds = %185
  %192 = load ptr, ptr %22, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = icmp sgt i32 %193, 0
  br i1 %194, label %195, label %197

195:                                              ; preds = %191, %181
  %196 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -7, ptr %196, align 4, !tbaa !9
  br label %239

197:                                              ; preds = %191, %185
  %198 = load ptr, ptr %26, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = load ptr, ptr %22, align 8, !tbaa !5
  %201 = load i32, ptr %200, align 4, !tbaa !9
  %202 = icmp slt i32 %199, %201
  br i1 %202, label %203, label %205

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

205:                                              ; preds = %197
  %206 = load ptr, ptr %28, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = load ptr, ptr %24, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !9
  %210 = icmp slt i32 %207, %209
  br i1 %210, label %211, label %213

211:                                              ; preds = %205
  %212 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -11, ptr %212, align 4, !tbaa !9
  br label %237

213:                                              ; preds = %205
  %214 = load ptr, ptr %30, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = load i32, ptr %47, align 4, !tbaa !9
  %217 = icmp slt i32 %215, %216
  br i1 %217, label %218, label %220

218:                                              ; preds = %213
  %219 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -13, ptr %219, align 4, !tbaa !9
  br label %236

220:                                              ; preds = %213
  %221 = load ptr, ptr %32, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = load ptr, ptr %20, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = icmp sge i32 1, %224
  br i1 %225, label %226, label %227

226:                                              ; preds = %220
  br label %230

227:                                              ; preds = %220
  %228 = load ptr, ptr %20, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %227, %226
  %231 = phi i32 [ 1, %226 ], [ %229, %227 ]
  %232 = icmp slt i32 %222, %231
  br i1 %232, label %233, label %235

233:                                              ; preds = %230
  %234 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -15, ptr %234, align 4, !tbaa !9
  br label %235

235:                                              ; preds = %233, %230
  br label %236

236:                                              ; preds = %235, %218
  br label %237

237:                                              ; preds = %236, %211
  br label %238

238:                                              ; preds = %237, %203
  br label %239

239:                                              ; preds = %238, %195
  br label %240

240:                                              ; preds = %239, %179
  br label %241

241:                                              ; preds = %240, %167
  br label %242

242:                                              ; preds = %241, %161
  br label %243

243:                                              ; preds = %242, %155
  br label %244

244:                                              ; preds = %243, %149
  br label %245

245:                                              ; preds = %244, %141
  %246 = load ptr, ptr %34, align 8, !tbaa !5
  %247 = load i32, ptr %246, align 4, !tbaa !9
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %249, label %254

249:                                              ; preds = %245
  %250 = load ptr, ptr %34, align 8, !tbaa !5
  %251 = load i32, ptr %250, align 4, !tbaa !9
  %252 = sub nsw i32 0, %251
  store i32 %252, ptr %43, align 4, !tbaa !9
  %253 = call i32 @xerbla_(ptr noundef @.str.4, ptr noundef %43, i32 noundef 7)
  store i32 1, ptr %57, align 4
  br label %739

254:                                              ; preds = %245
  %255 = load ptr, ptr %20, align 8, !tbaa !5
  %256 = load i32, ptr %255, align 4, !tbaa !9
  %257 = icmp eq i32 %256, 0
  br i1 %257, label %266, label %258

258:                                              ; preds = %254
  %259 = load ptr, ptr %21, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp eq i32 %260, 0
  br i1 %261, label %266, label %262

262:                                              ; preds = %258
  %263 = load ptr, ptr %22, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp eq i32 %264, 0
  br i1 %265, label %266, label %267

266:                                              ; preds = %262, %258, %254
  store i32 1, ptr %57, align 4
  br label %739

267:                                              ; preds = %262
  %268 = load i32, ptr %48, align 4, !tbaa !9
  %269 = icmp ne i32 %268, 0
  br i1 %269, label %270, label %374

270:                                              ; preds = %267
  %271 = load i32, ptr %56, align 4, !tbaa !9
  %272 = icmp ne i32 %271, 0
  br i1 %272, label %273, label %374

273:                                              ; preds = %270
  %274 = load ptr, ptr %22, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  store i32 %275, ptr %43, align 4, !tbaa !9
  %276 = load ptr, ptr %24, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  store i32 %277, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %278

278:                                              ; preds = %369, %273
  %279 = load i32, ptr %44, align 4, !tbaa !9
  %280 = icmp slt i32 %279, 0
  br i1 %280, label %281, label %286

281:                                              ; preds = %278
  %282 = load i32, ptr %50, align 4, !tbaa !9
  %283 = load i32, ptr %43, align 4, !tbaa !9
  %284 = icmp sge i32 %282, %283
  %285 = zext i1 %284 to i32
  br label %291

286:                                              ; preds = %278
  %287 = load i32, ptr %50, align 4, !tbaa !9
  %288 = load i32, ptr %43, align 4, !tbaa !9
  %289 = icmp sle i32 %287, %288
  %290 = zext i1 %289 to i32
  br label %291

291:                                              ; preds = %286, %281
  %292 = phi i32 [ %285, %281 ], [ %290, %286 ]
  %293 = icmp ne i32 %292, 0
  br i1 %293, label %294, label %373

294:                                              ; preds = %291
  %295 = load ptr, ptr %24, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  store i32 %296, ptr %45, align 4, !tbaa !9
  %297 = load ptr, ptr %22, align 8, !tbaa !5
  %298 = load i32, ptr %297, align 4, !tbaa !9
  %299 = load i32, ptr %50, align 4, !tbaa !9
  %300 = sub nsw i32 %298, %299
  %301 = add nsw i32 %300, 1
  store i32 %301, ptr %46, align 4, !tbaa !9
  %302 = load i32, ptr %45, align 4, !tbaa !9
  %303 = load i32, ptr %46, align 4, !tbaa !9
  %304 = icmp sle i32 %302, %303
  br i1 %304, label %305, label %307

305:                                              ; preds = %294
  %306 = load i32, ptr %45, align 4, !tbaa !9
  br label %309

307:                                              ; preds = %294
  %308 = load i32, ptr %46, align 4, !tbaa !9
  br label %309

309:                                              ; preds = %307, %305
  %310 = phi i32 [ %306, %305 ], [ %308, %307 ]
  store i32 %310, ptr %52, align 4, !tbaa !9
  %311 = load ptr, ptr %20, align 8, !tbaa !5
  %312 = load i32, ptr %311, align 4, !tbaa !9
  %313 = load ptr, ptr %23, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = sub nsw i32 %312, %314
  %316 = load i32, ptr %50, align 4, !tbaa !9
  %317 = add nsw i32 %315, %316
  %318 = load i32, ptr %52, align 4, !tbaa !9
  %319 = add nsw i32 %317, %318
  %320 = sub nsw i32 %319, 1
  store i32 %320, ptr %45, align 4, !tbaa !9
  %321 = load i32, ptr %45, align 4, !tbaa !9
  %322 = load ptr, ptr %20, align 8, !tbaa !5
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = icmp sle i32 %321, %323
  br i1 %324, label %325, label %327

325:                                              ; preds = %309
  %326 = load i32, ptr %45, align 4, !tbaa !9
  br label %330

327:                                              ; preds = %309
  %328 = load ptr, ptr %20, align 8, !tbaa !5
  %329 = load i32, ptr %328, align 4, !tbaa !9
  br label %330

330:                                              ; preds = %327, %325
  %331 = phi i32 [ %326, %325 ], [ %329, %327 ]
  store i32 %331, ptr %54, align 4, !tbaa !9
  %332 = load i32, ptr %50, align 4, !tbaa !9
  %333 = load ptr, ptr %23, align 8, !tbaa !5
  %334 = load i32, ptr %333, align 4, !tbaa !9
  %335 = icmp sge i32 %332, %334
  br i1 %335, label %336, label %337

336:                                              ; preds = %330
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %338

337:                                              ; preds = %330
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %338

338:                                              ; preds = %337, %336
  %339 = load ptr, ptr %21, align 8, !tbaa !5
  %340 = load ptr, ptr %25, align 8, !tbaa !5
  %341 = load i32, ptr %50, align 4, !tbaa !9
  %342 = load i32, ptr %35, align 4, !tbaa !9
  %343 = add nsw i32 %341, %342
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds %struct.complex, ptr %340, i64 %344
  %346 = load ptr, ptr %26, align 8, !tbaa !5
  %347 = load ptr, ptr %27, align 8, !tbaa !5
  %348 = load i32, ptr %50, align 4, !tbaa !9
  %349 = load i32, ptr %41, align 4, !tbaa !9
  %350 = mul nsw i32 %348, %349
  %351 = add nsw i32 %350, 1
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds %struct.complex, ptr %347, i64 %352
  %354 = load ptr, ptr %28, align 8, !tbaa !5
  %355 = load ptr, ptr %29, align 8, !tbaa !5
  %356 = load i32, ptr %50, align 4, !tbaa !9
  %357 = load i32, ptr %37, align 4, !tbaa !9
  %358 = add nsw i32 %356, %357
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds %struct.complex, ptr %355, i64 %359
  %361 = load ptr, ptr %30, align 8, !tbaa !5
  %362 = load ptr, ptr %31, align 8, !tbaa !5
  %363 = load i32, ptr %40, align 4, !tbaa !9
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds %struct.complex, ptr %362, i64 %364
  %366 = load ptr, ptr %32, align 8, !tbaa !5
  %367 = load ptr, ptr %33, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.complex, ptr %367, i64 1
  call void @ctprfb_(ptr noundef @.str, ptr noundef @.str.2, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %54, ptr noundef %339, ptr noundef %52, ptr noundef %53, ptr noundef %345, ptr noundef %346, ptr noundef %353, ptr noundef %354, ptr noundef %360, ptr noundef %361, ptr noundef %365, ptr noundef %366, ptr noundef %368, ptr noundef %52)
  br label %369

369:                                              ; preds = %338
  %370 = load i32, ptr %44, align 4, !tbaa !9
  %371 = load i32, ptr %50, align 4, !tbaa !9
  %372 = add nsw i32 %371, %370
  store i32 %372, ptr %50, align 4, !tbaa !9
  br label %278, !llvm.loop !11

373:                                              ; preds = %291
  br label %738

374:                                              ; preds = %270, %267
  %375 = load i32, ptr %51, align 4, !tbaa !9
  %376 = icmp ne i32 %375, 0
  br i1 %376, label %377, label %493

377:                                              ; preds = %374
  %378 = load i32, ptr %49, align 4, !tbaa !9
  %379 = icmp ne i32 %378, 0
  br i1 %379, label %380, label %493

380:                                              ; preds = %377
  %381 = load ptr, ptr %22, align 8, !tbaa !5
  %382 = load i32, ptr %381, align 4, !tbaa !9
  store i32 %382, ptr %44, align 4, !tbaa !9
  %383 = load ptr, ptr %24, align 8, !tbaa !5
  %384 = load i32, ptr %383, align 4, !tbaa !9
  store i32 %384, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %385

385:                                              ; preds = %488, %380
  %386 = load i32, ptr %43, align 4, !tbaa !9
  %387 = icmp slt i32 %386, 0
  br i1 %387, label %388, label %393

388:                                              ; preds = %385
  %389 = load i32, ptr %50, align 4, !tbaa !9
  %390 = load i32, ptr %44, align 4, !tbaa !9
  %391 = icmp sge i32 %389, %390
  %392 = zext i1 %391 to i32
  br label %398

393:                                              ; preds = %385
  %394 = load i32, ptr %50, align 4, !tbaa !9
  %395 = load i32, ptr %44, align 4, !tbaa !9
  %396 = icmp sle i32 %394, %395
  %397 = zext i1 %396 to i32
  br label %398

398:                                              ; preds = %393, %388
  %399 = phi i32 [ %392, %388 ], [ %397, %393 ]
  %400 = icmp ne i32 %399, 0
  br i1 %400, label %401, label %492

401:                                              ; preds = %398
  %402 = load ptr, ptr %24, align 8, !tbaa !5
  %403 = load i32, ptr %402, align 4, !tbaa !9
  store i32 %403, ptr %45, align 4, !tbaa !9
  %404 = load ptr, ptr %22, align 8, !tbaa !5
  %405 = load i32, ptr %404, align 4, !tbaa !9
  %406 = load i32, ptr %50, align 4, !tbaa !9
  %407 = sub nsw i32 %405, %406
  %408 = add nsw i32 %407, 1
  store i32 %408, ptr %46, align 4, !tbaa !9
  %409 = load i32, ptr %45, align 4, !tbaa !9
  %410 = load i32, ptr %46, align 4, !tbaa !9
  %411 = icmp sle i32 %409, %410
  br i1 %411, label %412, label %414

412:                                              ; preds = %401
  %413 = load i32, ptr %45, align 4, !tbaa !9
  br label %416

414:                                              ; preds = %401
  %415 = load i32, ptr %46, align 4, !tbaa !9
  br label %416

416:                                              ; preds = %414, %412
  %417 = phi i32 [ %413, %412 ], [ %415, %414 ]
  store i32 %417, ptr %52, align 4, !tbaa !9
  %418 = load ptr, ptr %21, align 8, !tbaa !5
  %419 = load i32, ptr %418, align 4, !tbaa !9
  %420 = load ptr, ptr %23, align 8, !tbaa !5
  %421 = load i32, ptr %420, align 4, !tbaa !9
  %422 = sub nsw i32 %419, %421
  %423 = load i32, ptr %50, align 4, !tbaa !9
  %424 = add nsw i32 %422, %423
  %425 = load i32, ptr %52, align 4, !tbaa !9
  %426 = add nsw i32 %424, %425
  %427 = sub nsw i32 %426, 1
  store i32 %427, ptr %45, align 4, !tbaa !9
  %428 = load i32, ptr %45, align 4, !tbaa !9
  %429 = load ptr, ptr %21, align 8, !tbaa !5
  %430 = load i32, ptr %429, align 4, !tbaa !9
  %431 = icmp sle i32 %428, %430
  br i1 %431, label %432, label %434

432:                                              ; preds = %416
  %433 = load i32, ptr %45, align 4, !tbaa !9
  br label %437

434:                                              ; preds = %416
  %435 = load ptr, ptr %21, align 8, !tbaa !5
  %436 = load i32, ptr %435, align 4, !tbaa !9
  br label %437

437:                                              ; preds = %434, %432
  %438 = phi i32 [ %433, %432 ], [ %436, %434 ]
  store i32 %438, ptr %54, align 4, !tbaa !9
  %439 = load i32, ptr %50, align 4, !tbaa !9
  %440 = load ptr, ptr %23, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = icmp sge i32 %439, %441
  br i1 %442, label %443, label %444

443:                                              ; preds = %437
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %455

444:                                              ; preds = %437
  %445 = load i32, ptr %54, align 4, !tbaa !9
  %446 = load ptr, ptr %21, align 8, !tbaa !5
  %447 = load i32, ptr %446, align 4, !tbaa !9
  %448 = sub nsw i32 %445, %447
  %449 = load ptr, ptr %23, align 8, !tbaa !5
  %450 = load i32, ptr %449, align 4, !tbaa !9
  %451 = add nsw i32 %448, %450
  %452 = load i32, ptr %50, align 4, !tbaa !9
  %453 = sub nsw i32 %451, %452
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr %53, align 4, !tbaa !9
  br label %455

455:                                              ; preds = %444, %443
  %456 = load ptr, ptr %20, align 8, !tbaa !5
  %457 = load ptr, ptr %25, align 8, !tbaa !5
  %458 = load i32, ptr %50, align 4, !tbaa !9
  %459 = load i32, ptr %35, align 4, !tbaa !9
  %460 = add nsw i32 %458, %459
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds %struct.complex, ptr %457, i64 %461
  %463 = load ptr, ptr %26, align 8, !tbaa !5
  %464 = load ptr, ptr %27, align 8, !tbaa !5
  %465 = load i32, ptr %50, align 4, !tbaa !9
  %466 = load i32, ptr %41, align 4, !tbaa !9
  %467 = mul nsw i32 %465, %466
  %468 = add nsw i32 %467, 1
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds %struct.complex, ptr %464, i64 %469
  %471 = load ptr, ptr %28, align 8, !tbaa !5
  %472 = load ptr, ptr %29, align 8, !tbaa !5
  %473 = load i32, ptr %50, align 4, !tbaa !9
  %474 = load i32, ptr %37, align 4, !tbaa !9
  %475 = mul nsw i32 %473, %474
  %476 = add nsw i32 %475, 1
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds %struct.complex, ptr %472, i64 %477
  %479 = load ptr, ptr %30, align 8, !tbaa !5
  %480 = load ptr, ptr %31, align 8, !tbaa !5
  %481 = load i32, ptr %40, align 4, !tbaa !9
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds %struct.complex, ptr %480, i64 %482
  %484 = load ptr, ptr %32, align 8, !tbaa !5
  %485 = load ptr, ptr %33, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.complex, ptr %485, i64 1
  %487 = load ptr, ptr %20, align 8, !tbaa !5
  call void @ctprfb_(ptr noundef @.str.1, ptr noundef @.str.3, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %456, ptr noundef %54, ptr noundef %52, ptr noundef %53, ptr noundef %462, ptr noundef %463, ptr noundef %470, ptr noundef %471, ptr noundef %478, ptr noundef %479, ptr noundef %483, ptr noundef %484, ptr noundef %486, ptr noundef %487)
  br label %488

488:                                              ; preds = %455
  %489 = load i32, ptr %43, align 4, !tbaa !9
  %490 = load i32, ptr %50, align 4, !tbaa !9
  %491 = add nsw i32 %490, %489
  store i32 %491, ptr %50, align 4, !tbaa !9
  br label %385, !llvm.loop !13

492:                                              ; preds = %398
  br label %737

493:                                              ; preds = %377, %374
  %494 = load i32, ptr %48, align 4, !tbaa !9
  %495 = icmp ne i32 %494, 0
  br i1 %495, label %496, label %608

496:                                              ; preds = %493
  %497 = load i32, ptr %49, align 4, !tbaa !9
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %608

499:                                              ; preds = %496
  %500 = load ptr, ptr %22, align 8, !tbaa !5
  %501 = load i32, ptr %500, align 4, !tbaa !9
  %502 = sub nsw i32 %501, 1
  %503 = load ptr, ptr %24, align 8, !tbaa !5
  %504 = load i32, ptr %503, align 4, !tbaa !9
  %505 = sdiv i32 %502, %504
  %506 = load ptr, ptr %24, align 8, !tbaa !5
  %507 = load i32, ptr %506, align 4, !tbaa !9
  %508 = mul nsw i32 %505, %507
  %509 = add nsw i32 %508, 1
  store i32 %509, ptr %55, align 4, !tbaa !9
  %510 = load ptr, ptr %24, align 8, !tbaa !5
  %511 = load i32, ptr %510, align 4, !tbaa !9
  %512 = sub nsw i32 0, %511
  store i32 %512, ptr %43, align 4, !tbaa !9
  %513 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %513, ptr %50, align 4, !tbaa !9
  br label %514

514:                                              ; preds = %603, %499
  %515 = load i32, ptr %43, align 4, !tbaa !9
  %516 = icmp slt i32 %515, 0
  br i1 %516, label %517, label %521

517:                                              ; preds = %514
  %518 = load i32, ptr %50, align 4, !tbaa !9
  %519 = icmp sge i32 %518, 1
  %520 = zext i1 %519 to i32
  br label %525

521:                                              ; preds = %514
  %522 = load i32, ptr %50, align 4, !tbaa !9
  %523 = icmp sle i32 %522, 1
  %524 = zext i1 %523 to i32
  br label %525

525:                                              ; preds = %521, %517
  %526 = phi i32 [ %520, %517 ], [ %524, %521 ]
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %528, label %607

528:                                              ; preds = %525
  %529 = load ptr, ptr %24, align 8, !tbaa !5
  %530 = load i32, ptr %529, align 4, !tbaa !9
  store i32 %530, ptr %44, align 4, !tbaa !9
  %531 = load ptr, ptr %22, align 8, !tbaa !5
  %532 = load i32, ptr %531, align 4, !tbaa !9
  %533 = load i32, ptr %50, align 4, !tbaa !9
  %534 = sub nsw i32 %532, %533
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr %45, align 4, !tbaa !9
  %536 = load i32, ptr %44, align 4, !tbaa !9
  %537 = load i32, ptr %45, align 4, !tbaa !9
  %538 = icmp sle i32 %536, %537
  br i1 %538, label %539, label %541

539:                                              ; preds = %528
  %540 = load i32, ptr %44, align 4, !tbaa !9
  br label %543

541:                                              ; preds = %528
  %542 = load i32, ptr %45, align 4, !tbaa !9
  br label %543

543:                                              ; preds = %541, %539
  %544 = phi i32 [ %540, %539 ], [ %542, %541 ]
  store i32 %544, ptr %52, align 4, !tbaa !9
  %545 = load ptr, ptr %20, align 8, !tbaa !5
  %546 = load i32, ptr %545, align 4, !tbaa !9
  %547 = load ptr, ptr %23, align 8, !tbaa !5
  %548 = load i32, ptr %547, align 4, !tbaa !9
  %549 = sub nsw i32 %546, %548
  %550 = load i32, ptr %50, align 4, !tbaa !9
  %551 = add nsw i32 %549, %550
  %552 = load i32, ptr %52, align 4, !tbaa !9
  %553 = add nsw i32 %551, %552
  %554 = sub nsw i32 %553, 1
  store i32 %554, ptr %44, align 4, !tbaa !9
  %555 = load i32, ptr %44, align 4, !tbaa !9
  %556 = load ptr, ptr %20, align 8, !tbaa !5
  %557 = load i32, ptr %556, align 4, !tbaa !9
  %558 = icmp sle i32 %555, %557
  br i1 %558, label %559, label %561

559:                                              ; preds = %543
  %560 = load i32, ptr %44, align 4, !tbaa !9
  br label %564

561:                                              ; preds = %543
  %562 = load ptr, ptr %20, align 8, !tbaa !5
  %563 = load i32, ptr %562, align 4, !tbaa !9
  br label %564

564:                                              ; preds = %561, %559
  %565 = phi i32 [ %560, %559 ], [ %563, %561 ]
  store i32 %565, ptr %54, align 4, !tbaa !9
  %566 = load i32, ptr %50, align 4, !tbaa !9
  %567 = load ptr, ptr %23, align 8, !tbaa !5
  %568 = load i32, ptr %567, align 4, !tbaa !9
  %569 = icmp sge i32 %566, %568
  br i1 %569, label %570, label %571

570:                                              ; preds = %564
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %572

571:                                              ; preds = %564
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %572

572:                                              ; preds = %571, %570
  %573 = load ptr, ptr %21, align 8, !tbaa !5
  %574 = load ptr, ptr %25, align 8, !tbaa !5
  %575 = load i32, ptr %50, align 4, !tbaa !9
  %576 = load i32, ptr %35, align 4, !tbaa !9
  %577 = add nsw i32 %575, %576
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds %struct.complex, ptr %574, i64 %578
  %580 = load ptr, ptr %26, align 8, !tbaa !5
  %581 = load ptr, ptr %27, align 8, !tbaa !5
  %582 = load i32, ptr %50, align 4, !tbaa !9
  %583 = load i32, ptr %41, align 4, !tbaa !9
  %584 = mul nsw i32 %582, %583
  %585 = add nsw i32 %584, 1
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds %struct.complex, ptr %581, i64 %586
  %588 = load ptr, ptr %28, align 8, !tbaa !5
  %589 = load ptr, ptr %29, align 8, !tbaa !5
  %590 = load i32, ptr %50, align 4, !tbaa !9
  %591 = load i32, ptr %37, align 4, !tbaa !9
  %592 = add nsw i32 %590, %591
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds %struct.complex, ptr %589, i64 %593
  %595 = load ptr, ptr %30, align 8, !tbaa !5
  %596 = load ptr, ptr %31, align 8, !tbaa !5
  %597 = load i32, ptr %40, align 4, !tbaa !9
  %598 = sext i32 %597 to i64
  %599 = getelementptr inbounds %struct.complex, ptr %596, i64 %598
  %600 = load ptr, ptr %32, align 8, !tbaa !5
  %601 = load ptr, ptr %33, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.complex, ptr %601, i64 1
  call void @ctprfb_(ptr noundef @.str, ptr noundef @.str.3, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %54, ptr noundef %573, ptr noundef %52, ptr noundef %53, ptr noundef %579, ptr noundef %580, ptr noundef %587, ptr noundef %588, ptr noundef %594, ptr noundef %595, ptr noundef %599, ptr noundef %600, ptr noundef %602, ptr noundef %52)
  br label %603

603:                                              ; preds = %572
  %604 = load i32, ptr %43, align 4, !tbaa !9
  %605 = load i32, ptr %50, align 4, !tbaa !9
  %606 = add nsw i32 %605, %604
  store i32 %606, ptr %50, align 4, !tbaa !9
  br label %514, !llvm.loop !14

607:                                              ; preds = %525
  br label %736

608:                                              ; preds = %496, %493
  %609 = load i32, ptr %51, align 4, !tbaa !9
  %610 = icmp ne i32 %609, 0
  br i1 %610, label %611, label %735

611:                                              ; preds = %608
  %612 = load i32, ptr %56, align 4, !tbaa !9
  %613 = icmp ne i32 %612, 0
  br i1 %613, label %614, label %735

614:                                              ; preds = %611
  %615 = load ptr, ptr %22, align 8, !tbaa !5
  %616 = load i32, ptr %615, align 4, !tbaa !9
  %617 = sub nsw i32 %616, 1
  %618 = load ptr, ptr %24, align 8, !tbaa !5
  %619 = load i32, ptr %618, align 4, !tbaa !9
  %620 = sdiv i32 %617, %619
  %621 = load ptr, ptr %24, align 8, !tbaa !5
  %622 = load i32, ptr %621, align 4, !tbaa !9
  %623 = mul nsw i32 %620, %622
  %624 = add nsw i32 %623, 1
  store i32 %624, ptr %55, align 4, !tbaa !9
  %625 = load ptr, ptr %24, align 8, !tbaa !5
  %626 = load i32, ptr %625, align 4, !tbaa !9
  %627 = sub nsw i32 0, %626
  store i32 %627, ptr %43, align 4, !tbaa !9
  %628 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %628, ptr %50, align 4, !tbaa !9
  br label %629

629:                                              ; preds = %730, %614
  %630 = load i32, ptr %43, align 4, !tbaa !9
  %631 = icmp slt i32 %630, 0
  br i1 %631, label %632, label %636

632:                                              ; preds = %629
  %633 = load i32, ptr %50, align 4, !tbaa !9
  %634 = icmp sge i32 %633, 1
  %635 = zext i1 %634 to i32
  br label %640

636:                                              ; preds = %629
  %637 = load i32, ptr %50, align 4, !tbaa !9
  %638 = icmp sle i32 %637, 1
  %639 = zext i1 %638 to i32
  br label %640

640:                                              ; preds = %636, %632
  %641 = phi i32 [ %635, %632 ], [ %639, %636 ]
  %642 = icmp ne i32 %641, 0
  br i1 %642, label %643, label %734

643:                                              ; preds = %640
  %644 = load ptr, ptr %24, align 8, !tbaa !5
  %645 = load i32, ptr %644, align 4, !tbaa !9
  store i32 %645, ptr %44, align 4, !tbaa !9
  %646 = load ptr, ptr %22, align 8, !tbaa !5
  %647 = load i32, ptr %646, align 4, !tbaa !9
  %648 = load i32, ptr %50, align 4, !tbaa !9
  %649 = sub nsw i32 %647, %648
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr %45, align 4, !tbaa !9
  %651 = load i32, ptr %44, align 4, !tbaa !9
  %652 = load i32, ptr %45, align 4, !tbaa !9
  %653 = icmp sle i32 %651, %652
  br i1 %653, label %654, label %656

654:                                              ; preds = %643
  %655 = load i32, ptr %44, align 4, !tbaa !9
  br label %658

656:                                              ; preds = %643
  %657 = load i32, ptr %45, align 4, !tbaa !9
  br label %658

658:                                              ; preds = %656, %654
  %659 = phi i32 [ %655, %654 ], [ %657, %656 ]
  store i32 %659, ptr %52, align 4, !tbaa !9
  %660 = load ptr, ptr %21, align 8, !tbaa !5
  %661 = load i32, ptr %660, align 4, !tbaa !9
  %662 = load ptr, ptr %23, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  %664 = sub nsw i32 %661, %663
  %665 = load i32, ptr %50, align 4, !tbaa !9
  %666 = add nsw i32 %664, %665
  %667 = load i32, ptr %52, align 4, !tbaa !9
  %668 = add nsw i32 %666, %667
  %669 = sub nsw i32 %668, 1
  store i32 %669, ptr %44, align 4, !tbaa !9
  %670 = load i32, ptr %44, align 4, !tbaa !9
  %671 = load ptr, ptr %21, align 8, !tbaa !5
  %672 = load i32, ptr %671, align 4, !tbaa !9
  %673 = icmp sle i32 %670, %672
  br i1 %673, label %674, label %676

674:                                              ; preds = %658
  %675 = load i32, ptr %44, align 4, !tbaa !9
  br label %679

676:                                              ; preds = %658
  %677 = load ptr, ptr %21, align 8, !tbaa !5
  %678 = load i32, ptr %677, align 4, !tbaa !9
  br label %679

679:                                              ; preds = %676, %674
  %680 = phi i32 [ %675, %674 ], [ %678, %676 ]
  store i32 %680, ptr %54, align 4, !tbaa !9
  %681 = load i32, ptr %50, align 4, !tbaa !9
  %682 = load ptr, ptr %23, align 8, !tbaa !5
  %683 = load i32, ptr %682, align 4, !tbaa !9
  %684 = icmp sge i32 %681, %683
  br i1 %684, label %685, label %686

685:                                              ; preds = %679
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %697

686:                                              ; preds = %679
  %687 = load i32, ptr %54, align 4, !tbaa !9
  %688 = load ptr, ptr %21, align 8, !tbaa !5
  %689 = load i32, ptr %688, align 4, !tbaa !9
  %690 = sub nsw i32 %687, %689
  %691 = load ptr, ptr %23, align 8, !tbaa !5
  %692 = load i32, ptr %691, align 4, !tbaa !9
  %693 = add nsw i32 %690, %692
  %694 = load i32, ptr %50, align 4, !tbaa !9
  %695 = sub nsw i32 %693, %694
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr %53, align 4, !tbaa !9
  br label %697

697:                                              ; preds = %686, %685
  %698 = load ptr, ptr %20, align 8, !tbaa !5
  %699 = load ptr, ptr %25, align 8, !tbaa !5
  %700 = load i32, ptr %50, align 4, !tbaa !9
  %701 = load i32, ptr %35, align 4, !tbaa !9
  %702 = add nsw i32 %700, %701
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds %struct.complex, ptr %699, i64 %703
  %705 = load ptr, ptr %26, align 8, !tbaa !5
  %706 = load ptr, ptr %27, align 8, !tbaa !5
  %707 = load i32, ptr %50, align 4, !tbaa !9
  %708 = load i32, ptr %41, align 4, !tbaa !9
  %709 = mul nsw i32 %707, %708
  %710 = add nsw i32 %709, 1
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds %struct.complex, ptr %706, i64 %711
  %713 = load ptr, ptr %28, align 8, !tbaa !5
  %714 = load ptr, ptr %29, align 8, !tbaa !5
  %715 = load i32, ptr %50, align 4, !tbaa !9
  %716 = load i32, ptr %37, align 4, !tbaa !9
  %717 = mul nsw i32 %715, %716
  %718 = add nsw i32 %717, 1
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds %struct.complex, ptr %714, i64 %719
  %721 = load ptr, ptr %30, align 8, !tbaa !5
  %722 = load ptr, ptr %31, align 8, !tbaa !5
  %723 = load i32, ptr %40, align 4, !tbaa !9
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds %struct.complex, ptr %722, i64 %724
  %726 = load ptr, ptr %32, align 8, !tbaa !5
  %727 = load ptr, ptr %33, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.complex, ptr %727, i64 1
  %729 = load ptr, ptr %20, align 8, !tbaa !5
  call void @ctprfb_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %698, ptr noundef %54, ptr noundef %52, ptr noundef %53, ptr noundef %704, ptr noundef %705, ptr noundef %712, ptr noundef %713, ptr noundef %720, ptr noundef %721, ptr noundef %725, ptr noundef %726, ptr noundef %728, ptr noundef %729)
  br label %730

730:                                              ; preds = %697
  %731 = load i32, ptr %43, align 4, !tbaa !9
  %732 = load i32, ptr %50, align 4, !tbaa !9
  %733 = add nsw i32 %732, %731
  store i32 %733, ptr %50, align 4, !tbaa !9
  br label %629, !llvm.loop !15

734:                                              ; preds = %640
  br label %735

735:                                              ; preds = %734, %611, %608
  br label %736

736:                                              ; preds = %735, %607
  br label %737

737:                                              ; preds = %736, %492
  br label %738

738:                                              ; preds = %737, %373
  store i32 1, ptr %57, align 4
  br label %739

739:                                              ; preds = %738, %266, %249
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  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 void @ctprfb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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


; 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 [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @ctpmlqt_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr nocapture noundef %16) local_unnamed_addr #0 {
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #4
  %22 = load i32, ptr %8, align 4, !tbaa !5
  %narrow = xor i32 %22, -1
  %23 = sext i32 %narrow to i64
  %24 = getelementptr inbounds %struct.complex, ptr %7, i64 %23
  %25 = load i32, ptr %10, align 4, !tbaa !5
  %narrow274 = xor i32 %25, -1
  %26 = sext i32 %narrow274 to i64
  %27 = getelementptr inbounds %struct.complex, ptr %9, i64 %26
  %28 = load i32, ptr %12, align 4, !tbaa !5
  %narrow275 = xor i32 %28, -1
  %29 = sext i32 %narrow275 to i64
  %30 = getelementptr inbounds %struct.complex, ptr %11, i64 %29
  store i32 0, ptr %16, align 4, !tbaa !5
  %31 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %32 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %33 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %34 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #4
  %35 = icmp ne i32 %31, 0
  br i1 %35, label %.thread, label %36

36:                                               ; preds = %17
  %.not = icmp eq i32 %32, 0
  br i1 %.not, label %.thread307.sink.split, label %.thread

.thread:                                          ; preds = %36, %17
  %.sink361 = phi ptr [ %4, %17 ], [ %2, %36 ]
  %37 = load i32, ptr %.sink361, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.smax.i32(i32 %37, i32 1)
  %38 = icmp ne i32 %32, 0
  %39 = icmp ne i32 %33, 0
  %40 = icmp ne i32 %34, 0
  %or.cond3 = select i1 %39, i1 true, i1 %40
  br i1 %or.cond3, label %41, label %.thread307.sink.split

41:                                               ; preds = %.thread
  %42 = load i32, ptr %2, align 4, !tbaa !5
  %43 = icmp slt i32 %42, 0
  br i1 %43, label %.thread307.sink.split, label %44

44:                                               ; preds = %41
  %45 = load i32, ptr %3, align 4, !tbaa !5
  %46 = icmp slt i32 %45, 0
  br i1 %46, label %.thread307.sink.split, label %47

47:                                               ; preds = %44
  %48 = load i32, ptr %4, align 4, !tbaa !5
  %.fr278 = freeze i32 %48
  %49 = icmp slt i32 %.fr278, 0
  br i1 %49, label %.thread307.sink.split, label %50

50:                                               ; preds = %47
  %51 = load i32, ptr %5, align 4, !tbaa !5
  %or.cond296 = icmp ugt i32 %51, %.fr278
  br i1 %or.cond296, label %.thread307.sink.split, label %52

52:                                               ; preds = %50
  %53 = load i32, ptr %6, align 4, !tbaa !5
  %54 = icmp slt i32 %53, 1
  br i1 %54, label %.thread307.sink.split, label %55

55:                                               ; preds = %52
  %56 = icmp ule i32 %53, %.fr278
  %.not276 = icmp eq i32 %.fr278, 0
  %or.cond297 = or i1 %.not276, %56
  br i1 %or.cond297, label %57, label %.thread307.sink.split

57:                                               ; preds = %55
  %58 = load i32, ptr %8, align 4, !tbaa !5
  %59 = icmp slt i32 %58, %.fr278
  br i1 %59, label %.thread307.sink.split, label %60

60:                                               ; preds = %57
  %61 = load i32, ptr %10, align 4, !tbaa !5
  %62 = icmp slt i32 %61, %53
  br i1 %62, label %.thread307.sink.split, label %63

63:                                               ; preds = %60
  %64 = load i32, ptr %12, align 4, !tbaa !5
  %65 = icmp slt i32 %64, %spec.select
  br i1 %65, label %.thread307.sink.split, label %66

66:                                               ; preds = %63
  %67 = load i32, ptr %14, align 4, !tbaa !5
  %spec.select298 = tail call i32 @llvm.umax.i32(i32 %42, i32 1)
  %68 = icmp slt i32 %67, %spec.select298
  br i1 %68, label %.thread307.sink.split, label %69

69:                                               ; preds = %66
  %.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not277 = icmp eq i32 %.pr, 0
  br i1 %.not277, label %73, label %.thread307

.thread307.sink.split:                            ; preds = %66, %63, %60, %57, %52, %55, %50, %47, %44, %41, %.thread, %36
  %.sink = phi i32 [ -1, %36 ], [ -2, %.thread ], [ -3, %41 ], [ -4, %44 ], [ -5, %47 ], [ -6, %50 ], [ -7, %55 ], [ -7, %52 ], [ -9, %57 ], [ -11, %60 ], [ -13, %63 ], [ -15, %66 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread307

.thread307:                                       ; preds = %.thread307.sink.split, %69
  %70 = phi i32 [ %.pr, %69 ], [ %.sink, %.thread307.sink.split ]
  %71 = sub nsw i32 0, %70
  store i32 %71, ptr %18, align 4, !tbaa !5
  %72 = call i32 @xerbla_(ptr noundef nonnull @.str.4, ptr noundef nonnull %18, i32 noundef 7) #4
  br label %.loopexit

73:                                               ; preds = %69
  %74 = icmp eq i32 %42, 0
  %75 = icmp eq i32 %45, 0
  %or.cond = or i1 %74, %75
  %76 = icmp eq i32 %.fr278, 0
  %or.cond362 = or i1 %or.cond, %76
  br i1 %or.cond362, label %.loopexit, label %77

77:                                               ; preds = %73
  %or.cond5 = select i1 %35, i1 %40, i1 false
  br i1 %or.cond5, label %.lr.ph344.preheader, label %95

.lr.ph344.preheader:                              ; preds = %77
  %invariant.gep340 = getelementptr i8, ptr %27, i64 8
  %78 = zext nneg i32 %53 to i64
  %79 = sext i32 %28 to i64
  %80 = sext i32 %25 to i64
  %81 = sext i32 %22 to i64
  %invariant.gep357 = getelementptr %struct.complex, ptr %24, i64 %81
  %invariant.gep359 = getelementptr %struct.complex, ptr %30, i64 %79
  %82 = zext nneg i32 %.fr278 to i64
  br label %.lr.ph344

.lr.ph344:                                        ; preds = %.lr.ph344.preheader, %.lr.ph344
  %indvars.iv = phi i64 [ 1, %.lr.ph344.preheader ], [ %indvars.iv.next, %.lr.ph344 ]
  %83 = load i32, ptr %6, align 4, !tbaa !5
  %84 = load i32, ptr %4, align 4, !tbaa !5
  %85 = trunc nsw i64 %indvars.iv to i32
  %reass.sub347 = sub i32 %84, %85
  %86 = add i32 %reass.sub347, 1
  %87 = call i32 @llvm.smin.i32(i32 %83, i32 %86)
  store i32 %87, ptr %19, align 4, !tbaa !5
  %88 = load i32, ptr %2, align 4, !tbaa !5
  %89 = load i32, ptr %5, align 4, !tbaa !5
  %90 = add i32 %85, -1
  %91 = add i32 %90, %88
  %92 = add i32 %91, %87
  %93 = sub i32 %92, %89
  %. = call i32 @llvm.smin.i32(i32 %93, i32 %88)
  store i32 %., ptr %21, align 4, !tbaa !5
  store i32 0, ptr %20, align 4, !tbaa !5
  %gep358 = getelementptr %struct.complex, ptr %invariant.gep357, i64 %indvars.iv
  %94 = mul nsw i64 %indvars.iv, %80
  %gep341 = getelementptr %struct.complex, ptr %invariant.gep340, i64 %94
  %gep360 = getelementptr %struct.complex, ptr %invariant.gep359, i64 %indvars.iv
  call void @ctprfb_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %gep358, ptr noundef nonnull %8, ptr noundef %gep341, ptr noundef nonnull %10, ptr noundef %gep360, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %19) #4
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, %78
  %.not353 = icmp ugt i64 %indvars.iv.next, %82
  br i1 %.not353, label %.loopexit, label %.lr.ph344, !llvm.loop !9

95:                                               ; preds = %77
  %or.cond7 = and i1 %38, %39
  br i1 %or.cond7, label %.lr.ph339.preheader, label %118

.lr.ph339.preheader:                              ; preds = %95
  %invariant.gep332 = getelementptr i8, ptr %27, i64 8
  %invariant.gep334 = getelementptr i8, ptr %30, i64 8
  br label %.lr.ph339

.lr.ph339:                                        ; preds = %.lr.ph339.preheader, %.lr.ph339
  %.1.neg338 = phi i32 [ %.1.neg, %.lr.ph339 ], [ -1, %.lr.ph339.preheader ]
  %.1337 = phi i32 [ %117, %.lr.ph339 ], [ 1, %.lr.ph339.preheader ]
  %96 = load i32, ptr %6, align 4, !tbaa !5
  %97 = load i32, ptr %4, align 4, !tbaa !5
  %98 = add i32 %.1.neg338, 1
  %99 = add i32 %98, %97
  %100 = call i32 @llvm.smin.i32(i32 %96, i32 %99)
  store i32 %100, ptr %19, align 4, !tbaa !5
  %101 = load i32, ptr %3, align 4, !tbaa !5
  %102 = load i32, ptr %5, align 4, !tbaa !5
  %103 = add nsw i32 %.1337, -1
  %104 = add i32 %103, %101
  %105 = add i32 %104, %100
  %106 = sub i32 %105, %102
  %.299 = call i32 @llvm.smin.i32(i32 %106, i32 %101)
  store i32 %.299, ptr %21, align 4, !tbaa !5
  %.not289 = icmp slt i32 %.1337, %102
  %107 = sub i32 %98, %101
  %108 = add i32 %107, %102
  %109 = add i32 %108, %.299
  %storemerge290 = select i1 %.not289, i32 %109, i32 0
  store i32 %storemerge290, ptr %20, align 4, !tbaa !5
  %110 = add nsw i32 %.1337, %22
  %111 = sext i32 %110 to i64
  %112 = getelementptr inbounds %struct.complex, ptr %24, i64 %111
  %113 = mul nsw i32 %.1337, %25
  %114 = sext i32 %113 to i64
  %gep333 = getelementptr %struct.complex, ptr %invariant.gep332, i64 %114
  %115 = mul nsw i32 %.1337, %28
  %116 = sext i32 %115 to i64
  %gep335 = getelementptr %struct.complex, ptr %invariant.gep334, i64 %116
  call void @ctprfb_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %112, ptr noundef nonnull %8, ptr noundef %gep333, ptr noundef nonnull %10, ptr noundef %gep335, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %2) #4
  %117 = add nuw nsw i32 %53, %.1337
  %.1.neg = sub nsw i32 0, %117
  %.not352 = icmp sgt i32 %117, %.fr278
  br i1 %.not352, label %.loopexit, label %.lr.ph339, !llvm.loop !11

118:                                              ; preds = %95
  %or.cond9 = and i1 %35, %39
  br i1 %or.cond9, label %119, label %144

119:                                              ; preds = %118
  %120 = add nsw i32 %.fr278, -1
  %121 = urem i32 %120, %53
  %122 = sub nsw i32 %.fr278, %121
  %invariant.gep327 = getelementptr i8, ptr %27, i64 8
  %123 = icmp sgt i32 %122, 0
  br i1 %123, label %.lr.ph331, label %.loopexit

.lr.ph331:                                        ; preds = %119, %.lr.ph331
  %.2330 = phi i32 [ %142, %.lr.ph331 ], [ %122, %119 ]
  %124 = load i32, ptr %6, align 4, !tbaa !5
  %125 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub346 = sub i32 %125, %.2330
  %126 = add i32 %reass.sub346, 1
  %127 = call i32 @llvm.smin.i32(i32 %124, i32 %126)
  store i32 %127, ptr %19, align 4, !tbaa !5
  %128 = load i32, ptr %2, align 4, !tbaa !5
  %129 = load i32, ptr %5, align 4, !tbaa !5
  %130 = add nsw i32 %.2330, -1
  %131 = add i32 %130, %128
  %132 = add i32 %131, %127
  %133 = sub i32 %132, %129
  %.300 = call i32 @llvm.smin.i32(i32 %133, i32 %128)
  store i32 %.300, ptr %21, align 4, !tbaa !5
  store i32 0, ptr %20, align 4, !tbaa !5
  %134 = add nsw i32 %.2330, %22
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds %struct.complex, ptr %24, i64 %135
  %137 = mul nsw i32 %.2330, %25
  %138 = sext i32 %137 to i64
  %gep328 = getelementptr %struct.complex, ptr %invariant.gep327, i64 %138
  %139 = add nsw i32 %.2330, %28
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds %struct.complex, ptr %30, i64 %140
  call void @ctprfb_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %136, ptr noundef nonnull %8, ptr noundef %gep328, ptr noundef nonnull %10, ptr noundef %141, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %19) #4
  %142 = sub i32 %.2330, %53
  %143 = icmp sgt i32 %142, 0
  br i1 %143, label %.lr.ph331, label %.loopexit, !llvm.loop !12

144:                                              ; preds = %118
  %or.cond11 = select i1 %38, i1 %40, i1 false
  br i1 %or.cond11, label %145, label %.loopexit

145:                                              ; preds = %144
  %146 = add nsw i32 %.fr278, -1
  %147 = urem i32 %146, %53
  %148 = sub nsw i32 %.fr278, %147
  %invariant.gep = getelementptr i8, ptr %27, i64 8
  %invariant.gep321 = getelementptr i8, ptr %30, i64 8
  %149 = icmp sgt i32 %148, 0
  br i1 %149, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %145, %.lr.ph
  %.3325 = phi i32 [ %170, %.lr.ph ], [ %148, %145 ]
  %150 = load i32, ptr %6, align 4, !tbaa !5
  %151 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub = sub i32 %151, %.3325
  %152 = add i32 %reass.sub, 1
  %153 = call i32 @llvm.smin.i32(i32 %150, i32 %152)
  store i32 %153, ptr %19, align 4, !tbaa !5
  %154 = load i32, ptr %3, align 4, !tbaa !5
  %155 = load i32, ptr %5, align 4, !tbaa !5
  %156 = add nsw i32 %.3325, -1
  %157 = add i32 %156, %154
  %158 = add i32 %157, %153
  %159 = sub i32 %158, %155
  %.301 = call i32 @llvm.smin.i32(i32 %159, i32 %154)
  store i32 %.301, ptr %21, align 4, !tbaa !5
  %.not281 = icmp slt i32 %.3325, %155
  %160 = add i32 %.3325, %154
  %reass.sub345 = sub i32 %155, %160
  %161 = add i32 %reass.sub345, 1
  %162 = add i32 %161, %.301
  %storemerge = select i1 %.not281, i32 %162, i32 0
  store i32 %storemerge, ptr %20, align 4, !tbaa !5
  %163 = add nsw i32 %.3325, %22
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds %struct.complex, ptr %24, i64 %164
  %166 = mul nsw i32 %.3325, %25
  %167 = sext i32 %166 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %167
  %168 = mul nsw i32 %.3325, %28
  %169 = sext i32 %168 to i64
  %gep322 = getelementptr %struct.complex, ptr %invariant.gep321, i64 %169
  call void @ctprfb_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %165, ptr noundef nonnull %8, ptr noundef %gep, ptr noundef nonnull %10, ptr noundef %gep322, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %2) #4
  %170 = sub i32 %.3325, %53
  %171 = icmp sgt i32 %170, 0
  br i1 %171, label %.lr.ph, label %.loopexit, !llvm.loop !13

.loopexit:                                        ; preds = %.lr.ph, %.lr.ph331, %.lr.ph339, %.lr.ph344, %145, %119, %144, %73, %.thread307
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  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 void @ctprfb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10}
!13 = distinct !{!13, !10}


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