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

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

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

146:                                              ; preds = %24
  %147 = load ptr, ptr %47, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  %149 = icmp eq i32 %148, -1
  br label %150

150:                                              ; preds = %146, %24
  %151 = phi i1 [ true, %24 ], [ %149, %146 ]
  %152 = zext i1 %151 to i32
  store i32 %152, ptr %84, align 4, !tbaa !9
  %153 = load ptr, ptr %25, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  %155 = icmp slt i32 %154, 0
  br i1 %155, label %160, label %156

156:                                              ; preds = %150
  %157 = load ptr, ptr %25, align 8, !tbaa !5
  %158 = load i32, ptr %157, align 4, !tbaa !9
  %159 = icmp sgt i32 %158, 5
  br i1 %159, label %160, label %162

160:                                              ; preds = %156, %150
  %161 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -1, ptr %161, align 4, !tbaa !9
  br label %235

162:                                              ; preds = %156
  %163 = load ptr, ptr %29, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = icmp slt i32 %164, 0
  br i1 %165, label %166, label %168

166:                                              ; preds = %162
  %167 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -5, ptr %167, align 4, !tbaa !9
  br label %234

168:                                              ; preds = %162
  %169 = load ptr, ptr %31, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = load ptr, ptr %29, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = icmp sge i32 1, %172
  br i1 %173, label %174, label %175

174:                                              ; preds = %168
  br label %178

175:                                              ; preds = %168
  %176 = load ptr, ptr %29, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %175, %174
  %179 = phi i32 [ 1, %174 ], [ %177, %175 ]
  %180 = icmp slt i32 %170, %179
  br i1 %180, label %181, label %183

181:                                              ; preds = %178
  %182 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -7, ptr %182, align 4, !tbaa !9
  br label %233

183:                                              ; preds = %178
  %184 = load ptr, ptr %33, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = load ptr, ptr %29, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = icmp sge i32 1, %187
  br i1 %188, label %189, label %190

189:                                              ; preds = %183
  br label %193

190:                                              ; preds = %183
  %191 = load ptr, ptr %29, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  br label %193

193:                                              ; preds = %190, %189
  %194 = phi i32 [ 1, %189 ], [ %192, %190 ]
  %195 = icmp slt i32 %185, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %193
  %197 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -9, ptr %197, align 4, !tbaa !9
  br label %232

198:                                              ; preds = %193
  %199 = load ptr, ptr %37, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = icmp slt i32 %200, 1
  br i1 %201, label %212, label %202

202:                                              ; preds = %198
  %203 = load ptr, ptr %26, align 8, !tbaa !5
  %204 = load i32, ptr %203, align 4, !tbaa !9
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %206, label %214

206:                                              ; preds = %202
  %207 = load ptr, ptr %37, align 8, !tbaa !5
  %208 = load i32, ptr %207, align 4, !tbaa !9
  %209 = load ptr, ptr %29, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = icmp slt i32 %208, %210
  br i1 %211, label %212, label %214

212:                                              ; preds = %206, %198
  %213 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -13, ptr %213, align 4, !tbaa !9
  br label %231

214:                                              ; preds = %206, %202
  %215 = load ptr, ptr %39, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = icmp slt i32 %216, 1
  br i1 %217, label %228, label %218

218:                                              ; preds = %214
  %219 = load ptr, ptr %27, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %230

222:                                              ; preds = %218
  %223 = load ptr, ptr %39, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = load ptr, ptr %29, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = icmp slt i32 %224, %226
  br i1 %227, label %228, label %230

228:                                              ; preds = %222, %214
  %229 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -15, ptr %229, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %228, %222, %218
  br label %231

231:                                              ; preds = %230, %212
  br label %232

232:                                              ; preds = %231, %196
  br label %233

233:                                              ; preds = %232, %181
  br label %234

234:                                              ; preds = %233, %166
  br label %235

235:                                              ; preds = %234, %160
  %236 = load ptr, ptr %48, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %244

239:                                              ; preds = %235
  %240 = load ptr, ptr %48, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = sub nsw i32 0, %241
  store i32 %242, ptr %57, align 4, !tbaa !9
  %243 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %57, i32 noundef 6)
  store i32 1, ptr %86, align 4
  br label %1512

244:                                              ; preds = %235
  store i32 0, ptr %63, align 4, !tbaa !9
  %245 = load ptr, ptr %25, align 8, !tbaa !5
  %246 = load i32, ptr %245, align 4, !tbaa !9
  %247 = icmp eq i32 %246, 1
  br i1 %247, label %252, label %248

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

252:                                              ; preds = %248, %244
  %253 = phi i1 [ true, %244 ], [ %251, %248 ]
  %254 = zext i1 %253 to i32
  store i32 %254, ptr %73, align 4, !tbaa !9
  %255 = load ptr, ptr %25, align 8, !tbaa !5
  %256 = load i32, ptr %255, align 4, !tbaa !9
  %257 = icmp eq i32 %256, 2
  br i1 %257, label %262, label %258

258:                                              ; preds = %252
  %259 = load ptr, ptr %25, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp eq i32 %260, 4
  br label %262

262:                                              ; preds = %258, %252
  %263 = phi i1 [ true, %252 ], [ %261, %258 ]
  %264 = zext i1 %263 to i32
  store i32 %264, ptr %76, align 4, !tbaa !9
  %265 = load ptr, ptr %25, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = icmp eq i32 %266, 3
  br i1 %267, label %272, label %268

268:                                              ; preds = %262
  %269 = load ptr, ptr %25, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = icmp eq i32 %270, 5
  br label %272

272:                                              ; preds = %268, %262
  %273 = phi i1 [ true, %262 ], [ %271, %268 ]
  %274 = zext i1 %273 to i32
  store i32 %274, ptr %77, align 4, !tbaa !9
  %275 = load i32, ptr %76, align 4, !tbaa !9
  %276 = icmp ne i32 %275, 0
  br i1 %276, label %280, label %277

277:                                              ; preds = %272
  %278 = load i32, ptr %77, align 4, !tbaa !9
  %279 = icmp ne i32 %278, 0
  br label %280

280:                                              ; preds = %277, %272
  %281 = phi i1 [ true, %272 ], [ %279, %277 ]
  %282 = zext i1 %281 to i32
  store i32 %282, ptr %71, align 4, !tbaa !9
  %283 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %283, align 4, !tbaa !9
  %284 = load i32, ptr %84, align 4, !tbaa !9
  %285 = icmp ne i32 %284, 0
  br i1 %285, label %286, label %290

286:                                              ; preds = %280
  %287 = load ptr, ptr %25, align 8, !tbaa !5
  %288 = load i32, ptr %287, align 4, !tbaa !9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %388

290:                                              ; preds = %286, %280
  %291 = load ptr, ptr %29, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  store i32 %292, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %384, %290
  %294 = load i32, ptr %69, align 4, !tbaa !9
  %295 = load i32, ptr %57, align 4, !tbaa !9
  %296 = icmp sle i32 %294, %295
  br i1 %296, label %297, label %387

297:                                              ; preds = %293
  %298 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %298, ptr %58, align 4, !tbaa !9
  %299 = load i32, ptr %69, align 4, !tbaa !9
  %300 = load i32, ptr %69, align 4, !tbaa !9
  %301 = load i32, ptr %49, align 4, !tbaa !9
  %302 = mul nsw i32 %300, %301
  %303 = add nsw i32 %299, %302
  store i32 %303, ptr %59, align 4, !tbaa !9
  %304 = load ptr, ptr %30, align 8, !tbaa !5
  %305 = load i32, ptr %59, align 4, !tbaa !9
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds %struct.complex, ptr %304, i64 %306
  %308 = getelementptr inbounds %struct.complex, ptr %307, i32 0, i32 0
  %309 = load float, ptr %308, align 4, !tbaa !11
  %310 = load ptr, ptr %34, align 8, !tbaa !5
  %311 = load i32, ptr %58, align 4, !tbaa !9
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds %struct.complex, ptr %310, i64 %312
  %314 = getelementptr inbounds %struct.complex, ptr %313, i32 0, i32 0
  store float %309, ptr %314, align 4, !tbaa !11
  %315 = load ptr, ptr %30, align 8, !tbaa !5
  %316 = load i32, ptr %59, align 4, !tbaa !9
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds %struct.complex, ptr %315, i64 %317
  %319 = getelementptr inbounds %struct.complex, ptr %318, i32 0, i32 1
  %320 = load float, ptr %319, align 4, !tbaa !14
  %321 = load ptr, ptr %34, align 8, !tbaa !5
  %322 = load i32, ptr %58, align 4, !tbaa !9
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds %struct.complex, ptr %321, i64 %323
  %325 = getelementptr inbounds %struct.complex, ptr %324, i32 0, i32 1
  store float %320, ptr %325, align 4, !tbaa !14
  %326 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %326, ptr %58, align 4, !tbaa !9
  %327 = load i32, ptr %69, align 4, !tbaa !9
  %328 = load i32, ptr %69, align 4, !tbaa !9
  %329 = load i32, ptr %51, align 4, !tbaa !9
  %330 = mul nsw i32 %328, %329
  %331 = add nsw i32 %327, %330
  store i32 %331, ptr %59, align 4, !tbaa !9
  %332 = load ptr, ptr %32, align 8, !tbaa !5
  %333 = load i32, ptr %59, align 4, !tbaa !9
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds %struct.complex, ptr %332, i64 %334
  %336 = getelementptr inbounds %struct.complex, ptr %335, i32 0, i32 0
  %337 = load float, ptr %336, align 4, !tbaa !11
  %338 = load ptr, ptr %35, align 8, !tbaa !5
  %339 = load i32, ptr %58, align 4, !tbaa !9
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds %struct.complex, ptr %338, i64 %340
  %342 = getelementptr inbounds %struct.complex, ptr %341, i32 0, i32 0
  store float %337, ptr %342, align 4, !tbaa !11
  %343 = load ptr, ptr %32, align 8, !tbaa !5
  %344 = load i32, ptr %59, align 4, !tbaa !9
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds %struct.complex, ptr %343, i64 %345
  %347 = getelementptr inbounds %struct.complex, ptr %346, i32 0, i32 1
  %348 = load float, ptr %347, align 4, !tbaa !14
  %349 = load ptr, ptr %35, align 8, !tbaa !5
  %350 = load i32, ptr %58, align 4, !tbaa !9
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds %struct.complex, ptr %349, i64 %351
  %353 = getelementptr inbounds %struct.complex, ptr %352, i32 0, i32 1
  store float %348, ptr %353, align 4, !tbaa !14
  %354 = load i32, ptr %69, align 4, !tbaa !9
  %355 = load ptr, ptr %29, align 8, !tbaa !5
  %356 = load i32, ptr %355, align 4, !tbaa !9
  %357 = icmp slt i32 %354, %356
  br i1 %357, label %358, label %370

358:                                              ; preds = %297
  %359 = load ptr, ptr %28, align 8, !tbaa !5
  %360 = load i32, ptr %69, align 4, !tbaa !9
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds i32, ptr %359, i64 %361
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = icmp ne i32 %363, 0
  br i1 %364, label %365, label %369

365:                                              ; preds = %358
  %366 = load ptr, ptr %40, align 8, !tbaa !5
  %367 = load i32, ptr %366, align 4, !tbaa !9
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr %366, align 4, !tbaa !9
  br label %369

369:                                              ; preds = %365, %358
  br label %383

370:                                              ; preds = %297
  %371 = load ptr, ptr %28, align 8, !tbaa !5
  %372 = load ptr, ptr %29, align 8, !tbaa !5
  %373 = load i32, ptr %372, align 4, !tbaa !9
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds i32, ptr %371, i64 %374
  %376 = load i32, ptr %375, align 4, !tbaa !9
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %382

378:                                              ; preds = %370
  %379 = load ptr, ptr %40, align 8, !tbaa !5
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = add nsw i32 %380, 1
  store i32 %381, ptr %379, align 4, !tbaa !9
  br label %382

382:                                              ; preds = %378, %370
  br label %383

383:                                              ; preds = %382, %369
  br label %384

384:                                              ; preds = %383
  %385 = load i32, ptr %69, align 4, !tbaa !9
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr %69, align 4, !tbaa !9
  br label %293, !llvm.loop !15

387:                                              ; preds = %293
  br label %388

388:                                              ; preds = %387, %286
  %389 = load ptr, ptr %25, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = icmp eq i32 %390, 1
  br i1 %391, label %400, label %392

392:                                              ; preds = %388
  %393 = load ptr, ptr %25, align 8, !tbaa !5
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = icmp eq i32 %394, 2
  br i1 %395, label %400, label %396

396:                                              ; preds = %392
  %397 = load ptr, ptr %25, align 8, !tbaa !5
  %398 = load i32, ptr %397, align 4, !tbaa !9
  %399 = icmp eq i32 %398, 4
  br i1 %399, label %400, label %431

400:                                              ; preds = %396, %392, %388
  store i32 1, ptr %57, align 4, !tbaa !9
  %401 = load ptr, ptr %40, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = shl i32 %402, 1
  %404 = load ptr, ptr %29, align 8, !tbaa !5
  %405 = load i32, ptr %404, align 4, !tbaa !9
  %406 = load ptr, ptr %40, align 8, !tbaa !5
  %407 = load i32, ptr %406, align 4, !tbaa !9
  %408 = sub nsw i32 %405, %407
  %409 = mul nsw i32 %403, %408
  store i32 %409, ptr %58, align 4, !tbaa !9
  %410 = load i32, ptr %57, align 4, !tbaa !9
  %411 = load i32, ptr %58, align 4, !tbaa !9
  %412 = icmp sge i32 %410, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %400
  %414 = load i32, ptr %57, align 4, !tbaa !9
  br label %417

415:                                              ; preds = %400
  %416 = load i32, ptr %58, align 4, !tbaa !9
  br label %417

417:                                              ; preds = %415, %413
  %418 = phi i32 [ %414, %413 ], [ %416, %415 ]
  store i32 %418, ptr %72, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  %419 = load ptr, ptr %29, align 8, !tbaa !5
  %420 = load i32, ptr %419, align 4, !tbaa !9
  %421 = add nsw i32 %420, 2
  store i32 %421, ptr %58, align 4, !tbaa !9
  %422 = load i32, ptr %57, align 4, !tbaa !9
  %423 = load i32, ptr %58, align 4, !tbaa !9
  %424 = icmp sge i32 %422, %423
  br i1 %424, label %425, label %427

425:                                              ; preds = %417
  %426 = load i32, ptr %57, align 4, !tbaa !9
  br label %429

427:                                              ; preds = %417
  %428 = load i32, ptr %58, align 4, !tbaa !9
  br label %429

429:                                              ; preds = %427, %425
  %430 = phi i32 [ %426, %425 ], [ %428, %427 ]
  store i32 %430, ptr %82, align 4, !tbaa !9
  br label %490

431:                                              ; preds = %396
  %432 = load ptr, ptr %25, align 8, !tbaa !5
  %433 = load i32, ptr %432, align 4, !tbaa !9
  %434 = icmp eq i32 %433, 3
  br i1 %434, label %439, label %435

435:                                              ; preds = %431
  %436 = load ptr, ptr %25, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = icmp eq i32 %437, 5
  br i1 %438, label %439, label %488

439:                                              ; preds = %435, %431
  store i32 1, ptr %57, align 4, !tbaa !9
  %440 = load ptr, ptr %40, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = shl i32 %441, 2
  %443 = load ptr, ptr %29, align 8, !tbaa !5
  %444 = load i32, ptr %443, align 4, !tbaa !9
  %445 = load ptr, ptr %40, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = sub nsw i32 %444, %446
  %448 = mul nsw i32 %442, %447
  store i32 %448, ptr %58, align 4, !tbaa !9
  %449 = load i32, ptr %57, align 4, !tbaa !9
  %450 = load i32, ptr %58, align 4, !tbaa !9
  %451 = icmp sge i32 %449, %450
  br i1 %451, label %452, label %454

452:                                              ; preds = %439
  %453 = load i32, ptr %57, align 4, !tbaa !9
  br label %456

454:                                              ; preds = %439
  %455 = load i32, ptr %58, align 4, !tbaa !9
  br label %456

