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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local double @clanhf_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) #0 {
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca float, align 4
  %25 = alloca i64, align 8
  %26 = alloca float, align 4
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  %34 = load ptr, ptr %11, align 8, !tbaa !5
  %35 = load i64, ptr %34, align 8, !tbaa !9
  %36 = icmp eq i64 %35, 0
  br i1 %36, label %37, label %40

37:                                               ; preds = %6
  store float 0.000000e+00, ptr %16, align 4, !tbaa !11
  %38 = load float, ptr %16, align 4, !tbaa !11
  %39 = fpext float %38 to double
  store double %39, ptr %7, align 8
  store i32 1, ptr %33, align 4
  br label %5555

40:                                               ; preds = %6
  store i64 1, ptr %29, align 8, !tbaa !9
  %41 = load ptr, ptr %11, align 8, !tbaa !5
  %42 = load i64, ptr %41, align 8, !tbaa !9
  %43 = srem i64 %42, 2
  %44 = icmp eq i64 %43, 0
  br i1 %44, label %45, label %46

45:                                               ; preds = %40
  store i64 0, ptr %29, align 8, !tbaa !9
  br label %46

46:                                               ; preds = %45, %40
  store i64 1, ptr %28, align 8, !tbaa !9
  %47 = load ptr, ptr %9, align 8, !tbaa !5
  %48 = call i64 @lsame_(ptr noundef %47, ptr noundef @.str)
  %49 = icmp ne i64 %48, 0
  br i1 %49, label %50, label %51

50:                                               ; preds = %46
  store i64 0, ptr %28, align 8, !tbaa !9
  br label %51

51:                                               ; preds = %50, %46
  store i64 1, ptr %30, align 8, !tbaa !9
  %52 = load ptr, ptr %10, align 8, !tbaa !5
  %53 = call i64 @lsame_(ptr noundef %52, ptr noundef @.str.1)
  %54 = icmp ne i64 %53, 0
  br i1 %54, label %55, label %56

55:                                               ; preds = %51
  store i64 0, ptr %30, align 8, !tbaa !9
  br label %56

56:                                               ; preds = %55, %51
  %57 = load i64, ptr %28, align 8, !tbaa !9
  %58 = icmp eq i64 %57, 1
  br i1 %58, label %59, label %70

59:                                               ; preds = %56
  %60 = load i64, ptr %29, align 8, !tbaa !9
  %61 = icmp eq i64 %60, 1
  br i1 %61, label %62, label %65

62:                                               ; preds = %59
  %63 = load ptr, ptr %11, align 8, !tbaa !5
  %64 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %64, ptr %27, align 8, !tbaa !9
  br label %69

65:                                               ; preds = %59
  %66 = load ptr, ptr %11, align 8, !tbaa !5
  %67 = load i64, ptr %66, align 8, !tbaa !9
  %68 = add nsw i64 %67, 1
  store i64 %68, ptr %27, align 8, !tbaa !9
  br label %69

69:                                               ; preds = %65, %62
  br label %75

70:                                               ; preds = %56
  %71 = load ptr, ptr %11, align 8, !tbaa !5
  %72 = load i64, ptr %71, align 8, !tbaa !9
  %73 = add nsw i64 %72, 1
  %74 = sdiv i64 %73, 2
  store i64 %74, ptr %27, align 8, !tbaa !9
  br label %75

75:                                               ; preds = %70, %69
  %76 = load ptr, ptr %8, align 8, !tbaa !5
  %77 = call i64 @lsame_(ptr noundef %76, ptr noundef @.str.2)
  %78 = icmp ne i64 %77, 0
  br i1 %78, label %79, label %2231

79:                                               ; preds = %75
  %80 = load ptr, ptr %11, align 8, !tbaa !5
  %81 = load i64, ptr %80, align 8, !tbaa !9
  %82 = add nsw i64 %81, 1
  %83 = sdiv i64 %82, 2
  store i64 %83, ptr %22, align 8, !tbaa !9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !11
  %84 = load i64, ptr %29, align 8, !tbaa !9
  %85 = icmp eq i64 %84, 1
  br i1 %85, label %86, label %1059

86:                                               ; preds = %79
  %87 = load i64, ptr %28, align 8, !tbaa !9
  %88 = icmp eq i64 %87, 1
  br i1 %88, label %89, label %528

89:                                               ; preds = %86
  %90 = load i64, ptr %30, align 8, !tbaa !9
  %91 = icmp eq i64 %90, 1
  br i1 %91, label %92, label %306

92:                                               ; preds = %89
  store i64 0, ptr %21, align 8, !tbaa !9
  %93 = load i64, ptr %21, align 8, !tbaa !9
  %94 = load i64, ptr %21, align 8, !tbaa !9
  %95 = load i64, ptr %27, align 8, !tbaa !9
  %96 = mul nsw i64 %94, %95
  %97 = add nsw i64 %93, %96
  store i64 %97, ptr %14, align 8, !tbaa !9
  %98 = load float, ptr %32, align 4, !tbaa !11
  store float %98, ptr %18, align 4, !tbaa !11
  %99 = load ptr, ptr %12, align 8, !tbaa !5
  %100 = load i64, ptr %14, align 8, !tbaa !9
  %101 = getelementptr inbounds %struct.complex, ptr %99, i64 %100
  %102 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 0
  %103 = load float, ptr %102, align 4, !tbaa !13
  store float %103, ptr %17, align 4, !tbaa !11
  %104 = load float, ptr %17, align 4, !tbaa !11
  %105 = fcmp oge float %104, 0.000000e+00
  br i1 %105, label %106, label %108

106:                                              ; preds = %92
  %107 = load float, ptr %17, align 4, !tbaa !11
  br label %111

108:                                              ; preds = %92
  %109 = load float, ptr %17, align 4, !tbaa !11
  %110 = fneg float %109
  br label %111

111:                                              ; preds = %108, %106
  %112 = phi float [ %107, %106 ], [ %110, %108 ]
  %113 = fpext float %112 to double
  %114 = fptrunc double %113 to float
  store float %114, ptr %19, align 4, !tbaa !11
  %115 = load float, ptr %18, align 4, !tbaa !11
  %116 = load float, ptr %19, align 4, !tbaa !11
  %117 = fcmp oge float %115, %116
  br i1 %117, label %118, label %120

118:                                              ; preds = %111
  %119 = load float, ptr %18, align 4, !tbaa !11
  br label %122

120:                                              ; preds = %111
  %121 = load float, ptr %19, align 4, !tbaa !11
  br label %122

122:                                              ; preds = %120, %118
  %123 = phi float [ %119, %118 ], [ %121, %120 ]
  %124 = fpext float %123 to double
  %125 = fptrunc double %124 to float
  store float %125, ptr %32, align 4, !tbaa !11
  %126 = load ptr, ptr %11, align 8, !tbaa !5
  %127 = load i64, ptr %126, align 8, !tbaa !9
  %128 = sub nsw i64 %127, 1
  store i64 %128, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %129

129:                                              ; preds = %155, %122
  %130 = load i64, ptr %20, align 8, !tbaa !9
  %131 = load i64, ptr %14, align 8, !tbaa !9
  %132 = icmp sle i64 %130, %131
  br i1 %132, label %133, label %158

133:                                              ; preds = %129
  %134 = load float, ptr %32, align 4, !tbaa !11
  store float %134, ptr %17, align 4, !tbaa !11
  %135 = load ptr, ptr %12, align 8, !tbaa !5
  %136 = load i64, ptr %20, align 8, !tbaa !9
  %137 = load i64, ptr %21, align 8, !tbaa !9
  %138 = load i64, ptr %27, align 8, !tbaa !9
  %139 = mul nsw i64 %137, %138
  %140 = add nsw i64 %136, %139
  %141 = getelementptr inbounds %struct.complex, ptr %135, i64 %140
  %142 = call double @c_abs(ptr noundef %141)
  %143 = fptrunc double %142 to float
  store float %143, ptr %18, align 4, !tbaa !11
  %144 = load float, ptr %17, align 4, !tbaa !11
  %145 = load float, ptr %18, align 4, !tbaa !11
  %146 = fcmp oge float %144, %145
  br i1 %146, label %147, label %149

147:                                              ; preds = %133
  %148 = load float, ptr %17, align 4, !tbaa !11
  br label %151

149:                                              ; preds = %133
  %150 = load float, ptr %18, align 4, !tbaa !11
  br label %151

151:                                              ; preds = %149, %147
  %152 = phi float [ %148, %147 ], [ %150, %149 ]
  %153 = fpext float %152 to double
  %154 = fptrunc double %153 to float
  store float %154, ptr %32, align 4, !tbaa !11
  br label %155

155:                                              ; preds = %151
  %156 = load i64, ptr %20, align 8, !tbaa !9
  %157 = add nsw i64 %156, 1
  store i64 %157, ptr %20, align 8, !tbaa !9
  br label %129, !llvm.loop !15

158:                                              ; preds = %129
  %159 = load i64, ptr %22, align 8, !tbaa !9
  %160 = sub nsw i64 %159, 1
  store i64 %160, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %161

161:                                              ; preds = %302, %158
  %162 = load i64, ptr %21, align 8, !tbaa !9
  %163 = load i64, ptr %14, align 8, !tbaa !9
  %164 = icmp sle i64 %162, %163
  br i1 %164, label %165, label %305

165:                                              ; preds = %161
  %166 = load i64, ptr %21, align 8, !tbaa !9
  %167 = sub nsw i64 %166, 2
  store i64 %167, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %168

168:                                              ; preds = %194, %165
  %169 = load i64, ptr %20, align 8, !tbaa !9
  %170 = load i64, ptr %15, align 8, !tbaa !9
  %171 = icmp sle i64 %169, %170
  br i1 %171, label %172, label %197

172:                                              ; preds = %168
  %173 = load float, ptr %32, align 4, !tbaa !11
  store float %173, ptr %17, align 4, !tbaa !11
  %174 = load ptr, ptr %12, align 8, !tbaa !5
  %175 = load i64, ptr %20, align 8, !tbaa !9
  %176 = load i64, ptr %21, align 8, !tbaa !9
  %177 = load i64, ptr %27, align 8, !tbaa !9
  %178 = mul nsw i64 %176, %177
  %179 = add nsw i64 %175, %178
  %180 = getelementptr inbounds %struct.complex, ptr %174, i64 %179
  %181 = call double @c_abs(ptr noundef %180)
  %182 = fptrunc double %181 to float
  store float %182, ptr %18, align 4, !tbaa !11
  %183 = load float, ptr %17, align 4, !tbaa !11
  %184 = load float, ptr %18, align 4, !tbaa !11
  %185 = fcmp oge float %183, %184
  br i1 %185, label %186, label %188

186:                                              ; preds = %172
  %187 = load float, ptr %17, align 4, !tbaa !11
  br label %190

188:                                              ; preds = %172
  %189 = load float, ptr %18, align 4, !tbaa !11
  br label %190

190:                                              ; preds = %188, %186
  %191 = phi float [ %187, %186 ], [ %189, %188 ]
  %192 = fpext float %191 to double
  %193 = fptrunc double %192 to float
  store float %193, ptr %32, align 4, !tbaa !11
  br label %194

194:                                              ; preds = %190
  %195 = load i64, ptr %20, align 8, !tbaa !9
  %196 = add nsw i64 %195, 1
  store i64 %196, ptr %20, align 8, !tbaa !9
  br label %168, !llvm.loop !17

197:                                              ; preds = %168
  %198 = load i64, ptr %21, align 8, !tbaa !9
  %199 = sub nsw i64 %198, 1
  store i64 %199, ptr %20, align 8, !tbaa !9
  %200 = load i64, ptr %20, align 8, !tbaa !9
  %201 = load i64, ptr %21, align 8, !tbaa !9
  %202 = load i64, ptr %27, align 8, !tbaa !9
  %203 = mul nsw i64 %201, %202
  %204 = add nsw i64 %200, %203
  store i64 %204, ptr %15, align 8, !tbaa !9
  %205 = load float, ptr %32, align 4, !tbaa !11
  store float %205, ptr %18, align 4, !tbaa !11
  %206 = load ptr, ptr %12, align 8, !tbaa !5
  %207 = load i64, ptr %15, align 8, !tbaa !9
  %208 = getelementptr inbounds %struct.complex, ptr %206, i64 %207
  %209 = getelementptr inbounds %struct.complex, ptr %208, i32 0, i32 0
  %210 = load float, ptr %209, align 4, !tbaa !13
  store float %210, ptr %17, align 4, !tbaa !11
  %211 = load float, ptr %17, align 4, !tbaa !11
  %212 = fcmp oge float %211, 0.000000e+00
  br i1 %212, label %213, label %215

213:                                              ; preds = %197
  %214 = load float, ptr %17, align 4, !tbaa !11
  br label %218

215:                                              ; preds = %197
  %216 = load float, ptr %17, align 4, !tbaa !11
  %217 = fneg float %216
  br label %218

218:                                              ; preds = %215, %213
  %219 = phi float [ %214, %213 ], [ %217, %215 ]
  %220 = fpext float %219 to double
  %221 = fptrunc double %220 to float
  store float %221, ptr %19, align 4, !tbaa !11
  %222 = load float, ptr %18, align 4, !tbaa !11
  %223 = load float, ptr %19, align 4, !tbaa !11
  %224 = fcmp oge float %222, %223
  br i1 %224, label %225, label %227

225:                                              ; preds = %218
  %226 = load float, ptr %18, align 4, !tbaa !11
  br label %229

227:                                              ; preds = %218
  %228 = load float, ptr %19, align 4, !tbaa !11
  br label %229

229:                                              ; preds = %227, %225
  %230 = phi float [ %226, %225 ], [ %228, %227 ]
  %231 = fpext float %230 to double
  %232 = fptrunc double %231 to float
  store float %232, ptr %32, align 4, !tbaa !11
  %233 = load i64, ptr %21, align 8, !tbaa !9
  store i64 %233, ptr %20, align 8, !tbaa !9
  %234 = load i64, ptr %20, align 8, !tbaa !9
  %235 = load i64, ptr %21, align 8, !tbaa !9
  %236 = load i64, ptr %27, align 8, !tbaa !9
  %237 = mul nsw i64 %235, %236
  %238 = add nsw i64 %234, %237
  store i64 %238, ptr %15, align 8, !tbaa !9
  %239 = load float, ptr %32, align 4, !tbaa !11
  store float %239, ptr %18, align 4, !tbaa !11
  %240 = load ptr, ptr %12, align 8, !tbaa !5
  %241 = load i64, ptr %15, align 8, !tbaa !9
  %242 = getelementptr inbounds %struct.complex, ptr %240, i64 %241
  %243 = getelementptr inbounds %struct.complex, ptr %242, i32 0, i32 0
  %244 = load float, ptr %243, align 4, !tbaa !13
  store float %244, ptr %17, align 4, !tbaa !11
  %245 = load float, ptr %17, align 4, !tbaa !11
  %246 = fcmp oge float %245, 0.000000e+00
  br i1 %246, label %247, label %249

247:                                              ; preds = %229
  %248 = load float, ptr %17, align 4, !tbaa !11
  br label %252

249:                                              ; preds = %229
  %250 = load float, ptr %17, align 4, !tbaa !11
  %251 = fneg float %250
  br label %252

252:                                              ; preds = %249, %247
  %253 = phi float [ %248, %247 ], [ %251, %249 ]
  %254 = fpext float %253 to double
  %255 = fptrunc double %254 to float
  store float %255, ptr %19, align 4, !tbaa !11
  %256 = load float, ptr %18, align 4, !tbaa !11
  %257 = load float, ptr %19, align 4, !tbaa !11
  %258 = fcmp oge float %256, %257
  br i1 %258, label %259, label %261

259:                                              ; preds = %252
  %260 = load float, ptr %18, align 4, !tbaa !11
  br label %263

261:                                              ; preds = %252
  %262 = load float, ptr %19, align 4, !tbaa !11
  br label %263

263:                                              ; preds = %261, %259
  %264 = phi float [ %260, %259 ], [ %262, %261 ]
  %265 = fpext float %264 to double
  %266 = fptrunc double %265 to float
  store float %266, ptr %32, align 4, !tbaa !11
  %267 = load ptr, ptr %11, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = sub nsw i64 %268, 1
  store i64 %269, ptr %15, align 8, !tbaa !9
  %270 = load i64, ptr %21, align 8, !tbaa !9
  %271 = add nsw i64 %270, 1
  store i64 %271, ptr %20, align 8, !tbaa !9
  br label %272

272:                                              ; preds = %298, %263
  %273 = load i64, ptr %20, align 8, !tbaa !9
  %274 = load i64, ptr %15, align 8, !tbaa !9
  %275 = icmp sle i64 %273, %274
  br i1 %275, label %276, label %301

276:                                              ; preds = %272
  %277 = load float, ptr %32, align 4, !tbaa !11
  store float %277, ptr %17, align 4, !tbaa !11
  %278 = load ptr, ptr %12, align 8, !tbaa !5
  %279 = load i64, ptr %20, align 8, !tbaa !9
  %280 = load i64, ptr %21, align 8, !tbaa !9
  %281 = load i64, ptr %27, align 8, !tbaa !9
  %282 = mul nsw i64 %280, %281
  %283 = add nsw i64 %279, %282
  %284 = getelementptr inbounds %struct.complex, ptr %278, i64 %283
  %285 = call double @c_abs(ptr noundef %284)
  %286 = fptrunc double %285 to float
  store float %286, ptr %18, align 4, !tbaa !11
  %287 = load float, ptr %17, align 4, !tbaa !11
  %288 = load float, ptr %18, align 4, !tbaa !11
  %289 = fcmp oge float %287, %288
  br i1 %289, label %290, label %292

290:                                              ; preds = %276
  %291 = load float, ptr %17, align 4, !tbaa !11
  br label %294

292:                                              ; preds = %276
  %293 = load float, ptr %18, align 4, !tbaa !11
  br label %294

294:                                              ; preds = %292, %290
  %295 = phi float [ %291, %290 ], [ %293, %292 ]
  %296 = fpext float %295 to double
  %297 = fptrunc double %296 to float
  store float %297, ptr %32, align 4, !tbaa !11
  br label %298

298:                                              ; preds = %294
  %299 = load i64, ptr %20, align 8, !tbaa !9
  %300 = add nsw i64 %299, 1
  store i64 %300, ptr %20, align 8, !tbaa !9
  br label %272, !llvm.loop !18

301:                                              ; preds = %272
  br label %302

302:                                              ; preds = %301
  %303 = load i64, ptr %21, align 8, !tbaa !9
  %304 = add nsw i64 %303, 1
  store i64 %304, ptr %21, align 8, !tbaa !9
  br label %161, !llvm.loop !19

305:                                              ; preds = %161
  br label %527

306:                                              ; preds = %89
  %307 = load i64, ptr %22, align 8, !tbaa !9
  %308 = sub nsw i64 %307, 2
  store i64 %308, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %309

309:                                              ; preds = %457, %306
  %310 = load i64, ptr %21, align 8, !tbaa !9
  %311 = load i64, ptr %14, align 8, !tbaa !9
  %312 = icmp sle i64 %310, %311
  br i1 %312, label %313, label %460

313:                                              ; preds = %309
  %314 = load i64, ptr %22, align 8, !tbaa !9
  %315 = load i64, ptr %21, align 8, !tbaa !9
  %316 = add nsw i64 %314, %315
  %317 = sub nsw i64 %316, 2
  store i64 %317, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %318

318:                                              ; preds = %344, %313
  %319 = load i64, ptr %20, align 8, !tbaa !9
  %320 = load i64, ptr %15, align 8, !tbaa !9
  %321 = icmp sle i64 %319, %320
  br i1 %321, label %322, label %347

322:                                              ; preds = %318
  %323 = load float, ptr %32, align 4, !tbaa !11
  store float %323, ptr %17, align 4, !tbaa !11
  %324 = load ptr, ptr %12, align 8, !tbaa !5
  %325 = load i64, ptr %20, align 8, !tbaa !9
  %326 = load i64, ptr %21, align 8, !tbaa !9
  %327 = load i64, ptr %27, align 8, !tbaa !9
  %328 = mul nsw i64 %326, %327
  %329 = add nsw i64 %325, %328
  %330 = getelementptr inbounds %struct.complex, ptr %324, i64 %329
  %331 = call double @c_abs(ptr noundef %330)
  %332 = fptrunc double %331 to float
  store float %332, ptr %18, align 4, !tbaa !11
  %333 = load float, ptr %17, align 4, !tbaa !11
  %334 = load float, ptr %18, align 4, !tbaa !11
  %335 = fcmp oge float %333, %334
  br i1 %335, label %336, label %338

336:                                              ; preds = %322
  %337 = load float, ptr %17, align 4, !tbaa !11
  br label %340

338:                                              ; preds = %322
  %339 = load float, ptr %18, align 4, !tbaa !11
  br label %340

340:                                              ; preds = %338, %336
  %341 = phi float [ %337, %336 ], [ %339, %338 ]
  %342 = fpext float %341 to double
  %343 = fptrunc double %342 to float
  store float %343, ptr %32, align 4, !tbaa !11
  br label %344

344:                                              ; preds = %340
  %345 = load i64, ptr %20, align 8, !tbaa !9
  %346 = add nsw i64 %345, 1
  store i64 %346, ptr %20, align 8, !tbaa !9
  br label %318, !llvm.loop !20

347:                                              ; preds = %318
  %348 = load i64, ptr %22, align 8, !tbaa !9
  %349 = load i64, ptr %21, align 8, !tbaa !9
  %350 = add nsw i64 %348, %349
  %351 = sub nsw i64 %350, 1
  store i64 %351, ptr %20, align 8, !tbaa !9
  %352 = load i64, ptr %20, align 8, !tbaa !9
  %353 = load i64, ptr %21, align 8, !tbaa !9
  %354 = load i64, ptr %27, align 8, !tbaa !9
  %355 = mul nsw i64 %353, %354
  %356 = add nsw i64 %352, %355
  store i64 %356, ptr %15, align 8, !tbaa !9
  %357 = load float, ptr %32, align 4, !tbaa !11
  store float %357, ptr %18, align 4, !tbaa !11
  %358 = load ptr, ptr %12, align 8, !tbaa !5
  %359 = load i64, ptr %15, align 8, !tbaa !9
  %360 = getelementptr inbounds %struct.complex, ptr %358, i64 %359
  %361 = getelementptr inbounds %struct.complex, ptr %360, i32 0, i32 0
  %362 = load float, ptr %361, align 4, !tbaa !13
  store float %362, ptr %17, align 4, !tbaa !11
  %363 = load float, ptr %17, align 4, !tbaa !11
  %364 = fcmp oge float %363, 0.000000e+00
  br i1 %364, label %365, label %367

365:                                              ; preds = %347
  %366 = load float, ptr %17, align 4, !tbaa !11
  br label %370

367:                                              ; preds = %347
  %368 = load float, ptr %17, align 4, !tbaa !11
  %369 = fneg float %368
  br label %370

370:                                              ; preds = %367, %365
  %371 = phi float [ %366, %365 ], [ %369, %367 ]
  %372 = fpext float %371 to double
  %373 = fptrunc double %372 to float
  store float %373, ptr %19, align 4, !tbaa !11
  %374 = load float, ptr %18, align 4, !tbaa !11
  %375 = load float, ptr %19, align 4, !tbaa !11
  %376 = fcmp oge float %374, %375
  br i1 %376, label %377, label %379

377:                                              ; preds = %370
  %378 = load float, ptr %18, align 4, !tbaa !11
  br label %381

379:                                              ; preds = %370
  %380 = load float, ptr %19, align 4, !tbaa !11
  br label %381

381:                                              ; preds = %379, %377
  %382 = phi float [ %378, %377 ], [ %380, %379 ]
  %383 = fpext float %382 to double
  %384 = fptrunc double %383 to float
  store float %384, ptr %32, align 4, !tbaa !11
  %385 = load i64, ptr %20, align 8, !tbaa !9
  %386 = add nsw i64 %385, 1
  store i64 %386, ptr %20, align 8, !tbaa !9
  %387 = load i64, ptr %20, align 8, !tbaa !9
  %388 = load i64, ptr %21, align 8, !tbaa !9
  %389 = load i64, ptr %27, align 8, !tbaa !9
  %390 = mul nsw i64 %388, %389
  %391 = add nsw i64 %387, %390
  store i64 %391, ptr %15, align 8, !tbaa !9
  %392 = load float, ptr %32, align 4, !tbaa !11
  store float %392, ptr %18, align 4, !tbaa !11
  %393 = load ptr, ptr %12, align 8, !tbaa !5
  %394 = load i64, ptr %15, align 8, !tbaa !9
  %395 = getelementptr inbounds %struct.complex, ptr %393, i64 %394
  %396 = getelementptr inbounds %struct.complex, ptr %395, i32 0, i32 0
  %397 = load float, ptr %396, align 4, !tbaa !13
  store float %397, ptr %17, align 4, !tbaa !11
  %398 = load float, ptr %17, align 4, !tbaa !11
  %399 = fcmp oge float %398, 0.000000e+00
  br i1 %399, label %400, label %402

400:                                              ; preds = %381
  %401 = load float, ptr %17, align 4, !tbaa !11
  br label %405

402:                                              ; preds = %381
  %403 = load float, ptr %17, align 4, !tbaa !11
  %404 = fneg float %403
  br label %405

405:                                              ; preds = %402, %400
  %406 = phi float [ %401, %400 ], [ %404, %402 ]
  %407 = fpext float %406 to double
  %408 = fptrunc double %407 to float
  store float %408, ptr %19, align 4, !tbaa !11
  %409 = load float, ptr %18, align 4, !tbaa !11
  %410 = load float, ptr %19, align 4, !tbaa !11
  %411 = fcmp oge float %409, %410
  br i1 %411, label %412, label %414

412:                                              ; preds = %405
  %413 = load float, ptr %18, align 4, !tbaa !11
  br label %416

414:                                              ; preds = %405
  %415 = load float, ptr %19, align 4, !tbaa !11
  br label %416

416:                                              ; preds = %414, %412
  %417 = phi float [ %413, %412 ], [ %415, %414 ]
  %418 = fpext float %417 to double
  %419 = fptrunc double %418 to float
  store float %419, ptr %32, align 4, !tbaa !11
  %420 = load ptr, ptr %11, align 8, !tbaa !5
  %421 = load i64, ptr %420, align 8, !tbaa !9
  %422 = sub nsw i64 %421, 1
  store i64 %422, ptr %15, align 8, !tbaa !9
  %423 = load i64, ptr %22, align 8, !tbaa !9
  %424 = load i64, ptr %21, align 8, !tbaa !9
  %425 = add nsw i64 %423, %424
  %426 = add nsw i64 %425, 1
  store i64 %426, ptr %20, align 8, !tbaa !9
  br label %427

427:                                              ; preds = %453, %416
  %428 = load i64, ptr %20, align 8, !tbaa !9
  %429 = load i64, ptr %15, align 8, !tbaa !9
  %430 = icmp sle i64 %428, %429
  br i1 %430, label %431, label %456

431:                                              ; preds = %427
  %432 = load float, ptr %32, align 4, !tbaa !11
  store float %432, ptr %17, align 4, !tbaa !11
  %433 = load ptr, ptr %12, align 8, !tbaa !5
  %434 = load i64, ptr %20, align 8, !tbaa !9
  %435 = load i64, ptr %21, align 8, !tbaa !9
  %436 = load i64, ptr %27, align 8, !tbaa !9
  %437 = mul nsw i64 %435, %436
  %438 = add nsw i64 %434, %437
  %439 = getelementptr inbounds %struct.complex, ptr %433, i64 %438
  %440 = call double @c_abs(ptr noundef %439)
  %441 = fptrunc double %440 to float
  store float %441, ptr %18, align 4, !tbaa !11
  %442 = load float, ptr %17, align 4, !tbaa !11
  %443 = load float, ptr %18, align 4, !tbaa !11
  %444 = fcmp oge float %442, %443
  br i1 %444, label %445, label %447

445:                                              ; preds = %431
  %446 = load float, ptr %17, align 4, !tbaa !11
  br label %449

447:                                              ; preds = %431
  %448 = load float, ptr %18, align 4, !tbaa !11
  br label %449

449:                                              ; preds = %447, %445
  %450 = phi float [ %446, %445 ], [ %448, %447 ]
  %451 = fpext float %450 to double
  %452 = fptrunc double %451 to float
  store float %452, ptr %32, align 4, !tbaa !11
  br label %453

453:                                              ; preds = %449
  %454 = load i64, ptr %20, align 8, !tbaa !9
  %455 = add nsw i64 %454, 1
  store i64 %455, ptr %20, align 8, !tbaa !9
  br label %427, !llvm.loop !21

456:                                              ; preds = %427
  br label %457

457:                                              ; preds = %456
  %458 = load i64, ptr %21, align 8, !tbaa !9
  %459 = add nsw i64 %458, 1
  store i64 %459, ptr %21, align 8, !tbaa !9
  br label %309, !llvm.loop !22

460:                                              ; preds = %309
  %461 = load ptr, ptr %11, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = sub nsw i64 %462, 2
  store i64 %463, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %464

464:                                              ; preds = %490, %460
  %465 = load i64, ptr %20, align 8, !tbaa !9
  %466 = load i64, ptr %14, align 8, !tbaa !9
  %467 = icmp sle i64 %465, %466
  br i1 %467, label %468, label %493

468:                                              ; preds = %464
  %469 = load float, ptr %32, align 4, !tbaa !11
  store float %469, ptr %17, align 4, !tbaa !11
  %470 = load ptr, ptr %12, align 8, !tbaa !5
  %471 = load i64, ptr %20, align 8, !tbaa !9
  %472 = load i64, ptr %21, align 8, !tbaa !9
  %473 = load i64, ptr %27, align 8, !tbaa !9
  %474 = mul nsw i64 %472, %473
  %475 = add nsw i64 %471, %474
  %476 = getelementptr inbounds %struct.complex, ptr %470, i64 %475
  %477 = call double @c_abs(ptr noundef %476)
  %478 = fptrunc double %477 to float
  store float %478, ptr %18, align 4, !tbaa !11
  %479 = load float, ptr %17, align 4, !tbaa !11
  %480 = load float, ptr %18, align 4, !tbaa !11
  %481 = fcmp oge float %479, %480
  br i1 %481, label %482, label %484

482:                                              ; preds = %468
  %483 = load float, ptr %17, align 4, !tbaa !11
  br label %486

484:                                              ; preds = %468
  %485 = load float, ptr %18, align 4, !tbaa !11
  br label %486

486:                                              ; preds = %484, %482
  %487 = phi float [ %483, %482 ], [ %485, %484 ]
  %488 = fpext float %487 to double
  %489 = fptrunc double %488 to float
  store float %489, ptr %32, align 4, !tbaa !11
  br label %490

490:                                              ; preds = %486
  %491 = load i64, ptr %20, align 8, !tbaa !9
  %492 = add nsw i64 %491, 1
  store i64 %492, ptr %20, align 8, !tbaa !9
  br label %464, !llvm.loop !23

493:                                              ; preds = %464
  %494 = load i64, ptr %20, align 8, !tbaa !9
  %495 = load i64, ptr %21, align 8, !tbaa !9
  %496 = load i64, ptr %27, align 8, !tbaa !9
  %497 = mul nsw i64 %495, %496
  %498 = add nsw i64 %494, %497
  store i64 %498, ptr %14, align 8, !tbaa !9
  %499 = load float, ptr %32, align 4, !tbaa !11
  store float %499, ptr %18, align 4, !tbaa !11
  %500 = load ptr, ptr %12, align 8, !tbaa !5
  %501 = load i64, ptr %14, align 8, !tbaa !9
  %502 = getelementptr inbounds %struct.complex, ptr %500, i64 %501
  %503 = getelementptr inbounds %struct.complex, ptr %502, i32 0, i32 0
  %504 = load float, ptr %503, align 4, !tbaa !13
  store float %504, ptr %17, align 4, !tbaa !11
  %505 = load float, ptr %17, align 4, !tbaa !11
  %506 = fcmp oge float %505, 0.000000e+00
  br i1 %506, label %507, label %509

507:                                              ; preds = %493
  %508 = load float, ptr %17, align 4, !tbaa !11
  br label %512

509:                                              ; preds = %493
  %510 = load float, ptr %17, align 4, !tbaa !11
  %511 = fneg float %510
  br label %512

512:                                              ; preds = %509, %507
  %513 = phi float [ %508, %507 ], [ %511, %509 ]
  %514 = fpext float %513 to double
  %515 = fptrunc double %514 to float
  store float %515, ptr %19, align 4, !tbaa !11
  %516 = load float, ptr %18, align 4, !tbaa !11
  %517 = load float, ptr %19, align 4, !tbaa !11
  %518 = fcmp oge float %516, %517
  br i1 %518, label %519, label %521

519:                                              ; preds = %512
  %520 = load float, ptr %18, align 4, !tbaa !11
  br label %523

521:                                              ; preds = %512
  %522 = load float, ptr %19, align 4, !tbaa !11
  br label %523

523:                                              ; preds = %521, %519
  %524 = phi float [ %520, %519 ], [ %522, %521 ]
  %525 = fpext float %524 to double
  %526 = fptrunc double %525 to float
  store float %526, ptr %32, align 4, !tbaa !11
  br label %527

527:                                              ; preds = %523, %305
  br label %1058

528:                                              ; preds = %86
  %529 = load i64, ptr %30, align 8, !tbaa !9
  %530 = icmp eq i64 %529, 1
  br i1 %530, label %531, label %792

531:                                              ; preds = %528
  %532 = load i64, ptr %22, align 8, !tbaa !9
  %533 = sub nsw i64 %532, 2
  store i64 %533, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %534

534:                                              ; preds = %674, %531
  %535 = load i64, ptr %21, align 8, !tbaa !9
  %536 = load i64, ptr %14, align 8, !tbaa !9
  %537 = icmp sle i64 %535, %536
  br i1 %537, label %538, label %677

538:                                              ; preds = %534
  %539 = load i64, ptr %21, align 8, !tbaa !9
  %540 = sub nsw i64 %539, 1
  store i64 %540, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %541

541:                                              ; preds = %567, %538
  %542 = load i64, ptr %20, align 8, !tbaa !9
  %543 = load i64, ptr %15, align 8, !tbaa !9
  %544 = icmp sle i64 %542, %543
  br i1 %544, label %545, label %570

545:                                              ; preds = %541
  %546 = load float, ptr %32, align 4, !tbaa !11
  store float %546, ptr %17, align 4, !tbaa !11
  %547 = load ptr, ptr %12, align 8, !tbaa !5
  %548 = load i64, ptr %20, align 8, !tbaa !9
  %549 = load i64, ptr %21, align 8, !tbaa !9
  %550 = load i64, ptr %27, align 8, !tbaa !9
  %551 = mul nsw i64 %549, %550
  %552 = add nsw i64 %548, %551
  %553 = getelementptr inbounds %struct.complex, ptr %547, i64 %552
  %554 = call double @c_abs(ptr noundef %553)
  %555 = fptrunc double %554 to float
  store float %555, ptr %18, align 4, !tbaa !11
  %556 = load float, ptr %17, align 4, !tbaa !11
  %557 = load float, ptr %18, align 4, !tbaa !11
  %558 = fcmp oge float %556, %557
  br i1 %558, label %559, label %561

559:                                              ; preds = %545
  %560 = load float, ptr %17, align 4, !tbaa !11
  br label %563

561:                                              ; preds = %545
  %562 = load float, ptr %18, align 4, !tbaa !11
  br label %563

563:                                              ; preds = %561, %559
  %564 = phi float [ %560, %559 ], [ %562, %561 ]
  %565 = fpext float %564 to double
  %566 = fptrunc double %565 to float
  store float %566, ptr %32, align 4, !tbaa !11
  br label %567

567:                                              ; preds = %563
  %568 = load i64, ptr %20, align 8, !tbaa !9
  %569 = add nsw i64 %568, 1
  store i64 %569, ptr %20, align 8, !tbaa !9
  br label %541, !llvm.loop !24

570:                                              ; preds = %541
  %571 = load i64, ptr %21, align 8, !tbaa !9
  store i64 %571, ptr %20, align 8, !tbaa !9
  %572 = load i64, ptr %20, align 8, !tbaa !9
  %573 = load i64, ptr %21, align 8, !tbaa !9
  %574 = load i64, ptr %27, align 8, !tbaa !9
  %575 = mul nsw i64 %573, %574
  %576 = add nsw i64 %572, %575
  store i64 %576, ptr %15, align 8, !tbaa !9
  %577 = load float, ptr %32, align 4, !tbaa !11
  store float %577, ptr %18, align 4, !tbaa !11
  %578 = load ptr, ptr %12, align 8, !tbaa !5
  %579 = load i64, ptr %15, align 8, !tbaa !9
  %580 = getelementptr inbounds %struct.complex, ptr %578, i64 %579
  %581 = getelementptr inbounds %struct.complex, ptr %580, i32 0, i32 0
  %582 = load float, ptr %581, align 4, !tbaa !13
  store float %582, ptr %17, align 4, !tbaa !11
  %583 = load float, ptr %17, align 4, !tbaa !11
  %584 = fcmp oge float %583, 0.000000e+00
  br i1 %584, label %585, label %587

585:                                              ; preds = %570
  %586 = load float, ptr %17, align 4, !tbaa !11
  br label %590

587:                                              ; preds = %570
  %588 = load float, ptr %17, align 4, !tbaa !11
  %589 = fneg float %588
  br label %590

590:                                              ; preds = %587, %585
  %591 = phi float [ %586, %585 ], [ %589, %587 ]
  %592 = fpext float %591 to double
  %593 = fptrunc double %592 to float
  store float %593, ptr %19, align 4, !tbaa !11
  %594 = load float, ptr %18, align 4, !tbaa !11
  %595 = load float, ptr %19, align 4, !tbaa !11
  %596 = fcmp oge float %594, %595
  br i1 %596, label %597, label %599

597:                                              ; preds = %590
  %598 = load float, ptr %18, align 4, !tbaa !11
  br label %601

599:                                              ; preds = %590
  %600 = load float, ptr %19, align 4, !tbaa !11
  br label %601

601:                                              ; preds = %599, %597
  %602 = phi float [ %598, %597 ], [ %600, %599 ]
  %603 = fpext float %602 to double
  %604 = fptrunc double %603 to float
  store float %604, ptr %32, align 4, !tbaa !11
  %605 = load i64, ptr %21, align 8, !tbaa !9
  %606 = add nsw i64 %605, 1
  store i64 %606, ptr %20, align 8, !tbaa !9
  %607 = load i64, ptr %20, align 8, !tbaa !9
  %608 = load i64, ptr %21, align 8, !tbaa !9
  %609 = load i64, ptr %27, align 8, !tbaa !9
  %610 = mul nsw i64 %608, %609
  %611 = add nsw i64 %607, %610
  store i64 %611, ptr %15, align 8, !tbaa !9
  %612 = load float, ptr %32, align 4, !tbaa !11
  store float %612, ptr %18, align 4, !tbaa !11
  %613 = load ptr, ptr %12, align 8, !tbaa !5
  %614 = load i64, ptr %15, align 8, !tbaa !9
  %615 = getelementptr inbounds %struct.complex, ptr %613, i64 %614
  %616 = getelementptr inbounds %struct.complex, ptr %615, i32 0, i32 0
  %617 = load float, ptr %616, align 4, !tbaa !13
  store float %617, ptr %17, align 4, !tbaa !11
  %618 = load float, ptr %17, align 4, !tbaa !11
  %619 = fcmp oge float %618, 0.000000e+00
  br i1 %619, label %620, label %622

620:                                              ; preds = %601
  %621 = load float, ptr %17, align 4, !tbaa !11
  br label %625

622:                                              ; preds = %601
  %623 = load float, ptr %17, align 4, !tbaa !11
  %624 = fneg float %623
  br label %625

625:                                              ; preds = %622, %620
  %626 = phi float [ %621, %620 ], [ %624, %622 ]
  %627 = fpext float %626 to double
  %628 = fptrunc double %627 to float
  store float %628, ptr %19, align 4, !tbaa !11
  %629 = load float, ptr %18, align 4, !tbaa !11
  %630 = load float, ptr %19, align 4, !tbaa !11
  %631 = fcmp oge float %629, %630
  br i1 %631, label %632, label %634

632:                                              ; preds = %625
  %633 = load float, ptr %18, align 4, !tbaa !11
  br label %636

634:                                              ; preds = %625
  %635 = load float, ptr %19, align 4, !tbaa !11
  br label %636

636:                                              ; preds = %634, %632
  %637 = phi float [ %633, %632 ], [ %635, %634 ]
  %638 = fpext float %637 to double
  %639 = fptrunc double %638 to float
  store float %639, ptr %32, align 4, !tbaa !11
  %640 = load i64, ptr %22, align 8, !tbaa !9
  %641 = sub nsw i64 %640, 1
  store i64 %641, ptr %15, align 8, !tbaa !9
  %642 = load i64, ptr %21, align 8, !tbaa !9
  %643 = add nsw i64 %642, 2
  store i64 %643, ptr %20, align 8, !tbaa !9
  br label %644

644:                                              ; preds = %670, %636
  %645 = load i64, ptr %20, align 8, !tbaa !9
  %646 = load i64, ptr %15, align 8, !tbaa !9
  %647 = icmp sle i64 %645, %646
  br i1 %647, label %648, label %673

648:                                              ; preds = %644
  %649 = load float, ptr %32, align 4, !tbaa !11
  store float %649, ptr %17, align 4, !tbaa !11
  %650 = load ptr, ptr %12, align 8, !tbaa !5
  %651 = load i64, ptr %20, align 8, !tbaa !9
  %652 = load i64, ptr %21, align 8, !tbaa !9
  %653 = load i64, ptr %27, align 8, !tbaa !9
  %654 = mul nsw i64 %652, %653
  %655 = add nsw i64 %651, %654
  %656 = getelementptr inbounds %struct.complex, ptr %650, i64 %655
  %657 = call double @c_abs(ptr noundef %656)
  %658 = fptrunc double %657 to float
  store float %658, ptr %18, align 4, !tbaa !11
  %659 = load float, ptr %17, align 4, !tbaa !11
  %660 = load float, ptr %18, align 4, !tbaa !11
  %661 = fcmp oge float %659, %660
  br i1 %661, label %662, label %664

662:                                              ; preds = %648
  %663 = load float, ptr %17, align 4, !tbaa !11
  br label %666

664:                                              ; preds = %648
  %665 = load float, ptr %18, align 4, !tbaa !11
  br label %666

666:                                              ; preds = %664, %662
  %667 = phi float [ %663, %662 ], [ %665, %664 ]
  %668 = fpext float %667 to double
  %669 = fptrunc double %668 to float
  store float %669, ptr %32, align 4, !tbaa !11
  br label %670

670:                                              ; preds = %666
  %671 = load i64, ptr %20, align 8, !tbaa !9
  %672 = add nsw i64 %671, 1
  store i64 %672, ptr %20, align 8, !tbaa !9
  br label %644, !llvm.loop !25

673:                                              ; preds = %644
  br label %674

674:                                              ; preds = %673
  %675 = load i64, ptr %21, align 8, !tbaa !9
  %676 = add nsw i64 %675, 1
  store i64 %676, ptr %21, align 8, !tbaa !9
  br label %534, !llvm.loop !26

677:                                              ; preds = %534
  %678 = load i64, ptr %22, align 8, !tbaa !9
  %679 = sub nsw i64 %678, 1
  store i64 %679, ptr %21, align 8, !tbaa !9
  %680 = load i64, ptr %22, align 8, !tbaa !9
  %681 = sub nsw i64 %680, 2
  store i64 %681, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %682

682:                                              ; preds = %708, %677
  %683 = load i64, ptr %20, align 8, !tbaa !9
  %684 = load i64, ptr %14, align 8, !tbaa !9
  %685 = icmp sle i64 %683, %684
  br i1 %685, label %686, label %711

686:                                              ; preds = %682
  %687 = load float, ptr %32, align 4, !tbaa !11
  store float %687, ptr %17, align 4, !tbaa !11
  %688 = load ptr, ptr %12, align 8, !tbaa !5
  %689 = load i64, ptr %20, align 8, !tbaa !9
  %690 = load i64, ptr %21, align 8, !tbaa !9
  %691 = load i64, ptr %27, align 8, !tbaa !9
  %692 = mul nsw i64 %690, %691
  %693 = add nsw i64 %689, %692
  %694 = getelementptr inbounds %struct.complex, ptr %688, i64 %693
  %695 = call double @c_abs(ptr noundef %694)
  %696 = fptrunc double %695 to float
  store float %696, ptr %18, align 4, !tbaa !11
  %697 = load float, ptr %17, align 4, !tbaa !11
  %698 = load float, ptr %18, align 4, !tbaa !11
  %699 = fcmp oge float %697, %698
  br i1 %699, label %700, label %702

700:                                              ; preds = %686
  %701 = load float, ptr %17, align 4, !tbaa !11
  br label %704

702:                                              ; preds = %686
  %703 = load float, ptr %18, align 4, !tbaa !11
  br label %704

704:                                              ; preds = %702, %700
  %705 = phi float [ %701, %700 ], [ %703, %702 ]
  %706 = fpext float %705 to double
  %707 = fptrunc double %706 to float
  store float %707, ptr %32, align 4, !tbaa !11
  br label %708

708:                                              ; preds = %704
  %709 = load i64, ptr %20, align 8, !tbaa !9
  %710 = add nsw i64 %709, 1
  store i64 %710, ptr %20, align 8, !tbaa !9
  br label %682, !llvm.loop !27

711:                                              ; preds = %682
  %712 = load i64, ptr %22, align 8, !tbaa !9
  %713 = sub nsw i64 %712, 1
  store i64 %713, ptr %20, align 8, !tbaa !9
  %714 = load i64, ptr %20, align 8, !tbaa !9
  %715 = load i64, ptr %21, align 8, !tbaa !9
  %716 = load i64, ptr %27, align 8, !tbaa !9
  %717 = mul nsw i64 %715, %716
  %718 = add nsw i64 %714, %717
  store i64 %718, ptr %14, align 8, !tbaa !9
  %719 = load float, ptr %32, align 4, !tbaa !11
  store float %719, ptr %18, align 4, !tbaa !11
  %720 = load ptr, ptr %12, align 8, !tbaa !5
  %721 = load i64, ptr %14, align 8, !tbaa !9
  %722 = getelementptr inbounds %struct.complex, ptr %720, i64 %721
  %723 = getelementptr inbounds %struct.complex, ptr %722, i32 0, i32 0
  %724 = load float, ptr %723, align 4, !tbaa !13
  store float %724, ptr %17, align 4, !tbaa !11
  %725 = load float, ptr %17, align 4, !tbaa !11
  %726 = fcmp oge float %725, 0.000000e+00
  br i1 %726, label %727, label %729

727:                                              ; preds = %711
  %728 = load float, ptr %17, align 4, !tbaa !11
  br label %732

729:                                              ; preds = %711
  %730 = load float, ptr %17, align 4, !tbaa !11
  %731 = fneg float %730
  br label %732

732:                                              ; preds = %729, %727
  %733 = phi float [ %728, %727 ], [ %731, %729 ]
  %734 = fpext float %733 to double
  %735 = fptrunc double %734 to float
  store float %735, ptr %19, align 4, !tbaa !11
  %736 = load float, ptr %18, align 4, !tbaa !11
  %737 = load float, ptr %19, align 4, !tbaa !11
  %738 = fcmp oge float %736, %737
  br i1 %738, label %739, label %741

739:                                              ; preds = %732
  %740 = load float, ptr %18, align 4, !tbaa !11
  br label %743

741:                                              ; preds = %732
  %742 = load float, ptr %19, align 4, !tbaa !11
  br label %743

743:                                              ; preds = %741, %739
  %744 = phi float [ %740, %739 ], [ %742, %741 ]
  %745 = fpext float %744 to double
  %746 = fptrunc double %745 to float
  store float %746, ptr %32, align 4, !tbaa !11
  %747 = load ptr, ptr %11, align 8, !tbaa !5
  %748 = load i64, ptr %747, align 8, !tbaa !9
  %749 = sub nsw i64 %748, 1
  store i64 %749, ptr %14, align 8, !tbaa !9
  %750 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %750, ptr %21, align 8, !tbaa !9
  br label %751

751:                                              ; preds = %788, %743
  %752 = load i64, ptr %21, align 8, !tbaa !9
  %753 = load i64, ptr %14, align 8, !tbaa !9
  %754 = icmp sle i64 %752, %753
  br i1 %754, label %755, label %791

755:                                              ; preds = %751
  %756 = load i64, ptr %22, align 8, !tbaa !9
  %757 = sub nsw i64 %756, 1
  store i64 %757, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %758

758:                                              ; preds = %784, %755
  %759 = load i64, ptr %20, align 8, !tbaa !9
  %760 = load i64, ptr %15, align 8, !tbaa !9
  %761 = icmp sle i64 %759, %760
  br i1 %761, label %762, label %787

762:                                              ; preds = %758
  %763 = load float, ptr %32, align 4, !tbaa !11
  store float %763, ptr %17, align 4, !tbaa !11
  %764 = load ptr, ptr %12, align 8, !tbaa !5
  %765 = load i64, ptr %20, align 8, !tbaa !9
  %766 = load i64, ptr %21, align 8, !tbaa !9
  %767 = load i64, ptr %27, align 8, !tbaa !9
  %768 = mul nsw i64 %766, %767
  %769 = add nsw i64 %765, %768
  %770 = getelementptr inbounds %struct.complex, ptr %764, i64 %769
  %771 = call double @c_abs(ptr noundef %770)
  %772 = fptrunc double %771 to float
  store float %772, ptr %18, align 4, !tbaa !11
  %773 = load float, ptr %17, align 4, !tbaa !11
  %774 = load float, ptr %18, align 4, !tbaa !11
  %775 = fcmp oge float %773, %774
  br i1 %775, label %776, label %778

776:                                              ; preds = %762
  %777 = load float, ptr %17, align 4, !tbaa !11
  br label %780

778:                                              ; preds = %762
  %779 = load float, ptr %18, align 4, !tbaa !11
  br label %780

780:                                              ; preds = %778, %776
  %781 = phi float [ %777, %776 ], [ %779, %778 ]
  %782 = fpext float %781 to double
  %783 = fptrunc double %782 to float
  store float %783, ptr %32, align 4, !tbaa !11
  br label %784

784:                                              ; preds = %780
  %785 = load i64, ptr %20, align 8, !tbaa !9
  %786 = add nsw i64 %785, 1
  store i64 %786, ptr %20, align 8, !tbaa !9
  br label %758, !llvm.loop !28

787:                                              ; preds = %758
  br label %788

788:                                              ; preds = %787
  %789 = load i64, ptr %21, align 8, !tbaa !9
  %790 = add nsw i64 %789, 1
  store i64 %790, ptr %21, align 8, !tbaa !9
  br label %751, !llvm.loop !29

791:                                              ; preds = %751
  br label %1057

792:                                              ; preds = %528
  %793 = load i64, ptr %22, align 8, !tbaa !9
  %794 = sub nsw i64 %793, 2
  store i64 %794, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %795

795:                                              ; preds = %832, %792
  %796 = load i64, ptr %21, align 8, !tbaa !9
  %797 = load i64, ptr %14, align 8, !tbaa !9
  %798 = icmp sle i64 %796, %797
  br i1 %798, label %799, label %835

799:                                              ; preds = %795
  %800 = load i64, ptr %22, align 8, !tbaa !9
  %801 = sub nsw i64 %800, 1
  store i64 %801, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %802

802:                                              ; preds = %828, %799
  %803 = load i64, ptr %20, align 8, !tbaa !9
  %804 = load i64, ptr %15, align 8, !tbaa !9
  %805 = icmp sle i64 %803, %804
  br i1 %805, label %806, label %831

806:                                              ; preds = %802
  %807 = load float, ptr %32, align 4, !tbaa !11
  store float %807, ptr %17, align 4, !tbaa !11
  %808 = load ptr, ptr %12, align 8, !tbaa !5
  %809 = load i64, ptr %20, align 8, !tbaa !9
  %810 = load i64, ptr %21, align 8, !tbaa !9
  %811 = load i64, ptr %27, align 8, !tbaa !9
  %812 = mul nsw i64 %810, %811
  %813 = add nsw i64 %809, %812
  %814 = getelementptr inbounds %struct.complex, ptr %808, i64 %813
  %815 = call double @c_abs(ptr noundef %814)
  %816 = fptrunc double %815 to float
  store float %816, ptr %18, align 4, !tbaa !11
  %817 = load float, ptr %17, align 4, !tbaa !11
  %818 = load float, ptr %18, align 4, !tbaa !11
  %819 = fcmp oge float %817, %818
  br i1 %819, label %820, label %822

820:                                              ; preds = %806
  %821 = load float, ptr %17, align 4, !tbaa !11
  br label %824

822:                                              ; preds = %806
  %823 = load float, ptr %18, align 4, !tbaa !11
  br label %824

824:                                              ; preds = %822, %820
  %825 = phi float [ %821, %820 ], [ %823, %822 ]
  %826 = fpext float %825 to double
  %827 = fptrunc double %826 to float
  store float %827, ptr %32, align 4, !tbaa !11
  br label %828

828:                                              ; preds = %824
  %829 = load i64, ptr %20, align 8, !tbaa !9
  %830 = add nsw i64 %829, 1
  store i64 %830, ptr %20, align 8, !tbaa !9
  br label %802, !llvm.loop !30

831:                                              ; preds = %802
  br label %832

832:                                              ; preds = %831
  %833 = load i64, ptr %21, align 8, !tbaa !9
  %834 = add nsw i64 %833, 1
  store i64 %834, ptr %21, align 8, !tbaa !9
  br label %795, !llvm.loop !31

835:                                              ; preds = %795
  %836 = load i64, ptr %22, align 8, !tbaa !9
  %837 = sub nsw i64 %836, 1
  store i64 %837, ptr %21, align 8, !tbaa !9
  %838 = load i64, ptr %21, align 8, !tbaa !9
  %839 = load i64, ptr %27, align 8, !tbaa !9
  %840 = mul nsw i64 %838, %839
  store i64 %840, ptr %14, align 8, !tbaa !9
  %841 = load float, ptr %32, align 4, !tbaa !11
  store float %841, ptr %18, align 4, !tbaa !11
  %842 = load ptr, ptr %12, align 8, !tbaa !5
  %843 = load i64, ptr %14, align 8, !tbaa !9
  %844 = getelementptr inbounds %struct.complex, ptr %842, i64 %843
  %845 = getelementptr inbounds %struct.complex, ptr %844, i32 0, i32 0
  %846 = load float, ptr %845, align 4, !tbaa !13
  store float %846, ptr %17, align 4, !tbaa !11
  %847 = load float, ptr %17, align 4, !tbaa !11
  %848 = fcmp oge float %847, 0.000000e+00
  br i1 %848, label %849, label %851

849:                                              ; preds = %835
  %850 = load float, ptr %17, align 4, !tbaa !11
  br label %854

851:                                              ; preds = %835
  %852 = load float, ptr %17, align 4, !tbaa !11
  %853 = fneg float %852
  br label %854

854:                                              ; preds = %851, %849
  %855 = phi float [ %850, %849 ], [ %853, %851 ]
  %856 = fpext float %855 to double
  %857 = fptrunc double %856 to float
  store float %857, ptr %19, align 4, !tbaa !11
  %858 = load float, ptr %18, align 4, !tbaa !11
  %859 = load float, ptr %19, align 4, !tbaa !11
  %860 = fcmp oge float %858, %859
  br i1 %860, label %861, label %863

861:                                              ; preds = %854
  %862 = load float, ptr %18, align 4, !tbaa !11
  br label %865

863:                                              ; preds = %854
  %864 = load float, ptr %19, align 4, !tbaa !11
  br label %865

865:                                              ; preds = %863, %861
  %866 = phi float [ %862, %861 ], [ %864, %863 ]
  %867 = fpext float %866 to double
  %868 = fptrunc double %867 to float
  store float %868, ptr %32, align 4, !tbaa !11
  %869 = load i64, ptr %22, align 8, !tbaa !9
  %870 = sub nsw i64 %869, 1
  store i64 %870, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %871

871:                                              ; preds = %897, %865
  %872 = load i64, ptr %20, align 8, !tbaa !9
  %873 = load i64, ptr %14, align 8, !tbaa !9
  %874 = icmp sle i64 %872, %873
  br i1 %874, label %875, label %900

875:                                              ; preds = %871
  %876 = load float, ptr %32, align 4, !tbaa !11
  store float %876, ptr %17, align 4, !tbaa !11
  %877 = load ptr, ptr %12, align 8, !tbaa !5
  %878 = load i64, ptr %20, align 8, !tbaa !9
  %879 = load i64, ptr %21, align 8, !tbaa !9
  %880 = load i64, ptr %27, align 8, !tbaa !9
  %881 = mul nsw i64 %879, %880
  %882 = add nsw i64 %878, %881
  %883 = getelementptr inbounds %struct.complex, ptr %877, i64 %882
  %884 = call double @c_abs(ptr noundef %883)
  %885 = fptrunc double %884 to float
  store float %885, ptr %18, align 4, !tbaa !11
  %886 = load float, ptr %17, align 4, !tbaa !11
  %887 = load float, ptr %18, align 4, !tbaa !11
  %888 = fcmp oge float %886, %887
  br i1 %888, label %889, label %891

889:                                              ; preds = %875
  %890 = load float, ptr %17, align 4, !tbaa !11
  br label %893

891:                                              ; preds = %875
  %892 = load float, ptr %18, align 4, !tbaa !11
  br label %893

893:                                              ; preds = %891, %889
  %894 = phi float [ %890, %889 ], [ %892, %891 ]
  %895 = fpext float %894 to double
  %896 = fptrunc double %895 to float
  store float %896, ptr %32, align 4, !tbaa !11
  br label %897

897:                                              ; preds = %893
  %898 = load i64, ptr %20, align 8, !tbaa !9
  %899 = add nsw i64 %898, 1
  store i64 %899, ptr %20, align 8, !tbaa !9
  br label %871, !llvm.loop !32

900:                                              ; preds = %871
  %901 = load ptr, ptr %11, align 8, !tbaa !5
  %902 = load i64, ptr %901, align 8, !tbaa !9
  %903 = sub nsw i64 %902, 1
  store i64 %903, ptr %14, align 8, !tbaa !9
  %904 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %904, ptr %21, align 8, !tbaa !9
  br label %905

905:                                              ; preds = %1053, %900
  %906 = load i64, ptr %21, align 8, !tbaa !9
  %907 = load i64, ptr %14, align 8, !tbaa !9
  %908 = icmp sle i64 %906, %907
  br i1 %908, label %909, label %1056

909:                                              ; preds = %905
  %910 = load i64, ptr %21, align 8, !tbaa !9
  %911 = load i64, ptr %22, align 8, !tbaa !9
  %912 = sub nsw i64 %910, %911
  %913 = sub nsw i64 %912, 1
  store i64 %913, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %914

914:                                              ; preds = %940, %909
  %915 = load i64, ptr %20, align 8, !tbaa !9
  %916 = load i64, ptr %15, align 8, !tbaa !9
  %917 = icmp sle i64 %915, %916
  br i1 %917, label %918, label %943

918:                                              ; preds = %914
  %919 = load float, ptr %32, align 4, !tbaa !11
  store float %919, ptr %17, align 4, !tbaa !11
  %920 = load ptr, ptr %12, align 8, !tbaa !5
  %921 = load i64, ptr %20, align 8, !tbaa !9
  %922 = load i64, ptr %21, align 8, !tbaa !9
  %923 = load i64, ptr %27, align 8, !tbaa !9
  %924 = mul nsw i64 %922, %923
  %925 = add nsw i64 %921, %924
  %926 = getelementptr inbounds %struct.complex, ptr %920, i64 %925
  %927 = call double @c_abs(ptr noundef %926)
  %928 = fptrunc double %927 to float
  store float %928, ptr %18, align 4, !tbaa !11
  %929 = load float, ptr %17, align 4, !tbaa !11
  %930 = load float, ptr %18, align 4, !tbaa !11
  %931 = fcmp oge float %929, %930
  br i1 %931, label %932, label %934

932:                                              ; preds = %918
  %933 = load float, ptr %17, align 4, !tbaa !11
  br label %936

934:                                              ; preds = %918
  %935 = load float, ptr %18, align 4, !tbaa !11
  br label %936

936:                                              ; preds = %934, %932
  %937 = phi float [ %933, %932 ], [ %935, %934 ]
  %938 = fpext float %937 to double
  %939 = fptrunc double %938 to float
  store float %939, ptr %32, align 4, !tbaa !11
  br label %940

940:                                              ; preds = %936
  %941 = load i64, ptr %20, align 8, !tbaa !9
  %942 = add nsw i64 %941, 1
  store i64 %942, ptr %20, align 8, !tbaa !9
  br label %914, !llvm.loop !33

943:                                              ; preds = %914
  %944 = load i64, ptr %21, align 8, !tbaa !9
  %945 = load i64, ptr %22, align 8, !tbaa !9
  %946 = sub nsw i64 %944, %945
  store i64 %946, ptr %20, align 8, !tbaa !9
  %947 = load i64, ptr %20, align 8, !tbaa !9
  %948 = load i64, ptr %21, align 8, !tbaa !9
  %949 = load i64, ptr %27, align 8, !tbaa !9
  %950 = mul nsw i64 %948, %949
  %951 = add nsw i64 %947, %950
  store i64 %951, ptr %15, align 8, !tbaa !9
  %952 = load float, ptr %32, align 4, !tbaa !11
  store float %952, ptr %18, align 4, !tbaa !11
  %953 = load ptr, ptr %12, align 8, !tbaa !5
  %954 = load i64, ptr %15, align 8, !tbaa !9
  %955 = getelementptr inbounds %struct.complex, ptr %953, i64 %954
  %956 = getelementptr inbounds %struct.complex, ptr %955, i32 0, i32 0
  %957 = load float, ptr %956, align 4, !tbaa !13
  store float %957, ptr %17, align 4, !tbaa !11
  %958 = load float, ptr %17, align 4, !tbaa !11
  %959 = fcmp oge float %958, 0.000000e+00
  br i1 %959, label %960, label %962

960:                                              ; preds = %943
  %961 = load float, ptr %17, align 4, !tbaa !11
  br label %965

962:                                              ; preds = %943
  %963 = load float, ptr %17, align 4, !tbaa !11
  %964 = fneg float %963
  br label %965

965:                                              ; preds = %962, %960
  %966 = phi float [ %961, %960 ], [ %964, %962 ]
  %967 = fpext float %966 to double
  %968 = fptrunc double %967 to float
  store float %968, ptr %19, align 4, !tbaa !11
  %969 = load float, ptr %18, align 4, !tbaa !11
  %970 = load float, ptr %19, align 4, !tbaa !11
  %971 = fcmp oge float %969, %970
  br i1 %971, label %972, label %974

972:                                              ; preds = %965
  %973 = load float, ptr %18, align 4, !tbaa !11
  br label %976

974:                                              ; preds = %965
  %975 = load float, ptr %19, align 4, !tbaa !11
  br label %976

976:                                              ; preds = %974, %972
  %977 = phi float [ %973, %972 ], [ %975, %974 ]
  %978 = fpext float %977 to double
  %979 = fptrunc double %978 to float
  store float %979, ptr %32, align 4, !tbaa !11
  %980 = load i64, ptr %21, align 8, !tbaa !9
  %981 = load i64, ptr %22, align 8, !tbaa !9
  %982 = sub nsw i64 %980, %981
  %983 = add nsw i64 %982, 1
  store i64 %983, ptr %20, align 8, !tbaa !9
  %984 = load i64, ptr %20, align 8, !tbaa !9
  %985 = load i64, ptr %21, align 8, !tbaa !9
  %986 = load i64, ptr %27, align 8, !tbaa !9
  %987 = mul nsw i64 %985, %986
  %988 = add nsw i64 %984, %987
  store i64 %988, ptr %15, align 8, !tbaa !9
  %989 = load float, ptr %32, align 4, !tbaa !11
  store float %989, ptr %18, align 4, !tbaa !11
  %990 = load ptr, ptr %12, align 8, !tbaa !5
  %991 = load i64, ptr %15, align 8, !tbaa !9
  %992 = getelementptr inbounds %struct.complex, ptr %990, i64 %991
  %993 = getelementptr inbounds %struct.complex, ptr %992, i32 0, i32 0
  %994 = load float, ptr %993, align 4, !tbaa !13
  store float %994, ptr %17, align 4, !tbaa !11
  %995 = load float, ptr %17, align 4, !tbaa !11
  %996 = fcmp oge float %995, 0.000000e+00
  br i1 %996, label %997, label %999

997:                                              ; preds = %976
  %998 = load float, ptr %17, align 4, !tbaa !11
  br label %1002

999:                                              ; preds = %976
  %1000 = load float, ptr %17, align 4, !tbaa !11
  %1001 = fneg float %1000
  br label %1002

1002:                                             ; preds = %999, %997
  %1003 = phi float [ %998, %997 ], [ %1001, %999 ]
  %1004 = fpext float %1003 to double
  %1005 = fptrunc double %1004 to float
  store float %1005, ptr %19, align 4, !tbaa !11
  %1006 = load float, ptr %18, align 4, !tbaa !11
  %1007 = load float, ptr %19, align 4, !tbaa !11
  %1008 = fcmp oge float %1006, %1007
  br i1 %1008, label %1009, label %1011

1009:                                             ; preds = %1002
  %1010 = load float, ptr %18, align 4, !tbaa !11
  br label %1013

1011:                                             ; preds = %1002
  %1012 = load float, ptr %19, align 4, !tbaa !11
  br label %1013

1013:                                             ; preds = %1011, %1009
  %1014 = phi float [ %1010, %1009 ], [ %1012, %1011 ]
  %1015 = fpext float %1014 to double
  %1016 = fptrunc double %1015 to float
  store float %1016, ptr %32, align 4, !tbaa !11
  %1017 = load i64, ptr %22, align 8, !tbaa !9
  %1018 = sub nsw i64 %1017, 1
  store i64 %1018, ptr %15, align 8, !tbaa !9
  %1019 = load i64, ptr %21, align 8, !tbaa !9
  %1020 = load i64, ptr %22, align 8, !tbaa !9
  %1021 = sub nsw i64 %1019, %1020
  %1022 = add nsw i64 %1021, 2
  store i64 %1022, ptr %20, align 8, !tbaa !9
  br label %1023

1023:                                             ; preds = %1049, %1013
  %1024 = load i64, ptr %20, align 8, !tbaa !9
  %1025 = load i64, ptr %15, align 8, !tbaa !9
  %1026 = icmp sle i64 %1024, %1025
  br i1 %1026, label %1027, label %1052

1027:                                             ; preds = %1023
  %1028 = load float, ptr %32, align 4, !tbaa !11
  store float %1028, ptr %17, align 4, !tbaa !11
  %1029 = load ptr, ptr %12, align 8, !tbaa !5
  %1030 = load i64, ptr %20, align 8, !tbaa !9
  %1031 = load i64, ptr %21, align 8, !tbaa !9
  %1032 = load i64, ptr %27, align 8, !tbaa !9
  %1033 = mul nsw i64 %1031, %1032
  %1034 = add nsw i64 %1030, %1033
  %1035 = getelementptr inbounds %struct.complex, ptr %1029, i64 %1034
  %1036 = call double @c_abs(ptr noundef %1035)
  %1037 = fptrunc double %1036 to float
  store float %1037, ptr %18, align 4, !tbaa !11
  %1038 = load float, ptr %17, align 4, !tbaa !11
  %1039 = load float, ptr %18, align 4, !tbaa !11
  %1040 = fcmp oge float %1038, %1039
  br i1 %1040, label %1041, label %1043

1041:                                             ; preds = %1027
  %1042 = load float, ptr %17, align 4, !tbaa !11
  br label %1045

1043:                                             ; preds = %1027
  %1044 = load float, ptr %18, align 4, !tbaa !11
  br label %1045

1045:                                             ; preds = %1043, %1041
  %1046 = phi float [ %1042, %1041 ], [ %1044, %1043 ]
  %1047 = fpext float %1046 to double
  %1048 = fptrunc double %1047 to float
  store float %1048, ptr %32, align 4, !tbaa !11
  br label %1049

1049:                                             ; preds = %1045
  %1050 = load i64, ptr %20, align 8, !tbaa !9
  %1051 = add nsw i64 %1050, 1
  store i64 %1051, ptr %20, align 8, !tbaa !9
  br label %1023, !llvm.loop !34

1052:                                             ; preds = %1023
  br label %1053

1053:                                             ; preds = %1052
  %1054 = load i64, ptr %21, align 8, !tbaa !9
  %1055 = add nsw i64 %1054, 1
  store i64 %1055, ptr %21, align 8, !tbaa !9
  br label %905, !llvm.loop !35

1056:                                             ; preds = %905
  br label %1057

1057:                                             ; preds = %1056, %791
  br label %1058

1058:                                             ; preds = %1057, %527
  br label %2230

1059:                                             ; preds = %79
  %1060 = load i64, ptr %28, align 8, !tbaa !9
  %1061 = icmp eq i64 %1060, 1
  br i1 %1061, label %1062, label %1566

1062:                                             ; preds = %1059
  %1063 = load i64, ptr %30, align 8, !tbaa !9
  %1064 = icmp eq i64 %1063, 1
  br i1 %1064, label %1065, label %1311

1065:                                             ; preds = %1062
  store i64 0, ptr %21, align 8, !tbaa !9
  %1066 = load i64, ptr %21, align 8, !tbaa !9
  %1067 = load i64, ptr %21, align 8, !tbaa !9
  %1068 = load i64, ptr %27, align 8, !tbaa !9
  %1069 = mul nsw i64 %1067, %1068
  %1070 = add nsw i64 %1066, %1069
  store i64 %1070, ptr %14, align 8, !tbaa !9
  %1071 = load float, ptr %32, align 4, !tbaa !11
  store float %1071, ptr %18, align 4, !tbaa !11
  %1072 = load ptr, ptr %12, align 8, !tbaa !5
  %1073 = load i64, ptr %14, align 8, !tbaa !9
  %1074 = getelementptr inbounds %struct.complex, ptr %1072, i64 %1073
  %1075 = getelementptr inbounds %struct.complex, ptr %1074, i32 0, i32 0
  %1076 = load float, ptr %1075, align 4, !tbaa !13
  store float %1076, ptr %17, align 4, !tbaa !11
  %1077 = load float, ptr %17, align 4, !tbaa !11
  %1078 = fcmp oge float %1077, 0.000000e+00
  br i1 %1078, label %1079, label %1081

1079:                                             ; preds = %1065
  %1080 = load float, ptr %17, align 4, !tbaa !11
  br label %1084

1081:                                             ; preds = %1065
  %1082 = load float, ptr %17, align 4, !tbaa !11
  %1083 = fneg float %1082
  br label %1084

1084:                                             ; preds = %1081, %1079
  %1085 = phi float [ %1080, %1079 ], [ %1083, %1081 ]
  %1086 = fpext float %1085 to double
  %1087 = fptrunc double %1086 to float
  store float %1087, ptr %19, align 4, !tbaa !11
  %1088 = load float, ptr %18, align 4, !tbaa !11
  %1089 = load float, ptr %19, align 4, !tbaa !11
  %1090 = fcmp oge float %1088, %1089
  br i1 %1090, label %1091, label %1093

1091:                                             ; preds = %1084
  %1092 = load float, ptr %18, align 4, !tbaa !11
  br label %1095

1093:                                             ; preds = %1084
  %1094 = load float, ptr %19, align 4, !tbaa !11
  br label %1095

1095:                                             ; preds = %1093, %1091
  %1096 = phi float [ %1092, %1091 ], [ %1094, %1093 ]
  %1097 = fpext float %1096 to double
  %1098 = fptrunc double %1097 to float
  store float %1098, ptr %32, align 4, !tbaa !11
  %1099 = load i64, ptr %21, align 8, !tbaa !9
  %1100 = add nsw i64 %1099, 1
  %1101 = load i64, ptr %21, align 8, !tbaa !9
  %1102 = load i64, ptr %27, align 8, !tbaa !9
  %1103 = mul nsw i64 %1101, %1102
  %1104 = add nsw i64 %1100, %1103
  store i64 %1104, ptr %14, align 8, !tbaa !9
  %1105 = load float, ptr %32, align 4, !tbaa !11
  store float %1105, ptr %18, align 4, !tbaa !11
  %1106 = load ptr, ptr %12, align 8, !tbaa !5
  %1107 = load i64, ptr %14, align 8, !tbaa !9
  %1108 = getelementptr inbounds %struct.complex, ptr %1106, i64 %1107
  %1109 = getelementptr inbounds %struct.complex, ptr %1108, i32 0, i32 0
  %1110 = load float, ptr %1109, align 4, !tbaa !13
  store float %1110, ptr %17, align 4, !tbaa !11
  %1111 = load float, ptr %17, align 4, !tbaa !11
  %1112 = fcmp oge float %1111, 0.000000e+00
  br i1 %1112, label %1113, label %1115

1113:                                             ; preds = %1095
  %1114 = load float, ptr %17, align 4, !tbaa !11
  br label %1118

1115:                                             ; preds = %1095
  %1116 = load float, ptr %17, align 4, !tbaa !11
  %1117 = fneg float %1116
  br label %1118

1118:                                             ; preds = %1115, %1113
  %1119 = phi float [ %1114, %1113 ], [ %1117, %1115 ]
  %1120 = fpext float %1119 to double
  %1121 = fptrunc double %1120 to float
  store float %1121, ptr %19, align 4, !tbaa !11
  %1122 = load float, ptr %18, align 4, !tbaa !11
  %1123 = load float, ptr %19, align 4, !tbaa !11
  %1124 = fcmp oge float %1122, %1123
  br i1 %1124, label %1125, label %1127

1125:                                             ; preds = %1118
  %1126 = load float, ptr %18, align 4, !tbaa !11
  br label %1129

1127:                                             ; preds = %1118
  %1128 = load float, ptr %19, align 4, !tbaa !11
  br label %1129

1129:                                             ; preds = %1127, %1125
  %1130 = phi float [ %1126, %1125 ], [ %1128, %1127 ]
  %1131 = fpext float %1130 to double
  %1132 = fptrunc double %1131 to float
  store float %1132, ptr %32, align 4, !tbaa !11
  %1133 = load ptr, ptr %11, align 8, !tbaa !5
  %1134 = load i64, ptr %1133, align 8, !tbaa !9
  store i64 %1134, ptr %14, align 8, !tbaa !9
  store i64 2, ptr %20, align 8, !tbaa !9
  br label %1135

1135:                                             ; preds = %1161, %1129
  %1136 = load i64, ptr %20, align 8, !tbaa !9
  %1137 = load i64, ptr %14, align 8, !tbaa !9
  %1138 = icmp sle i64 %1136, %1137
  br i1 %1138, label %1139, label %1164

1139:                                             ; preds = %1135
  %1140 = load float, ptr %32, align 4, !tbaa !11
  store float %1140, ptr %17, align 4, !tbaa !11
  %1141 = load ptr, ptr %12, align 8, !tbaa !5
  %1142 = load i64, ptr %20, align 8, !tbaa !9
  %1143 = load i64, ptr %21, align 8, !tbaa !9
  %1144 = load i64, ptr %27, align 8, !tbaa !9
  %1145 = mul nsw i64 %1143, %1144
  %1146 = add nsw i64 %1142, %1145
  %1147 = getelementptr inbounds %struct.complex, ptr %1141, i64 %1146
  %1148 = call double @c_abs(ptr noundef %1147)
  %1149 = fptrunc double %1148 to float
  store float %1149, ptr %18, align 4, !tbaa !11
  %1150 = load float, ptr %17, align 4, !tbaa !11
  %1151 = load float, ptr %18, align 4, !tbaa !11
  %1152 = fcmp oge float %1150, %1151
  br i1 %1152, label %1153, label %1155

1153:                                             ; preds = %1139
  %1154 = load float, ptr %17, align 4, !tbaa !11
  br label %1157

1155:                                             ; preds = %1139
  %1156 = load float, ptr %18, align 4, !tbaa !11
  br label %1157

1157:                                             ; preds = %1155, %1153
  %1158 = phi float [ %1154, %1153 ], [ %1156, %1155 ]
  %1159 = fpext float %1158 to double
  %1160 = fptrunc double %1159 to float
  store float %1160, ptr %32, align 4, !tbaa !11
  br label %1161

1161:                                             ; preds = %1157
  %1162 = load i64, ptr %20, align 8, !tbaa !9
  %1163 = add nsw i64 %1162, 1
  store i64 %1163, ptr %20, align 8, !tbaa !9
  br label %1135, !llvm.loop !36

1164:                                             ; preds = %1135
  %1165 = load i64, ptr %22, align 8, !tbaa !9
  %1166 = sub nsw i64 %1165, 1
  store i64 %1166, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %1167

1167:                                             ; preds = %1307, %1164
  %1168 = load i64, ptr %21, align 8, !tbaa !9
  %1169 = load i64, ptr %14, align 8, !tbaa !9
  %1170 = icmp sle i64 %1168, %1169
  br i1 %1170, label %1171, label %1310

1171:                                             ; preds = %1167
  %1172 = load i64, ptr %21, align 8, !tbaa !9
  %1173 = sub nsw i64 %1172, 1
  store i64 %1173, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1174

1174:                                             ; preds = %1200, %1171
  %1175 = load i64, ptr %20, align 8, !tbaa !9
  %1176 = load i64, ptr %15, align 8, !tbaa !9
  %1177 = icmp sle i64 %1175, %1176
  br i1 %1177, label %1178, label %1203

1178:                                             ; preds = %1174
  %1179 = load float, ptr %32, align 4, !tbaa !11
  store float %1179, ptr %17, align 4, !tbaa !11
  %1180 = load ptr, ptr %12, align 8, !tbaa !5
  %1181 = load i64, ptr %20, align 8, !tbaa !9
  %1182 = load i64, ptr %21, align 8, !tbaa !9
  %1183 = load i64, ptr %27, align 8, !tbaa !9
  %1184 = mul nsw i64 %1182, %1183
  %1185 = add nsw i64 %1181, %1184
  %1186 = getelementptr inbounds %struct.complex, ptr %1180, i64 %1185
  %1187 = call double @c_abs(ptr noundef %1186)
  %1188 = fptrunc double %1187 to float
  store float %1188, ptr %18, align 4, !tbaa !11
  %1189 = load float, ptr %17, align 4, !tbaa !11
  %1190 = load float, ptr %18, align 4, !tbaa !11
  %1191 = fcmp oge float %1189, %1190
  br i1 %1191, label %1192, label %1194

1192:                                             ; preds = %1178
  %1193 = load float, ptr %17, align 4, !tbaa !11
  br label %1196

1194:                                             ; preds = %1178
  %1195 = load float, ptr %18, align 4, !tbaa !11
  br label %1196

1196:                                             ; preds = %1194, %1192
  %1197 = phi float [ %1193, %1192 ], [ %1195, %1194 ]
  %1198 = fpext float %1197 to double
  %1199 = fptrunc double %1198 to float
  store float %1199, ptr %32, align 4, !tbaa !11
  br label %1200

1200:                                             ; preds = %1196
  %1201 = load i64, ptr %20, align 8, !tbaa !9
  %1202 = add nsw i64 %1201, 1
  store i64 %1202, ptr %20, align 8, !tbaa !9
  br label %1174, !llvm.loop !37

1203:                                             ; preds = %1174
  %1204 = load i64, ptr %21, align 8, !tbaa !9
  store i64 %1204, ptr %20, align 8, !tbaa !9
  %1205 = load i64, ptr %20, align 8, !tbaa !9
  %1206 = load i64, ptr %21, align 8, !tbaa !9
  %1207 = load i64, ptr %27, align 8, !tbaa !9
  %1208 = mul nsw i64 %1206, %1207
  %1209 = add nsw i64 %1205, %1208
  store i64 %1209, ptr %15, align 8, !tbaa !9
  %1210 = load float, ptr %32, align 4, !tbaa !11
  store float %1210, ptr %18, align 4, !tbaa !11
  %1211 = load ptr, ptr %12, align 8, !tbaa !5
  %1212 = load i64, ptr %15, align 8, !tbaa !9
  %1213 = getelementptr inbounds %struct.complex, ptr %1211, i64 %1212
  %1214 = getelementptr inbounds %struct.complex, ptr %1213, i32 0, i32 0
  %1215 = load float, ptr %1214, align 4, !tbaa !13
  store float %1215, ptr %17, align 4, !tbaa !11
  %1216 = load float, ptr %17, align 4, !tbaa !11
  %1217 = fcmp oge float %1216, 0.000000e+00
  br i1 %1217, label %1218, label %1220

1218:                                             ; preds = %1203
  %1219 = load float, ptr %17, align 4, !tbaa !11
  br label %1223

1220:                                             ; preds = %1203
  %1221 = load float, ptr %17, align 4, !tbaa !11
  %1222 = fneg float %1221
  br label %1223

1223:                                             ; preds = %1220, %1218
  %1224 = phi float [ %1219, %1218 ], [ %1222, %1220 ]
  %1225 = fpext float %1224 to double
  %1226 = fptrunc double %1225 to float
  store float %1226, ptr %19, align 4, !tbaa !11
  %1227 = load float, ptr %18, align 4, !tbaa !11
  %1228 = load float, ptr %19, align 4, !tbaa !11
  %1229 = fcmp oge float %1227, %1228
  br i1 %1229, label %1230, label %1232

1230:                                             ; preds = %1223
  %1231 = load float, ptr %18, align 4, !tbaa !11
  br label %1234

1232:                                             ; preds = %1223
  %1233 = load float, ptr %19, align 4, !tbaa !11
  br label %1234

1234:                                             ; preds = %1232, %1230
  %1235 = phi float [ %1231, %1230 ], [ %1233, %1232 ]
  %1236 = fpext float %1235 to double
  %1237 = fptrunc double %1236 to float
  store float %1237, ptr %32, align 4, !tbaa !11
  %1238 = load i64, ptr %21, align 8, !tbaa !9
  %1239 = add nsw i64 %1238, 1
  store i64 %1239, ptr %20, align 8, !tbaa !9
  %1240 = load i64, ptr %20, align 8, !tbaa !9
  %1241 = load i64, ptr %21, align 8, !tbaa !9
  %1242 = load i64, ptr %27, align 8, !tbaa !9
  %1243 = mul nsw i64 %1241, %1242
  %1244 = add nsw i64 %1240, %1243
  store i64 %1244, ptr %15, align 8, !tbaa !9
  %1245 = load float, ptr %32, align 4, !tbaa !11
  store float %1245, ptr %18, align 4, !tbaa !11
  %1246 = load ptr, ptr %12, align 8, !tbaa !5
  %1247 = load i64, ptr %15, align 8, !tbaa !9
  %1248 = getelementptr inbounds %struct.complex, ptr %1246, i64 %1247
  %1249 = getelementptr inbounds %struct.complex, ptr %1248, i32 0, i32 0
  %1250 = load float, ptr %1249, align 4, !tbaa !13
  store float %1250, ptr %17, align 4, !tbaa !11
  %1251 = load float, ptr %17, align 4, !tbaa !11
  %1252 = fcmp oge float %1251, 0.000000e+00
  br i1 %1252, label %1253, label %1255

1253:                                             ; preds = %1234
  %1254 = load float, ptr %17, align 4, !tbaa !11
  br label %1258

1255:                                             ; preds = %1234
  %1256 = load float, ptr %17, align 4, !tbaa !11
  %1257 = fneg float %1256
  br label %1258

1258:                                             ; preds = %1255, %1253
  %1259 = phi float [ %1254, %1253 ], [ %1257, %1255 ]
  %1260 = fpext float %1259 to double
  %1261 = fptrunc double %1260 to float
  store float %1261, ptr %19, align 4, !tbaa !11
  %1262 = load float, ptr %18, align 4, !tbaa !11
  %1263 = load float, ptr %19, align 4, !tbaa !11
  %1264 = fcmp oge float %1262, %1263
  br i1 %1264, label %1265, label %1267

1265:                                             ; preds = %1258
  %1266 = load float, ptr %18, align 4, !tbaa !11
  br label %1269

1267:                                             ; preds = %1258
  %1268 = load float, ptr %19, align 4, !tbaa !11
  br label %1269

1269:                                             ; preds = %1267, %1265
  %1270 = phi float [ %1266, %1265 ], [ %1268, %1267 ]
  %1271 = fpext float %1270 to double
  %1272 = fptrunc double %1271 to float
  store float %1272, ptr %32, align 4, !tbaa !11
  %1273 = load ptr, ptr %11, align 8, !tbaa !5
  %1274 = load i64, ptr %1273, align 8, !tbaa !9
  store i64 %1274, ptr %15, align 8, !tbaa !9
  %1275 = load i64, ptr %21, align 8, !tbaa !9
  %1276 = add nsw i64 %1275, 2
  store i64 %1276, ptr %20, align 8, !tbaa !9
  br label %1277

1277:                                             ; preds = %1303, %1269
  %1278 = load i64, ptr %20, align 8, !tbaa !9
  %1279 = load i64, ptr %15, align 8, !tbaa !9
  %1280 = icmp sle i64 %1278, %1279
  br i1 %1280, label %1281, label %1306

1281:                                             ; preds = %1277
  %1282 = load float, ptr %32, align 4, !tbaa !11
  store float %1282, ptr %17, align 4, !tbaa !11
  %1283 = load ptr, ptr %12, align 8, !tbaa !5
  %1284 = load i64, ptr %20, align 8, !tbaa !9
  %1285 = load i64, ptr %21, align 8, !tbaa !9
  %1286 = load i64, ptr %27, align 8, !tbaa !9
  %1287 = mul nsw i64 %1285, %1286
  %1288 = add nsw i64 %1284, %1287
  %1289 = getelementptr inbounds %struct.complex, ptr %1283, i64 %1288
  %1290 = call double @c_abs(ptr noundef %1289)
  %1291 = fptrunc double %1290 to float
  store float %1291, ptr %18, align 4, !tbaa !11
  %1292 = load float, ptr %17, align 4, !tbaa !11
  %1293 = load float, ptr %18, align 4, !tbaa !11
  %1294 = fcmp oge float %1292, %1293
  br i1 %1294, label %1295, label %1297

1295:                                             ; preds = %1281
  %1296 = load float, ptr %17, align 4, !tbaa !11
  br label %1299

1297:                                             ; preds = %1281
  %1298 = load float, ptr %18, align 4, !tbaa !11
  br label %1299

1299:                                             ; preds = %1297, %1295
  %1300 = phi float [ %1296, %1295 ], [ %1298, %1297 ]
  %1301 = fpext float %1300 to double
  %1302 = fptrunc double %1301 to float
  store float %1302, ptr %32, align 4, !tbaa !11
  br label %1303

1303:                                             ; preds = %1299
  %1304 = load i64, ptr %20, align 8, !tbaa !9
  %1305 = add nsw i64 %1304, 1
  store i64 %1305, ptr %20, align 8, !tbaa !9
  br label %1277, !llvm.loop !38

1306:                                             ; preds = %1277
  br label %1307

1307:                                             ; preds = %1306
  %1308 = load i64, ptr %21, align 8, !tbaa !9
  %1309 = add nsw i64 %1308, 1
  store i64 %1309, ptr %21, align 8, !tbaa !9
  br label %1167, !llvm.loop !39

1310:                                             ; preds = %1167
  br label %1565

1311:                                             ; preds = %1062
  %1312 = load i64, ptr %22, align 8, !tbaa !9
  %1313 = sub nsw i64 %1312, 2
  store i64 %1313, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %1314

1314:                                             ; preds = %1460, %1311
  %1315 = load i64, ptr %21, align 8, !tbaa !9
  %1316 = load i64, ptr %14, align 8, !tbaa !9
  %1317 = icmp sle i64 %1315, %1316
  br i1 %1317, label %1318, label %1463

1318:                                             ; preds = %1314
  %1319 = load i64, ptr %22, align 8, !tbaa !9
  %1320 = load i64, ptr %21, align 8, !tbaa !9
  %1321 = add nsw i64 %1319, %1320
  %1322 = sub nsw i64 %1321, 1
  store i64 %1322, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1323

1323:                                             ; preds = %1349, %1318
  %1324 = load i64, ptr %20, align 8, !tbaa !9
  %1325 = load i64, ptr %15, align 8, !tbaa !9
  %1326 = icmp sle i64 %1324, %1325
  br i1 %1326, label %1327, label %1352

1327:                                             ; preds = %1323
  %1328 = load float, ptr %32, align 4, !tbaa !11
  store float %1328, ptr %17, align 4, !tbaa !11
  %1329 = load ptr, ptr %12, align 8, !tbaa !5
  %1330 = load i64, ptr %20, align 8, !tbaa !9
  %1331 = load i64, ptr %21, align 8, !tbaa !9
  %1332 = load i64, ptr %27, align 8, !tbaa !9
  %1333 = mul nsw i64 %1331, %1332
  %1334 = add nsw i64 %1330, %1333
  %1335 = getelementptr inbounds %struct.complex, ptr %1329, i64 %1334
  %1336 = call double @c_abs(ptr noundef %1335)
  %1337 = fptrunc double %1336 to float
  store float %1337, ptr %18, align 4, !tbaa !11
  %1338 = load float, ptr %17, align 4, !tbaa !11
  %1339 = load float, ptr %18, align 4, !tbaa !11
  %1340 = fcmp oge float %1338, %1339
  br i1 %1340, label %1341, label %1343

1341:                                             ; preds = %1327
  %1342 = load float, ptr %17, align 4, !tbaa !11
  br label %1345

1343:                                             ; preds = %1327
  %1344 = load float, ptr %18, align 4, !tbaa !11
  br label %1345

1345:                                             ; preds = %1343, %1341
  %1346 = phi float [ %1342, %1341 ], [ %1344, %1343 ]
  %1347 = fpext float %1346 to double
  %1348 = fptrunc double %1347 to float
  store float %1348, ptr %32, align 4, !tbaa !11
  br label %1349

1349:                                             ; preds = %1345
  %1350 = load i64, ptr %20, align 8, !tbaa !9
  %1351 = add nsw i64 %1350, 1
  store i64 %1351, ptr %20, align 8, !tbaa !9
  br label %1323, !llvm.loop !40

1352:                                             ; preds = %1323
  %1353 = load i64, ptr %22, align 8, !tbaa !9
  %1354 = load i64, ptr %21, align 8, !tbaa !9
  %1355 = add nsw i64 %1353, %1354
  store i64 %1355, ptr %20, align 8, !tbaa !9
  %1356 = load i64, ptr %20, align 8, !tbaa !9
  %1357 = load i64, ptr %21, align 8, !tbaa !9
  %1358 = load i64, ptr %27, align 8, !tbaa !9
  %1359 = mul nsw i64 %1357, %1358
  %1360 = add nsw i64 %1356, %1359
  store i64 %1360, ptr %15, align 8, !tbaa !9
  %1361 = load float, ptr %32, align 4, !tbaa !11
  store float %1361, ptr %18, align 4, !tbaa !11
  %1362 = load ptr, ptr %12, align 8, !tbaa !5
  %1363 = load i64, ptr %15, align 8, !tbaa !9
  %1364 = getelementptr inbounds %struct.complex, ptr %1362, i64 %1363
  %1365 = getelementptr inbounds %struct.complex, ptr %1364, i32 0, i32 0
  %1366 = load float, ptr %1365, align 4, !tbaa !13
  store float %1366, ptr %17, align 4, !tbaa !11
  %1367 = load float, ptr %17, align 4, !tbaa !11
  %1368 = fcmp oge float %1367, 0.000000e+00
  br i1 %1368, label %1369, label %1371

1369:                                             ; preds = %1352
  %1370 = load float, ptr %17, align 4, !tbaa !11
  br label %1374

1371:                                             ; preds = %1352
  %1372 = load float, ptr %17, align 4, !tbaa !11
  %1373 = fneg float %1372
  br label %1374

1374:                                             ; preds = %1371, %1369
  %1375 = phi float [ %1370, %1369 ], [ %1373, %1371 ]
  %1376 = fpext float %1375 to double
  %1377 = fptrunc double %1376 to float
  store float %1377, ptr %19, align 4, !tbaa !11
  %1378 = load float, ptr %18, align 4, !tbaa !11
  %1379 = load float, ptr %19, align 4, !tbaa !11
  %1380 = fcmp oge float %1378, %1379
  br i1 %1380, label %1381, label %1383

1381:                                             ; preds = %1374
  %1382 = load float, ptr %18, align 4, !tbaa !11
  br label %1385

1383:                                             ; preds = %1374
  %1384 = load float, ptr %19, align 4, !tbaa !11
  br label %1385

1385:                                             ; preds = %1383, %1381
  %1386 = phi float [ %1382, %1381 ], [ %1384, %1383 ]
  %1387 = fpext float %1386 to double
  %1388 = fptrunc double %1387 to float
  store float %1388, ptr %32, align 4, !tbaa !11
  %1389 = load i64, ptr %20, align 8, !tbaa !9
  %1390 = add nsw i64 %1389, 1
  store i64 %1390, ptr %20, align 8, !tbaa !9
  %1391 = load i64, ptr %20, align 8, !tbaa !9
  %1392 = load i64, ptr %21, align 8, !tbaa !9
  %1393 = load i64, ptr %27, align 8, !tbaa !9
  %1394 = mul nsw i64 %1392, %1393
  %1395 = add nsw i64 %1391, %1394
  store i64 %1395, ptr %15, align 8, !tbaa !9
  %1396 = load float, ptr %32, align 4, !tbaa !11
  store float %1396, ptr %18, align 4, !tbaa !11
  %1397 = load ptr, ptr %12, align 8, !tbaa !5
  %1398 = load i64, ptr %15, align 8, !tbaa !9
  %1399 = getelementptr inbounds %struct.complex, ptr %1397, i64 %1398
  %1400 = getelementptr inbounds %struct.complex, ptr %1399, i32 0, i32 0
  %1401 = load float, ptr %1400, align 4, !tbaa !13
  store float %1401, ptr %17, align 4, !tbaa !11
  %1402 = load float, ptr %17, align 4, !tbaa !11
  %1403 = fcmp oge float %1402, 0.000000e+00
  br i1 %1403, label %1404, label %1406

1404:                                             ; preds = %1385
  %1405 = load float, ptr %17, align 4, !tbaa !11
  br label %1409

1406:                                             ; preds = %1385
  %1407 = load float, ptr %17, align 4, !tbaa !11
  %1408 = fneg float %1407
  br label %1409

1409:                                             ; preds = %1406, %1404
  %1410 = phi float [ %1405, %1404 ], [ %1408, %1406 ]
  %1411 = fpext float %1410 to double
  %1412 = fptrunc double %1411 to float
  store float %1412, ptr %19, align 4, !tbaa !11
  %1413 = load float, ptr %18, align 4, !tbaa !11
  %1414 = load float, ptr %19, align 4, !tbaa !11
  %1415 = fcmp oge float %1413, %1414
  br i1 %1415, label %1416, label %1418

1416:                                             ; preds = %1409
  %1417 = load float, ptr %18, align 4, !tbaa !11
  br label %1420

1418:                                             ; preds = %1409
  %1419 = load float, ptr %19, align 4, !tbaa !11
  br label %1420

1420:                                             ; preds = %1418, %1416
  %1421 = phi float [ %1417, %1416 ], [ %1419, %1418 ]
  %1422 = fpext float %1421 to double
  %1423 = fptrunc double %1422 to float
  store float %1423, ptr %32, align 4, !tbaa !11
  %1424 = load ptr, ptr %11, align 8, !tbaa !5
  %1425 = load i64, ptr %1424, align 8, !tbaa !9
  store i64 %1425, ptr %15, align 8, !tbaa !9
  %1426 = load i64, ptr %22, align 8, !tbaa !9
  %1427 = load i64, ptr %21, align 8, !tbaa !9
  %1428 = add nsw i64 %1426, %1427
  %1429 = add nsw i64 %1428, 2
  store i64 %1429, ptr %20, align 8, !tbaa !9
  br label %1430

1430:                                             ; preds = %1456, %1420
  %1431 = load i64, ptr %20, align 8, !tbaa !9
  %1432 = load i64, ptr %15, align 8, !tbaa !9
  %1433 = icmp sle i64 %1431, %1432
  br i1 %1433, label %1434, label %1459

1434:                                             ; preds = %1430
  %1435 = load float, ptr %32, align 4, !tbaa !11
  store float %1435, ptr %17, align 4, !tbaa !11
  %1436 = load ptr, ptr %12, align 8, !tbaa !5
  %1437 = load i64, ptr %20, align 8, !tbaa !9
  %1438 = load i64, ptr %21, align 8, !tbaa !9
  %1439 = load i64, ptr %27, align 8, !tbaa !9
  %1440 = mul nsw i64 %1438, %1439
  %1441 = add nsw i64 %1437, %1440
  %1442 = getelementptr inbounds %struct.complex, ptr %1436, i64 %1441
  %1443 = call double @c_abs(ptr noundef %1442)
  %1444 = fptrunc double %1443 to float
  store float %1444, ptr %18, align 4, !tbaa !11
  %1445 = load float, ptr %17, align 4, !tbaa !11
  %1446 = load float, ptr %18, align 4, !tbaa !11
  %1447 = fcmp oge float %1445, %1446
  br i1 %1447, label %1448, label %1450

1448:                                             ; preds = %1434
  %1449 = load float, ptr %17, align 4, !tbaa !11
  br label %1452

1450:                                             ; preds = %1434
  %1451 = load float, ptr %18, align 4, !tbaa !11
  br label %1452

1452:                                             ; preds = %1450, %1448
  %1453 = phi float [ %1449, %1448 ], [ %1451, %1450 ]
  %1454 = fpext float %1453 to double
  %1455 = fptrunc double %1454 to float
  store float %1455, ptr %32, align 4, !tbaa !11
  br label %1456

1456:                                             ; preds = %1452
  %1457 = load i64, ptr %20, align 8, !tbaa !9
  %1458 = add nsw i64 %1457, 1
  store i64 %1458, ptr %20, align 8, !tbaa !9
  br label %1430, !llvm.loop !41

1459:                                             ; preds = %1430
  br label %1460

1460:                                             ; preds = %1459
  %1461 = load i64, ptr %21, align 8, !tbaa !9
  %1462 = add nsw i64 %1461, 1
  store i64 %1462, ptr %21, align 8, !tbaa !9
  br label %1314, !llvm.loop !42

1463:                                             ; preds = %1314
  %1464 = load ptr, ptr %11, align 8, !tbaa !5
  %1465 = load i64, ptr %1464, align 8, !tbaa !9
  %1466 = sub nsw i64 %1465, 2
  store i64 %1466, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1467

1467:                                             ; preds = %1493, %1463
  %1468 = load i64, ptr %20, align 8, !tbaa !9
  %1469 = load i64, ptr %14, align 8, !tbaa !9
  %1470 = icmp sle i64 %1468, %1469
  br i1 %1470, label %1471, label %1496

1471:                                             ; preds = %1467
  %1472 = load float, ptr %32, align 4, !tbaa !11
  store float %1472, ptr %17, align 4, !tbaa !11
  %1473 = load ptr, ptr %12, align 8, !tbaa !5
  %1474 = load i64, ptr %20, align 8, !tbaa !9
  %1475 = load i64, ptr %21, align 8, !tbaa !9
  %1476 = load i64, ptr %27, align 8, !tbaa !9
  %1477 = mul nsw i64 %1475, %1476
  %1478 = add nsw i64 %1474, %1477
  %1479 = getelementptr inbounds %struct.complex, ptr %1473, i64 %1478
  %1480 = call double @c_abs(ptr noundef %1479)
  %1481 = fptrunc double %1480 to float
  store float %1481, ptr %18, align 4, !tbaa !11
  %1482 = load float, ptr %17, align 4, !tbaa !11
  %1483 = load float, ptr %18, align 4, !tbaa !11
  %1484 = fcmp oge float %1482, %1483
  br i1 %1484, label %1485, label %1487

1485:                                             ; preds = %1471
  %1486 = load float, ptr %17, align 4, !tbaa !11
  br label %1489

1487:                                             ; preds = %1471
  %1488 = load float, ptr %18, align 4, !tbaa !11
  br label %1489

1489:                                             ; preds = %1487, %1485
  %1490 = phi float [ %1486, %1485 ], [ %1488, %1487 ]
  %1491 = fpext float %1490 to double
  %1492 = fptrunc double %1491 to float
  store float %1492, ptr %32, align 4, !tbaa !11
  br label %1493

1493:                                             ; preds = %1489
  %1494 = load i64, ptr %20, align 8, !tbaa !9
  %1495 = add nsw i64 %1494, 1
  store i64 %1495, ptr %20, align 8, !tbaa !9
  br label %1467, !llvm.loop !43

1496:                                             ; preds = %1467
  %1497 = load i64, ptr %20, align 8, !tbaa !9
  %1498 = load i64, ptr %21, align 8, !tbaa !9
  %1499 = load i64, ptr %27, align 8, !tbaa !9
  %1500 = mul nsw i64 %1498, %1499
  %1501 = add nsw i64 %1497, %1500
  store i64 %1501, ptr %14, align 8, !tbaa !9
  %1502 = load float, ptr %32, align 4, !tbaa !11
  store float %1502, ptr %18, align 4, !tbaa !11
  %1503 = load ptr, ptr %12, align 8, !tbaa !5
  %1504 = load i64, ptr %14, align 8, !tbaa !9
  %1505 = getelementptr inbounds %struct.complex, ptr %1503, i64 %1504
  %1506 = getelementptr inbounds %struct.complex, ptr %1505, i32 0, i32 0
  %1507 = load float, ptr %1506, align 4, !tbaa !13
  store float %1507, ptr %17, align 4, !tbaa !11
  %1508 = load float, ptr %17, align 4, !tbaa !11
  %1509 = fcmp oge float %1508, 0.000000e+00
  br i1 %1509, label %1510, label %1512

1510:                                             ; preds = %1496
  %1511 = load float, ptr %17, align 4, !tbaa !11
  br label %1515

1512:                                             ; preds = %1496
  %1513 = load float, ptr %17, align 4, !tbaa !11
  %1514 = fneg float %1513
  br label %1515

1515:                                             ; preds = %1512, %1510
  %1516 = phi float [ %1511, %1510 ], [ %1514, %1512 ]
  %1517 = fpext float %1516 to double
  %1518 = fptrunc double %1517 to float
  store float %1518, ptr %19, align 4, !tbaa !11
  %1519 = load float, ptr %18, align 4, !tbaa !11
  %1520 = load float, ptr %19, align 4, !tbaa !11
  %1521 = fcmp oge float %1519, %1520
  br i1 %1521, label %1522, label %1524

1522:                                             ; preds = %1515
  %1523 = load float, ptr %18, align 4, !tbaa !11
  br label %1526

1524:                                             ; preds = %1515
  %1525 = load float, ptr %19, align 4, !tbaa !11
  br label %1526

1526:                                             ; preds = %1524, %1522
  %1527 = phi float [ %1523, %1522 ], [ %1525, %1524 ]
  %1528 = fpext float %1527 to double
  %1529 = fptrunc double %1528 to float
  store float %1529, ptr %32, align 4, !tbaa !11
  %1530 = load ptr, ptr %11, align 8, !tbaa !5
  %1531 = load i64, ptr %1530, align 8, !tbaa !9
  store i64 %1531, ptr %20, align 8, !tbaa !9
  %1532 = load i64, ptr %20, align 8, !tbaa !9
  %1533 = load i64, ptr %21, align 8, !tbaa !9
  %1534 = load i64, ptr %27, align 8, !tbaa !9
  %1535 = mul nsw i64 %1533, %1534
  %1536 = add nsw i64 %1532, %1535
  store i64 %1536, ptr %14, align 8, !tbaa !9
  %1537 = load float, ptr %32, align 4, !tbaa !11
  store float %1537, ptr %18, align 4, !tbaa !11
  %1538 = load ptr, ptr %12, align 8, !tbaa !5
  %1539 = load i64, ptr %14, align 8, !tbaa !9
  %1540 = getelementptr inbounds %struct.complex, ptr %1538, i64 %1539
  %1541 = getelementptr inbounds %struct.complex, ptr %1540, i32 0, i32 0
  %1542 = load float, ptr %1541, align 4, !tbaa !13
  store float %1542, ptr %17, align 4, !tbaa !11
  %1543 = load float, ptr %17, align 4, !tbaa !11
  %1544 = fcmp oge float %1543, 0.000000e+00
  br i1 %1544, label %1545, label %1547

1545:                                             ; preds = %1526
  %1546 = load float, ptr %17, align 4, !tbaa !11
  br label %1550

1547:                                             ; preds = %1526
  %1548 = load float, ptr %17, align 4, !tbaa !11
  %1549 = fneg float %1548
  br label %1550

1550:                                             ; preds = %1547, %1545
  %1551 = phi float [ %1546, %1545 ], [ %1549, %1547 ]
  %1552 = fpext float %1551 to double
  %1553 = fptrunc double %1552 to float
  store float %1553, ptr %19, align 4, !tbaa !11
  %1554 = load float, ptr %18, align 4, !tbaa !11
  %1555 = load float, ptr %19, align 4, !tbaa !11
  %1556 = fcmp oge float %1554, %1555
  br i1 %1556, label %1557, label %1559

1557:                                             ; preds = %1550
  %1558 = load float, ptr %18, align 4, !tbaa !11
  br label %1561

1559:                                             ; preds = %1550
  %1560 = load float, ptr %19, align 4, !tbaa !11
  br label %1561

1561:                                             ; preds = %1559, %1557
  %1562 = phi float [ %1558, %1557 ], [ %1560, %1559 ]
  %1563 = fpext float %1562 to double
  %1564 = fptrunc double %1563 to float
  store float %1564, ptr %32, align 4, !tbaa !11
  br label %1565

1565:                                             ; preds = %1561, %1310
  br label %2229

1566:                                             ; preds = %1059
  %1567 = load i64, ptr %30, align 8, !tbaa !9
  %1568 = icmp eq i64 %1567, 1
  br i1 %1568, label %1569, label %1894

1569:                                             ; preds = %1566
  store i64 0, ptr %21, align 8, !tbaa !9
  %1570 = load i64, ptr %21, align 8, !tbaa !9
  %1571 = load i64, ptr %21, align 8, !tbaa !9
  %1572 = load i64, ptr %27, align 8, !tbaa !9
  %1573 = mul nsw i64 %1571, %1572
  %1574 = add nsw i64 %1570, %1573
  store i64 %1574, ptr %14, align 8, !tbaa !9
  %1575 = load float, ptr %32, align 4, !tbaa !11
  store float %1575, ptr %18, align 4, !tbaa !11
  %1576 = load ptr, ptr %12, align 8, !tbaa !5
  %1577 = load i64, ptr %14, align 8, !tbaa !9
  %1578 = getelementptr inbounds %struct.complex, ptr %1576, i64 %1577
  %1579 = getelementptr inbounds %struct.complex, ptr %1578, i32 0, i32 0
  %1580 = load float, ptr %1579, align 4, !tbaa !13
  store float %1580, ptr %17, align 4, !tbaa !11
  %1581 = load float, ptr %17, align 4, !tbaa !11
  %1582 = fcmp oge float %1581, 0.000000e+00
  br i1 %1582, label %1583, label %1585

1583:                                             ; preds = %1569
  %1584 = load float, ptr %17, align 4, !tbaa !11
  br label %1588

1585:                                             ; preds = %1569
  %1586 = load float, ptr %17, align 4, !tbaa !11
  %1587 = fneg float %1586
  br label %1588

1588:                                             ; preds = %1585, %1583
  %1589 = phi float [ %1584, %1583 ], [ %1587, %1585 ]
  %1590 = fpext float %1589 to double
  %1591 = fptrunc double %1590 to float
  store float %1591, ptr %19, align 4, !tbaa !11
  %1592 = load float, ptr %18, align 4, !tbaa !11
  %1593 = load float, ptr %19, align 4, !tbaa !11
  %1594 = fcmp oge float %1592, %1593
  br i1 %1594, label %1595, label %1597

1595:                                             ; preds = %1588
  %1596 = load float, ptr %18, align 4, !tbaa !11
  br label %1599

1597:                                             ; preds = %1588
  %1598 = load float, ptr %19, align 4, !tbaa !11
  br label %1599

1599:                                             ; preds = %1597, %1595
  %1600 = phi float [ %1596, %1595 ], [ %1598, %1597 ]
  %1601 = fpext float %1600 to double
  %1602 = fptrunc double %1601 to float
  store float %1602, ptr %32, align 4, !tbaa !11
  %1603 = load i64, ptr %22, align 8, !tbaa !9
  %1604 = sub nsw i64 %1603, 1
  store i64 %1604, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %1605

1605:                                             ; preds = %1631, %1599
  %1606 = load i64, ptr %20, align 8, !tbaa !9
  %1607 = load i64, ptr %14, align 8, !tbaa !9
  %1608 = icmp sle i64 %1606, %1607
  br i1 %1608, label %1609, label %1634

1609:                                             ; preds = %1605
  %1610 = load float, ptr %32, align 4, !tbaa !11
  store float %1610, ptr %17, align 4, !tbaa !11
  %1611 = load ptr, ptr %12, align 8, !tbaa !5
  %1612 = load i64, ptr %20, align 8, !tbaa !9
  %1613 = load i64, ptr %21, align 8, !tbaa !9
  %1614 = load i64, ptr %27, align 8, !tbaa !9
  %1615 = mul nsw i64 %1613, %1614
  %1616 = add nsw i64 %1612, %1615
  %1617 = getelementptr inbounds %struct.complex, ptr %1611, i64 %1616
  %1618 = call double @c_abs(ptr noundef %1617)
  %1619 = fptrunc double %1618 to float
  store float %1619, ptr %18, align 4, !tbaa !11
  %1620 = load float, ptr %17, align 4, !tbaa !11
  %1621 = load float, ptr %18, align 4, !tbaa !11
  %1622 = fcmp oge float %1620, %1621
  br i1 %1622, label %1623, label %1625

1623:                                             ; preds = %1609
  %1624 = load float, ptr %17, align 4, !tbaa !11
  br label %1627

1625:                                             ; preds = %1609
  %1626 = load float, ptr %18, align 4, !tbaa !11
  br label %1627

1627:                                             ; preds = %1625, %1623
  %1628 = phi float [ %1624, %1623 ], [ %1626, %1625 ]
  %1629 = fpext float %1628 to double
  %1630 = fptrunc double %1629 to float
  store float %1630, ptr %32, align 4, !tbaa !11
  br label %1631

1631:                                             ; preds = %1627
  %1632 = load i64, ptr %20, align 8, !tbaa !9
  %1633 = add nsw i64 %1632, 1
  store i64 %1633, ptr %20, align 8, !tbaa !9
  br label %1605, !llvm.loop !44

1634:                                             ; preds = %1605
  %1635 = load i64, ptr %22, align 8, !tbaa !9
  %1636 = sub nsw i64 %1635, 1
  store i64 %1636, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %1637

1637:                                             ; preds = %1777, %1634
  %1638 = load i64, ptr %21, align 8, !tbaa !9
  %1639 = load i64, ptr %14, align 8, !tbaa !9
  %1640 = icmp sle i64 %1638, %1639
  br i1 %1640, label %1641, label %1780

1641:                                             ; preds = %1637
  %1642 = load i64, ptr %21, align 8, !tbaa !9
  %1643 = sub nsw i64 %1642, 2
  store i64 %1643, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1644

1644:                                             ; preds = %1670, %1641
  %1645 = load i64, ptr %20, align 8, !tbaa !9
  %1646 = load i64, ptr %15, align 8, !tbaa !9
  %1647 = icmp sle i64 %1645, %1646
  br i1 %1647, label %1648, label %1673

1648:                                             ; preds = %1644
  %1649 = load float, ptr %32, align 4, !tbaa !11
  store float %1649, ptr %17, align 4, !tbaa !11
  %1650 = load ptr, ptr %12, align 8, !tbaa !5
  %1651 = load i64, ptr %20, align 8, !tbaa !9
  %1652 = load i64, ptr %21, align 8, !tbaa !9
  %1653 = load i64, ptr %27, align 8, !tbaa !9
  %1654 = mul nsw i64 %1652, %1653
  %1655 = add nsw i64 %1651, %1654
  %1656 = getelementptr inbounds %struct.complex, ptr %1650, i64 %1655
  %1657 = call double @c_abs(ptr noundef %1656)
  %1658 = fptrunc double %1657 to float
  store float %1658, ptr %18, align 4, !tbaa !11
  %1659 = load float, ptr %17, align 4, !tbaa !11
  %1660 = load float, ptr %18, align 4, !tbaa !11
  %1661 = fcmp oge float %1659, %1660
  br i1 %1661, label %1662, label %1664

1662:                                             ; preds = %1648
  %1663 = load float, ptr %17, align 4, !tbaa !11
  br label %1666

1664:                                             ; preds = %1648
  %1665 = load float, ptr %18, align 4, !tbaa !11
  br label %1666

1666:                                             ; preds = %1664, %1662
  %1667 = phi float [ %1663, %1662 ], [ %1665, %1664 ]
  %1668 = fpext float %1667 to double
  %1669 = fptrunc double %1668 to float
  store float %1669, ptr %32, align 4, !tbaa !11
  br label %1670

1670:                                             ; preds = %1666
  %1671 = load i64, ptr %20, align 8, !tbaa !9
  %1672 = add nsw i64 %1671, 1
  store i64 %1672, ptr %20, align 8, !tbaa !9
  br label %1644, !llvm.loop !45

1673:                                             ; preds = %1644
  %1674 = load i64, ptr %21, align 8, !tbaa !9
  %1675 = sub nsw i64 %1674, 1
  store i64 %1675, ptr %20, align 8, !tbaa !9
  %1676 = load i64, ptr %20, align 8, !tbaa !9
  %1677 = load i64, ptr %21, align 8, !tbaa !9
  %1678 = load i64, ptr %27, align 8, !tbaa !9
  %1679 = mul nsw i64 %1677, %1678
  %1680 = add nsw i64 %1676, %1679
  store i64 %1680, ptr %15, align 8, !tbaa !9
  %1681 = load float, ptr %32, align 4, !tbaa !11
  store float %1681, ptr %18, align 4, !tbaa !11
  %1682 = load ptr, ptr %12, align 8, !tbaa !5
  %1683 = load i64, ptr %15, align 8, !tbaa !9
  %1684 = getelementptr inbounds %struct.complex, ptr %1682, i64 %1683
  %1685 = getelementptr inbounds %struct.complex, ptr %1684, i32 0, i32 0
  %1686 = load float, ptr %1685, align 4, !tbaa !13
  store float %1686, ptr %17, align 4, !tbaa !11
  %1687 = load float, ptr %17, align 4, !tbaa !11
  %1688 = fcmp oge float %1687, 0.000000e+00
  br i1 %1688, label %1689, label %1691

1689:                                             ; preds = %1673
  %1690 = load float, ptr %17, align 4, !tbaa !11
  br label %1694

1691:                                             ; preds = %1673
  %1692 = load float, ptr %17, align 4, !tbaa !11
  %1693 = fneg float %1692
  br label %1694

1694:                                             ; preds = %1691, %1689
  %1695 = phi float [ %1690, %1689 ], [ %1693, %1691 ]
  %1696 = fpext float %1695 to double
  %1697 = fptrunc double %1696 to float
  store float %1697, ptr %19, align 4, !tbaa !11
  %1698 = load float, ptr %18, align 4, !tbaa !11
  %1699 = load float, ptr %19, align 4, !tbaa !11
  %1700 = fcmp oge float %1698, %1699
  br i1 %1700, label %1701, label %1703

1701:                                             ; preds = %1694
  %1702 = load float, ptr %18, align 4, !tbaa !11
  br label %1705

1703:                                             ; preds = %1694
  %1704 = load float, ptr %19, align 4, !tbaa !11
  br label %1705

1705:                                             ; preds = %1703, %1701
  %1706 = phi float [ %1702, %1701 ], [ %1704, %1703 ]
  %1707 = fpext float %1706 to double
  %1708 = fptrunc double %1707 to float
  store float %1708, ptr %32, align 4, !tbaa !11
  %1709 = load i64, ptr %21, align 8, !tbaa !9
  store i64 %1709, ptr %20, align 8, !tbaa !9
  %1710 = load i64, ptr %20, align 8, !tbaa !9
  %1711 = load i64, ptr %21, align 8, !tbaa !9
  %1712 = load i64, ptr %27, align 8, !tbaa !9
  %1713 = mul nsw i64 %1711, %1712
  %1714 = add nsw i64 %1710, %1713
  store i64 %1714, ptr %15, align 8, !tbaa !9
  %1715 = load float, ptr %32, align 4, !tbaa !11
  store float %1715, ptr %18, align 4, !tbaa !11
  %1716 = load ptr, ptr %12, align 8, !tbaa !5
  %1717 = load i64, ptr %15, align 8, !tbaa !9
  %1718 = getelementptr inbounds %struct.complex, ptr %1716, i64 %1717
  %1719 = getelementptr inbounds %struct.complex, ptr %1718, i32 0, i32 0
  %1720 = load float, ptr %1719, align 4, !tbaa !13
  store float %1720, ptr %17, align 4, !tbaa !11
  %1721 = load float, ptr %17, align 4, !tbaa !11
  %1722 = fcmp oge float %1721, 0.000000e+00
  br i1 %1722, label %1723, label %1725

1723:                                             ; preds = %1705
  %1724 = load float, ptr %17, align 4, !tbaa !11
  br label %1728

1725:                                             ; preds = %1705
  %1726 = load float, ptr %17, align 4, !tbaa !11
  %1727 = fneg float %1726
  br label %1728

1728:                                             ; preds = %1725, %1723
  %1729 = phi float [ %1724, %1723 ], [ %1727, %1725 ]
  %1730 = fpext float %1729 to double
  %1731 = fptrunc double %1730 to float
  store float %1731, ptr %19, align 4, !tbaa !11
  %1732 = load float, ptr %18, align 4, !tbaa !11
  %1733 = load float, ptr %19, align 4, !tbaa !11
  %1734 = fcmp oge float %1732, %1733
  br i1 %1734, label %1735, label %1737

1735:                                             ; preds = %1728
  %1736 = load float, ptr %18, align 4, !tbaa !11
  br label %1739

1737:                                             ; preds = %1728
  %1738 = load float, ptr %19, align 4, !tbaa !11
  br label %1739

1739:                                             ; preds = %1737, %1735
  %1740 = phi float [ %1736, %1735 ], [ %1738, %1737 ]
  %1741 = fpext float %1740 to double
  %1742 = fptrunc double %1741 to float
  store float %1742, ptr %32, align 4, !tbaa !11
  %1743 = load i64, ptr %22, align 8, !tbaa !9
  %1744 = sub nsw i64 %1743, 1
  store i64 %1744, ptr %15, align 8, !tbaa !9
  %1745 = load i64, ptr %21, align 8, !tbaa !9
  %1746 = add nsw i64 %1745, 1
  store i64 %1746, ptr %20, align 8, !tbaa !9
  br label %1747

1747:                                             ; preds = %1773, %1739
  %1748 = load i64, ptr %20, align 8, !tbaa !9
  %1749 = load i64, ptr %15, align 8, !tbaa !9
  %1750 = icmp sle i64 %1748, %1749
  br i1 %1750, label %1751, label %1776

1751:                                             ; preds = %1747
  %1752 = load float, ptr %32, align 4, !tbaa !11
  store float %1752, ptr %17, align 4, !tbaa !11
  %1753 = load ptr, ptr %12, align 8, !tbaa !5
  %1754 = load i64, ptr %20, align 8, !tbaa !9
  %1755 = load i64, ptr %21, align 8, !tbaa !9
  %1756 = load i64, ptr %27, align 8, !tbaa !9
  %1757 = mul nsw i64 %1755, %1756
  %1758 = add nsw i64 %1754, %1757
  %1759 = getelementptr inbounds %struct.complex, ptr %1753, i64 %1758
  %1760 = call double @c_abs(ptr noundef %1759)
  %1761 = fptrunc double %1760 to float
  store float %1761, ptr %18, align 4, !tbaa !11
  %1762 = load float, ptr %17, align 4, !tbaa !11
  %1763 = load float, ptr %18, align 4, !tbaa !11
  %1764 = fcmp oge float %1762, %1763
  br i1 %1764, label %1765, label %1767

1765:                                             ; preds = %1751
  %1766 = load float, ptr %17, align 4, !tbaa !11
  br label %1769

1767:                                             ; preds = %1751
  %1768 = load float, ptr %18, align 4, !tbaa !11
  br label %1769

1769:                                             ; preds = %1767, %1765
  %1770 = phi float [ %1766, %1765 ], [ %1768, %1767 ]
  %1771 = fpext float %1770 to double
  %1772 = fptrunc double %1771 to float
  store float %1772, ptr %32, align 4, !tbaa !11
  br label %1773

1773:                                             ; preds = %1769
  %1774 = load i64, ptr %20, align 8, !tbaa !9
  %1775 = add nsw i64 %1774, 1
  store i64 %1775, ptr %20, align 8, !tbaa !9
  br label %1747, !llvm.loop !46

1776:                                             ; preds = %1747
  br label %1777

1777:                                             ; preds = %1776
  %1778 = load i64, ptr %21, align 8, !tbaa !9
  %1779 = add nsw i64 %1778, 1
  store i64 %1779, ptr %21, align 8, !tbaa !9
  br label %1637, !llvm.loop !47

1780:                                             ; preds = %1637
  %1781 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %1781, ptr %21, align 8, !tbaa !9
  %1782 = load i64, ptr %22, align 8, !tbaa !9
  %1783 = sub nsw i64 %1782, 2
  store i64 %1783, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1784

1784:                                             ; preds = %1810, %1780
  %1785 = load i64, ptr %20, align 8, !tbaa !9
  %1786 = load i64, ptr %14, align 8, !tbaa !9
  %1787 = icmp sle i64 %1785, %1786
  br i1 %1787, label %1788, label %1813

1788:                                             ; preds = %1784
  %1789 = load float, ptr %32, align 4, !tbaa !11
  store float %1789, ptr %17, align 4, !tbaa !11
  %1790 = load ptr, ptr %12, align 8, !tbaa !5
  %1791 = load i64, ptr %20, align 8, !tbaa !9
  %1792 = load i64, ptr %21, align 8, !tbaa !9
  %1793 = load i64, ptr %27, align 8, !tbaa !9
  %1794 = mul nsw i64 %1792, %1793
  %1795 = add nsw i64 %1791, %1794
  %1796 = getelementptr inbounds %struct.complex, ptr %1790, i64 %1795
  %1797 = call double @c_abs(ptr noundef %1796)
  %1798 = fptrunc double %1797 to float
  store float %1798, ptr %18, align 4, !tbaa !11
  %1799 = load float, ptr %17, align 4, !tbaa !11
  %1800 = load float, ptr %18, align 4, !tbaa !11
  %1801 = fcmp oge float %1799, %1800
  br i1 %1801, label %1802, label %1804

1802:                                             ; preds = %1788
  %1803 = load float, ptr %17, align 4, !tbaa !11
  br label %1806

1804:                                             ; preds = %1788
  %1805 = load float, ptr %18, align 4, !tbaa !11
  br label %1806

1806:                                             ; preds = %1804, %1802
  %1807 = phi float [ %1803, %1802 ], [ %1805, %1804 ]
  %1808 = fpext float %1807 to double
  %1809 = fptrunc double %1808 to float
  store float %1809, ptr %32, align 4, !tbaa !11
  br label %1810

1810:                                             ; preds = %1806
  %1811 = load i64, ptr %20, align 8, !tbaa !9
  %1812 = add nsw i64 %1811, 1
  store i64 %1812, ptr %20, align 8, !tbaa !9
  br label %1784, !llvm.loop !48

1813:                                             ; preds = %1784
  %1814 = load i64, ptr %22, align 8, !tbaa !9
  %1815 = sub nsw i64 %1814, 1
  store i64 %1815, ptr %20, align 8, !tbaa !9
  %1816 = load i64, ptr %20, align 8, !tbaa !9
  %1817 = load i64, ptr %21, align 8, !tbaa !9
  %1818 = load i64, ptr %27, align 8, !tbaa !9
  %1819 = mul nsw i64 %1817, %1818
  %1820 = add nsw i64 %1816, %1819
  store i64 %1820, ptr %14, align 8, !tbaa !9
  %1821 = load float, ptr %32, align 4, !tbaa !11
  store float %1821, ptr %18, align 4, !tbaa !11
  %1822 = load ptr, ptr %12, align 8, !tbaa !5
  %1823 = load i64, ptr %14, align 8, !tbaa !9
  %1824 = getelementptr inbounds %struct.complex, ptr %1822, i64 %1823
  %1825 = getelementptr inbounds %struct.complex, ptr %1824, i32 0, i32 0
  %1826 = load float, ptr %1825, align 4, !tbaa !13
  store float %1826, ptr %17, align 4, !tbaa !11
  %1827 = load float, ptr %17, align 4, !tbaa !11
  %1828 = fcmp oge float %1827, 0.000000e+00
  br i1 %1828, label %1829, label %1831

1829:                                             ; preds = %1813
  %1830 = load float, ptr %17, align 4, !tbaa !11
  br label %1834

1831:                                             ; preds = %1813
  %1832 = load float, ptr %17, align 4, !tbaa !11
  %1833 = fneg float %1832
  br label %1834

1834:                                             ; preds = %1831, %1829
  %1835 = phi float [ %1830, %1829 ], [ %1833, %1831 ]
  %1836 = fpext float %1835 to double
  %1837 = fptrunc double %1836 to float
  store float %1837, ptr %19, align 4, !tbaa !11
  %1838 = load float, ptr %18, align 4, !tbaa !11
  %1839 = load float, ptr %19, align 4, !tbaa !11
  %1840 = fcmp oge float %1838, %1839
  br i1 %1840, label %1841, label %1843

1841:                                             ; preds = %1834
  %1842 = load float, ptr %18, align 4, !tbaa !11
  br label %1845

1843:                                             ; preds = %1834
  %1844 = load float, ptr %19, align 4, !tbaa !11
  br label %1845

1845:                                             ; preds = %1843, %1841
  %1846 = phi float [ %1842, %1841 ], [ %1844, %1843 ]
  %1847 = fpext float %1846 to double
  %1848 = fptrunc double %1847 to float
  store float %1848, ptr %32, align 4, !tbaa !11
  %1849 = load ptr, ptr %11, align 8, !tbaa !5
  %1850 = load i64, ptr %1849, align 8, !tbaa !9
  store i64 %1850, ptr %14, align 8, !tbaa !9
  %1851 = load i64, ptr %22, align 8, !tbaa !9
  %1852 = add nsw i64 %1851, 1
  store i64 %1852, ptr %21, align 8, !tbaa !9
  br label %1853

1853:                                             ; preds = %1890, %1845
  %1854 = load i64, ptr %21, align 8, !tbaa !9
  %1855 = load i64, ptr %14, align 8, !tbaa !9
  %1856 = icmp sle i64 %1854, %1855
  br i1 %1856, label %1857, label %1893

1857:                                             ; preds = %1853
  %1858 = load i64, ptr %22, align 8, !tbaa !9
  %1859 = sub nsw i64 %1858, 1
  store i64 %1859, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1860

1860:                                             ; preds = %1886, %1857
  %1861 = load i64, ptr %20, align 8, !tbaa !9
  %1862 = load i64, ptr %15, align 8, !tbaa !9
  %1863 = icmp sle i64 %1861, %1862
  br i1 %1863, label %1864, label %1889

1864:                                             ; preds = %1860
  %1865 = load float, ptr %32, align 4, !tbaa !11
  store float %1865, ptr %17, align 4, !tbaa !11
  %1866 = load ptr, ptr %12, align 8, !tbaa !5
  %1867 = load i64, ptr %20, align 8, !tbaa !9
  %1868 = load i64, ptr %21, align 8, !tbaa !9
  %1869 = load i64, ptr %27, align 8, !tbaa !9
  %1870 = mul nsw i64 %1868, %1869
  %1871 = add nsw i64 %1867, %1870
  %1872 = getelementptr inbounds %struct.complex, ptr %1866, i64 %1871
  %1873 = call double @c_abs(ptr noundef %1872)
  %1874 = fptrunc double %1873 to float
  store float %1874, ptr %18, align 4, !tbaa !11
  %1875 = load float, ptr %17, align 4, !tbaa !11
  %1876 = load float, ptr %18, align 4, !tbaa !11
  %1877 = fcmp oge float %1875, %1876
  br i1 %1877, label %1878, label %1880

1878:                                             ; preds = %1864
  %1879 = load float, ptr %17, align 4, !tbaa !11
  br label %1882

1880:                                             ; preds = %1864
  %1881 = load float, ptr %18, align 4, !tbaa !11
  br label %1882

1882:                                             ; preds = %1880, %1878
  %1883 = phi float [ %1879, %1878 ], [ %1881, %1880 ]
  %1884 = fpext float %1883 to double
  %1885 = fptrunc double %1884 to float
  store float %1885, ptr %32, align 4, !tbaa !11
  br label %1886

1886:                                             ; preds = %1882
  %1887 = load i64, ptr %20, align 8, !tbaa !9
  %1888 = add nsw i64 %1887, 1
  store i64 %1888, ptr %20, align 8, !tbaa !9
  br label %1860, !llvm.loop !49

1889:                                             ; preds = %1860
  br label %1890

1890:                                             ; preds = %1889
  %1891 = load i64, ptr %21, align 8, !tbaa !9
  %1892 = add nsw i64 %1891, 1
  store i64 %1892, ptr %21, align 8, !tbaa !9
  br label %1853, !llvm.loop !50

1893:                                             ; preds = %1853
  br label %2228

1894:                                             ; preds = %1566
  %1895 = load i64, ptr %22, align 8, !tbaa !9
  %1896 = sub nsw i64 %1895, 1
  store i64 %1896, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %1897

1897:                                             ; preds = %1934, %1894
  %1898 = load i64, ptr %21, align 8, !tbaa !9
  %1899 = load i64, ptr %14, align 8, !tbaa !9
  %1900 = icmp sle i64 %1898, %1899
  br i1 %1900, label %1901, label %1937

1901:                                             ; preds = %1897
  %1902 = load i64, ptr %22, align 8, !tbaa !9
  %1903 = sub nsw i64 %1902, 1
  store i64 %1903, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1904

1904:                                             ; preds = %1930, %1901
  %1905 = load i64, ptr %20, align 8, !tbaa !9
  %1906 = load i64, ptr %15, align 8, !tbaa !9
  %1907 = icmp sle i64 %1905, %1906
  br i1 %1907, label %1908, label %1933

1908:                                             ; preds = %1904
  %1909 = load float, ptr %32, align 4, !tbaa !11
  store float %1909, ptr %17, align 4, !tbaa !11
  %1910 = load ptr, ptr %12, align 8, !tbaa !5
  %1911 = load i64, ptr %20, align 8, !tbaa !9
  %1912 = load i64, ptr %21, align 8, !tbaa !9
  %1913 = load i64, ptr %27, align 8, !tbaa !9
  %1914 = mul nsw i64 %1912, %1913
  %1915 = add nsw i64 %1911, %1914
  %1916 = getelementptr inbounds %struct.complex, ptr %1910, i64 %1915
  %1917 = call double @c_abs(ptr noundef %1916)
  %1918 = fptrunc double %1917 to float
  store float %1918, ptr %18, align 4, !tbaa !11
  %1919 = load float, ptr %17, align 4, !tbaa !11
  %1920 = load float, ptr %18, align 4, !tbaa !11
  %1921 = fcmp oge float %1919, %1920
  br i1 %1921, label %1922, label %1924

1922:                                             ; preds = %1908
  %1923 = load float, ptr %17, align 4, !tbaa !11
  br label %1926

1924:                                             ; preds = %1908
  %1925 = load float, ptr %18, align 4, !tbaa !11
  br label %1926

1926:                                             ; preds = %1924, %1922
  %1927 = phi float [ %1923, %1922 ], [ %1925, %1924 ]
  %1928 = fpext float %1927 to double
  %1929 = fptrunc double %1928 to float
  store float %1929, ptr %32, align 4, !tbaa !11
  br label %1930

1930:                                             ; preds = %1926
  %1931 = load i64, ptr %20, align 8, !tbaa !9
  %1932 = add nsw i64 %1931, 1
  store i64 %1932, ptr %20, align 8, !tbaa !9
  br label %1904, !llvm.loop !51

1933:                                             ; preds = %1904
  br label %1934

1934:                                             ; preds = %1933
  %1935 = load i64, ptr %21, align 8, !tbaa !9
  %1936 = add nsw i64 %1935, 1
  store i64 %1936, ptr %21, align 8, !tbaa !9
  br label %1897, !llvm.loop !52

1937:                                             ; preds = %1897
  %1938 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %1938, ptr %21, align 8, !tbaa !9
  %1939 = load i64, ptr %21, align 8, !tbaa !9
  %1940 = load i64, ptr %27, align 8, !tbaa !9
  %1941 = mul nsw i64 %1939, %1940
  store i64 %1941, ptr %14, align 8, !tbaa !9
  %1942 = load float, ptr %32, align 4, !tbaa !11
  store float %1942, ptr %18, align 4, !tbaa !11
  %1943 = load ptr, ptr %12, align 8, !tbaa !5
  %1944 = load i64, ptr %14, align 8, !tbaa !9
  %1945 = getelementptr inbounds %struct.complex, ptr %1943, i64 %1944
  %1946 = getelementptr inbounds %struct.complex, ptr %1945, i32 0, i32 0
  %1947 = load float, ptr %1946, align 4, !tbaa !13
  store float %1947, ptr %17, align 4, !tbaa !11
  %1948 = load float, ptr %17, align 4, !tbaa !11
  %1949 = fcmp oge float %1948, 0.000000e+00
  br i1 %1949, label %1950, label %1952

1950:                                             ; preds = %1937
  %1951 = load float, ptr %17, align 4, !tbaa !11
  br label %1955

1952:                                             ; preds = %1937
  %1953 = load float, ptr %17, align 4, !tbaa !11
  %1954 = fneg float %1953
  br label %1955

1955:                                             ; preds = %1952, %1950
  %1956 = phi float [ %1951, %1950 ], [ %1954, %1952 ]
  %1957 = fpext float %1956 to double
  %1958 = fptrunc double %1957 to float
  store float %1958, ptr %19, align 4, !tbaa !11
  %1959 = load float, ptr %18, align 4, !tbaa !11
  %1960 = load float, ptr %19, align 4, !tbaa !11
  %1961 = fcmp oge float %1959, %1960
  br i1 %1961, label %1962, label %1964

1962:                                             ; preds = %1955
  %1963 = load float, ptr %18, align 4, !tbaa !11
  br label %1966

1964:                                             ; preds = %1955
  %1965 = load float, ptr %19, align 4, !tbaa !11
  br label %1966

1966:                                             ; preds = %1964, %1962
  %1967 = phi float [ %1963, %1962 ], [ %1965, %1964 ]
  %1968 = fpext float %1967 to double
  %1969 = fptrunc double %1968 to float
  store float %1969, ptr %32, align 4, !tbaa !11
  %1970 = load i64, ptr %22, align 8, !tbaa !9
  %1971 = sub nsw i64 %1970, 1
  store i64 %1971, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %1972

1972:                                             ; preds = %1998, %1966
  %1973 = load i64, ptr %20, align 8, !tbaa !9
  %1974 = load i64, ptr %14, align 8, !tbaa !9
  %1975 = icmp sle i64 %1973, %1974
  br i1 %1975, label %1976, label %2001

1976:                                             ; preds = %1972
  %1977 = load float, ptr %32, align 4, !tbaa !11
  store float %1977, ptr %17, align 4, !tbaa !11
  %1978 = load ptr, ptr %12, align 8, !tbaa !5
  %1979 = load i64, ptr %20, align 8, !tbaa !9
  %1980 = load i64, ptr %21, align 8, !tbaa !9
  %1981 = load i64, ptr %27, align 8, !tbaa !9
  %1982 = mul nsw i64 %1980, %1981
  %1983 = add nsw i64 %1979, %1982
  %1984 = getelementptr inbounds %struct.complex, ptr %1978, i64 %1983
  %1985 = call double @c_abs(ptr noundef %1984)
  %1986 = fptrunc double %1985 to float
  store float %1986, ptr %18, align 4, !tbaa !11
  %1987 = load float, ptr %17, align 4, !tbaa !11
  %1988 = load float, ptr %18, align 4, !tbaa !11
  %1989 = fcmp oge float %1987, %1988
  br i1 %1989, label %1990, label %1992

1990:                                             ; preds = %1976
  %1991 = load float, ptr %17, align 4, !tbaa !11
  br label %1994

1992:                                             ; preds = %1976
  %1993 = load float, ptr %18, align 4, !tbaa !11
  br label %1994

1994:                                             ; preds = %1992, %1990
  %1995 = phi float [ %1991, %1990 ], [ %1993, %1992 ]
  %1996 = fpext float %1995 to double
  %1997 = fptrunc double %1996 to float
  store float %1997, ptr %32, align 4, !tbaa !11
  br label %1998

1998:                                             ; preds = %1994
  %1999 = load i64, ptr %20, align 8, !tbaa !9
  %2000 = add nsw i64 %1999, 1
  store i64 %2000, ptr %20, align 8, !tbaa !9
  br label %1972, !llvm.loop !53

2001:                                             ; preds = %1972
  %2002 = load ptr, ptr %11, align 8, !tbaa !5
  %2003 = load i64, ptr %2002, align 8, !tbaa !9
  %2004 = sub nsw i64 %2003, 1
  store i64 %2004, ptr %14, align 8, !tbaa !9
  %2005 = load i64, ptr %22, align 8, !tbaa !9
  %2006 = add nsw i64 %2005, 1
  store i64 %2006, ptr %21, align 8, !tbaa !9
  br label %2007

2007:                                             ; preds = %2155, %2001
  %2008 = load i64, ptr %21, align 8, !tbaa !9
  %2009 = load i64, ptr %14, align 8, !tbaa !9
  %2010 = icmp sle i64 %2008, %2009
  br i1 %2010, label %2011, label %2158

2011:                                             ; preds = %2007
  %2012 = load i64, ptr %21, align 8, !tbaa !9
  %2013 = load i64, ptr %22, align 8, !tbaa !9
  %2014 = sub nsw i64 %2012, %2013
  %2015 = sub nsw i64 %2014, 2
  store i64 %2015, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2016

2016:                                             ; preds = %2042, %2011
  %2017 = load i64, ptr %20, align 8, !tbaa !9
  %2018 = load i64, ptr %15, align 8, !tbaa !9
  %2019 = icmp sle i64 %2017, %2018
  br i1 %2019, label %2020, label %2045

2020:                                             ; preds = %2016
  %2021 = load float, ptr %32, align 4, !tbaa !11
  store float %2021, ptr %17, align 4, !tbaa !11
  %2022 = load ptr, ptr %12, align 8, !tbaa !5
  %2023 = load i64, ptr %20, align 8, !tbaa !9
  %2024 = load i64, ptr %21, align 8, !tbaa !9
  %2025 = load i64, ptr %27, align 8, !tbaa !9
  %2026 = mul nsw i64 %2024, %2025
  %2027 = add nsw i64 %2023, %2026
  %2028 = getelementptr inbounds %struct.complex, ptr %2022, i64 %2027
  %2029 = call double @c_abs(ptr noundef %2028)
  %2030 = fptrunc double %2029 to float
  store float %2030, ptr %18, align 4, !tbaa !11
  %2031 = load float, ptr %17, align 4, !tbaa !11
  %2032 = load float, ptr %18, align 4, !tbaa !11
  %2033 = fcmp oge float %2031, %2032
  br i1 %2033, label %2034, label %2036

2034:                                             ; preds = %2020
  %2035 = load float, ptr %17, align 4, !tbaa !11
  br label %2038

2036:                                             ; preds = %2020
  %2037 = load float, ptr %18, align 4, !tbaa !11
  br label %2038

2038:                                             ; preds = %2036, %2034
  %2039 = phi float [ %2035, %2034 ], [ %2037, %2036 ]
  %2040 = fpext float %2039 to double
  %2041 = fptrunc double %2040 to float
  store float %2041, ptr %32, align 4, !tbaa !11
  br label %2042

2042:                                             ; preds = %2038
  %2043 = load i64, ptr %20, align 8, !tbaa !9
  %2044 = add nsw i64 %2043, 1
  store i64 %2044, ptr %20, align 8, !tbaa !9
  br label %2016, !llvm.loop !54

2045:                                             ; preds = %2016
  %2046 = load i64, ptr %21, align 8, !tbaa !9
  %2047 = load i64, ptr %22, align 8, !tbaa !9
  %2048 = sub nsw i64 %2046, %2047
  %2049 = sub nsw i64 %2048, 1
  store i64 %2049, ptr %20, align 8, !tbaa !9
  %2050 = load i64, ptr %20, align 8, !tbaa !9
  %2051 = load i64, ptr %21, align 8, !tbaa !9
  %2052 = load i64, ptr %27, align 8, !tbaa !9
  %2053 = mul nsw i64 %2051, %2052
  %2054 = add nsw i64 %2050, %2053
  store i64 %2054, ptr %15, align 8, !tbaa !9
  %2055 = load float, ptr %32, align 4, !tbaa !11
  store float %2055, ptr %18, align 4, !tbaa !11
  %2056 = load ptr, ptr %12, align 8, !tbaa !5
  %2057 = load i64, ptr %15, align 8, !tbaa !9
  %2058 = getelementptr inbounds %struct.complex, ptr %2056, i64 %2057
  %2059 = getelementptr inbounds %struct.complex, ptr %2058, i32 0, i32 0
  %2060 = load float, ptr %2059, align 4, !tbaa !13
  store float %2060, ptr %17, align 4, !tbaa !11
  %2061 = load float, ptr %17, align 4, !tbaa !11
  %2062 = fcmp oge float %2061, 0.000000e+00
  br i1 %2062, label %2063, label %2065

2063:                                             ; preds = %2045
  %2064 = load float, ptr %17, align 4, !tbaa !11
  br label %2068

2065:                                             ; preds = %2045
  %2066 = load float, ptr %17, align 4, !tbaa !11
  %2067 = fneg float %2066
  br label %2068

2068:                                             ; preds = %2065, %2063
  %2069 = phi float [ %2064, %2063 ], [ %2067, %2065 ]
  %2070 = fpext float %2069 to double
  %2071 = fptrunc double %2070 to float
  store float %2071, ptr %19, align 4, !tbaa !11
  %2072 = load float, ptr %18, align 4, !tbaa !11
  %2073 = load float, ptr %19, align 4, !tbaa !11
  %2074 = fcmp oge float %2072, %2073
  br i1 %2074, label %2075, label %2077

2075:                                             ; preds = %2068
  %2076 = load float, ptr %18, align 4, !tbaa !11
  br label %2079

2077:                                             ; preds = %2068
  %2078 = load float, ptr %19, align 4, !tbaa !11
  br label %2079

2079:                                             ; preds = %2077, %2075
  %2080 = phi float [ %2076, %2075 ], [ %2078, %2077 ]
  %2081 = fpext float %2080 to double
  %2082 = fptrunc double %2081 to float
  store float %2082, ptr %32, align 4, !tbaa !11
  %2083 = load i64, ptr %21, align 8, !tbaa !9
  %2084 = load i64, ptr %22, align 8, !tbaa !9
  %2085 = sub nsw i64 %2083, %2084
  store i64 %2085, ptr %20, align 8, !tbaa !9
  %2086 = load i64, ptr %20, align 8, !tbaa !9
  %2087 = load i64, ptr %21, align 8, !tbaa !9
  %2088 = load i64, ptr %27, align 8, !tbaa !9
  %2089 = mul nsw i64 %2087, %2088
  %2090 = add nsw i64 %2086, %2089
  store i64 %2090, ptr %15, align 8, !tbaa !9
  %2091 = load float, ptr %32, align 4, !tbaa !11
  store float %2091, ptr %18, align 4, !tbaa !11
  %2092 = load ptr, ptr %12, align 8, !tbaa !5
  %2093 = load i64, ptr %15, align 8, !tbaa !9
  %2094 = getelementptr inbounds %struct.complex, ptr %2092, i64 %2093
  %2095 = getelementptr inbounds %struct.complex, ptr %2094, i32 0, i32 0
  %2096 = load float, ptr %2095, align 4, !tbaa !13
  store float %2096, ptr %17, align 4, !tbaa !11
  %2097 = load float, ptr %17, align 4, !tbaa !11
  %2098 = fcmp oge float %2097, 0.000000e+00
  br i1 %2098, label %2099, label %2101

2099:                                             ; preds = %2079
  %2100 = load float, ptr %17, align 4, !tbaa !11
  br label %2104

2101:                                             ; preds = %2079
  %2102 = load float, ptr %17, align 4, !tbaa !11
  %2103 = fneg float %2102
  br label %2104

2104:                                             ; preds = %2101, %2099
  %2105 = phi float [ %2100, %2099 ], [ %2103, %2101 ]
  %2106 = fpext float %2105 to double
  %2107 = fptrunc double %2106 to float
  store float %2107, ptr %19, align 4, !tbaa !11
  %2108 = load float, ptr %18, align 4, !tbaa !11
  %2109 = load float, ptr %19, align 4, !tbaa !11
  %2110 = fcmp oge float %2108, %2109
  br i1 %2110, label %2111, label %2113

2111:                                             ; preds = %2104
  %2112 = load float, ptr %18, align 4, !tbaa !11
  br label %2115

2113:                                             ; preds = %2104
  %2114 = load float, ptr %19, align 4, !tbaa !11
  br label %2115

2115:                                             ; preds = %2113, %2111
  %2116 = phi float [ %2112, %2111 ], [ %2114, %2113 ]
  %2117 = fpext float %2116 to double
  %2118 = fptrunc double %2117 to float
  store float %2118, ptr %32, align 4, !tbaa !11
  %2119 = load i64, ptr %22, align 8, !tbaa !9
  %2120 = sub nsw i64 %2119, 1
  store i64 %2120, ptr %15, align 8, !tbaa !9
  %2121 = load i64, ptr %21, align 8, !tbaa !9
  %2122 = load i64, ptr %22, align 8, !tbaa !9
  %2123 = sub nsw i64 %2121, %2122
  %2124 = add nsw i64 %2123, 1
  store i64 %2124, ptr %20, align 8, !tbaa !9
  br label %2125

2125:                                             ; preds = %2151, %2115
  %2126 = load i64, ptr %20, align 8, !tbaa !9
  %2127 = load i64, ptr %15, align 8, !tbaa !9
  %2128 = icmp sle i64 %2126, %2127
  br i1 %2128, label %2129, label %2154

2129:                                             ; preds = %2125
  %2130 = load float, ptr %32, align 4, !tbaa !11
  store float %2130, ptr %17, align 4, !tbaa !11
  %2131 = load ptr, ptr %12, align 8, !tbaa !5
  %2132 = load i64, ptr %20, align 8, !tbaa !9
  %2133 = load i64, ptr %21, align 8, !tbaa !9
  %2134 = load i64, ptr %27, align 8, !tbaa !9
  %2135 = mul nsw i64 %2133, %2134
  %2136 = add nsw i64 %2132, %2135
  %2137 = getelementptr inbounds %struct.complex, ptr %2131, i64 %2136
  %2138 = call double @c_abs(ptr noundef %2137)
  %2139 = fptrunc double %2138 to float
  store float %2139, ptr %18, align 4, !tbaa !11
  %2140 = load float, ptr %17, align 4, !tbaa !11
  %2141 = load float, ptr %18, align 4, !tbaa !11
  %2142 = fcmp oge float %2140, %2141
  br i1 %2142, label %2143, label %2145

2143:                                             ; preds = %2129
  %2144 = load float, ptr %17, align 4, !tbaa !11
  br label %2147

2145:                                             ; preds = %2129
  %2146 = load float, ptr %18, align 4, !tbaa !11
  br label %2147

2147:                                             ; preds = %2145, %2143
  %2148 = phi float [ %2144, %2143 ], [ %2146, %2145 ]
  %2149 = fpext float %2148 to double
  %2150 = fptrunc double %2149 to float
  store float %2150, ptr %32, align 4, !tbaa !11
  br label %2151

2151:                                             ; preds = %2147
  %2152 = load i64, ptr %20, align 8, !tbaa !9
  %2153 = add nsw i64 %2152, 1
  store i64 %2153, ptr %20, align 8, !tbaa !9
  br label %2125, !llvm.loop !55

2154:                                             ; preds = %2125
  br label %2155

2155:                                             ; preds = %2154
  %2156 = load i64, ptr %21, align 8, !tbaa !9
  %2157 = add nsw i64 %2156, 1
  store i64 %2157, ptr %21, align 8, !tbaa !9
  br label %2007, !llvm.loop !56

2158:                                             ; preds = %2007
  %2159 = load ptr, ptr %11, align 8, !tbaa !5
  %2160 = load i64, ptr %2159, align 8, !tbaa !9
  store i64 %2160, ptr %21, align 8, !tbaa !9
  %2161 = load i64, ptr %22, align 8, !tbaa !9
  %2162 = sub nsw i64 %2161, 2
  store i64 %2162, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2163

2163:                                             ; preds = %2189, %2158
  %2164 = load i64, ptr %20, align 8, !tbaa !9
  %2165 = load i64, ptr %14, align 8, !tbaa !9
  %2166 = icmp sle i64 %2164, %2165
  br i1 %2166, label %2167, label %2192

2167:                                             ; preds = %2163
  %2168 = load float, ptr %32, align 4, !tbaa !11
  store float %2168, ptr %17, align 4, !tbaa !11
  %2169 = load ptr, ptr %12, align 8, !tbaa !5
  %2170 = load i64, ptr %20, align 8, !tbaa !9
  %2171 = load i64, ptr %21, align 8, !tbaa !9
  %2172 = load i64, ptr %27, align 8, !tbaa !9
  %2173 = mul nsw i64 %2171, %2172
  %2174 = add nsw i64 %2170, %2173
  %2175 = getelementptr inbounds %struct.complex, ptr %2169, i64 %2174
  %2176 = call double @c_abs(ptr noundef %2175)
  %2177 = fptrunc double %2176 to float
  store float %2177, ptr %18, align 4, !tbaa !11
  %2178 = load float, ptr %17, align 4, !tbaa !11
  %2179 = load float, ptr %18, align 4, !tbaa !11
  %2180 = fcmp oge float %2178, %2179
  br i1 %2180, label %2181, label %2183

2181:                                             ; preds = %2167
  %2182 = load float, ptr %17, align 4, !tbaa !11
  br label %2185

2183:                                             ; preds = %2167
  %2184 = load float, ptr %18, align 4, !tbaa !11
  br label %2185

2185:                                             ; preds = %2183, %2181
  %2186 = phi float [ %2182, %2181 ], [ %2184, %2183 ]
  %2187 = fpext float %2186 to double
  %2188 = fptrunc double %2187 to float
  store float %2188, ptr %32, align 4, !tbaa !11
  br label %2189

2189:                                             ; preds = %2185
  %2190 = load i64, ptr %20, align 8, !tbaa !9
  %2191 = add nsw i64 %2190, 1
  store i64 %2191, ptr %20, align 8, !tbaa !9
  br label %2163, !llvm.loop !57

2192:                                             ; preds = %2163
  %2193 = load i64, ptr %22, align 8, !tbaa !9
  %2194 = sub nsw i64 %2193, 1
  store i64 %2194, ptr %20, align 8, !tbaa !9
  %2195 = load i64, ptr %20, align 8, !tbaa !9
  %2196 = load i64, ptr %21, align 8, !tbaa !9
  %2197 = load i64, ptr %27, align 8, !tbaa !9
  %2198 = mul nsw i64 %2196, %2197
  %2199 = add nsw i64 %2195, %2198
  store i64 %2199, ptr %14, align 8, !tbaa !9
  %2200 = load float, ptr %32, align 4, !tbaa !11
  store float %2200, ptr %18, align 4, !tbaa !11
  %2201 = load ptr, ptr %12, align 8, !tbaa !5
  %2202 = load i64, ptr %14, align 8, !tbaa !9
  %2203 = getelementptr inbounds %struct.complex, ptr %2201, i64 %2202
  %2204 = getelementptr inbounds %struct.complex, ptr %2203, i32 0, i32 0
  %2205 = load float, ptr %2204, align 4, !tbaa !13
  store float %2205, ptr %17, align 4, !tbaa !11
  %2206 = load float, ptr %17, align 4, !tbaa !11
  %2207 = fcmp oge float %2206, 0.000000e+00
  br i1 %2207, label %2208, label %2210

2208:                                             ; preds = %2192
  %2209 = load float, ptr %17, align 4, !tbaa !11
  br label %2213

2210:                                             ; preds = %2192
  %2211 = load float, ptr %17, align 4, !tbaa !11
  %2212 = fneg float %2211
  br label %2213

2213:                                             ; preds = %2210, %2208
  %2214 = phi float [ %2209, %2208 ], [ %2212, %2210 ]
  %2215 = fpext float %2214 to double
  %2216 = fptrunc double %2215 to float
  store float %2216, ptr %19, align 4, !tbaa !11
  %2217 = load float, ptr %18, align 4, !tbaa !11
  %2218 = load float, ptr %19, align 4, !tbaa !11
  %2219 = fcmp oge float %2217, %2218
  br i1 %2219, label %2220, label %2222

2220:                                             ; preds = %2213
  %2221 = load float, ptr %18, align 4, !tbaa !11
  br label %2224

2222:                                             ; preds = %2213
  %2223 = load float, ptr %19, align 4, !tbaa !11
  br label %2224

2224:                                             ; preds = %2222, %2220
  %2225 = phi float [ %2221, %2220 ], [ %2223, %2222 ]
  %2226 = fpext float %2225 to double
  %2227 = fptrunc double %2226 to float
  store float %2227, ptr %32, align 4, !tbaa !11
  br label %2228

2228:                                             ; preds = %2224, %1893
  br label %2229

2229:                                             ; preds = %2228, %1565
  br label %2230

2230:                                             ; preds = %2229, %1058
  br label %5551

2231:                                             ; preds = %75
  %2232 = load ptr, ptr %8, align 8, !tbaa !5
  %2233 = call i64 @lsame_(ptr noundef %2232, ptr noundef @.str.3)
  %2234 = icmp ne i64 %2233, 0
  br i1 %2234, label %2244, label %2235

2235:                                             ; preds = %2231
  %2236 = load ptr, ptr %8, align 8, !tbaa !5
  %2237 = call i64 @lsame_(ptr noundef %2236, ptr noundef @.str.4)
  %2238 = icmp ne i64 %2237, 0
  br i1 %2238, label %2244, label %2239

2239:                                             ; preds = %2235
  %2240 = load ptr, ptr %8, align 8, !tbaa !5
  %2241 = load i8, ptr %2240, align 1, !tbaa !58
  %2242 = zext i8 %2241 to i32
  %2243 = icmp eq i32 %2242, 49
  br i1 %2243, label %2244, label %4127

2244:                                             ; preds = %2239, %2235, %2231
  %2245 = load i64, ptr %28, align 8, !tbaa !9
  %2246 = icmp eq i64 %2245, 1
  br i1 %2246, label %2247, label %2929

2247:                                             ; preds = %2244
  %2248 = load ptr, ptr %11, align 8, !tbaa !5
  %2249 = load i64, ptr %2248, align 8, !tbaa !9
  %2250 = sdiv i64 %2249, 2
  store i64 %2250, ptr %22, align 8, !tbaa !9
  %2251 = load i64, ptr %29, align 8, !tbaa !9
  %2252 = icmp eq i64 %2251, 1
  br i1 %2252, label %2253, label %2597

2253:                                             ; preds = %2247
  %2254 = load i64, ptr %30, align 8, !tbaa !9
  %2255 = icmp eq i64 %2254, 0
  br i1 %2255, label %2256, label %2425

2256:                                             ; preds = %2253
  %2257 = load i64, ptr %22, align 8, !tbaa !9
  %2258 = sub nsw i64 %2257, 1
  store i64 %2258, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2259

2259:                                             ; preds = %2267, %2256
  %2260 = load i64, ptr %20, align 8, !tbaa !9
  %2261 = load i64, ptr %14, align 8, !tbaa !9
  %2262 = icmp sle i64 %2260, %2261
  br i1 %2262, label %2263, label %2270

2263:                                             ; preds = %2259
  %2264 = load ptr, ptr %13, align 8, !tbaa !5
  %2265 = load i64, ptr %20, align 8, !tbaa !9
  %2266 = getelementptr inbounds float, ptr %2264, i64 %2265
  store float 0.000000e+00, ptr %2266, align 4, !tbaa !11
  br label %2267

2267:                                             ; preds = %2263
  %2268 = load i64, ptr %20, align 8, !tbaa !9
  %2269 = add nsw i64 %2268, 1
  store i64 %2269, ptr %20, align 8, !tbaa !9
  br label %2259, !llvm.loop !59

2270:                                             ; preds = %2259
  %2271 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %2271, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2272

2272:                                             ; preds = %2412, %2270
  %2273 = load i64, ptr %21, align 8, !tbaa !9
  %2274 = load i64, ptr %14, align 8, !tbaa !9
  %2275 = icmp sle i64 %2273, %2274
  br i1 %2275, label %2276, label %2415

2276:                                             ; preds = %2272
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2277 = load i64, ptr %22, align 8, !tbaa !9
  %2278 = load i64, ptr %21, align 8, !tbaa !9
  %2279 = add nsw i64 %2277, %2278
  %2280 = sub nsw i64 %2279, 1
  store i64 %2280, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2281

2281:                                             ; preds = %2304, %2276
  %2282 = load i64, ptr %20, align 8, !tbaa !9
  %2283 = load i64, ptr %15, align 8, !tbaa !9
  %2284 = icmp sle i64 %2282, %2283
  br i1 %2284, label %2285, label %2307

2285:                                             ; preds = %2281
  %2286 = load ptr, ptr %12, align 8, !tbaa !5
  %2287 = load i64, ptr %20, align 8, !tbaa !9
  %2288 = load i64, ptr %21, align 8, !tbaa !9
  %2289 = load i64, ptr %27, align 8, !tbaa !9
  %2290 = mul nsw i64 %2288, %2289
  %2291 = add nsw i64 %2287, %2290
  %2292 = getelementptr inbounds %struct.complex, ptr %2286, i64 %2291
  %2293 = call double @c_abs(ptr noundef %2292)
  %2294 = fptrunc double %2293 to float
  store float %2294, ptr %26, align 4, !tbaa !11
  %2295 = load float, ptr %26, align 4, !tbaa !11
  %2296 = load float, ptr %24, align 4, !tbaa !11
  %2297 = fadd float %2296, %2295
  store float %2297, ptr %24, align 4, !tbaa !11
  %2298 = load float, ptr %26, align 4, !tbaa !11
  %2299 = load ptr, ptr %13, align 8, !tbaa !5
  %2300 = load i64, ptr %20, align 8, !tbaa !9
  %2301 = getelementptr inbounds float, ptr %2299, i64 %2300
  %2302 = load float, ptr %2301, align 4, !tbaa !11
  %2303 = fadd float %2302, %2298
  store float %2303, ptr %2301, align 4, !tbaa !11
  br label %2304

2304:                                             ; preds = %2285
  %2305 = load i64, ptr %20, align 8, !tbaa !9
  %2306 = add nsw i64 %2305, 1
  store i64 %2306, ptr %20, align 8, !tbaa !9
  br label %2281, !llvm.loop !60

2307:                                             ; preds = %2281
  %2308 = load i64, ptr %20, align 8, !tbaa !9
  %2309 = load i64, ptr %21, align 8, !tbaa !9
  %2310 = load i64, ptr %27, align 8, !tbaa !9
  %2311 = mul nsw i64 %2309, %2310
  %2312 = add nsw i64 %2308, %2311
  store i64 %2312, ptr %15, align 8, !tbaa !9
  %2313 = load ptr, ptr %12, align 8, !tbaa !5
  %2314 = load i64, ptr %15, align 8, !tbaa !9
  %2315 = getelementptr inbounds %struct.complex, ptr %2313, i64 %2314
  %2316 = getelementptr inbounds %struct.complex, ptr %2315, i32 0, i32 0
  %2317 = load float, ptr %2316, align 4, !tbaa !13
  store float %2317, ptr %17, align 4, !tbaa !11
  %2318 = load float, ptr %17, align 4, !tbaa !11
  %2319 = fcmp oge float %2318, 0.000000e+00
  br i1 %2319, label %2320, label %2322

2320:                                             ; preds = %2307
  %2321 = load float, ptr %17, align 4, !tbaa !11
  br label %2325

2322:                                             ; preds = %2307
  %2323 = load float, ptr %17, align 4, !tbaa !11
  %2324 = fneg float %2323
  br label %2325

2325:                                             ; preds = %2322, %2320
  %2326 = phi float [ %2321, %2320 ], [ %2324, %2322 ]
  %2327 = fpext float %2326 to double
  %2328 = fptrunc double %2327 to float
  store float %2328, ptr %26, align 4, !tbaa !11
  %2329 = load float, ptr %24, align 4, !tbaa !11
  %2330 = load float, ptr %26, align 4, !tbaa !11
  %2331 = fadd float %2329, %2330
  %2332 = load ptr, ptr %13, align 8, !tbaa !5
  %2333 = load i64, ptr %21, align 8, !tbaa !9
  %2334 = load i64, ptr %22, align 8, !tbaa !9
  %2335 = add nsw i64 %2333, %2334
  %2336 = getelementptr inbounds float, ptr %2332, i64 %2335
  store float %2331, ptr %2336, align 4, !tbaa !11
  %2337 = load i64, ptr %20, align 8, !tbaa !9
  %2338 = load i64, ptr %22, align 8, !tbaa !9
  %2339 = load i64, ptr %22, align 8, !tbaa !9
  %2340 = add nsw i64 %2338, %2339
  %2341 = icmp eq i64 %2337, %2340
  br i1 %2341, label %2342, label %2343

2342:                                             ; preds = %2325
  br label %2416

2343:                                             ; preds = %2325
  %2344 = load i64, ptr %20, align 8, !tbaa !9
  %2345 = add nsw i64 %2344, 1
  store i64 %2345, ptr %20, align 8, !tbaa !9
  %2346 = load i64, ptr %20, align 8, !tbaa !9
  %2347 = load i64, ptr %21, align 8, !tbaa !9
  %2348 = load i64, ptr %27, align 8, !tbaa !9
  %2349 = mul nsw i64 %2347, %2348
  %2350 = add nsw i64 %2346, %2349
  store i64 %2350, ptr %15, align 8, !tbaa !9
  %2351 = load ptr, ptr %12, align 8, !tbaa !5
  %2352 = load i64, ptr %15, align 8, !tbaa !9
  %2353 = getelementptr inbounds %struct.complex, ptr %2351, i64 %2352
  %2354 = getelementptr inbounds %struct.complex, ptr %2353, i32 0, i32 0
  %2355 = load float, ptr %2354, align 4, !tbaa !13
  store float %2355, ptr %17, align 4, !tbaa !11
  %2356 = load float, ptr %17, align 4, !tbaa !11
  %2357 = fcmp oge float %2356, 0.000000e+00
  br i1 %2357, label %2358, label %2360

2358:                                             ; preds = %2343
  %2359 = load float, ptr %17, align 4, !tbaa !11
  br label %2363

2360:                                             ; preds = %2343
  %2361 = load float, ptr %17, align 4, !tbaa !11
  %2362 = fneg float %2361
  br label %2363

2363:                                             ; preds = %2360, %2358
  %2364 = phi float [ %2359, %2358 ], [ %2362, %2360 ]
  %2365 = fpext float %2364 to double
  %2366 = fptrunc double %2365 to float
  store float %2366, ptr %26, align 4, !tbaa !11
  %2367 = load float, ptr %26, align 4, !tbaa !11
  %2368 = load ptr, ptr %13, align 8, !tbaa !5
  %2369 = load i64, ptr %21, align 8, !tbaa !9
  %2370 = getelementptr inbounds float, ptr %2368, i64 %2369
  %2371 = load float, ptr %2370, align 4, !tbaa !11
  %2372 = fadd float %2371, %2367
  store float %2372, ptr %2370, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2373 = load i64, ptr %22, align 8, !tbaa !9
  %2374 = sub nsw i64 %2373, 1
  store i64 %2374, ptr %15, align 8, !tbaa !9
  %2375 = load i64, ptr %21, align 8, !tbaa !9
  %2376 = add nsw i64 %2375, 1
  store i64 %2376, ptr %23, align 8, !tbaa !9
  br label %2377

2377:                                             ; preds = %2402, %2363
  %2378 = load i64, ptr %23, align 8, !tbaa !9
  %2379 = load i64, ptr %15, align 8, !tbaa !9
  %2380 = icmp sle i64 %2378, %2379
  br i1 %2380, label %2381, label %2405

2381:                                             ; preds = %2377
  %2382 = load i64, ptr %20, align 8, !tbaa !9
  %2383 = add nsw i64 %2382, 1
  store i64 %2383, ptr %20, align 8, !tbaa !9
  %2384 = load ptr, ptr %12, align 8, !tbaa !5
  %2385 = load i64, ptr %20, align 8, !tbaa !9
  %2386 = load i64, ptr %21, align 8, !tbaa !9
  %2387 = load i64, ptr %27, align 8, !tbaa !9
  %2388 = mul nsw i64 %2386, %2387
  %2389 = add nsw i64 %2385, %2388
  %2390 = getelementptr inbounds %struct.complex, ptr %2384, i64 %2389
  %2391 = call double @c_abs(ptr noundef %2390)
  %2392 = fptrunc double %2391 to float
  store float %2392, ptr %26, align 4, !tbaa !11
  %2393 = load float, ptr %26, align 4, !tbaa !11
  %2394 = load float, ptr %24, align 4, !tbaa !11
  %2395 = fadd float %2394, %2393
  store float %2395, ptr %24, align 4, !tbaa !11
  %2396 = load float, ptr %26, align 4, !tbaa !11
  %2397 = load ptr, ptr %13, align 8, !tbaa !5
  %2398 = load i64, ptr %23, align 8, !tbaa !9
  %2399 = getelementptr inbounds float, ptr %2397, i64 %2398
  %2400 = load float, ptr %2399, align 4, !tbaa !11
  %2401 = fadd float %2400, %2396
  store float %2401, ptr %2399, align 4, !tbaa !11
  br label %2402

2402:                                             ; preds = %2381
  %2403 = load i64, ptr %23, align 8, !tbaa !9
  %2404 = add nsw i64 %2403, 1
  store i64 %2404, ptr %23, align 8, !tbaa !9
  br label %2377, !llvm.loop !61

2405:                                             ; preds = %2377
  %2406 = load float, ptr %24, align 4, !tbaa !11
  %2407 = load ptr, ptr %13, align 8, !tbaa !5
  %2408 = load i64, ptr %21, align 8, !tbaa !9
  %2409 = getelementptr inbounds float, ptr %2407, i64 %2408
  %2410 = load float, ptr %2409, align 4, !tbaa !11
  %2411 = fadd float %2410, %2406
  store float %2411, ptr %2409, align 4, !tbaa !11
  br label %2412

2412:                                             ; preds = %2405
  %2413 = load i64, ptr %21, align 8, !tbaa !9
  %2414 = add nsw i64 %2413, 1
  store i64 %2414, ptr %21, align 8, !tbaa !9
  br label %2272, !llvm.loop !62

2415:                                             ; preds = %2272
  br label %2416

2416:                                             ; preds = %2415, %2342
  %2417 = load ptr, ptr %11, align 8, !tbaa !5
  %2418 = load ptr, ptr %13, align 8, !tbaa !5
  %2419 = call i64 @f2c_isamax(ptr noundef %2417, ptr noundef %2418, ptr noundef @c__1)
  store i64 %2419, ptr %20, align 8, !tbaa !9
  %2420 = load ptr, ptr %13, align 8, !tbaa !5
  %2421 = load i64, ptr %20, align 8, !tbaa !9
  %2422 = sub nsw i64 %2421, 1
  %2423 = getelementptr inbounds float, ptr %2420, i64 %2422
  %2424 = load float, ptr %2423, align 4, !tbaa !11
  store float %2424, ptr %32, align 4, !tbaa !11
  br label %2596

2425:                                             ; preds = %2253
  %2426 = load i64, ptr %22, align 8, !tbaa !9
  %2427 = add nsw i64 %2426, 1
  store i64 %2427, ptr %22, align 8, !tbaa !9
  %2428 = load ptr, ptr %11, align 8, !tbaa !5
  %2429 = load i64, ptr %2428, align 8, !tbaa !9
  %2430 = sub nsw i64 %2429, 1
  store i64 %2430, ptr %14, align 8, !tbaa !9
  %2431 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %2431, ptr %20, align 8, !tbaa !9
  br label %2432

2432:                                             ; preds = %2440, %2425
  %2433 = load i64, ptr %20, align 8, !tbaa !9
  %2434 = load i64, ptr %14, align 8, !tbaa !9
  %2435 = icmp sle i64 %2433, %2434
  br i1 %2435, label %2436, label %2443

2436:                                             ; preds = %2432
  %2437 = load ptr, ptr %13, align 8, !tbaa !5
  %2438 = load i64, ptr %20, align 8, !tbaa !9
  %2439 = getelementptr inbounds float, ptr %2437, i64 %2438
  store float 0.000000e+00, ptr %2439, align 4, !tbaa !11
  br label %2440

2440:                                             ; preds = %2436
  %2441 = load i64, ptr %20, align 8, !tbaa !9
  %2442 = add nsw i64 %2441, 1
  store i64 %2442, ptr %20, align 8, !tbaa !9
  br label %2432, !llvm.loop !63

2443:                                             ; preds = %2432
  %2444 = load i64, ptr %22, align 8, !tbaa !9
  %2445 = sub nsw i64 %2444, 1
  store i64 %2445, ptr %21, align 8, !tbaa !9
  br label %2446

2446:                                             ; preds = %2584, %2443
  %2447 = load i64, ptr %21, align 8, !tbaa !9
  %2448 = icmp sge i64 %2447, 0
  br i1 %2448, label %2449, label %2587

2449:                                             ; preds = %2446
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2450 = load i64, ptr %21, align 8, !tbaa !9
  %2451 = sub nsw i64 %2450, 2
  store i64 %2451, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2452

2452:                                             ; preds = %2477, %2449
  %2453 = load i64, ptr %20, align 8, !tbaa !9
  %2454 = load i64, ptr %14, align 8, !tbaa !9
  %2455 = icmp sle i64 %2453, %2454
  br i1 %2455, label %2456, label %2480

2456:                                             ; preds = %2452
  %2457 = load ptr, ptr %12, align 8, !tbaa !5
  %2458 = load i64, ptr %20, align 8, !tbaa !9
  %2459 = load i64, ptr %21, align 8, !tbaa !9
  %2460 = load i64, ptr %27, align 8, !tbaa !9
  %2461 = mul nsw i64 %2459, %2460
  %2462 = add nsw i64 %2458, %2461
  %2463 = getelementptr inbounds %struct.complex, ptr %2457, i64 %2462
  %2464 = call double @c_abs(ptr noundef %2463)
  %2465 = fptrunc double %2464 to float
  store float %2465, ptr %26, align 4, !tbaa !11
  %2466 = load float, ptr %26, align 4, !tbaa !11
  %2467 = load float, ptr %24, align 4, !tbaa !11
  %2468 = fadd float %2467, %2466
  store float %2468, ptr %24, align 4, !tbaa !11
  %2469 = load float, ptr %26, align 4, !tbaa !11
  %2470 = load ptr, ptr %13, align 8, !tbaa !5
  %2471 = load i64, ptr %20, align 8, !tbaa !9
  %2472 = load i64, ptr %22, align 8, !tbaa !9
  %2473 = add nsw i64 %2471, %2472
  %2474 = getelementptr inbounds float, ptr %2470, i64 %2473
  %2475 = load float, ptr %2474, align 4, !tbaa !11
  %2476 = fadd float %2475, %2469
  store float %2476, ptr %2474, align 4, !tbaa !11
  br label %2477

2477:                                             ; preds = %2456
  %2478 = load i64, ptr %20, align 8, !tbaa !9
  %2479 = add nsw i64 %2478, 1
  store i64 %2479, ptr %20, align 8, !tbaa !9
  br label %2452, !llvm.loop !64

2480:                                             ; preds = %2452
  %2481 = load i64, ptr %21, align 8, !tbaa !9
  %2482 = icmp sgt i64 %2481, 0
  br i1 %2482, label %2483, label %2518

2483:                                             ; preds = %2480
  %2484 = load i64, ptr %20, align 8, !tbaa !9
  %2485 = load i64, ptr %21, align 8, !tbaa !9
  %2486 = load i64, ptr %27, align 8, !tbaa !9
  %2487 = mul nsw i64 %2485, %2486
  %2488 = add nsw i64 %2484, %2487
  store i64 %2488, ptr %14, align 8, !tbaa !9
  %2489 = load ptr, ptr %12, align 8, !tbaa !5
  %2490 = load i64, ptr %14, align 8, !tbaa !9
  %2491 = getelementptr inbounds %struct.complex, ptr %2489, i64 %2490
  %2492 = getelementptr inbounds %struct.complex, ptr %2491, i32 0, i32 0
  %2493 = load float, ptr %2492, align 4, !tbaa !13
  store float %2493, ptr %17, align 4, !tbaa !11
  %2494 = load float, ptr %17, align 4, !tbaa !11
  %2495 = fcmp oge float %2494, 0.000000e+00
  br i1 %2495, label %2496, label %2498

2496:                                             ; preds = %2483
  %2497 = load float, ptr %17, align 4, !tbaa !11
  br label %2501

2498:                                             ; preds = %2483
  %2499 = load float, ptr %17, align 4, !tbaa !11
  %2500 = fneg float %2499
  br label %2501

2501:                                             ; preds = %2498, %2496
  %2502 = phi float [ %2497, %2496 ], [ %2500, %2498 ]
  %2503 = fpext float %2502 to double
  %2504 = fptrunc double %2503 to float
  store float %2504, ptr %26, align 4, !tbaa !11
  %2505 = load float, ptr %26, align 4, !tbaa !11
  %2506 = load float, ptr %24, align 4, !tbaa !11
  %2507 = fadd float %2506, %2505
  store float %2507, ptr %24, align 4, !tbaa !11
  %2508 = load float, ptr %24, align 4, !tbaa !11
  %2509 = load ptr, ptr %13, align 8, !tbaa !5
  %2510 = load i64, ptr %20, align 8, !tbaa !9
  %2511 = load i64, ptr %22, align 8, !tbaa !9
  %2512 = add nsw i64 %2510, %2511
  %2513 = getelementptr inbounds float, ptr %2509, i64 %2512
  %2514 = load float, ptr %2513, align 4, !tbaa !11
  %2515 = fadd float %2514, %2508
  store float %2515, ptr %2513, align 4, !tbaa !11
  %2516 = load i64, ptr %20, align 8, !tbaa !9
  %2517 = add nsw i64 %2516, 1
  store i64 %2517, ptr %20, align 8, !tbaa !9
  br label %2518

2518:                                             ; preds = %2501, %2480
  %2519 = load i64, ptr %20, align 8, !tbaa !9
  %2520 = load i64, ptr %21, align 8, !tbaa !9
  %2521 = load i64, ptr %27, align 8, !tbaa !9
  %2522 = mul nsw i64 %2520, %2521
  %2523 = add nsw i64 %2519, %2522
  store i64 %2523, ptr %14, align 8, !tbaa !9
  %2524 = load ptr, ptr %12, align 8, !tbaa !5
  %2525 = load i64, ptr %14, align 8, !tbaa !9
  %2526 = getelementptr inbounds %struct.complex, ptr %2524, i64 %2525
  %2527 = getelementptr inbounds %struct.complex, ptr %2526, i32 0, i32 0
  %2528 = load float, ptr %2527, align 4, !tbaa !13
  store float %2528, ptr %17, align 4, !tbaa !11
  %2529 = load float, ptr %17, align 4, !tbaa !11
  %2530 = fcmp oge float %2529, 0.000000e+00
  br i1 %2530, label %2531, label %2533

2531:                                             ; preds = %2518
  %2532 = load float, ptr %17, align 4, !tbaa !11
  br label %2536

2533:                                             ; preds = %2518
  %2534 = load float, ptr %17, align 4, !tbaa !11
  %2535 = fneg float %2534
  br label %2536

2536:                                             ; preds = %2533, %2531
  %2537 = phi float [ %2532, %2531 ], [ %2535, %2533 ]
  %2538 = fpext float %2537 to double
  %2539 = fptrunc double %2538 to float
  store float %2539, ptr %26, align 4, !tbaa !11
  %2540 = load float, ptr %26, align 4, !tbaa !11
  %2541 = load ptr, ptr %13, align 8, !tbaa !5
  %2542 = load i64, ptr %21, align 8, !tbaa !9
  %2543 = getelementptr inbounds float, ptr %2541, i64 %2542
  store float %2540, ptr %2543, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2544 = load ptr, ptr %11, align 8, !tbaa !5
  %2545 = load i64, ptr %2544, align 8, !tbaa !9
  %2546 = sub nsw i64 %2545, 1
  store i64 %2546, ptr %14, align 8, !tbaa !9
  %2547 = load i64, ptr %21, align 8, !tbaa !9
  %2548 = add nsw i64 %2547, 1
  store i64 %2548, ptr %23, align 8, !tbaa !9
  br label %2549

2549:                                             ; preds = %2574, %2536
  %2550 = load i64, ptr %23, align 8, !tbaa !9
  %2551 = load i64, ptr %14, align 8, !tbaa !9
  %2552 = icmp sle i64 %2550, %2551
  br i1 %2552, label %2553, label %2577

2553:                                             ; preds = %2549
  %2554 = load i64, ptr %20, align 8, !tbaa !9
  %2555 = add nsw i64 %2554, 1
  store i64 %2555, ptr %20, align 8, !tbaa !9
  %2556 = load ptr, ptr %12, align 8, !tbaa !5
  %2557 = load i64, ptr %20, align 8, !tbaa !9
  %2558 = load i64, ptr %21, align 8, !tbaa !9
  %2559 = load i64, ptr %27, align 8, !tbaa !9
  %2560 = mul nsw i64 %2558, %2559
  %2561 = add nsw i64 %2557, %2560
  %2562 = getelementptr inbounds %struct.complex, ptr %2556, i64 %2561
  %2563 = call double @c_abs(ptr noundef %2562)
  %2564 = fptrunc double %2563 to float
  store float %2564, ptr %26, align 4, !tbaa !11
  %2565 = load float, ptr %26, align 4, !tbaa !11
  %2566 = load float, ptr %24, align 4, !tbaa !11
  %2567 = fadd float %2566, %2565
  store float %2567, ptr %24, align 4, !tbaa !11
  %2568 = load float, ptr %26, align 4, !tbaa !11
  %2569 = load ptr, ptr %13, align 8, !tbaa !5
  %2570 = load i64, ptr %23, align 8, !tbaa !9
  %2571 = getelementptr inbounds float, ptr %2569, i64 %2570
  %2572 = load float, ptr %2571, align 4, !tbaa !11
  %2573 = fadd float %2572, %2568
  store float %2573, ptr %2571, align 4, !tbaa !11
  br label %2574

2574:                                             ; preds = %2553
  %2575 = load i64, ptr %23, align 8, !tbaa !9
  %2576 = add nsw i64 %2575, 1
  store i64 %2576, ptr %23, align 8, !tbaa !9
  br label %2549, !llvm.loop !65

2577:                                             ; preds = %2549
  %2578 = load float, ptr %24, align 4, !tbaa !11
  %2579 = load ptr, ptr %13, align 8, !tbaa !5
  %2580 = load i64, ptr %21, align 8, !tbaa !9
  %2581 = getelementptr inbounds float, ptr %2579, i64 %2580
  %2582 = load float, ptr %2581, align 4, !tbaa !11
  %2583 = fadd float %2582, %2578
  store float %2583, ptr %2581, align 4, !tbaa !11
  br label %2584

2584:                                             ; preds = %2577
  %2585 = load i64, ptr %21, align 8, !tbaa !9
  %2586 = add nsw i64 %2585, -1
  store i64 %2586, ptr %21, align 8, !tbaa !9
  br label %2446, !llvm.loop !66

2587:                                             ; preds = %2446
  %2588 = load ptr, ptr %11, align 8, !tbaa !5
  %2589 = load ptr, ptr %13, align 8, !tbaa !5
  %2590 = call i64 @f2c_isamax(ptr noundef %2588, ptr noundef %2589, ptr noundef @c__1)
  store i64 %2590, ptr %20, align 8, !tbaa !9
  %2591 = load ptr, ptr %13, align 8, !tbaa !5
  %2592 = load i64, ptr %20, align 8, !tbaa !9
  %2593 = sub nsw i64 %2592, 1
  %2594 = getelementptr inbounds float, ptr %2591, i64 %2593
  %2595 = load float, ptr %2594, align 4, !tbaa !11
  store float %2595, ptr %32, align 4, !tbaa !11
  br label %2596

2596:                                             ; preds = %2587, %2416
  br label %2928

2597:                                             ; preds = %2247
  %2598 = load i64, ptr %30, align 8, !tbaa !9
  %2599 = icmp eq i64 %2598, 0
  br i1 %2599, label %2600, label %2762

2600:                                             ; preds = %2597
  %2601 = load i64, ptr %22, align 8, !tbaa !9
  %2602 = sub nsw i64 %2601, 1
  store i64 %2602, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2603

2603:                                             ; preds = %2611, %2600
  %2604 = load i64, ptr %20, align 8, !tbaa !9
  %2605 = load i64, ptr %14, align 8, !tbaa !9
  %2606 = icmp sle i64 %2604, %2605
  br i1 %2606, label %2607, label %2614

2607:                                             ; preds = %2603
  %2608 = load ptr, ptr %13, align 8, !tbaa !5
  %2609 = load i64, ptr %20, align 8, !tbaa !9
  %2610 = getelementptr inbounds float, ptr %2608, i64 %2609
  store float 0.000000e+00, ptr %2610, align 4, !tbaa !11
  br label %2611

2611:                                             ; preds = %2607
  %2612 = load i64, ptr %20, align 8, !tbaa !9
  %2613 = add nsw i64 %2612, 1
  store i64 %2613, ptr %20, align 8, !tbaa !9
  br label %2603, !llvm.loop !67

2614:                                             ; preds = %2603
  %2615 = load i64, ptr %22, align 8, !tbaa !9
  %2616 = sub nsw i64 %2615, 1
  store i64 %2616, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2617

2617:                                             ; preds = %2750, %2614
  %2618 = load i64, ptr %21, align 8, !tbaa !9
  %2619 = load i64, ptr %14, align 8, !tbaa !9
  %2620 = icmp sle i64 %2618, %2619
  br i1 %2620, label %2621, label %2753

2621:                                             ; preds = %2617
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2622 = load i64, ptr %22, align 8, !tbaa !9
  %2623 = load i64, ptr %21, align 8, !tbaa !9
  %2624 = add nsw i64 %2622, %2623
  %2625 = sub nsw i64 %2624, 1
  store i64 %2625, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2626

2626:                                             ; preds = %2649, %2621
  %2627 = load i64, ptr %20, align 8, !tbaa !9
  %2628 = load i64, ptr %15, align 8, !tbaa !9
  %2629 = icmp sle i64 %2627, %2628
  br i1 %2629, label %2630, label %2652

2630:                                             ; preds = %2626
  %2631 = load ptr, ptr %12, align 8, !tbaa !5
  %2632 = load i64, ptr %20, align 8, !tbaa !9
  %2633 = load i64, ptr %21, align 8, !tbaa !9
  %2634 = load i64, ptr %27, align 8, !tbaa !9
  %2635 = mul nsw i64 %2633, %2634
  %2636 = add nsw i64 %2632, %2635
  %2637 = getelementptr inbounds %struct.complex, ptr %2631, i64 %2636
  %2638 = call double @c_abs(ptr noundef %2637)
  %2639 = fptrunc double %2638 to float
  store float %2639, ptr %26, align 4, !tbaa !11
  %2640 = load float, ptr %26, align 4, !tbaa !11
  %2641 = load float, ptr %24, align 4, !tbaa !11
  %2642 = fadd float %2641, %2640
  store float %2642, ptr %24, align 4, !tbaa !11
  %2643 = load float, ptr %26, align 4, !tbaa !11
  %2644 = load ptr, ptr %13, align 8, !tbaa !5
  %2645 = load i64, ptr %20, align 8, !tbaa !9
  %2646 = getelementptr inbounds float, ptr %2644, i64 %2645
  %2647 = load float, ptr %2646, align 4, !tbaa !11
  %2648 = fadd float %2647, %2643
  store float %2648, ptr %2646, align 4, !tbaa !11
  br label %2649

2649:                                             ; preds = %2630
  %2650 = load i64, ptr %20, align 8, !tbaa !9
  %2651 = add nsw i64 %2650, 1
  store i64 %2651, ptr %20, align 8, !tbaa !9
  br label %2626, !llvm.loop !68

2652:                                             ; preds = %2626
  %2653 = load i64, ptr %20, align 8, !tbaa !9
  %2654 = load i64, ptr %21, align 8, !tbaa !9
  %2655 = load i64, ptr %27, align 8, !tbaa !9
  %2656 = mul nsw i64 %2654, %2655
  %2657 = add nsw i64 %2653, %2656
  store i64 %2657, ptr %15, align 8, !tbaa !9
  %2658 = load ptr, ptr %12, align 8, !tbaa !5
  %2659 = load i64, ptr %15, align 8, !tbaa !9
  %2660 = getelementptr inbounds %struct.complex, ptr %2658, i64 %2659
  %2661 = getelementptr inbounds %struct.complex, ptr %2660, i32 0, i32 0
  %2662 = load float, ptr %2661, align 4, !tbaa !13
  store float %2662, ptr %17, align 4, !tbaa !11
  %2663 = load float, ptr %17, align 4, !tbaa !11
  %2664 = fcmp oge float %2663, 0.000000e+00
  br i1 %2664, label %2665, label %2667

2665:                                             ; preds = %2652
  %2666 = load float, ptr %17, align 4, !tbaa !11
  br label %2670

2667:                                             ; preds = %2652
  %2668 = load float, ptr %17, align 4, !tbaa !11
  %2669 = fneg float %2668
  br label %2670

2670:                                             ; preds = %2667, %2665
  %2671 = phi float [ %2666, %2665 ], [ %2669, %2667 ]
  %2672 = fpext float %2671 to double
  %2673 = fptrunc double %2672 to float
  store float %2673, ptr %26, align 4, !tbaa !11
  %2674 = load float, ptr %24, align 4, !tbaa !11
  %2675 = load float, ptr %26, align 4, !tbaa !11
  %2676 = fadd float %2674, %2675
  %2677 = load ptr, ptr %13, align 8, !tbaa !5
  %2678 = load i64, ptr %21, align 8, !tbaa !9
  %2679 = load i64, ptr %22, align 8, !tbaa !9
  %2680 = add nsw i64 %2678, %2679
  %2681 = getelementptr inbounds float, ptr %2677, i64 %2680
  store float %2676, ptr %2681, align 4, !tbaa !11
  %2682 = load i64, ptr %20, align 8, !tbaa !9
  %2683 = add nsw i64 %2682, 1
  store i64 %2683, ptr %20, align 8, !tbaa !9
  %2684 = load i64, ptr %20, align 8, !tbaa !9
  %2685 = load i64, ptr %21, align 8, !tbaa !9
  %2686 = load i64, ptr %27, align 8, !tbaa !9
  %2687 = mul nsw i64 %2685, %2686
  %2688 = add nsw i64 %2684, %2687
  store i64 %2688, ptr %15, align 8, !tbaa !9
  %2689 = load ptr, ptr %12, align 8, !tbaa !5
  %2690 = load i64, ptr %15, align 8, !tbaa !9
  %2691 = getelementptr inbounds %struct.complex, ptr %2689, i64 %2690
  %2692 = getelementptr inbounds %struct.complex, ptr %2691, i32 0, i32 0
  %2693 = load float, ptr %2692, align 4, !tbaa !13
  store float %2693, ptr %17, align 4, !tbaa !11
  %2694 = load float, ptr %17, align 4, !tbaa !11
  %2695 = fcmp oge float %2694, 0.000000e+00
  br i1 %2695, label %2696, label %2698

2696:                                             ; preds = %2670
  %2697 = load float, ptr %17, align 4, !tbaa !11
  br label %2701

2698:                                             ; preds = %2670
  %2699 = load float, ptr %17, align 4, !tbaa !11
  %2700 = fneg float %2699
  br label %2701

2701:                                             ; preds = %2698, %2696
  %2702 = phi float [ %2697, %2696 ], [ %2700, %2698 ]
  %2703 = fpext float %2702 to double
  %2704 = fptrunc double %2703 to float
  store float %2704, ptr %26, align 4, !tbaa !11
  %2705 = load float, ptr %26, align 4, !tbaa !11
  %2706 = load ptr, ptr %13, align 8, !tbaa !5
  %2707 = load i64, ptr %21, align 8, !tbaa !9
  %2708 = getelementptr inbounds float, ptr %2706, i64 %2707
  %2709 = load float, ptr %2708, align 4, !tbaa !11
  %2710 = fadd float %2709, %2705
  store float %2710, ptr %2708, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2711 = load i64, ptr %22, align 8, !tbaa !9
  %2712 = sub nsw i64 %2711, 1
  store i64 %2712, ptr %15, align 8, !tbaa !9
  %2713 = load i64, ptr %21, align 8, !tbaa !9
  %2714 = add nsw i64 %2713, 1
  store i64 %2714, ptr %23, align 8, !tbaa !9
  br label %2715

2715:                                             ; preds = %2740, %2701
  %2716 = load i64, ptr %23, align 8, !tbaa !9
  %2717 = load i64, ptr %15, align 8, !tbaa !9
  %2718 = icmp sle i64 %2716, %2717
  br i1 %2718, label %2719, label %2743

2719:                                             ; preds = %2715
  %2720 = load i64, ptr %20, align 8, !tbaa !9
  %2721 = add nsw i64 %2720, 1
  store i64 %2721, ptr %20, align 8, !tbaa !9
  %2722 = load ptr, ptr %12, align 8, !tbaa !5
  %2723 = load i64, ptr %20, align 8, !tbaa !9
  %2724 = load i64, ptr %21, align 8, !tbaa !9
  %2725 = load i64, ptr %27, align 8, !tbaa !9
  %2726 = mul nsw i64 %2724, %2725
  %2727 = add nsw i64 %2723, %2726
  %2728 = getelementptr inbounds %struct.complex, ptr %2722, i64 %2727
  %2729 = call double @c_abs(ptr noundef %2728)
  %2730 = fptrunc double %2729 to float
  store float %2730, ptr %26, align 4, !tbaa !11
  %2731 = load float, ptr %26, align 4, !tbaa !11
  %2732 = load float, ptr %24, align 4, !tbaa !11
  %2733 = fadd float %2732, %2731
  store float %2733, ptr %24, align 4, !tbaa !11
  %2734 = load float, ptr %26, align 4, !tbaa !11
  %2735 = load ptr, ptr %13, align 8, !tbaa !5
  %2736 = load i64, ptr %23, align 8, !tbaa !9
  %2737 = getelementptr inbounds float, ptr %2735, i64 %2736
  %2738 = load float, ptr %2737, align 4, !tbaa !11
  %2739 = fadd float %2738, %2734
  store float %2739, ptr %2737, align 4, !tbaa !11
  br label %2740

2740:                                             ; preds = %2719
  %2741 = load i64, ptr %23, align 8, !tbaa !9
  %2742 = add nsw i64 %2741, 1
  store i64 %2742, ptr %23, align 8, !tbaa !9
  br label %2715, !llvm.loop !69

2743:                                             ; preds = %2715
  %2744 = load float, ptr %24, align 4, !tbaa !11
  %2745 = load ptr, ptr %13, align 8, !tbaa !5
  %2746 = load i64, ptr %21, align 8, !tbaa !9
  %2747 = getelementptr inbounds float, ptr %2745, i64 %2746
  %2748 = load float, ptr %2747, align 4, !tbaa !11
  %2749 = fadd float %2748, %2744
  store float %2749, ptr %2747, align 4, !tbaa !11
  br label %2750

2750:                                             ; preds = %2743
  %2751 = load i64, ptr %21, align 8, !tbaa !9
  %2752 = add nsw i64 %2751, 1
  store i64 %2752, ptr %21, align 8, !tbaa !9
  br label %2617, !llvm.loop !70

2753:                                             ; preds = %2617
  %2754 = load ptr, ptr %11, align 8, !tbaa !5
  %2755 = load ptr, ptr %13, align 8, !tbaa !5
  %2756 = call i64 @f2c_isamax(ptr noundef %2754, ptr noundef %2755, ptr noundef @c__1)
  store i64 %2756, ptr %20, align 8, !tbaa !9
  %2757 = load ptr, ptr %13, align 8, !tbaa !5
  %2758 = load i64, ptr %20, align 8, !tbaa !9
  %2759 = sub nsw i64 %2758, 1
  %2760 = getelementptr inbounds float, ptr %2757, i64 %2759
  %2761 = load float, ptr %2760, align 4, !tbaa !11
  store float %2761, ptr %32, align 4, !tbaa !11
  br label %2927

2762:                                             ; preds = %2597
  %2763 = load ptr, ptr %11, align 8, !tbaa !5
  %2764 = load i64, ptr %2763, align 8, !tbaa !9
  %2765 = sub nsw i64 %2764, 1
  store i64 %2765, ptr %14, align 8, !tbaa !9
  %2766 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %2766, ptr %20, align 8, !tbaa !9
  br label %2767

2767:                                             ; preds = %2775, %2762
  %2768 = load i64, ptr %20, align 8, !tbaa !9
  %2769 = load i64, ptr %14, align 8, !tbaa !9
  %2770 = icmp sle i64 %2768, %2769
  br i1 %2770, label %2771, label %2778

2771:                                             ; preds = %2767
  %2772 = load ptr, ptr %13, align 8, !tbaa !5
  %2773 = load i64, ptr %20, align 8, !tbaa !9
  %2774 = getelementptr inbounds float, ptr %2772, i64 %2773
  store float 0.000000e+00, ptr %2774, align 4, !tbaa !11
  br label %2775

2775:                                             ; preds = %2771
  %2776 = load i64, ptr %20, align 8, !tbaa !9
  %2777 = add nsw i64 %2776, 1
  store i64 %2777, ptr %20, align 8, !tbaa !9
  br label %2767, !llvm.loop !71

2778:                                             ; preds = %2767
  %2779 = load i64, ptr %22, align 8, !tbaa !9
  %2780 = sub nsw i64 %2779, 1
  store i64 %2780, ptr %21, align 8, !tbaa !9
  br label %2781

2781:                                             ; preds = %2915, %2778
  %2782 = load i64, ptr %21, align 8, !tbaa !9
  %2783 = icmp sge i64 %2782, 0
  br i1 %2783, label %2784, label %2918

2784:                                             ; preds = %2781
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2785 = load i64, ptr %21, align 8, !tbaa !9
  %2786 = sub nsw i64 %2785, 1
  store i64 %2786, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2787

2787:                                             ; preds = %2812, %2784
  %2788 = load i64, ptr %20, align 8, !tbaa !9
  %2789 = load i64, ptr %14, align 8, !tbaa !9
  %2790 = icmp sle i64 %2788, %2789
  br i1 %2790, label %2791, label %2815

2791:                                             ; preds = %2787
  %2792 = load ptr, ptr %12, align 8, !tbaa !5
  %2793 = load i64, ptr %20, align 8, !tbaa !9
  %2794 = load i64, ptr %21, align 8, !tbaa !9
  %2795 = load i64, ptr %27, align 8, !tbaa !9
  %2796 = mul nsw i64 %2794, %2795
  %2797 = add nsw i64 %2793, %2796
  %2798 = getelementptr inbounds %struct.complex, ptr %2792, i64 %2797
  %2799 = call double @c_abs(ptr noundef %2798)
  %2800 = fptrunc double %2799 to float
  store float %2800, ptr %26, align 4, !tbaa !11
  %2801 = load float, ptr %26, align 4, !tbaa !11
  %2802 = load float, ptr %24, align 4, !tbaa !11
  %2803 = fadd float %2802, %2801
  store float %2803, ptr %24, align 4, !tbaa !11
  %2804 = load float, ptr %26, align 4, !tbaa !11
  %2805 = load ptr, ptr %13, align 8, !tbaa !5
  %2806 = load i64, ptr %20, align 8, !tbaa !9
  %2807 = load i64, ptr %22, align 8, !tbaa !9
  %2808 = add nsw i64 %2806, %2807
  %2809 = getelementptr inbounds float, ptr %2805, i64 %2808
  %2810 = load float, ptr %2809, align 4, !tbaa !11
  %2811 = fadd float %2810, %2804
  store float %2811, ptr %2809, align 4, !tbaa !11
  br label %2812

2812:                                             ; preds = %2791
  %2813 = load i64, ptr %20, align 8, !tbaa !9
  %2814 = add nsw i64 %2813, 1
  store i64 %2814, ptr %20, align 8, !tbaa !9
  br label %2787, !llvm.loop !72

2815:                                             ; preds = %2787
  %2816 = load i64, ptr %20, align 8, !tbaa !9
  %2817 = load i64, ptr %21, align 8, !tbaa !9
  %2818 = load i64, ptr %27, align 8, !tbaa !9
  %2819 = mul nsw i64 %2817, %2818
  %2820 = add nsw i64 %2816, %2819
  store i64 %2820, ptr %14, align 8, !tbaa !9
  %2821 = load ptr, ptr %12, align 8, !tbaa !5
  %2822 = load i64, ptr %14, align 8, !tbaa !9
  %2823 = getelementptr inbounds %struct.complex, ptr %2821, i64 %2822
  %2824 = getelementptr inbounds %struct.complex, ptr %2823, i32 0, i32 0
  %2825 = load float, ptr %2824, align 4, !tbaa !13
  store float %2825, ptr %17, align 4, !tbaa !11
  %2826 = load float, ptr %17, align 4, !tbaa !11
  %2827 = fcmp oge float %2826, 0.000000e+00
  br i1 %2827, label %2828, label %2830

2828:                                             ; preds = %2815
  %2829 = load float, ptr %17, align 4, !tbaa !11
  br label %2833

2830:                                             ; preds = %2815
  %2831 = load float, ptr %17, align 4, !tbaa !11
  %2832 = fneg float %2831
  br label %2833

2833:                                             ; preds = %2830, %2828
  %2834 = phi float [ %2829, %2828 ], [ %2832, %2830 ]
  %2835 = fpext float %2834 to double
  %2836 = fptrunc double %2835 to float
  store float %2836, ptr %26, align 4, !tbaa !11
  %2837 = load float, ptr %26, align 4, !tbaa !11
  %2838 = load float, ptr %24, align 4, !tbaa !11
  %2839 = fadd float %2838, %2837
  store float %2839, ptr %24, align 4, !tbaa !11
  %2840 = load float, ptr %24, align 4, !tbaa !11
  %2841 = load ptr, ptr %13, align 8, !tbaa !5
  %2842 = load i64, ptr %20, align 8, !tbaa !9
  %2843 = load i64, ptr %22, align 8, !tbaa !9
  %2844 = add nsw i64 %2842, %2843
  %2845 = getelementptr inbounds float, ptr %2841, i64 %2844
  %2846 = load float, ptr %2845, align 4, !tbaa !11
  %2847 = fadd float %2846, %2840
  store float %2847, ptr %2845, align 4, !tbaa !11
  %2848 = load i64, ptr %20, align 8, !tbaa !9
  %2849 = add nsw i64 %2848, 1
  store i64 %2849, ptr %20, align 8, !tbaa !9
  %2850 = load i64, ptr %20, align 8, !tbaa !9
  %2851 = load i64, ptr %21, align 8, !tbaa !9
  %2852 = load i64, ptr %27, align 8, !tbaa !9
  %2853 = mul nsw i64 %2851, %2852
  %2854 = add nsw i64 %2850, %2853
  store i64 %2854, ptr %14, align 8, !tbaa !9
  %2855 = load ptr, ptr %12, align 8, !tbaa !5
  %2856 = load i64, ptr %14, align 8, !tbaa !9
  %2857 = getelementptr inbounds %struct.complex, ptr %2855, i64 %2856
  %2858 = getelementptr inbounds %struct.complex, ptr %2857, i32 0, i32 0
  %2859 = load float, ptr %2858, align 4, !tbaa !13
  store float %2859, ptr %17, align 4, !tbaa !11
  %2860 = load float, ptr %17, align 4, !tbaa !11
  %2861 = fcmp oge float %2860, 0.000000e+00
  br i1 %2861, label %2862, label %2864

2862:                                             ; preds = %2833
  %2863 = load float, ptr %17, align 4, !tbaa !11
  br label %2867

2864:                                             ; preds = %2833
  %2865 = load float, ptr %17, align 4, !tbaa !11
  %2866 = fneg float %2865
  br label %2867

2867:                                             ; preds = %2864, %2862
  %2868 = phi float [ %2863, %2862 ], [ %2866, %2864 ]
  %2869 = fpext float %2868 to double
  %2870 = fptrunc double %2869 to float
  store float %2870, ptr %26, align 4, !tbaa !11
  %2871 = load float, ptr %26, align 4, !tbaa !11
  %2872 = load ptr, ptr %13, align 8, !tbaa !5
  %2873 = load i64, ptr %21, align 8, !tbaa !9
  %2874 = getelementptr inbounds float, ptr %2872, i64 %2873
  store float %2871, ptr %2874, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2875 = load ptr, ptr %11, align 8, !tbaa !5
  %2876 = load i64, ptr %2875, align 8, !tbaa !9
  %2877 = sub nsw i64 %2876, 1
  store i64 %2877, ptr %14, align 8, !tbaa !9
  %2878 = load i64, ptr %21, align 8, !tbaa !9
  %2879 = add nsw i64 %2878, 1
  store i64 %2879, ptr %23, align 8, !tbaa !9
  br label %2880

2880:                                             ; preds = %2905, %2867
  %2881 = load i64, ptr %23, align 8, !tbaa !9
  %2882 = load i64, ptr %14, align 8, !tbaa !9
  %2883 = icmp sle i64 %2881, %2882
  br i1 %2883, label %2884, label %2908

2884:                                             ; preds = %2880
  %2885 = load i64, ptr %20, align 8, !tbaa !9
  %2886 = add nsw i64 %2885, 1
  store i64 %2886, ptr %20, align 8, !tbaa !9
  %2887 = load ptr, ptr %12, align 8, !tbaa !5
  %2888 = load i64, ptr %20, align 8, !tbaa !9
  %2889 = load i64, ptr %21, align 8, !tbaa !9
  %2890 = load i64, ptr %27, align 8, !tbaa !9
  %2891 = mul nsw i64 %2889, %2890
  %2892 = add nsw i64 %2888, %2891
  %2893 = getelementptr inbounds %struct.complex, ptr %2887, i64 %2892
  %2894 = call double @c_abs(ptr noundef %2893)
  %2895 = fptrunc double %2894 to float
  store float %2895, ptr %26, align 4, !tbaa !11
  %2896 = load float, ptr %26, align 4, !tbaa !11
  %2897 = load float, ptr %24, align 4, !tbaa !11
  %2898 = fadd float %2897, %2896
  store float %2898, ptr %24, align 4, !tbaa !11
  %2899 = load float, ptr %26, align 4, !tbaa !11
  %2900 = load ptr, ptr %13, align 8, !tbaa !5
  %2901 = load i64, ptr %23, align 8, !tbaa !9
  %2902 = getelementptr inbounds float, ptr %2900, i64 %2901
  %2903 = load float, ptr %2902, align 4, !tbaa !11
  %2904 = fadd float %2903, %2899
  store float %2904, ptr %2902, align 4, !tbaa !11
  br label %2905

2905:                                             ; preds = %2884
  %2906 = load i64, ptr %23, align 8, !tbaa !9
  %2907 = add nsw i64 %2906, 1
  store i64 %2907, ptr %23, align 8, !tbaa !9
  br label %2880, !llvm.loop !73

2908:                                             ; preds = %2880
  %2909 = load float, ptr %24, align 4, !tbaa !11
  %2910 = load ptr, ptr %13, align 8, !tbaa !5
  %2911 = load i64, ptr %21, align 8, !tbaa !9
  %2912 = getelementptr inbounds float, ptr %2910, i64 %2911
  %2913 = load float, ptr %2912, align 4, !tbaa !11
  %2914 = fadd float %2913, %2909
  store float %2914, ptr %2912, align 4, !tbaa !11
  br label %2915

2915:                                             ; preds = %2908
  %2916 = load i64, ptr %21, align 8, !tbaa !9
  %2917 = add nsw i64 %2916, -1
  store i64 %2917, ptr %21, align 8, !tbaa !9
  br label %2781, !llvm.loop !74

2918:                                             ; preds = %2781
  %2919 = load ptr, ptr %11, align 8, !tbaa !5
  %2920 = load ptr, ptr %13, align 8, !tbaa !5
  %2921 = call i64 @f2c_isamax(ptr noundef %2919, ptr noundef %2920, ptr noundef @c__1)
  store i64 %2921, ptr %20, align 8, !tbaa !9
  %2922 = load ptr, ptr %13, align 8, !tbaa !5
  %2923 = load i64, ptr %20, align 8, !tbaa !9
  %2924 = sub nsw i64 %2923, 1
  %2925 = getelementptr inbounds float, ptr %2922, i64 %2924
  %2926 = load float, ptr %2925, align 4, !tbaa !11
  store float %2926, ptr %32, align 4, !tbaa !11
  br label %2927

2927:                                             ; preds = %2918, %2753
  br label %2928

2928:                                             ; preds = %2927, %2596
  br label %4126

2929:                                             ; preds = %2244
  %2930 = load ptr, ptr %11, align 8, !tbaa !5
  %2931 = load i64, ptr %2930, align 8, !tbaa !9
  %2932 = sdiv i64 %2931, 2
  store i64 %2932, ptr %22, align 8, !tbaa !9
  %2933 = load i64, ptr %29, align 8, !tbaa !9
  %2934 = icmp eq i64 %2933, 1
  br i1 %2934, label %2935, label %3476

2935:                                             ; preds = %2929
  %2936 = load i64, ptr %30, align 8, !tbaa !9
  %2937 = icmp eq i64 %2936, 0
  br i1 %2937, label %2938, label %3207

2938:                                             ; preds = %2935
  %2939 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %2939, ptr %25, align 8, !tbaa !9
  %2940 = load i64, ptr %22, align 8, !tbaa !9
  %2941 = add nsw i64 %2940, 1
  store i64 %2941, ptr %22, align 8, !tbaa !9
  %2942 = load ptr, ptr %11, align 8, !tbaa !5
  %2943 = load i64, ptr %2942, align 8, !tbaa !9
  %2944 = sub nsw i64 %2943, 1
  store i64 %2944, ptr %14, align 8, !tbaa !9
  %2945 = load i64, ptr %25, align 8, !tbaa !9
  store i64 %2945, ptr %20, align 8, !tbaa !9
  br label %2946

2946:                                             ; preds = %2954, %2938
  %2947 = load i64, ptr %20, align 8, !tbaa !9
  %2948 = load i64, ptr %14, align 8, !tbaa !9
  %2949 = icmp sle i64 %2947, %2948
  br i1 %2949, label %2950, label %2957

2950:                                             ; preds = %2946
  %2951 = load ptr, ptr %13, align 8, !tbaa !5
  %2952 = load i64, ptr %20, align 8, !tbaa !9
  %2953 = getelementptr inbounds float, ptr %2951, i64 %2952
  store float 0.000000e+00, ptr %2953, align 4, !tbaa !11
  br label %2954

2954:                                             ; preds = %2950
  %2955 = load i64, ptr %20, align 8, !tbaa !9
  %2956 = add nsw i64 %2955, 1
  store i64 %2956, ptr %20, align 8, !tbaa !9
  br label %2946, !llvm.loop !75

2957:                                             ; preds = %2946
  %2958 = load i64, ptr %25, align 8, !tbaa !9
  %2959 = sub nsw i64 %2958, 1
  store i64 %2959, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2960

2960:                                             ; preds = %3000, %2957
  %2961 = load i64, ptr %21, align 8, !tbaa !9
  %2962 = load i64, ptr %14, align 8, !tbaa !9
  %2963 = icmp sle i64 %2961, %2962
  br i1 %2963, label %2964, label %3003

2964:                                             ; preds = %2960
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2965 = load i64, ptr %22, align 8, !tbaa !9
  %2966 = sub nsw i64 %2965, 1
  store i64 %2966, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2967

2967:                                             ; preds = %2992, %2964
  %2968 = load i64, ptr %20, align 8, !tbaa !9
  %2969 = load i64, ptr %15, align 8, !tbaa !9
  %2970 = icmp sle i64 %2968, %2969
  br i1 %2970, label %2971, label %2995

2971:                                             ; preds = %2967
  %2972 = load ptr, ptr %12, align 8, !tbaa !5
  %2973 = load i64, ptr %20, align 8, !tbaa !9
  %2974 = load i64, ptr %21, align 8, !tbaa !9
  %2975 = load i64, ptr %27, align 8, !tbaa !9
  %2976 = mul nsw i64 %2974, %2975
  %2977 = add nsw i64 %2973, %2976
  %2978 = getelementptr inbounds %struct.complex, ptr %2972, i64 %2977
  %2979 = call double @c_abs(ptr noundef %2978)
  %2980 = fptrunc double %2979 to float
  store float %2980, ptr %26, align 4, !tbaa !11
  %2981 = load float, ptr %26, align 4, !tbaa !11
  %2982 = load ptr, ptr %13, align 8, !tbaa !5
  %2983 = load i64, ptr %20, align 8, !tbaa !9
  %2984 = load i64, ptr %25, align 8, !tbaa !9
  %2985 = add nsw i64 %2983, %2984
  %2986 = getelementptr inbounds float, ptr %2982, i64 %2985
  %2987 = load float, ptr %2986, align 4, !tbaa !11
  %2988 = fadd float %2987, %2981
  store float %2988, ptr %2986, align 4, !tbaa !11
  %2989 = load float, ptr %26, align 4, !tbaa !11
  %2990 = load float, ptr %24, align 4, !tbaa !11
  %2991 = fadd float %2990, %2989
  store float %2991, ptr %24, align 4, !tbaa !11
  br label %2992

2992:                                             ; preds = %2971
  %2993 = load i64, ptr %20, align 8, !tbaa !9
  %2994 = add nsw i64 %2993, 1
  store i64 %2994, ptr %20, align 8, !tbaa !9
  br label %2967, !llvm.loop !76

2995:                                             ; preds = %2967
  %2996 = load float, ptr %24, align 4, !tbaa !11
  %2997 = load ptr, ptr %13, align 8, !tbaa !5
  %2998 = load i64, ptr %21, align 8, !tbaa !9
  %2999 = getelementptr inbounds float, ptr %2997, i64 %2998
  store float %2996, ptr %2999, align 4, !tbaa !11
  br label %3000

3000:                                             ; preds = %2995
  %3001 = load i64, ptr %21, align 8, !tbaa !9
  %3002 = add nsw i64 %3001, 1
  store i64 %3002, ptr %21, align 8, !tbaa !9
  br label %2960, !llvm.loop !77

3003:                                             ; preds = %2960
  %3004 = load i64, ptr %21, align 8, !tbaa !9
  %3005 = load i64, ptr %27, align 8, !tbaa !9
  %3006 = mul nsw i64 %3004, %3005
  store i64 %3006, ptr %14, align 8, !tbaa !9
  %3007 = load ptr, ptr %12, align 8, !tbaa !5
  %3008 = load i64, ptr %14, align 8, !tbaa !9
  %3009 = getelementptr inbounds %struct.complex, ptr %3007, i64 %3008
  %3010 = getelementptr inbounds %struct.complex, ptr %3009, i32 0, i32 0
  %3011 = load float, ptr %3010, align 4, !tbaa !13
  store float %3011, ptr %17, align 4, !tbaa !11
  %3012 = load float, ptr %17, align 4, !tbaa !11
  %3013 = fcmp oge float %3012, 0.000000e+00
  br i1 %3013, label %3014, label %3016

3014:                                             ; preds = %3003
  %3015 = load float, ptr %17, align 4, !tbaa !11
  br label %3019

3016:                                             ; preds = %3003
  %3017 = load float, ptr %17, align 4, !tbaa !11
  %3018 = fneg float %3017
  br label %3019

3019:                                             ; preds = %3016, %3014
  %3020 = phi float [ %3015, %3014 ], [ %3018, %3016 ]
  %3021 = fpext float %3020 to double
  %3022 = fptrunc double %3021 to float
  store float %3022, ptr %24, align 4, !tbaa !11
  %3023 = load i64, ptr %22, align 8, !tbaa !9
  %3024 = sub nsw i64 %3023, 1
  store i64 %3024, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %3025

3025:                                             ; preds = %3050, %3019
  %3026 = load i64, ptr %20, align 8, !tbaa !9
  %3027 = load i64, ptr %14, align 8, !tbaa !9
  %3028 = icmp sle i64 %3026, %3027
  br i1 %3028, label %3029, label %3053

3029:                                             ; preds = %3025
  %3030 = load ptr, ptr %12, align 8, !tbaa !5
  %3031 = load i64, ptr %20, align 8, !tbaa !9
  %3032 = load i64, ptr %21, align 8, !tbaa !9
  %3033 = load i64, ptr %27, align 8, !tbaa !9
  %3034 = mul nsw i64 %3032, %3033
  %3035 = add nsw i64 %3031, %3034
  %3036 = getelementptr inbounds %struct.complex, ptr %3030, i64 %3035
  %3037 = call double @c_abs(ptr noundef %3036)
  %3038 = fptrunc double %3037 to float
  store float %3038, ptr %26, align 4, !tbaa !11
  %3039 = load float, ptr %26, align 4, !tbaa !11
  %3040 = load ptr, ptr %13, align 8, !tbaa !5
  %3041 = load i64, ptr %20, align 8, !tbaa !9
  %3042 = load i64, ptr %25, align 8, !tbaa !9
  %3043 = add nsw i64 %3041, %3042
  %3044 = getelementptr inbounds float, ptr %3040, i64 %3043
  %3045 = load float, ptr %3044, align 4, !tbaa !11
  %3046 = fadd float %3045, %3039
  store float %3046, ptr %3044, align 4, !tbaa !11
  %3047 = load float, ptr %26, align 4, !tbaa !11
  %3048 = load float, ptr %24, align 4, !tbaa !11
  %3049 = fadd float %3048, %3047
  store float %3049, ptr %24, align 4, !tbaa !11
  br label %3050

3050:                                             ; preds = %3029
  %3051 = load i64, ptr %20, align 8, !tbaa !9
  %3052 = add nsw i64 %3051, 1
  store i64 %3052, ptr %20, align 8, !tbaa !9
  br label %3025, !llvm.loop !78

3053:                                             ; preds = %3025
  %3054 = load float, ptr %24, align 4, !tbaa !11
  %3055 = load ptr, ptr %13, align 8, !tbaa !5
  %3056 = load i64, ptr %21, align 8, !tbaa !9
  %3057 = getelementptr inbounds float, ptr %3055, i64 %3056
  %3058 = load float, ptr %3057, align 4, !tbaa !11
  %3059 = fadd float %3058, %3054
  store float %3059, ptr %3057, align 4, !tbaa !11
  %3060 = load ptr, ptr %11, align 8, !tbaa !5
  %3061 = load i64, ptr %3060, align 8, !tbaa !9
  %3062 = sub nsw i64 %3061, 1
  store i64 %3062, ptr %14, align 8, !tbaa !9
  %3063 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %3063, ptr %21, align 8, !tbaa !9
  br label %3064

3064:                                             ; preds = %3195, %3053
  %3065 = load i64, ptr %21, align 8, !tbaa !9
  %3066 = load i64, ptr %14, align 8, !tbaa !9
  %3067 = icmp sle i64 %3065, %3066
  br i1 %3067, label %3068, label %3198

3068:                                             ; preds = %3064
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3069 = load i64, ptr %21, align 8, !tbaa !9
  %3070 = load i64, ptr %22, align 8, !tbaa !9
  %3071 = sub nsw i64 %3069, %3070
  %3072 = sub nsw i64 %3071, 1
  store i64 %3072, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3073

3073:                                             ; preds = %3096, %3068
  %3074 = load i64, ptr %20, align 8, !tbaa !9
  %3075 = load i64, ptr %15, align 8, !tbaa !9
  %3076 = icmp sle i64 %3074, %3075
  br i1 %3076, label %3077, label %3099

3077:                                             ; preds = %3073
  %3078 = load ptr, ptr %12, align 8, !tbaa !5
  %3079 = load i64, ptr %20, align 8, !tbaa !9
  %3080 = load i64, ptr %21, align 8, !tbaa !9
  %3081 = load i64, ptr %27, align 8, !tbaa !9
  %3082 = mul nsw i64 %3080, %3081
  %3083 = add nsw i64 %3079, %3082
  %3084 = getelementptr inbounds %struct.complex, ptr %3078, i64 %3083
  %3085 = call double @c_abs(ptr noundef %3084)
  %3086 = fptrunc double %3085 to float
  store float %3086, ptr %26, align 4, !tbaa !11
  %3087 = load float, ptr %26, align 4, !tbaa !11
  %3088 = load ptr, ptr %13, align 8, !tbaa !5
  %3089 = load i64, ptr %20, align 8, !tbaa !9
  %3090 = getelementptr inbounds float, ptr %3088, i64 %3089
  %3091 = load float, ptr %3090, align 4, !tbaa !11
  %3092 = fadd float %3091, %3087
  store float %3092, ptr %3090, align 4, !tbaa !11
  %3093 = load float, ptr %26, align 4, !tbaa !11
  %3094 = load float, ptr %24, align 4, !tbaa !11
  %3095 = fadd float %3094, %3093
  store float %3095, ptr %24, align 4, !tbaa !11
  br label %3096

3096:                                             ; preds = %3077
  %3097 = load i64, ptr %20, align 8, !tbaa !9
  %3098 = add nsw i64 %3097, 1
  store i64 %3098, ptr %20, align 8, !tbaa !9
  br label %3073, !llvm.loop !79

3099:                                             ; preds = %3073
  %3100 = load i64, ptr %20, align 8, !tbaa !9
  %3101 = load i64, ptr %21, align 8, !tbaa !9
  %3102 = load i64, ptr %27, align 8, !tbaa !9
  %3103 = mul nsw i64 %3101, %3102
  %3104 = add nsw i64 %3100, %3103
  store i64 %3104, ptr %15, align 8, !tbaa !9
  %3105 = load ptr, ptr %12, align 8, !tbaa !5
  %3106 = load i64, ptr %15, align 8, !tbaa !9
  %3107 = getelementptr inbounds %struct.complex, ptr %3105, i64 %3106
  %3108 = getelementptr inbounds %struct.complex, ptr %3107, i32 0, i32 0
  %3109 = load float, ptr %3108, align 4, !tbaa !13
  store float %3109, ptr %17, align 4, !tbaa !11
  %3110 = load float, ptr %17, align 4, !tbaa !11
  %3111 = fcmp oge float %3110, 0.000000e+00
  br i1 %3111, label %3112, label %3114

3112:                                             ; preds = %3099
  %3113 = load float, ptr %17, align 4, !tbaa !11
  br label %3117

3114:                                             ; preds = %3099
  %3115 = load float, ptr %17, align 4, !tbaa !11
  %3116 = fneg float %3115
  br label %3117

3117:                                             ; preds = %3114, %3112
  %3118 = phi float [ %3113, %3112 ], [ %3116, %3114 ]
  %3119 = fpext float %3118 to double
  %3120 = fptrunc double %3119 to float
  store float %3120, ptr %26, align 4, !tbaa !11
  %3121 = load float, ptr %26, align 4, !tbaa !11
  %3122 = load float, ptr %24, align 4, !tbaa !11
  %3123 = fadd float %3122, %3121
  store float %3123, ptr %24, align 4, !tbaa !11
  %3124 = load float, ptr %24, align 4, !tbaa !11
  %3125 = load ptr, ptr %13, align 8, !tbaa !5
  %3126 = load i64, ptr %21, align 8, !tbaa !9
  %3127 = load i64, ptr %22, align 8, !tbaa !9
  %3128 = sub nsw i64 %3126, %3127
  %3129 = getelementptr inbounds float, ptr %3125, i64 %3128
  %3130 = load float, ptr %3129, align 4, !tbaa !11
  %3131 = fadd float %3130, %3124
  store float %3131, ptr %3129, align 4, !tbaa !11
  %3132 = load i64, ptr %20, align 8, !tbaa !9
  %3133 = add nsw i64 %3132, 1
  store i64 %3133, ptr %20, align 8, !tbaa !9
  %3134 = load i64, ptr %20, align 8, !tbaa !9
  %3135 = load i64, ptr %21, align 8, !tbaa !9
  %3136 = load i64, ptr %27, align 8, !tbaa !9
  %3137 = mul nsw i64 %3135, %3136
  %3138 = add nsw i64 %3134, %3137
  store i64 %3138, ptr %15, align 8, !tbaa !9
  %3139 = load ptr, ptr %12, align 8, !tbaa !5
  %3140 = load i64, ptr %15, align 8, !tbaa !9
  %3141 = getelementptr inbounds %struct.complex, ptr %3139, i64 %3140
  %3142 = getelementptr inbounds %struct.complex, ptr %3141, i32 0, i32 0
  %3143 = load float, ptr %3142, align 4, !tbaa !13
  store float %3143, ptr %17, align 4, !tbaa !11
  %3144 = load float, ptr %17, align 4, !tbaa !11
  %3145 = fcmp oge float %3144, 0.000000e+00
  br i1 %3145, label %3146, label %3148

3146:                                             ; preds = %3117
  %3147 = load float, ptr %17, align 4, !tbaa !11
  br label %3151

3148:                                             ; preds = %3117
  %3149 = load float, ptr %17, align 4, !tbaa !11
  %3150 = fneg float %3149
  br label %3151

3151:                                             ; preds = %3148, %3146
  %3152 = phi float [ %3147, %3146 ], [ %3150, %3148 ]
  %3153 = fpext float %3152 to double
  %3154 = fptrunc double %3153 to float
  store float %3154, ptr %24, align 4, !tbaa !11
  %3155 = load ptr, ptr %11, align 8, !tbaa !5
  %3156 = load i64, ptr %3155, align 8, !tbaa !9
  %3157 = sub nsw i64 %3156, 1
  store i64 %3157, ptr %15, align 8, !tbaa !9
  %3158 = load i64, ptr %21, align 8, !tbaa !9
  %3159 = add nsw i64 %3158, 1
  store i64 %3159, ptr %23, align 8, !tbaa !9
  br label %3160

3160:                                             ; preds = %3185, %3151
  %3161 = load i64, ptr %23, align 8, !tbaa !9
  %3162 = load i64, ptr %15, align 8, !tbaa !9
  %3163 = icmp sle i64 %3161, %3162
  br i1 %3163, label %3164, label %3188

3164:                                             ; preds = %3160
  %3165 = load i64, ptr %20, align 8, !tbaa !9
  %3166 = add nsw i64 %3165, 1
  store i64 %3166, ptr %20, align 8, !tbaa !9
  %3167 = load ptr, ptr %12, align 8, !tbaa !5
  %3168 = load i64, ptr %20, align 8, !tbaa !9
  %3169 = load i64, ptr %21, align 8, !tbaa !9
  %3170 = load i64, ptr %27, align 8, !tbaa !9
  %3171 = mul nsw i64 %3169, %3170
  %3172 = add nsw i64 %3168, %3171
  %3173 = getelementptr inbounds %struct.complex, ptr %3167, i64 %3172
  %3174 = call double @c_abs(ptr noundef %3173)
  %3175 = fptrunc double %3174 to float
  store float %3175, ptr %26, align 4, !tbaa !11
  %3176 = load float, ptr %26, align 4, !tbaa !11
  %3177 = load ptr, ptr %13, align 8, !tbaa !5
  %3178 = load i64, ptr %23, align 8, !tbaa !9
  %3179 = getelementptr inbounds float, ptr %3177, i64 %3178
  %3180 = load float, ptr %3179, align 4, !tbaa !11
  %3181 = fadd float %3180, %3176
  store float %3181, ptr %3179, align 4, !tbaa !11
  %3182 = load float, ptr %26, align 4, !tbaa !11
  %3183 = load float, ptr %24, align 4, !tbaa !11
  %3184 = fadd float %3183, %3182
  store float %3184, ptr %24, align 4, !tbaa !11
  br label %3185

3185:                                             ; preds = %3164
  %3186 = load i64, ptr %23, align 8, !tbaa !9
  %3187 = add nsw i64 %3186, 1
  store i64 %3187, ptr %23, align 8, !tbaa !9
  br label %3160, !llvm.loop !80

3188:                                             ; preds = %3160
  %3189 = load float, ptr %24, align 4, !tbaa !11
  %3190 = load ptr, ptr %13, align 8, !tbaa !5
  %3191 = load i64, ptr %21, align 8, !tbaa !9
  %3192 = getelementptr inbounds float, ptr %3190, i64 %3191
  %3193 = load float, ptr %3192, align 4, !tbaa !11
  %3194 = fadd float %3193, %3189
  store float %3194, ptr %3192, align 4, !tbaa !11
  br label %3195

3195:                                             ; preds = %3188
  %3196 = load i64, ptr %21, align 8, !tbaa !9
  %3197 = add nsw i64 %3196, 1
  store i64 %3197, ptr %21, align 8, !tbaa !9
  br label %3064, !llvm.loop !81

3198:                                             ; preds = %3064
  %3199 = load ptr, ptr %11, align 8, !tbaa !5
  %3200 = load ptr, ptr %13, align 8, !tbaa !5
  %3201 = call i64 @f2c_isamax(ptr noundef %3199, ptr noundef %3200, ptr noundef @c__1)
  store i64 %3201, ptr %20, align 8, !tbaa !9
  %3202 = load ptr, ptr %13, align 8, !tbaa !5
  %3203 = load i64, ptr %20, align 8, !tbaa !9
  %3204 = sub nsw i64 %3203, 1
  %3205 = getelementptr inbounds float, ptr %3202, i64 %3204
  %3206 = load float, ptr %3205, align 4, !tbaa !11
  store float %3206, ptr %32, align 4, !tbaa !11
  br label %3475

3207:                                             ; preds = %2935
  %3208 = load i64, ptr %22, align 8, !tbaa !9
  %3209 = add nsw i64 %3208, 1
  store i64 %3209, ptr %22, align 8, !tbaa !9
  %3210 = load ptr, ptr %11, align 8, !tbaa !5
  %3211 = load i64, ptr %3210, align 8, !tbaa !9
  %3212 = sub nsw i64 %3211, 1
  store i64 %3212, ptr %14, align 8, !tbaa !9
  %3213 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %3213, ptr %20, align 8, !tbaa !9
  br label %3214

3214:                                             ; preds = %3222, %3207
  %3215 = load i64, ptr %20, align 8, !tbaa !9
  %3216 = load i64, ptr %14, align 8, !tbaa !9
  %3217 = icmp sle i64 %3215, %3216
  br i1 %3217, label %3218, label %3225

3218:                                             ; preds = %3214
  %3219 = load ptr, ptr %13, align 8, !tbaa !5
  %3220 = load i64, ptr %20, align 8, !tbaa !9
  %3221 = getelementptr inbounds float, ptr %3219, i64 %3220
  store float 0.000000e+00, ptr %3221, align 4, !tbaa !11
  br label %3222

3222:                                             ; preds = %3218
  %3223 = load i64, ptr %20, align 8, !tbaa !9
  %3224 = add nsw i64 %3223, 1
  store i64 %3224, ptr %20, align 8, !tbaa !9
  br label %3214, !llvm.loop !82

3225:                                             ; preds = %3214
  %3226 = load i64, ptr %22, align 8, !tbaa !9
  %3227 = sub nsw i64 %3226, 2
  store i64 %3227, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %3228

3228:                                             ; preds = %3358, %3225
  %3229 = load i64, ptr %21, align 8, !tbaa !9
  %3230 = load i64, ptr %14, align 8, !tbaa !9
  %3231 = icmp sle i64 %3229, %3230
  br i1 %3231, label %3232, label %3361

3232:                                             ; preds = %3228
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3233 = load i64, ptr %21, align 8, !tbaa !9
  %3234 = sub nsw i64 %3233, 1
  store i64 %3234, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3235

3235:                                             ; preds = %3258, %3232
  %3236 = load i64, ptr %20, align 8, !tbaa !9
  %3237 = load i64, ptr %15, align 8, !tbaa !9
  %3238 = icmp sle i64 %3236, %3237
  br i1 %3238, label %3239, label %3261

3239:                                             ; preds = %3235
  %3240 = load ptr, ptr %12, align 8, !tbaa !5
  %3241 = load i64, ptr %20, align 8, !tbaa !9
  %3242 = load i64, ptr %21, align 8, !tbaa !9
  %3243 = load i64, ptr %27, align 8, !tbaa !9
  %3244 = mul nsw i64 %3242, %3243
  %3245 = add nsw i64 %3241, %3244
  %3246 = getelementptr inbounds %struct.complex, ptr %3240, i64 %3245
  %3247 = call double @c_abs(ptr noundef %3246)
  %3248 = fptrunc double %3247 to float
  store float %3248, ptr %26, align 4, !tbaa !11
  %3249 = load float, ptr %26, align 4, !tbaa !11
  %3250 = load ptr, ptr %13, align 8, !tbaa !5
  %3251 = load i64, ptr %20, align 8, !tbaa !9
  %3252 = getelementptr inbounds float, ptr %3250, i64 %3251
  %3253 = load float, ptr %3252, align 4, !tbaa !11
  %3254 = fadd float %3253, %3249
  store float %3254, ptr %3252, align 4, !tbaa !11
  %3255 = load float, ptr %26, align 4, !tbaa !11
  %3256 = load float, ptr %24, align 4, !tbaa !11
  %3257 = fadd float %3256, %3255
  store float %3257, ptr %24, align 4, !tbaa !11
  br label %3258

3258:                                             ; preds = %3239
  %3259 = load i64, ptr %20, align 8, !tbaa !9
  %3260 = add nsw i64 %3259, 1
  store i64 %3260, ptr %20, align 8, !tbaa !9
  br label %3235, !llvm.loop !83

3261:                                             ; preds = %3235
  %3262 = load i64, ptr %20, align 8, !tbaa !9
  %3263 = load i64, ptr %21, align 8, !tbaa !9
  %3264 = load i64, ptr %27, align 8, !tbaa !9
  %3265 = mul nsw i64 %3263, %3264
  %3266 = add nsw i64 %3262, %3265
  store i64 %3266, ptr %15, align 8, !tbaa !9
  %3267 = load ptr, ptr %12, align 8, !tbaa !5
  %3268 = load i64, ptr %15, align 8, !tbaa !9
  %3269 = getelementptr inbounds %struct.complex, ptr %3267, i64 %3268
  %3270 = getelementptr inbounds %struct.complex, ptr %3269, i32 0, i32 0
  %3271 = load float, ptr %3270, align 4, !tbaa !13
  store float %3271, ptr %17, align 4, !tbaa !11
  %3272 = load float, ptr %17, align 4, !tbaa !11
  %3273 = fcmp oge float %3272, 0.000000e+00
  br i1 %3273, label %3274, label %3276

3274:                                             ; preds = %3261
  %3275 = load float, ptr %17, align 4, !tbaa !11
  br label %3279

3276:                                             ; preds = %3261
  %3277 = load float, ptr %17, align 4, !tbaa !11
  %3278 = fneg float %3277
  br label %3279

3279:                                             ; preds = %3276, %3274
  %3280 = phi float [ %3275, %3274 ], [ %3278, %3276 ]
  %3281 = fpext float %3280 to double
  %3282 = fptrunc double %3281 to float
  store float %3282, ptr %26, align 4, !tbaa !11
  %3283 = load float, ptr %26, align 4, !tbaa !11
  %3284 = load float, ptr %24, align 4, !tbaa !11
  %3285 = fadd float %3284, %3283
  store float %3285, ptr %24, align 4, !tbaa !11
  %3286 = load float, ptr %24, align 4, !tbaa !11
  %3287 = load ptr, ptr %13, align 8, !tbaa !5
  %3288 = load i64, ptr %21, align 8, !tbaa !9
  %3289 = getelementptr inbounds float, ptr %3287, i64 %3288
  store float %3286, ptr %3289, align 4, !tbaa !11
  %3290 = load i64, ptr %20, align 8, !tbaa !9
  %3291 = add nsw i64 %3290, 1
  store i64 %3291, ptr %20, align 8, !tbaa !9
  %3292 = load i64, ptr %20, align 8, !tbaa !9
  %3293 = load i64, ptr %21, align 8, !tbaa !9
  %3294 = load i64, ptr %27, align 8, !tbaa !9
  %3295 = mul nsw i64 %3293, %3294
  %3296 = add nsw i64 %3292, %3295
  store i64 %3296, ptr %15, align 8, !tbaa !9
  %3297 = load ptr, ptr %12, align 8, !tbaa !5
  %3298 = load i64, ptr %15, align 8, !tbaa !9
  %3299 = getelementptr inbounds %struct.complex, ptr %3297, i64 %3298
  %3300 = getelementptr inbounds %struct.complex, ptr %3299, i32 0, i32 0
  %3301 = load float, ptr %3300, align 4, !tbaa !13
  store float %3301, ptr %17, align 4, !tbaa !11
  %3302 = load float, ptr %17, align 4, !tbaa !11
  %3303 = fcmp oge float %3302, 0.000000e+00
  br i1 %3303, label %3304, label %3306

3304:                                             ; preds = %3279
  %3305 = load float, ptr %17, align 4, !tbaa !11
  br label %3309

3306:                                             ; preds = %3279
  %3307 = load float, ptr %17, align 4, !tbaa !11
  %3308 = fneg float %3307
  br label %3309

3309:                                             ; preds = %3306, %3304
  %3310 = phi float [ %3305, %3304 ], [ %3308, %3306 ]
  %3311 = fpext float %3310 to double
  %3312 = fptrunc double %3311 to float
  store float %3312, ptr %26, align 4, !tbaa !11
  %3313 = load float, ptr %26, align 4, !tbaa !11
  store float %3313, ptr %24, align 4, !tbaa !11
  %3314 = load ptr, ptr %11, align 8, !tbaa !5
  %3315 = load i64, ptr %3314, align 8, !tbaa !9
  %3316 = sub nsw i64 %3315, 1
  store i64 %3316, ptr %15, align 8, !tbaa !9
  %3317 = load i64, ptr %22, align 8, !tbaa !9
  %3318 = load i64, ptr %21, align 8, !tbaa !9
  %3319 = add nsw i64 %3317, %3318
  %3320 = add nsw i64 %3319, 1
  store i64 %3320, ptr %23, align 8, !tbaa !9
  br label %3321

3321:                                             ; preds = %3346, %3309
  %3322 = load i64, ptr %23, align 8, !tbaa !9
  %3323 = load i64, ptr %15, align 8, !tbaa !9
  %3324 = icmp sle i64 %3322, %3323
  br i1 %3324, label %3325, label %3349

3325:                                             ; preds = %3321
  %3326 = load i64, ptr %20, align 8, !tbaa !9
  %3327 = add nsw i64 %3326, 1
  store i64 %3327, ptr %20, align 8, !tbaa !9
  %3328 = load ptr, ptr %12, align 8, !tbaa !5
  %3329 = load i64, ptr %20, align 8, !tbaa !9
  %3330 = load i64, ptr %21, align 8, !tbaa !9
  %3331 = load i64, ptr %27, align 8, !tbaa !9
  %3332 = mul nsw i64 %3330, %3331
  %3333 = add nsw i64 %3329, %3332
  %3334 = getelementptr inbounds %struct.complex, ptr %3328, i64 %3333
  %3335 = call double @c_abs(ptr noundef %3334)
  %3336 = fptrunc double %3335 to float
  store float %3336, ptr %26, align 4, !tbaa !11
  %3337 = load float, ptr %26, align 4, !tbaa !11
  %3338 = load float, ptr %24, align 4, !tbaa !11
  %3339 = fadd float %3338, %3337
  store float %3339, ptr %24, align 4, !tbaa !11
  %3340 = load float, ptr %26, align 4, !tbaa !11
  %3341 = load ptr, ptr %13, align 8, !tbaa !5
  %3342 = load i64, ptr %23, align 8, !tbaa !9
  %3343 = getelementptr inbounds float, ptr %3341, i64 %3342
  %3344 = load float, ptr %3343, align 4, !tbaa !11
  %3345 = fadd float %3344, %3340
  store float %3345, ptr %3343, align 4, !tbaa !11
  br label %3346

3346:                                             ; preds = %3325
  %3347 = load i64, ptr %23, align 8, !tbaa !9
  %3348 = add nsw i64 %3347, 1
  store i64 %3348, ptr %23, align 8, !tbaa !9
  br label %3321, !llvm.loop !84

3349:                                             ; preds = %3321
  %3350 = load float, ptr %24, align 4, !tbaa !11
  %3351 = load ptr, ptr %13, align 8, !tbaa !5
  %3352 = load i64, ptr %22, align 8, !tbaa !9
  %3353 = load i64, ptr %21, align 8, !tbaa !9
  %3354 = add nsw i64 %3352, %3353
  %3355 = getelementptr inbounds float, ptr %3351, i64 %3354
  %3356 = load float, ptr %3355, align 4, !tbaa !11
  %3357 = fadd float %3356, %3350
  store float %3357, ptr %3355, align 4, !tbaa !11
  br label %3358

3358:                                             ; preds = %3349
  %3359 = load i64, ptr %21, align 8, !tbaa !9
  %3360 = add nsw i64 %3359, 1
  store i64 %3360, ptr %21, align 8, !tbaa !9
  br label %3228, !llvm.loop !85

3361:                                             ; preds = %3228
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3362 = load i64, ptr %22, align 8, !tbaa !9
  %3363 = sub nsw i64 %3362, 2
  store i64 %3363, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3364

3364:                                             ; preds = %3387, %3361
  %3365 = load i64, ptr %20, align 8, !tbaa !9
  %3366 = load i64, ptr %14, align 8, !tbaa !9
  %3367 = icmp sle i64 %3365, %3366
  br i1 %3367, label %3368, label %3390

3368:                                             ; preds = %3364
  %3369 = load ptr, ptr %12, align 8, !tbaa !5
  %3370 = load i64, ptr %20, align 8, !tbaa !9
  %3371 = load i64, ptr %21, align 8, !tbaa !9
  %3372 = load i64, ptr %27, align 8, !tbaa !9
  %3373 = mul nsw i64 %3371, %3372
  %3374 = add nsw i64 %3370, %3373
  %3375 = getelementptr inbounds %struct.complex, ptr %3369, i64 %3374
  %3376 = call double @c_abs(ptr noundef %3375)
  %3377 = fptrunc double %3376 to float
  store float %3377, ptr %26, align 4, !tbaa !11
  %3378 = load float, ptr %26, align 4, !tbaa !11
  %3379 = load ptr, ptr %13, align 8, !tbaa !5
  %3380 = load i64, ptr %20, align 8, !tbaa !9
  %3381 = getelementptr inbounds float, ptr %3379, i64 %3380
  %3382 = load float, ptr %3381, align 4, !tbaa !11
  %3383 = fadd float %3382, %3378
  store float %3383, ptr %3381, align 4, !tbaa !11
  %3384 = load float, ptr %26, align 4, !tbaa !11
  %3385 = load float, ptr %24, align 4, !tbaa !11
  %3386 = fadd float %3385, %3384
  store float %3386, ptr %24, align 4, !tbaa !11
  br label %3387

3387:                                             ; preds = %3368
  %3388 = load i64, ptr %20, align 8, !tbaa !9
  %3389 = add nsw i64 %3388, 1
  store i64 %3389, ptr %20, align 8, !tbaa !9
  br label %3364, !llvm.loop !86

3390:                                             ; preds = %3364
  %3391 = load i64, ptr %20, align 8, !tbaa !9
  %3392 = load i64, ptr %21, align 8, !tbaa !9
  %3393 = load i64, ptr %27, align 8, !tbaa !9
  %3394 = mul nsw i64 %3392, %3393
  %3395 = add nsw i64 %3391, %3394
  store i64 %3395, ptr %14, align 8, !tbaa !9
  %3396 = load ptr, ptr %12, align 8, !tbaa !5
  %3397 = load i64, ptr %14, align 8, !tbaa !9
  %3398 = getelementptr inbounds %struct.complex, ptr %3396, i64 %3397
  %3399 = getelementptr inbounds %struct.complex, ptr %3398, i32 0, i32 0
  %3400 = load float, ptr %3399, align 4, !tbaa !13
  store float %3400, ptr %17, align 4, !tbaa !11
  %3401 = load float, ptr %17, align 4, !tbaa !11
  %3402 = fcmp oge float %3401, 0.000000e+00
  br i1 %3402, label %3403, label %3405

3403:                                             ; preds = %3390
  %3404 = load float, ptr %17, align 4, !tbaa !11
  br label %3408

3405:                                             ; preds = %3390
  %3406 = load float, ptr %17, align 4, !tbaa !11
  %3407 = fneg float %3406
  br label %3408

3408:                                             ; preds = %3405, %3403
  %3409 = phi float [ %3404, %3403 ], [ %3407, %3405 ]
  %3410 = fpext float %3409 to double
  %3411 = fptrunc double %3410 to float
  store float %3411, ptr %26, align 4, !tbaa !11
  %3412 = load float, ptr %26, align 4, !tbaa !11
  %3413 = load float, ptr %24, align 4, !tbaa !11
  %3414 = fadd float %3413, %3412
  store float %3414, ptr %24, align 4, !tbaa !11
  %3415 = load float, ptr %24, align 4, !tbaa !11
  %3416 = load ptr, ptr %13, align 8, !tbaa !5
  %3417 = load i64, ptr %20, align 8, !tbaa !9
  %3418 = getelementptr inbounds float, ptr %3416, i64 %3417
  store float %3415, ptr %3418, align 4, !tbaa !11
  %3419 = load ptr, ptr %11, align 8, !tbaa !5
  %3420 = load i64, ptr %3419, align 8, !tbaa !9
  %3421 = sub nsw i64 %3420, 1
  store i64 %3421, ptr %14, align 8, !tbaa !9
  %3422 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %3422, ptr %21, align 8, !tbaa !9
  br label %3423

3423:                                             ; preds = %3463, %3408
  %3424 = load i64, ptr %21, align 8, !tbaa !9
  %3425 = load i64, ptr %14, align 8, !tbaa !9
  %3426 = icmp sle i64 %3424, %3425
  br i1 %3426, label %3427, label %3466

3427:                                             ; preds = %3423
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3428 = load i64, ptr %22, align 8, !tbaa !9
  %3429 = sub nsw i64 %3428, 1
  store i64 %3429, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3430

3430:                                             ; preds = %3453, %3427
  %3431 = load i64, ptr %20, align 8, !tbaa !9
  %3432 = load i64, ptr %15, align 8, !tbaa !9
  %3433 = icmp sle i64 %3431, %3432
  br i1 %3433, label %3434, label %3456

3434:                                             ; preds = %3430
  %3435 = load ptr, ptr %12, align 8, !tbaa !5
  %3436 = load i64, ptr %20, align 8, !tbaa !9
  %3437 = load i64, ptr %21, align 8, !tbaa !9
  %3438 = load i64, ptr %27, align 8, !tbaa !9
  %3439 = mul nsw i64 %3437, %3438
  %3440 = add nsw i64 %3436, %3439
  %3441 = getelementptr inbounds %struct.complex, ptr %3435, i64 %3440
  %3442 = call double @c_abs(ptr noundef %3441)
  %3443 = fptrunc double %3442 to float
  store float %3443, ptr %26, align 4, !tbaa !11
  %3444 = load float, ptr %26, align 4, !tbaa !11
  %3445 = load ptr, ptr %13, align 8, !tbaa !5
  %3446 = load i64, ptr %20, align 8, !tbaa !9
  %3447 = getelementptr inbounds float, ptr %3445, i64 %3446
  %3448 = load float, ptr %3447, align 4, !tbaa !11
  %3449 = fadd float %3448, %3444
  store float %3449, ptr %3447, align 4, !tbaa !11
  %3450 = load float, ptr %26, align 4, !tbaa !11
  %3451 = load float, ptr %24, align 4, !tbaa !11
  %3452 = fadd float %3451, %3450
  store float %3452, ptr %24, align 4, !tbaa !11
  br label %3453

3453:                                             ; preds = %3434
  %3454 = load i64, ptr %20, align 8, !tbaa !9
  %3455 = add nsw i64 %3454, 1
  store i64 %3455, ptr %20, align 8, !tbaa !9
  br label %3430, !llvm.loop !87

3456:                                             ; preds = %3430
  %3457 = load float, ptr %24, align 4, !tbaa !11
  %3458 = load ptr, ptr %13, align 8, !tbaa !5
  %3459 = load i64, ptr %21, align 8, !tbaa !9
  %3460 = getelementptr inbounds float, ptr %3458, i64 %3459
  %3461 = load float, ptr %3460, align 4, !tbaa !11
  %3462 = fadd float %3461, %3457
  store float %3462, ptr %3460, align 4, !tbaa !11
  br label %3463

3463:                                             ; preds = %3456
  %3464 = load i64, ptr %21, align 8, !tbaa !9
  %3465 = add nsw i64 %3464, 1
  store i64 %3465, ptr %21, align 8, !tbaa !9
  br label %3423, !llvm.loop !88

3466:                                             ; preds = %3423
  %3467 = load ptr, ptr %11, align 8, !tbaa !5
  %3468 = load ptr, ptr %13, align 8, !tbaa !5
  %3469 = call i64 @f2c_isamax(ptr noundef %3467, ptr noundef %3468, ptr noundef @c__1)
  store i64 %3469, ptr %20, align 8, !tbaa !9
  %3470 = load ptr, ptr %13, align 8, !tbaa !5
  %3471 = load i64, ptr %20, align 8, !tbaa !9
  %3472 = sub nsw i64 %3471, 1
  %3473 = getelementptr inbounds float, ptr %3470, i64 %3472
  %3474 = load float, ptr %3473, align 4, !tbaa !11
  store float %3474, ptr %32, align 4, !tbaa !11
  br label %3475

3475:                                             ; preds = %3466, %3198
  br label %4125

3476:                                             ; preds = %2929
  %3477 = load i64, ptr %30, align 8, !tbaa !9
  %3478 = icmp eq i64 %3477, 0
  br i1 %3478, label %3479, label %3808

3479:                                             ; preds = %3476
  %3480 = load ptr, ptr %11, align 8, !tbaa !5
  %3481 = load i64, ptr %3480, align 8, !tbaa !9
  %3482 = sub nsw i64 %3481, 1
  store i64 %3482, ptr %14, align 8, !tbaa !9
  %3483 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %3483, ptr %20, align 8, !tbaa !9
  br label %3484

3484:                                             ; preds = %3492, %3479
  %3485 = load i64, ptr %20, align 8, !tbaa !9
  %3486 = load i64, ptr %14, align 8, !tbaa !9
  %3487 = icmp sle i64 %3485, %3486
  br i1 %3487, label %3488, label %3495

3488:                                             ; preds = %3484
  %3489 = load ptr, ptr %13, align 8, !tbaa !5
  %3490 = load i64, ptr %20, align 8, !tbaa !9
  %3491 = getelementptr inbounds float, ptr %3489, i64 %3490
  store float 0.000000e+00, ptr %3491, align 4, !tbaa !11
  br label %3492

3492:                                             ; preds = %3488
  %3493 = load i64, ptr %20, align 8, !tbaa !9
  %3494 = add nsw i64 %3493, 1
  store i64 %3494, ptr %20, align 8, !tbaa !9
  br label %3484, !llvm.loop !89

3495:                                             ; preds = %3484
  %3496 = load i64, ptr %22, align 8, !tbaa !9
  %3497 = sub nsw i64 %3496, 1
  store i64 %3497, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %3498

3498:                                             ; preds = %3538, %3495
  %3499 = load i64, ptr %21, align 8, !tbaa !9
  %3500 = load i64, ptr %14, align 8, !tbaa !9
  %3501 = icmp sle i64 %3499, %3500
  br i1 %3501, label %3502, label %3541

3502:                                             ; preds = %3498
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3503 = load i64, ptr %22, align 8, !tbaa !9
  %3504 = sub nsw i64 %3503, 1
  store i64 %3504, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3505

3505:                                             ; preds = %3530, %3502
  %3506 = load i64, ptr %20, align 8, !tbaa !9
  %3507 = load i64, ptr %15, align 8, !tbaa !9
  %3508 = icmp sle i64 %3506, %3507
  br i1 %3508, label %3509, label %3533

3509:                                             ; preds = %3505
  %3510 = load ptr, ptr %12, align 8, !tbaa !5
  %3511 = load i64, ptr %20, align 8, !tbaa !9
  %3512 = load i64, ptr %21, align 8, !tbaa !9
  %3513 = load i64, ptr %27, align 8, !tbaa !9
  %3514 = mul nsw i64 %3512, %3513
  %3515 = add nsw i64 %3511, %3514
  %3516 = getelementptr inbounds %struct.complex, ptr %3510, i64 %3515
  %3517 = call double @c_abs(ptr noundef %3516)
  %3518 = fptrunc double %3517 to float
  store float %3518, ptr %26, align 4, !tbaa !11
  %3519 = load float, ptr %26, align 4, !tbaa !11
  %3520 = load ptr, ptr %13, align 8, !tbaa !5
  %3521 = load i64, ptr %20, align 8, !tbaa !9
  %3522 = load i64, ptr %22, align 8, !tbaa !9
  %3523 = add nsw i64 %3521, %3522
  %3524 = getelementptr inbounds float, ptr %3520, i64 %3523
  %3525 = load float, ptr %3524, align 4, !tbaa !11
  %3526 = fadd float %3525, %3519
  store float %3526, ptr %3524, align 4, !tbaa !11
  %3527 = load float, ptr %26, align 4, !tbaa !11
  %3528 = load float, ptr %24, align 4, !tbaa !11
  %3529 = fadd float %3528, %3527
  store float %3529, ptr %24, align 4, !tbaa !11
  br label %3530

3530:                                             ; preds = %3509
  %3531 = load i64, ptr %20, align 8, !tbaa !9
  %3532 = add nsw i64 %3531, 1
  store i64 %3532, ptr %20, align 8, !tbaa !9
  br label %3505, !llvm.loop !90

3533:                                             ; preds = %3505
  %3534 = load float, ptr %24, align 4, !tbaa !11
  %3535 = load ptr, ptr %13, align 8, !tbaa !5
  %3536 = load i64, ptr %21, align 8, !tbaa !9
  %3537 = getelementptr inbounds float, ptr %3535, i64 %3536
  store float %3534, ptr %3537, align 4, !tbaa !11
  br label %3538

3538:                                             ; preds = %3533
  %3539 = load i64, ptr %21, align 8, !tbaa !9
  %3540 = add nsw i64 %3539, 1
  store i64 %3540, ptr %21, align 8, !tbaa !9
  br label %3498, !llvm.loop !91

3541:                                             ; preds = %3498
  %3542 = load i64, ptr %21, align 8, !tbaa !9
  %3543 = load i64, ptr %27, align 8, !tbaa !9
  %3544 = mul nsw i64 %3542, %3543
  store i64 %3544, ptr %14, align 8, !tbaa !9
  %3545 = load ptr, ptr %12, align 8, !tbaa !5
  %3546 = load i64, ptr %14, align 8, !tbaa !9
  %3547 = getelementptr inbounds %struct.complex, ptr %3545, i64 %3546
  %3548 = getelementptr inbounds %struct.complex, ptr %3547, i32 0, i32 0
  %3549 = load float, ptr %3548, align 4, !tbaa !13
  store float %3549, ptr %17, align 4, !tbaa !11
  %3550 = load float, ptr %17, align 4, !tbaa !11
  %3551 = fcmp oge float %3550, 0.000000e+00
  br i1 %3551, label %3552, label %3554

3552:                                             ; preds = %3541
  %3553 = load float, ptr %17, align 4, !tbaa !11
  br label %3557

3554:                                             ; preds = %3541
  %3555 = load float, ptr %17, align 4, !tbaa !11
  %3556 = fneg float %3555
  br label %3557

3557:                                             ; preds = %3554, %3552
  %3558 = phi float [ %3553, %3552 ], [ %3556, %3554 ]
  %3559 = fpext float %3558 to double
  %3560 = fptrunc double %3559 to float
  store float %3560, ptr %26, align 4, !tbaa !11
  %3561 = load float, ptr %26, align 4, !tbaa !11
  store float %3561, ptr %24, align 4, !tbaa !11
  %3562 = load i64, ptr %22, align 8, !tbaa !9
  %3563 = sub nsw i64 %3562, 1
  store i64 %3563, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %3564

3564:                                             ; preds = %3589, %3557
  %3565 = load i64, ptr %20, align 8, !tbaa !9
  %3566 = load i64, ptr %14, align 8, !tbaa !9
  %3567 = icmp sle i64 %3565, %3566
  br i1 %3567, label %3568, label %3592

3568:                                             ; preds = %3564
  %3569 = load ptr, ptr %12, align 8, !tbaa !5
  %3570 = load i64, ptr %20, align 8, !tbaa !9
  %3571 = load i64, ptr %21, align 8, !tbaa !9
  %3572 = load i64, ptr %27, align 8, !tbaa !9
  %3573 = mul nsw i64 %3571, %3572
  %3574 = add nsw i64 %3570, %3573
  %3575 = getelementptr inbounds %struct.complex, ptr %3569, i64 %3574
  %3576 = call double @c_abs(ptr noundef %3575)
  %3577 = fptrunc double %3576 to float
  store float %3577, ptr %26, align 4, !tbaa !11
  %3578 = load float, ptr %26, align 4, !tbaa !11
  %3579 = load ptr, ptr %13, align 8, !tbaa !5
  %3580 = load i64, ptr %20, align 8, !tbaa !9
  %3581 = load i64, ptr %22, align 8, !tbaa !9
  %3582 = add nsw i64 %3580, %3581
  %3583 = getelementptr inbounds float, ptr %3579, i64 %3582
  %3584 = load float, ptr %3583, align 4, !tbaa !11
  %3585 = fadd float %3584, %3578
  store float %3585, ptr %3583, align 4, !tbaa !11
  %3586 = load float, ptr %26, align 4, !tbaa !11
  %3587 = load float, ptr %24, align 4, !tbaa !11
  %3588 = fadd float %3587, %3586
  store float %3588, ptr %24, align 4, !tbaa !11
  br label %3589

3589:                                             ; preds = %3568
  %3590 = load i64, ptr %20, align 8, !tbaa !9
  %3591 = add nsw i64 %3590, 1
  store i64 %3591, ptr %20, align 8, !tbaa !9
  br label %3564, !llvm.loop !92

3592:                                             ; preds = %3564
  %3593 = load float, ptr %24, align 4, !tbaa !11
  %3594 = load ptr, ptr %13, align 8, !tbaa !5
  %3595 = load i64, ptr %21, align 8, !tbaa !9
  %3596 = getelementptr inbounds float, ptr %3594, i64 %3595
  %3597 = load float, ptr %3596, align 4, !tbaa !11
  %3598 = fadd float %3597, %3593
  store float %3598, ptr %3596, align 4, !tbaa !11
  %3599 = load ptr, ptr %11, align 8, !tbaa !5
  %3600 = load i64, ptr %3599, align 8, !tbaa !9
  %3601 = sub nsw i64 %3600, 1
  store i64 %3601, ptr %14, align 8, !tbaa !9
  %3602 = load i64, ptr %22, align 8, !tbaa !9
  %3603 = add nsw i64 %3602, 1
  store i64 %3603, ptr %21, align 8, !tbaa !9
  br label %3604

3604:                                             ; preds = %3737, %3592
  %3605 = load i64, ptr %21, align 8, !tbaa !9
  %3606 = load i64, ptr %14, align 8, !tbaa !9
  %3607 = icmp sle i64 %3605, %3606
  br i1 %3607, label %3608, label %3740

3608:                                             ; preds = %3604
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3609 = load i64, ptr %21, align 8, !tbaa !9
  %3610 = sub nsw i64 %3609, 2
  %3611 = load i64, ptr %22, align 8, !tbaa !9
  %3612 = sub nsw i64 %3610, %3611
  store i64 %3612, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3613

3613:                                             ; preds = %3636, %3608
  %3614 = load i64, ptr %20, align 8, !tbaa !9
  %3615 = load i64, ptr %15, align 8, !tbaa !9
  %3616 = icmp sle i64 %3614, %3615
  br i1 %3616, label %3617, label %3639

3617:                                             ; preds = %3613
  %3618 = load ptr, ptr %12, align 8, !tbaa !5
  %3619 = load i64, ptr %20, align 8, !tbaa !9
  %3620 = load i64, ptr %21, align 8, !tbaa !9
  %3621 = load i64, ptr %27, align 8, !tbaa !9
  %3622 = mul nsw i64 %3620, %3621
  %3623 = add nsw i64 %3619, %3622
  %3624 = getelementptr inbounds %struct.complex, ptr %3618, i64 %3623
  %3625 = call double @c_abs(ptr noundef %3624)
  %3626 = fptrunc double %3625 to float
  store float %3626, ptr %26, align 4, !tbaa !11
  %3627 = load float, ptr %26, align 4, !tbaa !11
  %3628 = load ptr, ptr %13, align 8, !tbaa !5
  %3629 = load i64, ptr %20, align 8, !tbaa !9
  %3630 = getelementptr inbounds float, ptr %3628, i64 %3629
  %3631 = load float, ptr %3630, align 4, !tbaa !11
  %3632 = fadd float %3631, %3627
  store float %3632, ptr %3630, align 4, !tbaa !11
  %3633 = load float, ptr %26, align 4, !tbaa !11
  %3634 = load float, ptr %24, align 4, !tbaa !11
  %3635 = fadd float %3634, %3633
  store float %3635, ptr %24, align 4, !tbaa !11
  br label %3636

3636:                                             ; preds = %3617
  %3637 = load i64, ptr %20, align 8, !tbaa !9
  %3638 = add nsw i64 %3637, 1
  store i64 %3638, ptr %20, align 8, !tbaa !9
  br label %3613, !llvm.loop !93

3639:                                             ; preds = %3613
  %3640 = load i64, ptr %20, align 8, !tbaa !9
  %3641 = load i64, ptr %21, align 8, !tbaa !9
  %3642 = load i64, ptr %27, align 8, !tbaa !9
  %3643 = mul nsw i64 %3641, %3642
  %3644 = add nsw i64 %3640, %3643
  store i64 %3644, ptr %15, align 8, !tbaa !9
  %3645 = load ptr, ptr %12, align 8, !tbaa !5
  %3646 = load i64, ptr %15, align 8, !tbaa !9
  %3647 = getelementptr inbounds %struct.complex, ptr %3645, i64 %3646
  %3648 = getelementptr inbounds %struct.complex, ptr %3647, i32 0, i32 0
  %3649 = load float, ptr %3648, align 4, !tbaa !13
  store float %3649, ptr %17, align 4, !tbaa !11
  %3650 = load float, ptr %17, align 4, !tbaa !11
  %3651 = fcmp oge float %3650, 0.000000e+00
  br i1 %3651, label %3652, label %3654

3652:                                             ; preds = %3639
  %3653 = load float, ptr %17, align 4, !tbaa !11
  br label %3657

3654:                                             ; preds = %3639
  %3655 = load float, ptr %17, align 4, !tbaa !11
  %3656 = fneg float %3655
  br label %3657

3657:                                             ; preds = %3654, %3652
  %3658 = phi float [ %3653, %3652 ], [ %3656, %3654 ]
  %3659 = fpext float %3658 to double
  %3660 = fptrunc double %3659 to float
  store float %3660, ptr %26, align 4, !tbaa !11
  %3661 = load float, ptr %26, align 4, !tbaa !11
  %3662 = load float, ptr %24, align 4, !tbaa !11
  %3663 = fadd float %3662, %3661
  store float %3663, ptr %24, align 4, !tbaa !11
  %3664 = load float, ptr %24, align 4, !tbaa !11
  %3665 = load ptr, ptr %13, align 8, !tbaa !5
  %3666 = load i64, ptr %21, align 8, !tbaa !9
  %3667 = load i64, ptr %22, align 8, !tbaa !9
  %3668 = sub nsw i64 %3666, %3667
  %3669 = sub nsw i64 %3668, 1
  %3670 = getelementptr inbounds float, ptr %3665, i64 %3669
  %3671 = load float, ptr %3670, align 4, !tbaa !11
  %3672 = fadd float %3671, %3664
  store float %3672, ptr %3670, align 4, !tbaa !11
  %3673 = load i64, ptr %20, align 8, !tbaa !9
  %3674 = add nsw i64 %3673, 1
  store i64 %3674, ptr %20, align 8, !tbaa !9
  %3675 = load i64, ptr %20, align 8, !tbaa !9
  %3676 = load i64, ptr %21, align 8, !tbaa !9
  %3677 = load i64, ptr %27, align 8, !tbaa !9
  %3678 = mul nsw i64 %3676, %3677
  %3679 = add nsw i64 %3675, %3678
  store i64 %3679, ptr %15, align 8, !tbaa !9
  %3680 = load ptr, ptr %12, align 8, !tbaa !5
  %3681 = load i64, ptr %15, align 8, !tbaa !9
  %3682 = getelementptr inbounds %struct.complex, ptr %3680, i64 %3681
  %3683 = getelementptr inbounds %struct.complex, ptr %3682, i32 0, i32 0
  %3684 = load float, ptr %3683, align 4, !tbaa !13
  store float %3684, ptr %17, align 4, !tbaa !11
  %3685 = load float, ptr %17, align 4, !tbaa !11
  %3686 = fcmp oge float %3685, 0.000000e+00
  br i1 %3686, label %3687, label %3689

3687:                                             ; preds = %3657
  %3688 = load float, ptr %17, align 4, !tbaa !11
  br label %3692

3689:                                             ; preds = %3657
  %3690 = load float, ptr %17, align 4, !tbaa !11
  %3691 = fneg float %3690
  br label %3692

3692:                                             ; preds = %3689, %3687
  %3693 = phi float [ %3688, %3687 ], [ %3691, %3689 ]
  %3694 = fpext float %3693 to double
  %3695 = fptrunc double %3694 to float
  store float %3695, ptr %26, align 4, !tbaa !11
  %3696 = load float, ptr %26, align 4, !tbaa !11
  store float %3696, ptr %24, align 4, !tbaa !11
  %3697 = load ptr, ptr %11, align 8, !tbaa !5
  %3698 = load i64, ptr %3697, align 8, !tbaa !9
  %3699 = sub nsw i64 %3698, 1
  store i64 %3699, ptr %15, align 8, !tbaa !9
  %3700 = load i64, ptr %21, align 8, !tbaa !9
  %3701 = add nsw i64 %3700, 1
  store i64 %3701, ptr %23, align 8, !tbaa !9
  br label %3702

3702:                                             ; preds = %3727, %3692
  %3703 = load i64, ptr %23, align 8, !tbaa !9
  %3704 = load i64, ptr %15, align 8, !tbaa !9
  %3705 = icmp sle i64 %3703, %3704
  br i1 %3705, label %3706, label %3730

3706:                                             ; preds = %3702
  %3707 = load i64, ptr %20, align 8, !tbaa !9
  %3708 = add nsw i64 %3707, 1
  store i64 %3708, ptr %20, align 8, !tbaa !9
  %3709 = load ptr, ptr %12, align 8, !tbaa !5
  %3710 = load i64, ptr %20, align 8, !tbaa !9
  %3711 = load i64, ptr %21, align 8, !tbaa !9
  %3712 = load i64, ptr %27, align 8, !tbaa !9
  %3713 = mul nsw i64 %3711, %3712
  %3714 = add nsw i64 %3710, %3713
  %3715 = getelementptr inbounds %struct.complex, ptr %3709, i64 %3714
  %3716 = call double @c_abs(ptr noundef %3715)
  %3717 = fptrunc double %3716 to float
  store float %3717, ptr %26, align 4, !tbaa !11
  %3718 = load float, ptr %26, align 4, !tbaa !11
  %3719 = load ptr, ptr %13, align 8, !tbaa !5
  %3720 = load i64, ptr %23, align 8, !tbaa !9
  %3721 = getelementptr inbounds float, ptr %3719, i64 %3720
  %3722 = load float, ptr %3721, align 4, !tbaa !11
  %3723 = fadd float %3722, %3718
  store float %3723, ptr %3721, align 4, !tbaa !11
  %3724 = load float, ptr %26, align 4, !tbaa !11
  %3725 = load float, ptr %24, align 4, !tbaa !11
  %3726 = fadd float %3725, %3724
  store float %3726, ptr %24, align 4, !tbaa !11
  br label %3727

3727:                                             ; preds = %3706
  %3728 = load i64, ptr %23, align 8, !tbaa !9
  %3729 = add nsw i64 %3728, 1
  store i64 %3729, ptr %23, align 8, !tbaa !9
  br label %3702, !llvm.loop !94

3730:                                             ; preds = %3702
  %3731 = load float, ptr %24, align 4, !tbaa !11
  %3732 = load ptr, ptr %13, align 8, !tbaa !5
  %3733 = load i64, ptr %21, align 8, !tbaa !9
  %3734 = getelementptr inbounds float, ptr %3732, i64 %3733
  %3735 = load float, ptr %3734, align 4, !tbaa !11
  %3736 = fadd float %3735, %3731
  store float %3736, ptr %3734, align 4, !tbaa !11
  br label %3737

3737:                                             ; preds = %3730
  %3738 = load i64, ptr %21, align 8, !tbaa !9
  %3739 = add nsw i64 %3738, 1
  store i64 %3739, ptr %21, align 8, !tbaa !9
  br label %3604, !llvm.loop !95

3740:                                             ; preds = %3604
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3741 = load i64, ptr %22, align 8, !tbaa !9
  %3742 = sub nsw i64 %3741, 2
  store i64 %3742, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3743

3743:                                             ; preds = %3766, %3740
  %3744 = load i64, ptr %20, align 8, !tbaa !9
  %3745 = load i64, ptr %14, align 8, !tbaa !9
  %3746 = icmp sle i64 %3744, %3745
  br i1 %3746, label %3747, label %3769

3747:                                             ; preds = %3743
  %3748 = load ptr, ptr %12, align 8, !tbaa !5
  %3749 = load i64, ptr %20, align 8, !tbaa !9
  %3750 = load i64, ptr %21, align 8, !tbaa !9
  %3751 = load i64, ptr %27, align 8, !tbaa !9
  %3752 = mul nsw i64 %3750, %3751
  %3753 = add nsw i64 %3749, %3752
  %3754 = getelementptr inbounds %struct.complex, ptr %3748, i64 %3753
  %3755 = call double @c_abs(ptr noundef %3754)
  %3756 = fptrunc double %3755 to float
  store float %3756, ptr %26, align 4, !tbaa !11
  %3757 = load float, ptr %26, align 4, !tbaa !11
  %3758 = load ptr, ptr %13, align 8, !tbaa !5
  %3759 = load i64, ptr %20, align 8, !tbaa !9
  %3760 = getelementptr inbounds float, ptr %3758, i64 %3759
  %3761 = load float, ptr %3760, align 4, !tbaa !11
  %3762 = fadd float %3761, %3757
  store float %3762, ptr %3760, align 4, !tbaa !11
  %3763 = load float, ptr %26, align 4, !tbaa !11
  %3764 = load float, ptr %24, align 4, !tbaa !11
  %3765 = fadd float %3764, %3763
  store float %3765, ptr %24, align 4, !tbaa !11
  br label %3766

3766:                                             ; preds = %3747
  %3767 = load i64, ptr %20, align 8, !tbaa !9
  %3768 = add nsw i64 %3767, 1
  store i64 %3768, ptr %20, align 8, !tbaa !9
  br label %3743, !llvm.loop !96

3769:                                             ; preds = %3743
  %3770 = load i64, ptr %20, align 8, !tbaa !9
  %3771 = load i64, ptr %21, align 8, !tbaa !9
  %3772 = load i64, ptr %27, align 8, !tbaa !9
  %3773 = mul nsw i64 %3771, %3772
  %3774 = add nsw i64 %3770, %3773
  store i64 %3774, ptr %14, align 8, !tbaa !9
  %3775 = load ptr, ptr %12, align 8, !tbaa !5
  %3776 = load i64, ptr %14, align 8, !tbaa !9
  %3777 = getelementptr inbounds %struct.complex, ptr %3775, i64 %3776
  %3778 = getelementptr inbounds %struct.complex, ptr %3777, i32 0, i32 0
  %3779 = load float, ptr %3778, align 4, !tbaa !13
  store float %3779, ptr %17, align 4, !tbaa !11
  %3780 = load float, ptr %17, align 4, !tbaa !11
  %3781 = fcmp oge float %3780, 0.000000e+00
  br i1 %3781, label %3782, label %3784

3782:                                             ; preds = %3769
  %3783 = load float, ptr %17, align 4, !tbaa !11
  br label %3787

3784:                                             ; preds = %3769
  %3785 = load float, ptr %17, align 4, !tbaa !11
  %3786 = fneg float %3785
  br label %3787

3787:                                             ; preds = %3784, %3782
  %3788 = phi float [ %3783, %3782 ], [ %3786, %3784 ]
  %3789 = fpext float %3788 to double
  %3790 = fptrunc double %3789 to float
  store float %3790, ptr %26, align 4, !tbaa !11
  %3791 = load float, ptr %26, align 4, !tbaa !11
  %3792 = load float, ptr %24, align 4, !tbaa !11
  %3793 = fadd float %3792, %3791
  store float %3793, ptr %24, align 4, !tbaa !11
  %3794 = load float, ptr %24, align 4, !tbaa !11
  %3795 = load ptr, ptr %13, align 8, !tbaa !5
  %3796 = load i64, ptr %20, align 8, !tbaa !9
  %3797 = getelementptr inbounds float, ptr %3795, i64 %3796
  %3798 = load float, ptr %3797, align 4, !tbaa !11
  %3799 = fadd float %3798, %3794
  store float %3799, ptr %3797, align 4, !tbaa !11
  %3800 = load ptr, ptr %11, align 8, !tbaa !5
  %3801 = load ptr, ptr %13, align 8, !tbaa !5
  %3802 = call i64 @f2c_isamax(ptr noundef %3800, ptr noundef %3801, ptr noundef @c__1)
  store i64 %3802, ptr %20, align 8, !tbaa !9
  %3803 = load ptr, ptr %13, align 8, !tbaa !5
  %3804 = load i64, ptr %20, align 8, !tbaa !9
  %3805 = sub nsw i64 %3804, 1
  %3806 = getelementptr inbounds float, ptr %3803, i64 %3805
  %3807 = load float, ptr %3806, align 4, !tbaa !11
  store float %3807, ptr %32, align 4, !tbaa !11
  br label %4124

3808:                                             ; preds = %3476
  %3809 = load ptr, ptr %11, align 8, !tbaa !5
  %3810 = load i64, ptr %3809, align 8, !tbaa !9
  %3811 = sub nsw i64 %3810, 1
  store i64 %3811, ptr %14, align 8, !tbaa !9
  %3812 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %3812, ptr %20, align 8, !tbaa !9
  br label %3813

3813:                                             ; preds = %3821, %3808
  %3814 = load i64, ptr %20, align 8, !tbaa !9
  %3815 = load i64, ptr %14, align 8, !tbaa !9
  %3816 = icmp sle i64 %3814, %3815
  br i1 %3816, label %3817, label %3824

3817:                                             ; preds = %3813
  %3818 = load ptr, ptr %13, align 8, !tbaa !5
  %3819 = load i64, ptr %20, align 8, !tbaa !9
  %3820 = getelementptr inbounds float, ptr %3818, i64 %3819
  store float 0.000000e+00, ptr %3820, align 4, !tbaa !11
  br label %3821

3821:                                             ; preds = %3817
  %3822 = load i64, ptr %20, align 8, !tbaa !9
  %3823 = add nsw i64 %3822, 1
  store i64 %3823, ptr %20, align 8, !tbaa !9
  br label %3813, !llvm.loop !97

3824:                                             ; preds = %3813
  %3825 = load ptr, ptr %12, align 8, !tbaa !5
  %3826 = getelementptr inbounds %struct.complex, ptr %3825, i64 0
  %3827 = getelementptr inbounds %struct.complex, ptr %3826, i32 0, i32 0
  %3828 = load float, ptr %3827, align 4, !tbaa !13
  store float %3828, ptr %17, align 4, !tbaa !11
  %3829 = load float, ptr %17, align 4, !tbaa !11
  %3830 = fcmp oge float %3829, 0.000000e+00
  br i1 %3830, label %3831, label %3833

3831:                                             ; preds = %3824
  %3832 = load float, ptr %17, align 4, !tbaa !11
  br label %3836

3833:                                             ; preds = %3824
  %3834 = load float, ptr %17, align 4, !tbaa !11
  %3835 = fneg float %3834
  br label %3836

3836:                                             ; preds = %3833, %3831
  %3837 = phi float [ %3832, %3831 ], [ %3835, %3833 ]
  %3838 = fpext float %3837 to double
  %3839 = fptrunc double %3838 to float
  store float %3839, ptr %24, align 4, !tbaa !11
  %3840 = load i64, ptr %22, align 8, !tbaa !9
  %3841 = sub nsw i64 %3840, 1
  store i64 %3841, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %3842

3842:                                             ; preds = %3863, %3836
  %3843 = load i64, ptr %20, align 8, !tbaa !9
  %3844 = load i64, ptr %14, align 8, !tbaa !9
  %3845 = icmp sle i64 %3843, %3844
  br i1 %3845, label %3846, label %3866

3846:                                             ; preds = %3842
  %3847 = load ptr, ptr %12, align 8, !tbaa !5
  %3848 = load i64, ptr %20, align 8, !tbaa !9
  %3849 = getelementptr inbounds %struct.complex, ptr %3847, i64 %3848
  %3850 = call double @c_abs(ptr noundef %3849)
  %3851 = fptrunc double %3850 to float
  store float %3851, ptr %26, align 4, !tbaa !11
  %3852 = load float, ptr %26, align 4, !tbaa !11
  %3853 = load ptr, ptr %13, align 8, !tbaa !5
  %3854 = load i64, ptr %20, align 8, !tbaa !9
  %3855 = load i64, ptr %22, align 8, !tbaa !9
  %3856 = add nsw i64 %3854, %3855
  %3857 = getelementptr inbounds float, ptr %3853, i64 %3856
  %3858 = load float, ptr %3857, align 4, !tbaa !11
  %3859 = fadd float %3858, %3852
  store float %3859, ptr %3857, align 4, !tbaa !11
  %3860 = load float, ptr %26, align 4, !tbaa !11
  %3861 = load float, ptr %24, align 4, !tbaa !11
  %3862 = fadd float %3861, %3860
  store float %3862, ptr %24, align 4, !tbaa !11
  br label %3863

3863:                                             ; preds = %3846
  %3864 = load i64, ptr %20, align 8, !tbaa !9
  %3865 = add nsw i64 %3864, 1
  store i64 %3865, ptr %20, align 8, !tbaa !9
  br label %3842, !llvm.loop !98

3866:                                             ; preds = %3842
  %3867 = load float, ptr %24, align 4, !tbaa !11
  %3868 = load ptr, ptr %13, align 8, !tbaa !5
  %3869 = load i64, ptr %22, align 8, !tbaa !9
  %3870 = getelementptr inbounds float, ptr %3868, i64 %3869
  %3871 = load float, ptr %3870, align 4, !tbaa !11
  %3872 = fadd float %3871, %3867
  store float %3872, ptr %3870, align 4, !tbaa !11
  %3873 = load i64, ptr %22, align 8, !tbaa !9
  %3874 = sub nsw i64 %3873, 1
  store i64 %3874, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %3875

3875:                                             ; preds = %4006, %3866
  %3876 = load i64, ptr %21, align 8, !tbaa !9
  %3877 = load i64, ptr %14, align 8, !tbaa !9
  %3878 = icmp sle i64 %3876, %3877
  br i1 %3878, label %3879, label %4009

3879:                                             ; preds = %3875
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %3880 = load i64, ptr %21, align 8, !tbaa !9
  %3881 = sub nsw i64 %3880, 2
  store i64 %3881, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %3882

3882:                                             ; preds = %3905, %3879
  %3883 = load i64, ptr %20, align 8, !tbaa !9
  %3884 = load i64, ptr %15, align 8, !tbaa !9
  %3885 = icmp sle i64 %3883, %3884
  br i1 %3885, label %3886, label %3908

3886:                                             ; preds = %3882
  %3887 = load ptr, ptr %12, align 8, !tbaa !5
  %3888 = load i64, ptr %20, align 8, !tbaa !9
  %3889 = load i64, ptr %21, align 8, !tbaa !9
  %3890 = load i64, ptr %27, align 8, !tbaa !9
  %3891 = mul nsw i64 %3889, %3890
  %3892 = add nsw i64 %3888, %3891
  %3893 = getelementptr inbounds %struct.complex, ptr %3887, i64 %3892
  %3894 = call double @c_abs(ptr noundef %3893)
  %3895 = fptrunc double %3894 to float
  store float %3895, ptr %26, align 4, !tbaa !11
  %3896 = load float, ptr %26, align 4, !tbaa !11
  %3897 = load ptr, ptr %13, align 8, !tbaa !5
  %3898 = load i64, ptr %20, align 8, !tbaa !9
  %3899 = getelementptr inbounds float, ptr %3897, i64 %3898
  %3900 = load float, ptr %3899, align 4, !tbaa !11
  %3901 = fadd float %3900, %3896
  store float %3901, ptr %3899, align 4, !tbaa !11
  %3902 = load float, ptr %26, align 4, !tbaa !11
  %3903 = load float, ptr %24, align 4, !tbaa !11
  %3904 = fadd float %3903, %3902
  store float %3904, ptr %24, align 4, !tbaa !11
  br label %3905

3905:                                             ; preds = %3886
  %3906 = load i64, ptr %20, align 8, !tbaa !9
  %3907 = add nsw i64 %3906, 1
  store i64 %3907, ptr %20, align 8, !tbaa !9
  br label %3882, !llvm.loop !99

3908:                                             ; preds = %3882
  %3909 = load i64, ptr %20, align 8, !tbaa !9
  %3910 = load i64, ptr %21, align 8, !tbaa !9
  %3911 = load i64, ptr %27, align 8, !tbaa !9
  %3912 = mul nsw i64 %3910, %3911
  %3913 = add nsw i64 %3909, %3912
  store i64 %3913, ptr %15, align 8, !tbaa !9
  %3914 = load ptr, ptr %12, align 8, !tbaa !5
  %3915 = load i64, ptr %15, align 8, !tbaa !9
  %3916 = getelementptr inbounds %struct.complex, ptr %3914, i64 %3915
  %3917 = getelementptr inbounds %struct.complex, ptr %3916, i32 0, i32 0
  %3918 = load float, ptr %3917, align 4, !tbaa !13
  store float %3918, ptr %17, align 4, !tbaa !11
  %3919 = load float, ptr %17, align 4, !tbaa !11
  %3920 = fcmp oge float %3919, 0.000000e+00
  br i1 %3920, label %3921, label %3923

3921:                                             ; preds = %3908
  %3922 = load float, ptr %17, align 4, !tbaa !11
  br label %3926

3923:                                             ; preds = %3908
  %3924 = load float, ptr %17, align 4, !tbaa !11
  %3925 = fneg float %3924
  br label %3926

3926:                                             ; preds = %3923, %3921
  %3927 = phi float [ %3922, %3921 ], [ %3925, %3923 ]
  %3928 = fpext float %3927 to double
  %3929 = fptrunc double %3928 to float
  store float %3929, ptr %26, align 4, !tbaa !11
  %3930 = load float, ptr %26, align 4, !tbaa !11
  %3931 = load float, ptr %24, align 4, !tbaa !11
  %3932 = fadd float %3931, %3930
  store float %3932, ptr %24, align 4, !tbaa !11
  %3933 = load float, ptr %24, align 4, !tbaa !11
  %3934 = load ptr, ptr %13, align 8, !tbaa !5
  %3935 = load i64, ptr %21, align 8, !tbaa !9
  %3936 = sub nsw i64 %3935, 1
  %3937 = getelementptr inbounds float, ptr %3934, i64 %3936
  store float %3933, ptr %3937, align 4, !tbaa !11
  %3938 = load i64, ptr %20, align 8, !tbaa !9
  %3939 = add nsw i64 %3938, 1
  store i64 %3939, ptr %20, align 8, !tbaa !9
  %3940 = load i64, ptr %20, align 8, !tbaa !9
  %3941 = load i64, ptr %21, align 8, !tbaa !9
  %3942 = load i64, ptr %27, align 8, !tbaa !9
  %3943 = mul nsw i64 %3941, %3942
  %3944 = add nsw i64 %3940, %3943
  store i64 %3944, ptr %15, align 8, !tbaa !9
  %3945 = load ptr, ptr %12, align 8, !tbaa !5
  %3946 = load i64, ptr %15, align 8, !tbaa !9
  %3947 = getelementptr inbounds %struct.complex, ptr %3945, i64 %3946
  %3948 = getelementptr inbounds %struct.complex, ptr %3947, i32 0, i32 0
  %3949 = load float, ptr %3948, align 4, !tbaa !13
  store float %3949, ptr %17, align 4, !tbaa !11
  %3950 = load float, ptr %17, align 4, !tbaa !11
  %3951 = fcmp oge float %3950, 0.000000e+00
  br i1 %3951, label %3952, label %3954

3952:                                             ; preds = %3926
  %3953 = load float, ptr %17, align 4, !tbaa !11
  br label %3957

3954:                                             ; preds = %3926
  %3955 = load float, ptr %17, align 4, !tbaa !11
  %3956 = fneg float %3955
  br label %3957

3957:                                             ; preds = %3954, %3952
  %3958 = phi float [ %3953, %3952 ], [ %3956, %3954 ]
  %3959 = fpext float %3958 to double
  %3960 = fptrunc double %3959 to float
  store float %3960, ptr %26, align 4, !tbaa !11
  %3961 = load float, ptr %26, align 4, !tbaa !11
  store float %3961, ptr %24, align 4, !tbaa !11
  %3962 = load ptr, ptr %11, align 8, !tbaa !5
  %3963 = load i64, ptr %3962, align 8, !tbaa !9
  %3964 = sub nsw i64 %3963, 1
  store i64 %3964, ptr %15, align 8, !tbaa !9
  %3965 = load i64, ptr %22, align 8, !tbaa !9
  %3966 = load i64, ptr %21, align 8, !tbaa !9
  %3967 = add nsw i64 %3965, %3966
  %3968 = add nsw i64 %3967, 1
  store i64 %3968, ptr %23, align 8, !tbaa !9
  br label %3969

3969:                                             ; preds = %3994, %3957
  %3970 = load i64, ptr %23, align 8, !tbaa !9
  %3971 = load i64, ptr %15, align 8, !tbaa !9
  %3972 = icmp sle i64 %3970, %3971
  br i1 %3972, label %3973, label %3997

3973:                                             ; preds = %3969
  %3974 = load i64, ptr %20, align 8, !tbaa !9
  %3975 = add nsw i64 %3974, 1
  store i64 %3975, ptr %20, align 8, !tbaa !9
  %3976 = load ptr, ptr %12, align 8, !tbaa !5
  %3977 = load i64, ptr %20, align 8, !tbaa !9
  %3978 = load i64, ptr %21, align 8, !tbaa !9
  %3979 = load i64, ptr %27, align 8, !tbaa !9
  %3980 = mul nsw i64 %3978, %3979
  %3981 = add nsw i64 %3977, %3980
  %3982 = getelementptr inbounds %struct.complex, ptr %3976, i64 %3981
  %3983 = call double @c_abs(ptr noundef %3982)
  %3984 = fptrunc double %3983 to float
  store float %3984, ptr %26, align 4, !tbaa !11
  %3985 = load float, ptr %26, align 4, !tbaa !11
  %3986 = load float, ptr %24, align 4, !tbaa !11
  %3987 = fadd float %3986, %3985
  store float %3987, ptr %24, align 4, !tbaa !11
  %3988 = load float, ptr %26, align 4, !tbaa !11
  %3989 = load ptr, ptr %13, align 8, !tbaa !5
  %3990 = load i64, ptr %23, align 8, !tbaa !9
  %3991 = getelementptr inbounds float, ptr %3989, i64 %3990
  %3992 = load float, ptr %3991, align 4, !tbaa !11
  %3993 = fadd float %3992, %3988
  store float %3993, ptr %3991, align 4, !tbaa !11
  br label %3994

3994:                                             ; preds = %3973
  %3995 = load i64, ptr %23, align 8, !tbaa !9
  %3996 = add nsw i64 %3995, 1
  store i64 %3996, ptr %23, align 8, !tbaa !9
  br label %3969, !llvm.loop !100

3997:                                             ; preds = %3969
  %3998 = load float, ptr %24, align 4, !tbaa !11
  %3999 = load ptr, ptr %13, align 8, !tbaa !5
  %4000 = load i64, ptr %22, align 8, !tbaa !9
  %4001 = load i64, ptr %21, align 8, !tbaa !9
  %4002 = add nsw i64 %4000, %4001
  %4003 = getelementptr inbounds float, ptr %3999, i64 %4002
  %4004 = load float, ptr %4003, align 4, !tbaa !11
  %4005 = fadd float %4004, %3998
  store float %4005, ptr %4003, align 4, !tbaa !11
  br label %4006

4006:                                             ; preds = %3997
  %4007 = load i64, ptr %21, align 8, !tbaa !9
  %4008 = add nsw i64 %4007, 1
  store i64 %4008, ptr %21, align 8, !tbaa !9
  br label %3875, !llvm.loop !101

4009:                                             ; preds = %3875
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %4010 = load i64, ptr %22, align 8, !tbaa !9
  %4011 = sub nsw i64 %4010, 2
  store i64 %4011, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %4012

4012:                                             ; preds = %4035, %4009
  %4013 = load i64, ptr %20, align 8, !tbaa !9
  %4014 = load i64, ptr %14, align 8, !tbaa !9
  %4015 = icmp sle i64 %4013, %4014
  br i1 %4015, label %4016, label %4038

4016:                                             ; preds = %4012
  %4017 = load ptr, ptr %12, align 8, !tbaa !5
  %4018 = load i64, ptr %20, align 8, !tbaa !9
  %4019 = load i64, ptr %21, align 8, !tbaa !9
  %4020 = load i64, ptr %27, align 8, !tbaa !9
  %4021 = mul nsw i64 %4019, %4020
  %4022 = add nsw i64 %4018, %4021
  %4023 = getelementptr inbounds %struct.complex, ptr %4017, i64 %4022
  %4024 = call double @c_abs(ptr noundef %4023)
  %4025 = fptrunc double %4024 to float
  store float %4025, ptr %26, align 4, !tbaa !11
  %4026 = load float, ptr %26, align 4, !tbaa !11
  %4027 = load ptr, ptr %13, align 8, !tbaa !5
  %4028 = load i64, ptr %20, align 8, !tbaa !9
  %4029 = getelementptr inbounds float, ptr %4027, i64 %4028
  %4030 = load float, ptr %4029, align 4, !tbaa !11
  %4031 = fadd float %4030, %4026
  store float %4031, ptr %4029, align 4, !tbaa !11
  %4032 = load float, ptr %26, align 4, !tbaa !11
  %4033 = load float, ptr %24, align 4, !tbaa !11
  %4034 = fadd float %4033, %4032
  store float %4034, ptr %24, align 4, !tbaa !11
  br label %4035

4035:                                             ; preds = %4016
  %4036 = load i64, ptr %20, align 8, !tbaa !9
  %4037 = add nsw i64 %4036, 1
  store i64 %4037, ptr %20, align 8, !tbaa !9
  br label %4012, !llvm.loop !102

4038:                                             ; preds = %4012
  %4039 = load i64, ptr %20, align 8, !tbaa !9
  %4040 = load i64, ptr %21, align 8, !tbaa !9
  %4041 = load i64, ptr %27, align 8, !tbaa !9
  %4042 = mul nsw i64 %4040, %4041
  %4043 = add nsw i64 %4039, %4042
  store i64 %4043, ptr %14, align 8, !tbaa !9
  %4044 = load ptr, ptr %12, align 8, !tbaa !5
  %4045 = load i64, ptr %14, align 8, !tbaa !9
  %4046 = getelementptr inbounds %struct.complex, ptr %4044, i64 %4045
  %4047 = getelementptr inbounds %struct.complex, ptr %4046, i32 0, i32 0
  %4048 = load float, ptr %4047, align 4, !tbaa !13
  store float %4048, ptr %17, align 4, !tbaa !11
  %4049 = load float, ptr %17, align 4, !tbaa !11
  %4050 = fcmp oge float %4049, 0.000000e+00
  br i1 %4050, label %4051, label %4053

4051:                                             ; preds = %4038
  %4052 = load float, ptr %17, align 4, !tbaa !11
  br label %4056

4053:                                             ; preds = %4038
  %4054 = load float, ptr %17, align 4, !tbaa !11
  %4055 = fneg float %4054
  br label %4056

4056:                                             ; preds = %4053, %4051
  %4057 = phi float [ %4052, %4051 ], [ %4055, %4053 ]
  %4058 = fpext float %4057 to double
  %4059 = fptrunc double %4058 to float
  store float %4059, ptr %26, align 4, !tbaa !11
  %4060 = load float, ptr %26, align 4, !tbaa !11
  %4061 = load float, ptr %24, align 4, !tbaa !11
  %4062 = fadd float %4061, %4060
  store float %4062, ptr %24, align 4, !tbaa !11
  %4063 = load float, ptr %24, align 4, !tbaa !11
  %4064 = load ptr, ptr %13, align 8, !tbaa !5
  %4065 = load i64, ptr %20, align 8, !tbaa !9
  %4066 = getelementptr inbounds float, ptr %4064, i64 %4065
  store float %4063, ptr %4066, align 4, !tbaa !11
  %4067 = load ptr, ptr %11, align 8, !tbaa !5
  %4068 = load i64, ptr %4067, align 8, !tbaa !9
  store i64 %4068, ptr %14, align 8, !tbaa !9
  %4069 = load i64, ptr %22, align 8, !tbaa !9
  %4070 = add nsw i64 %4069, 1
  store i64 %4070, ptr %21, align 8, !tbaa !9
  br label %4071

4071:                                             ; preds = %4112, %4056
  %4072 = load i64, ptr %21, align 8, !tbaa !9
  %4073 = load i64, ptr %14, align 8, !tbaa !9
  %4074 = icmp sle i64 %4072, %4073
  br i1 %4074, label %4075, label %4115

4075:                                             ; preds = %4071
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %4076 = load i64, ptr %22, align 8, !tbaa !9
  %4077 = sub nsw i64 %4076, 1
  store i64 %4077, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %4078

4078:                                             ; preds = %4101, %4075
  %4079 = load i64, ptr %20, align 8, !tbaa !9
  %4080 = load i64, ptr %15, align 8, !tbaa !9
  %4081 = icmp sle i64 %4079, %4080
  br i1 %4081, label %4082, label %4104

4082:                                             ; preds = %4078
  %4083 = load ptr, ptr %12, align 8, !tbaa !5
  %4084 = load i64, ptr %20, align 8, !tbaa !9
  %4085 = load i64, ptr %21, align 8, !tbaa !9
  %4086 = load i64, ptr %27, align 8, !tbaa !9
  %4087 = mul nsw i64 %4085, %4086
  %4088 = add nsw i64 %4084, %4087
  %4089 = getelementptr inbounds %struct.complex, ptr %4083, i64 %4088
  %4090 = call double @c_abs(ptr noundef %4089)
  %4091 = fptrunc double %4090 to float
  store float %4091, ptr %26, align 4, !tbaa !11
  %4092 = load float, ptr %26, align 4, !tbaa !11
  %4093 = load ptr, ptr %13, align 8, !tbaa !5
  %4094 = load i64, ptr %20, align 8, !tbaa !9
  %4095 = getelementptr inbounds float, ptr %4093, i64 %4094
  %4096 = load float, ptr %4095, align 4, !tbaa !11
  %4097 = fadd float %4096, %4092
  store float %4097, ptr %4095, align 4, !tbaa !11
  %4098 = load float, ptr %26, align 4, !tbaa !11
  %4099 = load float, ptr %24, align 4, !tbaa !11
  %4100 = fadd float %4099, %4098
  store float %4100, ptr %24, align 4, !tbaa !11
  br label %4101

4101:                                             ; preds = %4082
  %4102 = load i64, ptr %20, align 8, !tbaa !9
  %4103 = add nsw i64 %4102, 1
  store i64 %4103, ptr %20, align 8, !tbaa !9
  br label %4078, !llvm.loop !103

4104:                                             ; preds = %4078
  %4105 = load float, ptr %24, align 4, !tbaa !11
  %4106 = load ptr, ptr %13, align 8, !tbaa !5
  %4107 = load i64, ptr %21, align 8, !tbaa !9
  %4108 = sub nsw i64 %4107, 1
  %4109 = getelementptr inbounds float, ptr %4106, i64 %4108
  %4110 = load float, ptr %4109, align 4, !tbaa !11
  %4111 = fadd float %4110, %4105
  store float %4111, ptr %4109, align 4, !tbaa !11
  br label %4112

4112:                                             ; preds = %4104
  %4113 = load i64, ptr %21, align 8, !tbaa !9
  %4114 = add nsw i64 %4113, 1
  store i64 %4114, ptr %21, align 8, !tbaa !9
  br label %4071, !llvm.loop !104

4115:                                             ; preds = %4071
  %4116 = load ptr, ptr %11, align 8, !tbaa !5
  %4117 = load ptr, ptr %13, align 8, !tbaa !5
  %4118 = call i64 @f2c_isamax(ptr noundef %4116, ptr noundef %4117, ptr noundef @c__1)
  store i64 %4118, ptr %20, align 8, !tbaa !9
  %4119 = load ptr, ptr %13, align 8, !tbaa !5
  %4120 = load i64, ptr %20, align 8, !tbaa !9
  %4121 = sub nsw i64 %4120, 1
  %4122 = getelementptr inbounds float, ptr %4119, i64 %4121
  %4123 = load float, ptr %4122, align 4, !tbaa !11
  store float %4123, ptr %32, align 4, !tbaa !11
  br label %4124

4124:                                             ; preds = %4115, %3787
  br label %4125

4125:                                             ; preds = %4124, %3475
  br label %4126

4126:                                             ; preds = %4125, %2928
  br label %5550

4127:                                             ; preds = %2239
  %4128 = load ptr, ptr %8, align 8, !tbaa !5
  %4129 = call i64 @lsame_(ptr noundef %4128, ptr noundef @.str.5)
  %4130 = icmp ne i64 %4129, 0
  br i1 %4130, label %4135, label %4131

4131:                                             ; preds = %4127
  %4132 = load ptr, ptr %8, align 8, !tbaa !5
  %4133 = call i64 @lsame_(ptr noundef %4132, ptr noundef @.str.6)
  %4134 = icmp ne i64 %4133, 0
  br i1 %4134, label %4135, label %5549

4135:                                             ; preds = %4131, %4127
  %4136 = load ptr, ptr %11, align 8, !tbaa !5
  %4137 = load i64, ptr %4136, align 8, !tbaa !9
  %4138 = add nsw i64 %4137, 1
  %4139 = sdiv i64 %4138, 2
  store i64 %4139, ptr %22, align 8, !tbaa !9
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  store float 1.000000e+00, ptr %24, align 4, !tbaa !11
  %4140 = load i64, ptr %29, align 8, !tbaa !9
  %4141 = icmp eq i64 %4140, 1
  br i1 %4141, label %4142, label %4842

4142:                                             ; preds = %4135
  %4143 = load i64, ptr %28, align 8, !tbaa !9
  %4144 = icmp eq i64 %4143, 1
  br i1 %4144, label %4145, label %4472

4145:                                             ; preds = %4142
  %4146 = load i64, ptr %30, align 8, !tbaa !9
  %4147 = icmp eq i64 %4146, 0
  br i1 %4147, label %4148, label %4313

4148:                                             ; preds = %4145
  %4149 = load i64, ptr %22, align 8, !tbaa !9
  %4150 = sub nsw i64 %4149, 3
  store i64 %4150, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4151

4151:                                             ; preds = %4171, %4148
  %4152 = load i64, ptr %21, align 8, !tbaa !9
  %4153 = load i64, ptr %14, align 8, !tbaa !9
  %4154 = icmp sle i64 %4152, %4153
  br i1 %4154, label %4155, label %4174

4155:                                             ; preds = %4151
  %4156 = load i64, ptr %22, align 8, !tbaa !9
  %4157 = load i64, ptr %21, align 8, !tbaa !9
  %4158 = sub nsw i64 %4156, %4157
  %4159 = sub nsw i64 %4158, 2
  store i64 %4159, ptr %15, align 8, !tbaa !9
  %4160 = load ptr, ptr %12, align 8, !tbaa !5
  %4161 = load i64, ptr %22, align 8, !tbaa !9
  %4162 = load i64, ptr %21, align 8, !tbaa !9
  %4163 = add nsw i64 %4161, %4162
  %4164 = add nsw i64 %4163, 1
  %4165 = load i64, ptr %21, align 8, !tbaa !9
  %4166 = load i64, ptr %27, align 8, !tbaa !9
  %4167 = mul nsw i64 %4165, %4166
  %4168 = add nsw i64 %4164, %4167
  %4169 = getelementptr inbounds %struct.complex, ptr %4160, i64 %4168
  %4170 = call i32 @classq_(ptr noundef %15, ptr noundef %4169, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4171

4171:                                             ; preds = %4155
  %4172 = load i64, ptr %21, align 8, !tbaa !9
  %4173 = add nsw i64 %4172, 1
  store i64 %4173, ptr %21, align 8, !tbaa !9
  br label %4151, !llvm.loop !105

4174:                                             ; preds = %4151
  %4175 = load i64, ptr %22, align 8, !tbaa !9
  %4176 = sub nsw i64 %4175, 1
  store i64 %4176, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4177

4177:                                             ; preds = %4192, %4174
  %4178 = load i64, ptr %21, align 8, !tbaa !9
  %4179 = load i64, ptr %14, align 8, !tbaa !9
  %4180 = icmp sle i64 %4178, %4179
  br i1 %4180, label %4181, label %4195

4181:                                             ; preds = %4177
  %4182 = load i64, ptr %22, align 8, !tbaa !9
  %4183 = load i64, ptr %21, align 8, !tbaa !9
  %4184 = add nsw i64 %4182, %4183
  %4185 = sub nsw i64 %4184, 1
  store i64 %4185, ptr %15, align 8, !tbaa !9
  %4186 = load ptr, ptr %12, align 8, !tbaa !5
  %4187 = load i64, ptr %21, align 8, !tbaa !9
  %4188 = load i64, ptr %27, align 8, !tbaa !9
  %4189 = mul nsw i64 %4187, %4188
  %4190 = getelementptr inbounds %struct.complex, ptr %4186, i64 %4189
  %4191 = call i32 @classq_(ptr noundef %15, ptr noundef %4190, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4192

4192:                                             ; preds = %4181
  %4193 = load i64, ptr %21, align 8, !tbaa !9
  %4194 = add nsw i64 %4193, 1
  store i64 %4194, ptr %21, align 8, !tbaa !9
  br label %4177, !llvm.loop !106

4195:                                             ; preds = %4177
  %4196 = load float, ptr %24, align 4, !tbaa !11
  %4197 = load float, ptr %24, align 4, !tbaa !11
  %4198 = fadd float %4197, %4196
  store float %4198, ptr %24, align 4, !tbaa !11
  %4199 = load i64, ptr %22, align 8, !tbaa !9
  %4200 = sub nsw i64 %4199, 1
  store i64 %4200, ptr %23, align 8, !tbaa !9
  %4201 = load i64, ptr %22, align 8, !tbaa !9
  %4202 = sub nsw i64 %4201, 2
  store i64 %4202, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %4203

4203:                                             ; preds = %4277, %4195
  %4204 = load i64, ptr %20, align 8, !tbaa !9
  %4205 = load i64, ptr %14, align 8, !tbaa !9
  %4206 = icmp sle i64 %4204, %4205
  br i1 %4206, label %4207, label %4280

4207:                                             ; preds = %4203
  %4208 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4208, ptr %15, align 8, !tbaa !9
  %4209 = load ptr, ptr %12, align 8, !tbaa !5
  %4210 = load i64, ptr %15, align 8, !tbaa !9
  %4211 = getelementptr inbounds %struct.complex, ptr %4209, i64 %4210
  %4212 = getelementptr inbounds %struct.complex, ptr %4211, i32 0, i32 0
  %4213 = load float, ptr %4212, align 4, !tbaa !13
  store float %4213, ptr %26, align 4, !tbaa !11
  %4214 = load float, ptr %26, align 4, !tbaa !11
  %4215 = fcmp une float %4214, 0.000000e+00
  br i1 %4215, label %4216, label %4239

4216:                                             ; preds = %4207
  %4217 = load float, ptr %31, align 4, !tbaa !11
  %4218 = load float, ptr %26, align 4, !tbaa !11
  %4219 = fcmp olt float %4217, %4218
  br i1 %4219, label %4220, label %4230

4220:                                             ; preds = %4216
  %4221 = load float, ptr %31, align 4, !tbaa !11
  %4222 = load float, ptr %26, align 4, !tbaa !11
  %4223 = fdiv float %4221, %4222
  store float %4223, ptr %17, align 4, !tbaa !11
  %4224 = load float, ptr %24, align 4, !tbaa !11
  %4225 = load float, ptr %17, align 4, !tbaa !11
  %4226 = load float, ptr %17, align 4, !tbaa !11
  %4227 = fmul float %4225, %4226
  %4228 = call float @llvm.fmuladd.f32(float %4224, float %4227, float 1.000000e+00)
  store float %4228, ptr %24, align 4, !tbaa !11
  %4229 = load float, ptr %26, align 4, !tbaa !11
  store float %4229, ptr %31, align 4, !tbaa !11
  br label %4238

4230:                                             ; preds = %4216
  %4231 = load float, ptr %26, align 4, !tbaa !11
  %4232 = load float, ptr %31, align 4, !tbaa !11
  %4233 = fdiv float %4231, %4232
  store float %4233, ptr %17, align 4, !tbaa !11
  %4234 = load float, ptr %17, align 4, !tbaa !11
  %4235 = load float, ptr %17, align 4, !tbaa !11
  %4236 = load float, ptr %24, align 4, !tbaa !11
  %4237 = call float @llvm.fmuladd.f32(float %4234, float %4235, float %4236)
  store float %4237, ptr %24, align 4, !tbaa !11
  br label %4238

4238:                                             ; preds = %4230, %4220
  br label %4239

4239:                                             ; preds = %4238, %4207
  %4240 = load i64, ptr %23, align 8, !tbaa !9
  %4241 = add nsw i64 %4240, 1
  store i64 %4241, ptr %15, align 8, !tbaa !9
  %4242 = load ptr, ptr %12, align 8, !tbaa !5
  %4243 = load i64, ptr %15, align 8, !tbaa !9
  %4244 = getelementptr inbounds %struct.complex, ptr %4242, i64 %4243
  %4245 = getelementptr inbounds %struct.complex, ptr %4244, i32 0, i32 0
  %4246 = load float, ptr %4245, align 4, !tbaa !13
  store float %4246, ptr %26, align 4, !tbaa !11
  %4247 = load float, ptr %26, align 4, !tbaa !11
  %4248 = fcmp une float %4247, 0.000000e+00
  br i1 %4248, label %4249, label %4272

4249:                                             ; preds = %4239
  %4250 = load float, ptr %31, align 4, !tbaa !11
  %4251 = load float, ptr %26, align 4, !tbaa !11
  %4252 = fcmp olt float %4250, %4251
  br i1 %4252, label %4253, label %4263

4253:                                             ; preds = %4249
  %4254 = load float, ptr %31, align 4, !tbaa !11
  %4255 = load float, ptr %26, align 4, !tbaa !11
  %4256 = fdiv float %4254, %4255
  store float %4256, ptr %17, align 4, !tbaa !11
  %4257 = load float, ptr %24, align 4, !tbaa !11
  %4258 = load float, ptr %17, align 4, !tbaa !11
  %4259 = load float, ptr %17, align 4, !tbaa !11
  %4260 = fmul float %4258, %4259
  %4261 = call float @llvm.fmuladd.f32(float %4257, float %4260, float 1.000000e+00)
  store float %4261, ptr %24, align 4, !tbaa !11
  %4262 = load float, ptr %26, align 4, !tbaa !11
  store float %4262, ptr %31, align 4, !tbaa !11
  br label %4271

4263:                                             ; preds = %4249
  %4264 = load float, ptr %26, align 4, !tbaa !11
  %4265 = load float, ptr %31, align 4, !tbaa !11
  %4266 = fdiv float %4264, %4265
  store float %4266, ptr %17, align 4, !tbaa !11
  %4267 = load float, ptr %17, align 4, !tbaa !11
  %4268 = load float, ptr %17, align 4, !tbaa !11
  %4269 = load float, ptr %24, align 4, !tbaa !11
  %4270 = call float @llvm.fmuladd.f32(float %4267, float %4268, float %4269)
  store float %4270, ptr %24, align 4, !tbaa !11
  br label %4271

4271:                                             ; preds = %4263, %4253
  br label %4272

4272:                                             ; preds = %4271, %4239
  %4273 = load i64, ptr %23, align 8, !tbaa !9
  %4274 = load i64, ptr %27, align 8, !tbaa !9
  %4275 = add nsw i64 %4273, %4274
  %4276 = add nsw i64 %4275, 1
  store i64 %4276, ptr %23, align 8, !tbaa !9
  br label %4277

4277:                                             ; preds = %4272
  %4278 = load i64, ptr %20, align 8, !tbaa !9
  %4279 = add nsw i64 %4278, 1
  store i64 %4279, ptr %20, align 8, !tbaa !9
  br label %4203, !llvm.loop !107

4280:                                             ; preds = %4203
  %4281 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4281, ptr %14, align 8, !tbaa !9
  %4282 = load ptr, ptr %12, align 8, !tbaa !5
  %4283 = load i64, ptr %14, align 8, !tbaa !9
  %4284 = getelementptr inbounds %struct.complex, ptr %4282, i64 %4283
  %4285 = getelementptr inbounds %struct.complex, ptr %4284, i32 0, i32 0
  %4286 = load float, ptr %4285, align 4, !tbaa !13
  store float %4286, ptr %26, align 4, !tbaa !11
  %4287 = load float, ptr %26, align 4, !tbaa !11
  %4288 = fcmp une float %4287, 0.000000e+00
  br i1 %4288, label %4289, label %4312

4289:                                             ; preds = %4280
  %4290 = load float, ptr %31, align 4, !tbaa !11
  %4291 = load float, ptr %26, align 4, !tbaa !11
  %4292 = fcmp olt float %4290, %4291
  br i1 %4292, label %4293, label %4303

4293:                                             ; preds = %4289
  %4294 = load float, ptr %31, align 4, !tbaa !11
  %4295 = load float, ptr %26, align 4, !tbaa !11
  %4296 = fdiv float %4294, %4295
  store float %4296, ptr %17, align 4, !tbaa !11
  %4297 = load float, ptr %24, align 4, !tbaa !11
  %4298 = load float, ptr %17, align 4, !tbaa !11
  %4299 = load float, ptr %17, align 4, !tbaa !11
  %4300 = fmul float %4298, %4299
  %4301 = call float @llvm.fmuladd.f32(float %4297, float %4300, float 1.000000e+00)
  store float %4301, ptr %24, align 4, !tbaa !11
  %4302 = load float, ptr %26, align 4, !tbaa !11
  store float %4302, ptr %31, align 4, !tbaa !11
  br label %4311

4303:                                             ; preds = %4289
  %4304 = load float, ptr %26, align 4, !tbaa !11
  %4305 = load float, ptr %31, align 4, !tbaa !11
  %4306 = fdiv float %4304, %4305
  store float %4306, ptr %17, align 4, !tbaa !11
  %4307 = load float, ptr %17, align 4, !tbaa !11
  %4308 = load float, ptr %17, align 4, !tbaa !11
  %4309 = load float, ptr %24, align 4, !tbaa !11
  %4310 = call float @llvm.fmuladd.f32(float %4307, float %4308, float %4309)
  store float %4310, ptr %24, align 4, !tbaa !11
  br label %4311

4311:                                             ; preds = %4303, %4293
  br label %4312

4312:                                             ; preds = %4311, %4280
  br label %4471

4313:                                             ; preds = %4145
  %4314 = load i64, ptr %22, align 8, !tbaa !9
  %4315 = sub nsw i64 %4314, 1
  store i64 %4315, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4316

4316:                                             ; preds = %4335, %4313
  %4317 = load i64, ptr %21, align 8, !tbaa !9
  %4318 = load i64, ptr %14, align 8, !tbaa !9
  %4319 = icmp sle i64 %4317, %4318
  br i1 %4319, label %4320, label %4338

4320:                                             ; preds = %4316
  %4321 = load ptr, ptr %11, align 8, !tbaa !5
  %4322 = load i64, ptr %4321, align 8, !tbaa !9
  %4323 = load i64, ptr %21, align 8, !tbaa !9
  %4324 = sub nsw i64 %4322, %4323
  %4325 = sub nsw i64 %4324, 1
  store i64 %4325, ptr %15, align 8, !tbaa !9
  %4326 = load ptr, ptr %12, align 8, !tbaa !5
  %4327 = load i64, ptr %21, align 8, !tbaa !9
  %4328 = add nsw i64 %4327, 1
  %4329 = load i64, ptr %21, align 8, !tbaa !9
  %4330 = load i64, ptr %27, align 8, !tbaa !9
  %4331 = mul nsw i64 %4329, %4330
  %4332 = add nsw i64 %4328, %4331
  %4333 = getelementptr inbounds %struct.complex, ptr %4326, i64 %4332
  %4334 = call i32 @classq_(ptr noundef %15, ptr noundef %4333, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4335

4335:                                             ; preds = %4320
  %4336 = load i64, ptr %21, align 8, !tbaa !9
  %4337 = add nsw i64 %4336, 1
  store i64 %4337, ptr %21, align 8, !tbaa !9
  br label %4316, !llvm.loop !108

4338:                                             ; preds = %4316
  %4339 = load i64, ptr %22, align 8, !tbaa !9
  %4340 = sub nsw i64 %4339, 2
  store i64 %4340, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %4341

4341:                                             ; preds = %4353, %4338
  %4342 = load i64, ptr %21, align 8, !tbaa !9
  %4343 = load i64, ptr %14, align 8, !tbaa !9
  %4344 = icmp sle i64 %4342, %4343
  br i1 %4344, label %4345, label %4356

4345:                                             ; preds = %4341
  %4346 = load ptr, ptr %12, align 8, !tbaa !5
  %4347 = load i64, ptr %21, align 8, !tbaa !9
  %4348 = add nsw i64 %4347, 1
  %4349 = load i64, ptr %27, align 8, !tbaa !9
  %4350 = mul nsw i64 %4348, %4349
  %4351 = getelementptr inbounds %struct.complex, ptr %4346, i64 %4350
  %4352 = call i32 @classq_(ptr noundef %21, ptr noundef %4351, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4353

4353:                                             ; preds = %4345
  %4354 = load i64, ptr %21, align 8, !tbaa !9
  %4355 = add nsw i64 %4354, 1
  store i64 %4355, ptr %21, align 8, !tbaa !9
  br label %4341, !llvm.loop !109

4356:                                             ; preds = %4341
  %4357 = load float, ptr %24, align 4, !tbaa !11
  %4358 = load float, ptr %24, align 4, !tbaa !11
  %4359 = fadd float %4358, %4357
  store float %4359, ptr %24, align 4, !tbaa !11
  %4360 = load ptr, ptr %12, align 8, !tbaa !5
  %4361 = getelementptr inbounds %struct.complex, ptr %4360, i64 0
  %4362 = getelementptr inbounds %struct.complex, ptr %4361, i32 0, i32 0
  %4363 = load float, ptr %4362, align 4, !tbaa !13
  store float %4363, ptr %26, align 4, !tbaa !11
  %4364 = load float, ptr %26, align 4, !tbaa !11
  %4365 = fcmp une float %4364, 0.000000e+00
  br i1 %4365, label %4366, label %4389

4366:                                             ; preds = %4356
  %4367 = load float, ptr %31, align 4, !tbaa !11
  %4368 = load float, ptr %26, align 4, !tbaa !11
  %4369 = fcmp olt float %4367, %4368
  br i1 %4369, label %4370, label %4380

4370:                                             ; preds = %4366
  %4371 = load float, ptr %31, align 4, !tbaa !11
  %4372 = load float, ptr %26, align 4, !tbaa !11
  %4373 = fdiv float %4371, %4372
  store float %4373, ptr %17, align 4, !tbaa !11
  %4374 = load float, ptr %24, align 4, !tbaa !11
  %4375 = load float, ptr %17, align 4, !tbaa !11
  %4376 = load float, ptr %17, align 4, !tbaa !11
  %4377 = fmul float %4375, %4376
  %4378 = call float @llvm.fmuladd.f32(float %4374, float %4377, float 1.000000e+00)
  store float %4378, ptr %24, align 4, !tbaa !11
  %4379 = load float, ptr %26, align 4, !tbaa !11
  store float %4379, ptr %31, align 4, !tbaa !11
  br label %4388

4380:                                             ; preds = %4366
  %4381 = load float, ptr %26, align 4, !tbaa !11
  %4382 = load float, ptr %31, align 4, !tbaa !11
  %4383 = fdiv float %4381, %4382
  store float %4383, ptr %17, align 4, !tbaa !11
  %4384 = load float, ptr %17, align 4, !tbaa !11
  %4385 = load float, ptr %17, align 4, !tbaa !11
  %4386 = load float, ptr %24, align 4, !tbaa !11
  %4387 = call float @llvm.fmuladd.f32(float %4384, float %4385, float %4386)
  store float %4387, ptr %24, align 4, !tbaa !11
  br label %4388

4388:                                             ; preds = %4380, %4370
  br label %4389

4389:                                             ; preds = %4388, %4356
  %4390 = load i64, ptr %27, align 8, !tbaa !9
  store i64 %4390, ptr %23, align 8, !tbaa !9
  %4391 = load i64, ptr %22, align 8, !tbaa !9
  %4392 = sub nsw i64 %4391, 1
  store i64 %4392, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %4393

4393:                                             ; preds = %4467, %4389
  %4394 = load i64, ptr %20, align 8, !tbaa !9
  %4395 = load i64, ptr %14, align 8, !tbaa !9
  %4396 = icmp sle i64 %4394, %4395
  br i1 %4396, label %4397, label %4470

4397:                                             ; preds = %4393
  %4398 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4398, ptr %15, align 8, !tbaa !9
  %4399 = load ptr, ptr %12, align 8, !tbaa !5
  %4400 = load i64, ptr %15, align 8, !tbaa !9
  %4401 = getelementptr inbounds %struct.complex, ptr %4399, i64 %4400
  %4402 = getelementptr inbounds %struct.complex, ptr %4401, i32 0, i32 0
  %4403 = load float, ptr %4402, align 4, !tbaa !13
  store float %4403, ptr %26, align 4, !tbaa !11
  %4404 = load float, ptr %26, align 4, !tbaa !11
  %4405 = fcmp une float %4404, 0.000000e+00
  br i1 %4405, label %4406, label %4429

4406:                                             ; preds = %4397
  %4407 = load float, ptr %31, align 4, !tbaa !11
  %4408 = load float, ptr %26, align 4, !tbaa !11
  %4409 = fcmp olt float %4407, %4408
  br i1 %4409, label %4410, label %4420

4410:                                             ; preds = %4406
  %4411 = load float, ptr %31, align 4, !tbaa !11
  %4412 = load float, ptr %26, align 4, !tbaa !11
  %4413 = fdiv float %4411, %4412
  store float %4413, ptr %17, align 4, !tbaa !11
  %4414 = load float, ptr %24, align 4, !tbaa !11
  %4415 = load float, ptr %17, align 4, !tbaa !11
  %4416 = load float, ptr %17, align 4, !tbaa !11
  %4417 = fmul float %4415, %4416
  %4418 = call float @llvm.fmuladd.f32(float %4414, float %4417, float 1.000000e+00)
  store float %4418, ptr %24, align 4, !tbaa !11
  %4419 = load float, ptr %26, align 4, !tbaa !11
  store float %4419, ptr %31, align 4, !tbaa !11
  br label %4428

4420:                                             ; preds = %4406
  %4421 = load float, ptr %26, align 4, !tbaa !11
  %4422 = load float, ptr %31, align 4, !tbaa !11
  %4423 = fdiv float %4421, %4422
  store float %4423, ptr %17, align 4, !tbaa !11
  %4424 = load float, ptr %17, align 4, !tbaa !11
  %4425 = load float, ptr %17, align 4, !tbaa !11
  %4426 = load float, ptr %24, align 4, !tbaa !11
  %4427 = call float @llvm.fmuladd.f32(float %4424, float %4425, float %4426)
  store float %4427, ptr %24, align 4, !tbaa !11
  br label %4428

4428:                                             ; preds = %4420, %4410
  br label %4429

4429:                                             ; preds = %4428, %4397
  %4430 = load i64, ptr %23, align 8, !tbaa !9
  %4431 = add nsw i64 %4430, 1
  store i64 %4431, ptr %15, align 8, !tbaa !9
  %4432 = load ptr, ptr %12, align 8, !tbaa !5
  %4433 = load i64, ptr %15, align 8, !tbaa !9
  %4434 = getelementptr inbounds %struct.complex, ptr %4432, i64 %4433
  %4435 = getelementptr inbounds %struct.complex, ptr %4434, i32 0, i32 0
  %4436 = load float, ptr %4435, align 4, !tbaa !13
  store float %4436, ptr %26, align 4, !tbaa !11
  %4437 = load float, ptr %26, align 4, !tbaa !11
  %4438 = fcmp une float %4437, 0.000000e+00
  br i1 %4438, label %4439, label %4462

4439:                                             ; preds = %4429
  %4440 = load float, ptr %31, align 4, !tbaa !11
  %4441 = load float, ptr %26, align 4, !tbaa !11
  %4442 = fcmp olt float %4440, %4441
  br i1 %4442, label %4443, label %4453

4443:                                             ; preds = %4439
  %4444 = load float, ptr %31, align 4, !tbaa !11
  %4445 = load float, ptr %26, align 4, !tbaa !11
  %4446 = fdiv float %4444, %4445
  store float %4446, ptr %17, align 4, !tbaa !11
  %4447 = load float, ptr %24, align 4, !tbaa !11
  %4448 = load float, ptr %17, align 4, !tbaa !11
  %4449 = load float, ptr %17, align 4, !tbaa !11
  %4450 = fmul float %4448, %4449
  %4451 = call float @llvm.fmuladd.f32(float %4447, float %4450, float 1.000000e+00)
  store float %4451, ptr %24, align 4, !tbaa !11
  %4452 = load float, ptr %26, align 4, !tbaa !11
  store float %4452, ptr %31, align 4, !tbaa !11
  br label %4461

4453:                                             ; preds = %4439
  %4454 = load float, ptr %26, align 4, !tbaa !11
  %4455 = load float, ptr %31, align 4, !tbaa !11
  %4456 = fdiv float %4454, %4455
  store float %4456, ptr %17, align 4, !tbaa !11
  %4457 = load float, ptr %17, align 4, !tbaa !11
  %4458 = load float, ptr %17, align 4, !tbaa !11
  %4459 = load float, ptr %24, align 4, !tbaa !11
  %4460 = call float @llvm.fmuladd.f32(float %4457, float %4458, float %4459)
  store float %4460, ptr %24, align 4, !tbaa !11
  br label %4461

4461:                                             ; preds = %4453, %4443
  br label %4462

4462:                                             ; preds = %4461, %4429
  %4463 = load i64, ptr %23, align 8, !tbaa !9
  %4464 = load i64, ptr %27, align 8, !tbaa !9
  %4465 = add nsw i64 %4463, %4464
  %4466 = add nsw i64 %4465, 1
  store i64 %4466, ptr %23, align 8, !tbaa !9
  br label %4467

4467:                                             ; preds = %4462
  %4468 = load i64, ptr %20, align 8, !tbaa !9
  %4469 = add nsw i64 %4468, 1
  store i64 %4469, ptr %20, align 8, !tbaa !9
  br label %4393, !llvm.loop !110

4470:                                             ; preds = %4393
  br label %4471

4471:                                             ; preds = %4470, %4312
  br label %4841

4472:                                             ; preds = %4142
  %4473 = load i64, ptr %30, align 8, !tbaa !9
  %4474 = icmp eq i64 %4473, 0
  br i1 %4474, label %4475, label %4664

4475:                                             ; preds = %4472
  %4476 = load i64, ptr %22, align 8, !tbaa !9
  %4477 = sub nsw i64 %4476, 2
  store i64 %4477, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %4478

4478:                                             ; preds = %4491, %4475
  %4479 = load i64, ptr %21, align 8, !tbaa !9
  %4480 = load i64, ptr %14, align 8, !tbaa !9
  %4481 = icmp sle i64 %4479, %4480
  br i1 %4481, label %4482, label %4494

4482:                                             ; preds = %4478
  %4483 = load ptr, ptr %12, align 8, !tbaa !5
  %4484 = load i64, ptr %22, align 8, !tbaa !9
  %4485 = load i64, ptr %21, align 8, !tbaa !9
  %4486 = add nsw i64 %4484, %4485
  %4487 = load i64, ptr %27, align 8, !tbaa !9
  %4488 = mul nsw i64 %4486, %4487
  %4489 = getelementptr inbounds %struct.complex, ptr %4483, i64 %4488
  %4490 = call i32 @classq_(ptr noundef %21, ptr noundef %4489, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4491

4491:                                             ; preds = %4482
  %4492 = load i64, ptr %21, align 8, !tbaa !9
  %4493 = add nsw i64 %4492, 1
  store i64 %4493, ptr %21, align 8, !tbaa !9
  br label %4478, !llvm.loop !111

4494:                                             ; preds = %4478
  %4495 = load i64, ptr %22, align 8, !tbaa !9
  %4496 = sub nsw i64 %4495, 2
  store i64 %4496, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4497

4497:                                             ; preds = %4508, %4494
  %4498 = load i64, ptr %21, align 8, !tbaa !9
  %4499 = load i64, ptr %14, align 8, !tbaa !9
  %4500 = icmp sle i64 %4498, %4499
  br i1 %4500, label %4501, label %4511

4501:                                             ; preds = %4497
  %4502 = load ptr, ptr %12, align 8, !tbaa !5
  %4503 = load i64, ptr %21, align 8, !tbaa !9
  %4504 = load i64, ptr %27, align 8, !tbaa !9
  %4505 = mul nsw i64 %4503, %4504
  %4506 = getelementptr inbounds %struct.complex, ptr %4502, i64 %4505
  %4507 = call i32 @classq_(ptr noundef %22, ptr noundef %4506, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4508

4508:                                             ; preds = %4501
  %4509 = load i64, ptr %21, align 8, !tbaa !9
  %4510 = add nsw i64 %4509, 1
  store i64 %4510, ptr %21, align 8, !tbaa !9
  br label %4497, !llvm.loop !112

4511:                                             ; preds = %4497
  %4512 = load i64, ptr %22, align 8, !tbaa !9
  %4513 = sub nsw i64 %4512, 2
  store i64 %4513, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4514

4514:                                             ; preds = %4535, %4511
  %4515 = load i64, ptr %21, align 8, !tbaa !9
  %4516 = load i64, ptr %14, align 8, !tbaa !9
  %4517 = icmp sle i64 %4515, %4516
  br i1 %4517, label %4518, label %4538

4518:                                             ; preds = %4514
  %4519 = load i64, ptr %22, align 8, !tbaa !9
  %4520 = load i64, ptr %21, align 8, !tbaa !9
  %4521 = sub nsw i64 %4519, %4520
  %4522 = sub nsw i64 %4521, 1
  store i64 %4522, ptr %15, align 8, !tbaa !9
  %4523 = load ptr, ptr %12, align 8, !tbaa !5
  %4524 = load i64, ptr %21, align 8, !tbaa !9
  %4525 = add nsw i64 %4524, 1
  %4526 = load i64, ptr %21, align 8, !tbaa !9
  %4527 = load i64, ptr %22, align 8, !tbaa !9
  %4528 = add nsw i64 %4526, %4527
  %4529 = sub nsw i64 %4528, 1
  %4530 = load i64, ptr %27, align 8, !tbaa !9
  %4531 = mul nsw i64 %4529, %4530
  %4532 = add nsw i64 %4525, %4531
  %4533 = getelementptr inbounds %struct.complex, ptr %4523, i64 %4532
  %4534 = call i32 @classq_(ptr noundef %15, ptr noundef %4533, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4535

4535:                                             ; preds = %4518
  %4536 = load i64, ptr %21, align 8, !tbaa !9
  %4537 = add nsw i64 %4536, 1
  store i64 %4537, ptr %21, align 8, !tbaa !9
  br label %4514, !llvm.loop !113

4538:                                             ; preds = %4514
  %4539 = load float, ptr %24, align 4, !tbaa !11
  %4540 = load float, ptr %24, align 4, !tbaa !11
  %4541 = fadd float %4540, %4539
  store float %4541, ptr %24, align 4, !tbaa !11
  %4542 = load i64, ptr %22, align 8, !tbaa !9
  %4543 = load i64, ptr %27, align 8, !tbaa !9
  %4544 = mul nsw i64 %4542, %4543
  %4545 = load i64, ptr %27, align 8, !tbaa !9
  %4546 = sub nsw i64 %4544, %4545
  store i64 %4546, ptr %23, align 8, !tbaa !9
  %4547 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4547, ptr %14, align 8, !tbaa !9
  %4548 = load ptr, ptr %12, align 8, !tbaa !5
  %4549 = load i64, ptr %14, align 8, !tbaa !9
  %4550 = getelementptr inbounds %struct.complex, ptr %4548, i64 %4549
  %4551 = getelementptr inbounds %struct.complex, ptr %4550, i32 0, i32 0
  %4552 = load float, ptr %4551, align 4, !tbaa !13
  store float %4552, ptr %26, align 4, !tbaa !11
  %4553 = load float, ptr %26, align 4, !tbaa !11
  %4554 = fcmp une float %4553, 0.000000e+00
  br i1 %4554, label %4555, label %4578

4555:                                             ; preds = %4538
  %4556 = load float, ptr %31, align 4, !tbaa !11
  %4557 = load float, ptr %26, align 4, !tbaa !11
  %4558 = fcmp olt float %4556, %4557
  br i1 %4558, label %4559, label %4569

4559:                                             ; preds = %4555
  %4560 = load float, ptr %31, align 4, !tbaa !11
  %4561 = load float, ptr %26, align 4, !tbaa !11
  %4562 = fdiv float %4560, %4561
  store float %4562, ptr %17, align 4, !tbaa !11
  %4563 = load float, ptr %24, align 4, !tbaa !11
  %4564 = load float, ptr %17, align 4, !tbaa !11
  %4565 = load float, ptr %17, align 4, !tbaa !11
  %4566 = fmul float %4564, %4565
  %4567 = call float @llvm.fmuladd.f32(float %4563, float %4566, float 1.000000e+00)
  store float %4567, ptr %24, align 4, !tbaa !11
  %4568 = load float, ptr %26, align 4, !tbaa !11
  store float %4568, ptr %31, align 4, !tbaa !11
  br label %4577

4569:                                             ; preds = %4555
  %4570 = load float, ptr %26, align 4, !tbaa !11
  %4571 = load float, ptr %31, align 4, !tbaa !11
  %4572 = fdiv float %4570, %4571
  store float %4572, ptr %17, align 4, !tbaa !11
  %4573 = load float, ptr %17, align 4, !tbaa !11
  %4574 = load float, ptr %17, align 4, !tbaa !11
  %4575 = load float, ptr %24, align 4, !tbaa !11
  %4576 = call float @llvm.fmuladd.f32(float %4573, float %4574, float %4575)
  store float %4576, ptr %24, align 4, !tbaa !11
  br label %4577

4577:                                             ; preds = %4569, %4559
  br label %4578

4578:                                             ; preds = %4577, %4538
  %4579 = load i64, ptr %27, align 8, !tbaa !9
  %4580 = load i64, ptr %23, align 8, !tbaa !9
  %4581 = add nsw i64 %4580, %4579
  store i64 %4581, ptr %23, align 8, !tbaa !9
  %4582 = load ptr, ptr %11, align 8, !tbaa !5
  %4583 = load i64, ptr %4582, align 8, !tbaa !9
  %4584 = sub nsw i64 %4583, 1
  store i64 %4584, ptr %14, align 8, !tbaa !9
  %4585 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %4585, ptr %21, align 8, !tbaa !9
  br label %4586

4586:                                             ; preds = %4660, %4578
  %4587 = load i64, ptr %21, align 8, !tbaa !9
  %4588 = load i64, ptr %14, align 8, !tbaa !9
  %4589 = icmp sle i64 %4587, %4588
  br i1 %4589, label %4590, label %4663

4590:                                             ; preds = %4586
  %4591 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4591, ptr %15, align 8, !tbaa !9
  %4592 = load ptr, ptr %12, align 8, !tbaa !5
  %4593 = load i64, ptr %15, align 8, !tbaa !9
  %4594 = getelementptr inbounds %struct.complex, ptr %4592, i64 %4593
  %4595 = getelementptr inbounds %struct.complex, ptr %4594, i32 0, i32 0
  %4596 = load float, ptr %4595, align 4, !tbaa !13
  store float %4596, ptr %26, align 4, !tbaa !11
  %4597 = load float, ptr %26, align 4, !tbaa !11
  %4598 = fcmp une float %4597, 0.000000e+00
  br i1 %4598, label %4599, label %4622

4599:                                             ; preds = %4590
  %4600 = load float, ptr %31, align 4, !tbaa !11
  %4601 = load float, ptr %26, align 4, !tbaa !11
  %4602 = fcmp olt float %4600, %4601
  br i1 %4602, label %4603, label %4613

4603:                                             ; preds = %4599
  %4604 = load float, ptr %31, align 4, !tbaa !11
  %4605 = load float, ptr %26, align 4, !tbaa !11
  %4606 = fdiv float %4604, %4605
  store float %4606, ptr %17, align 4, !tbaa !11
  %4607 = load float, ptr %24, align 4, !tbaa !11
  %4608 = load float, ptr %17, align 4, !tbaa !11
  %4609 = load float, ptr %17, align 4, !tbaa !11
  %4610 = fmul float %4608, %4609
  %4611 = call float @llvm.fmuladd.f32(float %4607, float %4610, float 1.000000e+00)
  store float %4611, ptr %24, align 4, !tbaa !11
  %4612 = load float, ptr %26, align 4, !tbaa !11
  store float %4612, ptr %31, align 4, !tbaa !11
  br label %4621

4613:                                             ; preds = %4599
  %4614 = load float, ptr %26, align 4, !tbaa !11
  %4615 = load float, ptr %31, align 4, !tbaa !11
  %4616 = fdiv float %4614, %4615
  store float %4616, ptr %17, align 4, !tbaa !11
  %4617 = load float, ptr %17, align 4, !tbaa !11
  %4618 = load float, ptr %17, align 4, !tbaa !11
  %4619 = load float, ptr %24, align 4, !tbaa !11
  %4620 = call float @llvm.fmuladd.f32(float %4617, float %4618, float %4619)
  store float %4620, ptr %24, align 4, !tbaa !11
  br label %4621

4621:                                             ; preds = %4613, %4603
  br label %4622

4622:                                             ; preds = %4621, %4590
  %4623 = load i64, ptr %23, align 8, !tbaa !9
  %4624 = add nsw i64 %4623, 1
  store i64 %4624, ptr %15, align 8, !tbaa !9
  %4625 = load ptr, ptr %12, align 8, !tbaa !5
  %4626 = load i64, ptr %15, align 8, !tbaa !9
  %4627 = getelementptr inbounds %struct.complex, ptr %4625, i64 %4626
  %4628 = getelementptr inbounds %struct.complex, ptr %4627, i32 0, i32 0
  %4629 = load float, ptr %4628, align 4, !tbaa !13
  store float %4629, ptr %26, align 4, !tbaa !11
  %4630 = load float, ptr %26, align 4, !tbaa !11
  %4631 = fcmp une float %4630, 0.000000e+00
  br i1 %4631, label %4632, label %4655

4632:                                             ; preds = %4622
  %4633 = load float, ptr %31, align 4, !tbaa !11
  %4634 = load float, ptr %26, align 4, !tbaa !11
  %4635 = fcmp olt float %4633, %4634
  br i1 %4635, label %4636, label %4646

4636:                                             ; preds = %4632
  %4637 = load float, ptr %31, align 4, !tbaa !11
  %4638 = load float, ptr %26, align 4, !tbaa !11
  %4639 = fdiv float %4637, %4638
  store float %4639, ptr %17, align 4, !tbaa !11
  %4640 = load float, ptr %24, align 4, !tbaa !11
  %4641 = load float, ptr %17, align 4, !tbaa !11
  %4642 = load float, ptr %17, align 4, !tbaa !11
  %4643 = fmul float %4641, %4642
  %4644 = call float @llvm.fmuladd.f32(float %4640, float %4643, float 1.000000e+00)
  store float %4644, ptr %24, align 4, !tbaa !11
  %4645 = load float, ptr %26, align 4, !tbaa !11
  store float %4645, ptr %31, align 4, !tbaa !11
  br label %4654

4646:                                             ; preds = %4632
  %4647 = load float, ptr %26, align 4, !tbaa !11
  %4648 = load float, ptr %31, align 4, !tbaa !11
  %4649 = fdiv float %4647, %4648
  store float %4649, ptr %17, align 4, !tbaa !11
  %4650 = load float, ptr %17, align 4, !tbaa !11
  %4651 = load float, ptr %17, align 4, !tbaa !11
  %4652 = load float, ptr %24, align 4, !tbaa !11
  %4653 = call float @llvm.fmuladd.f32(float %4650, float %4651, float %4652)
  store float %4653, ptr %24, align 4, !tbaa !11
  br label %4654

4654:                                             ; preds = %4646, %4636
  br label %4655

4655:                                             ; preds = %4654, %4622
  %4656 = load i64, ptr %23, align 8, !tbaa !9
  %4657 = load i64, ptr %27, align 8, !tbaa !9
  %4658 = add nsw i64 %4656, %4657
  %4659 = add nsw i64 %4658, 1
  store i64 %4659, ptr %23, align 8, !tbaa !9
  br label %4660

4660:                                             ; preds = %4655
  %4661 = load i64, ptr %21, align 8, !tbaa !9
  %4662 = add nsw i64 %4661, 1
  store i64 %4662, ptr %21, align 8, !tbaa !9
  br label %4586, !llvm.loop !114

4663:                                             ; preds = %4586
  br label %4840

4664:                                             ; preds = %4472
  %4665 = load i64, ptr %22, align 8, !tbaa !9
  %4666 = sub nsw i64 %4665, 1
  store i64 %4666, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %4667

4667:                                             ; preds = %4678, %4664
  %4668 = load i64, ptr %21, align 8, !tbaa !9
  %4669 = load i64, ptr %14, align 8, !tbaa !9
  %4670 = icmp sle i64 %4668, %4669
  br i1 %4670, label %4671, label %4681

4671:                                             ; preds = %4667
  %4672 = load ptr, ptr %12, align 8, !tbaa !5
  %4673 = load i64, ptr %21, align 8, !tbaa !9
  %4674 = load i64, ptr %27, align 8, !tbaa !9
  %4675 = mul nsw i64 %4673, %4674
  %4676 = getelementptr inbounds %struct.complex, ptr %4672, i64 %4675
  %4677 = call i32 @classq_(ptr noundef %21, ptr noundef %4676, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4678

4678:                                             ; preds = %4671
  %4679 = load i64, ptr %21, align 8, !tbaa !9
  %4680 = add nsw i64 %4679, 1
  store i64 %4680, ptr %21, align 8, !tbaa !9
  br label %4667, !llvm.loop !115

4681:                                             ; preds = %4667
  %4682 = load ptr, ptr %11, align 8, !tbaa !5
  %4683 = load i64, ptr %4682, align 8, !tbaa !9
  %4684 = sub nsw i64 %4683, 1
  store i64 %4684, ptr %14, align 8, !tbaa !9
  %4685 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %4685, ptr %21, align 8, !tbaa !9
  br label %4686

4686:                                             ; preds = %4697, %4681
  %4687 = load i64, ptr %21, align 8, !tbaa !9
  %4688 = load i64, ptr %14, align 8, !tbaa !9
  %4689 = icmp sle i64 %4687, %4688
  br i1 %4689, label %4690, label %4700

4690:                                             ; preds = %4686
  %4691 = load ptr, ptr %12, align 8, !tbaa !5
  %4692 = load i64, ptr %21, align 8, !tbaa !9
  %4693 = load i64, ptr %27, align 8, !tbaa !9
  %4694 = mul nsw i64 %4692, %4693
  %4695 = getelementptr inbounds %struct.complex, ptr %4691, i64 %4694
  %4696 = call i32 @classq_(ptr noundef %22, ptr noundef %4695, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4697

4697:                                             ; preds = %4690
  %4698 = load i64, ptr %21, align 8, !tbaa !9
  %4699 = add nsw i64 %4698, 1
  store i64 %4699, ptr %21, align 8, !tbaa !9
  br label %4686, !llvm.loop !116

4700:                                             ; preds = %4686
  %4701 = load i64, ptr %22, align 8, !tbaa !9
  %4702 = sub nsw i64 %4701, 3
  store i64 %4702, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4703

4703:                                             ; preds = %4721, %4700
  %4704 = load i64, ptr %21, align 8, !tbaa !9
  %4705 = load i64, ptr %14, align 8, !tbaa !9
  %4706 = icmp sle i64 %4704, %4705
  br i1 %4706, label %4707, label %4724

4707:                                             ; preds = %4703
  %4708 = load i64, ptr %22, align 8, !tbaa !9
  %4709 = load i64, ptr %21, align 8, !tbaa !9
  %4710 = sub nsw i64 %4708, %4709
  %4711 = sub nsw i64 %4710, 2
  store i64 %4711, ptr %15, align 8, !tbaa !9
  %4712 = load ptr, ptr %12, align 8, !tbaa !5
  %4713 = load i64, ptr %21, align 8, !tbaa !9
  %4714 = add nsw i64 %4713, 2
  %4715 = load i64, ptr %21, align 8, !tbaa !9
  %4716 = load i64, ptr %27, align 8, !tbaa !9
  %4717 = mul nsw i64 %4715, %4716
  %4718 = add nsw i64 %4714, %4717
  %4719 = getelementptr inbounds %struct.complex, ptr %4712, i64 %4718
  %4720 = call i32 @classq_(ptr noundef %15, ptr noundef %4719, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4721

4721:                                             ; preds = %4707
  %4722 = load i64, ptr %21, align 8, !tbaa !9
  %4723 = add nsw i64 %4722, 1
  store i64 %4723, ptr %21, align 8, !tbaa !9
  br label %4703, !llvm.loop !117

4724:                                             ; preds = %4703
  %4725 = load float, ptr %24, align 4, !tbaa !11
  %4726 = load float, ptr %24, align 4, !tbaa !11
  %4727 = fadd float %4726, %4725
  store float %4727, ptr %24, align 4, !tbaa !11
  store i64 0, ptr %23, align 8, !tbaa !9
  %4728 = load i64, ptr %22, align 8, !tbaa !9
  %4729 = sub nsw i64 %4728, 2
  store i64 %4729, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %4730

4730:                                             ; preds = %4804, %4724
  %4731 = load i64, ptr %20, align 8, !tbaa !9
  %4732 = load i64, ptr %14, align 8, !tbaa !9
  %4733 = icmp sle i64 %4731, %4732
  br i1 %4733, label %4734, label %4807

4734:                                             ; preds = %4730
  %4735 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4735, ptr %15, align 8, !tbaa !9
  %4736 = load ptr, ptr %12, align 8, !tbaa !5
  %4737 = load i64, ptr %15, align 8, !tbaa !9
  %4738 = getelementptr inbounds %struct.complex, ptr %4736, i64 %4737
  %4739 = getelementptr inbounds %struct.complex, ptr %4738, i32 0, i32 0
  %4740 = load float, ptr %4739, align 4, !tbaa !13
  store float %4740, ptr %26, align 4, !tbaa !11
  %4741 = load float, ptr %26, align 4, !tbaa !11
  %4742 = fcmp une float %4741, 0.000000e+00
  br i1 %4742, label %4743, label %4766

4743:                                             ; preds = %4734
  %4744 = load float, ptr %31, align 4, !tbaa !11
  %4745 = load float, ptr %26, align 4, !tbaa !11
  %4746 = fcmp olt float %4744, %4745
  br i1 %4746, label %4747, label %4757

4747:                                             ; preds = %4743
  %4748 = load float, ptr %31, align 4, !tbaa !11
  %4749 = load float, ptr %26, align 4, !tbaa !11
  %4750 = fdiv float %4748, %4749
  store float %4750, ptr %17, align 4, !tbaa !11
  %4751 = load float, ptr %24, align 4, !tbaa !11
  %4752 = load float, ptr %17, align 4, !tbaa !11
  %4753 = load float, ptr %17, align 4, !tbaa !11
  %4754 = fmul float %4752, %4753
  %4755 = call float @llvm.fmuladd.f32(float %4751, float %4754, float 1.000000e+00)
  store float %4755, ptr %24, align 4, !tbaa !11
  %4756 = load float, ptr %26, align 4, !tbaa !11
  store float %4756, ptr %31, align 4, !tbaa !11
  br label %4765

4757:                                             ; preds = %4743
  %4758 = load float, ptr %26, align 4, !tbaa !11
  %4759 = load float, ptr %31, align 4, !tbaa !11
  %4760 = fdiv float %4758, %4759
  store float %4760, ptr %17, align 4, !tbaa !11
  %4761 = load float, ptr %17, align 4, !tbaa !11
  %4762 = load float, ptr %17, align 4, !tbaa !11
  %4763 = load float, ptr %24, align 4, !tbaa !11
  %4764 = call float @llvm.fmuladd.f32(float %4761, float %4762, float %4763)
  store float %4764, ptr %24, align 4, !tbaa !11
  br label %4765

4765:                                             ; preds = %4757, %4747
  br label %4766

4766:                                             ; preds = %4765, %4734
  %4767 = load i64, ptr %23, align 8, !tbaa !9
  %4768 = add nsw i64 %4767, 1
  store i64 %4768, ptr %15, align 8, !tbaa !9
  %4769 = load ptr, ptr %12, align 8, !tbaa !5
  %4770 = load i64, ptr %15, align 8, !tbaa !9
  %4771 = getelementptr inbounds %struct.complex, ptr %4769, i64 %4770
  %4772 = getelementptr inbounds %struct.complex, ptr %4771, i32 0, i32 0
  %4773 = load float, ptr %4772, align 4, !tbaa !13
  store float %4773, ptr %26, align 4, !tbaa !11
  %4774 = load float, ptr %26, align 4, !tbaa !11
  %4775 = fcmp une float %4774, 0.000000e+00
  br i1 %4775, label %4776, label %4799

4776:                                             ; preds = %4766
  %4777 = load float, ptr %31, align 4, !tbaa !11
  %4778 = load float, ptr %26, align 4, !tbaa !11
  %4779 = fcmp olt float %4777, %4778
  br i1 %4779, label %4780, label %4790

4780:                                             ; preds = %4776
  %4781 = load float, ptr %31, align 4, !tbaa !11
  %4782 = load float, ptr %26, align 4, !tbaa !11
  %4783 = fdiv float %4781, %4782
  store float %4783, ptr %17, align 4, !tbaa !11
  %4784 = load float, ptr %24, align 4, !tbaa !11
  %4785 = load float, ptr %17, align 4, !tbaa !11
  %4786 = load float, ptr %17, align 4, !tbaa !11
  %4787 = fmul float %4785, %4786
  %4788 = call float @llvm.fmuladd.f32(float %4784, float %4787, float 1.000000e+00)
  store float %4788, ptr %24, align 4, !tbaa !11
  %4789 = load float, ptr %26, align 4, !tbaa !11
  store float %4789, ptr %31, align 4, !tbaa !11
  br label %4798

4790:                                             ; preds = %4776
  %4791 = load float, ptr %26, align 4, !tbaa !11
  %4792 = load float, ptr %31, align 4, !tbaa !11
  %4793 = fdiv float %4791, %4792
  store float %4793, ptr %17, align 4, !tbaa !11
  %4794 = load float, ptr %17, align 4, !tbaa !11
  %4795 = load float, ptr %17, align 4, !tbaa !11
  %4796 = load float, ptr %24, align 4, !tbaa !11
  %4797 = call float @llvm.fmuladd.f32(float %4794, float %4795, float %4796)
  store float %4797, ptr %24, align 4, !tbaa !11
  br label %4798

4798:                                             ; preds = %4790, %4780
  br label %4799

4799:                                             ; preds = %4798, %4766
  %4800 = load i64, ptr %23, align 8, !tbaa !9
  %4801 = load i64, ptr %27, align 8, !tbaa !9
  %4802 = add nsw i64 %4800, %4801
  %4803 = add nsw i64 %4802, 1
  store i64 %4803, ptr %23, align 8, !tbaa !9
  br label %4804

4804:                                             ; preds = %4799
  %4805 = load i64, ptr %20, align 8, !tbaa !9
  %4806 = add nsw i64 %4805, 1
  store i64 %4806, ptr %20, align 8, !tbaa !9
  br label %4730, !llvm.loop !118

4807:                                             ; preds = %4730
  %4808 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4808, ptr %14, align 8, !tbaa !9
  %4809 = load ptr, ptr %12, align 8, !tbaa !5
  %4810 = load i64, ptr %14, align 8, !tbaa !9
  %4811 = getelementptr inbounds %struct.complex, ptr %4809, i64 %4810
  %4812 = getelementptr inbounds %struct.complex, ptr %4811, i32 0, i32 0
  %4813 = load float, ptr %4812, align 4, !tbaa !13
  store float %4813, ptr %26, align 4, !tbaa !11
  %4814 = load float, ptr %26, align 4, !tbaa !11
  %4815 = fcmp une float %4814, 0.000000e+00
  br i1 %4815, label %4816, label %4839

4816:                                             ; preds = %4807
  %4817 = load float, ptr %31, align 4, !tbaa !11
  %4818 = load float, ptr %26, align 4, !tbaa !11
  %4819 = fcmp olt float %4817, %4818
  br i1 %4819, label %4820, label %4830

4820:                                             ; preds = %4816
  %4821 = load float, ptr %31, align 4, !tbaa !11
  %4822 = load float, ptr %26, align 4, !tbaa !11
  %4823 = fdiv float %4821, %4822
  store float %4823, ptr %17, align 4, !tbaa !11
  %4824 = load float, ptr %24, align 4, !tbaa !11
  %4825 = load float, ptr %17, align 4, !tbaa !11
  %4826 = load float, ptr %17, align 4, !tbaa !11
  %4827 = fmul float %4825, %4826
  %4828 = call float @llvm.fmuladd.f32(float %4824, float %4827, float 1.000000e+00)
  store float %4828, ptr %24, align 4, !tbaa !11
  %4829 = load float, ptr %26, align 4, !tbaa !11
  store float %4829, ptr %31, align 4, !tbaa !11
  br label %4838

4830:                                             ; preds = %4816
  %4831 = load float, ptr %26, align 4, !tbaa !11
  %4832 = load float, ptr %31, align 4, !tbaa !11
  %4833 = fdiv float %4831, %4832
  store float %4833, ptr %17, align 4, !tbaa !11
  %4834 = load float, ptr %17, align 4, !tbaa !11
  %4835 = load float, ptr %17, align 4, !tbaa !11
  %4836 = load float, ptr %24, align 4, !tbaa !11
  %4837 = call float @llvm.fmuladd.f32(float %4834, float %4835, float %4836)
  store float %4837, ptr %24, align 4, !tbaa !11
  br label %4838

4838:                                             ; preds = %4830, %4820
  br label %4839

4839:                                             ; preds = %4838, %4807
  br label %4840

4840:                                             ; preds = %4839, %4663
  br label %4841

4841:                                             ; preds = %4840, %4471
  br label %5541

4842:                                             ; preds = %4135
  %4843 = load i64, ptr %28, align 8, !tbaa !9
  %4844 = icmp eq i64 %4843, 1
  br i1 %4844, label %4845, label %5106

4845:                                             ; preds = %4842
  %4846 = load i64, ptr %30, align 8, !tbaa !9
  %4847 = icmp eq i64 %4846, 0
  br i1 %4847, label %4848, label %4979

4848:                                             ; preds = %4845
  %4849 = load i64, ptr %22, align 8, !tbaa !9
  %4850 = sub nsw i64 %4849, 2
  store i64 %4850, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4851

4851:                                             ; preds = %4871, %4848
  %4852 = load i64, ptr %21, align 8, !tbaa !9
  %4853 = load i64, ptr %14, align 8, !tbaa !9
  %4854 = icmp sle i64 %4852, %4853
  br i1 %4854, label %4855, label %4874

4855:                                             ; preds = %4851
  %4856 = load i64, ptr %22, align 8, !tbaa !9
  %4857 = load i64, ptr %21, align 8, !tbaa !9
  %4858 = sub nsw i64 %4856, %4857
  %4859 = sub nsw i64 %4858, 1
  store i64 %4859, ptr %15, align 8, !tbaa !9
  %4860 = load ptr, ptr %12, align 8, !tbaa !5
  %4861 = load i64, ptr %22, align 8, !tbaa !9
  %4862 = load i64, ptr %21, align 8, !tbaa !9
  %4863 = add nsw i64 %4861, %4862
  %4864 = add nsw i64 %4863, 2
  %4865 = load i64, ptr %21, align 8, !tbaa !9
  %4866 = load i64, ptr %27, align 8, !tbaa !9
  %4867 = mul nsw i64 %4865, %4866
  %4868 = add nsw i64 %4864, %4867
  %4869 = getelementptr inbounds %struct.complex, ptr %4860, i64 %4868
  %4870 = call i32 @classq_(ptr noundef %15, ptr noundef %4869, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4871

4871:                                             ; preds = %4855
  %4872 = load i64, ptr %21, align 8, !tbaa !9
  %4873 = add nsw i64 %4872, 1
  store i64 %4873, ptr %21, align 8, !tbaa !9
  br label %4851, !llvm.loop !119

4874:                                             ; preds = %4851
  %4875 = load i64, ptr %22, align 8, !tbaa !9
  %4876 = sub nsw i64 %4875, 1
  store i64 %4876, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4877

4877:                                             ; preds = %4891, %4874
  %4878 = load i64, ptr %21, align 8, !tbaa !9
  %4879 = load i64, ptr %14, align 8, !tbaa !9
  %4880 = icmp sle i64 %4878, %4879
  br i1 %4880, label %4881, label %4894

4881:                                             ; preds = %4877
  %4882 = load i64, ptr %22, align 8, !tbaa !9
  %4883 = load i64, ptr %21, align 8, !tbaa !9
  %4884 = add nsw i64 %4882, %4883
  store i64 %4884, ptr %15, align 8, !tbaa !9
  %4885 = load ptr, ptr %12, align 8, !tbaa !5
  %4886 = load i64, ptr %21, align 8, !tbaa !9
  %4887 = load i64, ptr %27, align 8, !tbaa !9
  %4888 = mul nsw i64 %4886, %4887
  %4889 = getelementptr inbounds %struct.complex, ptr %4885, i64 %4888
  %4890 = call i32 @classq_(ptr noundef %15, ptr noundef %4889, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %4891

4891:                                             ; preds = %4881
  %4892 = load i64, ptr %21, align 8, !tbaa !9
  %4893 = add nsw i64 %4892, 1
  store i64 %4893, ptr %21, align 8, !tbaa !9
  br label %4877, !llvm.loop !120

4894:                                             ; preds = %4877
  %4895 = load float, ptr %24, align 4, !tbaa !11
  %4896 = load float, ptr %24, align 4, !tbaa !11
  %4897 = fadd float %4896, %4895
  store float %4897, ptr %24, align 4, !tbaa !11
  %4898 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %4898, ptr %23, align 8, !tbaa !9
  %4899 = load i64, ptr %22, align 8, !tbaa !9
  %4900 = sub nsw i64 %4899, 1
  store i64 %4900, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %4901

4901:                                             ; preds = %4975, %4894
  %4902 = load i64, ptr %20, align 8, !tbaa !9
  %4903 = load i64, ptr %14, align 8, !tbaa !9
  %4904 = icmp sle i64 %4902, %4903
  br i1 %4904, label %4905, label %4978

4905:                                             ; preds = %4901
  %4906 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %4906, ptr %15, align 8, !tbaa !9
  %4907 = load ptr, ptr %12, align 8, !tbaa !5
  %4908 = load i64, ptr %15, align 8, !tbaa !9
  %4909 = getelementptr inbounds %struct.complex, ptr %4907, i64 %4908
  %4910 = getelementptr inbounds %struct.complex, ptr %4909, i32 0, i32 0
  %4911 = load float, ptr %4910, align 4, !tbaa !13
  store float %4911, ptr %26, align 4, !tbaa !11
  %4912 = load float, ptr %26, align 4, !tbaa !11
  %4913 = fcmp une float %4912, 0.000000e+00
  br i1 %4913, label %4914, label %4937

4914:                                             ; preds = %4905
  %4915 = load float, ptr %31, align 4, !tbaa !11
  %4916 = load float, ptr %26, align 4, !tbaa !11
  %4917 = fcmp olt float %4915, %4916
  br i1 %4917, label %4918, label %4928

4918:                                             ; preds = %4914
  %4919 = load float, ptr %31, align 4, !tbaa !11
  %4920 = load float, ptr %26, align 4, !tbaa !11
  %4921 = fdiv float %4919, %4920
  store float %4921, ptr %17, align 4, !tbaa !11
  %4922 = load float, ptr %24, align 4, !tbaa !11
  %4923 = load float, ptr %17, align 4, !tbaa !11
  %4924 = load float, ptr %17, align 4, !tbaa !11
  %4925 = fmul float %4923, %4924
  %4926 = call float @llvm.fmuladd.f32(float %4922, float %4925, float 1.000000e+00)
  store float %4926, ptr %24, align 4, !tbaa !11
  %4927 = load float, ptr %26, align 4, !tbaa !11
  store float %4927, ptr %31, align 4, !tbaa !11
  br label %4936

4928:                                             ; preds = %4914
  %4929 = load float, ptr %26, align 4, !tbaa !11
  %4930 = load float, ptr %31, align 4, !tbaa !11
  %4931 = fdiv float %4929, %4930
  store float %4931, ptr %17, align 4, !tbaa !11
  %4932 = load float, ptr %17, align 4, !tbaa !11
  %4933 = load float, ptr %17, align 4, !tbaa !11
  %4934 = load float, ptr %24, align 4, !tbaa !11
  %4935 = call float @llvm.fmuladd.f32(float %4932, float %4933, float %4934)
  store float %4935, ptr %24, align 4, !tbaa !11
  br label %4936

4936:                                             ; preds = %4928, %4918
  br label %4937

4937:                                             ; preds = %4936, %4905
  %4938 = load i64, ptr %23, align 8, !tbaa !9
  %4939 = add nsw i64 %4938, 1
  store i64 %4939, ptr %15, align 8, !tbaa !9
  %4940 = load ptr, ptr %12, align 8, !tbaa !5
  %4941 = load i64, ptr %15, align 8, !tbaa !9
  %4942 = getelementptr inbounds %struct.complex, ptr %4940, i64 %4941
  %4943 = getelementptr inbounds %struct.complex, ptr %4942, i32 0, i32 0
  %4944 = load float, ptr %4943, align 4, !tbaa !13
  store float %4944, ptr %26, align 4, !tbaa !11
  %4945 = load float, ptr %26, align 4, !tbaa !11
  %4946 = fcmp une float %4945, 0.000000e+00
  br i1 %4946, label %4947, label %4970

4947:                                             ; preds = %4937
  %4948 = load float, ptr %31, align 4, !tbaa !11
  %4949 = load float, ptr %26, align 4, !tbaa !11
  %4950 = fcmp olt float %4948, %4949
  br i1 %4950, label %4951, label %4961

4951:                                             ; preds = %4947
  %4952 = load float, ptr %31, align 4, !tbaa !11
  %4953 = load float, ptr %26, align 4, !tbaa !11
  %4954 = fdiv float %4952, %4953
  store float %4954, ptr %17, align 4, !tbaa !11
  %4955 = load float, ptr %24, align 4, !tbaa !11
  %4956 = load float, ptr %17, align 4, !tbaa !11
  %4957 = load float, ptr %17, align 4, !tbaa !11
  %4958 = fmul float %4956, %4957
  %4959 = call float @llvm.fmuladd.f32(float %4955, float %4958, float 1.000000e+00)
  store float %4959, ptr %24, align 4, !tbaa !11
  %4960 = load float, ptr %26, align 4, !tbaa !11
  store float %4960, ptr %31, align 4, !tbaa !11
  br label %4969

4961:                                             ; preds = %4947
  %4962 = load float, ptr %26, align 4, !tbaa !11
  %4963 = load float, ptr %31, align 4, !tbaa !11
  %4964 = fdiv float %4962, %4963
  store float %4964, ptr %17, align 4, !tbaa !11
  %4965 = load float, ptr %17, align 4, !tbaa !11
  %4966 = load float, ptr %17, align 4, !tbaa !11
  %4967 = load float, ptr %24, align 4, !tbaa !11
  %4968 = call float @llvm.fmuladd.f32(float %4965, float %4966, float %4967)
  store float %4968, ptr %24, align 4, !tbaa !11
  br label %4969

4969:                                             ; preds = %4961, %4951
  br label %4970

4970:                                             ; preds = %4969, %4937
  %4971 = load i64, ptr %23, align 8, !tbaa !9
  %4972 = load i64, ptr %27, align 8, !tbaa !9
  %4973 = add nsw i64 %4971, %4972
  %4974 = add nsw i64 %4973, 1
  store i64 %4974, ptr %23, align 8, !tbaa !9
  br label %4975

4975:                                             ; preds = %4970
  %4976 = load i64, ptr %20, align 8, !tbaa !9
  %4977 = add nsw i64 %4976, 1
  store i64 %4977, ptr %20, align 8, !tbaa !9
  br label %4901, !llvm.loop !121

4978:                                             ; preds = %4901
  br label %5105

4979:                                             ; preds = %4845
  %4980 = load i64, ptr %22, align 8, !tbaa !9
  %4981 = sub nsw i64 %4980, 1
  store i64 %4981, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %4982

4982:                                             ; preds = %5001, %4979
  %4983 = load i64, ptr %21, align 8, !tbaa !9
  %4984 = load i64, ptr %14, align 8, !tbaa !9
  %4985 = icmp sle i64 %4983, %4984
  br i1 %4985, label %4986, label %5004

4986:                                             ; preds = %4982
  %4987 = load ptr, ptr %11, align 8, !tbaa !5
  %4988 = load i64, ptr %4987, align 8, !tbaa !9
  %4989 = load i64, ptr %21, align 8, !tbaa !9
  %4990 = sub nsw i64 %4988, %4989
  %4991 = sub nsw i64 %4990, 1
  store i64 %4991, ptr %15, align 8, !tbaa !9
  %4992 = load ptr, ptr %12, align 8, !tbaa !5
  %4993 = load i64, ptr %21, align 8, !tbaa !9
  %4994 = add nsw i64 %4993, 2
  %4995 = load i64, ptr %21, align 8, !tbaa !9
  %4996 = load i64, ptr %27, align 8, !tbaa !9
  %4997 = mul nsw i64 %4995, %4996
  %4998 = add nsw i64 %4994, %4997
  %4999 = getelementptr inbounds %struct.complex, ptr %4992, i64 %4998
  %5000 = call i32 @classq_(ptr noundef %15, ptr noundef %4999, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5001

5001:                                             ; preds = %4986
  %5002 = load i64, ptr %21, align 8, !tbaa !9
  %5003 = add nsw i64 %5002, 1
  store i64 %5003, ptr %21, align 8, !tbaa !9
  br label %4982, !llvm.loop !122

5004:                                             ; preds = %4982
  %5005 = load i64, ptr %22, align 8, !tbaa !9
  %5006 = sub nsw i64 %5005, 1
  store i64 %5006, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %5007

5007:                                             ; preds = %5018, %5004
  %5008 = load i64, ptr %21, align 8, !tbaa !9
  %5009 = load i64, ptr %14, align 8, !tbaa !9
  %5010 = icmp sle i64 %5008, %5009
  br i1 %5010, label %5011, label %5021

5011:                                             ; preds = %5007
  %5012 = load ptr, ptr %12, align 8, !tbaa !5
  %5013 = load i64, ptr %21, align 8, !tbaa !9
  %5014 = load i64, ptr %27, align 8, !tbaa !9
  %5015 = mul nsw i64 %5013, %5014
  %5016 = getelementptr inbounds %struct.complex, ptr %5012, i64 %5015
  %5017 = call i32 @classq_(ptr noundef %21, ptr noundef %5016, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5018

5018:                                             ; preds = %5011
  %5019 = load i64, ptr %21, align 8, !tbaa !9
  %5020 = add nsw i64 %5019, 1
  store i64 %5020, ptr %21, align 8, !tbaa !9
  br label %5007, !llvm.loop !123

5021:                                             ; preds = %5007
  %5022 = load float, ptr %24, align 4, !tbaa !11
  %5023 = load float, ptr %24, align 4, !tbaa !11
  %5024 = fadd float %5023, %5022
  store float %5024, ptr %24, align 4, !tbaa !11
  store i64 0, ptr %23, align 8, !tbaa !9
  %5025 = load i64, ptr %22, align 8, !tbaa !9
  %5026 = sub nsw i64 %5025, 1
  store i64 %5026, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %5027

5027:                                             ; preds = %5101, %5021
  %5028 = load i64, ptr %20, align 8, !tbaa !9
  %5029 = load i64, ptr %14, align 8, !tbaa !9
  %5030 = icmp sle i64 %5028, %5029
  br i1 %5030, label %5031, label %5104

5031:                                             ; preds = %5027
  %5032 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %5032, ptr %15, align 8, !tbaa !9
  %5033 = load ptr, ptr %12, align 8, !tbaa !5
  %5034 = load i64, ptr %15, align 8, !tbaa !9
  %5035 = getelementptr inbounds %struct.complex, ptr %5033, i64 %5034
  %5036 = getelementptr inbounds %struct.complex, ptr %5035, i32 0, i32 0
  %5037 = load float, ptr %5036, align 4, !tbaa !13
  store float %5037, ptr %26, align 4, !tbaa !11
  %5038 = load float, ptr %26, align 4, !tbaa !11
  %5039 = fcmp une float %5038, 0.000000e+00
  br i1 %5039, label %5040, label %5063

5040:                                             ; preds = %5031
  %5041 = load float, ptr %31, align 4, !tbaa !11
  %5042 = load float, ptr %26, align 4, !tbaa !11
  %5043 = fcmp olt float %5041, %5042
  br i1 %5043, label %5044, label %5054

5044:                                             ; preds = %5040
  %5045 = load float, ptr %31, align 4, !tbaa !11
  %5046 = load float, ptr %26, align 4, !tbaa !11
  %5047 = fdiv float %5045, %5046
  store float %5047, ptr %17, align 4, !tbaa !11
  %5048 = load float, ptr %24, align 4, !tbaa !11
  %5049 = load float, ptr %17, align 4, !tbaa !11
  %5050 = load float, ptr %17, align 4, !tbaa !11
  %5051 = fmul float %5049, %5050
  %5052 = call float @llvm.fmuladd.f32(float %5048, float %5051, float 1.000000e+00)
  store float %5052, ptr %24, align 4, !tbaa !11
  %5053 = load float, ptr %26, align 4, !tbaa !11
  store float %5053, ptr %31, align 4, !tbaa !11
  br label %5062

5054:                                             ; preds = %5040
  %5055 = load float, ptr %26, align 4, !tbaa !11
  %5056 = load float, ptr %31, align 4, !tbaa !11
  %5057 = fdiv float %5055, %5056
  store float %5057, ptr %17, align 4, !tbaa !11
  %5058 = load float, ptr %17, align 4, !tbaa !11
  %5059 = load float, ptr %17, align 4, !tbaa !11
  %5060 = load float, ptr %24, align 4, !tbaa !11
  %5061 = call float @llvm.fmuladd.f32(float %5058, float %5059, float %5060)
  store float %5061, ptr %24, align 4, !tbaa !11
  br label %5062

5062:                                             ; preds = %5054, %5044
  br label %5063

5063:                                             ; preds = %5062, %5031
  %5064 = load i64, ptr %23, align 8, !tbaa !9
  %5065 = add nsw i64 %5064, 1
  store i64 %5065, ptr %15, align 8, !tbaa !9
  %5066 = load ptr, ptr %12, align 8, !tbaa !5
  %5067 = load i64, ptr %15, align 8, !tbaa !9
  %5068 = getelementptr inbounds %struct.complex, ptr %5066, i64 %5067
  %5069 = getelementptr inbounds %struct.complex, ptr %5068, i32 0, i32 0
  %5070 = load float, ptr %5069, align 4, !tbaa !13
  store float %5070, ptr %26, align 4, !tbaa !11
  %5071 = load float, ptr %26, align 4, !tbaa !11
  %5072 = fcmp une float %5071, 0.000000e+00
  br i1 %5072, label %5073, label %5096

5073:                                             ; preds = %5063
  %5074 = load float, ptr %31, align 4, !tbaa !11
  %5075 = load float, ptr %26, align 4, !tbaa !11
  %5076 = fcmp olt float %5074, %5075
  br i1 %5076, label %5077, label %5087

5077:                                             ; preds = %5073
  %5078 = load float, ptr %31, align 4, !tbaa !11
  %5079 = load float, ptr %26, align 4, !tbaa !11
  %5080 = fdiv float %5078, %5079
  store float %5080, ptr %17, align 4, !tbaa !11
  %5081 = load float, ptr %24, align 4, !tbaa !11
  %5082 = load float, ptr %17, align 4, !tbaa !11
  %5083 = load float, ptr %17, align 4, !tbaa !11
  %5084 = fmul float %5082, %5083
  %5085 = call float @llvm.fmuladd.f32(float %5081, float %5084, float 1.000000e+00)
  store float %5085, ptr %24, align 4, !tbaa !11
  %5086 = load float, ptr %26, align 4, !tbaa !11
  store float %5086, ptr %31, align 4, !tbaa !11
  br label %5095

5087:                                             ; preds = %5073
  %5088 = load float, ptr %26, align 4, !tbaa !11
  %5089 = load float, ptr %31, align 4, !tbaa !11
  %5090 = fdiv float %5088, %5089
  store float %5090, ptr %17, align 4, !tbaa !11
  %5091 = load float, ptr %17, align 4, !tbaa !11
  %5092 = load float, ptr %17, align 4, !tbaa !11
  %5093 = load float, ptr %24, align 4, !tbaa !11
  %5094 = call float @llvm.fmuladd.f32(float %5091, float %5092, float %5093)
  store float %5094, ptr %24, align 4, !tbaa !11
  br label %5095

5095:                                             ; preds = %5087, %5077
  br label %5096

5096:                                             ; preds = %5095, %5063
  %5097 = load i64, ptr %23, align 8, !tbaa !9
  %5098 = load i64, ptr %27, align 8, !tbaa !9
  %5099 = add nsw i64 %5097, %5098
  %5100 = add nsw i64 %5099, 1
  store i64 %5100, ptr %23, align 8, !tbaa !9
  br label %5101

5101:                                             ; preds = %5096
  %5102 = load i64, ptr %20, align 8, !tbaa !9
  %5103 = add nsw i64 %5102, 1
  store i64 %5103, ptr %20, align 8, !tbaa !9
  br label %5027, !llvm.loop !124

5104:                                             ; preds = %5027
  br label %5105

5105:                                             ; preds = %5104, %4978
  br label %5540

5106:                                             ; preds = %4842
  %5107 = load i64, ptr %30, align 8, !tbaa !9
  %5108 = icmp eq i64 %5107, 0
  br i1 %5108, label %5109, label %5329

5109:                                             ; preds = %5106
  %5110 = load i64, ptr %22, align 8, !tbaa !9
  %5111 = sub nsw i64 %5110, 1
  store i64 %5111, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %5112

5112:                                             ; preds = %5126, %5109
  %5113 = load i64, ptr %21, align 8, !tbaa !9
  %5114 = load i64, ptr %14, align 8, !tbaa !9
  %5115 = icmp sle i64 %5113, %5114
  br i1 %5115, label %5116, label %5129

5116:                                             ; preds = %5112
  %5117 = load ptr, ptr %12, align 8, !tbaa !5
  %5118 = load i64, ptr %22, align 8, !tbaa !9
  %5119 = add nsw i64 %5118, 1
  %5120 = load i64, ptr %21, align 8, !tbaa !9
  %5121 = add nsw i64 %5119, %5120
  %5122 = load i64, ptr %27, align 8, !tbaa !9
  %5123 = mul nsw i64 %5121, %5122
  %5124 = getelementptr inbounds %struct.complex, ptr %5117, i64 %5123
  %5125 = call i32 @classq_(ptr noundef %21, ptr noundef %5124, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5126

5126:                                             ; preds = %5116
  %5127 = load i64, ptr %21, align 8, !tbaa !9
  %5128 = add nsw i64 %5127, 1
  store i64 %5128, ptr %21, align 8, !tbaa !9
  br label %5112, !llvm.loop !125

5129:                                             ; preds = %5112
  %5130 = load i64, ptr %22, align 8, !tbaa !9
  %5131 = sub nsw i64 %5130, 1
  store i64 %5131, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %5132

5132:                                             ; preds = %5143, %5129
  %5133 = load i64, ptr %21, align 8, !tbaa !9
  %5134 = load i64, ptr %14, align 8, !tbaa !9
  %5135 = icmp sle i64 %5133, %5134
  br i1 %5135, label %5136, label %5146

5136:                                             ; preds = %5132
  %5137 = load ptr, ptr %12, align 8, !tbaa !5
  %5138 = load i64, ptr %21, align 8, !tbaa !9
  %5139 = load i64, ptr %27, align 8, !tbaa !9
  %5140 = mul nsw i64 %5138, %5139
  %5141 = getelementptr inbounds %struct.complex, ptr %5137, i64 %5140
  %5142 = call i32 @classq_(ptr noundef %22, ptr noundef %5141, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5143

5143:                                             ; preds = %5136
  %5144 = load i64, ptr %21, align 8, !tbaa !9
  %5145 = add nsw i64 %5144, 1
  store i64 %5145, ptr %21, align 8, !tbaa !9
  br label %5132, !llvm.loop !126

5146:                                             ; preds = %5132
  %5147 = load i64, ptr %22, align 8, !tbaa !9
  %5148 = sub nsw i64 %5147, 2
  store i64 %5148, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %5149

5149:                                             ; preds = %5169, %5146
  %5150 = load i64, ptr %21, align 8, !tbaa !9
  %5151 = load i64, ptr %14, align 8, !tbaa !9
  %5152 = icmp sle i64 %5150, %5151
  br i1 %5152, label %5153, label %5172

5153:                                             ; preds = %5149
  %5154 = load i64, ptr %22, align 8, !tbaa !9
  %5155 = load i64, ptr %21, align 8, !tbaa !9
  %5156 = sub nsw i64 %5154, %5155
  %5157 = sub nsw i64 %5156, 1
  store i64 %5157, ptr %15, align 8, !tbaa !9
  %5158 = load ptr, ptr %12, align 8, !tbaa !5
  %5159 = load i64, ptr %21, align 8, !tbaa !9
  %5160 = add nsw i64 %5159, 1
  %5161 = load i64, ptr %21, align 8, !tbaa !9
  %5162 = load i64, ptr %22, align 8, !tbaa !9
  %5163 = add nsw i64 %5161, %5162
  %5164 = load i64, ptr %27, align 8, !tbaa !9
  %5165 = mul nsw i64 %5163, %5164
  %5166 = add nsw i64 %5160, %5165
  %5167 = getelementptr inbounds %struct.complex, ptr %5158, i64 %5166
  %5168 = call i32 @classq_(ptr noundef %15, ptr noundef %5167, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5169

5169:                                             ; preds = %5153
  %5170 = load i64, ptr %21, align 8, !tbaa !9
  %5171 = add nsw i64 %5170, 1
  store i64 %5171, ptr %21, align 8, !tbaa !9
  br label %5149, !llvm.loop !127

5172:                                             ; preds = %5149
  %5173 = load float, ptr %24, align 4, !tbaa !11
  %5174 = load float, ptr %24, align 4, !tbaa !11
  %5175 = fadd float %5174, %5173
  store float %5175, ptr %24, align 4, !tbaa !11
  %5176 = load i64, ptr %22, align 8, !tbaa !9
  %5177 = load i64, ptr %27, align 8, !tbaa !9
  %5178 = mul nsw i64 %5176, %5177
  store i64 %5178, ptr %23, align 8, !tbaa !9
  %5179 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %5179, ptr %14, align 8, !tbaa !9
  %5180 = load ptr, ptr %12, align 8, !tbaa !5
  %5181 = load i64, ptr %14, align 8, !tbaa !9
  %5182 = getelementptr inbounds %struct.complex, ptr %5180, i64 %5181
  %5183 = getelementptr inbounds %struct.complex, ptr %5182, i32 0, i32 0
  %5184 = load float, ptr %5183, align 4, !tbaa !13
  store float %5184, ptr %26, align 4, !tbaa !11
  %5185 = load float, ptr %26, align 4, !tbaa !11
  %5186 = fcmp une float %5185, 0.000000e+00
  br i1 %5186, label %5187, label %5210

5187:                                             ; preds = %5172
  %5188 = load float, ptr %31, align 4, !tbaa !11
  %5189 = load float, ptr %26, align 4, !tbaa !11
  %5190 = fcmp olt float %5188, %5189
  br i1 %5190, label %5191, label %5201

5191:                                             ; preds = %5187
  %5192 = load float, ptr %31, align 4, !tbaa !11
  %5193 = load float, ptr %26, align 4, !tbaa !11
  %5194 = fdiv float %5192, %5193
  store float %5194, ptr %17, align 4, !tbaa !11
  %5195 = load float, ptr %24, align 4, !tbaa !11
  %5196 = load float, ptr %17, align 4, !tbaa !11
  %5197 = load float, ptr %17, align 4, !tbaa !11
  %5198 = fmul float %5196, %5197
  %5199 = call float @llvm.fmuladd.f32(float %5195, float %5198, float 1.000000e+00)
  store float %5199, ptr %24, align 4, !tbaa !11
  %5200 = load float, ptr %26, align 4, !tbaa !11
  store float %5200, ptr %31, align 4, !tbaa !11
  br label %5209

5201:                                             ; preds = %5187
  %5202 = load float, ptr %26, align 4, !tbaa !11
  %5203 = load float, ptr %31, align 4, !tbaa !11
  %5204 = fdiv float %5202, %5203
  store float %5204, ptr %17, align 4, !tbaa !11
  %5205 = load float, ptr %17, align 4, !tbaa !11
  %5206 = load float, ptr %17, align 4, !tbaa !11
  %5207 = load float, ptr %24, align 4, !tbaa !11
  %5208 = call float @llvm.fmuladd.f32(float %5205, float %5206, float %5207)
  store float %5208, ptr %24, align 4, !tbaa !11
  br label %5209

5209:                                             ; preds = %5201, %5191
  br label %5210

5210:                                             ; preds = %5209, %5172
  %5211 = load i64, ptr %27, align 8, !tbaa !9
  %5212 = load i64, ptr %23, align 8, !tbaa !9
  %5213 = add nsw i64 %5212, %5211
  store i64 %5213, ptr %23, align 8, !tbaa !9
  %5214 = load ptr, ptr %11, align 8, !tbaa !5
  %5215 = load i64, ptr %5214, align 8, !tbaa !9
  %5216 = sub nsw i64 %5215, 1
  store i64 %5216, ptr %14, align 8, !tbaa !9
  %5217 = load i64, ptr %22, align 8, !tbaa !9
  %5218 = add nsw i64 %5217, 1
  store i64 %5218, ptr %21, align 8, !tbaa !9
  br label %5219

5219:                                             ; preds = %5293, %5210
  %5220 = load i64, ptr %21, align 8, !tbaa !9
  %5221 = load i64, ptr %14, align 8, !tbaa !9
  %5222 = icmp sle i64 %5220, %5221
  br i1 %5222, label %5223, label %5296

5223:                                             ; preds = %5219
  %5224 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %5224, ptr %15, align 8, !tbaa !9
  %5225 = load ptr, ptr %12, align 8, !tbaa !5
  %5226 = load i64, ptr %15, align 8, !tbaa !9
  %5227 = getelementptr inbounds %struct.complex, ptr %5225, i64 %5226
  %5228 = getelementptr inbounds %struct.complex, ptr %5227, i32 0, i32 0
  %5229 = load float, ptr %5228, align 4, !tbaa !13
  store float %5229, ptr %26, align 4, !tbaa !11
  %5230 = load float, ptr %26, align 4, !tbaa !11
  %5231 = fcmp une float %5230, 0.000000e+00
  br i1 %5231, label %5232, label %5255

5232:                                             ; preds = %5223
  %5233 = load float, ptr %31, align 4, !tbaa !11
  %5234 = load float, ptr %26, align 4, !tbaa !11
  %5235 = fcmp olt float %5233, %5234
  br i1 %5235, label %5236, label %5246

5236:                                             ; preds = %5232
  %5237 = load float, ptr %31, align 4, !tbaa !11
  %5238 = load float, ptr %26, align 4, !tbaa !11
  %5239 = fdiv float %5237, %5238
  store float %5239, ptr %17, align 4, !tbaa !11
  %5240 = load float, ptr %24, align 4, !tbaa !11
  %5241 = load float, ptr %17, align 4, !tbaa !11
  %5242 = load float, ptr %17, align 4, !tbaa !11
  %5243 = fmul float %5241, %5242
  %5244 = call float @llvm.fmuladd.f32(float %5240, float %5243, float 1.000000e+00)
  store float %5244, ptr %24, align 4, !tbaa !11
  %5245 = load float, ptr %26, align 4, !tbaa !11
  store float %5245, ptr %31, align 4, !tbaa !11
  br label %5254

5246:                                             ; preds = %5232
  %5247 = load float, ptr %26, align 4, !tbaa !11
  %5248 = load float, ptr %31, align 4, !tbaa !11
  %5249 = fdiv float %5247, %5248
  store float %5249, ptr %17, align 4, !tbaa !11
  %5250 = load float, ptr %17, align 4, !tbaa !11
  %5251 = load float, ptr %17, align 4, !tbaa !11
  %5252 = load float, ptr %24, align 4, !tbaa !11
  %5253 = call float @llvm.fmuladd.f32(float %5250, float %5251, float %5252)
  store float %5253, ptr %24, align 4, !tbaa !11
  br label %5254

5254:                                             ; preds = %5246, %5236
  br label %5255

5255:                                             ; preds = %5254, %5223
  %5256 = load i64, ptr %23, align 8, !tbaa !9
  %5257 = add nsw i64 %5256, 1
  store i64 %5257, ptr %15, align 8, !tbaa !9
  %5258 = load ptr, ptr %12, align 8, !tbaa !5
  %5259 = load i64, ptr %15, align 8, !tbaa !9
  %5260 = getelementptr inbounds %struct.complex, ptr %5258, i64 %5259
  %5261 = getelementptr inbounds %struct.complex, ptr %5260, i32 0, i32 0
  %5262 = load float, ptr %5261, align 4, !tbaa !13
  store float %5262, ptr %26, align 4, !tbaa !11
  %5263 = load float, ptr %26, align 4, !tbaa !11
  %5264 = fcmp une float %5263, 0.000000e+00
  br i1 %5264, label %5265, label %5288

5265:                                             ; preds = %5255
  %5266 = load float, ptr %31, align 4, !tbaa !11
  %5267 = load float, ptr %26, align 4, !tbaa !11
  %5268 = fcmp olt float %5266, %5267
  br i1 %5268, label %5269, label %5279

5269:                                             ; preds = %5265
  %5270 = load float, ptr %31, align 4, !tbaa !11
  %5271 = load float, ptr %26, align 4, !tbaa !11
  %5272 = fdiv float %5270, %5271
  store float %5272, ptr %17, align 4, !tbaa !11
  %5273 = load float, ptr %24, align 4, !tbaa !11
  %5274 = load float, ptr %17, align 4, !tbaa !11
  %5275 = load float, ptr %17, align 4, !tbaa !11
  %5276 = fmul float %5274, %5275
  %5277 = call float @llvm.fmuladd.f32(float %5273, float %5276, float 1.000000e+00)
  store float %5277, ptr %24, align 4, !tbaa !11
  %5278 = load float, ptr %26, align 4, !tbaa !11
  store float %5278, ptr %31, align 4, !tbaa !11
  br label %5287

5279:                                             ; preds = %5265
  %5280 = load float, ptr %26, align 4, !tbaa !11
  %5281 = load float, ptr %31, align 4, !tbaa !11
  %5282 = fdiv float %5280, %5281
  store float %5282, ptr %17, align 4, !tbaa !11
  %5283 = load float, ptr %17, align 4, !tbaa !11
  %5284 = load float, ptr %17, align 4, !tbaa !11
  %5285 = load float, ptr %24, align 4, !tbaa !11
  %5286 = call float @llvm.fmuladd.f32(float %5283, float %5284, float %5285)
  store float %5286, ptr %24, align 4, !tbaa !11
  br label %5287

5287:                                             ; preds = %5279, %5269
  br label %5288

5288:                                             ; preds = %5287, %5255
  %5289 = load i64, ptr %23, align 8, !tbaa !9
  %5290 = load i64, ptr %27, align 8, !tbaa !9
  %5291 = add nsw i64 %5289, %5290
  %5292 = add nsw i64 %5291, 1
  store i64 %5292, ptr %23, align 8, !tbaa !9
  br label %5293

5293:                                             ; preds = %5288
  %5294 = load i64, ptr %21, align 8, !tbaa !9
  %5295 = add nsw i64 %5294, 1
  store i64 %5295, ptr %21, align 8, !tbaa !9
  br label %5219, !llvm.loop !128

5296:                                             ; preds = %5219
  %5297 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %5297, ptr %14, align 8, !tbaa !9
  %5298 = load ptr, ptr %12, align 8, !tbaa !5
  %5299 = load i64, ptr %14, align 8, !tbaa !9
  %5300 = getelementptr inbounds %struct.complex, ptr %5298, i64 %5299
  %5301 = getelementptr inbounds %struct.complex, ptr %5300, i32 0, i32 0
  %5302 = load float, ptr %5301, align 4, !tbaa !13
  store float %5302, ptr %26, align 4, !tbaa !11
  %5303 = load float, ptr %26, align 4, !tbaa !11
  %5304 = fcmp une float %5303, 0.000000e+00
  br i1 %5304, label %5305, label %5328

5305:                                             ; preds = %5296
  %5306 = load float, ptr %31, align 4, !tbaa !11
  %5307 = load float, ptr %26, align 4, !tbaa !11
  %5308 = fcmp olt float %5306, %5307
  br i1 %5308, label %5309, label %5319

5309:                                             ; preds = %5305
  %5310 = load float, ptr %31, align 4, !tbaa !11
  %5311 = load float, ptr %26, align 4, !tbaa !11
  %5312 = fdiv float %5310, %5311
  store float %5312, ptr %17, align 4, !tbaa !11
  %5313 = load float, ptr %24, align 4, !tbaa !11
  %5314 = load float, ptr %17, align 4, !tbaa !11
  %5315 = load float, ptr %17, align 4, !tbaa !11
  %5316 = fmul float %5314, %5315
  %5317 = call float @llvm.fmuladd.f32(float %5313, float %5316, float 1.000000e+00)
  store float %5317, ptr %24, align 4, !tbaa !11
  %5318 = load float, ptr %26, align 4, !tbaa !11
  store float %5318, ptr %31, align 4, !tbaa !11
  br label %5327

5319:                                             ; preds = %5305
  %5320 = load float, ptr %26, align 4, !tbaa !11
  %5321 = load float, ptr %31, align 4, !tbaa !11
  %5322 = fdiv float %5320, %5321
  store float %5322, ptr %17, align 4, !tbaa !11
  %5323 = load float, ptr %17, align 4, !tbaa !11
  %5324 = load float, ptr %17, align 4, !tbaa !11
  %5325 = load float, ptr %24, align 4, !tbaa !11
  %5326 = call float @llvm.fmuladd.f32(float %5323, float %5324, float %5325)
  store float %5326, ptr %24, align 4, !tbaa !11
  br label %5327

5327:                                             ; preds = %5319, %5309
  br label %5328

5328:                                             ; preds = %5327, %5296
  br label %5539

5329:                                             ; preds = %5106
  %5330 = load i64, ptr %22, align 8, !tbaa !9
  %5331 = sub nsw i64 %5330, 1
  store i64 %5331, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %5332

5332:                                             ; preds = %5344, %5329
  %5333 = load i64, ptr %21, align 8, !tbaa !9
  %5334 = load i64, ptr %14, align 8, !tbaa !9
  %5335 = icmp sle i64 %5333, %5334
  br i1 %5335, label %5336, label %5347

5336:                                             ; preds = %5332
  %5337 = load ptr, ptr %12, align 8, !tbaa !5
  %5338 = load i64, ptr %21, align 8, !tbaa !9
  %5339 = add nsw i64 %5338, 1
  %5340 = load i64, ptr %27, align 8, !tbaa !9
  %5341 = mul nsw i64 %5339, %5340
  %5342 = getelementptr inbounds %struct.complex, ptr %5337, i64 %5341
  %5343 = call i32 @classq_(ptr noundef %21, ptr noundef %5342, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5344

5344:                                             ; preds = %5336
  %5345 = load i64, ptr %21, align 8, !tbaa !9
  %5346 = add nsw i64 %5345, 1
  store i64 %5346, ptr %21, align 8, !tbaa !9
  br label %5332, !llvm.loop !129

5347:                                             ; preds = %5332
  %5348 = load ptr, ptr %11, align 8, !tbaa !5
  %5349 = load i64, ptr %5348, align 8, !tbaa !9
  store i64 %5349, ptr %14, align 8, !tbaa !9
  %5350 = load i64, ptr %22, align 8, !tbaa !9
  %5351 = add nsw i64 %5350, 1
  store i64 %5351, ptr %21, align 8, !tbaa !9
  br label %5352

5352:                                             ; preds = %5363, %5347
  %5353 = load i64, ptr %21, align 8, !tbaa !9
  %5354 = load i64, ptr %14, align 8, !tbaa !9
  %5355 = icmp sle i64 %5353, %5354
  br i1 %5355, label %5356, label %5366

5356:                                             ; preds = %5352
  %5357 = load ptr, ptr %12, align 8, !tbaa !5
  %5358 = load i64, ptr %21, align 8, !tbaa !9
  %5359 = load i64, ptr %27, align 8, !tbaa !9
  %5360 = mul nsw i64 %5358, %5359
  %5361 = getelementptr inbounds %struct.complex, ptr %5357, i64 %5360
  %5362 = call i32 @classq_(ptr noundef %22, ptr noundef %5361, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5363

5363:                                             ; preds = %5356
  %5364 = load i64, ptr %21, align 8, !tbaa !9
  %5365 = add nsw i64 %5364, 1
  store i64 %5365, ptr %21, align 8, !tbaa !9
  br label %5352, !llvm.loop !130

5366:                                             ; preds = %5352
  %5367 = load i64, ptr %22, align 8, !tbaa !9
  %5368 = sub nsw i64 %5367, 2
  store i64 %5368, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %5369

5369:                                             ; preds = %5387, %5366
  %5370 = load i64, ptr %21, align 8, !tbaa !9
  %5371 = load i64, ptr %14, align 8, !tbaa !9
  %5372 = icmp sle i64 %5370, %5371
  br i1 %5372, label %5373, label %5390

5373:                                             ; preds = %5369
  %5374 = load i64, ptr %22, align 8, !tbaa !9
  %5375 = load i64, ptr %21, align 8, !tbaa !9
  %5376 = sub nsw i64 %5374, %5375
  %5377 = sub nsw i64 %5376, 1
  store i64 %5377, ptr %15, align 8, !tbaa !9
  %5378 = load ptr, ptr %12, align 8, !tbaa !5
  %5379 = load i64, ptr %21, align 8, !tbaa !9
  %5380 = add nsw i64 %5379, 1
  %5381 = load i64, ptr %21, align 8, !tbaa !9
  %5382 = load i64, ptr %27, align 8, !tbaa !9
  %5383 = mul nsw i64 %5381, %5382
  %5384 = add nsw i64 %5380, %5383
  %5385 = getelementptr inbounds %struct.complex, ptr %5378, i64 %5384
  %5386 = call i32 @classq_(ptr noundef %15, ptr noundef %5385, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %5387

5387:                                             ; preds = %5373
  %5388 = load i64, ptr %21, align 8, !tbaa !9
  %5389 = add nsw i64 %5388, 1
  store i64 %5389, ptr %21, align 8, !tbaa !9
  br label %5369, !llvm.loop !131

5390:                                             ; preds = %5369
  %5391 = load float, ptr %24, align 4, !tbaa !11
  %5392 = load float, ptr %24, align 4, !tbaa !11
  %5393 = fadd float %5392, %5391
  store float %5393, ptr %24, align 4, !tbaa !11
  store i64 0, ptr %23, align 8, !tbaa !9
  %5394 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %5394, ptr %14, align 8, !tbaa !9
  %5395 = load ptr, ptr %12, align 8, !tbaa !5
  %5396 = load i64, ptr %14, align 8, !tbaa !9
  %5397 = getelementptr inbounds %struct.complex, ptr %5395, i64 %5396
  %5398 = getelementptr inbounds %struct.complex, ptr %5397, i32 0, i32 0
  %5399 = load float, ptr %5398, align 4, !tbaa !13
  store float %5399, ptr %26, align 4, !tbaa !11
  %5400 = load float, ptr %26, align 4, !tbaa !11
  %5401 = fcmp une float %5400, 0.000000e+00
  br i1 %5401, label %5402, label %5425

5402:                                             ; preds = %5390
  %5403 = load float, ptr %31, align 4, !tbaa !11
  %5404 = load float, ptr %26, align 4, !tbaa !11
  %5405 = fcmp olt float %5403, %5404
  br i1 %5405, label %5406, label %5416

5406:                                             ; preds = %5402
  %5407 = load float, ptr %31, align 4, !tbaa !11
  %5408 = load float, ptr %26, align 4, !tbaa !11
  %5409 = fdiv float %5407, %5408
  store float %5409, ptr %17, align 4, !tbaa !11
  %5410 = load float, ptr %24, align 4, !tbaa !11
  %5411 = load float, ptr %17, align 4, !tbaa !11
  %5412 = load float, ptr %17, align 4, !tbaa !11
  %5413 = fmul float %5411, %5412
  %5414 = call float @llvm.fmuladd.f32(float %5410, float %5413, float 1.000000e+00)
  store float %5414, ptr %24, align 4, !tbaa !11
  %5415 = load float, ptr %26, align 4, !tbaa !11
  store float %5415, ptr %31, align 4, !tbaa !11
  br label %5424

5416:                                             ; preds = %5402
  %5417 = load float, ptr %26, align 4, !tbaa !11
  %5418 = load float, ptr %31, align 4, !tbaa !11
  %5419 = fdiv float %5417, %5418
  store float %5419, ptr %17, align 4, !tbaa !11
  %5420 = load float, ptr %17, align 4, !tbaa !11
  %5421 = load float, ptr %17, align 4, !tbaa !11
  %5422 = load float, ptr %24, align 4, !tbaa !11
  %5423 = call float @llvm.fmuladd.f32(float %5420, float %5421, float %5422)
  store float %5423, ptr %24, align 4, !tbaa !11
  br label %5424

5424:                                             ; preds = %5416, %5406
  br label %5425

5425:                                             ; preds = %5424, %5390
  %5426 = load i64, ptr %27, align 8, !tbaa !9
  store i64 %5426, ptr %23, align 8, !tbaa !9
  %5427 = load i64, ptr %22, align 8, !tbaa !9
  %5428 = sub nsw i64 %5427, 2
  store i64 %5428, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %5429

5429:                                             ; preds = %5503, %5425
  %5430 = load i64, ptr %20, align 8, !tbaa !9
  %5431 = load i64, ptr %14, align 8, !tbaa !9
  %5432 = icmp sle i64 %5430, %5431
  br i1 %5432, label %5433, label %5506

5433:                                             ; preds = %5429
  %5434 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %5434, ptr %15, align 8, !tbaa !9
  %5435 = load ptr, ptr %12, align 8, !tbaa !5
  %5436 = load i64, ptr %15, align 8, !tbaa !9
  %5437 = getelementptr inbounds %struct.complex, ptr %5435, i64 %5436
  %5438 = getelementptr inbounds %struct.complex, ptr %5437, i32 0, i32 0
  %5439 = load float, ptr %5438, align 4, !tbaa !13
  store float %5439, ptr %26, align 4, !tbaa !11
  %5440 = load float, ptr %26, align 4, !tbaa !11
  %5441 = fcmp une float %5440, 0.000000e+00
  br i1 %5441, label %5442, label %5465

5442:                                             ; preds = %5433
  %5443 = load float, ptr %31, align 4, !tbaa !11
  %5444 = load float, ptr %26, align 4, !tbaa !11
  %5445 = fcmp olt float %5443, %5444
  br i1 %5445, label %5446, label %5456

5446:                                             ; preds = %5442
  %5447 = load float, ptr %31, align 4, !tbaa !11
  %5448 = load float, ptr %26, align 4, !tbaa !11
  %5449 = fdiv float %5447, %5448
  store float %5449, ptr %17, align 4, !tbaa !11
  %5450 = load float, ptr %24, align 4, !tbaa !11
  %5451 = load float, ptr %17, align 4, !tbaa !11
  %5452 = load float, ptr %17, align 4, !tbaa !11
  %5453 = fmul float %5451, %5452
  %5454 = call float @llvm.fmuladd.f32(float %5450, float %5453, float 1.000000e+00)
  store float %5454, ptr %24, align 4, !tbaa !11
  %5455 = load float, ptr %26, align 4, !tbaa !11
  store float %5455, ptr %31, align 4, !tbaa !11
  br label %5464

5456:                                             ; preds = %5442
  %5457 = load float, ptr %26, align 4, !tbaa !11
  %5458 = load float, ptr %31, align 4, !tbaa !11
  %5459 = fdiv float %5457, %5458
  store float %5459, ptr %17, align 4, !tbaa !11
  %5460 = load float, ptr %17, align 4, !tbaa !11
  %5461 = load float, ptr %17, align 4, !tbaa !11
  %5462 = load float, ptr %24, align 4, !tbaa !11
  %5463 = call float @llvm.fmuladd.f32(float %5460, float %5461, float %5462)
  store float %5463, ptr %24, align 4, !tbaa !11
  br label %5464

5464:                                             ; preds = %5456, %5446
  br label %5465

5465:                                             ; preds = %5464, %5433
  %5466 = load i64, ptr %23, align 8, !tbaa !9
  %5467 = add nsw i64 %5466, 1
  store i64 %5467, ptr %15, align 8, !tbaa !9
  %5468 = load ptr, ptr %12, align 8, !tbaa !5
  %5469 = load i64, ptr %15, align 8, !tbaa !9
  %5470 = getelementptr inbounds %struct.complex, ptr %5468, i64 %5469
  %5471 = getelementptr inbounds %struct.complex, ptr %5470, i32 0, i32 0
  %5472 = load float, ptr %5471, align 4, !tbaa !13
  store float %5472, ptr %26, align 4, !tbaa !11
  %5473 = load float, ptr %26, align 4, !tbaa !11
  %5474 = fcmp une float %5473, 0.000000e+00
  br i1 %5474, label %5475, label %5498

5475:                                             ; preds = %5465
  %5476 = load float, ptr %31, align 4, !tbaa !11
  %5477 = load float, ptr %26, align 4, !tbaa !11
  %5478 = fcmp olt float %5476, %5477
  br i1 %5478, label %5479, label %5489

5479:                                             ; preds = %5475
  %5480 = load float, ptr %31, align 4, !tbaa !11
  %5481 = load float, ptr %26, align 4, !tbaa !11
  %5482 = fdiv float %5480, %5481
  store float %5482, ptr %17, align 4, !tbaa !11
  %5483 = load float, ptr %24, align 4, !tbaa !11
  %5484 = load float, ptr %17, align 4, !tbaa !11
  %5485 = load float, ptr %17, align 4, !tbaa !11
  %5486 = fmul float %5484, %5485
  %5487 = call float @llvm.fmuladd.f32(float %5483, float %5486, float 1.000000e+00)
  store float %5487, ptr %24, align 4, !tbaa !11
  %5488 = load float, ptr %26, align 4, !tbaa !11
  store float %5488, ptr %31, align 4, !tbaa !11
  br label %5497

5489:                                             ; preds = %5475
  %5490 = load float, ptr %26, align 4, !tbaa !11
  %5491 = load float, ptr %31, align 4, !tbaa !11
  %5492 = fdiv float %5490, %5491
  store float %5492, ptr %17, align 4, !tbaa !11
  %5493 = load float, ptr %17, align 4, !tbaa !11
  %5494 = load float, ptr %17, align 4, !tbaa !11
  %5495 = load float, ptr %24, align 4, !tbaa !11
  %5496 = call float @llvm.fmuladd.f32(float %5493, float %5494, float %5495)
  store float %5496, ptr %24, align 4, !tbaa !11
  br label %5497

5497:                                             ; preds = %5489, %5479
  br label %5498

5498:                                             ; preds = %5497, %5465
  %5499 = load i64, ptr %23, align 8, !tbaa !9
  %5500 = load i64, ptr %27, align 8, !tbaa !9
  %5501 = add nsw i64 %5499, %5500
  %5502 = add nsw i64 %5501, 1
  store i64 %5502, ptr %23, align 8, !tbaa !9
  br label %5503

5503:                                             ; preds = %5498
  %5504 = load i64, ptr %20, align 8, !tbaa !9
  %5505 = add nsw i64 %5504, 1
  store i64 %5505, ptr %20, align 8, !tbaa !9
  br label %5429, !llvm.loop !132

5506:                                             ; preds = %5429
  %5507 = load i64, ptr %23, align 8, !tbaa !9
  store i64 %5507, ptr %14, align 8, !tbaa !9
  %5508 = load ptr, ptr %12, align 8, !tbaa !5
  %5509 = load i64, ptr %14, align 8, !tbaa !9
  %5510 = getelementptr inbounds %struct.complex, ptr %5508, i64 %5509
  %5511 = getelementptr inbounds %struct.complex, ptr %5510, i32 0, i32 0
  %5512 = load float, ptr %5511, align 4, !tbaa !13
  store float %5512, ptr %26, align 4, !tbaa !11
  %5513 = load float, ptr %26, align 4, !tbaa !11
  %5514 = fcmp une float %5513, 0.000000e+00
  br i1 %5514, label %5515, label %5538

5515:                                             ; preds = %5506
  %5516 = load float, ptr %31, align 4, !tbaa !11
  %5517 = load float, ptr %26, align 4, !tbaa !11
  %5518 = fcmp olt float %5516, %5517
  br i1 %5518, label %5519, label %5529

5519:                                             ; preds = %5515
  %5520 = load float, ptr %31, align 4, !tbaa !11
  %5521 = load float, ptr %26, align 4, !tbaa !11
  %5522 = fdiv float %5520, %5521
  store float %5522, ptr %17, align 4, !tbaa !11
  %5523 = load float, ptr %24, align 4, !tbaa !11
  %5524 = load float, ptr %17, align 4, !tbaa !11
  %5525 = load float, ptr %17, align 4, !tbaa !11
  %5526 = fmul float %5524, %5525
  %5527 = call float @llvm.fmuladd.f32(float %5523, float %5526, float 1.000000e+00)
  store float %5527, ptr %24, align 4, !tbaa !11
  %5528 = load float, ptr %26, align 4, !tbaa !11
  store float %5528, ptr %31, align 4, !tbaa !11
  br label %5537

5529:                                             ; preds = %5515
  %5530 = load float, ptr %26, align 4, !tbaa !11
  %5531 = load float, ptr %31, align 4, !tbaa !11
  %5532 = fdiv float %5530, %5531
  store float %5532, ptr %17, align 4, !tbaa !11
  %5533 = load float, ptr %17, align 4, !tbaa !11
  %5534 = load float, ptr %17, align 4, !tbaa !11
  %5535 = load float, ptr %24, align 4, !tbaa !11
  %5536 = call float @llvm.fmuladd.f32(float %5533, float %5534, float %5535)
  store float %5536, ptr %24, align 4, !tbaa !11
  br label %5537

5537:                                             ; preds = %5529, %5519
  br label %5538

5538:                                             ; preds = %5537, %5506
  br label %5539

5539:                                             ; preds = %5538, %5328
  br label %5540

5540:                                             ; preds = %5539, %5105
  br label %5541

5541:                                             ; preds = %5540, %4841
  %5542 = load float, ptr %31, align 4, !tbaa !11
  %5543 = fpext float %5542 to double
  %5544 = load float, ptr %24, align 4, !tbaa !11
  %5545 = fpext float %5544 to double
  %5546 = call double @sqrt(double noundef %5545) #5
  %5547 = fmul double %5543, %5546
  %5548 = fptrunc double %5547 to float
  store float %5548, ptr %32, align 4, !tbaa !11
  br label %5549

5549:                                             ; preds = %5541, %4131
  br label %5550

5550:                                             ; preds = %5549, %4126
  br label %5551

5551:                                             ; preds = %5550, %2230
  %5552 = load float, ptr %32, align 4, !tbaa !11
  store float %5552, ptr %16, align 4, !tbaa !11
  %5553 = load float, ptr %16, align 4, !tbaa !11
  %5554 = fpext float %5553 to double
  store double %5554, ptr %7, align 8
  store i32 1, ptr %33, align 4
  br label %5555

5555:                                             ; preds = %5551, %37
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  %5556 = load double, ptr %7, align 8
  ret double %5556
}

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

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

declare double @c_abs(ptr noundef) #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !12, i64 0}
!14 = !{!"", !12, i64 0, !12, i64 4}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = distinct !{!34, !16}
!35 = distinct !{!35, !16}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}
!40 = distinct !{!40, !16}
!41 = distinct !{!41, !16}
!42 = distinct !{!42, !16}
!43 = distinct !{!43, !16}
!44 = distinct !{!44, !16}
!45 = distinct !{!45, !16}
!46 = distinct !{!46, !16}
!47 = distinct !{!47, !16}
!48 = distinct !{!48, !16}
!49 = distinct !{!49, !16}
!50 = distinct !{!50, !16}
!51 = distinct !{!51, !16}
!52 = distinct !{!52, !16}
!53 = distinct !{!53, !16}
!54 = distinct !{!54, !16}
!55 = distinct !{!55, !16}
!56 = distinct !{!56, !16}
!57 = distinct !{!57, !16}
!58 = !{!7, !7, i64 0}
!59 = distinct !{!59, !16}
!60 = distinct !{!60, !16}
!61 = distinct !{!61, !16}
!62 = distinct !{!62, !16}
!63 = distinct !{!63, !16}
!64 = distinct !{!64, !16}
!65 = distinct !{!65, !16}
!66 = distinct !{!66, !16}
!67 = distinct !{!67, !16}
!68 = distinct !{!68, !16}
!69 = distinct !{!69, !16}
!70 = distinct !{!70, !16}
!71 = distinct !{!71, !16}
!72 = distinct !{!72, !16}
!73 = distinct !{!73, !16}
!74 = distinct !{!74, !16}
!75 = distinct !{!75, !16}
!76 = distinct !{!76, !16}
!77 = distinct !{!77, !16}
!78 = distinct !{!78, !16}
!79 = distinct !{!79, !16}
!80 = distinct !{!80, !16}
!81 = distinct !{!81, !16}
!82 = distinct !{!82, !16}
!83 = distinct !{!83, !16}
!84 = distinct !{!84, !16}
!85 = distinct !{!85, !16}
!86 = distinct !{!86, !16}
!87 = distinct !{!87, !16}
!88 = distinct !{!88, !16}
!89 = distinct !{!89, !16}
!90 = distinct !{!90, !16}
!91 = distinct !{!91, !16}
!92 = distinct !{!92, !16}
!93 = distinct !{!93, !16}
!94 = distinct !{!94, !16}
!95 = distinct !{!95, !16}
!96 = distinct !{!96, !16}
!97 = distinct !{!97, !16}
!98 = distinct !{!98, !16}
!99 = distinct !{!99, !16}
!100 = distinct !{!100, !16}
!101 = distinct !{!101, !16}
!102 = distinct !{!102, !16}
!103 = distinct !{!103, !16}
!104 = distinct !{!104, !16}
!105 = distinct !{!105, !16}
!106 = distinct !{!106, !16}
!107 = distinct !{!107, !16}
!108 = distinct !{!108, !16}
!109 = distinct !{!109, !16}
!110 = distinct !{!110, !16}
!111 = distinct !{!111, !16}
!112 = distinct !{!112, !16}
!113 = distinct !{!113, !16}
!114 = distinct !{!114, !16}
!115 = distinct !{!115, !16}
!116 = distinct !{!116, !16}
!117 = distinct !{!117, !16}
!118 = distinct !{!118, !16}
!119 = distinct !{!119, !16}
!120 = distinct !{!120, !16}
!121 = distinct !{!121, !16}
!122 = distinct !{!122, !16}
!123 = distinct !{!123, !16}
!124 = distinct !{!124, !16}
!125 = distinct !{!125, !16}
!126 = distinct !{!126, !16}
!127 = distinct !{!127, !16}
!128 = distinct !{!128, !16}
!129 = distinct !{!129, !16}
!130 = distinct !{!130, !16}
!131 = distinct !{!131, !16}
!132 = distinct !{!132, !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 [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local double @clanhf_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) local_unnamed_addr #0 {
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #7
  %12 = load i64, ptr %3, align 8, !tbaa !5
  %13 = icmp eq i64 %12, 0
  br i1 %13, label %1710, label %14

14:                                               ; preds = %6
  %15 = and i64 %12, 1
  %16 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #7
  %.not = icmp eq i64 %16, 0
  %17 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #7
  %.not1796.not.not.not.not.not.not.not.not = icmp eq i64 %17, 0
  %18 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %.not, label %19, label %21

19:                                               ; preds = %14
  %20 = xor i64 %15, 1
  %spec.select = add i64 %18, %20
  br label %24

21:                                               ; preds = %14
  %22 = add nsw i64 %18, 1
  %23 = sdiv i64 %22, 2
  br label %24

24:                                               ; preds = %19, %21
  %.01631 = phi i64 [ %23, %21 ], [ %spec.select, %19 ]
  %25 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #7
  %.not1798 = icmp eq i64 %25, 0
  br i1 %.not1798, label %513, label %26

26:                                               ; preds = %24
  %27 = load i64, ptr %3, align 8, !tbaa !5
  %28 = add i64 %27, 1
  %29 = sdiv i64 %28, 2
  store i64 %29, ptr %9, align 8, !tbaa !5
  %.not1911 = icmp eq i64 %15, 0
  br i1 %.not1911, label %253, label %30

30:                                               ; preds = %26
  br i1 %.not, label %31, label %132

31:                                               ; preds = %30
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %32, label %76

32:                                               ; preds = %31
  %33 = load float, ptr %4, align 4, !tbaa !9
  %34 = fcmp oge float %33, 0.000000e+00
  %35 = fneg float %33
  %36 = select i1 %34, float %33, float %35
  %37 = fcmp ole float %36, 0.000000e+00
  %38 = select i1 %37, float 0.000000e+00, float %36
  %.not1961.not2123 = icmp sgt i64 %27, 1
  br i1 %.not1961.not2123, label %.lr.ph2127, label %.loopexit1984

.lr.ph2127:                                       ; preds = %32, %.lr.ph2127
  %.02125 = phi float [ %42, %.lr.ph2127 ], [ %38, %32 ]
  %.016492124 = phi i64 [ %43, %.lr.ph2127 ], [ 1, %32 ]
  %gep2131 = getelementptr %struct.complex, ptr %4, i64 %.016492124
  %39 = tail call double @c_abs(ptr noundef %gep2131) #7
  %40 = fptrunc double %39 to float
  %41 = fcmp oge float %.02125, %40
  %42 = select i1 %41, float %.02125, float %40
  %43 = add nuw nsw i64 %.016492124, 1
  %exitcond3159.not = icmp eq i64 %43, %27
  br i1 %exitcond3159.not, label %._crit_edge2128, label %.lr.ph2127, !llvm.loop !12

._crit_edge2128:                                  ; preds = %.lr.ph2127
  %.not1963.not2150 = icmp sgt i64 %28, 3
  br i1 %.not1963.not2150, label %.lr.ph2154, label %.loopexit1984

.lr.ph2154:                                       ; preds = %._crit_edge2128
  %44 = add i64 %.01631, 1
  %invariant.gep3455 = getelementptr i8, ptr %4, i64 -8
  %45 = add nsw i64 %29, -2
  br label %46

46:                                               ; preds = %.lr.ph2154, %._crit_edge2146
  %indvars.iv3160 = phi i64 [ 0, %.lr.ph2154 ], [ %indvars.iv.next3161, %._crit_edge2146 ]
  %.12152 = phi float [ %42, %.lr.ph2154 ], [ %.3.lcssa, %._crit_edge2146 ]
  %storemerge19622151 = phi i64 [ 1, %.lr.ph2154 ], [ %75, %._crit_edge2146 ]
  %.not19642132 = icmp ult i64 %storemerge19622151, 2
  %.pre3320 = mul nsw i64 %storemerge19622151, %.01631
  br i1 %.not19642132, label %._crit_edge2137, label %.lr.ph2136

.lr.ph2136:                                       ; preds = %46
  %invariant.gep2139 = getelementptr %struct.complex, ptr %4, i64 %.pre3320
  br label %47

47:                                               ; preds = %.lr.ph2136, %47
  %.22134 = phi float [ %.12152, %.lr.ph2136 ], [ %51, %47 ]
  %.116502133 = phi i64 [ 0, %.lr.ph2136 ], [ %52, %47 ]
  %gep2140 = getelementptr %struct.complex, ptr %invariant.gep2139, i64 %.116502133
  %48 = tail call double @c_abs(ptr noundef %gep2140) #7
  %49 = fptrunc double %48 to float
  %50 = fcmp oge float %.22134, %49
  %51 = select i1 %50, float %.22134, float %49
  %52 = add nuw nsw i64 %.116502133, 1
  %exitcond3162.not = icmp eq i64 %52, %indvars.iv3160
  br i1 %exitcond3162.not, label %._crit_edge2137, label %47, !llvm.loop !14

._crit_edge2137:                                  ; preds = %47, %46
  %.2.lcssa = phi float [ %.12152, %46 ], [ %51, %47 ]
  %gep3456 = getelementptr %struct.complex, ptr %invariant.gep3455, i64 %storemerge19622151
  %53 = getelementptr %struct.complex, ptr %gep3456, i64 %.pre3320
  %54 = load float, ptr %53, align 4, !tbaa !9
  %55 = fcmp oge float %54, 0.000000e+00
  %56 = fneg float %54
  %57 = select i1 %55, float %54, float %56
  %58 = fcmp oge float %.2.lcssa, %57
  %59 = select i1 %58, float %.2.lcssa, float %57
  %60 = mul i64 %storemerge19622151, %44
  %61 = getelementptr inbounds %struct.complex, ptr %4, i64 %60
  %62 = load float, ptr %61, align 4, !tbaa !9
  %63 = fcmp oge float %62, 0.000000e+00
  %64 = fneg float %62
  %65 = select i1 %63, float %62, float %64
  %66 = fcmp oge float %59, %65
  %67 = select i1 %66, float %59, float %65
  %68 = load i64, ptr %3, align 8, !tbaa !5
  %69 = add nsw i64 %68, -1
  %.not1965.not2141 = icmp slt i64 %storemerge19622151, %69
  br i1 %.not1965.not2141, label %.lr.ph2145, label %._crit_edge2146

.lr.ph2145:                                       ; preds = %._crit_edge2137
  %invariant.gep2148 = getelementptr %struct.complex, ptr %4, i64 %.pre3320
  br label %70

70:                                               ; preds = %.lr.ph2145, %70
  %.32143 = phi float [ %67, %.lr.ph2145 ], [ %74, %70 ]
  %.21651.in2142 = phi i64 [ %storemerge19622151, %.lr.ph2145 ], [ %.21651, %70 ]
  %.21651 = add nuw nsw i64 %.21651.in2142, 1
  %gep2149 = getelementptr %struct.complex, ptr %invariant.gep2148, i64 %.21651
  %71 = tail call double @c_abs(ptr noundef %gep2149) #7
  %72 = fptrunc double %71 to float
  %73 = fcmp oge float %.32143, %72
  %74 = select i1 %73, float %.32143, float %72
  %.not1965.not = icmp slt i64 %.21651, %69
  br i1 %.not1965.not, label %70, label %._crit_edge2146, !llvm.loop !15

._crit_edge2146:                                  ; preds = %70, %._crit_edge2137
  %.3.lcssa = phi float [ %67, %._crit_edge2137 ], [ %74, %70 ]
  %75 = add nuw nsw i64 %storemerge19622151, 1
  %indvars.iv.next3161 = add nuw nsw i64 %indvars.iv3160, 1
  %exitcond3163.not = icmp eq i64 %indvars.iv3160, %45
  br i1 %exitcond3163.not, label %.loopexit1984, label %46, !llvm.loop !16

76:                                               ; preds = %31
  %.not19572105 = icmp slt i64 %27, 3
  br i1 %.not19572105, label %114, label %.lr.ph2109

.lr.ph2109:                                       ; preds = %76
  %77 = add nsw i64 %29, -1
  %78 = tail call i64 @llvm.smax.i64(i64 %29, i64 2)
  %79 = add nsw i64 %78, -1
  br label %80

80:                                               ; preds = %.lr.ph2109, %._crit_edge2101
  %indvars.iv3153 = phi i64 [ %77, %.lr.ph2109 ], [ %indvars.iv.next3154, %._crit_edge2101 ]
  %.42107 = phi float [ 0.000000e+00, %.lr.ph2109 ], [ %.6.lcssa, %._crit_edge2101 ]
  %storemerge19562106 = phi i64 [ 0, %.lr.ph2109 ], [ %113, %._crit_edge2101 ]
  %81 = add nsw i64 %storemerge19562106, -2
  %82 = add i64 %81, %29
  %.not19592087 = icmp slt i64 %82, 0
  %.pre3324 = mul nsw i64 %storemerge19562106, %.01631
  br i1 %.not19592087, label %._crit_edge2092, label %.lr.ph2091

.lr.ph2091:                                       ; preds = %80
  %invariant.gep2094 = getelementptr %struct.complex, ptr %4, i64 %.pre3324
  br label %83

83:                                               ; preds = %.lr.ph2091, %83
  %.52089 = phi float [ %.42107, %.lr.ph2091 ], [ %87, %83 ]
  %.316522088 = phi i64 [ 0, %.lr.ph2091 ], [ %88, %83 ]
  %gep2095 = getelementptr %struct.complex, ptr %invariant.gep2094, i64 %.316522088
  %84 = tail call double @c_abs(ptr noundef %gep2095) #7
  %85 = fptrunc double %84 to float
  %86 = fcmp oge float %.52089, %85
  %87 = select i1 %86, float %.52089, float %85
  %88 = add nuw i64 %.316522088, 1
  %exitcond3155.not = icmp eq i64 %88, %indvars.iv3153
  br i1 %exitcond3155.not, label %._crit_edge2092, label %83, !llvm.loop !17

._crit_edge2092:                                  ; preds = %83, %80
  %.5.lcssa = phi float [ %.42107, %80 ], [ %87, %83 ]
  %89 = add nsw i64 %storemerge19562106, %29
  %90 = getelementptr %struct.complex, ptr %4, i64 %.pre3324
  %91 = getelementptr %struct.complex, ptr %90, i64 %89
  %92 = getelementptr i8, ptr %91, i64 -8
  %93 = load float, ptr %92, align 4, !tbaa !9
  %94 = fcmp oge float %93, 0.000000e+00
  %95 = fneg float %93
  %96 = select i1 %94, float %93, float %95
  %97 = fcmp oge float %.5.lcssa, %96
  %98 = select i1 %97, float %.5.lcssa, float %96
  %99 = getelementptr %struct.complex, ptr %4, i64 %89
  %100 = getelementptr %struct.complex, ptr %99, i64 %.pre3324
  %101 = load float, ptr %100, align 4, !tbaa !9
  %102 = fcmp oge float %101, 0.000000e+00
  %103 = fneg float %101
  %104 = select i1 %102, float %101, float %103
  %105 = fcmp oge float %98, %104
  %106 = select i1 %105, float %98, float %104
  %107 = load i64, ptr %3, align 8, !tbaa !5
  %108 = add nsw i64 %107, -1
  %.not1960.not2096 = icmp slt i64 %89, %108
  br i1 %.not1960.not2096, label %.lr.ph2100, label %._crit_edge2101

.lr.ph2100:                                       ; preds = %._crit_edge2092, %.lr.ph2100
  %.62098 = phi float [ %112, %.lr.ph2100 ], [ %106, %._crit_edge2092 ]
  %.41653.in2097 = phi i64 [ %.41653, %.lr.ph2100 ], [ %89, %._crit_edge2092 ]
  %.41653 = add nsw i64 %.41653.in2097, 1
  %gep2104 = getelementptr %struct.complex, ptr %90, i64 %.41653
  %109 = tail call double @c_abs(ptr noundef %gep2104) #7
  %110 = fptrunc double %109 to float
  %111 = fcmp oge float %.62098, %110
  %112 = select i1 %111, float %.62098, float %110
  %.not1960.not = icmp slt i64 %.41653, %108
  br i1 %.not1960.not, label %.lr.ph2100, label %._crit_edge2101, !llvm.loop !18

._crit_edge2101:                                  ; preds = %.lr.ph2100, %._crit_edge2092
  %.6.lcssa = phi float [ %106, %._crit_edge2092 ], [ %112, %.lr.ph2100 ]
  %113 = add nuw nsw i64 %storemerge19562106, 1
  %indvars.iv.next3154 = add i64 %indvars.iv3153, 1
  %exitcond3157.not = icmp eq i64 %113, %79
  br i1 %exitcond3157.not, label %._crit_edge2110, label %80, !llvm.loop !19

._crit_edge2110:                                  ; preds = %._crit_edge2101
  %.pre = load i64, ptr %3, align 8, !tbaa !5
  br label %114

114:                                              ; preds = %._crit_edge2110, %76
  %115 = phi i64 [ %.pre, %._crit_edge2110 ], [ %27, %76 ]
  %116 = phi i64 [ %79, %._crit_edge2110 ], [ 0, %76 ]
  %.4.lcssa = phi float [ %.6.lcssa, %._crit_edge2110 ], [ 0.000000e+00, %76 ]
  %.not19582113 = icmp slt i64 %115, 2
  %.pre3322 = mul nsw i64 %116, %.01631
  br i1 %.not19582113, label %._crit_edge2118, label %.lr.ph2117

.lr.ph2117:                                       ; preds = %114
  %invariant.gep2121 = getelementptr %struct.complex, ptr %4, i64 %.pre3322
  %117 = add nsw i64 %115, -1
  br label %118

118:                                              ; preds = %.lr.ph2117, %118
  %.72115 = phi float [ %.4.lcssa, %.lr.ph2117 ], [ %122, %118 ]
  %.516542114 = phi i64 [ 0, %.lr.ph2117 ], [ %123, %118 ]
  %gep2122 = getelementptr %struct.complex, ptr %invariant.gep2121, i64 %.516542114
  %119 = tail call double @c_abs(ptr noundef %gep2122) #7
  %120 = fptrunc double %119 to float
  %121 = fcmp oge float %.72115, %120
  %122 = select i1 %121, float %.72115, float %120
  %123 = add nuw i64 %.516542114, 1
  %exitcond3158.not = icmp eq i64 %123, %117
  br i1 %exitcond3158.not, label %._crit_edge2118, label %118, !llvm.loop !20

._crit_edge2118:                                  ; preds = %118, %114
  %.51654.lcssa = phi i64 [ 0, %114 ], [ %117, %118 ]
  %.7.lcssa = phi float [ %.4.lcssa, %114 ], [ %122, %118 ]
  %124 = getelementptr %struct.complex, ptr %4, i64 %.51654.lcssa
  %125 = getelementptr %struct.complex, ptr %124, i64 %.pre3322
  %126 = load float, ptr %125, align 4, !tbaa !9
  %127 = fcmp oge float %126, 0.000000e+00
  %128 = fneg float %126
  %129 = select i1 %127, float %126, float %128
  %130 = fcmp oge float %.7.lcssa, %129
  %131 = select i1 %130, float %.7.lcssa, float %129
  br label %.loopexit1984

132:                                              ; preds = %30
  %.not19492054 = icmp slt i64 %27, 3
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %133, label %196

133:                                              ; preds = %132
  br i1 %.not19492054, label %.thread, label %.lr.ph2058

.thread:                                          ; preds = %133
  %.pre3326 = add nsw i64 %29, -1
  br label %.._crit_edge2067_crit_edge

.lr.ph2058:                                       ; preds = %133
  %134 = add i64 %.01631, 1
  %135 = add nsw i64 %29, -1
  %136 = tail call i64 @llvm.smax.i64(i64 %29, i64 2)
  %invariant.gep3453 = getelementptr i8, ptr %4, i64 8
  %137 = add nsw i64 %136, -2
  br label %138

138:                                              ; preds = %.lr.ph2058, %._crit_edge2050
  %.82056 = phi float [ 0.000000e+00, %.lr.ph2058 ], [ %.10.lcssa, %._crit_edge2050 ]
  %storemerge19482055 = phi i64 [ 0, %.lr.ph2058 ], [ %168, %._crit_edge2050 ]
  %.not19542036 = icmp eq i64 %storemerge19482055, 0
  br i1 %.not19542036, label %._crit_edge2041, label %.lr.ph2040

.lr.ph2040:                                       ; preds = %138
  %139 = mul nsw i64 %storemerge19482055, %.01631
  %invariant.gep2043 = getelementptr %struct.complex, ptr %4, i64 %139
  br label %140

140:                                              ; preds = %.lr.ph2040, %140
  %.92038 = phi float [ %.82056, %.lr.ph2040 ], [ %144, %140 ]
  %.616552037 = phi i64 [ 0, %.lr.ph2040 ], [ %145, %140 ]
  %gep2044 = getelementptr %struct.complex, ptr %invariant.gep2043, i64 %.616552037
  %141 = tail call double @c_abs(ptr noundef %gep2044) #7
  %142 = fptrunc double %141 to float
  %143 = fcmp oge float %.92038, %142
  %144 = select i1 %143, float %.92038, float %142
  %145 = add nuw nsw i64 %.616552037, 1
  %exitcond3147.not = icmp eq i64 %145, %storemerge19482055
  br i1 %exitcond3147.not, label %._crit_edge2041, label %140, !llvm.loop !21

._crit_edge2041:                                  ; preds = %140, %138
  %.pre-phi3331 = phi i64 [ 0, %138 ], [ %139, %140 ]
  %.9.lcssa = phi float [ %.82056, %138 ], [ %144, %140 ]
  %146 = mul i64 %storemerge19482055, %134
  %147 = getelementptr inbounds %struct.complex, ptr %4, i64 %146
  %148 = load float, ptr %147, align 4, !tbaa !9
  %149 = fcmp oge float %148, 0.000000e+00
  %150 = fneg float %148
  %151 = select i1 %149, float %148, float %150
  %152 = fcmp oge float %.9.lcssa, %151
  %153 = select i1 %152, float %.9.lcssa, float %151
  %gep3454 = getelementptr %struct.complex, ptr %invariant.gep3453, i64 %storemerge19482055
  %154 = getelementptr %struct.complex, ptr %gep3454, i64 %.pre-phi3331
  %155 = load float, ptr %154, align 4, !tbaa !9
  %156 = fcmp oge float %155, 0.000000e+00
  %157 = fneg float %155
  %158 = select i1 %156, float %155, float %157
  %159 = fcmp oge float %153, %158
  %160 = select i1 %159, float %153, float %158
  %161 = add nuw nsw i64 %storemerge19482055, 2
  %.not19552045.not = icmp slt i64 %161, %29
  br i1 %.not19552045.not, label %.lr.ph2049, label %._crit_edge2050

.lr.ph2049:                                       ; preds = %._crit_edge2041
  %invariant.gep2052 = getelementptr %struct.complex, ptr %4, i64 %.pre-phi3331
  br label %162

162:                                              ; preds = %.lr.ph2049, %162
  %.102047 = phi float [ %160, %.lr.ph2049 ], [ %166, %162 ]
  %.716562046 = phi i64 [ %161, %.lr.ph2049 ], [ %167, %162 ]
  %gep2053 = getelementptr %struct.complex, ptr %invariant.gep2052, i64 %.716562046
  %163 = tail call double @c_abs(ptr noundef %gep2053) #7
  %164 = fptrunc double %163 to float
  %165 = fcmp oge float %.102047, %164
  %166 = select i1 %165, float %.102047, float %164
  %167 = add nuw nsw i64 %.716562046, 1
  %.not1955.not = icmp slt i64 %.716562046, %135
  br i1 %.not1955.not, label %162, label %._crit_edge2050, !llvm.loop !22

._crit_edge2050:                                  ; preds = %162, %._crit_edge2041
  %.10.lcssa = phi float [ %160, %._crit_edge2041 ], [ %166, %162 ]
  %168 = add nuw nsw i64 %storemerge19482055, 1
  %exitcond3149.not = icmp eq i64 %storemerge19482055, %137
  br i1 %exitcond3149.not, label %169, label %138, !llvm.loop !23

169:                                              ; preds = %._crit_edge2050
  %.not19502062 = icmp slt i64 %28, 4
  br i1 %.not19502062, label %.._crit_edge2067_crit_edge, label %.lr.ph2066

.._crit_edge2067_crit_edge:                       ; preds = %.thread, %169
  %.8.lcssa3344 = phi float [ 0.000000e+00, %.thread ], [ %.10.lcssa, %169 ]
  %.pre-phi33273343 = phi i64 [ %.pre3326, %.thread ], [ %135, %169 ]
  %.pre3328 = mul nsw i64 %.pre-phi33273343, %.01631
  br label %._crit_edge2067

.lr.ph2066:                                       ; preds = %169
  %170 = mul nsw i64 %135, %.01631
  %invariant.gep2069 = getelementptr %struct.complex, ptr %4, i64 %170
  br label %171

171:                                              ; preds = %.lr.ph2066, %171
  %.112064 = phi float [ %.10.lcssa, %.lr.ph2066 ], [ %175, %171 ]
  %.816572063 = phi i64 [ 0, %.lr.ph2066 ], [ %176, %171 ]
  %gep2070 = getelementptr %struct.complex, ptr %invariant.gep2069, i64 %.816572063
  %172 = tail call double @c_abs(ptr noundef %gep2070) #7
  %173 = fptrunc double %172 to float
  %174 = fcmp oge float %.112064, %173
  %175 = select i1 %174, float %.112064, float %173
  %176 = add nuw i64 %.816572063, 1
  %exitcond3150.not = icmp eq i64 %176, %135
  br i1 %exitcond3150.not, label %._crit_edge2067, label %171, !llvm.loop !24

._crit_edge2067:                                  ; preds = %171, %.._crit_edge2067_crit_edge
  %.pre-phi3329 = phi i64 [ %.pre3328, %.._crit_edge2067_crit_edge ], [ %170, %171 ]
  %.11.lcssa = phi float [ %.8.lcssa3344, %.._crit_edge2067_crit_edge ], [ %175, %171 ]
  %177 = getelementptr %struct.complex, ptr %4, i64 %29
  %178 = getelementptr i8, ptr %177, i64 -8
  %179 = getelementptr %struct.complex, ptr %178, i64 %.pre-phi3329
  %180 = load float, ptr %179, align 4, !tbaa !9
  %181 = fcmp oge float %180, 0.000000e+00
  %182 = fneg float %180
  %183 = select i1 %181, float %180, float %182
  %184 = fcmp oge float %.11.lcssa, %183
  %185 = select i1 %184, float %.11.lcssa, float %183
  %186 = load i64, ptr %3, align 8, !tbaa !5
  %.not1952.not2080 = icmp slt i64 %29, %186
  br i1 %.not1952.not2080, label %.lr.ph2084, label %.loopexit1984

.lr.ph2084:                                       ; preds = %._crit_edge2067
  %.not19532071 = icmp slt i64 %28, 2
  br label %187

187:                                              ; preds = %.lr.ph2084, %._crit_edge2076
  %.122082 = phi float [ %185, %.lr.ph2084 ], [ %.13.lcssa, %._crit_edge2076 ]
  %storemerge19512081 = phi i64 [ %29, %.lr.ph2084 ], [ %195, %._crit_edge2076 ]
  br i1 %.not19532071, label %._crit_edge2076, label %.lr.ph2075

.lr.ph2075:                                       ; preds = %187
  %188 = mul nsw i64 %storemerge19512081, %.01631
  %invariant.gep2078 = getelementptr %struct.complex, ptr %4, i64 %188
  br label %189

189:                                              ; preds = %.lr.ph2075, %189
  %.132073 = phi float [ %.122082, %.lr.ph2075 ], [ %193, %189 ]
  %.916582072 = phi i64 [ 0, %.lr.ph2075 ], [ %194, %189 ]
  %gep2079 = getelementptr %struct.complex, ptr %invariant.gep2078, i64 %.916582072
  %190 = tail call double @c_abs(ptr noundef %gep2079) #7
  %191 = fptrunc double %190 to float
  %192 = fcmp oge float %.132073, %191
  %193 = select i1 %192, float %.132073, float %191
  %194 = add nuw i64 %.916582072, 1
  %exitcond3151.not = icmp eq i64 %194, %29
  br i1 %exitcond3151.not, label %._crit_edge2076, label %189, !llvm.loop !25

._crit_edge2076:                                  ; preds = %189, %187
  %.13.lcssa = phi float [ %.122082, %187 ], [ %193, %189 ]
  %195 = add i64 %storemerge19512081, 1
  %exitcond3152.not = icmp eq i64 %195, %186
  br i1 %exitcond3152.not, label %.loopexit1984, label %187, !llvm.loop !26

196:                                              ; preds = %132
  %.pre3332 = add nsw i64 %29, -1
  br i1 %.not19492054, label %._crit_edge1999, label %.lr.ph1998

.lr.ph1998:                                       ; preds = %196
  %.not19471991 = icmp slt i64 %28, 2
  %197 = tail call i64 @llvm.smax.i64(i64 %29, i64 2)
  %198 = add nsw i64 %197, -2
  br label %199

199:                                              ; preds = %.lr.ph1998, %._crit_edge
  %.141996 = phi float [ 0.000000e+00, %.lr.ph1998 ], [ %.15.lcssa, %._crit_edge ]
  %storemerge19401995 = phi i64 [ 0, %.lr.ph1998 ], [ %207, %._crit_edge ]
  br i1 %.not19471991, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %199
  %200 = mul nsw i64 %storemerge19401995, %.01631
  %invariant.gep = getelementptr %struct.complex, ptr %4, i64 %200
  br label %201

201:                                              ; preds = %.lr.ph, %201
  %.151993 = phi float [ %.141996, %.lr.ph ], [ %205, %201 ]
  %.1016591992 = phi i64 [ 0, %.lr.ph ], [ %206, %201 ]
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %.1016591992
  %202 = tail call double @c_abs(ptr noundef %gep) #7
  %203 = fptrunc double %202 to float
  %204 = fcmp oge float %.151993, %203
  %205 = select i1 %204, float %.151993, float %203
  %206 = add nuw i64 %.1016591992, 1
  %exitcond.not = icmp eq i64 %206, %29
  br i1 %exitcond.not, label %._crit_edge, label %201, !llvm.loop !27

._crit_edge:                                      ; preds = %201, %199
  %.15.lcssa = phi float [ %.141996, %199 ], [ %205, %201 ]
  %207 = add nuw nsw i64 %storemerge19401995, 1
  %exitcond3143.not = icmp eq i64 %storemerge19401995, %198
  br i1 %exitcond3143.not, label %._crit_edge1999, label %199, !llvm.loop !28

._crit_edge1999:                                  ; preds = %._crit_edge, %196
  %.14.lcssa = phi float [ 0.000000e+00, %196 ], [ %.15.lcssa, %._crit_edge ]
  %208 = mul nsw i64 %.pre3332, %.01631
  %209 = getelementptr %struct.complex, ptr %4, i64 %208
  %210 = load float, ptr %209, align 4, !tbaa !9
  %211 = fcmp oge float %210, 0.000000e+00
  %212 = fneg float %210
  %213 = select i1 %211, float %210, float %212
  %214 = fcmp oge float %.14.lcssa, %213
  %215 = select i1 %214, float %.14.lcssa, float %213
  %.not1942.not2002 = icmp sgt i64 %28, 3
  br i1 %.not1942.not2002, label %.lr.ph2006, label %._crit_edge2007

.lr.ph2006:                                       ; preds = %._crit_edge1999, %.lr.ph2006
  %.162004 = phi float [ %219, %.lr.ph2006 ], [ %215, %._crit_edge1999 ]
  %.1116602003 = phi i64 [ %220, %.lr.ph2006 ], [ 1, %._crit_edge1999 ]
  %gep2010 = getelementptr %struct.complex, ptr %209, i64 %.1116602003
  %216 = tail call double @c_abs(ptr noundef %gep2010) #7
  %217 = fptrunc double %216 to float
  %218 = fcmp oge float %.162004, %217
  %219 = select i1 %218, float %.162004, float %217
  %220 = add nuw nsw i64 %.1116602003, 1
  %exitcond3144.not = icmp eq i64 %220, %29
  br i1 %exitcond3144.not, label %._crit_edge2007, label %.lr.ph2006, !llvm.loop !29

._crit_edge2007:                                  ; preds = %.lr.ph2006, %._crit_edge1999
  %.16.lcssa = phi float [ %215, %._crit_edge1999 ], [ %219, %.lr.ph2006 ]
  %221 = load i64, ptr %3, align 8, !tbaa !5
  %.not1944.not2029 = icmp slt i64 %29, %221
  br i1 %.not1944.not2029, label %.lr.ph2033, label %.loopexit1984

.lr.ph2033:                                       ; preds = %._crit_edge2007, %._crit_edge2025
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge2025 ], [ 0, %._crit_edge2007 ]
  %.172031 = phi float [ %.19.lcssa, %._crit_edge2025 ], [ %.16.lcssa, %._crit_edge2007 ]
  %storemerge19432030 = phi i64 [ %252, %._crit_edge2025 ], [ %29, %._crit_edge2007 ]
  %222 = sub i64 %29, %storemerge19432030
  %.not19452011 = icmp sgt i64 %222, -1
  %.pre3334 = mul nsw i64 %storemerge19432030, %.01631
  br i1 %.not19452011, label %._crit_edge2016, label %.lr.ph2015

.lr.ph2015:                                       ; preds = %.lr.ph2033
  %invariant.gep2018 = getelementptr %struct.complex, ptr %4, i64 %.pre3334
  br label %223

223:                                              ; preds = %.lr.ph2015, %223
  %.182013 = phi float [ %.172031, %.lr.ph2015 ], [ %227, %223 ]
  %.1216612012 = phi i64 [ 0, %.lr.ph2015 ], [ %228, %223 ]
  %gep2019 = getelementptr %struct.complex, ptr %invariant.gep2018, i64 %.1216612012
  %224 = tail call double @c_abs(ptr noundef %gep2019) #7
  %225 = fptrunc double %224 to float
  %226 = fcmp oge float %.182013, %225
  %227 = select i1 %226, float %.182013, float %225
  %228 = add nuw i64 %.1216612012, 1
  %exitcond3145.not = icmp eq i64 %228, %indvars.iv
  br i1 %exitcond3145.not, label %._crit_edge2016, label %223, !llvm.loop !30

._crit_edge2016:                                  ; preds = %223, %.lr.ph2033
  %.18.lcssa = phi float [ %.172031, %.lr.ph2033 ], [ %227, %223 ]
  %229 = sub nsw i64 %storemerge19432030, %29
  %230 = getelementptr %struct.complex, ptr %4, i64 %229
  %231 = getelementptr %struct.complex, ptr %230, i64 %.pre3334
  %232 = load float, ptr %231, align 4, !tbaa !9
  %233 = fcmp oge float %232, 0.000000e+00
  %234 = fneg float %232
  %235 = select i1 %233, float %232, float %234
  %236 = fcmp oge float %.18.lcssa, %235
  %237 = select i1 %236, float %.18.lcssa, float %235
  %238 = getelementptr i8, ptr %231, i64 8
  %239 = load float, ptr %238, align 4, !tbaa !9
  %240 = fcmp oge float %239, 0.000000e+00
  %241 = fneg float %239
  %242 = select i1 %240, float %239, float %241
  %243 = fcmp oge float %237, %242
  %244 = select i1 %243, float %237, float %242
  %245 = add nsw i64 %229, 2
  %.not19462020.not = icmp slt i64 %245, %29
  br i1 %.not19462020.not, label %.lr.ph2024, label %._crit_edge2025

.lr.ph2024:                                       ; preds = %._crit_edge2016
  %invariant.gep2027 = getelementptr %struct.complex, ptr %4, i64 %.pre3334
  br label %246

246:                                              ; preds = %.lr.ph2024, %246
  %.192022 = phi float [ %244, %.lr.ph2024 ], [ %250, %246 ]
  %.1316622021 = phi i64 [ %245, %.lr.ph2024 ], [ %251, %246 ]
  %gep2028 = getelementptr %struct.complex, ptr %invariant.gep2027, i64 %.1316622021
  %247 = tail call double @c_abs(ptr noundef %gep2028) #7
  %248 = fptrunc double %247 to float
  %249 = fcmp oge float %.192022, %248
  %250 = select i1 %249, float %.192022, float %248
  %251 = add nsw i64 %.1316622021, 1
  %.not1946.not = icmp slt i64 %.1316622021, %.pre3332
  br i1 %.not1946.not, label %246, label %._crit_edge2025, !llvm.loop !31

._crit_edge2025:                                  ; preds = %246, %._crit_edge2016
  %.19.lcssa = phi float [ %244, %._crit_edge2016 ], [ %250, %246 ]
  %252 = add i64 %storemerge19432030, 1
  %indvars.iv.next = add i64 %indvars.iv, 1
  %exitcond3146.not = icmp eq i64 %252, %221
  br i1 %exitcond3146.not, label %.loopexit1984, label %.lr.ph2033, !llvm.loop !32

253:                                              ; preds = %26
  br i1 %.not, label %254, label %369

254:                                              ; preds = %253
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %255, label %304

255:                                              ; preds = %254
  %256 = load float, ptr %4, align 4, !tbaa !9
  %257 = fcmp oge float %256, 0.000000e+00
  %258 = fneg float %256
  %259 = select i1 %257, float %256, float %258
  %260 = fcmp ole float %259, 0.000000e+00
  %261 = select i1 %260, float 0.000000e+00, float %259
  %262 = getelementptr inbounds i8, ptr %4, i64 8
  %263 = load float, ptr %262, align 4, !tbaa !9
  %264 = fcmp oge float %263, 0.000000e+00
  %265 = fneg float %263
  %266 = select i1 %264, float %263, float %265
  %267 = fcmp oge float %261, %266
  %268 = select i1 %267, float %261, float %266
  %.not19352323 = icmp slt i64 %27, 2
  br i1 %.not19352323, label %.loopexit1984, label %.lr.ph2327

.lr.ph2327:                                       ; preds = %255, %.lr.ph2327
  %.202325 = phi float [ %272, %.lr.ph2327 ], [ %268, %255 ]
  %.1416632324 = phi i64 [ %273, %.lr.ph2327 ], [ 2, %255 ]
  %gep2331 = getelementptr %struct.complex, ptr %4, i64 %.1416632324
  %269 = tail call double @c_abs(ptr noundef %gep2331) #7
  %270 = fptrunc double %269 to float
  %271 = fcmp oge float %.202325, %270
  %272 = select i1 %271, float %.202325, float %270
  %273 = add nuw i64 %.1416632324, 1
  %exitcond3185.not = icmp eq i64 %.1416632324, %27
  br i1 %exitcond3185.not, label %._crit_edge2328, label %.lr.ph2327, !llvm.loop !33

._crit_edge2328:                                  ; preds = %.lr.ph2327
  %.not1937.not2353 = icmp sgt i64 %28, 3
  br i1 %.not1937.not2353, label %.lr.ph2357, label %.loopexit1984

.lr.ph2357:                                       ; preds = %._crit_edge2328
  %274 = add i64 %.01631, 1
  %invariant.gep3461 = getelementptr i8, ptr %4, i64 8
  br label %.lr.ph2336

.lr.ph2336:                                       ; preds = %._crit_edge2346, %.lr.ph2357
  %.212355 = phi float [ %272, %.lr.ph2357 ], [ %.23.lcssa, %._crit_edge2346 ]
  %storemerge19362354 = phi i64 [ 1, %.lr.ph2357 ], [ %303, %._crit_edge2346 ]
  %275 = mul nsw i64 %storemerge19362354, %.01631
  %invariant.gep2339 = getelementptr %struct.complex, ptr %4, i64 %275
  br label %276

276:                                              ; preds = %.lr.ph2336, %276
  %.222334 = phi float [ %.212355, %.lr.ph2336 ], [ %280, %276 ]
  %.1516642333 = phi i64 [ 0, %.lr.ph2336 ], [ %281, %276 ]
  %gep2340 = getelementptr %struct.complex, ptr %invariant.gep2339, i64 %.1516642333
  %277 = tail call double @c_abs(ptr noundef %gep2340) #7
  %278 = fptrunc double %277 to float
  %279 = fcmp oge float %.222334, %278
  %280 = select i1 %279, float %.222334, float %278
  %281 = add nuw nsw i64 %.1516642333, 1
  %exitcond3186.not = icmp eq i64 %281, %storemerge19362354
  br i1 %exitcond3186.not, label %._crit_edge2337, label %276, !llvm.loop !34

._crit_edge2337:                                  ; preds = %276
  %gep3462 = getelementptr %struct.complex, ptr %invariant.gep3461, i64 %storemerge19362354
  %.phi.trans.insert3247 = getelementptr %struct.complex, ptr %gep3462, i64 %275
  %.pre3248 = load float, ptr %.phi.trans.insert3247, align 4, !tbaa !9
  %282 = mul i64 %storemerge19362354, %274
  %283 = getelementptr inbounds %struct.complex, ptr %4, i64 %282
  %284 = load float, ptr %283, align 4, !tbaa !9
  %285 = fcmp oge float %284, 0.000000e+00
  %286 = fneg float %284
  %287 = select i1 %285, float %284, float %286
  %288 = fcmp oge float %280, %287
  %289 = select i1 %288, float %280, float %287
  %290 = fcmp oge float %.pre3248, 0.000000e+00
  %291 = fneg float %.pre3248
  %292 = select i1 %290, float %.pre3248, float %291
  %293 = fcmp oge float %289, %292
  %294 = select i1 %293, float %289, float %292
  %295 = load i64, ptr %3, align 8, !tbaa !5
  %296 = add nuw nsw i64 %storemerge19362354, 2
  %.not19392341 = icmp sgt i64 %296, %295
  br i1 %.not19392341, label %._crit_edge2346, label %.lr.ph2345

.lr.ph2345:                                       ; preds = %._crit_edge2337
  %invariant.gep2348 = getelementptr %struct.complex, ptr %4, i64 %275
  br label %297

297:                                              ; preds = %.lr.ph2345, %297
  %.232343 = phi float [ %294, %.lr.ph2345 ], [ %301, %297 ]
  %.1616652342 = phi i64 [ %296, %.lr.ph2345 ], [ %302, %297 ]
  %gep2349 = getelementptr %struct.complex, ptr %invariant.gep2348, i64 %.1616652342
  %298 = tail call double @c_abs(ptr noundef %gep2349) #7
  %299 = fptrunc double %298 to float
  %300 = fcmp oge float %.232343, %299
  %301 = select i1 %300, float %.232343, float %299
  %302 = add nuw nsw i64 %.1616652342, 1
  %.not1939.not = icmp slt i64 %.1616652342, %295
  br i1 %.not1939.not, label %297, label %._crit_edge2346, !llvm.loop !35

._crit_edge2346:                                  ; preds = %297, %._crit_edge2337
  %.23.lcssa = phi float [ %294, %._crit_edge2337 ], [ %301, %297 ]
  %303 = add nuw nsw i64 %storemerge19362354, 1
  %exitcond3187.not = icmp eq i64 %303, %29
  br i1 %exitcond3187.not, label %.loopexit1984, label %.lr.ph2336, !llvm.loop !36

304:                                              ; preds = %254
  %.not19312304 = icmp slt i64 %27, 3
  br i1 %.not19312304, label %342, label %.lr.ph2308

.lr.ph2308:                                       ; preds = %304
  %305 = tail call i64 @llvm.smax.i64(i64 %29, i64 2)
  %306 = add nsw i64 %305, -1
  br label %307

307:                                              ; preds = %.lr.ph2308, %._crit_edge2298
  %indvars.iv3179 = phi i64 [ %29, %.lr.ph2308 ], [ %indvars.iv.next3180, %._crit_edge2298 ]
  %.242306 = phi float [ 0.000000e+00, %.lr.ph2308 ], [ %.26.lcssa, %._crit_edge2298 ]
  %storemerge19302305 = phi i64 [ 0, %.lr.ph2308 ], [ %341, %._crit_edge2298 ]
  %308 = add nsw i64 %storemerge19302305, -1
  %309 = add i64 %308, %29
  %.not19332284 = icmp slt i64 %309, 0
  %.pre3310 = mul nsw i64 %storemerge19302305, %.01631
  br i1 %.not19332284, label %._crit_edge2289, label %.lr.ph2288

.lr.ph2288:                                       ; preds = %307
  %invariant.gep2291 = getelementptr %struct.complex, ptr %4, i64 %.pre3310
  br label %310

310:                                              ; preds = %.lr.ph2288, %310
  %.252286 = phi float [ %.242306, %.lr.ph2288 ], [ %314, %310 ]
  %.1716662285 = phi i64 [ 0, %.lr.ph2288 ], [ %315, %310 ]
  %gep2292 = getelementptr %struct.complex, ptr %invariant.gep2291, i64 %.1716662285
  %311 = tail call double @c_abs(ptr noundef %gep2292) #7
  %312 = fptrunc double %311 to float
  %313 = fcmp oge float %.252286, %312
  %314 = select i1 %313, float %.252286, float %312
  %315 = add nuw i64 %.1716662285, 1
  %exitcond3181.not = icmp eq i64 %315, %indvars.iv3179
  br i1 %exitcond3181.not, label %._crit_edge2289, label %310, !llvm.loop !37

._crit_edge2289:                                  ; preds = %310, %307
  %.25.lcssa = phi float [ %.242306, %307 ], [ %314, %310 ]
  %316 = add nsw i64 %storemerge19302305, %29
  %317 = getelementptr %struct.complex, ptr %4, i64 %316
  %318 = getelementptr %struct.complex, ptr %317, i64 %.pre3310
  %319 = load float, ptr %318, align 4, !tbaa !9
  %320 = fcmp oge float %319, 0.000000e+00
  %321 = fneg float %319
  %322 = select i1 %320, float %319, float %321
  %323 = fcmp oge float %.25.lcssa, %322
  %324 = select i1 %323, float %.25.lcssa, float %322
  %325 = getelementptr %struct.complex, ptr %4, i64 %.pre3310
  %326 = getelementptr %struct.complex, ptr %325, i64 %316
  %327 = getelementptr i8, ptr %326, i64 8
  %328 = load float, ptr %327, align 4, !tbaa !9
  %329 = fcmp oge float %328, 0.000000e+00
  %330 = fneg float %328
  %331 = select i1 %329, float %328, float %330
  %332 = fcmp oge float %324, %331
  %333 = select i1 %332, float %324, float %331
  %334 = load i64, ptr %3, align 8, !tbaa !5
  %335 = add nsw i64 %316, 2
  %.not19342293 = icmp sgt i64 %335, %334
  br i1 %.not19342293, label %._crit_edge2298, label %.lr.ph2297

.lr.ph2297:                                       ; preds = %._crit_edge2289, %.lr.ph2297
  %.262295 = phi float [ %339, %.lr.ph2297 ], [ %333, %._crit_edge2289 ]
  %.1816672294 = phi i64 [ %340, %.lr.ph2297 ], [ %335, %._crit_edge2289 ]
  %gep2301 = getelementptr %struct.complex, ptr %325, i64 %.1816672294
  %336 = tail call double @c_abs(ptr noundef %gep2301) #7
  %337 = fptrunc double %336 to float
  %338 = fcmp oge float %.262295, %337
  %339 = select i1 %338, float %.262295, float %337
  %340 = add nsw i64 %.1816672294, 1
  %.not1934.not = icmp slt i64 %.1816672294, %334
  br i1 %.not1934.not, label %.lr.ph2297, label %._crit_edge2298, !llvm.loop !38

._crit_edge2298:                                  ; preds = %.lr.ph2297, %._crit_edge2289
  %.26.lcssa = phi float [ %333, %._crit_edge2289 ], [ %339, %.lr.ph2297 ]
  %341 = add nuw nsw i64 %storemerge19302305, 1
  %indvars.iv.next3180 = add i64 %indvars.iv3179, 1
  %exitcond3183.not = icmp eq i64 %341, %306
  br i1 %exitcond3183.not, label %._crit_edge2309, label %307, !llvm.loop !39

._crit_edge2309:                                  ; preds = %._crit_edge2298
  %.pre3243 = load i64, ptr %3, align 8, !tbaa !5
  br label %342

342:                                              ; preds = %._crit_edge2309, %304
  %343 = phi i64 [ %.pre3243, %._crit_edge2309 ], [ %27, %304 ]
  %344 = phi i64 [ %306, %._crit_edge2309 ], [ 0, %304 ]
  %.24.lcssa = phi float [ %.26.lcssa, %._crit_edge2309 ], [ 0.000000e+00, %304 ]
  %.not19322313 = icmp slt i64 %343, 2
  %.pre3308 = mul nsw i64 %344, %.01631
  br i1 %.not19322313, label %._crit_edge2318, label %.lr.ph2317

.lr.ph2317:                                       ; preds = %342
  %invariant.gep2321 = getelementptr %struct.complex, ptr %4, i64 %.pre3308
  %345 = add nsw i64 %343, -1
  br label %346

346:                                              ; preds = %.lr.ph2317, %346
  %.272315 = phi float [ %.24.lcssa, %.lr.ph2317 ], [ %350, %346 ]
  %.1916682314 = phi i64 [ 0, %.lr.ph2317 ], [ %351, %346 ]
  %gep2322 = getelementptr %struct.complex, ptr %invariant.gep2321, i64 %.1916682314
  %347 = tail call double @c_abs(ptr noundef %gep2322) #7
  %348 = fptrunc double %347 to float
  %349 = fcmp oge float %.272315, %348
  %350 = select i1 %349, float %.272315, float %348
  %351 = add nuw i64 %.1916682314, 1
  %exitcond3184.not = icmp eq i64 %351, %345
  br i1 %exitcond3184.not, label %._crit_edge2318.loopexit, label %346, !llvm.loop !40

._crit_edge2318.loopexit:                         ; preds = %346
  %.pre3244 = load i64, ptr %3, align 8, !tbaa !5
  br label %._crit_edge2318

._crit_edge2318:                                  ; preds = %342, %._crit_edge2318.loopexit
  %352 = phi i64 [ %.pre3244, %._crit_edge2318.loopexit ], [ %343, %342 ]
  %.191668.lcssa = phi i64 [ %345, %._crit_edge2318.loopexit ], [ 0, %342 ]
  %.27.lcssa = phi float [ %350, %._crit_edge2318.loopexit ], [ %.24.lcssa, %342 ]
  %353 = getelementptr %struct.complex, ptr %4, i64 %.191668.lcssa
  %354 = getelementptr %struct.complex, ptr %353, i64 %.pre3308
  %355 = load float, ptr %354, align 4, !tbaa !9
  %356 = fcmp oge float %355, 0.000000e+00
  %357 = fneg float %355
  %358 = select i1 %356, float %355, float %357
  %359 = fcmp oge float %.27.lcssa, %358
  %360 = select i1 %359, float %.27.lcssa, float %358
  %361 = getelementptr %struct.complex, ptr %4, i64 %352
  %362 = getelementptr %struct.complex, ptr %361, i64 %.pre3308
  %363 = load float, ptr %362, align 4, !tbaa !9
  %364 = fcmp oge float %363, 0.000000e+00
  %365 = fneg float %363
  %366 = select i1 %364, float %363, float %365
  %367 = fcmp oge float %360, %366
  %368 = select i1 %367, float %360, float %366
  br label %.loopexit1984

369:                                              ; preds = %253
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %370, label %.preheader1987

.preheader1987:                                   ; preds = %369
  %.not1913.not2167 = icmp sgt i64 %27, 0
  br i1 %.not1913.not2167, label %.lr.ph2170, label %._crit_edge2171

.lr.ph2170:                                       ; preds = %.preheader1987
  %.not19202158 = icmp slt i64 %28, 2
  %smax3165 = tail call i64 @llvm.smax.i64(i64 %29, i64 1)
  br label %439

370:                                              ; preds = %369
  %371 = load float, ptr %4, align 4, !tbaa !9
  %372 = fcmp oge float %371, 0.000000e+00
  %373 = fneg float %371
  %374 = select i1 %372, float %371, float %373
  %375 = fcmp ole float %374, 0.000000e+00
  %376 = select i1 %375, float 0.000000e+00, float %374
  %.not1921.not2219 = icmp sgt i64 %27, 2
  br i1 %.not1921.not2219, label %.lr.ph2223, label %.._crit_edge2261_crit_edge

.lr.ph2223:                                       ; preds = %370
  %smax3170 = tail call i64 @llvm.smax.i64(i64 %29, i64 2)
  br label %377

377:                                              ; preds = %.lr.ph2223, %377
  %.282221 = phi float [ %376, %.lr.ph2223 ], [ %381, %377 ]
  %.2016692220 = phi i64 [ 1, %.lr.ph2223 ], [ %382, %377 ]
  %gep2227 = getelementptr %struct.complex, ptr %4, i64 %.2016692220
  %378 = tail call double @c_abs(ptr noundef %gep2227) #7
  %379 = fptrunc double %378 to float
  %380 = fcmp oge float %.282221, %379
  %381 = select i1 %380, float %.282221, float %379
  %382 = add nuw nsw i64 %.2016692220, 1
  %exitcond3171.not = icmp eq i64 %382, %smax3170
  br i1 %exitcond3171.not, label %._crit_edge2224, label %377, !llvm.loop !41

._crit_edge2224:                                  ; preds = %377
  %.not1923.not2248 = icmp sgt i64 %28, 3
  br i1 %.not1923.not2248, label %.lr.ph2252, label %.._crit_edge2261_crit_edge

.lr.ph2252:                                       ; preds = %._crit_edge2224
  %383 = add i64 %.01631, 1
  %384 = add nsw i64 %29, -1
  %invariant.gep3459 = getelementptr i8, ptr %4, i64 -8
  br label %385

385:                                              ; preds = %.lr.ph2252, %._crit_edge2242
  %indvars.iv3172 = phi i64 [ 0, %.lr.ph2252 ], [ %indvars.iv.next3173, %._crit_edge2242 ]
  %.292250 = phi float [ %381, %.lr.ph2252 ], [ %.31.lcssa, %._crit_edge2242 ]
  %storemerge19222249 = phi i64 [ 1, %.lr.ph2252 ], [ %412, %._crit_edge2242 ]
  %.not19282228 = icmp ult i64 %storemerge19222249, 2
  %.pre3312 = mul nsw i64 %storemerge19222249, %.01631
  br i1 %.not19282228, label %._crit_edge2233, label %.lr.ph2232

.lr.ph2232:                                       ; preds = %385
  %invariant.gep2235 = getelementptr %struct.complex, ptr %4, i64 %.pre3312
  br label %386

386:                                              ; preds = %.lr.ph2232, %386
  %.302230 = phi float [ %.292250, %.lr.ph2232 ], [ %390, %386 ]
  %.2116702229 = phi i64 [ 0, %.lr.ph2232 ], [ %391, %386 ]
  %gep2236 = getelementptr %struct.complex, ptr %invariant.gep2235, i64 %.2116702229
  %387 = tail call double @c_abs(ptr noundef %gep2236) #7
  %388 = fptrunc double %387 to float
  %389 = fcmp oge float %.302230, %388
  %390 = select i1 %389, float %.302230, float %388
  %391 = add nuw nsw i64 %.2116702229, 1
  %exitcond3174.not = icmp eq i64 %391, %indvars.iv3172
  br i1 %exitcond3174.not, label %._crit_edge2233, label %386, !llvm.loop !42

._crit_edge2233:                                  ; preds = %386, %385
  %.30.lcssa = phi float [ %.292250, %385 ], [ %390, %386 ]
  %gep3460 = getelementptr %struct.complex, ptr %invariant.gep3459, i64 %storemerge19222249
  %392 = getelementptr %struct.complex, ptr %gep3460, i64 %.pre3312
  %393 = load float, ptr %392, align 4, !tbaa !9
  %394 = fcmp oge float %393, 0.000000e+00
  %395 = fneg float %393
  %396 = select i1 %394, float %393, float %395
  %397 = fcmp oge float %.30.lcssa, %396
  %398 = select i1 %397, float %.30.lcssa, float %396
  %399 = mul i64 %storemerge19222249, %383
  %400 = getelementptr inbounds %struct.complex, ptr %4, i64 %399
  %401 = load float, ptr %400, align 4, !tbaa !9
  %402 = fcmp oge float %401, 0.000000e+00
  %403 = fneg float %401
  %404 = select i1 %402, float %401, float %403
  %405 = fcmp oge float %398, %404
  %406 = select i1 %405, float %398, float %404
  %.not1929.not2237 = icmp slt i64 %storemerge19222249, %384
  br i1 %.not1929.not2237, label %.lr.ph2241, label %._crit_edge2242

.lr.ph2241:                                       ; preds = %._crit_edge2233
  %invariant.gep2244 = getelementptr %struct.complex, ptr %4, i64 %.pre3312
  br label %407

407:                                              ; preds = %.lr.ph2241, %407
  %.312239 = phi float [ %406, %.lr.ph2241 ], [ %411, %407 ]
  %.221671.in2238 = phi i64 [ %storemerge19222249, %.lr.ph2241 ], [ %.221671, %407 ]
  %.221671 = add nuw nsw i64 %.221671.in2238, 1
  %gep2245 = getelementptr %struct.complex, ptr %invariant.gep2244, i64 %.221671
  %408 = tail call double @c_abs(ptr noundef %gep2245) #7
  %409 = fptrunc double %408 to float
  %410 = fcmp oge float %.312239, %409
  %411 = select i1 %410, float %.312239, float %409
  %.not1929.not = icmp slt i64 %.221671, %384
  br i1 %.not1929.not, label %407, label %._crit_edge2242, !llvm.loop !43

._crit_edge2242:                                  ; preds = %407, %._crit_edge2233
  %.31.lcssa = phi float [ %406, %._crit_edge2233 ], [ %411, %407 ]
  %412 = add nuw nsw i64 %storemerge19222249, 1
  %indvars.iv.next3173 = add nuw nsw i64 %indvars.iv3172, 1
  %exitcond3175.not = icmp eq i64 %indvars.iv.next3173, %384
  br i1 %exitcond3175.not, label %.lr.ph2260, label %385, !llvm.loop !44

.._crit_edge2261_crit_edge:                       ; preds = %370, %._crit_edge2224
  %.29.lcssa3352 = phi float [ %381, %._crit_edge2224 ], [ %376, %370 ]
  %.pre3314 = mul nsw i64 %29, %.01631
  br label %._crit_edge2261

.lr.ph2260:                                       ; preds = %._crit_edge2242
  %413 = mul nsw i64 %29, %.01631
  %invariant.gep2263 = getelementptr %struct.complex, ptr %4, i64 %413
  %414 = add nsw i64 %29, -2
  br label %415

415:                                              ; preds = %.lr.ph2260, %415
  %.322258 = phi float [ %.31.lcssa, %.lr.ph2260 ], [ %419, %415 ]
  %.2316722257 = phi i64 [ 0, %.lr.ph2260 ], [ %420, %415 ]
  %gep2264 = getelementptr %struct.complex, ptr %invariant.gep2263, i64 %.2316722257
  %416 = tail call double @c_abs(ptr noundef %gep2264) #7
  %417 = fptrunc double %416 to float
  %418 = fcmp oge float %.322258, %417
  %419 = select i1 %418, float %.322258, float %417
  %420 = add nuw i64 %.2316722257, 1
  %exitcond3176.not = icmp eq i64 %.2316722257, %414
  br i1 %exitcond3176.not, label %._crit_edge2261, label %415, !llvm.loop !45

._crit_edge2261:                                  ; preds = %415, %.._crit_edge2261_crit_edge
  %.pre-phi3315 = phi i64 [ %.pre3314, %.._crit_edge2261_crit_edge ], [ %413, %415 ]
  %.32.lcssa = phi float [ %.29.lcssa3352, %.._crit_edge2261_crit_edge ], [ %419, %415 ]
  %421 = getelementptr %struct.complex, ptr %4, i64 %29
  %422 = getelementptr i8, ptr %421, i64 -8
  %423 = getelementptr %struct.complex, ptr %422, i64 %.pre-phi3315
  %424 = load float, ptr %423, align 4, !tbaa !9
  %425 = fcmp oge float %424, 0.000000e+00
  %426 = fneg float %424
  %427 = select i1 %425, float %424, float %426
  %428 = fcmp oge float %.32.lcssa, %427
  %429 = select i1 %428, float %.32.lcssa, float %427
  %430 = load i64, ptr %3, align 8, !tbaa !5
  %.not1926.not2277 = icmp slt i64 %29, %430
  br i1 %.not1926.not2277, label %.lr.ph2281, label %.loopexit1984

.lr.ph2281:                                       ; preds = %._crit_edge2261
  %.not19272265 = icmp slt i64 %28, 2
  br label %431

431:                                              ; preds = %.lr.ph2281, %._crit_edge2270
  %storemerge19252279.in = phi i64 [ %29, %.lr.ph2281 ], [ %storemerge19252279, %._crit_edge2270 ]
  %.332278 = phi float [ %429, %.lr.ph2281 ], [ %.34.lcssa, %._crit_edge2270 ]
  %storemerge19252279 = add i64 %storemerge19252279.in, 1
  br i1 %.not19272265, label %._crit_edge2270, label %.lr.ph2269

.lr.ph2269:                                       ; preds = %431
  %432 = mul nsw i64 %storemerge19252279, %.01631
  %invariant.gep2272 = getelementptr %struct.complex, ptr %4, i64 %432
  br label %433

433:                                              ; preds = %.lr.ph2269, %433
  %.342267 = phi float [ %.332278, %.lr.ph2269 ], [ %437, %433 ]
  %.2416732266 = phi i64 [ 0, %.lr.ph2269 ], [ %438, %433 ]
  %gep2273 = getelementptr %struct.complex, ptr %invariant.gep2272, i64 %.2416732266
  %434 = tail call double @c_abs(ptr noundef %gep2273) #7
  %435 = fptrunc double %434 to float
  %436 = fcmp oge float %.342267, %435
  %437 = select i1 %436, float %.342267, float %435
  %438 = add nuw i64 %.2416732266, 1
  %exitcond3177.not = icmp eq i64 %438, %29
  br i1 %exitcond3177.not, label %._crit_edge2270, label %433, !llvm.loop !46

._crit_edge2270:                                  ; preds = %433, %431
  %.34.lcssa = phi float [ %.332278, %431 ], [ %437, %433 ]
  %exitcond3178.not = icmp eq i64 %storemerge19252279, %430
  br i1 %exitcond3178.not, label %.loopexit1984, label %431, !llvm.loop !47

439:                                              ; preds = %.lr.ph2170, %._crit_edge2163
  %.352169 = phi float [ 0.000000e+00, %.lr.ph2170 ], [ %.36.lcssa, %._crit_edge2163 ]
  %storemerge19122168 = phi i64 [ 0, %.lr.ph2170 ], [ %447, %._crit_edge2163 ]
  br i1 %.not19202158, label %._crit_edge2163, label %.lr.ph2162

.lr.ph2162:                                       ; preds = %439
  %440 = mul nsw i64 %storemerge19122168, %.01631
  %invariant.gep2165 = getelementptr %struct.complex, ptr %4, i64 %440
  br label %441

441:                                              ; preds = %.lr.ph2162, %441
  %.362160 = phi float [ %.352169, %.lr.ph2162 ], [ %445, %441 ]
  %.2516742159 = phi i64 [ 0, %.lr.ph2162 ], [ %446, %441 ]
  %gep2166 = getelementptr %struct.complex, ptr %invariant.gep2165, i64 %.2516742159
  %442 = tail call double @c_abs(ptr noundef %gep2166) #7
  %443 = fptrunc double %442 to float
  %444 = fcmp oge float %.362160, %443
  %445 = select i1 %444, float %.362160, float %443
  %446 = add nuw i64 %.2516742159, 1
  %exitcond3164.not = icmp eq i64 %446, %29
  br i1 %exitcond3164.not, label %._crit_edge2163, label %441, !llvm.loop !48

._crit_edge2163:                                  ; preds = %441, %439
  %.36.lcssa = phi float [ %.352169, %439 ], [ %445, %441 ]
  %447 = add nuw nsw i64 %storemerge19122168, 1
  %exitcond3166.not = icmp eq i64 %447, %smax3165
  br i1 %exitcond3166.not, label %._crit_edge2171, label %439, !llvm.loop !49

._crit_edge2171:                                  ; preds = %._crit_edge2163, %.preheader1987
  %.35.lcssa = phi float [ 0.000000e+00, %.preheader1987 ], [ %.36.lcssa, %._crit_edge2163 ]
  %448 = mul nsw i64 %29, %.01631
  %449 = getelementptr %struct.complex, ptr %4, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !9
  %451 = fcmp oge float %450, 0.000000e+00
  %452 = fneg float %450
  %453 = select i1 %451, float %450, float %452
  %454 = fcmp oge float %.35.lcssa, %453
  %455 = select i1 %454, float %.35.lcssa, float %453
  %.not1914.not2174 = icmp sgt i64 %28, 3
  br i1 %.not1914.not2174, label %.lr.ph2178, label %._crit_edge2179

.lr.ph2178:                                       ; preds = %._crit_edge2171, %.lr.ph2178
  %.372176 = phi float [ %459, %.lr.ph2178 ], [ %455, %._crit_edge2171 ]
  %.2616752175 = phi i64 [ %460, %.lr.ph2178 ], [ 1, %._crit_edge2171 ]
  %gep2182 = getelementptr %struct.complex, ptr %449, i64 %.2616752175
  %456 = tail call double @c_abs(ptr noundef %gep2182) #7
  %457 = fptrunc double %456 to float
  %458 = fcmp oge float %.372176, %457
  %459 = select i1 %458, float %.372176, float %457
  %460 = add nuw nsw i64 %.2616752175, 1
  %exitcond3167.not = icmp eq i64 %460, %29
  br i1 %exitcond3167.not, label %._crit_edge2179, label %.lr.ph2178, !llvm.loop !50

._crit_edge2179:                                  ; preds = %.lr.ph2178, %._crit_edge2171
  %.37.lcssa = phi float [ %455, %._crit_edge2171 ], [ %459, %.lr.ph2178 ]
  %461 = load i64, ptr %3, align 8, !tbaa !5
  %462 = add nsw i64 %461, -1
  %.not1916.not2202 = icmp slt i64 %29, %462
  br i1 %.not1916.not2202, label %.lr.ph2206, label %495

.lr.ph2206:                                       ; preds = %._crit_edge2179
  %463 = xor i64 %29, -1
  %464 = add nsw i64 %29, -1
  %invariant.gep3457 = getelementptr %struct.complex, ptr %4, i64 %463
  br label %465

.loopexit1986:                                    ; preds = %490, %._crit_edge2188
  %.40.lcssa = phi float [ %489, %._crit_edge2188 ], [ %494, %490 ]
  %.not1916.not = icmp slt i64 %storemerge1915.in2209, %462
  br i1 %.not1916.not, label %465, label %._crit_edge2207, !llvm.loop !51

465:                                              ; preds = %.lr.ph2206, %.loopexit1986
  %storemerge1915.in2209.in = phi i64 [ %29, %.lr.ph2206 ], [ %storemerge1915.in2209, %.loopexit1986 ]
  %.382203 = phi float [ %.37.lcssa, %.lr.ph2206 ], [ %.40.lcssa, %.loopexit1986 ]
  %storemerge1915.in2209 = add nsw i64 %storemerge1915.in2209.in, 1
  %466 = sub i64 %29, %storemerge1915.in2209.in
  %.not19182183 = icmp sgt i64 %466, -1
  %.pre3316 = mul nsw i64 %storemerge1915.in2209, %.01631
  br i1 %.not19182183, label %._crit_edge2188, label %.lr.ph2187

.lr.ph2187:                                       ; preds = %465
  %invariant.gep2190 = getelementptr %struct.complex, ptr %4, i64 %.pre3316
  %467 = sub i64 %storemerge1915.in2209.in, %29
  br label %468

468:                                              ; preds = %.lr.ph2187, %468
  %.392185 = phi float [ %.382203, %.lr.ph2187 ], [ %472, %468 ]
  %.2716762184 = phi i64 [ 0, %.lr.ph2187 ], [ %473, %468 ]
  %gep2191 = getelementptr %struct.complex, ptr %invariant.gep2190, i64 %.2716762184
  %469 = tail call double @c_abs(ptr noundef %gep2191) #7
  %470 = fptrunc double %469 to float
  %471 = fcmp oge float %.392185, %470
  %472 = select i1 %471, float %.392185, float %470
  %473 = add nuw i64 %.2716762184, 1
  %exitcond3168.not = icmp eq i64 %473, %467
  br i1 %exitcond3168.not, label %._crit_edge2188, label %468, !llvm.loop !52

._crit_edge2188:                                  ; preds = %468, %465
  %.39.lcssa = phi float [ %.382203, %465 ], [ %472, %468 ]
  %gep3458 = getelementptr %struct.complex, ptr %invariant.gep3457, i64 %storemerge1915.in2209
  %474 = getelementptr %struct.complex, ptr %gep3458, i64 %.pre3316
  %475 = load float, ptr %474, align 4, !tbaa !9
  %476 = fcmp oge float %475, 0.000000e+00
  %477 = fneg float %475
  %478 = select i1 %476, float %475, float %477
  %479 = fcmp oge float %.39.lcssa, %478
  %480 = select i1 %479, float %.39.lcssa, float %478
  %481 = sub nsw i64 %storemerge1915.in2209, %29
  %482 = getelementptr %struct.complex, ptr %4, i64 %481
  %483 = getelementptr %struct.complex, ptr %482, i64 %.pre3316
  %484 = load float, ptr %483, align 4, !tbaa !9
  %485 = fcmp oge float %484, 0.000000e+00
  %486 = fneg float %484
  %487 = select i1 %485, float %484, float %486
  %488 = fcmp oge float %480, %487
  %489 = select i1 %488, float %480, float %487
  %.not1919.not2192 = icmp slt i64 %481, %464
  br i1 %.not1919.not2192, label %.lr.ph2196, label %.loopexit1986

.lr.ph2196:                                       ; preds = %._crit_edge2188
  %invariant.gep2198 = getelementptr %struct.complex, ptr %4, i64 %.pre3316
  br label %490

490:                                              ; preds = %.lr.ph2196, %490
  %.402194 = phi float [ %489, %.lr.ph2196 ], [ %494, %490 ]
  %.281677.in2193 = phi i64 [ %481, %.lr.ph2196 ], [ %.281677, %490 ]
  %.281677 = add nsw i64 %.281677.in2193, 1
  %gep2199 = getelementptr %struct.complex, ptr %invariant.gep2198, i64 %.281677
  %491 = tail call double @c_abs(ptr noundef %gep2199) #7
  %492 = fptrunc double %491 to float
  %493 = fcmp oge float %.402194, %492
  %494 = select i1 %493, float %.402194, float %492
  %.not1919.not = icmp slt i64 %.281677, %464
  br i1 %.not1919.not, label %490, label %.loopexit1986, !llvm.loop !53

._crit_edge2207:                                  ; preds = %.loopexit1986
  %.pre3242 = load i64, ptr %3, align 8, !tbaa !5
  br label %495

495:                                              ; preds = %._crit_edge2207, %._crit_edge2179
  %496 = phi i64 [ %.pre3242, %._crit_edge2207 ], [ %461, %._crit_edge2179 ]
  %.38.lcssa = phi float [ %.40.lcssa, %._crit_edge2207 ], [ %.37.lcssa, %._crit_edge2179 ]
  %.not19172210 = icmp slt i64 %28, 4
  %.pre3318 = mul nsw i64 %496, %.01631
  br i1 %.not19172210, label %._crit_edge2215, label %.lr.ph2214

.lr.ph2214:                                       ; preds = %495
  %invariant.gep2217 = getelementptr %struct.complex, ptr %4, i64 %.pre3318
  %497 = add nsw i64 %29, -2
  br label %498

498:                                              ; preds = %.lr.ph2214, %498
  %.412212 = phi float [ %.38.lcssa, %.lr.ph2214 ], [ %502, %498 ]
  %.2916782211 = phi i64 [ 0, %.lr.ph2214 ], [ %503, %498 ]
  %gep2218 = getelementptr %struct.complex, ptr %invariant.gep2217, i64 %.2916782211
  %499 = tail call double @c_abs(ptr noundef %gep2218) #7
  %500 = fptrunc double %499 to float
  %501 = fcmp oge float %.412212, %500
  %502 = select i1 %501, float %.412212, float %500
  %503 = add nuw i64 %.2916782211, 1
  %exitcond3169.not = icmp eq i64 %.2916782211, %497
  br i1 %exitcond3169.not, label %._crit_edge2215, label %498, !llvm.loop !54

._crit_edge2215:                                  ; preds = %498, %495
  %.41.lcssa = phi float [ %.38.lcssa, %495 ], [ %502, %498 ]
  %504 = getelementptr %struct.complex, ptr %4, i64 %29
  %505 = getelementptr i8, ptr %504, i64 -8
  %506 = getelementptr %struct.complex, ptr %505, i64 %.pre3318
  %507 = load float, ptr %506, align 4, !tbaa !9
  %508 = fcmp oge float %507, 0.000000e+00
  %509 = fneg float %507
  %510 = select i1 %508, float %507, float %509
  %511 = fcmp oge float %.41.lcssa, %510
  %512 = select i1 %511, float %.41.lcssa, float %510
  br label %.loopexit1984

513:                                              ; preds = %24
  %514 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #7
  %.not1799 = icmp eq i64 %514, 0
  br i1 %.not1799, label %515, label %520

515:                                              ; preds = %513
  %516 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #7
  %.not1800 = icmp eq i64 %516, 0
  br i1 %.not1800, label %517, label %520

517:                                              ; preds = %515
  %518 = load i8, ptr %0, align 1, !tbaa !55
  %519 = icmp eq i8 %518, 49
  br i1 %519, label %520, label %1102

520:                                              ; preds = %517, %515, %513
  %521 = load i64, ptr %3, align 8, !tbaa !5
  %522 = sdiv i64 %521, 2
  %.not1892 = icmp eq i64 %15, 0
  br i1 %.not, label %523, label %725

523:                                              ; preds = %520
  br i1 %.not1892, label %630, label %524

524:                                              ; preds = %523
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %575, label %.preheader1970

.preheader1970:                                   ; preds = %524
  %.not1906.not2874 = icmp sgt i64 %521, 1
  br i1 %.not1906.not2874, label %.preheader1969.thread, label %.preheader1969

.preheader1969.thread:                            ; preds = %.preheader1970
  %525 = shl nuw i64 %522, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %5, i8 0, i64 %525, i1 false), !tbaa !56
  br label %.lr.ph2906

.preheader1969:                                   ; preds = %.preheader1970
  %.not19082904 = icmp slt i64 %521, -1
  br i1 %.not19082904, label %._crit_edge2907, label %.lr.ph2906

.lr.ph2906:                                       ; preds = %.preheader1969.thread, %.preheader1969
  %526 = shl nsw i64 %522, 1
  %527 = add nsw i64 %522, -1
  br label %528

528:                                              ; preds = %.lr.ph2906, %._crit_edge2894
  %indvars.iv3228 = phi i64 [ %522, %.lr.ph2906 ], [ %indvars.iv.next3229, %._crit_edge2894 ]
  %storemerge19072905 = phi i64 [ 0, %.lr.ph2906 ], [ %570, %._crit_edge2894 ]
  %529 = add nsw i64 %storemerge19072905, -1
  %530 = add i64 %529, %522
  %.not19092878 = icmp slt i64 %530, 0
  %.pre3292 = mul nsw i64 %storemerge19072905, %.01631
  br i1 %.not19092878, label %._crit_edge2882, label %.lr.ph2881

.lr.ph2881:                                       ; preds = %528
  %invariant.gep2884 = getelementptr %struct.complex, ptr %4, i64 %.pre3292
  br label %531

531:                                              ; preds = %.lr.ph2881, %531
  %.3116802879 = phi i64 [ 0, %.lr.ph2881 ], [ %539, %531 ]
  %532 = phi float [ 0.000000e+00, %.lr.ph2881 ], [ %535, %531 ]
  %gep2885 = getelementptr %struct.complex, ptr %invariant.gep2884, i64 %.3116802879
  %533 = tail call double @c_abs(ptr noundef %gep2885) #7
  %534 = fptrunc double %533 to float
  %535 = fadd float %532, %534
  %536 = getelementptr inbounds float, ptr %5, i64 %.3116802879
  %537 = load float, ptr %536, align 4, !tbaa !56
  %538 = fadd float %537, %534
  store float %538, ptr %536, align 4, !tbaa !56
  %539 = add nuw i64 %.3116802879, 1
  %exitcond3230.not = icmp eq i64 %539, %indvars.iv3228
  br i1 %exitcond3230.not, label %._crit_edge2882, label %531, !llvm.loop !57

._crit_edge2882:                                  ; preds = %531, %528
  %.lcssa28982902 = phi float [ 0.000000e+00, %528 ], [ %535, %531 ]
  %.311680.lcssa = phi i64 [ 0, %528 ], [ %indvars.iv3228, %531 ]
  %540 = getelementptr %struct.complex, ptr %4, i64 %.pre3292
  %541 = getelementptr %struct.complex, ptr %540, i64 %.311680.lcssa
  %542 = load float, ptr %541, align 4, !tbaa !9
  %543 = fcmp oge float %542, 0.000000e+00
  %544 = fneg float %542
  %545 = select i1 %543, float %542, float %544
  %546 = fadd float %.lcssa28982902, %545
  %547 = getelementptr float, ptr %5, i64 %storemerge19072905
  %548 = getelementptr float, ptr %547, i64 %522
  store float %546, ptr %548, align 4, !tbaa !56
  %549 = icmp eq i64 %.311680.lcssa, %526
  br i1 %549, label %._crit_edge2907, label %550

550:                                              ; preds = %._crit_edge2882
  %551 = add nuw nsw i64 %.311680.lcssa, 1
  %552 = getelementptr %struct.complex, ptr %4, i64 %.pre3292
  %553 = getelementptr %struct.complex, ptr %552, i64 %551
  %554 = load float, ptr %553, align 4, !tbaa !9
  %555 = fcmp oge float %554, 0.000000e+00
  %556 = fneg float %554
  %557 = select i1 %555, float %554, float %556
  %558 = load float, ptr %547, align 4, !tbaa !56
  %559 = fadd float %558, %557
  store float %559, ptr %547, align 4, !tbaa !56
  %.not1910.not2889 = icmp slt i64 %storemerge19072905, %527
  br i1 %.not1910.not2889, label %.lr.ph2893, label %._crit_edge2894

.lr.ph2893:                                       ; preds = %550, %.lr.ph2893
  %.01633.in2891 = phi i64 [ %.01633, %.lr.ph2893 ], [ %storemerge19072905, %550 ]
  %.3216812890 = phi i64 [ %561, %.lr.ph2893 ], [ %551, %550 ]
  %560 = phi float [ %564, %.lr.ph2893 ], [ 0.000000e+00, %550 ]
  %.01633 = add nuw nsw i64 %.01633.in2891, 1
  %561 = add nuw nsw i64 %.3216812890, 1
  %gep2896 = getelementptr %struct.complex, ptr %552, i64 %561
  %562 = tail call double @c_abs(ptr noundef %gep2896) #7
  %563 = fptrunc double %562 to float
  %564 = fadd float %560, %563
  %565 = getelementptr inbounds float, ptr %5, i64 %.01633
  %566 = load float, ptr %565, align 4, !tbaa !56
  %567 = fadd float %566, %563
  store float %567, ptr %565, align 4, !tbaa !56
  %.not1910.not = icmp slt i64 %.01633, %527
  br i1 %.not1910.not, label %.lr.ph2893, label %._crit_edge2894.loopexit, !llvm.loop !58

._crit_edge2894.loopexit:                         ; preds = %.lr.ph2893
  %.pre3274 = load float, ptr %547, align 4, !tbaa !56
  br label %._crit_edge2894

._crit_edge2894:                                  ; preds = %._crit_edge2894.loopexit, %550
  %568 = phi float [ %559, %550 ], [ %.pre3274, %._crit_edge2894.loopexit ]
  %.lcssa28982901 = phi float [ 0.000000e+00, %550 ], [ %564, %._crit_edge2894.loopexit ]
  %569 = fadd float %.lcssa28982901, %568
  store float %569, ptr %547, align 4, !tbaa !56
  %570 = add nuw nsw i64 %storemerge19072905, 1
  %indvars.iv.next3229 = add i64 %indvars.iv3228, 1
  %exitcond3231.not = icmp eq i64 %storemerge19072905, %522
  br i1 %exitcond3231.not, label %._crit_edge2907, label %528, !llvm.loop !59

._crit_edge2907:                                  ; preds = %._crit_edge2882, %._crit_edge2894, %.preheader1969
  %571 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #7
  %572 = getelementptr float, ptr %5, i64 %571
  %573 = getelementptr i8, ptr %572, i64 -4
  %574 = load float, ptr %573, align 4, !tbaa !56
  br label %.loopexit1984

575:                                              ; preds = %524
  %576 = add nsw i64 %522, 1
  %.not1902.not2913 = icmp slt i64 %576, %521
  br i1 %.not1902.not2913, label %.lr.ph2916.preheader, label %thread-pre-split

.lr.ph2916.preheader:                             ; preds = %575
  %577 = shl nuw i64 %522, 2
  %578 = getelementptr i8, ptr %5, i64 %577
  %scevgep3232 = getelementptr i8, ptr %578, i64 4
  %579 = xor i64 %522, -1
  %580 = add i64 %521, %579
  %581 = shl nuw i64 %580, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep3232, i8 0, i64 %581, i1 false), !tbaa !56
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %.lr.ph2916.preheader, %575
  %582 = icmp sgt i64 %521, -2
  br i1 %582, label %.lr.ph2948, label %._crit_edge2949

.lr.ph2948:                                       ; preds = %thread-pre-split
  %invariant.gep2926 = getelementptr float, ptr %5, i64 %576
  br label %583

583:                                              ; preds = %.lr.ph2948, %._crit_edge2936
  %indvars.iv3233.in = phi i64 [ %522, %.lr.ph2948 ], [ %indvars.iv3233, %._crit_edge2936 ]
  %storemerge19032947 = phi i64 [ %522, %.lr.ph2948 ], [ %storemerge1903, %._crit_edge2936 ]
  %storemerge1903.in2946 = phi i64 [ %576, %.lr.ph2948 ], [ %storemerge19032947, %._crit_edge2936 ]
  %indvars.iv3233 = add nsw i64 %indvars.iv3233.in, -1
  %.not19042918 = icmp slt i64 %storemerge1903.in2946, 3
  br i1 %.not19042918, label %._crit_edge2922, label %.lr.ph2921

.lr.ph2921:                                       ; preds = %583
  %584 = mul nsw i64 %storemerge19032947, %.01631
  %invariant.gep2924 = getelementptr %struct.complex, ptr %4, i64 %584
  br label %585

585:                                              ; preds = %.lr.ph2921, %585
  %.3416832919 = phi i64 [ 0, %.lr.ph2921 ], [ %592, %585 ]
  %586 = phi float [ 0.000000e+00, %.lr.ph2921 ], [ %589, %585 ]
  %gep2925 = getelementptr %struct.complex, ptr %invariant.gep2924, i64 %.3416832919
  %587 = tail call double @c_abs(ptr noundef %gep2925) #7
  %588 = fptrunc double %587 to float
  %589 = fadd float %586, %588
  %gep2927 = getelementptr float, ptr %invariant.gep2926, i64 %.3416832919
  %590 = load float, ptr %gep2927, align 4, !tbaa !56
  %591 = fadd float %590, %588
  store float %591, ptr %gep2927, align 4, !tbaa !56
  %592 = add nuw i64 %.3416832919, 1
  %exitcond3235.not = icmp eq i64 %592, %indvars.iv3233
  br i1 %exitcond3235.not, label %._crit_edge2922, label %585, !llvm.loop !60

._crit_edge2922:                                  ; preds = %585, %583
  %.lcssa29402944 = phi float [ 0.000000e+00, %583 ], [ %589, %585 ]
  %.341683.lcssa = phi i64 [ 0, %583 ], [ %indvars.iv3233, %585 ]
  %593 = icmp sgt i64 %storemerge19032947, 0
  %594 = mul nsw i64 %storemerge19032947, %.01631
  br i1 %593, label %595, label %._crit_edge2922._crit_edge

595:                                              ; preds = %._crit_edge2922
  %596 = getelementptr %struct.complex, ptr %4, i64 %.341683.lcssa
  %597 = getelementptr %struct.complex, ptr %596, i64 %594
  %598 = load float, ptr %597, align 4, !tbaa !9
  %599 = fcmp oge float %598, 0.000000e+00
  %600 = fneg float %598
  %601 = select i1 %599, float %598, float %600
  %602 = fadd float %.lcssa29402944, %601
  %gep2952 = getelementptr float, ptr %invariant.gep2926, i64 %.341683.lcssa
  %603 = load float, ptr %gep2952, align 4, !tbaa !56
  %604 = fadd float %602, %603
  store float %604, ptr %gep2952, align 4, !tbaa !56
  %605 = add nuw nsw i64 %.341683.lcssa, 1
  br label %._crit_edge2922._crit_edge

._crit_edge2922._crit_edge:                       ; preds = %._crit_edge2922, %595
  %.351684 = phi i64 [ %605, %595 ], [ %.341683.lcssa, %._crit_edge2922 ]
  %606 = getelementptr %struct.complex, ptr %4, i64 %.351684
  %607 = getelementptr %struct.complex, ptr %606, i64 %594
  %608 = load float, ptr %607, align 4, !tbaa !9
  %609 = fcmp oge float %608, 0.000000e+00
  %610 = fneg float %608
  %611 = select i1 %609, float %608, float %610
  %612 = getelementptr inbounds float, ptr %5, i64 %storemerge19032947
  store float %611, ptr %612, align 4, !tbaa !56
  %613 = load i64, ptr %3, align 8, !tbaa !5
  %614 = add nsw i64 %613, -1
  %.not1905.not2931 = icmp slt i64 %storemerge19032947, %614
  br i1 %.not1905.not2931, label %.lr.ph2935, label %._crit_edge2936

.lr.ph2935:                                       ; preds = %._crit_edge2922._crit_edge
  %invariant.gep2937 = getelementptr %struct.complex, ptr %4, i64 %594
  br label %615

615:                                              ; preds = %.lr.ph2935, %615
  %.11634.in2933 = phi i64 [ %storemerge19032947, %.lr.ph2935 ], [ %.11634, %615 ]
  %.3616852932 = phi i64 [ %.351684, %.lr.ph2935 ], [ %617, %615 ]
  %616 = phi float [ 0.000000e+00, %.lr.ph2935 ], [ %620, %615 ]
  %.11634 = add nsw i64 %.11634.in2933, 1
  %617 = add nsw i64 %.3616852932, 1
  %gep2938 = getelementptr %struct.complex, ptr %invariant.gep2937, i64 %617
  %618 = tail call double @c_abs(ptr noundef %gep2938) #7
  %619 = fptrunc double %618 to float
  %620 = fadd float %616, %619
  %621 = getelementptr inbounds float, ptr %5, i64 %.11634
  %622 = load float, ptr %621, align 4, !tbaa !56
  %623 = fadd float %622, %619
  store float %623, ptr %621, align 4, !tbaa !56
  %.not1905.not = icmp slt i64 %.11634, %614
  br i1 %.not1905.not, label %615, label %._crit_edge2936.loopexit, !llvm.loop !61

._crit_edge2936.loopexit:                         ; preds = %615
  %.pre3275 = load float, ptr %612, align 4, !tbaa !56
  br label %._crit_edge2936

._crit_edge2936:                                  ; preds = %._crit_edge2936.loopexit, %._crit_edge2922._crit_edge
  %624 = phi float [ %611, %._crit_edge2922._crit_edge ], [ %.pre3275, %._crit_edge2936.loopexit ]
  %.lcssa29402943 = phi float [ 0.000000e+00, %._crit_edge2922._crit_edge ], [ %620, %._crit_edge2936.loopexit ]
  %625 = fadd float %.lcssa29402943, %624
  store float %625, ptr %612, align 4, !tbaa !56
  %storemerge1903 = add nsw i64 %storemerge19032947, -1
  br i1 %593, label %583, label %._crit_edge2949, !llvm.loop !62

._crit_edge2949:                                  ; preds = %._crit_edge2936, %thread-pre-split
  %626 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #7
  %627 = getelementptr float, ptr %5, i64 %626
  %628 = getelementptr i8, ptr %627, i64 -4
  %629 = load float, ptr %628, align 4, !tbaa !56
  br label %.loopexit1984

630:                                              ; preds = %523
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %.preheader, label %.preheader1968

.preheader1968:                                   ; preds = %630
  %.not1897.not2953 = icmp sgt i64 %521, 1
  br i1 %.not1897.not2953, label %.lr.ph2986, label %.preheader1967

.preheader:                                       ; preds = %630
  %.not1893.not2990 = icmp sgt i64 %521, 0
  br i1 %.not1893.not2990, label %thread-pre-split1966, label %thread-pre-split1966.thread

.lr.ph2986:                                       ; preds = %.preheader1968
  %631 = shl nuw i64 %522, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %5, i8 0, i64 %631, i1 false), !tbaa !56
  %632 = add nsw i64 %522, -1
  br label %633

633:                                              ; preds = %.lr.ph2986, %._crit_edge2973
  %indvars.iv3236 = phi i64 [ %522, %.lr.ph2986 ], [ %indvars.iv.next3237, %._crit_edge2973 ]
  %storemerge18982985 = phi i64 [ 0, %.lr.ph2986 ], [ %672, %._crit_edge2973 ]
  %634 = add nsw i64 %storemerge18982985, -1
  %635 = add i64 %634, %522
  %.not19002957 = icmp slt i64 %635, 0
  %.pre3288 = mul nsw i64 %storemerge18982985, %.01631
  br i1 %.not19002957, label %._crit_edge2961, label %.lr.ph2960

.lr.ph2960:                                       ; preds = %633
  %invariant.gep2963 = getelementptr %struct.complex, ptr %4, i64 %.pre3288
  br label %636

636:                                              ; preds = %.lr.ph2960, %636
  %.3816872958 = phi i64 [ 0, %.lr.ph2960 ], [ %644, %636 ]
  %637 = phi float [ 0.000000e+00, %.lr.ph2960 ], [ %640, %636 ]
  %gep2964 = getelementptr %struct.complex, ptr %invariant.gep2963, i64 %.3816872958
  %638 = tail call double @c_abs(ptr noundef %gep2964) #7
  %639 = fptrunc double %638 to float
  %640 = fadd float %637, %639
  %641 = getelementptr inbounds float, ptr %5, i64 %.3816872958
  %642 = load float, ptr %641, align 4, !tbaa !56
  %643 = fadd float %642, %639
  store float %643, ptr %641, align 4, !tbaa !56
  %644 = add nuw i64 %.3816872958, 1
  %exitcond3238.not = icmp eq i64 %644, %indvars.iv3236
  br i1 %exitcond3238.not, label %._crit_edge2961, label %636, !llvm.loop !63

._crit_edge2961:                                  ; preds = %636, %633
  %.lcssa29772980 = phi float [ 0.000000e+00, %633 ], [ %640, %636 ]
  %.381687.lcssa = phi i64 [ 0, %633 ], [ %indvars.iv3236, %636 ]
  %645 = getelementptr %struct.complex, ptr %4, i64 %.pre3288
  %646 = getelementptr %struct.complex, ptr %645, i64 %.381687.lcssa
  %647 = load float, ptr %646, align 4, !tbaa !9
  %648 = fcmp oge float %647, 0.000000e+00
  %649 = fneg float %647
  %650 = select i1 %648, float %647, float %649
  %651 = fadd float %.lcssa29772980, %650
  %652 = getelementptr float, ptr %5, i64 %storemerge18982985
  %653 = getelementptr float, ptr %652, i64 %522
  store float %651, ptr %653, align 4, !tbaa !56
  %654 = add nuw nsw i64 %.381687.lcssa, 1
  %655 = getelementptr %struct.complex, ptr %645, i64 %654
  %656 = load float, ptr %655, align 4, !tbaa !9
  %657 = fcmp oge float %656, 0.000000e+00
  %658 = fneg float %656
  %659 = select i1 %657, float %656, float %658
  %660 = load float, ptr %652, align 4, !tbaa !56
  %661 = fadd float %660, %659
  store float %661, ptr %652, align 4, !tbaa !56
  %.not1901.not2968 = icmp slt i64 %storemerge18982985, %632
  br i1 %.not1901.not2968, label %.lr.ph2972, label %._crit_edge2973

.lr.ph2972:                                       ; preds = %._crit_edge2961, %.lr.ph2972
  %.21635.in2970 = phi i64 [ %.21635, %.lr.ph2972 ], [ %storemerge18982985, %._crit_edge2961 ]
  %.3916882969 = phi i64 [ %663, %.lr.ph2972 ], [ %654, %._crit_edge2961 ]
  %662 = phi float [ %666, %.lr.ph2972 ], [ 0.000000e+00, %._crit_edge2961 ]
  %.21635 = add nuw nsw i64 %.21635.in2970, 1
  %663 = add nuw nsw i64 %.3916882969, 1
  %gep2975 = getelementptr %struct.complex, ptr %645, i64 %663
  %664 = tail call double @c_abs(ptr noundef %gep2975) #7
  %665 = fptrunc double %664 to float
  %666 = fadd float %662, %665
  %667 = getelementptr inbounds float, ptr %5, i64 %.21635
  %668 = load float, ptr %667, align 4, !tbaa !56
  %669 = fadd float %668, %665
  store float %669, ptr %667, align 4, !tbaa !56
  %.not1901.not = icmp slt i64 %.21635, %632
  br i1 %.not1901.not, label %.lr.ph2972, label %._crit_edge2973.loopexit, !llvm.loop !64

._crit_edge2973.loopexit:                         ; preds = %.lr.ph2972
  %.pre3276 = load float, ptr %652, align 4, !tbaa !56
  br label %._crit_edge2973

._crit_edge2973:                                  ; preds = %._crit_edge2973.loopexit, %._crit_edge2961
  %670 = phi float [ %661, %._crit_edge2961 ], [ %.pre3276, %._crit_edge2973.loopexit ]
  %.lcssa29772981 = phi float [ 0.000000e+00, %._crit_edge2961 ], [ %666, %._crit_edge2973.loopexit ]
  %671 = fadd float %.lcssa29772981, %670
  store float %671, ptr %652, align 4, !tbaa !56
  %672 = add nuw nsw i64 %storemerge18982985, 1
  %indvars.iv.next3237 = add i64 %indvars.iv3236, 1
  %exitcond3239.not = icmp eq i64 %672, %522
  br i1 %exitcond3239.not, label %.preheader1967, label %633, !llvm.loop !65

.preheader1967:                                   ; preds = %._crit_edge2973, %.preheader1968
  %673 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #7
  %674 = getelementptr float, ptr %5, i64 %673
  %675 = getelementptr i8, ptr %674, i64 -4
  %676 = load float, ptr %675, align 4, !tbaa !56
  br label %.loopexit1984

thread-pre-split1966:                             ; preds = %.preheader
  %677 = shl nuw i64 %522, 2
  %scevgep3240 = getelementptr i8, ptr %5, i64 %677
  %678 = add nuw nsw i64 %522, 1
  %smax3241 = tail call i64 @llvm.smax.i64(i64 %521, i64 %678)
  %679 = sub nsw i64 %smax3241, %522
  %680 = shl i64 %679, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep3240, i8 0, i64 %680, i1 false), !tbaa !56
  %.not3463 = icmp eq i64 %521, 1
  br i1 %.not3463, label %thread-pre-split1966.thread, label %.lr.ph3023

.lr.ph3023:                                       ; preds = %thread-pre-split1966
  %invariant.gep3002 = getelementptr float, ptr %5, i64 %522
  br label %681

681:                                              ; preds = %.lr.ph3023, %._crit_edge3012
  %storemerge18943022.in = phi i64 [ %522, %.lr.ph3023 ], [ %storemerge18943022, %._crit_edge3012 ]
  %storemerge18943022 = add nsw i64 %storemerge18943022.in, -1
  %.not1895.not2994 = icmp sgt i64 %storemerge18943022.in, 1
  %682 = mul nsw i64 %storemerge18943022, %.01631
  br i1 %.not1895.not2994, label %.lr.ph2997, label %._crit_edge2998

.lr.ph2997:                                       ; preds = %681
  %invariant.gep3000 = getelementptr %struct.complex, ptr %4, i64 %682
  br label %683

683:                                              ; preds = %.lr.ph2997, %683
  %.4116902995 = phi i64 [ 0, %.lr.ph2997 ], [ %690, %683 ]
  %684 = phi float [ 0.000000e+00, %.lr.ph2997 ], [ %687, %683 ]
  %gep3001 = getelementptr %struct.complex, ptr %invariant.gep3000, i64 %.4116902995
  %685 = tail call double @c_abs(ptr noundef %gep3001) #7
  %686 = fptrunc double %685 to float
  %687 = fadd float %684, %686
  %gep3003 = getelementptr float, ptr %invariant.gep3002, i64 %.4116902995
  %688 = load float, ptr %gep3003, align 4, !tbaa !56
  %689 = fadd float %688, %686
  store float %689, ptr %gep3003, align 4, !tbaa !56
  %690 = add nuw nsw i64 %.4116902995, 1
  %.not1895.not = icmp slt i64 %690, %storemerge18943022
  br i1 %.not1895.not, label %683, label %._crit_edge2998, !llvm.loop !66

._crit_edge2998:                                  ; preds = %683, %681
  %.lcssa30163019 = phi float [ 0.000000e+00, %681 ], [ %687, %683 ]
  %.411690.lcssa = phi i64 [ 0, %681 ], [ %690, %683 ]
  %691 = getelementptr %struct.complex, ptr %4, i64 %.411690.lcssa
  %692 = getelementptr %struct.complex, ptr %691, i64 %682
  %693 = load float, ptr %692, align 4, !tbaa !9
  %694 = fcmp oge float %693, 0.000000e+00
  %695 = fneg float %693
  %696 = select i1 %694, float %693, float %695
  %697 = fadd float %.lcssa30163019, %696
  %gep3027 = getelementptr float, ptr %invariant.gep3002, i64 %.411690.lcssa
  %698 = load float, ptr %gep3027, align 4, !tbaa !56
  %699 = fadd float %697, %698
  store float %699, ptr %gep3027, align 4, !tbaa !56
  %700 = add nuw nsw i64 %.411690.lcssa, 1
  %701 = getelementptr %struct.complex, ptr %4, i64 %700
  %702 = getelementptr %struct.complex, ptr %701, i64 %682
  %703 = load float, ptr %702, align 4, !tbaa !9
  %704 = fcmp oge float %703, 0.000000e+00
  %705 = fneg float %703
  %706 = select i1 %704, float %703, float %705
  %707 = getelementptr inbounds float, ptr %5, i64 %storemerge18943022
  store float %706, ptr %707, align 4, !tbaa !56
  %708 = load i64, ptr %3, align 8, !tbaa !5
  %709 = add nsw i64 %708, -1
  %.not1896.not3007 = icmp slt i64 %storemerge18943022.in, %708
  br i1 %.not1896.not3007, label %.lr.ph3011, label %._crit_edge3012

.lr.ph3011:                                       ; preds = %._crit_edge2998
  %invariant.gep3013 = getelementptr %struct.complex, ptr %4, i64 %682
  br label %710

710:                                              ; preds = %.lr.ph3011, %710
  %.31636.in3009 = phi i64 [ %storemerge18943022, %.lr.ph3011 ], [ %.31636, %710 ]
  %.4216913008 = phi i64 [ %700, %.lr.ph3011 ], [ %712, %710 ]
  %711 = phi float [ 0.000000e+00, %.lr.ph3011 ], [ %715, %710 ]
  %.31636 = add nsw i64 %.31636.in3009, 1
  %712 = add nuw nsw i64 %.4216913008, 1
  %gep3014 = getelementptr %struct.complex, ptr %invariant.gep3013, i64 %712
  %713 = tail call double @c_abs(ptr noundef %gep3014) #7
  %714 = fptrunc double %713 to float
  %715 = fadd float %711, %714
  %716 = getelementptr inbounds float, ptr %5, i64 %.31636
  %717 = load float, ptr %716, align 4, !tbaa !56
  %718 = fadd float %717, %714
  store float %718, ptr %716, align 4, !tbaa !56
  %.not1896.not = icmp slt i64 %.31636, %709
  br i1 %.not1896.not, label %710, label %._crit_edge3012.loopexit, !llvm.loop !67

._crit_edge3012.loopexit:                         ; preds = %710
  %.pre3277 = load float, ptr %707, align 4, !tbaa !56
  br label %._crit_edge3012

._crit_edge3012:                                  ; preds = %._crit_edge3012.loopexit, %._crit_edge2998
  %719 = phi float [ %706, %._crit_edge2998 ], [ %.pre3277, %._crit_edge3012.loopexit ]
  %.lcssa30163020 = phi float [ 0.000000e+00, %._crit_edge2998 ], [ %715, %._crit_edge3012.loopexit ]
  %720 = fadd float %.lcssa30163020, %719
  store float %720, ptr %707, align 4, !tbaa !56
  br i1 %.not1895.not2994, label %681, label %thread-pre-split1966.thread, !llvm.loop !68

thread-pre-split1966.thread:                      ; preds = %._crit_edge3012, %.preheader, %thread-pre-split1966
  %721 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #7
  %722 = getelementptr float, ptr %5, i64 %721
  %723 = getelementptr i8, ptr %722, i64 -4
  %724 = load float, ptr %723, align 4, !tbaa !56
  br label %.loopexit1984

725:                                              ; preds = %520
  br i1 %.not1892, label %893, label %726

726:                                              ; preds = %725
  %727 = add nsw i64 %522, 1
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %807, label %728

728:                                              ; preds = %726
  %.not1883.not2546 = icmp sgt i64 %521, 0
  br i1 %.not1883.not2546, label %.preheader1975, label %.preheader1975.thread

.preheader1975:                                   ; preds = %728
  %729 = shl nuw i64 %522, 2
  %scevgep = getelementptr i8, ptr %5, i64 %729
  %smax3196 = tail call i64 @llvm.smax.i64(i64 %521, i64 %727)
  %730 = sub nsw i64 %smax3196, %522
  %731 = shl i64 %730, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %731, i1 false), !tbaa !56
  %.not1885.not2568.not = icmp eq i64 %521, 1
  br i1 %.not1885.not2568.not, label %.preheader1975.thread, label %.lr.ph2570

.lr.ph2570:                                       ; preds = %.preheader1975
  %invariant.gep2550 = getelementptr float, ptr %5, i64 %522
  br label %.lr.ph2556

.lr.ph2556:                                       ; preds = %._crit_edge2557, %.lr.ph2570
  %storemerge18842569 = phi i64 [ 0, %.lr.ph2570 ], [ %742, %._crit_edge2557 ]
  %732 = mul nsw i64 %storemerge18842569, %.01631
  %invariant.gep2558 = getelementptr %struct.complex, ptr %4, i64 %732
  br label %733

733:                                              ; preds = %.lr.ph2556, %733
  %.442554 = phi i64 [ 0, %.lr.ph2556 ], [ %740, %733 ]
  %734 = phi float [ 0.000000e+00, %.lr.ph2556 ], [ %739, %733 ]
  %gep2559 = getelementptr %struct.complex, ptr %invariant.gep2558, i64 %.442554
  %735 = tail call double @c_abs(ptr noundef %gep2559) #7
  %736 = fptrunc double %735 to float
  %gep2551 = getelementptr float, ptr %invariant.gep2550, i64 %.442554
  %737 = load float, ptr %gep2551, align 4, !tbaa !56
  %738 = fadd float %737, %736
  store float %738, ptr %gep2551, align 4, !tbaa !56
  %739 = fadd float %734, %736
  %740 = add nuw i64 %.442554, 1
  %exitcond3197.not = icmp eq i64 %.442554, %522
  br i1 %exitcond3197.not, label %._crit_edge2557, label %733, !llvm.loop !69

._crit_edge2557:                                  ; preds = %733
  %741 = getelementptr inbounds float, ptr %5, i64 %storemerge18842569
  store float %739, ptr %741, align 4, !tbaa !56
  %742 = add nuw nsw i64 %storemerge18842569, 1
  %exitcond3198.not = icmp eq i64 %742, %522
  br i1 %exitcond3198.not, label %.preheader1975.thread, label %.lr.ph2556, !llvm.loop !70

.preheader1975.thread:                            ; preds = %._crit_edge2557, %728, %.preheader1975
  %743 = phi i64 [ 0, %.preheader1975 ], [ 0, %728 ], [ %522, %._crit_edge2557 ]
  %744 = mul nsw i64 %743, %.01631
  %745 = getelementptr %struct.complex, ptr %4, i64 %744
  %746 = load float, ptr %745, align 4, !tbaa !9
  %747 = fcmp oge float %746, 0.000000e+00
  %748 = fneg float %746
  %749 = select i1 %747, float %746, float %748
  %invariant.gep2575 = getelementptr float, ptr %5, i64 %522
  %.not1886.not2578 = icmp sgt i64 %521, 1
  br i1 %.not1886.not2578, label %.lr.ph2581, label %._crit_edge2582

.lr.ph2581:                                       ; preds = %.preheader1975.thread, %.lr.ph2581
  %.452579 = phi i64 [ %756, %.lr.ph2581 ], [ 1, %.preheader1975.thread ]
  %750 = phi float [ %755, %.lr.ph2581 ], [ %749, %.preheader1975.thread ]
  %gep2584 = getelementptr %struct.complex, ptr %745, i64 %.452579
  %751 = tail call double @c_abs(ptr noundef %gep2584) #7
  %752 = fptrunc double %751 to float
  %gep2576 = getelementptr float, ptr %invariant.gep2575, i64 %.452579
  %753 = load float, ptr %gep2576, align 4, !tbaa !56
  %754 = fadd float %753, %752
  store float %754, ptr %gep2576, align 4, !tbaa !56
  %755 = fadd float %750, %752
  %756 = add nuw nsw i64 %.452579, 1
  %exitcond3199.not = icmp eq i64 %.452579, %522
  br i1 %exitcond3199.not, label %._crit_edge2582, label %.lr.ph2581, !llvm.loop !71

._crit_edge2582:                                  ; preds = %.lr.ph2581, %.preheader1975.thread
  %757 = phi float [ %749, %.preheader1975.thread ], [ %755, %.lr.ph2581 ]
  %758 = getelementptr inbounds float, ptr %5, i64 %743
  %759 = load float, ptr %758, align 4, !tbaa !56
  %760 = fadd float %757, %759
  store float %760, ptr %758, align 4, !tbaa !56
  %761 = load i64, ptr %3, align 8, !tbaa !5
  %.not1888.not2615 = icmp slt i64 %727, %761
  br i1 %.not1888.not2615, label %.lr.ph2618, label %._crit_edge2619

.lr.ph2618:                                       ; preds = %._crit_edge2582, %._crit_edge2604
  %indvars.iv3200 = phi i64 [ %indvars.iv.next3201, %._crit_edge2604 ], [ 0, %._crit_edge2582 ]
  %storemerge18872616 = phi i64 [ %802, %._crit_edge2604 ], [ %727, %._crit_edge2582 ]
  %reass.sub3336 = sub i64 %storemerge18872616, %522
  %762 = add i64 %reass.sub3336, -2
  %.not18892588 = icmp slt i64 %762, 0
  %.pre3306 = mul nsw i64 %storemerge18872616, %.01631
  br i1 %.not18892588, label %._crit_edge2592, label %.lr.ph2591

.lr.ph2591:                                       ; preds = %.lr.ph2618
  %invariant.gep2594 = getelementptr %struct.complex, ptr %4, i64 %.pre3306
  br label %763

763:                                              ; preds = %.lr.ph2591, %763
  %.462589 = phi i64 [ 0, %.lr.ph2591 ], [ %771, %763 ]
  %764 = phi float [ 0.000000e+00, %.lr.ph2591 ], [ %770, %763 ]
  %gep2595 = getelementptr %struct.complex, ptr %invariant.gep2594, i64 %.462589
  %765 = tail call double @c_abs(ptr noundef %gep2595) #7
  %766 = fptrunc double %765 to float
  %767 = getelementptr inbounds float, ptr %5, i64 %.462589
  %768 = load float, ptr %767, align 4, !tbaa !56
  %769 = fadd float %768, %766
  store float %769, ptr %767, align 4, !tbaa !56
  %770 = fadd float %764, %766
  %771 = add nuw i64 %.462589, 1
  %exitcond3202.not = icmp eq i64 %771, %indvars.iv3200
  br i1 %exitcond3202.not, label %._crit_edge2592, label %763, !llvm.loop !72

._crit_edge2592:                                  ; preds = %763, %.lr.ph2618
  %.lcssa26082611 = phi float [ 0.000000e+00, %.lr.ph2618 ], [ %770, %763 ]
  %.46.lcssa = phi i64 [ 0, %.lr.ph2618 ], [ %indvars.iv3200, %763 ]
  %772 = getelementptr %struct.complex, ptr %4, i64 %.pre3306
  %773 = getelementptr %struct.complex, ptr %772, i64 %.46.lcssa
  %774 = load float, ptr %773, align 4, !tbaa !9
  %775 = fcmp oge float %774, 0.000000e+00
  %776 = fneg float %774
  %777 = select i1 %775, float %774, float %776
  %778 = fadd float %.lcssa26082611, %777
  %779 = sub nsw i64 %storemerge18872616, %727
  %780 = getelementptr inbounds float, ptr %5, i64 %779
  %781 = load float, ptr %780, align 4, !tbaa !56
  %782 = fadd float %778, %781
  store float %782, ptr %780, align 4, !tbaa !56
  %783 = add nuw nsw i64 %.46.lcssa, 1
  %784 = getelementptr %struct.complex, ptr %772, i64 %783
  %785 = load float, ptr %784, align 4, !tbaa !9
  %786 = fcmp oge float %785, 0.000000e+00
  %787 = fneg float %785
  %788 = select i1 %786, float %785, float %787
  %789 = load i64, ptr %3, align 8, !tbaa !5
  %790 = add nsw i64 %789, -1
  %.not1890.not2599 = icmp slt i64 %storemerge18872616, %790
  br i1 %.not1890.not2599, label %.lr.ph2603, label %._crit_edge2604

.lr.ph2603:                                       ; preds = %._crit_edge2592, %.lr.ph2603
  %.41637.in2601 = phi i64 [ %.41637, %.lr.ph2603 ], [ %storemerge18872616, %._crit_edge2592 ]
  %.472600 = phi i64 [ %792, %.lr.ph2603 ], [ %783, %._crit_edge2592 ]
  %791 = phi float [ %798, %.lr.ph2603 ], [ %788, %._crit_edge2592 ]
  %.41637 = add nsw i64 %.41637.in2601, 1
  %792 = add nuw nsw i64 %.472600, 1
  %gep2606 = getelementptr %struct.complex, ptr %772, i64 %792
  %793 = tail call double @c_abs(ptr noundef %gep2606) #7
  %794 = fptrunc double %793 to float
  %795 = getelementptr inbounds float, ptr %5, i64 %.41637
  %796 = load float, ptr %795, align 4, !tbaa !56
  %797 = fadd float %796, %794
  store float %797, ptr %795, align 4, !tbaa !56
  %798 = fadd float %791, %794
  %.not1890.not = icmp slt i64 %.41637, %790
  br i1 %.not1890.not, label %.lr.ph2603, label %._crit_edge2604, !llvm.loop !73

._crit_edge2604:                                  ; preds = %.lr.ph2603, %._crit_edge2592
  %.lcssa26082612 = phi float [ %788, %._crit_edge2592 ], [ %798, %.lr.ph2603 ]
  %799 = getelementptr inbounds float, ptr %5, i64 %storemerge18872616
  %800 = load float, ptr %799, align 4, !tbaa !56
  %801 = fadd float %.lcssa26082612, %800
  store float %801, ptr %799, align 4, !tbaa !56
  %802 = add i64 %storemerge18872616, 1
  %indvars.iv.next3201 = add i64 %indvars.iv3200, 1
  %exitcond3203.not = icmp eq i64 %802, %761
  br i1 %exitcond3203.not, label %._crit_edge2619, label %.lr.ph2618, !llvm.loop !74

._crit_edge2619:                                  ; preds = %._crit_edge2604, %._crit_edge2582
  %803 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #7
  %804 = getelementptr float, ptr %5, i64 %803
  %805 = getelementptr i8, ptr %804, i64 -4
  %806 = load float, ptr %805, align 4, !tbaa !56
  br label %.loopexit1984

807:                                              ; preds = %726
  %.not1874.not2622 = icmp slt i64 %727, %521
  br i1 %.not1874.not2622, label %.lr.ph2625.preheader, label %.preheader1974

.lr.ph2625.preheader:                             ; preds = %807
  %808 = shl i64 %522, 2
  %809 = getelementptr i8, ptr %5, i64 %808
  %scevgep3204 = getelementptr i8, ptr %809, i64 4
  %810 = xor i64 %522, -1
  %811 = add i64 %521, %810
  %812 = shl nuw i64 %811, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep3204, i8 0, i64 %812, i1 false), !tbaa !56
  br label %.preheader1974

.preheader1974:                                   ; preds = %.lr.ph2625.preheader, %807
  %.not1876.not2654 = icmp sgt i64 %521, 1
  br i1 %.not1876.not2654, label %.lr.ph2656, label %._crit_edge2665

.lr.ph2656:                                       ; preds = %.preheader1974
  %813 = getelementptr float, ptr %5, i64 %727
  br label %814

814:                                              ; preds = %.lr.ph2656, %._crit_edge2643
  %storemerge18752655 = phi i64 [ 0, %.lr.ph2656 ], [ %853, %._crit_edge2643 ]
  %.not18812627 = icmp eq i64 %storemerge18752655, 0
  br i1 %.not18812627, label %._crit_edge2631, label %.lr.ph2630

.lr.ph2630:                                       ; preds = %814
  %815 = mul nsw i64 %storemerge18752655, %.01631
  %invariant.gep2633 = getelementptr %struct.complex, ptr %4, i64 %815
  br label %816

816:                                              ; preds = %.lr.ph2630, %816
  %.492628 = phi i64 [ 0, %.lr.ph2630 ], [ %824, %816 ]
  %817 = phi float [ 0.000000e+00, %.lr.ph2630 ], [ %823, %816 ]
  %gep2634 = getelementptr %struct.complex, ptr %invariant.gep2633, i64 %.492628
  %818 = tail call double @c_abs(ptr noundef %gep2634) #7
  %819 = fptrunc double %818 to float
  %820 = getelementptr inbounds float, ptr %5, i64 %.492628
  %821 = load float, ptr %820, align 4, !tbaa !56
  %822 = fadd float %821, %819
  store float %822, ptr %820, align 4, !tbaa !56
  %823 = fadd float %817, %819
  %824 = add nuw nsw i64 %.492628, 1
  %exitcond3205.not = icmp eq i64 %824, %storemerge18752655
  br i1 %exitcond3205.not, label %._crit_edge2631, label %816, !llvm.loop !75

._crit_edge2631:                                  ; preds = %816, %814
  %.pre-phi3303 = phi i64 [ 0, %814 ], [ %815, %816 ]
  %.lcssa26472650 = phi float [ 0.000000e+00, %814 ], [ %823, %816 ]
  %825 = getelementptr %struct.complex, ptr %4, i64 %.pre-phi3303
  %826 = getelementptr %struct.complex, ptr %825, i64 %storemerge18752655
  %827 = load float, ptr %826, align 4, !tbaa !9
  %828 = fcmp oge float %827, 0.000000e+00
  %829 = fneg float %827
  %830 = select i1 %828, float %827, float %829
  %831 = fadd float %.lcssa26472650, %830
  %832 = getelementptr inbounds float, ptr %5, i64 %storemerge18752655
  store float %831, ptr %832, align 4, !tbaa !56
  %833 = add nuw nsw i64 %storemerge18752655, 1
  %834 = getelementptr %struct.complex, ptr %825, i64 %833
  %835 = load float, ptr %834, align 4, !tbaa !9
  %836 = fcmp oge float %835, 0.000000e+00
  %837 = fneg float %835
  %838 = select i1 %836, float %835, float %837
  %839 = load i64, ptr %3, align 8, !tbaa !5
  %840 = add nsw i64 %839, -1
  %841 = add nuw nsw i64 %727, %storemerge18752655
  %.not1882.not2638 = icmp slt i64 %841, %840
  br i1 %.not1882.not2638, label %.lr.ph2642, label %._crit_edge2643

.lr.ph2642:                                       ; preds = %._crit_edge2631, %.lr.ph2642
  %.51638.in2640 = phi i64 [ %.51638, %.lr.ph2642 ], [ %841, %._crit_edge2631 ]
  %.502639 = phi i64 [ %843, %.lr.ph2642 ], [ %833, %._crit_edge2631 ]
  %842 = phi float [ %846, %.lr.ph2642 ], [ %838, %._crit_edge2631 ]
  %.51638 = add nuw nsw i64 %.51638.in2640, 1
  %843 = add nuw nsw i64 %.502639, 1
  %gep2645 = getelementptr %struct.complex, ptr %825, i64 %843
  %844 = tail call double @c_abs(ptr noundef %gep2645) #7
  %845 = fptrunc double %844 to float
  %846 = fadd float %842, %845
  %847 = getelementptr inbounds float, ptr %5, i64 %.51638
  %848 = load float, ptr %847, align 4, !tbaa !56
  %849 = fadd float %848, %845
  store float %849, ptr %847, align 4, !tbaa !56
  %.not1882.not = icmp slt i64 %.51638, %840
  br i1 %.not1882.not, label %.lr.ph2642, label %._crit_edge2643, !llvm.loop !76

._crit_edge2643:                                  ; preds = %.lr.ph2642, %._crit_edge2631
  %.lcssa26472651 = phi float [ %838, %._crit_edge2631 ], [ %846, %.lr.ph2642 ]
  %850 = getelementptr float, ptr %813, i64 %storemerge18752655
  %851 = load float, ptr %850, align 4, !tbaa !56
  %852 = fadd float %.lcssa26472651, %851
  store float %852, ptr %850, align 4, !tbaa !56
  %853 = add nuw nsw i64 %storemerge18752655, 1
  %exitcond3206.not = icmp eq i64 %853, %522
  br i1 %exitcond3206.not, label %.lr.ph2664, label %814, !llvm.loop !77

.lr.ph2664:                                       ; preds = %._crit_edge2643
  %854 = mul nsw i64 %522, %.01631
  %invariant.gep2667 = getelementptr %struct.complex, ptr %4, i64 %854
  br label %855

855:                                              ; preds = %.lr.ph2664, %855
  %.512662 = phi i64 [ 0, %.lr.ph2664 ], [ %863, %855 ]
  %856 = phi float [ 0.000000e+00, %.lr.ph2664 ], [ %862, %855 ]
  %gep2668 = getelementptr %struct.complex, ptr %invariant.gep2667, i64 %.512662
  %857 = tail call double @c_abs(ptr noundef %gep2668) #7
  %858 = fptrunc double %857 to float
  %859 = getelementptr inbounds float, ptr %5, i64 %.512662
  %860 = load float, ptr %859, align 4, !tbaa !56
  %861 = fadd float %860, %858
  store float %861, ptr %859, align 4, !tbaa !56
  %862 = fadd float %856, %858
  %863 = add nuw i64 %.512662, 1
  %exitcond3207.not = icmp eq i64 %863, %522
  br i1 %exitcond3207.not, label %._crit_edge2665, label %855, !llvm.loop !78

._crit_edge2665:                                  ; preds = %855, %.preheader1974
  %.pre-phi3305 = phi i64 [ 0, %.preheader1974 ], [ %854, %855 ]
  %864 = phi float [ 0.000000e+00, %.preheader1974 ], [ %862, %855 ]
  %.51.lcssa = phi i64 [ 0, %.preheader1974 ], [ %522, %855 ]
  %865 = getelementptr %struct.complex, ptr %4, i64 %.51.lcssa
  %866 = getelementptr %struct.complex, ptr %865, i64 %.pre-phi3305
  %867 = load float, ptr %866, align 4, !tbaa !9
  %868 = fcmp oge float %867, 0.000000e+00
  %869 = fneg float %867
  %870 = select i1 %868, float %867, float %869
  %871 = fadd float %864, %870
  %872 = getelementptr inbounds float, ptr %5, i64 %.51.lcssa
  store float %871, ptr %872, align 4, !tbaa !56
  %873 = load i64, ptr %3, align 8, !tbaa !5
  %.not1879.not2686 = icmp slt i64 %727, %873
  br i1 %.not1879.not2686, label %.lr.ph2689, label %._crit_edge2690

.lr.ph2689:                                       ; preds = %._crit_edge2665
  %.not18802672 = icmp slt i64 %521, -1
  br label %874

874:                                              ; preds = %.lr.ph2689, %._crit_edge2676
  %storemerge18782687 = phi i64 [ %727, %.lr.ph2689 ], [ %888, %._crit_edge2676 ]
  br i1 %.not18802672, label %._crit_edge2676, label %.lr.ph2675

.lr.ph2675:                                       ; preds = %874
  %875 = mul nsw i64 %storemerge18782687, %.01631
  %invariant.gep2677 = getelementptr %struct.complex, ptr %4, i64 %875
  br label %876

876:                                              ; preds = %.lr.ph2675, %876
  %.522673 = phi i64 [ 0, %.lr.ph2675 ], [ %884, %876 ]
  %877 = phi float [ 0.000000e+00, %.lr.ph2675 ], [ %883, %876 ]
  %gep2678 = getelementptr %struct.complex, ptr %invariant.gep2677, i64 %.522673
  %878 = tail call double @c_abs(ptr noundef %gep2678) #7
  %879 = fptrunc double %878 to float
  %880 = getelementptr inbounds float, ptr %5, i64 %.522673
  %881 = load float, ptr %880, align 4, !tbaa !56
  %882 = fadd float %881, %879
  store float %882, ptr %880, align 4, !tbaa !56
  %883 = fadd float %877, %879
  %884 = add nuw i64 %.522673, 1
  %exitcond3208.not = icmp eq i64 %.522673, %522
  br i1 %exitcond3208.not, label %._crit_edge2676, label %876, !llvm.loop !79

._crit_edge2676:                                  ; preds = %876, %874
  %.lcssa26802683 = phi float [ 0.000000e+00, %874 ], [ %883, %876 ]
  %885 = getelementptr inbounds float, ptr %5, i64 %storemerge18782687
  %886 = load float, ptr %885, align 4, !tbaa !56
  %887 = fadd float %.lcssa26802683, %886
  store float %887, ptr %885, align 4, !tbaa !56
  %888 = add i64 %storemerge18782687, 1
  %exitcond3209.not = icmp eq i64 %888, %873
  br i1 %exitcond3209.not, label %._crit_edge2690, label %874, !llvm.loop !80

._crit_edge2690:                                  ; preds = %._crit_edge2676, %._crit_edge2665
  %889 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #7
  %890 = getelementptr float, ptr %5, i64 %889
  %891 = getelementptr i8, ptr %890, i64 -4
  %892 = load float, ptr %891, align 4, !tbaa !56
  br label %.loopexit1984

893:                                              ; preds = %725
  %.not1854.not2785 = icmp sgt i64 %521, 0
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %.preheader1971, label %.preheader1973

.preheader1973:                                   ; preds = %893
  br i1 %.not1854.not2785, label %.preheader1972, label %.preheader1972.thread

.preheader1971:                                   ; preds = %893
  br i1 %.not1854.not2785, label %._crit_edge2788, label %._crit_edge2788.thread

._crit_edge2788.thread:                           ; preds = %.preheader1971
  %894 = load float, ptr %4, align 4, !tbaa !9
  %895 = fcmp oge float %894, 0.000000e+00
  %896 = fneg float %894
  %897 = select i1 %895, float %894, float %896
  store float %897, ptr %10, align 4, !tbaa !56
  br label %.thread3364

.preheader1972:                                   ; preds = %.preheader1973
  %898 = shl nuw i64 %522, 2
  %scevgep3210 = getelementptr i8, ptr %5, i64 %898
  %899 = add nuw nsw i64 %522, 1
  %smax3211 = tail call i64 @llvm.smax.i64(i64 %521, i64 %899)
  %900 = sub nsw i64 %smax3211, %522
  %901 = shl i64 %900, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep3210, i8 0, i64 %901, i1 false), !tbaa !56
  %.not1866.not2714.not = icmp eq i64 %521, 1
  br i1 %.not1866.not2714.not, label %.preheader1972.thread, label %.lr.ph2716

.lr.ph2716:                                       ; preds = %.preheader1972
  %invariant.gep2704 = getelementptr float, ptr %5, i64 %522
  br label %.lr.ph2700

.lr.ph2700:                                       ; preds = %._crit_edge2701, %.lr.ph2716
  %storemerge18652715 = phi i64 [ 0, %.lr.ph2716 ], [ %912, %._crit_edge2701 ]
  %902 = mul nsw i64 %storemerge18652715, %.01631
  %invariant.gep2702 = getelementptr %struct.complex, ptr %4, i64 %902
  br label %903

903:                                              ; preds = %.lr.ph2700, %903
  %.542698 = phi i64 [ 0, %.lr.ph2700 ], [ %910, %903 ]
  %904 = phi float [ 0.000000e+00, %.lr.ph2700 ], [ %909, %903 ]
  %gep2703 = getelementptr %struct.complex, ptr %invariant.gep2702, i64 %.542698
  %905 = tail call double @c_abs(ptr noundef %gep2703) #7
  %906 = fptrunc double %905 to float
  %gep2705 = getelementptr float, ptr %invariant.gep2704, i64 %.542698
  %907 = load float, ptr %gep2705, align 4, !tbaa !56
  %908 = fadd float %907, %906
  store float %908, ptr %gep2705, align 4, !tbaa !56
  %909 = fadd float %904, %906
  %910 = add nuw i64 %.542698, 1
  %exitcond3212.not = icmp eq i64 %910, %522
  br i1 %exitcond3212.not, label %._crit_edge2701, label %903, !llvm.loop !81

._crit_edge2701:                                  ; preds = %903
  %911 = getelementptr inbounds float, ptr %5, i64 %storemerge18652715
  store float %909, ptr %911, align 4, !tbaa !56
  %912 = add nuw nsw i64 %storemerge18652715, 1
  %exitcond3213.not = icmp eq i64 %912, %522
  br i1 %exitcond3213.not, label %.preheader1972.thread, label %.lr.ph2700, !llvm.loop !82

.preheader1972.thread:                            ; preds = %._crit_edge2701, %.preheader1973, %.preheader1972
  %913 = phi i64 [ 0, %.preheader1972 ], [ 0, %.preheader1973 ], [ %522, %._crit_edge2701 ]
  %914 = mul nsw i64 %913, %.01631
  %915 = getelementptr %struct.complex, ptr %4, i64 %914
  %916 = load float, ptr %915, align 4, !tbaa !9
  %917 = fcmp oge float %916, 0.000000e+00
  %918 = fneg float %916
  %919 = select i1 %917, float %916, float %918
  %.not1867.not2722 = icmp sgt i64 %521, 3
  br i1 %.not1867.not2722, label %.lr.ph2725, label %._crit_edge2726

.lr.ph2725:                                       ; preds = %.preheader1972.thread
  %invariant.gep2729 = getelementptr float, ptr %5, i64 %522
  br label %920

920:                                              ; preds = %.lr.ph2725, %920
  %.552723 = phi i64 [ 1, %.lr.ph2725 ], [ %927, %920 ]
  %921 = phi float [ %919, %.lr.ph2725 ], [ %926, %920 ]
  %gep2728 = getelementptr %struct.complex, ptr %915, i64 %.552723
  %922 = tail call double @c_abs(ptr noundef %gep2728) #7
  %923 = fptrunc double %922 to float
  %gep2730 = getelementptr float, ptr %invariant.gep2729, i64 %.552723
  %924 = load float, ptr %gep2730, align 4, !tbaa !56
  %925 = fadd float %924, %923
  store float %925, ptr %gep2730, align 4, !tbaa !56
  %926 = fadd float %921, %923
  %927 = add nuw nsw i64 %.552723, 1
  %exitcond3214.not = icmp eq i64 %927, %522
  br i1 %exitcond3214.not, label %._crit_edge2726, label %920, !llvm.loop !83

._crit_edge2726:                                  ; preds = %920, %.preheader1972.thread
  %928 = phi float [ %919, %.preheader1972.thread ], [ %926, %920 ]
  %929 = getelementptr inbounds float, ptr %5, i64 %913
  %930 = load float, ptr %929, align 4, !tbaa !56
  %931 = fadd float %928, %930
  store float %931, ptr %929, align 4, !tbaa !56
  %932 = load i64, ptr %3, align 8, !tbaa !5
  %933 = add nsw i64 %932, -1
  %storemerge18682762 = add nsw i64 %522, 1
  %.not1869.not2763 = icmp slt i64 %522, %933
  br i1 %.not1869.not2763, label %.lr.ph2767, label %._crit_edge2768

.lr.ph2767:                                       ; preds = %._crit_edge2726
  %934 = xor i64 %522, -1
  %invariant.gep2770 = getelementptr float, ptr %5, i64 %934
  br label %935

935:                                              ; preds = %.lr.ph2767, %._crit_edge2750
  %storemerge1868.in2773 = phi i64 [ %storemerge18682762, %.lr.ph2767 ], [ %storemerge1868, %._crit_edge2750 ]
  %storemerge1868.in2764 = phi i64 [ %522, %.lr.ph2767 ], [ %storemerge1868.in2773, %._crit_edge2750 ]
  %936 = sub i64 %522, %storemerge1868.in2764
  %.not18712734 = icmp sgt i64 %936, -1
  %.pre3298 = mul nsw i64 %storemerge1868.in2773, %.01631
  br i1 %.not18712734, label %._crit_edge2738, label %.lr.ph2737

.lr.ph2737:                                       ; preds = %935
  %invariant.gep2740 = getelementptr %struct.complex, ptr %4, i64 %.pre3298
  %937 = sub i64 %storemerge1868.in2764, %522
  br label %938

938:                                              ; preds = %.lr.ph2737, %938
  %.562735 = phi i64 [ 0, %.lr.ph2737 ], [ %946, %938 ]
  %939 = phi float [ 0.000000e+00, %.lr.ph2737 ], [ %945, %938 ]
  %gep2741 = getelementptr %struct.complex, ptr %invariant.gep2740, i64 %.562735
  %940 = tail call double @c_abs(ptr noundef %gep2741) #7
  %941 = fptrunc double %940 to float
  %942 = getelementptr inbounds float, ptr %5, i64 %.562735
  %943 = load float, ptr %942, align 4, !tbaa !56
  %944 = fadd float %943, %941
  store float %944, ptr %942, align 4, !tbaa !56
  %945 = fadd float %939, %941
  %946 = add nuw i64 %.562735, 1
  %exitcond3215.not = icmp eq i64 %946, %937
  br i1 %exitcond3215.not, label %._crit_edge2738, label %938, !llvm.loop !84

._crit_edge2738:                                  ; preds = %938, %935
  %.lcssa27542757 = phi float [ 0.000000e+00, %935 ], [ %945, %938 ]
  %.56.lcssa = phi i64 [ 0, %935 ], [ %937, %938 ]
  %947 = getelementptr %struct.complex, ptr %4, i64 %.pre3298
  %948 = getelementptr %struct.complex, ptr %947, i64 %.56.lcssa
  %949 = load float, ptr %948, align 4, !tbaa !9
  %950 = fcmp oge float %949, 0.000000e+00
  %951 = fneg float %949
  %952 = select i1 %950, float %949, float %951
  %953 = fadd float %.lcssa27542757, %952
  %gep2771 = getelementptr float, ptr %invariant.gep2770, i64 %storemerge1868.in2773
  %954 = load float, ptr %gep2771, align 4, !tbaa !56
  %955 = fadd float %953, %954
  store float %955, ptr %gep2771, align 4, !tbaa !56
  %956 = add nuw nsw i64 %.56.lcssa, 1
  %957 = getelementptr %struct.complex, ptr %947, i64 %956
  %958 = load float, ptr %957, align 4, !tbaa !9
  %959 = fcmp oge float %958, 0.000000e+00
  %960 = fneg float %958
  %961 = select i1 %959, float %958, float %960
  %962 = load i64, ptr %3, align 8, !tbaa !5
  %963 = add nsw i64 %962, -1
  %.not1872.not2745 = icmp slt i64 %storemerge1868.in2773, %963
  br i1 %.not1872.not2745, label %.lr.ph2749, label %._crit_edge2750

.lr.ph2749:                                       ; preds = %._crit_edge2738, %.lr.ph2749
  %.61639.in2747 = phi i64 [ %.61639, %.lr.ph2749 ], [ %storemerge1868.in2773, %._crit_edge2738 ]
  %.572746 = phi i64 [ %965, %.lr.ph2749 ], [ %956, %._crit_edge2738 ]
  %964 = phi float [ %971, %.lr.ph2749 ], [ %961, %._crit_edge2738 ]
  %.61639 = add i64 %.61639.in2747, 1
  %965 = add nuw nsw i64 %.572746, 1
  %gep2752 = getelementptr %struct.complex, ptr %947, i64 %965
  %966 = tail call double @c_abs(ptr noundef %gep2752) #7
  %967 = fptrunc double %966 to float
  %968 = getelementptr inbounds float, ptr %5, i64 %.61639
  %969 = load float, ptr %968, align 4, !tbaa !56
  %970 = fadd float %969, %967
  store float %970, ptr %968, align 4, !tbaa !56
  %971 = fadd float %964, %967
  %exitcond3216.not = icmp eq i64 %.61639, %963
  br i1 %exitcond3216.not, label %._crit_edge2750, label %.lr.ph2749, !llvm.loop !85

._crit_edge2750:                                  ; preds = %.lr.ph2749, %._crit_edge2738
  %.lcssa27542758 = phi float [ %961, %._crit_edge2738 ], [ %971, %.lr.ph2749 ]
  %972 = getelementptr inbounds float, ptr %5, i64 %storemerge1868.in2773
  %973 = load float, ptr %972, align 4, !tbaa !56
  %974 = fadd float %.lcssa27542758, %973
  store float %974, ptr %972, align 4, !tbaa !56
  %storemerge1868 = add nsw i64 %storemerge1868.in2773, 1
  %.not1869.not = icmp slt i64 %storemerge1868.in2773, %933
  br i1 %.not1869.not, label %935, label %._crit_edge2768, !llvm.loop !86

._crit_edge2768:                                  ; preds = %._crit_edge2750, %._crit_edge2726
  %975 = phi i64 [ %storemerge18682762, %._crit_edge2726 ], [ %storemerge1868, %._crit_edge2750 ]
  %.not18702775 = icmp slt i64 %521, 4
  %.pre3300 = mul nsw i64 %975, %.01631
  br i1 %.not18702775, label %._crit_edge3284, label %.lr.ph2778

.lr.ph2778:                                       ; preds = %._crit_edge2768
  %invariant.gep2781 = getelementptr %struct.complex, ptr %4, i64 %.pre3300
  %976 = add nsw i64 %522, -1
  br label %977

977:                                              ; preds = %.lr.ph2778, %977
  %.582776 = phi i64 [ 0, %.lr.ph2778 ], [ %985, %977 ]
  %978 = phi float [ 0.000000e+00, %.lr.ph2778 ], [ %984, %977 ]
  %gep2782 = getelementptr %struct.complex, ptr %invariant.gep2781, i64 %.582776
  %979 = tail call double @c_abs(ptr noundef %gep2782) #7
  %980 = fptrunc double %979 to float
  %981 = getelementptr inbounds float, ptr %5, i64 %.582776
  %982 = load float, ptr %981, align 4, !tbaa !56
  %983 = fadd float %982, %980
  store float %983, ptr %981, align 4, !tbaa !56
  %984 = fadd float %978, %980
  %985 = add nuw i64 %.582776, 1
  %exitcond3217.not = icmp eq i64 %985, %976
  br i1 %exitcond3217.not, label %._crit_edge3284, label %977, !llvm.loop !87

._crit_edge3284:                                  ; preds = %977, %._crit_edge2768
  %986 = phi float [ 0.000000e+00, %._crit_edge2768 ], [ %984, %977 ]
  %.58.lcssa = phi i64 [ 0, %._crit_edge2768 ], [ %976, %977 ]
  %987 = getelementptr %struct.complex, ptr %4, i64 %.58.lcssa
  %988 = getelementptr %struct.complex, ptr %987, i64 %.pre3300
  %989 = load float, ptr %988, align 4, !tbaa !9
  %990 = fcmp oge float %989, 0.000000e+00
  %991 = fneg float %989
  %992 = select i1 %990, float %989, float %991
  %993 = fadd float %986, %992
  %994 = getelementptr inbounds float, ptr %5, i64 %.58.lcssa
  %995 = load float, ptr %994, align 4, !tbaa !56
  %996 = fadd float %995, %993
  store float %996, ptr %994, align 4, !tbaa !56
  %997 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #7
  %998 = getelementptr float, ptr %5, i64 %997
  %999 = getelementptr i8, ptr %998, i64 -4
  %1000 = load float, ptr %999, align 4, !tbaa !56
  br label %.loopexit1984

._crit_edge2788:                                  ; preds = %.preheader1971
  %1001 = shl nuw i64 %522, 2
  %scevgep3218 = getelementptr i8, ptr %5, i64 %1001
  %1002 = add nuw nsw i64 %522, 1
  %smax3219 = tail call i64 @llvm.smax.i64(i64 %521, i64 %1002)
  %1003 = sub nsw i64 %smax3219, %522
  %1004 = shl i64 %1003, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep3218, i8 0, i64 %1004, i1 false), !tbaa !56
  %1005 = load float, ptr %4, align 4, !tbaa !9
  %1006 = fcmp oge float %1005, 0.000000e+00
  %1007 = fneg float %1005
  %1008 = select i1 %1006, float %1005, float %1007
  store float %1008, ptr %10, align 4, !tbaa !56
  %.not1855.not2790 = icmp ugt i64 %521, 3
  br i1 %.not1855.not2790, label %.lr.ph2793, label %.thread3364

.lr.ph2793:                                       ; preds = %._crit_edge2788
  %invariant.gep2795 = getelementptr float, ptr %5, i64 %522
  %smax3220 = tail call i64 @llvm.smax.i64(i64 %522, i64 2)
  br label %1009

1009:                                             ; preds = %.lr.ph2793, %1009
  %.602791 = phi i64 [ 1, %.lr.ph2793 ], [ %1017, %1009 ]
  %1010 = phi float [ %1008, %.lr.ph2793 ], [ %1016, %1009 ]
  %1011 = getelementptr inbounds %struct.complex, ptr %4, i64 %.602791
  %1012 = tail call double @c_abs(ptr noundef nonnull %1011) #7
  %1013 = fptrunc double %1012 to float
  %gep2796 = getelementptr float, ptr %invariant.gep2795, i64 %.602791
  %1014 = load float, ptr %gep2796, align 4, !tbaa !56
  %1015 = fadd float %1014, %1013
  store float %1015, ptr %gep2796, align 4, !tbaa !56
  %1016 = fadd float %1010, %1013
  %1017 = add nuw nsw i64 %.602791, 1
  %exitcond3221.not = icmp eq i64 %1017, %smax3220
  br i1 %exitcond3221.not, label %1021, label %1009, !llvm.loop !88

.thread3364:                                      ; preds = %._crit_edge2788.thread, %._crit_edge2788
  %.ph = phi float [ %897, %._crit_edge2788.thread ], [ %1008, %._crit_edge2788 ]
  %1018 = getelementptr float, ptr %5, i64 %522
  %1019 = load float, ptr %1018, align 4, !tbaa !56
  %1020 = fadd float %.ph, %1019
  store float %1020, ptr %1018, align 4, !tbaa !56
  br label %._crit_edge2841

1021:                                             ; preds = %1009
  %1022 = getelementptr float, ptr %5, i64 %522
  %1023 = load float, ptr %1022, align 4, !tbaa !56
  %1024 = fadd float %1016, %1023
  store float %1024, ptr %1022, align 4, !tbaa !56
  %invariant.gep2821 = getelementptr i8, ptr %5, i64 -4
  %.not1857.not2829 = icmp sgt i64 %521, 3
  br i1 %.not1857.not2829, label %.lr.ph2832, label %._crit_edge2841

.lr.ph2832:                                       ; preds = %1021
  %1025 = add nsw i64 %522, -2
  br label %1026

1026:                                             ; preds = %.lr.ph2832, %._crit_edge2816
  %indvars.iv3222 = phi i64 [ 0, %.lr.ph2832 ], [ %indvars.iv.next3223, %._crit_edge2816 ]
  %storemerge18562830 = phi i64 [ 1, %.lr.ph2832 ], [ %1063, %._crit_edge2816 ]
  %.not18622800 = icmp ult i64 %storemerge18562830, 2
  %.pre3294 = mul nsw i64 %storemerge18562830, %.01631
  br i1 %.not18622800, label %._crit_edge2804, label %.lr.ph2803

.lr.ph2803:                                       ; preds = %1026
  %invariant.gep2806 = getelementptr %struct.complex, ptr %4, i64 %.pre3294
  br label %1027

1027:                                             ; preds = %.lr.ph2803, %1027
  %.612801 = phi i64 [ 0, %.lr.ph2803 ], [ %1035, %1027 ]
  %1028 = phi float [ 0.000000e+00, %.lr.ph2803 ], [ %1034, %1027 ]
  %gep2807 = getelementptr %struct.complex, ptr %invariant.gep2806, i64 %.612801
  %1029 = tail call double @c_abs(ptr noundef %gep2807) #7
  %1030 = fptrunc double %1029 to float
  %1031 = getelementptr inbounds float, ptr %5, i64 %.612801
  %1032 = load float, ptr %1031, align 4, !tbaa !56
  %1033 = fadd float %1032, %1030
  store float %1033, ptr %1031, align 4, !tbaa !56
  %1034 = fadd float %1028, %1030
  %1035 = add nuw nsw i64 %.612801, 1
  %exitcond3224.not = icmp eq i64 %1035, %indvars.iv3222
  br i1 %exitcond3224.not, label %._crit_edge2804, label %1027, !llvm.loop !89

._crit_edge2804:                                  ; preds = %1027, %1026
  %.lcssa28202825 = phi float [ 0.000000e+00, %1026 ], [ %1034, %1027 ]
  %.61.lcssa = phi i64 [ 0, %1026 ], [ %indvars.iv3222, %1027 ]
  %1036 = getelementptr %struct.complex, ptr %4, i64 %.pre3294
  %1037 = getelementptr %struct.complex, ptr %1036, i64 %.61.lcssa
  %1038 = load float, ptr %1037, align 4, !tbaa !9
  %1039 = fcmp oge float %1038, 0.000000e+00
  %1040 = fneg float %1038
  %1041 = select i1 %1039, float %1038, float %1040
  %1042 = fadd float %.lcssa28202825, %1041
  %gep2822 = getelementptr float, ptr %invariant.gep2821, i64 %storemerge18562830
  store float %1042, ptr %gep2822, align 4, !tbaa !56
  %1043 = add nuw nsw i64 %.61.lcssa, 1
  %1044 = getelementptr %struct.complex, ptr %1036, i64 %1043
  %1045 = load float, ptr %1044, align 4, !tbaa !9
  %1046 = fcmp oge float %1045, 0.000000e+00
  %1047 = fneg float %1045
  %1048 = select i1 %1046, float %1045, float %1047
  %1049 = load i64, ptr %3, align 8, !tbaa !5
  %1050 = add nsw i64 %1049, -1
  %1051 = add nuw nsw i64 %522, %storemerge18562830
  %.not1863.not2811 = icmp slt i64 %1051, %1050
  br i1 %.not1863.not2811, label %.lr.ph2815, label %._crit_edge2816

.lr.ph2815:                                       ; preds = %._crit_edge2804, %.lr.ph2815
  %.71640.in2813 = phi i64 [ %.71640, %.lr.ph2815 ], [ %1051, %._crit_edge2804 ]
  %.622812 = phi i64 [ %1053, %.lr.ph2815 ], [ %1043, %._crit_edge2804 ]
  %1052 = phi float [ %1056, %.lr.ph2815 ], [ %1048, %._crit_edge2804 ]
  %.71640 = add nuw nsw i64 %.71640.in2813, 1
  %1053 = add nuw nsw i64 %.622812, 1
  %gep2818 = getelementptr %struct.complex, ptr %1036, i64 %1053
  %1054 = tail call double @c_abs(ptr noundef %gep2818) #7
  %1055 = fptrunc double %1054 to float
  %1056 = fadd float %1052, %1055
  %1057 = getelementptr inbounds float, ptr %5, i64 %.71640
  %1058 = load float, ptr %1057, align 4, !tbaa !56
  %1059 = fadd float %1058, %1055
  store float %1059, ptr %1057, align 4, !tbaa !56
  %.not1863.not = icmp slt i64 %.71640, %1050
  br i1 %.not1863.not, label %.lr.ph2815, label %._crit_edge2816, !llvm.loop !90

._crit_edge2816:                                  ; preds = %.lr.ph2815, %._crit_edge2804
  %.lcssa28202826 = phi float [ %1048, %._crit_edge2804 ], [ %1056, %.lr.ph2815 ]
  %1060 = getelementptr float, ptr %1022, i64 %storemerge18562830
  %1061 = load float, ptr %1060, align 4, !tbaa !56
  %1062 = fadd float %.lcssa28202826, %1061
  store float %1062, ptr %1060, align 4, !tbaa !56
  %1063 = add nuw nsw i64 %storemerge18562830, 1
  %indvars.iv.next3223 = add nuw nsw i64 %indvars.iv3222, 1
  %exitcond3225.not = icmp eq i64 %indvars.iv3222, %1025
  br i1 %exitcond3225.not, label %.lr.ph2840, label %1026, !llvm.loop !91

.lr.ph2840:                                       ; preds = %._crit_edge2816
  %1064 = mul nsw i64 %522, %.01631
  %invariant.gep2843 = getelementptr %struct.complex, ptr %4, i64 %1064
  %1065 = add nsw i64 %522, -1
  br label %1066

1066:                                             ; preds = %.lr.ph2840, %1066
  %.632838 = phi i64 [ 0, %.lr.ph2840 ], [ %1074, %1066 ]
  %1067 = phi float [ 0.000000e+00, %.lr.ph2840 ], [ %1073, %1066 ]
  %gep2844 = getelementptr %struct.complex, ptr %invariant.gep2843, i64 %.632838
  %1068 = tail call double @c_abs(ptr noundef %gep2844) #7
  %1069 = fptrunc double %1068 to float
  %1070 = getelementptr inbounds float, ptr %5, i64 %.632838
  %1071 = load float, ptr %1070, align 4, !tbaa !56
  %1072 = fadd float %1071, %1069
  store float %1072, ptr %1070, align 4, !tbaa !56
  %1073 = fadd float %1067, %1069
  %1074 = add nuw i64 %.632838, 1
  %exitcond3226.not = icmp eq i64 %1074, %1065
  br i1 %exitcond3226.not, label %._crit_edge2841, label %1066, !llvm.loop !92

._crit_edge2841:                                  ; preds = %1066, %.thread3364, %1021
  %.pre-phi3297 = phi i64 [ %.01631, %.thread3364 ], [ %.01631, %1021 ], [ %1064, %1066 ]
  %1075 = phi float [ 0.000000e+00, %.thread3364 ], [ 0.000000e+00, %1021 ], [ %1073, %1066 ]
  %.63.lcssa = phi i64 [ 0, %.thread3364 ], [ 0, %1021 ], [ %1065, %1066 ]
  %1076 = getelementptr %struct.complex, ptr %4, i64 %.63.lcssa
  %1077 = getelementptr %struct.complex, ptr %1076, i64 %.pre-phi3297
  %1078 = load float, ptr %1077, align 4, !tbaa !9
  %1079 = fcmp oge float %1078, 0.000000e+00
  %1080 = fneg float %1078
  %1081 = select i1 %1079, float %1078, float %1080
  %1082 = fadd float %1075, %1081
  store float %1082, ptr %10, align 4, !tbaa !56
  %1083 = getelementptr inbounds float, ptr %5, i64 %.63.lcssa
  store float %1082, ptr %1083, align 4, !tbaa !56
  %1084 = load i64, ptr %3, align 8, !tbaa !5
  %.not1860.not2866 = icmp slt i64 %522, %1084
  br i1 %.not1860.not2866, label %.lr.ph2869, label %._crit_edge2870

.lr.ph2869:                                       ; preds = %._crit_edge2841
  %.not18612848 = icmp slt i64 %521, 2
  br label %1085

1085:                                             ; preds = %.lr.ph2869, %._crit_edge2852
  %storemerge1859.in2873.in = phi i64 [ %522, %.lr.ph2869 ], [ %storemerge1859.in2873, %._crit_edge2852 ]
  %storemerge1859.in2873 = add nsw i64 %storemerge1859.in2873.in, 1
  br i1 %.not18612848, label %._crit_edge2852, label %.lr.ph2851

.lr.ph2851:                                       ; preds = %1085
  %1086 = mul nsw i64 %storemerge1859.in2873, %.01631
  %invariant.gep2853 = getelementptr %struct.complex, ptr %4, i64 %1086
  br label %1087

1087:                                             ; preds = %.lr.ph2851, %1087
  %.642849 = phi i64 [ 0, %.lr.ph2851 ], [ %1095, %1087 ]
  %1088 = phi float [ 0.000000e+00, %.lr.ph2851 ], [ %1094, %1087 ]
  %gep2854 = getelementptr %struct.complex, ptr %invariant.gep2853, i64 %.642849
  %1089 = tail call double @c_abs(ptr noundef %gep2854) #7
  %1090 = fptrunc double %1089 to float
  %1091 = getelementptr inbounds float, ptr %5, i64 %.642849
  %1092 = load float, ptr %1091, align 4, !tbaa !56
  %1093 = fadd float %1092, %1090
  store float %1093, ptr %1091, align 4, !tbaa !56
  %1094 = fadd float %1088, %1090
  %1095 = add nuw i64 %.642849, 1
  %exitcond3227.not = icmp eq i64 %1095, %522
  br i1 %exitcond3227.not, label %._crit_edge2852, label %1087, !llvm.loop !93

._crit_edge2852:                                  ; preds = %1087, %1085
  %.lcssa28562861 = phi float [ 0.000000e+00, %1085 ], [ %1094, %1087 ]
  %gep2858 = getelementptr float, ptr %5, i64 %storemerge1859.in2873.in
  %1096 = load float, ptr %gep2858, align 4, !tbaa !56
  %1097 = fadd float %.lcssa28562861, %1096
  store float %1097, ptr %gep2858, align 4, !tbaa !56
  %.not1860.not = icmp slt i64 %storemerge1859.in2873, %1084
  br i1 %.not1860.not, label %1085, label %._crit_edge2870, !llvm.loop !94

._crit_edge2870:                                  ; preds = %._crit_edge2852, %._crit_edge2841
  %1098 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #7
  %1099 = getelementptr float, ptr %5, i64 %1098
  %1100 = getelementptr i8, ptr %1099, i64 -4
  %1101 = load float, ptr %1100, align 4, !tbaa !56
  br label %.loopexit1984

1102:                                             ; preds = %517
  %1103 = tail call i64 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.5) #7
  %.not1801 = icmp eq i64 %1103, 0
  br i1 %.not1801, label %1104, label %1106

1104:                                             ; preds = %1102
  %1105 = tail call i64 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.6) #7
  %.not1802 = icmp eq i64 %1105, 0
  br i1 %.not1802, label %.loopexit1984, label %1106

1106:                                             ; preds = %1104, %1102
  %1107 = load i64, ptr %3, align 8, !tbaa !5
  %1108 = add nsw i64 %1107, 1
  %1109 = sdiv i64 %1108, 2
  store i64 %1109, ptr %9, align 8, !tbaa !5
  store float 0.000000e+00, ptr %11, align 4, !tbaa !56
  store float 1.000000e+00, ptr %10, align 4, !tbaa !56
  %.not1803 = icmp eq i64 %15, 0
  br i1 %.not1803, label %1410, label %1110

1110:                                             ; preds = %1106
  br i1 %.not, label %1111, label %1255

1111:                                             ; preds = %1110
  store i64 0, ptr %8, align 8, !tbaa !5
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %.preheader1981, label %1112

.preheader1981:                                   ; preds = %1111
  %invariant.gep2433 = getelementptr i8, ptr %4, i64 8
  %.not1844.not2435 = icmp sgt i64 %1107, 0
  br i1 %.not1844.not2435, label %.lr.ph2437, label %._crit_edge2438

1112:                                             ; preds = %1111
  %1113 = add nsw i64 %1109, -3
  %.not18492413 = icmp slt i64 %1107, 5
  br i1 %.not18492413, label %._crit_edge2417, label %.lr.ph2416

.lr.ph2416:                                       ; preds = %1112, %.lr.ph2416
  %storemerge18482414 = phi i64 [ %1123, %.lr.ph2416 ], [ 0, %1112 ]
  %1114 = load i64, ptr %9, align 8, !tbaa !5
  %reass.sub3028 = sub i64 %1114, %storemerge18482414
  %1115 = add i64 %reass.sub3028, -2
  store i64 %1115, ptr %7, align 8, !tbaa !5
  %1116 = mul nsw i64 %storemerge18482414, %.01631
  %1117 = getelementptr %struct.complex, ptr %4, i64 %1114
  %1118 = getelementptr %struct.complex, ptr %1117, i64 %storemerge18482414
  %1119 = getelementptr i8, ptr %1118, i64 8
  %1120 = getelementptr %struct.complex, ptr %1119, i64 %1116
  %1121 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1120, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1122 = load i64, ptr %8, align 8, !tbaa !5
  %1123 = add nsw i64 %1122, 1
  store i64 %1123, ptr %8, align 8, !tbaa !5
  %.not1849.not = icmp slt i64 %1122, %1113
  br i1 %.not1849.not, label %.lr.ph2416, label %._crit_edge2417.loopexit, !llvm.loop !95

._crit_edge2417.loopexit:                         ; preds = %.lr.ph2416
  %.pre3257 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2417

._crit_edge2417:                                  ; preds = %._crit_edge2417.loopexit, %1112
  %1124 = phi i64 [ %.pre3257, %._crit_edge2417.loopexit ], [ %1109, %1112 ]
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not1851.not2418 = icmp sgt i64 %1124, 0
  br i1 %.not1851.not2418, label %.lr.ph2421, label %._crit_edge2422.thread

._crit_edge2422.thread:                           ; preds = %._crit_edge2417
  %1125 = load float, ptr %10, align 4, !tbaa !56
  %1126 = fadd float %1125, %1125
  %1127 = add i64 %1124, -1
  br label %._crit_edge2430

.lr.ph2421:                                       ; preds = %._crit_edge2417, %.lr.ph2421
  %storemerge18502419 = phi i64 [ %1135, %.lr.ph2421 ], [ 0, %._crit_edge2417 ]
  %1128 = load i64, ptr %9, align 8, !tbaa !5
  %1129 = add nsw i64 %storemerge18502419, -1
  %1130 = add i64 %1129, %1128
  store i64 %1130, ptr %7, align 8, !tbaa !5
  %1131 = mul nsw i64 %storemerge18502419, %.01631
  %1132 = getelementptr inbounds %struct.complex, ptr %4, i64 %1131
  %1133 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1132, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1134 = load i64, ptr %8, align 8, !tbaa !5
  %1135 = add nsw i64 %1134, 1
  store i64 %1135, ptr %8, align 8, !tbaa !5
  %.not1851.not = icmp slt i64 %1135, %1124
  br i1 %.not1851.not, label %.lr.ph2421, label %._crit_edge2422, !llvm.loop !96

._crit_edge2422:                                  ; preds = %.lr.ph2421
  %.pre3258 = load i64, ptr %9, align 8, !tbaa !5
  %1136 = load float, ptr %10, align 4, !tbaa !56
  %1137 = fadd float %1136, %1136
  %1138 = add i64 %.pre3258, -1
  %.not18522425 = icmp slt i64 %.pre3258, 2
  br i1 %.not18522425, label %._crit_edge2430, label %.lr.ph2429

.lr.ph2429:                                       ; preds = %._crit_edge2422
  %.promoted2423 = load float, ptr %11, align 4, !tbaa !56
  %1139 = add i64 %.01631, 1
  %invariant.gep3689 = getelementptr i8, ptr %4, i64 8
  br label %1140

1140:                                             ; preds = %.lr.ph2429, %1169
  %.816412427 = phi i64 [ %1138, %.lr.ph2429 ], [ %1172, %1169 ]
  %.652426 = phi i64 [ 0, %.lr.ph2429 ], [ %1173, %1169 ]
  %1141 = phi float [ %.promoted2423, %.lr.ph2429 ], [ %1171, %1169 ]
  %1142 = phi float [ %1137, %.lr.ph2429 ], [ %1170, %1169 ]
  %1143 = getelementptr inbounds %struct.complex, ptr %4, i64 %.816412427
  %1144 = load float, ptr %1143, align 4, !tbaa !9
  %1145 = fcmp une float %1144, 0.000000e+00
  br i1 %1145, label %1146, label %1155

1146:                                             ; preds = %1140
  %1147 = fcmp olt float %1141, %1144
  br i1 %1147, label %1148, label %1152

1148:                                             ; preds = %1146
  %1149 = fdiv float %1141, %1144
  %1150 = fmul float %1149, %1149
  %1151 = call float @llvm.fmuladd.f32(float %1142, float %1150, float 1.000000e+00)
  store float %1144, ptr %11, align 4, !tbaa !56
  br label %1155

1152:                                             ; preds = %1146
  %1153 = fdiv float %1144, %1141
  %1154 = call float @llvm.fmuladd.f32(float %1153, float %1153, float %1142)
  br label %1155

1155:                                             ; preds = %1148, %1152, %1140
  %1156 = phi float [ %1151, %1148 ], [ %1154, %1152 ], [ %1142, %1140 ]
  %1157 = phi float [ %1144, %1148 ], [ %1141, %1152 ], [ %1141, %1140 ]
  %gep3690 = getelementptr %struct.complex, ptr %invariant.gep3689, i64 %.816412427
  %1158 = load float, ptr %gep3690, align 4, !tbaa !9
  %1159 = fcmp une float %1158, 0.000000e+00
  br i1 %1159, label %1160, label %1169

1160:                                             ; preds = %1155
  %1161 = fcmp olt float %1157, %1158
  br i1 %1161, label %1162, label %1166

1162:                                             ; preds = %1160
  %1163 = fdiv float %1157, %1158
  %1164 = fmul float %1163, %1163
  %1165 = call float @llvm.fmuladd.f32(float %1156, float %1164, float 1.000000e+00)
  store float %1158, ptr %11, align 4, !tbaa !56
  br label %1169

1166:                                             ; preds = %1160
  %1167 = fdiv float %1158, %1157
  %1168 = call float @llvm.fmuladd.f32(float %1167, float %1167, float %1156)
  br label %1169

1169:                                             ; preds = %1162, %1166, %1155
  %1170 = phi float [ %1165, %1162 ], [ %1168, %1166 ], [ %1156, %1155 ]
  %1171 = phi float [ %1158, %1162 ], [ %1157, %1166 ], [ %1157, %1155 ]
  %1172 = add i64 %1139, %.816412427
  %1173 = add nuw i64 %.652426, 1
  %exitcond3190.not = icmp eq i64 %1173, %1138
  br i1 %exitcond3190.not, label %._crit_edge2430, label %1140, !llvm.loop !97

._crit_edge2430:                                  ; preds = %1169, %._crit_edge2422.thread, %._crit_edge2422
  %1174 = phi float [ %1137, %._crit_edge2422 ], [ %1126, %._crit_edge2422.thread ], [ %1170, %1169 ]
  %.81641.lcssa = phi i64 [ %1138, %._crit_edge2422 ], [ %1127, %._crit_edge2422.thread ], [ %1172, %1169 ]
  %1175 = getelementptr inbounds %struct.complex, ptr %4, i64 %.81641.lcssa
  %1176 = load float, ptr %1175, align 4, !tbaa !9
  %1177 = fcmp une float %1176, 0.000000e+00
  br i1 %1177, label %1178, label %.loopexit

1178:                                             ; preds = %._crit_edge2430
  %1179 = load float, ptr %11, align 4, !tbaa !56
  %1180 = fcmp olt float %1179, %1176
  br i1 %1180, label %1181, label %1185

1181:                                             ; preds = %1178
  %1182 = fdiv float %1179, %1176
  %1183 = fmul float %1182, %1182
  %1184 = call float @llvm.fmuladd.f32(float %1174, float %1183, float 1.000000e+00)
  store float %1176, ptr %11, align 4, !tbaa !56
  br label %.loopexit

1185:                                             ; preds = %1178
  %1186 = fdiv float %1176, %1179
  %1187 = call float @llvm.fmuladd.f32(float %1186, float %1186, float %1174)
  br label %.loopexit

.lr.ph2437:                                       ; preds = %.preheader1981, %.lr.ph2437
  %storemerge18432436 = phi i64 [ %1195, %.lr.ph2437 ], [ 0, %.preheader1981 ]
  %1188 = load i64, ptr %3, align 8, !tbaa !5
  %1189 = xor i64 %storemerge18432436, -1
  %1190 = add i64 %1188, %1189
  store i64 %1190, ptr %7, align 8, !tbaa !5
  %1191 = mul nsw i64 %storemerge18432436, %.01631
  %gep2434 = getelementptr %struct.complex, ptr %invariant.gep2433, i64 %storemerge18432436
  %1192 = getelementptr %struct.complex, ptr %gep2434, i64 %1191
  %1193 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1192, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1194 = load i64, ptr %8, align 8, !tbaa !5
  %1195 = add nsw i64 %1194, 1
  store i64 %1195, ptr %8, align 8, !tbaa !5
  %.not1844.not = icmp slt i64 %1195, %1109
  br i1 %.not1844.not, label %.lr.ph2437, label %._crit_edge2438.loopexit, !llvm.loop !98

._crit_edge2438.loopexit:                         ; preds = %.lr.ph2437
  %.pre3259 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2438

._crit_edge2438:                                  ; preds = %._crit_edge2438.loopexit, %.preheader1981
  %1196 = phi i64 [ %.pre3259, %._crit_edge2438.loopexit ], [ %1109, %.preheader1981 ]
  %1197 = add nsw i64 %1196, -2
  store i64 1, ptr %8, align 8, !tbaa !5
  %.not18462439 = icmp slt i64 %1196, 3
  br i1 %.not18462439, label %._crit_edge2443, label %.lr.ph2442

.lr.ph2442:                                       ; preds = %._crit_edge2438, %.lr.ph2442
  %storemerge18452440 = phi i64 [ %1203, %.lr.ph2442 ], [ 1, %._crit_edge2438 ]
  %1198 = add nsw i64 %storemerge18452440, 1
  %1199 = mul nsw i64 %1198, %.01631
  %1200 = getelementptr inbounds %struct.complex, ptr %4, i64 %1199
  %1201 = call i32 @classq_(ptr noundef nonnull %8, ptr noundef %1200, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1202 = load i64, ptr %8, align 8, !tbaa !5
  %1203 = add nsw i64 %1202, 1
  store i64 %1203, ptr %8, align 8, !tbaa !5
  %.not1846.not = icmp slt i64 %1202, %1197
  br i1 %.not1846.not, label %.lr.ph2442, label %._crit_edge2443, !llvm.loop !99

._crit_edge2443:                                  ; preds = %.lr.ph2442, %._crit_edge2438
  %1204 = load float, ptr %10, align 4, !tbaa !56
  %1205 = fadd float %1204, %1204
  %1206 = load float, ptr %4, align 4, !tbaa !9
  %1207 = fcmp une float %1206, 0.000000e+00
  br i1 %1207, label %1208, label %1218

1208:                                             ; preds = %._crit_edge2443
  %1209 = load float, ptr %11, align 4, !tbaa !56
  %1210 = fcmp olt float %1209, %1206
  br i1 %1210, label %1211, label %1215

1211:                                             ; preds = %1208
  %1212 = fdiv float %1209, %1206
  %1213 = fmul float %1212, %1212
  %1214 = call float @llvm.fmuladd.f32(float %1205, float %1213, float 1.000000e+00)
  store float %1206, ptr %11, align 4, !tbaa !56
  br label %1218

1215:                                             ; preds = %1208
  %1216 = fdiv float %1206, %1209
  %1217 = call float @llvm.fmuladd.f32(float %1216, float %1216, float %1205)
  br label %1218

1218:                                             ; preds = %1211, %1215, %._crit_edge2443
  %.promoted2445 = phi float [ %1214, %1211 ], [ %1217, %1215 ], [ %1205, %._crit_edge2443 ]
  %1219 = load i64, ptr %9, align 8, !tbaa !5
  %.not1847.not2446 = icmp sgt i64 %1219, 1
  br i1 %.not1847.not2446, label %.lr.ph2450, label %.loopexit

.lr.ph2450:                                       ; preds = %1218
  %.promoted2444 = load float, ptr %11, align 4, !tbaa !56
  %1220 = add i64 %.01631, 1
  %invariant.gep3691 = getelementptr i8, ptr %4, i64 8
  br label %1221

1221:                                             ; preds = %.lr.ph2450, %1250
  %.916422448 = phi i64 [ %.01631, %.lr.ph2450 ], [ %1253, %1250 ]
  %.662447 = phi i64 [ 1, %.lr.ph2450 ], [ %1254, %1250 ]
  %1222 = phi float [ %.promoted2444, %.lr.ph2450 ], [ %1252, %1250 ]
  %1223 = phi float [ %.promoted2445, %.lr.ph2450 ], [ %1251, %1250 ]
  %1224 = getelementptr inbounds %struct.complex, ptr %4, i64 %.916422448
  %1225 = load float, ptr %1224, align 4, !tbaa !9
  %1226 = fcmp une float %1225, 0.000000e+00
  br i1 %1226, label %1227, label %1236

1227:                                             ; preds = %1221
  %1228 = fcmp olt float %1222, %1225
  br i1 %1228, label %1229, label %1233

1229:                                             ; preds = %1227
  %1230 = fdiv float %1222, %1225
  %1231 = fmul float %1230, %1230
  %1232 = call float @llvm.fmuladd.f32(float %1223, float %1231, float 1.000000e+00)
  store float %1225, ptr %11, align 4, !tbaa !56
  br label %1236

1233:                                             ; preds = %1227
  %1234 = fdiv float %1225, %1222
  %1235 = call float @llvm.fmuladd.f32(float %1234, float %1234, float %1223)
  br label %1236

1236:                                             ; preds = %1229, %1233, %1221
  %1237 = phi float [ %1232, %1229 ], [ %1235, %1233 ], [ %1223, %1221 ]
  %1238 = phi float [ %1225, %1229 ], [ %1222, %1233 ], [ %1222, %1221 ]
  %gep3692 = getelementptr %struct.complex, ptr %invariant.gep3691, i64 %.916422448
  %1239 = load float, ptr %gep3692, align 4, !tbaa !9
  %1240 = fcmp une float %1239, 0.000000e+00
  br i1 %1240, label %1241, label %1250

1241:                                             ; preds = %1236
  %1242 = fcmp olt float %1238, %1239
  br i1 %1242, label %1243, label %1247

1243:                                             ; preds = %1241
  %1244 = fdiv float %1238, %1239
  %1245 = fmul float %1244, %1244
  %1246 = call float @llvm.fmuladd.f32(float %1237, float %1245, float 1.000000e+00)
  store float %1239, ptr %11, align 4, !tbaa !56
  br label %1250

1247:                                             ; preds = %1241
  %1248 = fdiv float %1239, %1238
  %1249 = call float @llvm.fmuladd.f32(float %1248, float %1248, float %1237)
  br label %1250

1250:                                             ; preds = %1243, %1247, %1236
  %1251 = phi float [ %1246, %1243 ], [ %1249, %1247 ], [ %1237, %1236 ]
  %1252 = phi float [ %1239, %1243 ], [ %1238, %1247 ], [ %1238, %1236 ]
  %1253 = add i64 %1220, %.916422448
  %1254 = add nuw nsw i64 %.662447, 1
  %exitcond3191.not = icmp eq i64 %1254, %1219
  br i1 %exitcond3191.not, label %.loopexit, label %1221, !llvm.loop !100

1255:                                             ; preds = %1110
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %.preheader1982, label %1256

.preheader1982:                                   ; preds = %1255
  store i64 1, ptr %8, align 8, !tbaa !5
  %.not1829.not2387 = icmp sgt i64 %1107, 2
  br i1 %.not1829.not2387, label %.lr.ph2389, label %._crit_edge2390

1256:                                             ; preds = %1255
  %1257 = add nsw i64 %1109, -2
  store i64 1, ptr %8, align 8, !tbaa !5
  %.not18362361 = icmp slt i64 %1107, 5
  br i1 %.not18362361, label %._crit_edge2365, label %.lr.ph2364

.lr.ph2364:                                       ; preds = %1256, %.lr.ph2364
  %storemerge18352362 = phi i64 [ %1264, %.lr.ph2364 ], [ 1, %1256 ]
  %1258 = load i64, ptr %9, align 8, !tbaa !5
  %1259 = add nsw i64 %1258, %storemerge18352362
  %1260 = mul nsw i64 %1259, %.01631
  %1261 = getelementptr inbounds %struct.complex, ptr %4, i64 %1260
  %1262 = call i32 @classq_(ptr noundef nonnull %8, ptr noundef %1261, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1263 = load i64, ptr %8, align 8, !tbaa !5
  %1264 = add nsw i64 %1263, 1
  store i64 %1264, ptr %8, align 8, !tbaa !5
  %.not1836.not = icmp slt i64 %1263, %1257
  br i1 %.not1836.not, label %.lr.ph2364, label %._crit_edge2365.loopexit, !llvm.loop !101

._crit_edge2365.loopexit:                         ; preds = %.lr.ph2364
  %.pre3249 = load i64, ptr %9, align 8, !tbaa !5
  %.pre3278 = add nsw i64 %.pre3249, -2
  br label %._crit_edge2365

._crit_edge2365:                                  ; preds = %._crit_edge2365.loopexit, %1256
  %.pre-phi3279 = phi i64 [ %.pre3278, %._crit_edge2365.loopexit ], [ %1257, %1256 ]
  %1265 = phi i64 [ %.pre3249, %._crit_edge2365.loopexit ], [ %1109, %1256 ]
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not18382366 = icmp slt i64 %1265, 2
  br i1 %.not18382366, label %._crit_edge2377, label %.lr.ph2369

.lr.ph2369:                                       ; preds = %._crit_edge2365, %.lr.ph2369
  %storemerge18372367 = phi i64 [ %1270, %.lr.ph2369 ], [ 0, %._crit_edge2365 ]
  %1266 = mul nsw i64 %storemerge18372367, %.01631
  %1267 = getelementptr inbounds %struct.complex, ptr %4, i64 %1266
  %1268 = call i32 @classq_(ptr noundef nonnull %9, ptr noundef %1267, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1269 = load i64, ptr %8, align 8, !tbaa !5
  %1270 = add nsw i64 %1269, 1
  store i64 %1270, ptr %8, align 8, !tbaa !5
  %.not1838.not = icmp slt i64 %1269, %.pre-phi3279
  br i1 %.not1838.not, label %.lr.ph2369, label %._crit_edge2370, !llvm.loop !102

._crit_edge2370:                                  ; preds = %.lr.ph2369
  %.pre3250 = load i64, ptr %9, align 8, !tbaa !5
  %.pre3280 = add nsw i64 %.pre3250, -2
  %invariant.gep2371 = getelementptr i8, ptr %4, i64 8
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not18402373 = icmp slt i64 %.pre3250, 2
  br i1 %.not18402373, label %._crit_edge2377, label %.lr.ph2376

.lr.ph2376:                                       ; preds = %._crit_edge2370, %.lr.ph2376
  %storemerge18392374 = phi i64 [ %1280, %.lr.ph2376 ], [ 0, %._crit_edge2370 ]
  %1271 = load i64, ptr %9, align 8, !tbaa !5
  %1272 = xor i64 %storemerge18392374, -1
  %1273 = add i64 %1271, %1272
  store i64 %1273, ptr %7, align 8, !tbaa !5
  %1274 = add nsw i64 %storemerge18392374, -1
  %1275 = add i64 %1274, %1271
  %1276 = mul nsw i64 %1275, %.01631
  %gep2372 = getelementptr %struct.complex, ptr %invariant.gep2371, i64 %storemerge18392374
  %1277 = getelementptr %struct.complex, ptr %gep2372, i64 %1276
  %1278 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1277, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1279 = load i64, ptr %8, align 8, !tbaa !5
  %1280 = add nsw i64 %1279, 1
  store i64 %1280, ptr %8, align 8, !tbaa !5
  %.not1840.not = icmp slt i64 %1279, %.pre3280
  br i1 %.not1840.not, label %.lr.ph2376, label %._crit_edge2377.loopexit, !llvm.loop !103

._crit_edge2377.loopexit:                         ; preds = %.lr.ph2376
  %.pre3251 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2377

._crit_edge2377:                                  ; preds = %._crit_edge2365, %._crit_edge2377.loopexit, %._crit_edge2370
  %1281 = phi i64 [ %.pre3251, %._crit_edge2377.loopexit ], [ %.pre3250, %._crit_edge2370 ], [ %1265, %._crit_edge2365 ]
  %1282 = load float, ptr %10, align 4, !tbaa !56
  %1283 = fadd float %1282, %1282
  %1284 = mul nsw i64 %1281, %.01631
  %1285 = sub nsw i64 %1284, %.01631
  %1286 = getelementptr inbounds %struct.complex, ptr %4, i64 %1285
  %1287 = load float, ptr %1286, align 4, !tbaa !9
  %1288 = fcmp une float %1287, 0.000000e+00
  br i1 %1288, label %1289, label %1299

1289:                                             ; preds = %._crit_edge2377
  %1290 = load float, ptr %11, align 4, !tbaa !56
  %1291 = fcmp olt float %1290, %1287
  br i1 %1291, label %1292, label %1296

1292:                                             ; preds = %1289
  %1293 = fdiv float %1290, %1287
  %1294 = fmul float %1293, %1293
  %1295 = call float @llvm.fmuladd.f32(float %1283, float %1294, float 1.000000e+00)
  store float %1287, ptr %11, align 4, !tbaa !56
  br label %1299

1296:                                             ; preds = %1289
  %1297 = fdiv float %1287, %1290
  %1298 = call float @llvm.fmuladd.f32(float %1297, float %1297, float %1283)
  br label %1299

1299:                                             ; preds = %1292, %1296, %._crit_edge2377
  %.promoted2379 = phi float [ %1295, %1292 ], [ %1298, %1296 ], [ %1283, %._crit_edge2377 ]
  %1300 = load i64, ptr %3, align 8, !tbaa !5
  %.not1842.not2380 = icmp slt i64 %1281, %1300
  br i1 %.not1842.not2380, label %.lr.ph2384, label %.loopexit

.lr.ph2384:                                       ; preds = %1299
  %.promoted2378 = load float, ptr %11, align 4, !tbaa !56
  %1301 = add i64 %.01631, 1
  %invariant.gep3685 = getelementptr i8, ptr %4, i64 8
  br label %1302

1302:                                             ; preds = %.lr.ph2384, %1331
  %.1016432382 = phi i64 [ %1284, %.lr.ph2384 ], [ %1334, %1331 ]
  %storemerge18412381 = phi i64 [ %1281, %.lr.ph2384 ], [ %1335, %1331 ]
  %1303 = phi float [ %.promoted2378, %.lr.ph2384 ], [ %1333, %1331 ]
  %1304 = phi float [ %.promoted2379, %.lr.ph2384 ], [ %1332, %1331 ]
  %1305 = getelementptr inbounds %struct.complex, ptr %4, i64 %.1016432382
  %1306 = load float, ptr %1305, align 4, !tbaa !9
  %1307 = fcmp une float %1306, 0.000000e+00
  br i1 %1307, label %1308, label %1317

1308:                                             ; preds = %1302
  %1309 = fcmp olt float %1303, %1306
  br i1 %1309, label %1310, label %1314

1310:                                             ; preds = %1308
  %1311 = fdiv float %1303, %1306
  %1312 = fmul float %1311, %1311
  %1313 = call float @llvm.fmuladd.f32(float %1304, float %1312, float 1.000000e+00)
  store float %1306, ptr %11, align 4, !tbaa !56
  br label %1317

1314:                                             ; preds = %1308
  %1315 = fdiv float %1306, %1303
  %1316 = call float @llvm.fmuladd.f32(float %1315, float %1315, float %1304)
  br label %1317

1317:                                             ; preds = %1310, %1314, %1302
  %1318 = phi float [ %1313, %1310 ], [ %1316, %1314 ], [ %1304, %1302 ]
  %1319 = phi float [ %1306, %1310 ], [ %1303, %1314 ], [ %1303, %1302 ]
  %gep3686 = getelementptr %struct.complex, ptr %invariant.gep3685, i64 %.1016432382
  %1320 = load float, ptr %gep3686, align 4, !tbaa !9
  %1321 = fcmp une float %1320, 0.000000e+00
  br i1 %1321, label %1322, label %1331

1322:                                             ; preds = %1317
  %1323 = fcmp olt float %1319, %1320
  br i1 %1323, label %1324, label %1328

1324:                                             ; preds = %1322
  %1325 = fdiv float %1319, %1320
  %1326 = fmul float %1325, %1325
  %1327 = call float @llvm.fmuladd.f32(float %1318, float %1326, float 1.000000e+00)
  store float %1320, ptr %11, align 4, !tbaa !56
  br label %1331

1328:                                             ; preds = %1322
  %1329 = fdiv float %1320, %1319
  %1330 = call float @llvm.fmuladd.f32(float %1329, float %1329, float %1318)
  br label %1331

1331:                                             ; preds = %1324, %1328, %1317
  %1332 = phi float [ %1327, %1324 ], [ %1330, %1328 ], [ %1318, %1317 ]
  %1333 = phi float [ %1320, %1324 ], [ %1319, %1328 ], [ %1319, %1317 ]
  %1334 = add i64 %1301, %.1016432382
  %1335 = add nsw i64 %storemerge18412381, 1
  %exitcond3188.not = icmp eq i64 %1335, %1300
  br i1 %exitcond3188.not, label %.loopexit, label %1302, !llvm.loop !104

.lr.ph2389:                                       ; preds = %.preheader1982, %.lr.ph2389
  %storemerge18282388 = phi i64 [ %1340, %.lr.ph2389 ], [ 1, %.preheader1982 ]
  %1336 = mul nsw i64 %storemerge18282388, %.01631
  %1337 = getelementptr inbounds %struct.complex, ptr %4, i64 %1336
  %1338 = call i32 @classq_(ptr noundef nonnull %8, ptr noundef %1337, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1339 = load i64, ptr %8, align 8, !tbaa !5
  %1340 = add nsw i64 %1339, 1
  store i64 %1340, ptr %8, align 8, !tbaa !5
  %.not1829.not = icmp slt i64 %1340, %1109
  br i1 %.not1829.not, label %.lr.ph2389, label %._crit_edge2390.loopexit, !llvm.loop !105

._crit_edge2390.loopexit:                         ; preds = %.lr.ph2389
  %.pre3253 = load i64, ptr %3, align 8, !tbaa !5
  %.pre3254 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2390

._crit_edge2390:                                  ; preds = %._crit_edge2390.loopexit, %.preheader1982
  %1341 = phi i64 [ %.pre3254, %._crit_edge2390.loopexit ], [ %1109, %.preheader1982 ]
  %1342 = phi i64 [ %.pre3253, %._crit_edge2390.loopexit ], [ %1107, %.preheader1982 ]
  store i64 %1341, ptr %8, align 8, !tbaa !5
  %.not1831.not2391 = icmp slt i64 %1341, %1342
  br i1 %.not1831.not2391, label %.lr.ph2394, label %._crit_edge2395

.lr.ph2394:                                       ; preds = %._crit_edge2390, %.lr.ph2394
  %storemerge18302392 = phi i64 [ %1347, %.lr.ph2394 ], [ %1341, %._crit_edge2390 ]
  %1343 = mul nsw i64 %storemerge18302392, %.01631
  %1344 = getelementptr inbounds %struct.complex, ptr %4, i64 %1343
  %1345 = call i32 @classq_(ptr noundef nonnull %9, ptr noundef %1344, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1346 = load i64, ptr %8, align 8, !tbaa !5
  %1347 = add nsw i64 %1346, 1
  store i64 %1347, ptr %8, align 8, !tbaa !5
  %.not1831.not = icmp slt i64 %1347, %1342
  br i1 %.not1831.not, label %.lr.ph2394, label %._crit_edge2395.loopexit, !llvm.loop !106

._crit_edge2395.loopexit:                         ; preds = %.lr.ph2394
  %.pre3255 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2395

._crit_edge2395:                                  ; preds = %._crit_edge2395.loopexit, %._crit_edge2390
  %1348 = phi i64 [ %.pre3255, %._crit_edge2395.loopexit ], [ %1341, %._crit_edge2390 ]
  %1349 = add nsw i64 %1348, -3
  %invariant.gep2396 = getelementptr i8, ptr %4, i64 16
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not18332398 = icmp slt i64 %1348, 3
  br i1 %.not18332398, label %._crit_edge2402, label %.lr.ph2401

.lr.ph2401:                                       ; preds = %._crit_edge2395, %.lr.ph2401
  %storemerge18322399 = phi i64 [ %1356, %.lr.ph2401 ], [ 0, %._crit_edge2395 ]
  %1350 = load i64, ptr %9, align 8, !tbaa !5
  %reass.sub = sub i64 %1350, %storemerge18322399
  %1351 = add i64 %reass.sub, -2
  store i64 %1351, ptr %7, align 8, !tbaa !5
  %1352 = mul nsw i64 %storemerge18322399, %.01631
  %gep2397 = getelementptr %struct.complex, ptr %invariant.gep2396, i64 %storemerge18322399
  %1353 = getelementptr %struct.complex, ptr %gep2397, i64 %1352
  %1354 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1353, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1355 = load i64, ptr %8, align 8, !tbaa !5
  %1356 = add nsw i64 %1355, 1
  store i64 %1356, ptr %8, align 8, !tbaa !5
  %.not1833.not = icmp slt i64 %1355, %1349
  br i1 %.not1833.not, label %.lr.ph2401, label %._crit_edge2402.loopexit, !llvm.loop !107

._crit_edge2402.loopexit:                         ; preds = %.lr.ph2401
  %.pre3256 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2402

._crit_edge2402:                                  ; preds = %._crit_edge2402.loopexit, %._crit_edge2395
  %1357 = phi i64 [ %.pre3256, %._crit_edge2402.loopexit ], [ %1348, %._crit_edge2395 ]
  %1358 = load float, ptr %10, align 4, !tbaa !56
  %1359 = fadd float %1358, %1358
  %.not18342405 = icmp slt i64 %1357, 2
  br i1 %.not18342405, label %._crit_edge2410, label %.lr.ph2409

.lr.ph2409:                                       ; preds = %._crit_edge2402
  %.promoted2403 = load float, ptr %11, align 4, !tbaa !56
  %1360 = add i64 %.01631, 1
  %1361 = add nsw i64 %1357, -2
  %invariant.gep3687 = getelementptr i8, ptr %4, i64 8
  br label %1362

1362:                                             ; preds = %.lr.ph2409, %1391
  %.1116442407 = phi i64 [ 0, %.lr.ph2409 ], [ %1394, %1391 ]
  %.672406 = phi i64 [ 0, %.lr.ph2409 ], [ %1395, %1391 ]
  %1363 = phi float [ %.promoted2403, %.lr.ph2409 ], [ %1393, %1391 ]
  %1364 = phi float [ %1359, %.lr.ph2409 ], [ %1392, %1391 ]
  %1365 = getelementptr inbounds %struct.complex, ptr %4, i64 %.1116442407
  %1366 = load float, ptr %1365, align 4, !tbaa !9
  %1367 = fcmp une float %1366, 0.000000e+00
  br i1 %1367, label %1368, label %1377

1368:                                             ; preds = %1362
  %1369 = fcmp olt float %1363, %1366
  br i1 %1369, label %1370, label %1374

1370:                                             ; preds = %1368
  %1371 = fdiv float %1363, %1366
  %1372 = fmul float %1371, %1371
  %1373 = call float @llvm.fmuladd.f32(float %1364, float %1372, float 1.000000e+00)
  store float %1366, ptr %11, align 4, !tbaa !56
  br label %1377

1374:                                             ; preds = %1368
  %1375 = fdiv float %1366, %1363
  %1376 = call float @llvm.fmuladd.f32(float %1375, float %1375, float %1364)
  br label %1377

1377:                                             ; preds = %1370, %1374, %1362
  %1378 = phi float [ %1373, %1370 ], [ %1376, %1374 ], [ %1364, %1362 ]
  %1379 = phi float [ %1366, %1370 ], [ %1363, %1374 ], [ %1363, %1362 ]
  %gep3688 = getelementptr %struct.complex, ptr %invariant.gep3687, i64 %.1116442407
  %1380 = load float, ptr %gep3688, align 4, !tbaa !9
  %1381 = fcmp une float %1380, 0.000000e+00
  br i1 %1381, label %1382, label %1391

1382:                                             ; preds = %1377
  %1383 = fcmp olt float %1379, %1380
  br i1 %1383, label %1384, label %1388

1384:                                             ; preds = %1382
  %1385 = fdiv float %1379, %1380
  %1386 = fmul float %1385, %1385
  %1387 = call float @llvm.fmuladd.f32(float %1378, float %1386, float 1.000000e+00)
  store float %1380, ptr %11, align 4, !tbaa !56
  br label %1391

1388:                                             ; preds = %1382
  %1389 = fdiv float %1380, %1379
  %1390 = call float @llvm.fmuladd.f32(float %1389, float %1389, float %1378)
  br label %1391

1391:                                             ; preds = %1384, %1388, %1377
  %1392 = phi float [ %1387, %1384 ], [ %1390, %1388 ], [ %1378, %1377 ]
  %1393 = phi float [ %1380, %1384 ], [ %1379, %1388 ], [ %1379, %1377 ]
  %1394 = add i64 %1360, %.1116442407
  %1395 = add nuw i64 %.672406, 1
  %exitcond3189.not = icmp eq i64 %.672406, %1361
  br i1 %exitcond3189.not, label %._crit_edge2410, label %1362, !llvm.loop !108

._crit_edge2410:                                  ; preds = %1391, %._crit_edge2402
  %1396 = phi float [ %1359, %._crit_edge2402 ], [ %1392, %1391 ]
  %.111644.lcssa = phi i64 [ 0, %._crit_edge2402 ], [ %1394, %1391 ]
  %1397 = getelementptr inbounds %struct.complex, ptr %4, i64 %.111644.lcssa
  %1398 = load float, ptr %1397, align 4, !tbaa !9
  %1399 = fcmp une float %1398, 0.000000e+00
  br i1 %1399, label %1400, label %.loopexit

1400:                                             ; preds = %._crit_edge2410
  %1401 = load float, ptr %11, align 4, !tbaa !56
  %1402 = fcmp olt float %1401, %1398
  br i1 %1402, label %1403, label %1407

1403:                                             ; preds = %1400
  %1404 = fdiv float %1401, %1398
  %1405 = fmul float %1404, %1404
  %1406 = call float @llvm.fmuladd.f32(float %1396, float %1405, float 1.000000e+00)
  store float %1398, ptr %11, align 4, !tbaa !56
  br label %.loopexit

1407:                                             ; preds = %1400
  %1408 = fdiv float %1398, %1401
  %1409 = call float @llvm.fmuladd.f32(float %1408, float %1408, float %1396)
  br label %.loopexit

1410:                                             ; preds = %1106
  br i1 %.not, label %1411, label %1524

1411:                                             ; preds = %1410
  store i64 0, ptr %8, align 8, !tbaa !5
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %.preheader1976, label %1412

.preheader1976:                                   ; preds = %1411
  %invariant.gep2527 = getelementptr i8, ptr %4, i64 16
  %.not1819.not2529 = icmp sgt i64 %1107, 0
  br i1 %.not1819.not2529, label %.lr.ph2531, label %._crit_edge2532

1412:                                             ; preds = %1411
  %1413 = add nsw i64 %1109, -2
  %.not18242509 = icmp slt i64 %1107, 3
  br i1 %.not18242509, label %._crit_edge2513, label %.lr.ph2512

.lr.ph2512:                                       ; preds = %1412, %.lr.ph2512
  %storemerge18232510 = phi i64 [ %1424, %.lr.ph2512 ], [ 0, %1412 ]
  %1414 = load i64, ptr %9, align 8, !tbaa !5
  %1415 = xor i64 %storemerge18232510, -1
  %1416 = add i64 %1414, %1415
  store i64 %1416, ptr %7, align 8, !tbaa !5
  %1417 = mul nsw i64 %storemerge18232510, %.01631
  %1418 = getelementptr %struct.complex, ptr %4, i64 %1414
  %1419 = getelementptr %struct.complex, ptr %1418, i64 %storemerge18232510
  %1420 = getelementptr i8, ptr %1419, i64 16
  %1421 = getelementptr %struct.complex, ptr %1420, i64 %1417
  %1422 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1421, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1423 = load i64, ptr %8, align 8, !tbaa !5
  %1424 = add nsw i64 %1423, 1
  store i64 %1424, ptr %8, align 8, !tbaa !5
  %.not1824.not = icmp slt i64 %1423, %1413
  br i1 %.not1824.not, label %.lr.ph2512, label %._crit_edge2513.loopexit, !llvm.loop !109

._crit_edge2513.loopexit:                         ; preds = %.lr.ph2512
  %.pre3270 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2513

._crit_edge2513:                                  ; preds = %._crit_edge2513.loopexit, %1412
  %1425 = phi i64 [ %.pre3270, %._crit_edge2513.loopexit ], [ %1109, %1412 ]
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not1826.not2514 = icmp sgt i64 %1425, 0
  br i1 %.not1826.not2514, label %.lr.ph2517, label %._crit_edge2518.thread

._crit_edge2518.thread:                           ; preds = %._crit_edge2513
  %1426 = load float, ptr %10, align 4, !tbaa !56
  %1427 = fadd float %1426, %1426
  br label %.loopexit

.lr.ph2517:                                       ; preds = %._crit_edge2513, %.lr.ph2517
  %storemerge18252515 = phi i64 [ %1434, %.lr.ph2517 ], [ 0, %._crit_edge2513 ]
  %1428 = load i64, ptr %9, align 8, !tbaa !5
  %1429 = add nsw i64 %1428, %storemerge18252515
  store i64 %1429, ptr %7, align 8, !tbaa !5
  %1430 = mul nsw i64 %storemerge18252515, %.01631
  %1431 = getelementptr inbounds %struct.complex, ptr %4, i64 %1430
  %1432 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1431, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1433 = load i64, ptr %8, align 8, !tbaa !5
  %1434 = add nsw i64 %1433, 1
  store i64 %1434, ptr %8, align 8, !tbaa !5
  %.not1826.not = icmp slt i64 %1434, %1425
  br i1 %.not1826.not, label %.lr.ph2517, label %._crit_edge2518, !llvm.loop !110

._crit_edge2518:                                  ; preds = %.lr.ph2517
  %.pre3271 = load i64, ptr %9, align 8, !tbaa !5
  %1435 = load float, ptr %10, align 4, !tbaa !56
  %1436 = fadd float %1435, %1435
  %.not1827.not2521 = icmp sgt i64 %.pre3271, 0
  br i1 %.not1827.not2521, label %.lr.ph2525, label %.loopexit

.lr.ph2525:                                       ; preds = %._crit_edge2518
  %.promoted2519 = load float, ptr %11, align 4, !tbaa !56
  %1437 = add i64 %.01631, 1
  %invariant.gep3697 = getelementptr i8, ptr %4, i64 8
  br label %1438

1438:                                             ; preds = %.lr.ph2525, %1467
  %.1216452523 = phi i64 [ %.pre3271, %.lr.ph2525 ], [ %1470, %1467 ]
  %.682522 = phi i64 [ 0, %.lr.ph2525 ], [ %1471, %1467 ]
  %1439 = phi float [ %.promoted2519, %.lr.ph2525 ], [ %1469, %1467 ]
  %1440 = phi float [ %1436, %.lr.ph2525 ], [ %1468, %1467 ]
  %1441 = getelementptr inbounds %struct.complex, ptr %4, i64 %.1216452523
  %1442 = load float, ptr %1441, align 4, !tbaa !9
  %1443 = fcmp une float %1442, 0.000000e+00
  br i1 %1443, label %1444, label %1453

1444:                                             ; preds = %1438
  %1445 = fcmp olt float %1439, %1442
  br i1 %1445, label %1446, label %1450

1446:                                             ; preds = %1444
  %1447 = fdiv float %1439, %1442
  %1448 = fmul float %1447, %1447
  %1449 = call float @llvm.fmuladd.f32(float %1440, float %1448, float 1.000000e+00)
  store float %1442, ptr %11, align 4, !tbaa !56
  br label %1453

1450:                                             ; preds = %1444
  %1451 = fdiv float %1442, %1439
  %1452 = call float @llvm.fmuladd.f32(float %1451, float %1451, float %1440)
  br label %1453

1453:                                             ; preds = %1446, %1450, %1438
  %1454 = phi float [ %1449, %1446 ], [ %1452, %1450 ], [ %1440, %1438 ]
  %1455 = phi float [ %1442, %1446 ], [ %1439, %1450 ], [ %1439, %1438 ]
  %gep3698 = getelementptr %struct.complex, ptr %invariant.gep3697, i64 %.1216452523
  %1456 = load float, ptr %gep3698, align 4, !tbaa !9
  %1457 = fcmp une float %1456, 0.000000e+00
  br i1 %1457, label %1458, label %1467

1458:                                             ; preds = %1453
  %1459 = fcmp olt float %1455, %1456
  br i1 %1459, label %1460, label %1464

1460:                                             ; preds = %1458
  %1461 = fdiv float %1455, %1456
  %1462 = fmul float %1461, %1461
  %1463 = call float @llvm.fmuladd.f32(float %1454, float %1462, float 1.000000e+00)
  store float %1456, ptr %11, align 4, !tbaa !56
  br label %1467

1464:                                             ; preds = %1458
  %1465 = fdiv float %1456, %1455
  %1466 = call float @llvm.fmuladd.f32(float %1465, float %1465, float %1454)
  br label %1467

1467:                                             ; preds = %1460, %1464, %1453
  %1468 = phi float [ %1463, %1460 ], [ %1466, %1464 ], [ %1454, %1453 ]
  %1469 = phi float [ %1456, %1460 ], [ %1455, %1464 ], [ %1455, %1453 ]
  %1470 = add i64 %1437, %.1216452523
  %1471 = add nuw nsw i64 %.682522, 1
  %exitcond3194.not = icmp eq i64 %1471, %.pre3271
  br i1 %exitcond3194.not, label %.loopexit, label %1438, !llvm.loop !111

.lr.ph2531:                                       ; preds = %.preheader1976, %.lr.ph2531
  %storemerge18182530 = phi i64 [ %1479, %.lr.ph2531 ], [ 0, %.preheader1976 ]
  %1472 = load i64, ptr %3, align 8, !tbaa !5
  %1473 = xor i64 %storemerge18182530, -1
  %1474 = add i64 %1472, %1473
  store i64 %1474, ptr %7, align 8, !tbaa !5
  %1475 = mul nsw i64 %storemerge18182530, %.01631
  %gep2528 = getelementptr %struct.complex, ptr %invariant.gep2527, i64 %storemerge18182530
  %1476 = getelementptr %struct.complex, ptr %gep2528, i64 %1475
  %1477 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1476, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1478 = load i64, ptr %8, align 8, !tbaa !5
  %1479 = add nsw i64 %1478, 1
  store i64 %1479, ptr %8, align 8, !tbaa !5
  %.not1819.not = icmp slt i64 %1479, %1109
  br i1 %.not1819.not, label %.lr.ph2531, label %._crit_edge2532.loopexit, !llvm.loop !112

._crit_edge2532.loopexit:                         ; preds = %.lr.ph2531
  %.pre3272 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2532

._crit_edge2532:                                  ; preds = %._crit_edge2532.loopexit, %.preheader1976
  %1480 = phi i64 [ %.pre3272, %._crit_edge2532.loopexit ], [ %1109, %.preheader1976 ]
  store i64 1, ptr %8, align 8, !tbaa !5
  %.not1821.not2533 = icmp sgt i64 %1480, 1
  br i1 %.not1821.not2533, label %.lr.ph2536, label %._crit_edge2537

.lr.ph2536:                                       ; preds = %._crit_edge2532, %.lr.ph2536
  %storemerge18202534 = phi i64 [ %1485, %.lr.ph2536 ], [ 1, %._crit_edge2532 ]
  %1481 = mul nsw i64 %storemerge18202534, %.01631
  %1482 = getelementptr inbounds %struct.complex, ptr %4, i64 %1481
  %1483 = call i32 @classq_(ptr noundef nonnull %8, ptr noundef %1482, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1484 = load i64, ptr %8, align 8, !tbaa !5
  %1485 = add nsw i64 %1484, 1
  store i64 %1485, ptr %8, align 8, !tbaa !5
  %.not1821.not = icmp slt i64 %1485, %1480
  br i1 %.not1821.not, label %.lr.ph2536, label %._crit_edge2537.loopexit, !llvm.loop !113

._crit_edge2537.loopexit:                         ; preds = %.lr.ph2536
  %.pre3273 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2537

._crit_edge2537:                                  ; preds = %._crit_edge2537.loopexit, %._crit_edge2532
  %1486 = phi i64 [ %.pre3273, %._crit_edge2537.loopexit ], [ %1480, %._crit_edge2532 ]
  %1487 = load float, ptr %10, align 4, !tbaa !56
  %1488 = fadd float %1487, %1487
  %.not1822.not2540 = icmp sgt i64 %1486, 0
  br i1 %.not1822.not2540, label %.lr.ph2544, label %.loopexit

.lr.ph2544:                                       ; preds = %._crit_edge2537
  %.promoted2538 = load float, ptr %11, align 4, !tbaa !56
  %1489 = add i64 %.01631, 1
  %invariant.gep3699 = getelementptr i8, ptr %4, i64 8
  br label %1490

1490:                                             ; preds = %.lr.ph2544, %1519
  %.1316462542 = phi i64 [ 0, %.lr.ph2544 ], [ %1522, %1519 ]
  %.692541 = phi i64 [ 0, %.lr.ph2544 ], [ %1523, %1519 ]
  %1491 = phi float [ %.promoted2538, %.lr.ph2544 ], [ %1521, %1519 ]
  %1492 = phi float [ %1488, %.lr.ph2544 ], [ %1520, %1519 ]
  %1493 = getelementptr inbounds %struct.complex, ptr %4, i64 %.1316462542
  %1494 = load float, ptr %1493, align 4, !tbaa !9
  %1495 = fcmp une float %1494, 0.000000e+00
  br i1 %1495, label %1496, label %1505

1496:                                             ; preds = %1490
  %1497 = fcmp olt float %1491, %1494
  br i1 %1497, label %1498, label %1502

1498:                                             ; preds = %1496
  %1499 = fdiv float %1491, %1494
  %1500 = fmul float %1499, %1499
  %1501 = call float @llvm.fmuladd.f32(float %1492, float %1500, float 1.000000e+00)
  store float %1494, ptr %11, align 4, !tbaa !56
  br label %1505

1502:                                             ; preds = %1496
  %1503 = fdiv float %1494, %1491
  %1504 = call float @llvm.fmuladd.f32(float %1503, float %1503, float %1492)
  br label %1505

1505:                                             ; preds = %1498, %1502, %1490
  %1506 = phi float [ %1501, %1498 ], [ %1504, %1502 ], [ %1492, %1490 ]
  %1507 = phi float [ %1494, %1498 ], [ %1491, %1502 ], [ %1491, %1490 ]
  %gep3700 = getelementptr %struct.complex, ptr %invariant.gep3699, i64 %.1316462542
  %1508 = load float, ptr %gep3700, align 4, !tbaa !9
  %1509 = fcmp une float %1508, 0.000000e+00
  br i1 %1509, label %1510, label %1519

1510:                                             ; preds = %1505
  %1511 = fcmp olt float %1507, %1508
  br i1 %1511, label %1512, label %1516

1512:                                             ; preds = %1510
  %1513 = fdiv float %1507, %1508
  %1514 = fmul float %1513, %1513
  %1515 = call float @llvm.fmuladd.f32(float %1506, float %1514, float 1.000000e+00)
  store float %1508, ptr %11, align 4, !tbaa !56
  br label %1519

1516:                                             ; preds = %1510
  %1517 = fdiv float %1508, %1507
  %1518 = call float @llvm.fmuladd.f32(float %1517, float %1517, float %1506)
  br label %1519

1519:                                             ; preds = %1512, %1516, %1505
  %1520 = phi float [ %1515, %1512 ], [ %1518, %1516 ], [ %1506, %1505 ]
  %1521 = phi float [ %1508, %1512 ], [ %1507, %1516 ], [ %1507, %1505 ]
  %1522 = add i64 %1489, %.1316462542
  %1523 = add nuw nsw i64 %.692541, 1
  %exitcond3195.not = icmp eq i64 %1523, %1486
  br i1 %exitcond3195.not, label %.loopexit, label %1490, !llvm.loop !114

1524:                                             ; preds = %1410
  store i64 1, ptr %8, align 8, !tbaa !5
  %.not1804.not2481 = icmp sgt i64 %1107, 2
  br i1 %.not1796.not.not.not.not.not.not.not.not, label %.preheader1978, label %.preheader1979

.preheader1979:                                   ; preds = %1524
  br i1 %.not1804.not2481, label %.lr.ph2454, label %._crit_edge2455

.preheader1978:                                   ; preds = %1524
  br i1 %.not1804.not2481, label %.lr.ph2483, label %._crit_edge2484

.lr.ph2454:                                       ; preds = %.preheader1979, %.lr.ph2454
  %storemerge18102453 = phi i64 [ %1532, %.lr.ph2454 ], [ 1, %.preheader1979 ]
  %1525 = load i64, ptr %9, align 8, !tbaa !5
  %1526 = add nsw i64 %storemerge18102453, 1
  %1527 = add i64 %1526, %1525
  %1528 = mul nsw i64 %1527, %.01631
  %1529 = getelementptr inbounds %struct.complex, ptr %4, i64 %1528
  %1530 = call i32 @classq_(ptr noundef nonnull %8, ptr noundef %1529, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1531 = load i64, ptr %8, align 8, !tbaa !5
  %1532 = add nsw i64 %1531, 1
  store i64 %1532, ptr %8, align 8, !tbaa !5
  %.not1811.not = icmp slt i64 %1532, %1109
  br i1 %.not1811.not, label %.lr.ph2454, label %._crit_edge2455.loopexit, !llvm.loop !115

._crit_edge2455.loopexit:                         ; preds = %.lr.ph2454
  %.pre3261 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2455

._crit_edge2455:                                  ; preds = %._crit_edge2455.loopexit, %.preheader1979
  %1533 = phi i64 [ %.pre3261, %._crit_edge2455.loopexit ], [ %1109, %.preheader1979 ]
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not1813.not2456 = icmp sgt i64 %1533, 0
  br i1 %.not1813.not2456, label %.lr.ph2459, label %._crit_edge2467

.lr.ph2459:                                       ; preds = %._crit_edge2455, %.lr.ph2459
  %storemerge18122457 = phi i64 [ %1538, %.lr.ph2459 ], [ 0, %._crit_edge2455 ]
  %1534 = mul nsw i64 %storemerge18122457, %.01631
  %1535 = getelementptr inbounds %struct.complex, ptr %4, i64 %1534
  %1536 = call i32 @classq_(ptr noundef nonnull %9, ptr noundef %1535, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1537 = load i64, ptr %8, align 8, !tbaa !5
  %1538 = add nsw i64 %1537, 1
  store i64 %1538, ptr %8, align 8, !tbaa !5
  %.not1813.not = icmp slt i64 %1538, %1533
  br i1 %.not1813.not, label %.lr.ph2459, label %._crit_edge2460, !llvm.loop !116

._crit_edge2460:                                  ; preds = %.lr.ph2459
  %.pre3262 = load i64, ptr %9, align 8, !tbaa !5
  %1539 = add nsw i64 %.pre3262, -2
  %invariant.gep2461 = getelementptr i8, ptr %4, i64 8
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not18152463 = icmp slt i64 %.pre3262, 2
  br i1 %.not18152463, label %._crit_edge2467, label %.lr.ph2466

.lr.ph2466:                                       ; preds = %._crit_edge2460, %.lr.ph2466
  %storemerge18142464 = phi i64 [ %1548, %.lr.ph2466 ], [ 0, %._crit_edge2460 ]
  %1540 = load i64, ptr %9, align 8, !tbaa !5
  %1541 = xor i64 %storemerge18142464, -1
  %1542 = add i64 %1540, %1541
  store i64 %1542, ptr %7, align 8, !tbaa !5
  %1543 = add nsw i64 %1540, %storemerge18142464
  %1544 = mul nsw i64 %1543, %.01631
  %gep2462 = getelementptr %struct.complex, ptr %invariant.gep2461, i64 %storemerge18142464
  %1545 = getelementptr %struct.complex, ptr %gep2462, i64 %1544
  %1546 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1545, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1547 = load i64, ptr %8, align 8, !tbaa !5
  %1548 = add nsw i64 %1547, 1
  store i64 %1548, ptr %8, align 8, !tbaa !5
  %.not1815.not = icmp slt i64 %1547, %1539
  br i1 %.not1815.not, label %.lr.ph2466, label %._crit_edge2467.loopexit, !llvm.loop !117

._crit_edge2467.loopexit:                         ; preds = %.lr.ph2466
  %.pre3263 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2467

._crit_edge2467:                                  ; preds = %._crit_edge2455, %._crit_edge2467.loopexit, %._crit_edge2460
  %storemerge1816.in2470 = phi i64 [ %.pre3263, %._crit_edge2467.loopexit ], [ %.pre3262, %._crit_edge2460 ], [ %1533, %._crit_edge2455 ]
  %1549 = load float, ptr %10, align 4, !tbaa !56
  %1550 = fadd float %1549, %1549
  %1551 = mul nsw i64 %storemerge1816.in2470, %.01631
  %1552 = getelementptr inbounds %struct.complex, ptr %4, i64 %1551
  %1553 = load float, ptr %1552, align 4, !tbaa !9
  %1554 = fcmp une float %1553, 0.000000e+00
  %1555 = load float, ptr %11, align 4, !tbaa !56
  br i1 %1554, label %1556, label %._crit_edge2467._crit_edge

1556:                                             ; preds = %._crit_edge2467
  %1557 = fcmp olt float %1555, %1553
  br i1 %1557, label %1558, label %1562

1558:                                             ; preds = %1556
  %1559 = fdiv float %1555, %1553
  %1560 = fmul float %1559, %1559
  %1561 = call float @llvm.fmuladd.f32(float %1550, float %1560, float 1.000000e+00)
  store float %1553, ptr %11, align 4, !tbaa !56
  br label %._crit_edge2467._crit_edge

1562:                                             ; preds = %1556
  %1563 = fdiv float %1553, %1555
  %1564 = call float @llvm.fmuladd.f32(float %1563, float %1563, float %1550)
  br label %._crit_edge2467._crit_edge

._crit_edge2467._crit_edge:                       ; preds = %._crit_edge2467, %1558, %1562
  %.promoted2469 = phi float [ %1561, %1558 ], [ %1564, %1562 ], [ %1550, %._crit_edge2467 ]
  %.promoted2468 = phi float [ %1553, %1558 ], [ %1555, %1562 ], [ %1555, %._crit_edge2467 ]
  %1565 = add nsw i64 %1551, %.01631
  %1566 = load i64, ptr %3, align 8, !tbaa !5
  %1567 = add nsw i64 %1566, -1
  %.not1817.not2472 = icmp slt i64 %storemerge1816.in2470, %1567
  br i1 %.not1817.not2472, label %.lr.ph2475, label %._crit_edge2476

.lr.ph2475:                                       ; preds = %._crit_edge2467._crit_edge
  %1568 = add i64 %.01631, 1
  %invariant.gep3693 = getelementptr i8, ptr %4, i64 8
  br label %1569

1569:                                             ; preds = %.lr.ph2475, %1598
  %storemerge1816.in2480.in = phi i64 [ %storemerge1816.in2470, %.lr.ph2475 ], [ %storemerge1816.in2480, %1598 ]
  %.1416472473 = phi i64 [ %1565, %.lr.ph2475 ], [ %1601, %1598 ]
  %1570 = phi float [ %.promoted2468, %.lr.ph2475 ], [ %1600, %1598 ]
  %1571 = phi float [ %.promoted2469, %.lr.ph2475 ], [ %1599, %1598 ]
  %storemerge1816.in2480 = add nsw i64 %storemerge1816.in2480.in, 1
  %1572 = getelementptr inbounds %struct.complex, ptr %4, i64 %.1416472473
  %1573 = load float, ptr %1572, align 4, !tbaa !9
  %1574 = fcmp une float %1573, 0.000000e+00
  br i1 %1574, label %1575, label %1584

1575:                                             ; preds = %1569
  %1576 = fcmp olt float %1570, %1573
  br i1 %1576, label %1577, label %1581

1577:                                             ; preds = %1575
  %1578 = fdiv float %1570, %1573
  %1579 = fmul float %1578, %1578
  %1580 = call float @llvm.fmuladd.f32(float %1571, float %1579, float 1.000000e+00)
  store float %1573, ptr %11, align 4, !tbaa !56
  br label %1584

1581:                                             ; preds = %1575
  %1582 = fdiv float %1573, %1570
  %1583 = call float @llvm.fmuladd.f32(float %1582, float %1582, float %1571)
  br label %1584

1584:                                             ; preds = %1577, %1581, %1569
  %1585 = phi float [ %1580, %1577 ], [ %1583, %1581 ], [ %1571, %1569 ]
  %1586 = phi float [ %1573, %1577 ], [ %1570, %1581 ], [ %1570, %1569 ]
  %gep3694 = getelementptr %struct.complex, ptr %invariant.gep3693, i64 %.1416472473
  %1587 = load float, ptr %gep3694, align 4, !tbaa !9
  %1588 = fcmp une float %1587, 0.000000e+00
  br i1 %1588, label %1589, label %1598

1589:                                             ; preds = %1584
  %1590 = fcmp olt float %1586, %1587
  br i1 %1590, label %1591, label %1595

1591:                                             ; preds = %1589
  %1592 = fdiv float %1586, %1587
  %1593 = fmul float %1592, %1592
  %1594 = call float @llvm.fmuladd.f32(float %1585, float %1593, float 1.000000e+00)
  store float %1587, ptr %11, align 4, !tbaa !56
  br label %1598

1595:                                             ; preds = %1589
  %1596 = fdiv float %1587, %1586
  %1597 = call float @llvm.fmuladd.f32(float %1596, float %1596, float %1585)
  br label %1598

1598:                                             ; preds = %1591, %1595, %1584
  %1599 = phi float [ %1594, %1591 ], [ %1597, %1595 ], [ %1585, %1584 ]
  %1600 = phi float [ %1587, %1591 ], [ %1586, %1595 ], [ %1586, %1584 ]
  %1601 = add i64 %1568, %.1416472473
  %.not1817.not = icmp slt i64 %storemerge1816.in2480, %1567
  br i1 %.not1817.not, label %1569, label %._crit_edge2476, !llvm.loop !118

._crit_edge2476:                                  ; preds = %1598, %._crit_edge2467._crit_edge
  %1602 = phi float [ %.promoted2469, %._crit_edge2467._crit_edge ], [ %1599, %1598 ]
  %1603 = phi float [ %.promoted2468, %._crit_edge2467._crit_edge ], [ %1600, %1598 ]
  %.141647.lcssa = phi i64 [ %1565, %._crit_edge2467._crit_edge ], [ %1601, %1598 ]
  %1604 = getelementptr inbounds %struct.complex, ptr %4, i64 %.141647.lcssa
  %1605 = load float, ptr %1604, align 4, !tbaa !9
  %1606 = fcmp une float %1605, 0.000000e+00
  br i1 %1606, label %1607, label %.loopexit

1607:                                             ; preds = %._crit_edge2476
  %1608 = fcmp olt float %1603, %1605
  br i1 %1608, label %1609, label %1613

1609:                                             ; preds = %1607
  %1610 = fdiv float %1603, %1605
  %1611 = fmul float %1610, %1610
  %1612 = call float @llvm.fmuladd.f32(float %1602, float %1611, float 1.000000e+00)
  store float %1605, ptr %11, align 4, !tbaa !56
  br label %.loopexit

1613:                                             ; preds = %1607
  %1614 = fdiv float %1605, %1603
  %1615 = call float @llvm.fmuladd.f32(float %1614, float %1614, float %1602)
  br label %.loopexit

.lr.ph2483:                                       ; preds = %.preheader1978, %.lr.ph2483
  %storemerge2482 = phi i64 [ %1621, %.lr.ph2483 ], [ 1, %.preheader1978 ]
  %1616 = add nsw i64 %storemerge2482, 1
  %1617 = mul nsw i64 %1616, %.01631
  %1618 = getelementptr inbounds %struct.complex, ptr %4, i64 %1617
  %1619 = call i32 @classq_(ptr noundef nonnull %8, ptr noundef %1618, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1620 = load i64, ptr %8, align 8, !tbaa !5
  %1621 = add nsw i64 %1620, 1
  store i64 %1621, ptr %8, align 8, !tbaa !5
  %.not1804.not = icmp slt i64 %1621, %1109
  br i1 %.not1804.not, label %.lr.ph2483, label %._crit_edge2484.loopexit, !llvm.loop !119

._crit_edge2484.loopexit:                         ; preds = %.lr.ph2483
  %.pre3266 = load i64, ptr %3, align 8, !tbaa !5
  %storemerge1805.in2485.pre = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2484

._crit_edge2484:                                  ; preds = %._crit_edge2484.loopexit, %.preheader1978
  %storemerge1805.in2485 = phi i64 [ %storemerge1805.in2485.pre, %._crit_edge2484.loopexit ], [ %1109, %.preheader1978 ]
  %1622 = phi i64 [ %.pre3266, %._crit_edge2484.loopexit ], [ %1107, %.preheader1978 ]
  %storemerge18052486 = add nsw i64 %storemerge1805.in2485, 1
  store i64 %storemerge18052486, ptr %8, align 8, !tbaa !5
  %.not1806.not2487 = icmp slt i64 %storemerge1805.in2485, %1622
  br i1 %.not1806.not2487, label %.lr.ph2490, label %._crit_edge2491

.lr.ph2490:                                       ; preds = %._crit_edge2484, %.lr.ph2490
  %storemerge18052488 = phi i64 [ %storemerge1805, %.lr.ph2490 ], [ %storemerge18052486, %._crit_edge2484 ]
  %1623 = mul nsw i64 %storemerge18052488, %.01631
  %1624 = getelementptr inbounds %struct.complex, ptr %4, i64 %1623
  %1625 = call i32 @classq_(ptr noundef nonnull %9, ptr noundef %1624, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %storemerge1805.in = load i64, ptr %8, align 8, !tbaa !5
  %storemerge1805 = add nsw i64 %storemerge1805.in, 1
  store i64 %storemerge1805, ptr %8, align 8, !tbaa !5
  %.not1806.not = icmp slt i64 %storemerge1805.in, %1622
  br i1 %.not1806.not, label %.lr.ph2490, label %._crit_edge2491.loopexit, !llvm.loop !120

._crit_edge2491.loopexit:                         ; preds = %.lr.ph2490
  %.pre3268 = load i64, ptr %9, align 8, !tbaa !5
  br label %._crit_edge2491

._crit_edge2491:                                  ; preds = %._crit_edge2491.loopexit, %._crit_edge2484
  %1626 = phi i64 [ %.pre3268, %._crit_edge2491.loopexit ], [ %storemerge1805.in2485, %._crit_edge2484 ]
  %1627 = add nsw i64 %1626, -2
  %invariant.gep2492 = getelementptr i8, ptr %4, i64 8
  store i64 0, ptr %8, align 8, !tbaa !5
  %.not18082494 = icmp slt i64 %1626, 2
  br i1 %.not18082494, label %._crit_edge2498, label %.lr.ph2497

.lr.ph2497:                                       ; preds = %._crit_edge2491, %.lr.ph2497
  %storemerge18072495 = phi i64 [ %1635, %.lr.ph2497 ], [ 0, %._crit_edge2491 ]
  %1628 = load i64, ptr %9, align 8, !tbaa !5
  %1629 = xor i64 %storemerge18072495, -1
  %1630 = add i64 %1628, %1629
  store i64 %1630, ptr %7, align 8, !tbaa !5
  %1631 = mul nsw i64 %storemerge18072495, %.01631
  %gep2493 = getelementptr %struct.complex, ptr %invariant.gep2492, i64 %storemerge18072495
  %1632 = getelementptr %struct.complex, ptr %gep2493, i64 %1631
  %1633 = call i32 @classq_(ptr noundef nonnull %7, ptr noundef %1632, ptr noundef nonnull @c__1, ptr noundef nonnull %11, ptr noundef nonnull %10) #7
  %1634 = load i64, ptr %8, align 8, !tbaa !5
  %1635 = add nsw i64 %1634, 1
  store i64 %1635, ptr %8, align 8, !tbaa !5
  %.not1808.not = icmp slt i64 %1634, %1627
  br i1 %.not1808.not, label %.lr.ph2497, label %._crit_edge2498, !llvm.loop !121

._crit_edge2498:                                  ; preds = %.lr.ph2497, %._crit_edge2491
  %1636 = load float, ptr %10, align 4, !tbaa !56
  %1637 = fadd float %1636, %1636
  %1638 = load float, ptr %4, align 4, !tbaa !9
  %1639 = fcmp une float %1638, 0.000000e+00
  br i1 %1639, label %1640, label %1650

1640:                                             ; preds = %._crit_edge2498
  %1641 = load float, ptr %11, align 4, !tbaa !56
  %1642 = fcmp olt float %1641, %1638
  br i1 %1642, label %1643, label %1647

1643:                                             ; preds = %1640
  %1644 = fdiv float %1641, %1638
  %1645 = fmul float %1644, %1644
  %1646 = call float @llvm.fmuladd.f32(float %1637, float %1645, float 1.000000e+00)
  store float %1638, ptr %11, align 4, !tbaa !56
  br label %1650

1647:                                             ; preds = %1640
  %1648 = fdiv float %1638, %1641
  %1649 = call float @llvm.fmuladd.f32(float %1648, float %1648, float %1637)
  br label %1650

1650:                                             ; preds = %1643, %1647, %._crit_edge2498
  %.promoted2500 = phi float [ %1646, %1643 ], [ %1649, %1647 ], [ %1637, %._crit_edge2498 ]
  %1651 = load i64, ptr %9, align 8, !tbaa !5
  %.not18092501 = icmp slt i64 %1651, 2
  br i1 %.not18092501, label %._crit_edge2506, label %.lr.ph2505

.lr.ph2505:                                       ; preds = %1650
  %.promoted2499 = load float, ptr %11, align 4, !tbaa !56
  %1652 = add i64 %.01631, 1
  %1653 = add nsw i64 %1651, -2
  %invariant.gep3695 = getelementptr i8, ptr %4, i64 8
  br label %1654

1654:                                             ; preds = %.lr.ph2505, %1683
  %.1516482503 = phi i64 [ %.01631, %.lr.ph2505 ], [ %1686, %1683 ]
  %.702502 = phi i64 [ 0, %.lr.ph2505 ], [ %1687, %1683 ]
  %1655 = phi float [ %.promoted2499, %.lr.ph2505 ], [ %1685, %1683 ]
  %1656 = phi float [ %.promoted2500, %.lr.ph2505 ], [ %1684, %1683 ]
  %1657 = getelementptr inbounds %struct.complex, ptr %4, i64 %.1516482503
  %1658 = load float, ptr %1657, align 4, !tbaa !9
  %1659 = fcmp une float %1658, 0.000000e+00
  br i1 %1659, label %1660, label %1669

1660:                                             ; preds = %1654
  %1661 = fcmp olt float %1655, %1658
  br i1 %1661, label %1662, label %1666

1662:                                             ; preds = %1660
  %1663 = fdiv float %1655, %1658
  %1664 = fmul float %1663, %1663
  %1665 = call float @llvm.fmuladd.f32(float %1656, float %1664, float 1.000000e+00)
  store float %1658, ptr %11, align 4, !tbaa !56
  br label %1669

1666:                                             ; preds = %1660
  %1667 = fdiv float %1658, %1655
  %1668 = call float @llvm.fmuladd.f32(float %1667, float %1667, float %1656)
  br label %1669

1669:                                             ; preds = %1662, %1666, %1654
  %1670 = phi float [ %1665, %1662 ], [ %1668, %1666 ], [ %1656, %1654 ]
  %1671 = phi float [ %1658, %1662 ], [ %1655, %1666 ], [ %1655, %1654 ]
  %gep3696 = getelementptr %struct.complex, ptr %invariant.gep3695, i64 %.1516482503
  %1672 = load float, ptr %gep3696, align 4, !tbaa !9
  %1673 = fcmp une float %1672, 0.000000e+00
  br i1 %1673, label %1674, label %1683

1674:                                             ; preds = %1669
  %1675 = fcmp olt float %1671, %1672
  br i1 %1675, label %1676, label %1680

1676:                                             ; preds = %1674
  %1677 = fdiv float %1671, %1672
  %1678 = fmul float %1677, %1677
  %1679 = call float @llvm.fmuladd.f32(float %1670, float %1678, float 1.000000e+00)
  store float %1672, ptr %11, align 4, !tbaa !56
  br label %1683

1680:                                             ; preds = %1674
  %1681 = fdiv float %1672, %1671
  %1682 = call float @llvm.fmuladd.f32(float %1681, float %1681, float %1670)
  br label %1683

1683:                                             ; preds = %1676, %1680, %1669
  %1684 = phi float [ %1679, %1676 ], [ %1682, %1680 ], [ %1670, %1669 ]
  %1685 = phi float [ %1672, %1676 ], [ %1671, %1680 ], [ %1671, %1669 ]
  %1686 = add i64 %1652, %.1516482503
  %1687 = add nuw i64 %.702502, 1
  %exitcond3193.not = icmp eq i64 %.702502, %1653
  br i1 %exitcond3193.not, label %._crit_edge2506, label %1654, !llvm.loop !122

._crit_edge2506:                                  ; preds = %1683, %1650
  %1688 = phi float [ %.promoted2500, %1650 ], [ %1684, %1683 ]
  %.151648.lcssa = phi i64 [ %.01631, %1650 ], [ %1686, %1683 ]
  %1689 = getelementptr inbounds %struct.complex, ptr %4, i64 %.151648.lcssa
  %1690 = load float, ptr %1689, align 4, !tbaa !9
  %1691 = fcmp une float %1690, 0.000000e+00
  br i1 %1691, label %1692, label %.loopexit

1692:                                             ; preds = %._crit_edge2506
  %1693 = load float, ptr %11, align 4, !tbaa !56
  %1694 = fcmp olt float %1693, %1690
  br i1 %1694, label %1695, label %1699

1695:                                             ; preds = %1692
  %1696 = fdiv float %1693, %1690
  %1697 = fmul float %1696, %1696
  %1698 = call float @llvm.fmuladd.f32(float %1688, float %1697, float 1.000000e+00)
  store float %1690, ptr %11, align 4, !tbaa !56
  br label %.loopexit

1699:                                             ; preds = %1692
  %1700 = fdiv float %1690, %1693
  %1701 = call float @llvm.fmuladd.f32(float %1700, float %1700, float %1688)
  br label %.loopexit

.loopexit:                                        ; preds = %1331, %1250, %1467, %1519, %1299, %._crit_edge2518.thread, %1218, %._crit_edge2518, %._crit_edge2537, %._crit_edge2506, %1699, %1695, %._crit_edge2476, %1613, %1609, %._crit_edge2430, %1185, %1181, %._crit_edge2410, %1407, %1403
  %1702 = phi float [ %.promoted2445, %1218 ], [ %1436, %._crit_edge2518 ], [ %1488, %._crit_edge2537 ], [ %1688, %._crit_edge2506 ], [ %1701, %1699 ], [ %1698, %1695 ], [ %1602, %._crit_edge2476 ], [ %1615, %1613 ], [ %1612, %1609 ], [ %1174, %._crit_edge2430 ], [ %1187, %1185 ], [ %1184, %1181 ], [ %1396, %._crit_edge2410 ], [ %1409, %1407 ], [ %1406, %1403 ], [ %1427, %._crit_edge2518.thread ], [ %.promoted2379, %1299 ], [ %1520, %1519 ], [ %1468, %1467 ], [ %1251, %1250 ], [ %1332, %1331 ]
  %1703 = load float, ptr %11, align 4, !tbaa !56
  %1704 = fpext float %1703 to double
  %1705 = fpext float %1702 to double
  %1706 = call double @sqrt(double noundef %1705) #7
  %1707 = fmul double %1706, %1704
  %1708 = fptrunc double %1707 to float
  br label %.loopexit1984

.loopexit1984:                                    ; preds = %._crit_edge2025, %._crit_edge2076, %._crit_edge2146, %._crit_edge2270, %._crit_edge2346, %._crit_edge2007, %._crit_edge2067, %._crit_edge2128, %32, %._crit_edge2261, %._crit_edge2328, %255, %._crit_edge2690, %._crit_edge2619, %._crit_edge2870, %._crit_edge3284, %._crit_edge2949, %._crit_edge2907, %thread-pre-split1966.thread, %.preheader1967, %.loopexit, %1104, %._crit_edge2118, %._crit_edge2215, %._crit_edge2318
  %.42 = phi float [ %131, %._crit_edge2118 ], [ %368, %._crit_edge2318 ], [ %512, %._crit_edge2215 ], [ %574, %._crit_edge2907 ], [ %629, %._crit_edge2949 ], [ %676, %.preheader1967 ], [ %724, %thread-pre-split1966.thread ], [ %806, %._crit_edge2619 ], [ %892, %._crit_edge2690 ], [ %1000, %._crit_edge3284 ], [ %1101, %._crit_edge2870 ], [ %1708, %.loopexit ], [ undef, %1104 ], [ %272, %._crit_edge2328 ], [ %268, %255 ], [ %429, %._crit_edge2261 ], [ %42, %._crit_edge2128 ], [ %38, %32 ], [ %185, %._crit_edge2067 ], [ %.16.lcssa, %._crit_edge2007 ], [ %.23.lcssa, %._crit_edge2346 ], [ %.34.lcssa, %._crit_edge2270 ], [ %.3.lcssa, %._crit_edge2146 ], [ %.13.lcssa, %._crit_edge2076 ], [ %.19.lcssa, %._crit_edge2025 ]
  %1709 = fpext float %.42 to double
  br label %1710

1710:                                             ; preds = %6, %.loopexit1984
  %.01632 = phi double [ %1709, %.loopexit1984 ], [ 0.000000e+00, %6 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  ret double %.01632
}

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

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

declare double @c_abs(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #3

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13}
!32 = distinct !{!32, !13}
!33 = distinct !{!33, !13}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}
!37 = distinct !{!37, !13}
!38 = distinct !{!38, !13}
!39 = distinct !{!39, !13}
!40 = distinct !{!40, !13}
!41 = distinct !{!41, !13}
!42 = distinct !{!42, !13}
!43 = distinct !{!43, !13}
!44 = distinct !{!44, !13}
!45 = distinct !{!45, !13}
!46 = distinct !{!46, !13}
!47 = distinct !{!47, !13}
!48 = distinct !{!48, !13}
!49 = distinct !{!49, !13}
!50 = distinct !{!50, !13}
!51 = distinct !{!51, !13}
!52 = distinct !{!52, !13}
!53 = distinct !{!53, !13}
!54 = distinct !{!54, !13}
!55 = !{!7, !7, i64 0}
!56 = !{!11, !11, i64 0}
!57 = distinct !{!57, !13}
!58 = distinct !{!58, !13}
!59 = distinct !{!59, !13}
!60 = distinct !{!60, !13}
!61 = distinct !{!61, !13}
!62 = distinct !{!62, !13}
!63 = distinct !{!63, !13}
!64 = distinct !{!64, !13}
!65 = distinct !{!65, !13}
!66 = distinct !{!66, !13}
!67 = distinct !{!67, !13}
!68 = distinct !{!68, !13}
!69 = distinct !{!69, !13}
!70 = distinct !{!70, !13}
!71 = distinct !{!71, !13}
!72 = distinct !{!72, !13}
!73 = distinct !{!73, !13}
!74 = distinct !{!74, !13}
!75 = distinct !{!75, !13}
!76 = distinct !{!76, !13}
!77 = distinct !{!77, !13}
!78 = distinct !{!78, !13}
!79 = distinct !{!79, !13}
!80 = distinct !{!80, !13}
!81 = distinct !{!81, !13}
!82 = distinct !{!82, !13}
!83 = distinct !{!83, !13}
!84 = distinct !{!84, !13}
!85 = distinct !{!85, !13}
!86 = distinct !{!86, !13}
!87 = distinct !{!87, !13}
!88 = distinct !{!88, !13}
!89 = distinct !{!89, !13}
!90 = distinct !{!90, !13}
!91 = distinct !{!91, !13}
!92 = distinct !{!92, !13}
!93 = distinct !{!93, !13}
!94 = distinct !{!94, !13}
!95 = distinct !{!95, !13}
!96 = distinct !{!96, !13}
!97 = distinct !{!97, !13}
!98 = distinct !{!98, !13}
!99 = distinct !{!99, !13}
!100 = distinct !{!100, !13}
!101 = distinct !{!101, !13}
!102 = distinct !{!102, !13}
!103 = distinct !{!103, !13}
!104 = distinct !{!104, !13}
!105 = distinct !{!105, !13}
!106 = distinct !{!106, !13}
!107 = distinct !{!107, !13}
!108 = distinct !{!108, !13}
!109 = distinct !{!109, !13}
!110 = distinct !{!110, !13}
!111 = distinct !{!111, !13}
!112 = distinct !{!112, !13}
!113 = distinct !{!113, !13}
!114 = distinct !{!114, !13}
!115 = distinct !{!115, !13}
!116 = distinct !{!116, !13}
!117 = distinct !{!117, !13}
!118 = distinct !{!118, !13}
!119 = distinct !{!119, !13}
!120 = distinct !{!120, !13}
!121 = distinct !{!121, !13}
!122 = distinct !{!122, !13}


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