456:                                              ; preds = %454, %452
  %457 = phi i32 [ %453, %452 ], [ %455, %454 ]
  store i32 %457, ptr %72, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  %458 = load ptr, ptr %40, align 8, !tbaa !5
  %459 = load i32, ptr %458, align 4, !tbaa !9
  %460 = shl i32 %459, 1
  %461 = load ptr, ptr %29, align 8, !tbaa !5
  %462 = load i32, ptr %461, align 4, !tbaa !9
  %463 = load ptr, ptr %40, align 8, !tbaa !5
  %464 = load i32, ptr %463, align 4, !tbaa !9
  %465 = sub nsw i32 %462, %464
  %466 = mul nsw i32 %460, %465
  store i32 %466, ptr %58, align 4, !tbaa !9
  %467 = load i32, ptr %57, align 4, !tbaa !9
  %468 = load i32, ptr %58, align 4, !tbaa !9
  %469 = icmp sge i32 %467, %468
  br i1 %469, label %470, label %472

470:                                              ; preds = %456
  %471 = load i32, ptr %57, align 4, !tbaa !9
  br label %474

472:                                              ; preds = %456
  %473 = load i32, ptr %58, align 4, !tbaa !9
  br label %474

474:                                              ; preds = %472, %470
  %475 = phi i32 [ %471, %470 ], [ %473, %472 ]
  store i32 %475, ptr %57, align 4, !tbaa !9
  %476 = load ptr, ptr %29, align 8, !tbaa !5
  %477 = load i32, ptr %476, align 4, !tbaa !9
  %478 = add nsw i32 %477, 2
  store i32 %478, ptr %58, align 4, !tbaa !9
  %479 = load i32, ptr %57, align 4, !tbaa !9
  %480 = load i32, ptr %58, align 4, !tbaa !9
  %481 = icmp sge i32 %479, %480
  br i1 %481, label %482, label %484

482:                                              ; preds = %474
  %483 = load i32, ptr %57, align 4, !tbaa !9
  br label %486

484:                                              ; preds = %474
  %485 = load i32, ptr %58, align 4, !tbaa !9
  br label %486

486:                                              ; preds = %484, %482
  %487 = phi i32 [ %483, %482 ], [ %485, %484 ]
  store i32 %487, ptr %82, align 4, !tbaa !9
  br label %489

488:                                              ; preds = %435
  store i32 1, ptr %72, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %489

489:                                              ; preds = %488, %486
  br label %490

490:                                              ; preds = %489, %429
  %491 = load i32, ptr %72, align 4, !tbaa !9
  %492 = sitofp i32 %491 to float
  %493 = load ptr, ptr %44, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.complex, ptr %493, i64 1
  %495 = getelementptr inbounds %struct.complex, ptr %494, i32 0, i32 0
  store float %492, ptr %495, align 4, !tbaa !11
  %496 = load ptr, ptr %44, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.complex, ptr %496, i64 1
  %498 = getelementptr inbounds %struct.complex, ptr %497, i32 0, i32 1
  store float 0.000000e+00, ptr %498, align 4, !tbaa !14
  %499 = load i32, ptr %82, align 4, !tbaa !9
  %500 = load ptr, ptr %46, align 8, !tbaa !5
  %501 = getelementptr inbounds i32, ptr %500, i64 1
  store i32 %499, ptr %501, align 4, !tbaa !9
  %502 = load ptr, ptr %45, align 8, !tbaa !5
  %503 = load i32, ptr %502, align 4, !tbaa !9
  %504 = load i32, ptr %72, align 4, !tbaa !9
  %505 = icmp slt i32 %503, %504
  br i1 %505, label %506, label %511

506:                                              ; preds = %490
  %507 = load i32, ptr %84, align 4, !tbaa !9
  %508 = icmp ne i32 %507, 0
  br i1 %508, label %511, label %509

509:                                              ; preds = %506
  %510 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -21, ptr %510, align 4, !tbaa !9
  br label %522

511:                                              ; preds = %506, %490
  %512 = load ptr, ptr %47, align 8, !tbaa !5
  %513 = load i32, ptr %512, align 4, !tbaa !9
  %514 = load i32, ptr %82, align 4, !tbaa !9
  %515 = icmp slt i32 %513, %514
  br i1 %515, label %516, label %521

516:                                              ; preds = %511
  %517 = load i32, ptr %84, align 4, !tbaa !9
  %518 = icmp ne i32 %517, 0
  br i1 %518, label %521, label %519

519:                                              ; preds = %516
  %520 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -23, ptr %520, align 4, !tbaa !9
  br label %521

521:                                              ; preds = %519, %516, %511
  br label %522

522:                                              ; preds = %521, %509
  %523 = load ptr, ptr %48, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !9
  %525 = icmp ne i32 %524, 0
  br i1 %525, label %526, label %531

526:                                              ; preds = %522
  %527 = load ptr, ptr %48, align 8, !tbaa !5
  %528 = load i32, ptr %527, align 4, !tbaa !9
  %529 = sub nsw i32 0, %528
  store i32 %529, ptr %57, align 4, !tbaa !9
  %530 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %57, i32 noundef 6)
  store i32 1, ptr %86, align 4
  br label %1512

531:                                              ; preds = %522
  %532 = load i32, ptr %84, align 4, !tbaa !9
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %534, label %535

534:                                              ; preds = %531
  store i32 1, ptr %86, align 4
  br label %1512

535:                                              ; preds = %531
  br label %536

536:                                              ; preds = %535
  %537 = load ptr, ptr %40, align 8, !tbaa !5
  %538 = load i32, ptr %537, align 4, !tbaa !9
  %539 = load ptr, ptr %29, align 8, !tbaa !5
  %540 = load i32, ptr %539, align 4, !tbaa !9
  %541 = icmp eq i32 %538, %540
  br i1 %541, label %546, label %542

542:                                              ; preds = %536
  %543 = load ptr, ptr %40, align 8, !tbaa !5
  %544 = load i32, ptr %543, align 4, !tbaa !9
  %545 = icmp eq i32 %544, 0
  br i1 %545, label %546, label %598

546:                                              ; preds = %542, %536
  %547 = load i32, ptr %73, align 4, !tbaa !9
  %548 = icmp ne i32 %547, 0
  br i1 %548, label %549, label %552

549:                                              ; preds = %546
  %550 = load ptr, ptr %41, align 8, !tbaa !5
  store float 1.000000e+00, ptr %550, align 4, !tbaa !17
  %551 = load ptr, ptr %42, align 8, !tbaa !5
  store float 1.000000e+00, ptr %551, align 4, !tbaa !17
  br label %552

552:                                              ; preds = %549, %546
  %553 = load i32, ptr %71, align 4, !tbaa !9
  %554 = icmp ne i32 %553, 0
  br i1 %554, label %555, label %597

555:                                              ; preds = %552
  store float 0.000000e+00, ptr %78, align 4, !tbaa !17
  store float 1.000000e+00, ptr %64, align 4, !tbaa !17
  %556 = load ptr, ptr %29, align 8, !tbaa !5
  %557 = load i32, ptr %556, align 4, !tbaa !9
  store i32 %557, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %558

558:                                              ; preds = %579, %555
  %559 = load i32, ptr %68, align 4, !tbaa !9
  %560 = load i32, ptr %57, align 4, !tbaa !9
  %561 = icmp sle i32 %559, %560
  br i1 %561, label %562, label %582

562:                                              ; preds = %558
  %563 = load ptr, ptr %29, align 8, !tbaa !5
  %564 = load ptr, ptr %30, align 8, !tbaa !5
  %565 = load i32, ptr %68, align 4, !tbaa !9
  %566 = load i32, ptr %49, align 4, !tbaa !9
  %567 = mul nsw i32 %565, %566
  %568 = add nsw i32 %567, 1
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds %struct.complex, ptr %564, i64 %569
  call void @classq_(ptr noundef %563, ptr noundef %570, ptr noundef @c__1, ptr noundef %78, ptr noundef %64)
  %571 = load ptr, ptr %29, align 8, !tbaa !5
  %572 = load ptr, ptr %32, align 8, !tbaa !5
  %573 = load i32, ptr %68, align 4, !tbaa !9
  %574 = load i32, ptr %51, align 4, !tbaa !9
  %575 = mul nsw i32 %573, %574
  %576 = add nsw i32 %575, 1
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds %struct.complex, ptr %572, i64 %577
  call void @classq_(ptr noundef %571, ptr noundef %578, ptr noundef @c__1, ptr noundef %78, ptr noundef %64)
  br label %579

579:                                              ; preds = %562
  %580 = load i32, ptr %68, align 4, !tbaa !9
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr %68, align 4, !tbaa !9
  br label %558, !llvm.loop !18

582:                                              ; preds = %558
  %583 = load float, ptr %78, align 4, !tbaa !17
  %584 = fpext float %583 to double
  %585 = load float, ptr %64, align 4, !tbaa !17
  %586 = fpext float %585 to double
  %587 = call double @sqrt(double noundef %586) #6
  %588 = fmul double %584, %587
  %589 = fptrunc double %588 to float
  %590 = load ptr, ptr %43, align 8, !tbaa !5
  %591 = getelementptr inbounds float, ptr %590, i64 1
  store float %589, ptr %591, align 4, !tbaa !17
  %592 = load ptr, ptr %43, align 8, !tbaa !5
  %593 = getelementptr inbounds float, ptr %592, i64 1
  %594 = load float, ptr %593, align 4, !tbaa !17
  %595 = load ptr, ptr %43, align 8, !tbaa !5
  %596 = getelementptr inbounds float, ptr %595, i64 2
  store float %594, ptr %596, align 4, !tbaa !17
  br label %597

597:                                              ; preds = %582, %552
  br label %1500

598:                                              ; preds = %542
  %599 = call float @slamch_(ptr noundef @.str.1)
  store float %599, ptr %81, align 4, !tbaa !17
  store i32 0, ptr %79, align 4, !tbaa !9
  %600 = load ptr, ptr %29, align 8, !tbaa !5
  %601 = load i32, ptr %600, align 4, !tbaa !9
  store i32 %601, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %602

602:                                              ; preds = %665, %598
  %603 = load i32, ptr %69, align 4, !tbaa !9
  %604 = load i32, ptr %57, align 4, !tbaa !9
  %605 = icmp sle i32 %603, %604
  br i1 %605, label %606, label %668

606:                                              ; preds = %602
  %607 = load ptr, ptr %28, align 8, !tbaa !5
  %608 = load i32, ptr %69, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds i32, ptr %607, i64 %609
  %611 = load i32, ptr %610, align 4, !tbaa !9
  store i32 %611, ptr %65, align 4, !tbaa !9
  %612 = load i32, ptr %65, align 4, !tbaa !9
  %613 = icmp ne i32 %612, 0
  br i1 %613, label %614, label %664

614:                                              ; preds = %606
  %615 = load i32, ptr %79, align 4, !tbaa !9
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr %79, align 4, !tbaa !9
  %617 = load i32, ptr %69, align 4, !tbaa !9
  %618 = load i32, ptr %79, align 4, !tbaa !9
  %619 = icmp ne i32 %617, %618
  br i1 %619, label %620, label %644

620:                                              ; preds = %614
  %621 = load ptr, ptr %26, align 8, !tbaa !5
  %622 = load ptr, ptr %27, align 8, !tbaa !5
  %623 = load ptr, ptr %29, align 8, !tbaa !5
  %624 = load ptr, ptr %30, align 8, !tbaa !5
  %625 = load i32, ptr %50, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds %struct.complex, ptr %624, i64 %626
  %628 = load ptr, ptr %31, align 8, !tbaa !5
  %629 = load ptr, ptr %32, align 8, !tbaa !5
  %630 = load i32, ptr %52, align 4, !tbaa !9
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds %struct.complex, ptr %629, i64 %631
  %633 = load ptr, ptr %33, align 8, !tbaa !5
  %634 = load ptr, ptr %36, align 8, !tbaa !5
  %635 = load i32, ptr %54, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds %struct.complex, ptr %634, i64 %636
  %638 = load ptr, ptr %37, align 8, !tbaa !5
  %639 = load ptr, ptr %38, align 8, !tbaa !5
  %640 = load i32, ptr %56, align 4, !tbaa !9
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds %struct.complex, ptr %639, i64 %641
  %643 = load ptr, ptr %39, align 8, !tbaa !5
  call void @ctgexc_(ptr noundef %621, ptr noundef %622, ptr noundef %623, ptr noundef %627, ptr noundef %628, ptr noundef %632, ptr noundef %633, ptr noundef %637, ptr noundef %638, ptr noundef %642, ptr noundef %643, ptr noundef %69, ptr noundef %79, ptr noundef %63)
  br label %644

644:                                              ; preds = %620, %614
  %645 = load i32, ptr %63, align 4, !tbaa !9
  %646 = icmp sgt i32 %645, 0
  br i1 %646, label %647, label %663

647:                                              ; preds = %644
  %648 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 1, ptr %648, align 4, !tbaa !9
  %649 = load i32, ptr %73, align 4, !tbaa !9
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %654

651:                                              ; preds = %647
  %652 = load ptr, ptr %41, align 8, !tbaa !5
  store float 0.000000e+00, ptr %652, align 4, !tbaa !17
  %653 = load ptr, ptr %42, align 8, !tbaa !5
  store float 0.000000e+00, ptr %653, align 4, !tbaa !17
  br label %654

654:                                              ; preds = %651, %647
  %655 = load i32, ptr %71, align 4, !tbaa !9
  %656 = icmp ne i32 %655, 0
  br i1 %656, label %657, label %662

657:                                              ; preds = %654
  %658 = load ptr, ptr %43, align 8, !tbaa !5
  %659 = getelementptr inbounds float, ptr %658, i64 1
  store float 0.000000e+00, ptr %659, align 4, !tbaa !17
  %660 = load ptr, ptr %43, align 8, !tbaa !5
  %661 = getelementptr inbounds float, ptr %660, i64 2
  store float 0.000000e+00, ptr %661, align 4, !tbaa !17
  br label %662

662:                                              ; preds = %657, %654
  br label %1500

663:                                              ; preds = %644
  br label %664

664:                                              ; preds = %663, %606
  br label %665

665:                                              ; preds = %664
  %666 = load i32, ptr %69, align 4, !tbaa !9
  %667 = add nsw i32 %666, 1
  store i32 %667, ptr %69, align 4, !tbaa !9
  br label %602, !llvm.loop !19

668:                                              ; preds = %602
  %669 = load i32, ptr %73, align 4, !tbaa !9
  %670 = icmp ne i32 %669, 0
  br i1 %670, label %671, label %849

671:                                              ; preds = %668
  %672 = load ptr, ptr %40, align 8, !tbaa !5
  %673 = load i32, ptr %672, align 4, !tbaa !9
  store i32 %673, ptr %74, align 4, !tbaa !9
  %674 = load ptr, ptr %29, align 8, !tbaa !5
  %675 = load i32, ptr %674, align 4, !tbaa !9
  %676 = load ptr, ptr %40, align 8, !tbaa !5
  %677 = load i32, ptr %676, align 4, !tbaa !9
  %678 = sub nsw i32 %675, %677
  store i32 %678, ptr %75, align 4, !tbaa !9
  %679 = load i32, ptr %74, align 4, !tbaa !9
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr %68, align 4, !tbaa !9
  %681 = load ptr, ptr %30, align 8, !tbaa !5
  %682 = load i32, ptr %68, align 4, !tbaa !9
  %683 = load i32, ptr %49, align 4, !tbaa !9
  %684 = mul nsw i32 %682, %683
  %685 = add nsw i32 %684, 1
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds %struct.complex, ptr %681, i64 %686
  %688 = load ptr, ptr %31, align 8, !tbaa !5
  %689 = load ptr, ptr %44, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.complex, ptr %689, i64 1
  call void @clacpy_(ptr noundef @.str.2, ptr noundef %74, ptr noundef %75, ptr noundef %687, ptr noundef %688, ptr noundef %690, ptr noundef %74)
  %691 = load ptr, ptr %32, align 8, !tbaa !5
  %692 = load i32, ptr %68, align 4, !tbaa !9
  %693 = load i32, ptr %51, align 4, !tbaa !9
  %694 = mul nsw i32 %692, %693
  %695 = add nsw i32 %694, 1
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds %struct.complex, ptr %691, i64 %696
  %698 = load ptr, ptr %33, align 8, !tbaa !5
  %699 = load ptr, ptr %44, align 8, !tbaa !5
  %700 = load i32, ptr %74, align 4, !tbaa !9
  %701 = load i32, ptr %75, align 4, !tbaa !9
  %702 = mul nsw i32 %700, %701
  %703 = add nsw i32 %702, 1
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds %struct.complex, ptr %699, i64 %704
  call void @clacpy_(ptr noundef @.str.2, ptr noundef %74, ptr noundef %75, ptr noundef %697, ptr noundef %698, ptr noundef %705, ptr noundef %74)
  store i32 0, ptr %85, align 4, !tbaa !9
  %706 = load ptr, ptr %45, align 8, !tbaa !5
  %707 = load i32, ptr %706, align 4, !tbaa !9
  %708 = load i32, ptr %74, align 4, !tbaa !9
  %709 = shl i32 %708, 1
  %710 = load i32, ptr %75, align 4, !tbaa !9
  %711 = mul nsw i32 %709, %710
  %712 = sub nsw i32 %707, %711
  store i32 %712, ptr %57, align 4, !tbaa !9
  %713 = load ptr, ptr %30, align 8, !tbaa !5
  %714 = load i32, ptr %50, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds %struct.complex, ptr %713, i64 %715
  %717 = load ptr, ptr %31, align 8, !tbaa !5
  %718 = load ptr, ptr %30, align 8, !tbaa !5
  %719 = load i32, ptr %68, align 4, !tbaa !9
  %720 = load i32, ptr %68, align 4, !tbaa !9
  %721 = load i32, ptr %49, align 4, !tbaa !9
  %722 = mul nsw i32 %720, %721
  %723 = add nsw i32 %719, %722
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds %struct.complex, ptr %718, i64 %724
  %726 = load ptr, ptr %31, align 8, !tbaa !5
  %727 = load ptr, ptr %44, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.complex, ptr %727, i64 1
  %729 = load ptr, ptr %32, align 8, !tbaa !5
  %730 = load i32, ptr %52, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds %struct.complex, ptr %729, i64 %731
  %733 = load ptr, ptr %33, align 8, !tbaa !5
  %734 = load ptr, ptr %32, align 8, !tbaa !5
  %735 = load i32, ptr %68, align 4, !tbaa !9
  %736 = load i32, ptr %68, align 4, !tbaa !9
  %737 = load i32, ptr %51, align 4, !tbaa !9
  %738 = mul nsw i32 %736, %737
  %739 = add nsw i32 %735, %738
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds %struct.complex, ptr %734, i64 %740
  %742 = load ptr, ptr %33, align 8, !tbaa !5
  %743 = load ptr, ptr %44, align 8, !tbaa !5
  %744 = load i32, ptr %74, align 4, !tbaa !9
  %745 = load i32, ptr %75, align 4, !tbaa !9
  %746 = mul nsw i32 %744, %745
  %747 = add nsw i32 %746, 1
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds %struct.complex, ptr %743, i64 %748
  %750 = load ptr, ptr %43, align 8, !tbaa !5
  %751 = getelementptr inbounds float, ptr %750, i64 1
  %752 = load ptr, ptr %44, align 8, !tbaa !5
  %753 = load i32, ptr %74, align 4, !tbaa !9
  %754 = load i32, ptr %75, align 4, !tbaa !9
  %755 = mul nsw i32 %753, %754
  %756 = shl i32 %755, 1
  %757 = add nsw i32 %756, 1
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds %struct.complex, ptr %752, i64 %758
  %760 = load ptr, ptr %46, align 8, !tbaa !5
  %761 = getelementptr inbounds i32, ptr %760, i64 1
  call void @ctgsyl_(ptr noundef @.str.3, ptr noundef %85, ptr noundef %74, ptr noundef %75, ptr noundef %716, ptr noundef %717, ptr noundef %725, ptr noundef %726, ptr noundef %728, ptr noundef %74, ptr noundef %732, ptr noundef %733, ptr noundef %741, ptr noundef %742, ptr noundef %749, ptr noundef %74, ptr noundef %78, ptr noundef %751, ptr noundef %759, ptr noundef %57, ptr noundef %761, ptr noundef %63)
  store float 0.000000e+00, ptr %80, align 4, !tbaa !17
  store float 1.000000e+00, ptr %64, align 4, !tbaa !17
  %762 = load i32, ptr %74, align 4, !tbaa !9
  %763 = load i32, ptr %75, align 4, !tbaa !9
  %764 = mul nsw i32 %762, %763
  store i32 %764, ptr %57, align 4, !tbaa !9
  %765 = load ptr, ptr %44, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.complex, ptr %765, i64 1
  call void @classq_(ptr noundef %57, ptr noundef %766, ptr noundef @c__1, ptr noundef %80, ptr noundef %64)
  %767 = load float, ptr %80, align 4, !tbaa !17
  %768 = fpext float %767 to double
  %769 = load float, ptr %64, align 4, !tbaa !17
  %770 = fpext float %769 to double
  %771 = call double @sqrt(double noundef %770) #6
  %772 = fmul double %768, %771
  %773 = fptrunc double %772 to float
  %774 = load ptr, ptr %41, align 8, !tbaa !5
  store float %773, ptr %774, align 4, !tbaa !17
  %775 = load ptr, ptr %41, align 8, !tbaa !5
  %776 = load float, ptr %775, align 4, !tbaa !17
  %777 = fcmp oeq float %776, 0.000000e+00
  br i1 %777, label %778, label %780

778:                                              ; preds = %671
  %779 = load ptr, ptr %41, align 8, !tbaa !5
  store float 1.000000e+00, ptr %779, align 4, !tbaa !17
  br label %802

780:                                              ; preds = %671
  %781 = load float, ptr %78, align 4, !tbaa !17
  %782 = fpext float %781 to double
  %783 = load float, ptr %78, align 4, !tbaa !17
  %784 = load float, ptr %78, align 4, !tbaa !17
  %785 = fmul float %783, %784
  %786 = load ptr, ptr %41, align 8, !tbaa !5
  %787 = load float, ptr %786, align 4, !tbaa !17
  %788 = fdiv float %785, %787
  %789 = load ptr, ptr %41, align 8, !tbaa !5
  %790 = load float, ptr %789, align 4, !tbaa !17
  %791 = fadd float %788, %790
  %792 = fpext float %791 to double
  %793 = call double @sqrt(double noundef %792) #6
  %794 = load ptr, ptr %41, align 8, !tbaa !5
  %795 = load float, ptr %794, align 4, !tbaa !17
  %796 = fpext float %795 to double
  %797 = call double @sqrt(double noundef %796) #6
  %798 = fmul double %793, %797
  %799 = fdiv double %782, %798
  %800 = fptrunc double %799 to float
  %801 = load ptr, ptr %41, align 8, !tbaa !5
  store float %800, ptr %801, align 4, !tbaa !17
  br label %802

802:                                              ; preds = %780, %778
  store float 0.000000e+00, ptr %80, align 4, !tbaa !17
  store float 1.000000e+00, ptr %64, align 4, !tbaa !17
  %803 = load i32, ptr %74, align 4, !tbaa !9
  %804 = load i32, ptr %75, align 4, !tbaa !9
  %805 = mul nsw i32 %803, %804
  store i32 %805, ptr %57, align 4, !tbaa !9
  %806 = load ptr, ptr %44, align 8, !tbaa !5
  %807 = load i32, ptr %74, align 4, !tbaa !9
  %808 = load i32, ptr %75, align 4, !tbaa !9
  %809 = mul nsw i32 %807, %808
  %810 = add nsw i32 %809, 1
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds %struct.complex, ptr %806, i64 %811
  call void @classq_(ptr noundef %57, ptr noundef %812, ptr noundef @c__1, ptr noundef %80, ptr noundef %64)
  %813 = load float, ptr %80, align 4, !tbaa !17
  %814 = fpext float %813 to double
  %815 = load float, ptr %64, align 4, !tbaa !17
  %816 = fpext float %815 to double
  %817 = call double @sqrt(double noundef %816) #6
  %818 = fmul double %814, %817
  %819 = fptrunc double %818 to float
  %820 = load ptr, ptr %42, align 8, !tbaa !5
  store float %819, ptr %820, align 4, !tbaa !17
  %821 = load ptr, ptr %42, align 8, !tbaa !5
  %822 = load float, ptr %821, align 4, !tbaa !17
  %823 = fcmp oeq float %822, 0.000000e+00
  br i1 %823, label %824, label %826

824:                                              ; preds = %802
  %825 = load ptr, ptr %42, align 8, !tbaa !5
  store float 1.000000e+00, ptr %825, align 4, !tbaa !17
  br label %848

826:                                              ; preds = %802
  %827 = load float, ptr %78, align 4, !tbaa !17
  %828 = fpext float %827 to double
  %829 = load float, ptr %78, align 4, !tbaa !17
  %830 = load float, ptr %78, align 4, !tbaa !17
  %831 = fmul float %829, %830
  %832 = load ptr, ptr %42, align 8, !tbaa !5
  %833 = load float, ptr %832, align 4, !tbaa !17
  %834 = fdiv float %831, %833
  %835 = load ptr, ptr %42, align 8, !tbaa !5
  %836 = load float, ptr %835, align 4, !tbaa !17
  %837 = fadd float %834, %836
  %838 = fpext float %837 to double
  %839 = call double @sqrt(double noundef %838) #6
  %840 = load ptr, ptr %42, align 8, !tbaa !5
  %841 = load float, ptr %840, align 4, !tbaa !17
  %842 = fpext float %841 to double
  %843 = call double @sqrt(double noundef %842) #6
  %844 = fmul double %839, %843
  %845 = fdiv double %828, %844
  %846 = fptrunc double %845 to float
  %847 = load ptr, ptr %42, align 8, !tbaa !5
  store float %846, ptr %847, align 4, !tbaa !17
  br label %848

848:                                              ; preds = %826, %824
  br label %849

849:                                              ; preds = %848, %668
  %850 = load i32, ptr %71, align 4, !tbaa !9
  %851 = icmp ne i32 %850, 0
  br i1 %851, label %852, label %1270

852:                                              ; preds = %849
  %853 = load i32, ptr %76, align 4, !tbaa !9
  %854 = icmp ne i32 %853, 0
  br i1 %854, label %855, label %977

855:                                              ; preds = %852
  %856 = load ptr, ptr %40, align 8, !tbaa !5
  %857 = load i32, ptr %856, align 4, !tbaa !9
  store i32 %857, ptr %74, align 4, !tbaa !9
  %858 = load ptr, ptr %29, align 8, !tbaa !5
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = load ptr, ptr %40, align 8, !tbaa !5
  %861 = load i32, ptr %860, align 4, !tbaa !9
  %862 = sub nsw i32 %859, %861
  store i32 %862, ptr %75, align 4, !tbaa !9
  %863 = load i32, ptr %74, align 4, !tbaa !9
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr %68, align 4, !tbaa !9
  store i32 3, ptr %85, align 4, !tbaa !9
  %865 = load ptr, ptr %45, align 8, !tbaa !5
  %866 = load i32, ptr %865, align 4, !tbaa !9
  %867 = load i32, ptr %74, align 4, !tbaa !9
  %868 = shl i32 %867, 1
  %869 = load i32, ptr %75, align 4, !tbaa !9
  %870 = mul nsw i32 %868, %869
  %871 = sub nsw i32 %866, %870
  store i32 %871, ptr %57, align 4, !tbaa !9
  %872 = load ptr, ptr %30, align 8, !tbaa !5
  %873 = load i32, ptr %50, align 4, !tbaa !9
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds %struct.complex, ptr %872, i64 %874
  %876 = load ptr, ptr %31, align 8, !tbaa !5
  %877 = load ptr, ptr %30, align 8, !tbaa !5
  %878 = load i32, ptr %68, align 4, !tbaa !9
  %879 = load i32, ptr %68, align 4, !tbaa !9
  %880 = load i32, ptr %49, align 4, !tbaa !9
  %881 = mul nsw i32 %879, %880
  %882 = add nsw i32 %878, %881
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds %struct.complex, ptr %877, i64 %883
  %885 = load ptr, ptr %31, align 8, !tbaa !5
  %886 = load ptr, ptr %44, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.complex, ptr %886, i64 1
  %888 = load ptr, ptr %32, align 8, !tbaa !5
  %889 = load i32, ptr %52, align 4, !tbaa !9
  %890 = sext i32 %889 to i64
  %891 = getelementptr inbounds %struct.complex, ptr %888, i64 %890
  %892 = load ptr, ptr %33, align 8, !tbaa !5
  %893 = load ptr, ptr %32, align 8, !tbaa !5
  %894 = load i32, ptr %68, align 4, !tbaa !9
  %895 = load i32, ptr %68, align 4, !tbaa !9
  %896 = load i32, ptr %51, align 4, !tbaa !9
  %897 = mul nsw i32 %895, %896
  %898 = add nsw i32 %894, %897
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds %struct.complex, ptr %893, i64 %899
  %901 = load ptr, ptr %33, align 8, !tbaa !5
  %902 = load ptr, ptr %44, align 8, !tbaa !5
  %903 = load i32, ptr %74, align 4, !tbaa !9
  %904 = load i32, ptr %75, align 4, !tbaa !9
  %905 = mul nsw i32 %903, %904
  %906 = add nsw i32 %905, 1
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds %struct.complex, ptr %902, i64 %907
  %909 = load ptr, ptr %43, align 8, !tbaa !5
  %910 = getelementptr inbounds float, ptr %909, i64 1
  %911 = load ptr, ptr %44, align 8, !tbaa !5
  %912 = load i32, ptr %74, align 4, !tbaa !9
  %913 = load i32, ptr %75, align 4, !tbaa !9
  %914 = mul nsw i32 %912, %913
  %915 = shl i32 %914, 1
  %916 = add nsw i32 %915, 1
  %917 = sext i32 %916 to i64
  %918 = getelementptr inbounds %struct.complex, ptr %911, i64 %917
  %919 = load ptr, ptr %46, align 8, !tbaa !5
  %920 = getelementptr inbounds i32, ptr %919, i64 1
  call void @ctgsyl_(ptr noundef @.str.3, ptr noundef %85, ptr noundef %74, ptr noundef %75, ptr noundef %875, ptr noundef %876, ptr noundef %884, ptr noundef %885, ptr noundef %887, ptr noundef %74, ptr noundef %891, ptr noundef %892, ptr noundef %900, ptr noundef %901, ptr noundef %908, ptr noundef %74, ptr noundef %78, ptr noundef %910, ptr noundef %918, ptr noundef %57, ptr noundef %920, ptr noundef %63)
  %921 = load ptr, ptr %45, align 8, !tbaa !5
  %922 = load i32, ptr %921, align 4, !tbaa !9
  %923 = load i32, ptr %74, align 4, !tbaa !9
  %924 = shl i32 %923, 1
  %925 = load i32, ptr %75, align 4, !tbaa !9
  %926 = mul nsw i32 %924, %925
  %927 = sub nsw i32 %922, %926
  store i32 %927, ptr %57, align 4, !tbaa !9
  %928 = load ptr, ptr %30, align 8, !tbaa !5
  %929 = load i32, ptr %68, align 4, !tbaa !9
  %930 = load i32, ptr %68, align 4, !tbaa !9
  %931 = load i32, ptr %49, align 4, !tbaa !9
  %932 = mul nsw i32 %930, %931
  %933 = add nsw i32 %929, %932
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds %struct.complex, ptr %928, i64 %934
  %936 = load ptr, ptr %31, align 8, !tbaa !5
  %937 = load ptr, ptr %30, align 8, !tbaa !5
  %938 = load i32, ptr %50, align 4, !tbaa !9
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds %struct.complex, ptr %937, i64 %939
  %941 = load ptr, ptr %31, align 8, !tbaa !5
  %942 = load ptr, ptr %44, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.complex, ptr %942, i64 1
  %944 = load ptr, ptr %32, align 8, !tbaa !5
  %945 = load i32, ptr %68, align 4, !tbaa !9
  %946 = load i32, ptr %68, align 4, !tbaa !9
  %947 = load i32, ptr %51, align 4, !tbaa !9
  %948 = mul nsw i32 %946, %947
  %949 = add nsw i32 %945, %948
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds %struct.complex, ptr %944, i64 %950
  %952 = load ptr, ptr %33, align 8, !tbaa !5
  %953 = load ptr, ptr %32, align 8, !tbaa !5
  %954 = load i32, ptr %52, align 4, !tbaa !9
  %955 = sext i32 %954 to i64
  %956 = getelementptr inbounds %struct.complex, ptr %953, i64 %955
  %957 = load ptr, ptr %33, align 8, !tbaa !5
  %958 = load ptr, ptr %44, align 8, !tbaa !5
  %959 = load i32, ptr %74, align 4, !tbaa !9
  %960 = load i32, ptr %75, align 4, !tbaa !9
  %961 = mul nsw i32 %959, %960
  %962 = add nsw i32 %961, 1
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds %struct.complex, ptr %958, i64 %963
  %965 = load ptr, ptr %43, align 8, !tbaa !5
  %966 = getelementptr inbounds float, ptr %965, i64 2
  %967 = load ptr, ptr %44, align 8, !tbaa !5
  %968 = load i32, ptr %74, align 4, !tbaa !9
  %969 = load i32, ptr %75, align 4, !tbaa !9
  %970 = mul nsw i32 %968, %969
  %971 = shl i32 %970, 1
  %972 = add nsw i32 %971, 1
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds %struct.complex, ptr %967, i64 %973
  %975 = load ptr, ptr %46, align 8, !tbaa !5
  %976 = getelementptr inbounds i32, ptr %975, i64 1
  call void @ctgsyl_(ptr noundef @.str.3, ptr noundef %85, ptr noundef %75, ptr noundef %74, ptr noundef %935, ptr noundef %936, ptr noundef %940, ptr noundef %941, ptr noundef %943, ptr noundef %75, ptr noundef %951, ptr noundef %952, ptr noundef %956, ptr noundef %957, ptr noundef %964, ptr noundef %75, ptr noundef %78, ptr noundef %966, ptr noundef %974, ptr noundef %57, ptr noundef %976, ptr noundef %63)
  br label %1269

977:                                              ; preds = %852
  store i32 0, ptr %62, align 4, !tbaa !9
  %978 = load ptr, ptr %40, align 8, !tbaa !5
  %979 = load i32, ptr %978, align 4, !tbaa !9
  store i32 %979, ptr %74, align 4, !tbaa !9
  %980 = load ptr, ptr %29, align 8, !tbaa !5
  %981 = load i32, ptr %980, align 4, !tbaa !9
  %982 = load ptr, ptr %40, align 8, !tbaa !5
  %983 = load i32, ptr %982, align 4, !tbaa !9
  %984 = sub nsw i32 %981, %983
  store i32 %984, ptr %75, align 4, !tbaa !9
  %985 = load i32, ptr %74, align 4, !tbaa !9
  %986 = add nsw i32 %985, 1
  store i32 %986, ptr %68, align 4, !tbaa !9
  store i32 0, ptr %85, align 4, !tbaa !9
  %987 = load i32, ptr %74, align 4, !tbaa !9
  %988 = shl i32 %987, 1
  %989 = load i32, ptr %75, align 4, !tbaa !9
  %990 = mul nsw i32 %988, %989
  store i32 %990, ptr %83, align 4, !tbaa !9
  br label %991

991:                                              ; preds = %1121, %977
  %992 = load ptr, ptr %44, align 8, !tbaa !5
  %993 = load i32, ptr %83, align 4, !tbaa !9
  %994 = add nsw i32 %993, 1
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds %struct.complex, ptr %992, i64 %995
  %997 = load ptr, ptr %44, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.complex, ptr %997, i64 1
  %999 = load ptr, ptr %43, align 8, !tbaa !5
  %1000 = getelementptr inbounds float, ptr %999, i64 1
  %1001 = getelementptr inbounds [3 x i32], ptr %70, i64 0, i64 0
  call void @clacn2_(ptr noundef %83, ptr noundef %996, ptr noundef %998, ptr noundef %1000, ptr noundef %62, ptr noundef %1001)
  %1002 = load i32, ptr %62, align 4, !tbaa !9
  %1003 = icmp ne i32 %1002, 0
  br i1 %1003, label %1004, label %1122

1004:                                             ; preds = %991
  %1005 = load i32, ptr %62, align 4, !tbaa !9
  %1006 = icmp eq i32 %1005, 1
  br i1 %1006, label %1007, label %1064

1007:                                             ; preds = %1004
  %1008 = load ptr, ptr %45, align 8, !tbaa !5
  %1009 = load i32, ptr %1008, align 4, !tbaa !9
  %1010 = load i32, ptr %74, align 4, !tbaa !9
  %1011 = shl i32 %1010, 1
  %1012 = load i32, ptr %75, align 4, !tbaa !9
  %1013 = mul nsw i32 %1011, %1012
  %1014 = sub nsw i32 %1009, %1013
  store i32 %1014, ptr %57, align 4, !tbaa !9
  %1015 = load ptr, ptr %30, align 8, !tbaa !5
  %1016 = load i32, ptr %50, align 4, !tbaa !9
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds %struct.complex, ptr %1015, i64 %1017
  %1019 = load ptr, ptr %31, align 8, !tbaa !5
  %1020 = load ptr, ptr %30, align 8, !tbaa !5
  %1021 = load i32, ptr %68, align 4, !tbaa !9
  %1022 = load i32, ptr %68, align 4, !tbaa !9
  %1023 = load i32, ptr %49, align 4, !tbaa !9
  %1024 = mul nsw i32 %1022, %1023
  %1025 = add nsw i32 %1021, %1024
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds %struct.complex, ptr %1020, i64 %1026
  %1028 = load ptr, ptr %31, align 8, !tbaa !5
  %1029 = load ptr, ptr %44, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.complex, ptr %1029, i64 1
  %1031 = load ptr, ptr %32, align 8, !tbaa !5
  %1032 = load i32, ptr %52, align 4, !tbaa !9
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds %struct.complex, ptr %1031, i64 %1033
  %1035 = load ptr, ptr %33, align 8, !tbaa !5
  %1036 = load ptr, ptr %32, align 8, !tbaa !5
  %1037 = load i32, ptr %68, align 4, !tbaa !9
  %1038 = load i32, ptr %68, align 4, !tbaa !9
  %1039 = load i32, ptr %51, align 4, !tbaa !9
  %1040 = mul nsw i32 %1038, %1039
  %1041 = add nsw i32 %1037, %1040
  %1042 = sext i32 %1041 to i64
  %1043 = getelementptr inbounds %struct.complex, ptr %1036, i64 %1042
  %1044 = load ptr, ptr %33, align 8, !tbaa !5
  %1045 = load ptr, ptr %44, align 8, !tbaa !5
  %1046 = load i32, ptr %74, align 4, !tbaa !9
  %1047 = load i32, ptr %75, align 4, !tbaa !9
  %1048 = mul nsw i32 %1046, %1047
  %1049 = add nsw i32 %1048, 1
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds %struct.complex, ptr %1045, i64 %1050
  %1052 = load ptr, ptr %43, align 8, !tbaa !5
  %1053 = getelementptr inbounds float, ptr %1052, i64 1
  %1054 = load ptr, ptr %44, align 8, !tbaa !5
  %1055 = load i32, ptr %74, align 4, !tbaa !9
  %1056 = load i32, ptr %75, align 4, !tbaa !9
  %1057 = mul nsw i32 %1055, %1056
  %1058 = shl i32 %1057, 1
  %1059 = add nsw i32 %1058, 1
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds %struct.complex, ptr %1054, i64 %1060
  %1062 = load ptr, ptr %46, align 8, !tbaa !5
  %1063 = getelementptr inbounds i32, ptr %1062, i64 1
  call void @ctgsyl_(ptr noundef @.str.3, ptr noundef %85, ptr noundef %74, ptr noundef %75, ptr noundef %1018, ptr noundef %1019, ptr noundef %1027, ptr noundef %1028, ptr noundef %1030, ptr noundef %74, ptr noundef %1034, ptr noundef %1035, ptr noundef %1043, ptr noundef %1044, ptr noundef %1051, ptr noundef %74, ptr noundef %78, ptr noundef %1053, ptr noundef %1061, ptr noundef %57, ptr noundef %1063, ptr noundef %63)
  br label %1121

1064:                                             ; preds = %1004
  %1065 = load ptr, ptr %45, align 8, !tbaa !5
  %1066 = load i32, ptr %1065, align 4, !tbaa !9
  %1067 = load i32, ptr %74, align 4, !tbaa !9
  %1068 = shl i32 %1067, 1
  %1069 = load i32, ptr %75, align 4, !tbaa !9
  %1070 = mul nsw i32 %1068, %1069
  %1071 = sub nsw i32 %1066, %1070
  store i32 %1071, ptr %57, align 4, !tbaa !9
  %1072 = load ptr, ptr %30, align 8, !tbaa !5
  %1073 = load i32, ptr %50, align 4, !tbaa !9
  %1074 = sext i32 %1073 to i64
  %1075 = getelementptr inbounds %struct.complex, ptr %1072, i64 %1074
  %1076 = load ptr, ptr %31, align 8, !tbaa !5
  %1077 = load ptr, ptr %30, align 8, !tbaa !5
  %1078 = load i32, ptr %68, align 4, !tbaa !9
  %1079 = load i32, ptr %68, align 4, !tbaa !9
  %1080 = load i32, ptr %49, align 4, !tbaa !9
  %1081 = mul nsw i32 %1079, %1080
  %1082 = add nsw i32 %1078, %1081
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds %struct.complex, ptr %1077, i64 %1083
  %1085 = load ptr, ptr %31, align 8, !tbaa !5
  %1086 = load ptr, ptr %44, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.complex, ptr %1086, i64 1
  %1088 = load ptr, ptr %32, align 8, !tbaa !5
  %1089 = load i32, ptr %52, align 4, !tbaa !9
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds %struct.complex, ptr %1088, i64 %1090
  %1092 = load ptr, ptr %33, align 8, !tbaa !5
  %1093 = load ptr, ptr %32, align 8, !tbaa !5
  %1094 = load i32, ptr %68, align 4, !tbaa !9
  %1095 = load i32, ptr %68, align 4, !tbaa !9
  %1096 = load i32, ptr %51, align 4, !tbaa !9
  %1097 = mul nsw i32 %1095, %1096
  %1098 = add nsw i32 %1094, %1097
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds %struct.complex, ptr %1093, i64 %1099
  %1101 = load ptr, ptr %33, align 8, !tbaa !5
  %1102 = load ptr, ptr %44, align 8, !tbaa !5
  %1103 = load i32, ptr %74, align 4, !tbaa !9
  %1104 = load i32, ptr %75, align 4, !tbaa !9
  %1105 = mul nsw i32 %1103, %1104
  %1106 = add nsw i32 %1105, 1
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds %struct.complex, ptr %1102, i64 %1107
  %1109 = load ptr, ptr %43, align 8, !tbaa !5
  %1110 = getelementptr inbounds float, ptr %1109, i64 1
  %1111 = load ptr, ptr %44, align 8, !tbaa !5
  %1112 = load i32, ptr %74, align 4, !tbaa !9
  %1113 = load i32, ptr %75, align 4, !tbaa !9
  %1114 = mul nsw i32 %1112, %1113
  %1115 = shl i32 %1114, 1
  %1116 = add nsw i32 %1115, 1
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds %struct.complex, ptr %1111, i64 %1117
  %1119 = load ptr, ptr %46, align 8, !tbaa !5
  %1120 = getelementptr inbounds i32, ptr %1119, i64 1
  call void @ctgsyl_(ptr noundef @.str.4, ptr noundef %85, ptr noundef %74, ptr noundef %75, ptr noundef %1075, ptr noundef %1076, ptr noundef %1084, ptr noundef %1085, ptr noundef %1087, ptr noundef %74, ptr noundef %1091, ptr noundef %1092, ptr noundef %1100, ptr noundef %1101, ptr noundef %1108, ptr noundef %74, ptr noundef %78, ptr noundef %1110, ptr noundef %1118, ptr noundef %57, ptr noundef %1120, ptr noundef %63)
  br label %1121

1121:                                             ; preds = %1064, %1007
  br label %991

1122:                                             ; preds = %991
  %1123 = load float, ptr %78, align 4, !tbaa !17
  %1124 = load ptr, ptr %43, align 8, !tbaa !5
  %1125 = getelementptr inbounds float, ptr %1124, i64 1
  %1126 = load float, ptr %1125, align 4, !tbaa !17
  %1127 = fdiv float %1123, %1126
  %1128 = load ptr, ptr %43, align 8, !tbaa !5
  %1129 = getelementptr inbounds float, ptr %1128, i64 1
  store float %1127, ptr %1129, align 4, !tbaa !17
  br label %1130

1130:                                             ; preds = %1260, %1122
  %1131 = load ptr, ptr %44, align 8, !tbaa !5
  %1132 = load i32, ptr %83, align 4, !tbaa !9
  %1133 = add nsw i32 %1132, 1
  %1134 = sext i32 %1133 to i64
  %1135 = getelementptr inbounds %struct.complex, ptr %1131, i64 %1134
  %1136 = load ptr, ptr %44, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.complex, ptr %1136, i64 1
  %1138 = load ptr, ptr %43, align 8, !tbaa !5
  %1139 = getelementptr inbounds float, ptr %1138, i64 2
  %1140 = getelementptr inbounds [3 x i32], ptr %70, i64 0, i64 0
  call void @clacn2_(ptr noundef %83, ptr noundef %1135, ptr noundef %1137, ptr noundef %1139, ptr noundef %62, ptr noundef %1140)
  %1141 = load i32, ptr %62, align 4, !tbaa !9
  %1142 = icmp ne i32 %1141, 0
  br i1 %1142, label %1143, label %1261

1143:                                             ; preds = %1130
  %1144 = load i32, ptr %62, align 4, !tbaa !9
  %1145 = icmp eq i32 %1144, 1
  br i1 %1145, label %1146, label %1203

1146:                                             ; preds = %1143
  %1147 = load ptr, ptr %45, align 8, !tbaa !5
  %1148 = load i32, ptr %1147, align 4, !tbaa !9
  %1149 = load i32, ptr %74, align 4, !tbaa !9
  %1150 = shl i32 %1149, 1
  %1151 = load i32, ptr %75, align 4, !tbaa !9
  %1152 = mul nsw i32 %1150, %1151
  %1153 = sub nsw i32 %1148, %1152
  store i32 %1153, ptr %57, align 4, !tbaa !9
  %1154 = load ptr, ptr %30, align 8, !tbaa !5
  %1155 = load i32, ptr %68, align 4, !tbaa !9
  %1156 = load i32, ptr %68, align 4, !tbaa !9
  %1157 = load i32, ptr %49, align 4, !tbaa !9
  %1158 = mul nsw i32 %1156, %1157
  %1159 = add nsw i32 %1155, %1158
  %1160 = sext i32 %1159 to i64
  %1161 = getelementptr inbounds %struct.complex, ptr %1154, i64 %1160
  %1162 = load ptr, ptr %31, align 8, !tbaa !5
  %1163 = load ptr, ptr %30, align 8, !tbaa !5
  %1164 = load i32, ptr %50, align 4, !tbaa !9
  %1165 = sext i32 %1164 to i64
  %1166 = getelementptr inbounds %struct.complex, ptr %1163, i64 %1165
  %1167 = load ptr, ptr %31, align 8, !tbaa !5
  %1168 = load ptr, ptr %44, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.complex, ptr %1168, i64 1
  %1170 = load ptr, ptr %32, align 8, !tbaa !5
  %1171 = load i32, ptr %68, align 4, !tbaa !9
  %1172 = load i32, ptr %68, align 4, !tbaa !9
  %1173 = load i32, ptr %51, align 4, !tbaa !9
  %1174 = mul nsw i32 %1172, %1173
  %1175 = add nsw i32 %1171, %1174
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds %struct.complex, ptr %1170, i64 %1176
  %1178 = load ptr, ptr %33, align 8, !tbaa !5
  %1179 = load ptr, ptr %32, align 8, !tbaa !5
  %1180 = load i32, ptr %52, align 4, !tbaa !9
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds %struct.complex, ptr %1179, i64 %1181
  %1183 = load ptr, ptr %33, align 8, !tbaa !5
  %1184 = load ptr, ptr %44, align 8, !tbaa !5
  %1185 = load i32, ptr %74, align 4, !tbaa !9
  %1186 = load i32, ptr %75, align 4, !tbaa !9
  %1187 = mul nsw i32 %1185, %1186
  %1188 = add nsw i32 %1187, 1
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds %struct.complex, ptr %1184, i64 %1189
  %1191 = load ptr, ptr %43, align 8, !tbaa !5
  %1192 = getelementptr inbounds float, ptr %1191, i64 2
  %1193 = load ptr, ptr %44, align 8, !tbaa !5
  %1194 = load i32, ptr %74, align 4, !tbaa !9
  %1195 = load i32, ptr %75, align 4, !tbaa !9
  %1196 = mul nsw i32 %1194, %1195
  %1197 = shl i32 %1196, 1
  %1198 = add nsw i32 %1197, 1
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds %struct.complex, ptr %1193, i64 %1199
  %1201 = load ptr, ptr %46, align 8, !tbaa !5
  %1202 = getelementptr inbounds i32, ptr %1201, i64 1
  call void @ctgsyl_(ptr noundef @.str.3, ptr noundef %85, ptr noundef %75, ptr noundef %74, ptr noundef %1161, ptr noundef %1162, ptr noundef %1166, ptr noundef %1167, ptr noundef %1169, ptr noundef %75, ptr noundef %1177, ptr noundef %1178, ptr noundef %1182, ptr noundef %1183, ptr noundef %1190, ptr noundef %75, ptr noundef %78, ptr noundef %1192, ptr noundef %1200, ptr noundef %57, ptr noundef %1202, ptr noundef %63)
  br label %1260

1203:                                             ; preds = %1143
  %1204 = load ptr, ptr %45, align 8, !tbaa !5
  %1205 = load i32, ptr %1204, align 4, !tbaa !9
  %1206 = load i32, ptr %74, align 4, !tbaa !9
  %1207 = shl i32 %1206, 1
  %1208 = load i32, ptr %75, align 4, !tbaa !9
  %1209 = mul nsw i32 %1207, %1208
  %1210 = sub nsw i32 %1205, %1209
  store i32 %1210, ptr %57, align 4, !tbaa !9
  %1211 = load ptr, ptr %30, align 8, !tbaa !5
  %1212 = load i32, ptr %68, align 4, !tbaa !9
  %1213 = load i32, ptr %68, align 4, !tbaa !9
  %1214 = load i32, ptr %49, align 4, !tbaa !9
  %1215 = mul nsw i32 %1213, %1214
  %1216 = add nsw i32 %1212, %1215
  %1217 = sext i32 %1216 to i64
  %1218 = getelementptr inbounds %struct.complex, ptr %1211, i64 %1217
  %1219 = load ptr, ptr %31, align 8, !tbaa !5
  %1220 = load ptr, ptr %30, align 8, !tbaa !5
  %1221 = load i32, ptr %50, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds %struct.complex, ptr %1220, i64 %1222
  %1224 = load ptr, ptr %31, align 8, !tbaa !5
  %1225 = load ptr, ptr %44, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.complex, ptr %1225, i64 1
  %1227 = load ptr, ptr %32, align 8, !tbaa !5
  %1228 = load i32, ptr %52, align 4, !tbaa !9
  %1229 = sext i32 %1228 to i64
  %1230 = getelementptr inbounds %struct.complex, ptr %1227, i64 %1229
  %1231 = load ptr, ptr %33, align 8, !tbaa !5
  %1232 = load ptr, ptr %32, align 8, !tbaa !5
  %1233 = load i32, ptr %68, align 4, !tbaa !9
  %1234 = load i32, ptr %68, align 4, !tbaa !9
  %1235 = load i32, ptr %51, align 4, !tbaa !9
  %1236 = mul nsw i32 %1234, %1235
  %1237 = add nsw i32 %1233, %1236
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds %struct.complex, ptr %1232, i64 %1238
  %1240 = load ptr, ptr %33, align 8, !tbaa !5
  %1241 = load ptr, ptr %44, align 8, !tbaa !5
  %1242 = load i32, ptr %74, align 4, !tbaa !9
  %1243 = load i32, ptr %75, align 4, !tbaa !9
  %1244 = mul nsw i32 %1242, %1243
  %1245 = add nsw i32 %1244, 1
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds %struct.complex, ptr %1241, i64 %1246
  %1248 = load ptr, ptr %43, align 8, !tbaa !5
  %1249 = getelementptr inbounds float, ptr %1248, i64 2
  %1250 = load ptr, ptr %44, align 8, !tbaa !5
  %1251 = load i32, ptr %74, align 4, !tbaa !9
  %1252 = load i32, ptr %75, align 4, !tbaa !9
  %1253 = mul nsw i32 %1251, %1252
  %1254 = shl i32 %1253, 1
  %1255 = add nsw i32 %1254, 1
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds %struct.complex, ptr %1250, i64 %1256
  %1258 = load ptr, ptr %46, align 8, !tbaa !5
  %1259 = getelementptr inbounds i32, ptr %1258, i64 1
  call void @ctgsyl_(ptr noundef @.str.4, ptr noundef %85, ptr noundef %75, ptr noundef %74, ptr noundef %1218, ptr noundef %1219, ptr noundef %1223, ptr noundef %1224, ptr noundef %1226, ptr noundef %75, ptr noundef %1230, ptr noundef %1231, ptr noundef %1239, ptr noundef %1240, ptr noundef %1247, ptr noundef %75, ptr noundef %78, ptr noundef %1249, ptr noundef %1257, ptr noundef %57, ptr noundef %1259, ptr noundef %63)
  br label %1260

1260:                                             ; preds = %1203, %1146
  br label %1130

1261:                                             ; preds = %1130
  %1262 = load float, ptr %78, align 4, !tbaa !17
  %1263 = load ptr, ptr %43, align 8, !tbaa !5
  %1264 = getelementptr inbounds float, ptr %1263, i64 2
  %1265 = load float, ptr %1264, align 4, !tbaa !17
  %1266 = fdiv float %1262, %1265
  %1267 = load ptr, ptr %43, align 8, !tbaa !5
  %1268 = getelementptr inbounds float, ptr %1267, i64 2
  store float %1266, ptr %1268, align 4, !tbaa !17
  br label %1269

1269:                                             ; preds = %1261, %855
  br label %1270

1270:                                             ; preds = %1269, %849
  %1271 = load ptr, ptr %29, align 8, !tbaa !5
  %1272 = load i32, ptr %1271, align 4, !tbaa !9
  store i32 %1272, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1273

1273:                                             ; preds = %1496, %1270
  %1274 = load i32, ptr %69, align 4, !tbaa !9
  %1275 = load i32, ptr %57, align 4, !tbaa !9
  %1276 = icmp sle i32 %1274, %1275
  br i1 %1276, label %1277, label %1499

1277:                                             ; preds = %1273
  %1278 = load ptr, ptr %32, align 8, !tbaa !5
  %1279 = load i32, ptr %69, align 4, !tbaa !9
  %1280 = load i32, ptr %69, align 4, !tbaa !9
  %1281 = load i32, ptr %51, align 4, !tbaa !9
  %1282 = mul nsw i32 %1280, %1281
  %1283 = add nsw i32 %1279, %1282
  %1284 = sext i32 %1283 to i64
  %1285 = getelementptr inbounds %struct.complex, ptr %1278, i64 %1284
  %1286 = call <2 x float> @Cf(ptr noundef %1285)
  store <2 x float> %1286, ptr %87, align 4
  %1287 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 0
  %1288 = load float, ptr %1287, align 4
  %1289 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 1
  %1290 = load float, ptr %1289, align 4
  %1291 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 0
  %1292 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 1
  store float %1288, ptr %1291, align 4
  store float %1290, ptr %1292, align 4
  %1293 = load <2 x float>, ptr %88, align 4
  %1294 = call float @cabsf(<2 x float> noundef %1293) #6
  store float %1294, ptr %78, align 4, !tbaa !17
  %1295 = load float, ptr %78, align 4, !tbaa !17
  %1296 = load float, ptr %81, align 4, !tbaa !17
  %1297 = fcmp ogt float %1295, %1296
  br i1 %1297, label %1298, label %1423

1298:                                             ; preds = %1277
  %1299 = load i32, ptr %69, align 4, !tbaa !9
  %1300 = load i32, ptr %69, align 4, !tbaa !9
  %1301 = load i32, ptr %51, align 4, !tbaa !9
  %1302 = mul nsw i32 %1300, %1301
  %1303 = add nsw i32 %1299, %1302
  store i32 %1303, ptr %58, align 4, !tbaa !9
  %1304 = load ptr, ptr %32, align 8, !tbaa !5
  %1305 = load i32, ptr %58, align 4, !tbaa !9
  %1306 = sext i32 %1305 to i64
  %1307 = getelementptr inbounds %struct.complex, ptr %1304, i64 %1306
  %1308 = getelementptr inbounds %struct.complex, ptr %1307, i32 0, i32 0
  %1309 = load float, ptr %1308, align 4, !tbaa !11
  %1310 = load float, ptr %78, align 4, !tbaa !17
  %1311 = fdiv float %1309, %1310
  %1312 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 0
  store float %1311, ptr %1312, align 4, !tbaa !11
  %1313 = load ptr, ptr %32, align 8, !tbaa !5
  %1314 = load i32, ptr %58, align 4, !tbaa !9
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds %struct.complex, ptr %1313, i64 %1315
  %1317 = getelementptr inbounds %struct.complex, ptr %1316, i32 0, i32 1
  %1318 = load float, ptr %1317, align 4, !tbaa !14
  %1319 = load float, ptr %78, align 4, !tbaa !17
  %1320 = fdiv float %1318, %1319
  %1321 = getelementptr inbounds %struct.complex, ptr %61, i32 0, i32 1
  store float %1320, ptr %1321, align 4, !tbaa !14
  %1322 = call <2 x float> @Cf(ptr noundef %61)
  store <2 x float> %1322, ptr %89, align 4
  %1323 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 0
  %1324 = load float, ptr %1323, align 4
  %1325 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 1
  %1326 = load float, ptr %1325, align 4
  %1327 = fneg float %1326
  %1328 = call ptr @_pCf(ptr noundef %60)
  %1329 = getelementptr inbounds { float, float }, ptr %1328, i32 0, i32 0
  %1330 = getelementptr inbounds { float, float }, ptr %1328, i32 0, i32 1
  store float %1324, ptr %1329, align 4
  store float %1327, ptr %1330, align 4
  %1331 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1332 = load float, ptr %1331, align 4, !tbaa !11
  %1333 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %1332, ptr %1333, align 4, !tbaa !11
  %1334 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1335 = load float, ptr %1334, align 4, !tbaa !14
  %1336 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %1335, ptr %1336, align 4, !tbaa !14
  %1337 = load i32, ptr %69, align 4, !tbaa !9
  %1338 = load i32, ptr %69, align 4, !tbaa !9
  %1339 = load i32, ptr %51, align 4, !tbaa !9
  %1340 = mul nsw i32 %1338, %1339
  %1341 = add nsw i32 %1337, %1340
  store i32 %1341, ptr %58, align 4, !tbaa !9
  %1342 = load ptr, ptr %32, align 8, !tbaa !5
  %1343 = load i32, ptr %58, align 4, !tbaa !9
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds %struct.complex, ptr %1342, i64 %1344
  %1346 = getelementptr inbounds %struct.complex, ptr %1345, i32 0, i32 0
  %1347 = load float, ptr %1346, align 4, !tbaa !11
  %1348 = load float, ptr %78, align 4, !tbaa !17
  %1349 = fdiv float %1347, %1348
  %1350 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1349, ptr %1350, align 4, !tbaa !11
  %1351 = load ptr, ptr %32, align 8, !tbaa !5
  %1352 = load i32, ptr %58, align 4, !tbaa !9
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds %struct.complex, ptr %1351, i64 %1353
  %1355 = getelementptr inbounds %struct.complex, ptr %1354, i32 0, i32 1
  %1356 = load float, ptr %1355, align 4, !tbaa !14
  %1357 = load float, ptr %78, align 4, !tbaa !17
  %1358 = fdiv float %1356, %1357
  %1359 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1358, ptr %1359, align 4, !tbaa !14
  %1360 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1361 = load float, ptr %1360, align 4, !tbaa !11
  %1362 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %1361, ptr %1362, align 4, !tbaa !11
  %1363 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1364 = load float, ptr %1363, align 4, !tbaa !14
  %1365 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %1364, ptr %1365, align 4, !tbaa !14
  %1366 = load i32, ptr %69, align 4, !tbaa !9
  %1367 = load i32, ptr %69, align 4, !tbaa !9
  %1368 = load i32, ptr %51, align 4, !tbaa !9
  %1369 = mul nsw i32 %1367, %1368
  %1370 = add nsw i32 %1366, %1369
  store i32 %1370, ptr %58, align 4, !tbaa !9
  %1371 = load float, ptr %78, align 4, !tbaa !17
  %1372 = load ptr, ptr %32, align 8, !tbaa !5
  %1373 = load i32, ptr %58, align 4, !tbaa !9
  %1374 = sext i32 %1373 to i64
  %1375 = getelementptr inbounds %struct.complex, ptr %1372, i64 %1374
  %1376 = getelementptr inbounds %struct.complex, ptr %1375, i32 0, i32 0
  store float %1371, ptr %1376, align 4, !tbaa !11
  %1377 = load ptr, ptr %32, align 8, !tbaa !5
  %1378 = load i32, ptr %58, align 4, !tbaa !9
  %1379 = sext i32 %1378 to i64
  %1380 = getelementptr inbounds %struct.complex, ptr %1377, i64 %1379
  %1381 = getelementptr inbounds %struct.complex, ptr %1380, i32 0, i32 1
  store float 0.000000e+00, ptr %1381, align 4, !tbaa !14
  %1382 = load ptr, ptr %29, align 8, !tbaa !5
  %1383 = load i32, ptr %1382, align 4, !tbaa !9
  %1384 = load i32, ptr %69, align 4, !tbaa !9
  %1385 = sub nsw i32 %1383, %1384
  store i32 %1385, ptr %58, align 4, !tbaa !9
  %1386 = load ptr, ptr %32, align 8, !tbaa !5
  %1387 = load i32, ptr %69, align 4, !tbaa !9
  %1388 = load i32, ptr %69, align 4, !tbaa !9
  %1389 = add nsw i32 %1388, 1
  %1390 = load i32, ptr %51, align 4, !tbaa !9
  %1391 = mul nsw i32 %1389, %1390
  %1392 = add nsw i32 %1387, %1391
  %1393 = sext i32 %1392 to i64
  %1394 = getelementptr inbounds %struct.complex, ptr %1386, i64 %1393
  %1395 = load ptr, ptr %33, align 8, !tbaa !5
  call void @cscal_(ptr noundef %58, ptr noundef %66, ptr noundef %1394, ptr noundef %1395)
  %1396 = load ptr, ptr %29, align 8, !tbaa !5
  %1397 = load i32, ptr %1396, align 4, !tbaa !9
  %1398 = load i32, ptr %69, align 4, !tbaa !9
  %1399 = sub nsw i32 %1397, %1398
  %1400 = add nsw i32 %1399, 1
  store i32 %1400, ptr %58, align 4, !tbaa !9
  %1401 = load ptr, ptr %30, align 8, !tbaa !5
  %1402 = load i32, ptr %69, align 4, !tbaa !9
  %1403 = load i32, ptr %69, align 4, !tbaa !9
  %1404 = load i32, ptr %49, align 4, !tbaa !9
  %1405 = mul nsw i32 %1403, %1404
  %1406 = add nsw i32 %1402, %1405
  %1407 = sext i32 %1406 to i64
  %1408 = getelementptr inbounds %struct.complex, ptr %1401, i64 %1407
  %1409 = load ptr, ptr %31, align 8, !tbaa !5
  call void @cscal_(ptr noundef %58, ptr noundef %66, ptr noundef %1408, ptr noundef %1409)
  %1410 = load ptr, ptr %26, align 8, !tbaa !5
  %1411 = load i32, ptr %1410, align 4, !tbaa !9
  %1412 = icmp ne i32 %1411, 0
  br i1 %1412, label %1413, label %1422

1413:                                             ; preds = %1298
  %1414 = load ptr, ptr %29, align 8, !tbaa !5
  %1415 = load ptr, ptr %36, align 8, !tbaa !5
  %1416 = load i32, ptr %69, align 4, !tbaa !9
  %1417 = load i32, ptr %53, align 4, !tbaa !9
  %1418 = mul nsw i32 %1416, %1417
  %1419 = add nsw i32 %1418, 1
  %1420 = sext i32 %1419 to i64
  %1421 = getelementptr inbounds %struct.complex, ptr %1415, i64 %1420
  call void @cscal_(ptr noundef %1414, ptr noundef %67, ptr noundef %1421, ptr noundef @c__1)
  br label %1422

1422:                                             ; preds = %1413, %1298
  br label %1439

1423:                                             ; preds = %1277
  %1424 = load i32, ptr %69, align 4, !tbaa !9
  %1425 = load i32, ptr %69, align 4, !tbaa !9
  %1426 = load i32, ptr %51, align 4, !tbaa !9
  %1427 = mul nsw i32 %1425, %1426
  %1428 = add nsw i32 %1424, %1427
  store i32 %1428, ptr %58, align 4, !tbaa !9
  %1429 = load ptr, ptr %32, align 8, !tbaa !5
  %1430 = load i32, ptr %58, align 4, !tbaa !9
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds %struct.complex, ptr %1429, i64 %1431
  %1433 = getelementptr inbounds %struct.complex, ptr %1432, i32 0, i32 0
  store float 0.000000e+00, ptr %1433, align 4, !tbaa !11
  %1434 = load ptr, ptr %32, align 8, !tbaa !5
  %1435 = load i32, ptr %58, align 4, !tbaa !9
  %1436 = sext i32 %1435 to i64
  %1437 = getelementptr inbounds %struct.complex, ptr %1434, i64 %1436
  %1438 = getelementptr inbounds %struct.complex, ptr %1437, i32 0, i32 1
  store float 0.000000e+00, ptr %1438, align 4, !tbaa !14
  br label %1439

1439:                                             ; preds = %1423, %1422
  %1440 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1440, ptr %58, align 4, !tbaa !9
  %1441 = load i32, ptr %69, align 4, !tbaa !9
  %1442 = load i32, ptr %69, align 4, !tbaa !9
  %1443 = load i32, ptr %49, align 4, !tbaa !9
  %1444 = mul nsw i32 %1442, %1443
  %1445 = add nsw i32 %1441, %1444
  store i32 %1445, ptr %59, align 4, !tbaa !9
  %1446 = load ptr, ptr %30, align 8, !tbaa !5
  %1447 = load i32, ptr %59, align 4, !tbaa !9
  %1448 = sext i32 %1447 to i64
  %1449 = getelementptr inbounds %struct.complex, ptr %1446, i64 %1448
  %1450 = getelementptr inbounds %struct.complex, ptr %1449, i32 0, i32 0
  %1451 = load float, ptr %1450, align 4, !tbaa !11
  %1452 = load ptr, ptr %34, align 8, !tbaa !5
  %1453 = load i32, ptr %58, align 4, !tbaa !9
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds %struct.complex, ptr %1452, i64 %1454
  %1456 = getelementptr inbounds %struct.complex, ptr %1455, i32 0, i32 0
  store float %1451, ptr %1456, align 4, !tbaa !11
  %1457 = load ptr, ptr %30, align 8, !tbaa !5
  %1458 = load i32, ptr %59, align 4, !tbaa !9
  %1459 = sext i32 %1458 to i64
  %1460 = getelementptr inbounds %struct.complex, ptr %1457, i64 %1459
  %1461 = getelementptr inbounds %struct.complex, ptr %1460, i32 0, i32 1
  %1462 = load float, ptr %1461, align 4, !tbaa !14
  %1463 = load ptr, ptr %34, align 8, !tbaa !5
  %1464 = load i32, ptr %58, align 4, !tbaa !9
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds %struct.complex, ptr %1463, i64 %1465
  %1467 = getelementptr inbounds %struct.complex, ptr %1466, i32 0, i32 1
  store float %1462, ptr %1467, align 4, !tbaa !14
  %1468 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1468, ptr %58, align 4, !tbaa !9
  %1469 = load i32, ptr %69, align 4, !tbaa !9
  %1470 = load i32, ptr %69, align 4, !tbaa !9
  %1471 = load i32, ptr %51, align 4, !tbaa !9
  %1472 = mul nsw i32 %1470, %1471
  %1473 = add nsw i32 %1469, %1472
  store i32 %1473, ptr %59, align 4, !tbaa !9
  %1474 = load ptr, ptr %32, align 8, !tbaa !5
  %1475 = load i32, ptr %59, align 4, !tbaa !9
  %1476 = sext i32 %1475 to i64
  %1477 = getelementptr inbounds %struct.complex, ptr %1474, i64 %1476
  %1478 = getelementptr inbounds %struct.complex, ptr %1477, i32 0, i32 0
  %1479 = load float, ptr %1478, align 4, !tbaa !11
  %1480 = load ptr, ptr %35, align 8, !tbaa !5
  %1481 = load i32, ptr %58, align 4, !tbaa !9
  %1482 = sext i32 %1481 to i64
  %1483 = getelementptr inbounds %struct.complex, ptr %1480, i64 %1482
  %1484 = getelementptr inbounds %struct.complex, ptr %1483, i32 0, i32 0
  store float %1479, ptr %1484, align 4, !tbaa !11
  %1485 = load ptr, ptr %32, align 8, !tbaa !5
  %1486 = load i32, ptr %59, align 4, !tbaa !9
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds %struct.complex, ptr %1485, i64 %1487
  %1489 = getelementptr inbounds %struct.complex, ptr %1488, i32 0, i32 1
  %1490 = load float, ptr %1489, align 4, !tbaa !14
  %1491 = load ptr, ptr %35, align 8, !tbaa !5
  %1492 = load i32, ptr %58, align 4, !tbaa !9
  %1493 = sext i32 %1492 to i64
  %1494 = getelementptr inbounds %struct.complex, ptr %1491, i64 %1493
  %1495 = getelementptr inbounds %struct.complex, ptr %1494, i32 0, i32 1
  store float %1490, ptr %1495, align 4, !tbaa !14
  br label %1496

1496:                                             ; preds = %1439
  %1497 = load i32, ptr %69, align 4, !tbaa !9
  %1498 = add nsw i32 %1497, 1
  store i32 %1498, ptr %69, align 4, !tbaa !9
  br label %1273, !llvm.loop !20

1499:                                             ; preds = %1273
  br label %1500

1500:                                             ; preds = %1499, %662, %597
  %1501 = load i32, ptr %72, align 4, !tbaa !9
  %1502 = sitofp i32 %1501 to float
  %1503 = load ptr, ptr %44, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.complex, ptr %1503, i64 1
  %1505 = getelementptr inbounds %struct.complex, ptr %1504, i32 0, i32 0
  store float %1502, ptr %1505, align 4, !tbaa !11
  %1506 = load ptr, ptr %44, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.complex, ptr %1506, i64 1
  %1508 = getelementptr inbounds %struct.complex, ptr %1507, i32 0, i32 1
  store float 0.000000e+00, ptr %1508, align 4, !tbaa !14
  %1509 = load i32, ptr %82, align 4, !tbaa !9
  %1510 = load ptr, ptr %46, align 8, !tbaa !5
  %1511 = getelementptr inbounds i32, ptr %1510, i64 1
  store i32 %1509, ptr %1511, align 4, !tbaa !9
  store i32 1, ptr %86, align 4
  br label %1512

1512:                                             ; preds = %1500, %534, %526, %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

; Function Attrs: nounwind
declare float @cabsf(<2 x float> noundef) #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) #5

declare void @cscal_(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"="64" "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 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "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 #5 = { inlinehint 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 #6 = { 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 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!13, !13, i64 0}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}


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

; Function Attrs: nounwind uwtable
define dso_local void @ctgsen_(ptr nocapture noundef readonly %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr nocapture noundef writeonly %9, ptr nocapture noundef writeonly %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr nocapture noundef %15, ptr nocapture noundef %16, ptr nocapture noundef %17, ptr noundef %18, ptr noundef %19, ptr nocapture noundef readonly %20, ptr noundef %21, ptr nocapture noundef readonly %22, ptr nocapture noundef %23) local_unnamed_addr #0 {
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca %struct.complex, align 8
  %28 = alloca %struct.complex, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca float, align 4
  %32 = alloca %struct.complex, align 8
  %33 = alloca %struct.complex, align 8
  %34 = alloca i32, align 4
  %35 = alloca [3 x i32], align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca float, align 4
  %39 = alloca i32, align 4
  %40 = alloca float, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #8
  %43 = getelementptr inbounds i8, ptr %3, i64 -4
  %44 = load i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %44, -1
  %45 = sext i32 %narrow to i64
  %46 = getelementptr inbounds %struct.complex, ptr %5, i64 %45
  %47 = load i32, ptr %8, align 4, !tbaa !5
  %narrow456 = xor i32 %47, -1
  %48 = sext i32 %narrow456 to i64
  %49 = getelementptr inbounds %struct.complex, ptr %7, i64 %48
  %50 = getelementptr inbounds i8, ptr %9, i64 -8
  %51 = getelementptr inbounds i8, ptr %10, i64 -8
  %52 = load i32, ptr %12, align 4, !tbaa !5
  %narrow457 = xor i32 %52, -1
  %53 = sext i32 %narrow457 to i64
  %54 = getelementptr inbounds %struct.complex, ptr %11, i64 %53
  %55 = getelementptr inbounds i8, ptr %19, i64 -8
  store i32 0, ptr %23, align 4, !tbaa !5
  %56 = load i32, ptr %20, align 4, !tbaa !5
  %57 = icmp eq i32 %56, -1
  br i1 %57, label %61, label %58

58:                                               ; preds = %24
  %59 = load i32, ptr %22, align 4, !tbaa !5
  %60 = icmp eq i32 %59, -1
  br label %61

61:                                               ; preds = %58, %24
  %62 = phi i1 [ true, %24 ], [ %60, %58 ]
  %63 = load i32, ptr %0, align 4, !tbaa !5
  %or.cond461 = icmp ugt i32 %63, 5
  br i1 %or.cond461, label %.thread, label %64

64:                                               ; preds = %61
  %65 = load i32, ptr %4, align 4, !tbaa !5
  %66 = icmp slt i32 %65, 0
  br i1 %66, label %.thread, label %67

67:                                               ; preds = %64
  %68 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %65, i32 1)
  %69 = icmp slt i32 %68, %spec.select
  br i1 %69, label %.thread, label %70

70:                                               ; preds = %67
  %71 = load i32, ptr %8, align 4, !tbaa !5
  %72 = icmp slt i32 %71, %spec.select
  br i1 %72, label %.thread, label %73

73:                                               ; preds = %70
  %74 = load i32, ptr %12, align 4, !tbaa !5
  %75 = icmp slt i32 %74, 1
  br i1 %75, label %.thread, label %76

76:                                               ; preds = %73
  %77 = load i32, ptr %1, align 4, !tbaa !5
  %.not = icmp ne i32 %77, 0
  %78 = icmp ult i32 %74, %65
  %or.cond475 = and i1 %78, %.not
  br i1 %or.cond475, label %.thread, label %79

79:                                               ; preds = %76
  %80 = load i32, ptr %14, align 4, !tbaa !5
  %81 = icmp slt i32 %80, 1
  br i1 %81, label %.thread, label %82

82:                                               ; preds = %79
  %83 = load i32, ptr %2, align 4, !tbaa !5
  %.not437 = icmp ne i32 %83, 0
  %84 = icmp ult i32 %80, %65
  %or.cond476 = and i1 %84, %.not437
  br i1 %or.cond476, label %.thread, label %86

.thread:                                          ; preds = %79, %82, %73, %76, %70, %67, %64, %61
  %.sink = phi i32 [ -1, %61 ], [ -5, %64 ], [ -7, %67 ], [ -9, %70 ], [ -13, %76 ], [ -13, %73 ], [ -15, %82 ], [ -15, %79 ]
  %.neg = phi i32 [ 1, %61 ], [ 5, %64 ], [ 7, %67 ], [ 9, %70 ], [ 13, %76 ], [ 13, %73 ], [ 15, %82 ], [ 15, %79 ]
  store i32 %.sink, ptr %23, align 4, !tbaa !5
  store i32 %.neg, ptr %25, align 4, !tbaa !5
  %85 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %25, i32 noundef 6) #8
  br label %485

86:                                               ; preds = %82
  store i32 0, ptr %30, align 4, !tbaa !5
  %87 = icmp eq i32 %63, 1
  %88 = icmp ugt i32 %63, 3
  %spec.select463 = or i1 %87, %88
  store i32 0, ptr %15, align 4, !tbaa !5
  br i1 %62, label %89, label %91

89:                                               ; preds = %86
  %90 = load i32, ptr %0, align 4, !tbaa !5
  %.not439 = icmp eq i32 %90, 0
  br i1 %.not439, label %.thread468, label %91

91:                                               ; preds = %89, %86
  %92 = load i32, ptr %4, align 4, !tbaa !5
  %.not440480 = icmp slt i32 %92, 1
  br i1 %.not440480, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %91
  %93 = add i32 %44, 1
  %94 = add i32 %47, 1
  %95 = add nuw i32 %92, 1
  %wide.trip.count = zext i32 %95 to i64
  br label %96

96:                                               ; preds = %.lr.ph, %119
  %97 = phi i32 [ 0, %.lr.ph ], [ %120, %119 ]
  %indvars.iv = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next, %119 ]
  %98 = trunc nuw nsw i64 %indvars.iv to i32
  %99 = mul i32 %93, %98
  %100 = sext i32 %99 to i64
  %101 = getelementptr inbounds %struct.complex, ptr %46, i64 %100
  %102 = getelementptr inbounds %struct.complex, ptr %50, i64 %indvars.iv
  %103 = load <2 x float>, ptr %101, align 4, !tbaa !9
  store <2 x float> %103, ptr %102, align 4, !tbaa !9
  %104 = mul i32 %94, %98
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds %struct.complex, ptr %49, i64 %105
  %107 = getelementptr inbounds %struct.complex, ptr %51, i64 %indvars.iv
  %108 = load <2 x float>, ptr %106, align 4, !tbaa !9
  store <2 x float> %108, ptr %107, align 4, !tbaa !9
  %109 = load i32, ptr %4, align 4, !tbaa !5
  %110 = sext i32 %109 to i64
  %111 = icmp slt i64 %indvars.iv, %110
  br i1 %111, label %112, label %115

112:                                              ; preds = %96
  %113 = getelementptr inbounds i32, ptr %43, i64 %indvars.iv
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %.not460 = icmp eq i32 %114, 0
  br i1 %.not460, label %119, label %.sink.split

115:                                              ; preds = %96
  %116 = getelementptr inbounds i32, ptr %43, i64 %110
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %.not459 = icmp eq i32 %117, 0
  br i1 %.not459, label %119, label %.sink.split

.sink.split:                                      ; preds = %115, %112
  %118 = add nsw i32 %97, 1
  store i32 %118, ptr %15, align 4, !tbaa !5
  br label %119

119:                                              ; preds = %.sink.split, %112, %115
  %120 = phi i32 [ %97, %112 ], [ %97, %115 ], [ %118, %.sink.split ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %96, !llvm.loop !11

._crit_edge:                                      ; preds = %119, %91
  %121 = phi i32 [ 0, %91 ], [ %120, %119 ]
  %storemerge479.lcssa = phi i32 [ undef, %91 ], [ %98, %119 ]
  %storemerge.lcssa = phi i32 [ 1, %91 ], [ %95, %119 ]
  store i32 %storemerge.lcssa, ptr %34, align 4, !tbaa !5
  store i32 %storemerge479.lcssa, ptr %26, align 4, !tbaa !5
  %.pr467 = load i32, ptr %0, align 4, !tbaa !5
  switch i32 %.pr467, label %.thread468 [
    i32 1, label %122
    i32 2, label %122
    i32 4, label %122
    i32 3, label %131
    i32 5, label %131
  ]

122:                                              ; preds = %._crit_edge, %._crit_edge, %._crit_edge
  %123 = shl i32 %121, 1
  %124 = load i32, ptr %4, align 4, !tbaa !5
  %125 = sub nsw i32 %124, %121
  %126 = mul nsw i32 %125, %123
  %127 = tail call i32 @llvm.smax.i32(i32 %126, i32 1)
  store i32 1, ptr %25, align 4, !tbaa !5
  %128 = add nsw i32 %124, 2
  store i32 %128, ptr %26, align 4, !tbaa !5
  %129 = icmp slt i32 %124, 0
  %130 = select i1 %129, i32 1, i32 %128
  br label %.thread468

131:                                              ; preds = %._crit_edge, %._crit_edge
  %132 = shl i32 %121, 2
  %133 = load i32, ptr %4, align 4, !tbaa !5
  %134 = sub nsw i32 %133, %121
  %135 = mul nsw i32 %134, %132
  %136 = tail call i32 @llvm.smax.i32(i32 %135, i32 1)
  %137 = shl i32 %121, 1
  %138 = mul nsw i32 %134, %137
  %139 = tail call i32 @llvm.smax.i32(i32 %138, i32 1)
  store i32 %139, ptr %25, align 4, !tbaa !5
  %140 = add nsw i32 %133, 2
  store i32 %140, ptr %26, align 4, !tbaa !5
  %141 = tail call i32 @llvm.smax.i32(i32 %139, i32 %140)
  br label %.thread468

.thread468:                                       ; preds = %89, %._crit_edge, %131, %122
  %.0414 = phi i32 [ %127, %122 ], [ %136, %131 ], [ 1, %._crit_edge ], [ 1, %89 ]
  %.0 = phi i32 [ %130, %122 ], [ %141, %131 ], [ 1, %._crit_edge ], [ 1, %89 ]
  %142 = uitofp nneg i32 %.0414 to float
  store float %142, ptr %19, align 4, !tbaa !13
  %143 = getelementptr inbounds i8, ptr %19, i64 4
  store float 0.000000e+00, ptr %143, align 4, !tbaa !15
  store i32 %.0, ptr %21, align 4, !tbaa !5
  %144 = load i32, ptr %20, align 4, !tbaa !5
  %145 = icmp sge i32 %144, %.0414
  %or.cond = select i1 %145, i1 true, i1 %62
  br i1 %or.cond, label %146, label %.thread473.sink.split

146:                                              ; preds = %.thread468
  %147 = load i32, ptr %22, align 4, !tbaa !5
  %148 = icmp sge i32 %147, %.0
  %or.cond3 = select i1 %148, i1 true, i1 %62
  br i1 %or.cond3, label %149, label %.thread473.sink.split

149:                                              ; preds = %146
  %.pr470 = load i32, ptr %23, align 4, !tbaa !5
  %.not445 = icmp eq i32 %.pr470, 0
  br i1 %.not445, label %153, label %.thread473

.thread473.sink.split:                            ; preds = %146, %.thread468
  %.sink527 = phi i32 [ -21, %.thread468 ], [ -23, %146 ]
  store i32 %.sink527, ptr %23, align 4, !tbaa !5
  br label %.thread473

.thread473:                                       ; preds = %.thread473.sink.split, %149
  %150 = phi i32 [ %.pr470, %149 ], [ %.sink527, %.thread473.sink.split ]
  %151 = sub nsw i32 0, %150
  store i32 %151, ptr %25, align 4, !tbaa !5
  %152 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %25, i32 noundef 6) #8
  br label %485

153:                                              ; preds = %149
  br i1 %62, label %485, label %154

154:                                              ; preds = %153
  %155 = load i32, ptr %15, align 4, !tbaa !5
  %156 = load i32, ptr %4, align 4, !tbaa !5
  %157 = icmp eq i32 %155, %156
  %158 = icmp eq i32 %155, 0
  %or.cond464 = or i1 %158, %157
  br i1 %or.cond464, label %159, label %176

159:                                              ; preds = %154
  br i1 %spec.select463, label %160, label %161

160:                                              ; preds = %159
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  br label %161

161:                                              ; preds = %160, %159
  %.off = add nsw i32 %63, -2
  %switch = icmp ult i32 %.off, 4
  br i1 %switch, label %162, label %.loopexit

162:                                              ; preds = %161
  store float 0.000000e+00, ptr %38, align 4, !tbaa !9
  store float 1.000000e+00, ptr %31, align 4, !tbaa !9
  store i32 %156, ptr %25, align 4, !tbaa !5
  %invariant.gep504 = getelementptr i8, ptr %46, i64 8
  %invariant.gep506 = getelementptr i8, ptr %49, i64 8
  %.not458508 = icmp slt i32 %156, 1
  br i1 %.not458508, label %._crit_edge512, label %.lr.ph511.preheader

.lr.ph511.preheader:                              ; preds = %162
  %163 = sext i32 %44 to i64
  %164 = sext i32 %47 to i64
  br label %.lr.ph511

.lr.ph511:                                        ; preds = %.lr.ph511.preheader, %.lr.ph511
  %indvars.iv514 = phi i64 [ 1, %.lr.ph511.preheader ], [ %indvars.iv.next515, %.lr.ph511 ]
  %165 = mul nsw i64 %indvars.iv514, %163
  %gep505 = getelementptr %struct.complex, ptr %invariant.gep504, i64 %165
  call void @classq_(ptr noundef nonnull %4, ptr noundef %gep505, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef nonnull %31) #8
  %166 = mul nsw i64 %indvars.iv514, %164
  %gep507 = getelementptr %struct.complex, ptr %invariant.gep506, i64 %166
  call void @classq_(ptr noundef nonnull %4, ptr noundef %gep507, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef nonnull %31) #8
  %indvars.iv.next515 = add nuw nsw i64 %indvars.iv514, 1
  %167 = load i32, ptr %25, align 4, !tbaa !5
  %168 = sext i32 %167 to i64
  %.not458.not = icmp slt i64 %indvars.iv514, %168
  br i1 %.not458.not, label %.lr.ph511, label %._crit_edge512.loopexit, !llvm.loop !16

._crit_edge512.loopexit:                          ; preds = %.lr.ph511
  %.pre523 = load float, ptr %38, align 4, !tbaa !9
  %.pre524 = load float, ptr %31, align 4, !tbaa !9
  %169 = fpext float %.pre523 to double
  %170 = fpext float %.pre524 to double
  br label %._crit_edge512

._crit_edge512:                                   ; preds = %._crit_edge512.loopexit, %162
  %171 = phi double [ %170, %._crit_edge512.loopexit ], [ 1.000000e+00, %162 ]
  %172 = phi double [ %169, %._crit_edge512.loopexit ], [ 0.000000e+00, %162 ]
  %173 = call double @sqrt(double noundef %171) #8
  %174 = fmul double %173, %172
  %175 = fptrunc double %174 to float
  br label %.loopexit.sink.split

176:                                              ; preds = %154
  %177 = tail call float @slamch_(ptr noundef nonnull @.str.1) #8
  store i32 0, ptr %39, align 4, !tbaa !5
  %178 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %178, ptr %25, align 4, !tbaa !5
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not447483 = icmp slt i32 %178, 1
  br i1 %.not447483, label %._crit_edge487, label %.lr.ph486

.lr.ph486:                                        ; preds = %176, %194
  %179 = phi i32 [ %195, %194 ], [ %178, %176 ]
  %180 = phi i32 [ %197, %194 ], [ 0, %176 ]
  %storemerge446484 = phi i32 [ %198, %194 ], [ 1, %176 ]
  %181 = sext i32 %storemerge446484 to i64
  %182 = getelementptr inbounds i32, ptr %43, i64 %181
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %.not454 = icmp eq i32 %183, 0
  br i1 %.not454, label %194, label %184

184:                                              ; preds = %.lr.ph486
  %185 = load i32, ptr %39, align 4, !tbaa !5
  %186 = add nsw i32 %185, 1
  store i32 %186, ptr %39, align 4, !tbaa !5
  %.not455 = icmp eq i32 %storemerge446484, %186
  br i1 %.not455, label %188, label %187

187:                                              ; preds = %184
  call void @ctgexc_(ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %34, ptr noundef nonnull %39, ptr noundef nonnull %30) #8
  %.pre = load i32, ptr %30, align 4, !tbaa !5
  br label %188

188:                                              ; preds = %187, %184
  %189 = phi i32 [ %.pre, %187 ], [ %180, %184 ]
  %190 = icmp sgt i32 %189, 0
  br i1 %190, label %191, label %._crit_edge517

._crit_edge517:                                   ; preds = %188
  %.pre518 = load i32, ptr %34, align 4, !tbaa !5
  %.pre519 = load i32, ptr %25, align 4, !tbaa !5
  br label %194

191:                                              ; preds = %188
  store i32 1, ptr %23, align 4, !tbaa !5
  br i1 %spec.select463, label %192, label %193

192:                                              ; preds = %191
  store float 0.000000e+00, ptr %16, align 4, !tbaa !9
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  br label %193

193:                                              ; preds = %192, %191
  %.off477 = add nsw i32 %63, -2
  %switch478 = icmp ult i32 %.off477, 4
  br i1 %switch478, label %.loopexit.sink.split, label %.loopexit

194:                                              ; preds = %._crit_edge517, %.lr.ph486
  %195 = phi i32 [ %179, %.lr.ph486 ], [ %.pre519, %._crit_edge517 ]
  %196 = phi i32 [ %storemerge446484, %.lr.ph486 ], [ %.pre518, %._crit_edge517 ]
  %197 = phi i32 [ %180, %.lr.ph486 ], [ %189, %._crit_edge517 ]
  %198 = add nsw i32 %196, 1
  store i32 %198, ptr %34, align 4, !tbaa !5
  %.not447.not = icmp slt i32 %196, %195
  br i1 %.not447.not, label %.lr.ph486, label %._crit_edge487, !llvm.loop !17

._crit_edge487:                                   ; preds = %194, %176
  br i1 %spec.select463, label %199, label %292

199:                                              ; preds = %._crit_edge487
  %200 = load i32, ptr %15, align 4, !tbaa !5
  store i32 %200, ptr %36, align 4, !tbaa !5
  %201 = load i32, ptr %4, align 4, !tbaa !5
  %202 = sub nsw i32 %201, %200
  store i32 %202, ptr %37, align 4, !tbaa !5
  %203 = add nsw i32 %200, 1
  %204 = mul nsw i32 %203, %44
  %205 = sext i32 %204 to i64
  %206 = getelementptr %struct.complex, ptr %46, i64 %205
  %207 = getelementptr i8, ptr %206, i64 8
  call void @clacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %207, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %36) #8
  %208 = mul nsw i32 %203, %47
  %209 = sext i32 %208 to i64
  %210 = getelementptr %struct.complex, ptr %49, i64 %209
  %211 = getelementptr i8, ptr %210, i64 8
  %212 = load i32, ptr %36, align 4, !tbaa !5
  %213 = load i32, ptr %37, align 4, !tbaa !5
  %214 = mul nsw i32 %213, %212
  %215 = sext i32 %214 to i64
  %216 = getelementptr %struct.complex, ptr %55, i64 %215
  %217 = getelementptr i8, ptr %216, i64 8
  call void @clacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %211, ptr noundef nonnull %8, ptr noundef %217, ptr noundef nonnull %36) #8
  store i32 0, ptr %42, align 4, !tbaa !5
  %218 = load i32, ptr %20, align 4, !tbaa !5
  %219 = load i32, ptr %36, align 4, !tbaa !5
  %220 = shl i32 %219, 1
  %221 = load i32, ptr %37, align 4, !tbaa !5
  %222 = mul nsw i32 %220, %221
  %223 = sub nsw i32 %218, %222
  store i32 %223, ptr %25, align 4, !tbaa !5
  %224 = add nsw i32 %204, %203
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds %struct.complex, ptr %46, i64 %225
  %227 = add nsw i32 %208, %203
  %228 = sext i32 %227 to i64
  %229 = getelementptr inbounds %struct.complex, ptr %49, i64 %228
  %230 = mul nsw i32 %221, %219
  %231 = sext i32 %230 to i64
  %232 = getelementptr %struct.complex, ptr %55, i64 %231
  %233 = getelementptr i8, ptr %232, i64 8
  %234 = shl i32 %230, 1
  %235 = or disjoint i32 %234, 1
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds %struct.complex, ptr %55, i64 %236
  call void @ctgsyl_(ptr noundef nonnull @.str.3, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %226, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %36, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %229, ptr noundef nonnull %8, ptr noundef %233, ptr noundef nonnull %36, ptr noundef nonnull %38, ptr noundef %18, ptr noundef nonnull %237, ptr noundef nonnull %25, ptr noundef nonnull %21, ptr noundef nonnull %30) #8
  store float 0.000000e+00, ptr %40, align 4, !tbaa !9
  store float 1.000000e+00, ptr %31, align 4, !tbaa !9
  %238 = load i32, ptr %36, align 4, !tbaa !5
  %239 = load i32, ptr %37, align 4, !tbaa !5
  %240 = mul nsw i32 %239, %238
  store i32 %240, ptr %25, align 4, !tbaa !5
  call void @classq_(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef nonnull @c__1, ptr noundef nonnull %40, ptr noundef nonnull %31) #8
  %241 = load float, ptr %40, align 4, !tbaa !9
  %242 = fpext float %241 to double
  %243 = load float, ptr %31, align 4, !tbaa !9
  %244 = fpext float %243 to double
  %245 = call double @sqrt(double noundef %244) #8
  %246 = fmul double %245, %242
  %247 = fptrunc double %246 to float
  store float %247, ptr %16, align 4, !tbaa !9
  %248 = fcmp oeq float %247, 0.000000e+00
  br i1 %248, label %263, label %249

249:                                              ; preds = %199
  %250 = load float, ptr %38, align 4, !tbaa !9
  %251 = fpext float %250 to double
  %252 = fmul float %250, %250
  %253 = fdiv float %252, %247
  %254 = fadd float %253, %247
  %255 = fpext float %254 to double
  %256 = call double @sqrt(double noundef %255) #8
  %257 = load float, ptr %16, align 4, !tbaa !9
  %258 = fpext float %257 to double
  %259 = call double @sqrt(double noundef %258) #8
  %260 = fmul double %256, %259
  %261 = fdiv double %251, %260
  %262 = fptrunc double %261 to float
  br label %263

263:                                              ; preds = %199, %249
  %storemerge448 = phi float [ %262, %249 ], [ 1.000000e+00, %199 ]
  store float %storemerge448, ptr %16, align 4, !tbaa !9
  store float 0.000000e+00, ptr %40, align 4, !tbaa !9
  store float 1.000000e+00, ptr %31, align 4, !tbaa !9
  %264 = load i32, ptr %36, align 4, !tbaa !5
  %265 = load i32, ptr %37, align 4, !tbaa !5
  %266 = mul nsw i32 %265, %264
  store i32 %266, ptr %25, align 4, !tbaa !5
  %267 = sext i32 %266 to i64
  %268 = getelementptr %struct.complex, ptr %55, i64 %267
  %269 = getelementptr i8, ptr %268, i64 8
  call void @classq_(ptr noundef nonnull %25, ptr noundef %269, ptr noundef nonnull @c__1, ptr noundef nonnull %40, ptr noundef nonnull %31) #8
  %270 = load float, ptr %40, align 4, !tbaa !9
  %271 = fpext float %270 to double
  %272 = load float, ptr %31, align 4, !tbaa !9
  %273 = fpext float %272 to double
  %274 = call double @sqrt(double noundef %273) #8
  %275 = fmul double %274, %271
  %276 = fptrunc double %275 to float
  store float %276, ptr %17, align 4, !tbaa !9
  %277 = fcmp oeq float %276, 0.000000e+00
  br i1 %277, label %.sink.split528, label %278

278:                                              ; preds = %263
  %279 = load float, ptr %38, align 4, !tbaa !9
  %280 = fpext float %279 to double
  %281 = fmul float %279, %279
  %282 = fdiv float %281, %276
  %283 = fadd float %282, %276
  %284 = fpext float %283 to double
  %285 = call double @sqrt(double noundef %284) #8
  %286 = load float, ptr %17, align 4, !tbaa !9
  %287 = fpext float %286 to double
  %288 = call double @sqrt(double noundef %287) #8
  %289 = fmul double %285, %288
  %290 = fdiv double %280, %289
  %291 = fptrunc double %290 to float
  br label %.sink.split528

.sink.split528:                                   ; preds = %263, %278
  %.sink529 = phi float [ %291, %278 ], [ 1.000000e+00, %263 ]
  store float %.sink529, ptr %17, align 4, !tbaa !9
  br label %292

292:                                              ; preds = %.sink.split528, %._crit_edge487
  switch i32 %63, label %413 [
    i32 4, label %293
    i32 2, label %293
    i32 3, label %333
    i32 5, label %333
  ]

293:                                              ; preds = %292, %292
  %294 = load i32, ptr %15, align 4, !tbaa !5
  store i32 %294, ptr %36, align 4, !tbaa !5
  %295 = load i32, ptr %4, align 4, !tbaa !5
  %296 = sub nsw i32 %295, %294
  store i32 %296, ptr %37, align 4, !tbaa !5
  %297 = add nsw i32 %294, 1
  store i32 3, ptr %42, align 4, !tbaa !5
  %298 = load i32, ptr %20, align 4, !tbaa !5
  %299 = shl i32 %294, 1
  %300 = mul nsw i32 %299, %296
  %301 = sub nsw i32 %298, %300
  store i32 %301, ptr %25, align 4, !tbaa !5
  %302 = add i32 %44, 1
  %303 = mul i32 %297, %302
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds %struct.complex, ptr %46, i64 %304
  %306 = add i32 %47, 1
  %307 = mul i32 %297, %306
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds %struct.complex, ptr %49, i64 %308
  %310 = mul nsw i32 %296, %294
  %311 = sext i32 %310 to i64
  %312 = getelementptr %struct.complex, ptr %55, i64 %311
  %313 = getelementptr i8, ptr %312, i64 8
  %314 = shl i32 %310, 1
  %315 = or disjoint i32 %314, 1
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds %struct.complex, ptr %55, i64 %316
  call void @ctgsyl_(ptr noundef nonnull @.str.3, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %305, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %36, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %309, ptr noundef nonnull %8, ptr noundef %313, ptr noundef nonnull %36, ptr noundef nonnull %38, ptr noundef %18, ptr noundef nonnull %317, ptr noundef nonnull %25, ptr noundef nonnull %21, ptr noundef nonnull %30) #8
  %318 = load i32, ptr %20, align 4, !tbaa !5
  %319 = load i32, ptr %36, align 4, !tbaa !5
  %320 = shl i32 %319, 1
  %321 = load i32, ptr %37, align 4, !tbaa !5
  %322 = mul nsw i32 %320, %321
  %323 = sub nsw i32 %318, %322
  store i32 %323, ptr %25, align 4, !tbaa !5
  %324 = mul nsw i32 %321, %319
  %325 = sext i32 %324 to i64
  %326 = getelementptr %struct.complex, ptr %55, i64 %325
  %327 = getelementptr i8, ptr %326, i64 8
  %328 = getelementptr inbounds i8, ptr %18, i64 4
  %329 = shl i32 %324, 1
  %330 = or disjoint i32 %329, 1
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds %struct.complex, ptr %55, i64 %331
  call void @ctgsyl_(ptr noundef nonnull @.str.3, ptr noundef nonnull %42, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %305, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %37, ptr noundef %309, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %327, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %328, ptr noundef nonnull %332, ptr noundef nonnull %25, ptr noundef nonnull %21, ptr noundef nonnull %30) #8
  br label %413

333:                                              ; preds = %292, %292
  store i32 0, ptr %29, align 4, !tbaa !5
  %334 = load i32, ptr %15, align 4, !tbaa !5
  store i32 %334, ptr %36, align 4, !tbaa !5
  %335 = load i32, ptr %4, align 4, !tbaa !5
  %336 = sub nsw i32 %335, %334
  store i32 %336, ptr %37, align 4, !tbaa !5
  %337 = add nsw i32 %334, 1
  store i32 0, ptr %42, align 4, !tbaa !5
  %338 = shl i32 %334, 1
  %339 = mul nsw i32 %338, %336
  store i32 %339, ptr %41, align 4, !tbaa !5
  %340 = add i32 %44, 1
  %341 = mul i32 %337, %340
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds %struct.complex, ptr %46, i64 %342
  %344 = add i32 %47, 1
  %345 = mul i32 %337, %344
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds %struct.complex, ptr %49, i64 %346
  br label %348

348:                                              ; preds = %368, %333
  %349 = phi i32 [ %.pre520, %368 ], [ %339, %333 ]
  %350 = sext i32 %349 to i64
  %gep = getelementptr %struct.complex, ptr %19, i64 %350
  call void @clacn2_(ptr noundef nonnull %41, ptr noundef %gep, ptr noundef nonnull %19, ptr noundef %18, ptr noundef nonnull %29, ptr noundef nonnull %35) #8
  %351 = load i32, ptr %29, align 4, !tbaa !5
  switch i32 %351, label %360 [
    i32 0, label %374
    i32 1, label %352
  ]

352:                                              ; preds = %348
  %353 = load i32, ptr %20, align 4, !tbaa !5
  %354 = load i32, ptr %36, align 4, !tbaa !5
  %355 = shl i32 %354, 1
  %356 = load i32, ptr %37, align 4, !tbaa !5
  %357 = mul nsw i32 %355, %356
  %358 = sub nsw i32 %353, %357
  store i32 %358, ptr %25, align 4, !tbaa !5
  %359 = mul nsw i32 %356, %354
  br label %368

360:                                              ; preds = %348
  %361 = load i32, ptr %20, align 4, !tbaa !5
  %362 = load i32, ptr %36, align 4, !tbaa !5
  %363 = shl i32 %362, 1
  %364 = load i32, ptr %37, align 4, !tbaa !5
  %365 = mul nsw i32 %363, %364
  %366 = sub nsw i32 %361, %365
  store i32 %366, ptr %25, align 4, !tbaa !5
  %367 = mul nsw i32 %364, %362
  br label %368

368:                                              ; preds = %360, %352
  %.sink536 = phi i32 [ %367, %360 ], [ %359, %352 ]
  %.str.4.sink = phi ptr [ @.str.4, %360 ], [ @.str.3, %352 ]
  %369 = sext i32 %.sink536 to i64
  %gep491 = getelementptr %struct.complex, ptr %19, i64 %369
  %370 = shl i32 %.sink536, 1
  %371 = or disjoint i32 %370, 1
  %372 = sext i32 %371 to i64
  %373 = getelementptr inbounds %struct.complex, ptr %55, i64 %372
  call void @ctgsyl_(ptr noundef nonnull %.str.4.sink, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %343, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %36, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %347, ptr noundef nonnull %8, ptr noundef %gep491, ptr noundef nonnull %36, ptr noundef nonnull %38, ptr noundef %18, ptr noundef nonnull %373, ptr noundef nonnull %25, ptr noundef nonnull %21, ptr noundef nonnull %30) #8
  %.pre520 = load i32, ptr %41, align 4, !tbaa !5
  br label %348

374:                                              ; preds = %348
  %375 = load float, ptr %38, align 4, !tbaa !9
  %376 = load float, ptr %18, align 4, !tbaa !9
  %377 = fdiv float %375, %376
  store float %377, ptr %18, align 4, !tbaa !9
  %378 = getelementptr inbounds i8, ptr %18, i64 4
  br label %379

379:                                              ; preds = %.backedge, %374
  %380 = load i32, ptr %41, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %gep493 = getelementptr %struct.complex, ptr %19, i64 %381
  call void @clacn2_(ptr noundef nonnull %41, ptr noundef %gep493, ptr noundef nonnull %19, ptr noundef nonnull %378, ptr noundef nonnull %29, ptr noundef nonnull %35) #8
  %382 = load i32, ptr %29, align 4, !tbaa !5
  switch i32 %382, label %396 [
    i32 0, label %409
    i32 1, label %383
  ]

383:                                              ; preds = %379
  %384 = load i32, ptr %20, align 4, !tbaa !5
  %385 = load i32, ptr %36, align 4, !tbaa !5
  %386 = shl i32 %385, 1
  %387 = load i32, ptr %37, align 4, !tbaa !5
  %388 = mul nsw i32 %386, %387
  %389 = sub nsw i32 %384, %388
  store i32 %389, ptr %25, align 4, !tbaa !5
  %390 = mul nsw i32 %387, %385
  %391 = sext i32 %390 to i64
  %gep495 = getelementptr %struct.complex, ptr %19, i64 %391
  %392 = shl i32 %390, 1
  %393 = or disjoint i32 %392, 1
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds %struct.complex, ptr %55, i64 %394
  call void @ctgsyl_(ptr noundef nonnull @.str.3, ptr noundef nonnull %42, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %343, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %37, ptr noundef %347, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %gep495, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %378, ptr noundef nonnull %395, ptr noundef nonnull %25, ptr noundef nonnull %21, ptr noundef nonnull %30) #8
  br label %.backedge

396:                                              ; preds = %379
  %397 = load i32, ptr %20, align 4, !tbaa !5
  %398 = load i32, ptr %36, align 4, !tbaa !5
  %399 = shl i32 %398, 1
  %400 = load i32, ptr %37, align 4, !tbaa !5
  %401 = mul nsw i32 %399, %400
  %402 = sub nsw i32 %397, %401
  store i32 %402, ptr %25, align 4, !tbaa !5
  %403 = mul nsw i32 %400, %398
  %404 = sext i32 %403 to i64
  %gep497 = getelementptr %struct.complex, ptr %19, i64 %404
  %405 = shl i32 %403, 1
  %406 = or disjoint i32 %405, 1
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds %struct.complex, ptr %55, i64 %407
  call void @ctgsyl_(ptr noundef nonnull @.str.4, ptr noundef nonnull %42, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %343, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %37, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %347, ptr noundef nonnull %8, ptr noundef %gep497, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %378, ptr noundef nonnull %408, ptr noundef nonnull %25, ptr noundef nonnull %21, ptr noundef nonnull %30) #8
  br label %.backedge

.backedge:                                        ; preds = %396, %383
  br label %379

409:                                              ; preds = %379
  %410 = load float, ptr %38, align 4, !tbaa !9
  %411 = load float, ptr %378, align 4, !tbaa !9
  %412 = fdiv float %410, %411
  store float %412, ptr %378, align 4, !tbaa !9
  br label %413

413:                                              ; preds = %292, %293, %409
  %414 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %414, ptr %25, align 4, !tbaa !5
  %invariant.gep498 = getelementptr i8, ptr %54, i64 8
  store i32 1, ptr %34, align 4, !tbaa !5
  %.not452500 = icmp slt i32 %414, 1
  br i1 %.not452500, label %.loopexit, label %.lr.ph503

.lr.ph503:                                        ; preds = %413
  %415 = add i32 %47, 1
  %416 = add i32 %44, 1
  br label %417

417:                                              ; preds = %.lr.ph503, %469
  %storemerge451501 = phi i32 [ 1, %.lr.ph503 ], [ %482, %469 ]
  %418 = mul i32 %storemerge451501, %415
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds %struct.complex, ptr %49, i64 %419
  %421 = call <2 x float> @Cf(ptr noundef %420)
  %422 = call float @cabsf(<2 x float> noundef %421) #8
  store float %422, ptr %38, align 4, !tbaa !9
  %423 = fcmp ogt float %422, %177
  %424 = load i32, ptr %34, align 4, !tbaa !5
  %425 = mul i32 %424, %415
  br i1 %423, label %426, label %466

426:                                              ; preds = %417
  store i32 %425, ptr %26, align 4, !tbaa !5
  %427 = sext i32 %425 to i64
  %428 = getelementptr inbounds %struct.complex, ptr %49, i64 %427
  %429 = load <2 x float>, ptr %428, align 4, !tbaa !9
  %430 = insertelement <2 x float> poison, float %422, i64 0
  %431 = shufflevector <2 x float> %430, <2 x float> poison, <2 x i32> zeroinitializer
  %432 = fdiv <2 x float> %429, %431
  store <2 x float> %432, ptr %28, align 8, !tbaa !9
  %433 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %433, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %433, i64 1
  %434 = fneg float %.sroa.0.4.vec.extract
  %435 = call ptr @_pCf(ptr noundef nonnull %27)
  %436 = getelementptr inbounds i8, ptr %435, i64 4
  store float %.sroa.0.0.vec.extract, ptr %435, align 4
  store float %434, ptr %436, align 4
  %437 = load <2 x float>, ptr %27, align 8, !tbaa !9
  store <2 x float> %437, ptr %32, align 8, !tbaa !9
  %438 = load i32, ptr %34, align 4, !tbaa !5
  %439 = mul i32 %438, %415
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds %struct.complex, ptr %49, i64 %440
  %442 = load float, ptr %38, align 4, !tbaa !9
  %443 = getelementptr inbounds %struct.complex, ptr %49, i64 %440, i32 1
  %444 = load <2 x float>, ptr %441, align 4, !tbaa !9
  %445 = insertelement <2 x float> poison, float %442, i64 0
  %446 = shufflevector <2 x float> %445, <2 x float> poison, <2 x i32> zeroinitializer
  %447 = fdiv <2 x float> %444, %446
  store <2 x float> %447, ptr %27, align 8, !tbaa !9
  store <2 x float> %447, ptr %33, align 8, !tbaa !9
  store float %442, ptr %441, align 4, !tbaa !13
  store float 0.000000e+00, ptr %443, align 4, !tbaa !15
  %448 = load i32, ptr %4, align 4, !tbaa !5
  %449 = sub nsw i32 %448, %438
  store i32 %449, ptr %26, align 4, !tbaa !5
  %450 = add nsw i32 %438, 1
  %451 = mul nsw i32 %450, %47
  %452 = add nsw i32 %451, %438
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds %struct.complex, ptr %49, i64 %453
  call void @cscal_(ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef %454, ptr noundef nonnull %8) #8
  %455 = load i32, ptr %4, align 4, !tbaa !5
  %456 = load i32, ptr %34, align 4, !tbaa !5
  %457 = add i32 %455, 1
  %458 = sub i32 %457, %456
  store i32 %458, ptr %26, align 4, !tbaa !5
  %459 = mul i32 %456, %416
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds %struct.complex, ptr %46, i64 %460
  call void @cscal_(ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef %461, ptr noundef nonnull %6) #8
  %462 = load i32, ptr %1, align 4, !tbaa !5
  %.not453 = icmp eq i32 %462, 0
  %.pre522 = load i32, ptr %34, align 4, !tbaa !5
  br i1 %.not453, label %469, label %463

463:                                              ; preds = %426
  %464 = mul nsw i32 %.pre522, %52
  %465 = sext i32 %464 to i64
  %gep499 = getelementptr %struct.complex, ptr %invariant.gep498, i64 %465
  call void @cscal_(ptr noundef nonnull %4, ptr noundef nonnull %33, ptr noundef %gep499, ptr noundef nonnull @c__1) #8
  %.pre521 = load i32, ptr %34, align 4, !tbaa !5
  br label %469

466:                                              ; preds = %417
  %467 = sext i32 %425 to i64
  %468 = getelementptr inbounds %struct.complex, ptr %49, i64 %467
  store <2 x float> zeroinitializer, ptr %468, align 4, !tbaa !9
  br label %469

469:                                              ; preds = %426, %463, %466
  %470 = phi i32 [ %.pre522, %426 ], [ %.pre521, %463 ], [ %424, %466 ]
  %471 = mul i32 %470, %416
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds %struct.complex, ptr %46, i64 %472
  %474 = sext i32 %470 to i64
  %475 = getelementptr inbounds %struct.complex, ptr %50, i64 %474
  %476 = load <2 x float>, ptr %473, align 4, !tbaa !9
  store <2 x float> %476, ptr %475, align 4, !tbaa !9
  store i32 %470, ptr %26, align 4, !tbaa !5
  %477 = mul i32 %470, %415
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds %struct.complex, ptr %49, i64 %478
  %480 = getelementptr inbounds %struct.complex, ptr %51, i64 %474
  %481 = load <2 x float>, ptr %479, align 4, !tbaa !9
  store <2 x float> %481, ptr %480, align 4, !tbaa !9
  %482 = add nsw i32 %470, 1
  store i32 %482, ptr %34, align 4, !tbaa !5
  %483 = load i32, ptr %25, align 4, !tbaa !5
  %.not452.not = icmp slt i32 %470, %483
  br i1 %.not452.not, label %417, label %.loopexit, !llvm.loop !18

.loopexit.sink.split:                             ; preds = %193, %._crit_edge512
  %.sink539 = phi float [ %175, %._crit_edge512 ], [ 0.000000e+00, %193 ]
  store float %.sink539, ptr %18, align 4, !tbaa !9
  %484 = getelementptr inbounds i8, ptr %18, i64 4
  store float %.sink539, ptr %484, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %469, %.loopexit.sink.split, %413, %193, %161
  store float %142, ptr %19, align 4, !tbaa !13
  store float 0.000000e+00, ptr %143, align 4, !tbaa !15
  store i32 %.0, ptr %21, align 4, !tbaa !5
  br label %485

485:                                              ; preds = %153, %.loopexit, %.thread473, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #8
  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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @classq_(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 float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

; Function Attrs: nounwind
declare float @cabsf(<2 x float> noundef) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) local_unnamed_addr #6

declare void @cscal_(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) #7

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "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 = { 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 #5 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "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 #6 = { inlinehint 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 #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nounwind }

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

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


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