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

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

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

148:                                              ; preds = %17
  %149 = load i32, ptr %69, align 4, !tbaa !9
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %157, label %151

151:                                              ; preds = %148
  %152 = load ptr, ptr %18, align 8, !tbaa !5
  %153 = call i32 @lsame_(ptr noundef %152, ptr noundef @.str.2)
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %157, label %155

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

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

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

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

167:                                              ; preds = %163
  %168 = load ptr, ptr %20, align 8, !tbaa !5
  %169 = load i32, ptr %168, align 4, !tbaa !9
  %170 = load ptr, ptr %19, align 8, !tbaa !5
  %171 = load i32, ptr %170, align 4, !tbaa !9
  %172 = icmp sgt i32 %169, %171
  br i1 %172, label %173, label %175

173:                                              ; preds = %167, %163
  %174 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %174, align 4, !tbaa !9
  br label %245

175:                                              ; preds = %167
  %176 = load ptr, ptr %22, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = load ptr, ptr %19, align 8, !tbaa !5
  %179 = load i32, ptr %178, align 4, !tbaa !9
  %180 = icmp slt i32 %177, %179
  br i1 %180, label %181, label %183

181:                                              ; preds = %175
  %182 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %182, align 4, !tbaa !9
  br label %244

183:                                              ; preds = %175
  %184 = load i32, ptr %70, align 4, !tbaa !9
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %189, label %186

186:                                              ; preds = %183
  %187 = load i32, ptr %69, align 4, !tbaa !9
  %188 = icmp ne i32 %187, 0
  br i1 %188, label %189, label %195

189:                                              ; preds = %186, %183
  %190 = load ptr, ptr %25, align 8, !tbaa !5
  %191 = load i32, ptr %190, align 4, !tbaa !9
  %192 = icmp slt i32 %191, 0
  br i1 %192, label %193, label %195

193:                                              ; preds = %189
  %194 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -8, ptr %194, align 4, !tbaa !9
  br label %243

195:                                              ; preds = %189, %186
  %196 = load i32, ptr %70, align 4, !tbaa !9
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %204

198:                                              ; preds = %195
  %199 = load ptr, ptr %27, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = load ptr, ptr %20, align 8, !tbaa !5
  %202 = load i32, ptr %201, align 4, !tbaa !9
  %203 = icmp slt i32 %200, %202
  br i1 %203, label %213, label %204

204:                                              ; preds = %198, %195
  %205 = load i32, ptr %69, align 4, !tbaa !9
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %215

207:                                              ; preds = %204
  %208 = load ptr, ptr %27, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !9
  %210 = load ptr, ptr %25, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = icmp slt i32 %209, %211
  br i1 %212, label %213, label %215

213:                                              ; preds = %207, %198
  %214 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -10, ptr %214, align 4, !tbaa !9
  br label %242

215:                                              ; preds = %207, %204
  %216 = load ptr, ptr %30, align 8, !tbaa !5
  %217 = load float, ptr %216, align 4, !tbaa !11
  %218 = load ptr, ptr %28, align 8, !tbaa !5
  %219 = load float, ptr %218, align 4, !tbaa !11
  %220 = fcmp ole float %217, %219
  br i1 %220, label %221, label %223

221:                                              ; preds = %215
  %222 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -13, ptr %222, align 4, !tbaa !9
  br label %241

223:                                              ; preds = %215
  %224 = load ptr, ptr %31, align 8, !tbaa !5
  %225 = load i32, ptr %224, align 4, !tbaa !9
  %226 = icmp slt i32 %225, 0
  br i1 %226, label %227, label %229

227:                                              ; preds = %223
  %228 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -14, ptr %228, align 4, !tbaa !9
  br label %240

229:                                              ; preds = %223
  %230 = load ptr, ptr %33, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = load ptr, ptr %19, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = icmp slt i32 %231, %233
  br i1 %234, label %235, label %237

235:                                              ; preds = %229
  %236 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -16, ptr %236, align 4, !tbaa !9
  br label %239

237:                                              ; preds = %229
  %238 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %238, align 4, !tbaa !9
  br label %239

239:                                              ; preds = %237, %235
  br label %240

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

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

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

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

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

245:                                              ; preds = %244, %173
  br label %246

246:                                              ; preds = %245, %161
  br label %247

247:                                              ; preds = %246, %155
  %248 = load ptr, ptr %34, align 8, !tbaa !5
  %249 = load i32, ptr %248, align 4, !tbaa !9
  %250 = icmp ne i32 %249, 0
  br i1 %250, label %251, label %256

251:                                              ; preds = %247
  %252 = load ptr, ptr %34, align 8, !tbaa !5
  %253 = load i32, ptr %252, align 4, !tbaa !9
  %254 = sub nsw i32 0, %253
  store i32 %254, ptr %39, align 4, !tbaa !9
  %255 = call i32 @xerbla_(ptr noundef @.str.3, ptr noundef %39, i32 noundef 6)
  store i32 1, ptr %98, align 4
  br label %3063

256:                                              ; preds = %247
  %257 = load i32, ptr %70, align 4, !tbaa !9
  %258 = icmp ne i32 %257, 0
  br i1 %258, label %259, label %262

259:                                              ; preds = %256
  %260 = load ptr, ptr %20, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !9
  store i32 %261, ptr %93, align 4, !tbaa !9
  br label %269

262:                                              ; preds = %256
  %263 = load i32, ptr %69, align 4, !tbaa !9
  %264 = icmp ne i32 %263, 0
  br i1 %264, label %265, label %268

265:                                              ; preds = %262
  %266 = load ptr, ptr %25, align 8, !tbaa !5
  %267 = load i32, ptr %266, align 4, !tbaa !9
  store i32 %267, ptr %93, align 4, !tbaa !9
  br label %268

268:                                              ; preds = %265, %262
  br label %269

269:                                              ; preds = %268, %259
  %270 = load i32, ptr %70, align 4, !tbaa !9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %275, label %272

272:                                              ; preds = %269
  %273 = load i32, ptr %69, align 4, !tbaa !9
  %274 = icmp ne i32 %273, 0
  br label %275

275:                                              ; preds = %272, %269
  %276 = phi i1 [ true, %269 ], [ %274, %272 ]
  %277 = zext i1 %276 to i32
  store i32 %277, ptr %70, align 4, !tbaa !9
  %278 = load ptr, ptr %28, align 8, !tbaa !5
  %279 = load float, ptr %278, align 4, !tbaa !11
  %280 = fpext float %279 to double
  %281 = call double @sqrt(double noundef %280) #7
  %282 = fptrunc double %281 to float
  store float %282, ptr %95, align 4, !tbaa !11
  %283 = load ptr, ptr %29, align 8, !tbaa !5
  %284 = load float, ptr %283, align 4, !tbaa !11
  %285 = fpext float %284 to double
  %286 = call double @sqrt(double noundef %285) #7
  %287 = fptrunc double %286 to float
  store float %287, ptr %72, align 4, !tbaa !11
  %288 = load ptr, ptr %29, align 8, !tbaa !5
  %289 = load float, ptr %288, align 4, !tbaa !11
  %290 = load ptr, ptr %28, align 8, !tbaa !5
  %291 = load float, ptr %290, align 4, !tbaa !11
  %292 = fdiv float %289, %291
  store float %292, ptr %68, align 4, !tbaa !11
  %293 = load ptr, ptr %29, align 8, !tbaa !5
  %294 = load float, ptr %293, align 4, !tbaa !11
  %295 = fdiv float 1.000000e+00, %294
  store float %295, ptr %86, align 4, !tbaa !11
  %296 = load float, ptr %72, align 4, !tbaa !11
  %297 = fdiv float 1.000000e+00, %296
  store float %297, ptr %94, align 4, !tbaa !11
  %298 = load float, ptr %95, align 4, !tbaa !11
  %299 = fdiv float 1.000000e+00, %298
  store float %299, ptr %55, align 4, !tbaa !11
  %300 = load ptr, ptr %30, align 8, !tbaa !5
  %301 = load float, ptr %300, align 4, !tbaa !11
  %302 = fpext float %301 to double
  %303 = call double @sqrt(double noundef %302) #7
  %304 = fptrunc double %303 to float
  store float %304, ptr %97, align 4, !tbaa !11
  %305 = load ptr, ptr %20, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = load ptr, ptr %20, align 8, !tbaa !5
  %308 = load i32, ptr %307, align 4, !tbaa !9
  %309 = sub nsw i32 %308, 1
  %310 = mul nsw i32 %306, %309
  %311 = sdiv i32 %310, 2
  store i32 %311, ptr %82, align 4, !tbaa !9
  store i32 0, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %76, align 4, !tbaa !9
  %312 = load ptr, ptr %20, align 8, !tbaa !5
  %313 = load i32, ptr %312, align 4, !tbaa !9
  %314 = icmp sle i32 8, %313
  br i1 %314, label %315, label %316

315:                                              ; preds = %275
  br label %319

316:                                              ; preds = %275
  %317 = load ptr, ptr %20, align 8, !tbaa !5
  %318 = load i32, ptr %317, align 4, !tbaa !9
  br label %319

319:                                              ; preds = %316, %315
  %320 = phi i32 [ 8, %315 ], [ %318, %316 ]
  store i32 %320, ptr %87, align 4, !tbaa !9
  %321 = load ptr, ptr %20, align 8, !tbaa !5
  %322 = load i32, ptr %321, align 4, !tbaa !9
  %323 = load i32, ptr %87, align 4, !tbaa !9
  %324 = sdiv i32 %322, %323
  store i32 %324, ptr %92, align 4, !tbaa !9
  %325 = load i32, ptr %92, align 4, !tbaa !9
  %326 = load i32, ptr %87, align 4, !tbaa !9
  %327 = mul nsw i32 %325, %326
  %328 = load ptr, ptr %20, align 8, !tbaa !5
  %329 = load i32, ptr %328, align 4, !tbaa !9
  %330 = icmp ne i32 %327, %329
  br i1 %330, label %331, label %334

331:                                              ; preds = %319
  %332 = load i32, ptr %92, align 4, !tbaa !9
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr %92, align 4, !tbaa !9
  br label %334

334:                                              ; preds = %331, %319
  %335 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %335, ptr %39, align 4, !tbaa !9
  %336 = load i32, ptr %39, align 4, !tbaa !9
  %337 = load i32, ptr %39, align 4, !tbaa !9
  %338 = mul nsw i32 %336, %337
  store i32 %338, ptr %77, align 4, !tbaa !9
  %339 = load i32, ptr %87, align 4, !tbaa !9
  %340 = icmp sle i32 5, %339
  br i1 %340, label %341, label %342

341:                                              ; preds = %334
  br label %344

342:                                              ; preds = %334
  %343 = load i32, ptr %87, align 4, !tbaa !9
  br label %344

344:                                              ; preds = %342, %341
  %345 = phi i32 [ 5, %341 ], [ %343, %342 ]
  store i32 %345, ptr %96, align 4, !tbaa !9
  store i32 1, ptr %88, align 4, !tbaa !9
  %346 = load ptr, ptr %31, align 8, !tbaa !5
  %347 = load i32, ptr %346, align 4, !tbaa !9
  store i32 %347, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %348

348:                                              ; preds = %2916, %344
  %349 = load i32, ptr %61, align 4, !tbaa !9
  %350 = load i32, ptr %39, align 4, !tbaa !9
  %351 = icmp sle i32 %349, %350
  br i1 %351, label %352, label %2919

352:                                              ; preds = %348
  store float 0.000000e+00, ptr %78, align 4, !tbaa !11
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  store i32 0, ptr %84, align 4, !tbaa !9
  store i32 0, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %57, align 4, !tbaa !9
  %353 = load i32, ptr %92, align 4, !tbaa !9
  store i32 %353, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %90, align 4, !tbaa !9
  br label %354

354:                                              ; preds = %2806, %352
  %355 = load i32, ptr %90, align 4, !tbaa !9
  %356 = load i32, ptr %40, align 4, !tbaa !9
  %357 = icmp sle i32 %355, %356
  br i1 %357, label %358, label %2809

358:                                              ; preds = %354
  %359 = load i32, ptr %90, align 4, !tbaa !9
  %360 = sub nsw i32 %359, 1
  %361 = load i32, ptr %87, align 4, !tbaa !9
  %362 = mul nsw i32 %360, %361
  %363 = add nsw i32 %362, 1
  store i32 %363, ptr %89, align 4, !tbaa !9
  %364 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %364, ptr %42, align 4, !tbaa !9
  %365 = load i32, ptr %92, align 4, !tbaa !9
  %366 = load i32, ptr %90, align 4, !tbaa !9
  %367 = sub nsw i32 %365, %366
  store i32 %367, ptr %43, align 4, !tbaa !9
  %368 = load i32, ptr %42, align 4, !tbaa !9
  %369 = load i32, ptr %43, align 4, !tbaa !9
  %370 = icmp sle i32 %368, %369
  br i1 %370, label %371, label %373

371:                                              ; preds = %358
  %372 = load i32, ptr %42, align 4, !tbaa !9
  br label %375

373:                                              ; preds = %358
  %374 = load i32, ptr %43, align 4, !tbaa !9
  br label %375

375:                                              ; preds = %373, %371
  %376 = phi i32 [ %372, %371 ], [ %374, %373 ]
  store i32 %376, ptr %41, align 4, !tbaa !9
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %377

377:                                              ; preds = %1576, %375
  %378 = load i32, ptr %81, align 4, !tbaa !9
  %379 = load i32, ptr %41, align 4, !tbaa !9
  %380 = icmp sle i32 %378, %379
  br i1 %380, label %381, label %1579

381:                                              ; preds = %377
  %382 = load i32, ptr %81, align 4, !tbaa !9
  %383 = load i32, ptr %87, align 4, !tbaa !9
  %384 = mul nsw i32 %382, %383
  %385 = load i32, ptr %89, align 4, !tbaa !9
  %386 = add nsw i32 %385, %384
  store i32 %386, ptr %89, align 4, !tbaa !9
  %387 = load i32, ptr %89, align 4, !tbaa !9
  %388 = load i32, ptr %87, align 4, !tbaa !9
  %389 = add nsw i32 %387, %388
  %390 = sub nsw i32 %389, 1
  store i32 %390, ptr %43, align 4, !tbaa !9
  %391 = load ptr, ptr %20, align 8, !tbaa !5
  %392 = load i32, ptr %391, align 4, !tbaa !9
  %393 = sub nsw i32 %392, 1
  store i32 %393, ptr %44, align 4, !tbaa !9
  %394 = load i32, ptr %43, align 4, !tbaa !9
  %395 = load i32, ptr %44, align 4, !tbaa !9
  %396 = icmp sle i32 %394, %395
  br i1 %396, label %397, label %399

397:                                              ; preds = %381
  %398 = load i32, ptr %43, align 4, !tbaa !9
  br label %401

399:                                              ; preds = %381
  %400 = load i32, ptr %44, align 4, !tbaa !9
  br label %401

401:                                              ; preds = %399, %397
  %402 = phi i32 [ %398, %397 ], [ %400, %399 ]
  store i32 %402, ptr %42, align 4, !tbaa !9
  %403 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %403, ptr %62, align 4, !tbaa !9
  br label %404

404:                                              ; preds = %1572, %401
  %405 = load i32, ptr %62, align 4, !tbaa !9
  %406 = load i32, ptr %42, align 4, !tbaa !9
  %407 = icmp sle i32 %405, %406
  br i1 %407, label %408, label %1575

408:                                              ; preds = %404
  %409 = load ptr, ptr %20, align 8, !tbaa !5
  %410 = load i32, ptr %409, align 4, !tbaa !9
  %411 = load i32, ptr %62, align 4, !tbaa !9
  %412 = sub nsw i32 %410, %411
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr %43, align 4, !tbaa !9
  %414 = load ptr, ptr %24, align 8, !tbaa !5
  %415 = load i32, ptr %62, align 4, !tbaa !9
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds float, ptr %414, i64 %416
  %418 = call i32 @isamax_(ptr noundef %43, ptr noundef %417, ptr noundef @c__1)
  %419 = load i32, ptr %62, align 4, !tbaa !9
  %420 = add nsw i32 %418, %419
  %421 = sub nsw i32 %420, 1
  store i32 %421, ptr %63, align 4, !tbaa !9
  %422 = load i32, ptr %62, align 4, !tbaa !9
  %423 = load i32, ptr %63, align 4, !tbaa !9
  %424 = icmp ne i32 %422, %423
  br i1 %424, label %425, label %532

425:                                              ; preds = %408
  %426 = load ptr, ptr %19, align 8, !tbaa !5
  %427 = load ptr, ptr %21, align 8, !tbaa !5
  %428 = load i32, ptr %62, align 4, !tbaa !9
  %429 = load i32, ptr %35, align 4, !tbaa !9
  %430 = mul nsw i32 %428, %429
  %431 = add nsw i32 %430, 1
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds %struct.complex, ptr %427, i64 %432
  %434 = load ptr, ptr %21, align 8, !tbaa !5
  %435 = load i32, ptr %63, align 4, !tbaa !9
  %436 = load i32, ptr %35, align 4, !tbaa !9
  %437 = mul nsw i32 %435, %436
  %438 = add nsw i32 %437, 1
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds %struct.complex, ptr %434, i64 %439
  call void @cswap_(ptr noundef %426, ptr noundef %433, ptr noundef @c__1, ptr noundef %440, ptr noundef @c__1)
  %441 = load i32, ptr %70, align 4, !tbaa !9
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %443, label %458

443:                                              ; preds = %425
  %444 = load ptr, ptr %26, align 8, !tbaa !5
  %445 = load i32, ptr %62, align 4, !tbaa !9
  %446 = load i32, ptr %37, align 4, !tbaa !9
  %447 = mul nsw i32 %445, %446
  %448 = add nsw i32 %447, 1
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds %struct.complex, ptr %444, i64 %449
  %451 = load ptr, ptr %26, align 8, !tbaa !5
  %452 = load i32, ptr %63, align 4, !tbaa !9
  %453 = load i32, ptr %37, align 4, !tbaa !9
  %454 = mul nsw i32 %452, %453
  %455 = add nsw i32 %454, 1
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds %struct.complex, ptr %451, i64 %456
  call void @cswap_(ptr noundef %93, ptr noundef %450, ptr noundef @c__1, ptr noundef %457, ptr noundef @c__1)
  br label %458

458:                                              ; preds = %443, %425
  %459 = load ptr, ptr %24, align 8, !tbaa !5
  %460 = load i32, ptr %62, align 4, !tbaa !9
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds float, ptr %459, i64 %461
  %463 = load float, ptr %462, align 4, !tbaa !11
  store float %463, ptr %60, align 4, !tbaa !11
  %464 = load ptr, ptr %24, align 8, !tbaa !5
  %465 = load i32, ptr %63, align 4, !tbaa !9
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds float, ptr %464, i64 %466
  %468 = load float, ptr %467, align 4, !tbaa !11
  %469 = load ptr, ptr %24, align 8, !tbaa !5
  %470 = load i32, ptr %62, align 4, !tbaa !9
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds float, ptr %469, i64 %471
  store float %468, ptr %472, align 4, !tbaa !11
  %473 = load float, ptr %60, align 4, !tbaa !11
  %474 = load ptr, ptr %24, align 8, !tbaa !5
  %475 = load i32, ptr %63, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %474, i64 %476
  store float %473, ptr %477, align 4, !tbaa !11
  %478 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %478, ptr %43, align 4, !tbaa !9
  %479 = load ptr, ptr %23, align 8, !tbaa !5
  %480 = load i32, ptr %43, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds %struct.complex, ptr %479, i64 %481
  %483 = getelementptr inbounds %struct.complex, ptr %482, i32 0, i32 0
  %484 = load float, ptr %483, align 4, !tbaa !13
  %485 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %484, ptr %485, align 4, !tbaa !13
  %486 = load ptr, ptr %23, align 8, !tbaa !5
  %487 = load i32, ptr %43, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds %struct.complex, ptr %486, i64 %488
  %490 = getelementptr inbounds %struct.complex, ptr %489, i32 0, i32 1
  %491 = load float, ptr %490, align 4, !tbaa !15
  %492 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %491, ptr %492, align 4, !tbaa !15
  %493 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %493, ptr %43, align 4, !tbaa !9
  %494 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %494, ptr %44, align 4, !tbaa !9
  %495 = load ptr, ptr %23, align 8, !tbaa !5
  %496 = load i32, ptr %44, align 4, !tbaa !9
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds %struct.complex, ptr %495, i64 %497
  %499 = getelementptr inbounds %struct.complex, ptr %498, i32 0, i32 0
  %500 = load float, ptr %499, align 4, !tbaa !13
  %501 = load ptr, ptr %23, align 8, !tbaa !5
  %502 = load i32, ptr %43, align 4, !tbaa !9
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds %struct.complex, ptr %501, i64 %503
  %505 = getelementptr inbounds %struct.complex, ptr %504, i32 0, i32 0
  store float %500, ptr %505, align 4, !tbaa !13
  %506 = load ptr, ptr %23, align 8, !tbaa !5
  %507 = load i32, ptr %44, align 4, !tbaa !9
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds %struct.complex, ptr %506, i64 %508
  %510 = getelementptr inbounds %struct.complex, ptr %509, i32 0, i32 1
  %511 = load float, ptr %510, align 4, !tbaa !15
  %512 = load ptr, ptr %23, align 8, !tbaa !5
  %513 = load i32, ptr %43, align 4, !tbaa !9
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds %struct.complex, ptr %512, i64 %514
  %516 = getelementptr inbounds %struct.complex, ptr %515, i32 0, i32 1
  store float %511, ptr %516, align 4, !tbaa !15
  %517 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %517, ptr %43, align 4, !tbaa !9
  %518 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %519 = load float, ptr %518, align 4, !tbaa !13
  %520 = load ptr, ptr %23, align 8, !tbaa !5
  %521 = load i32, ptr %43, align 4, !tbaa !9
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds %struct.complex, ptr %520, i64 %522
  %524 = getelementptr inbounds %struct.complex, ptr %523, i32 0, i32 0
  store float %519, ptr %524, align 4, !tbaa !13
  %525 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %526 = load float, ptr %525, align 4, !tbaa !15
  %527 = load ptr, ptr %23, align 8, !tbaa !5
  %528 = load i32, ptr %43, align 4, !tbaa !9
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds %struct.complex, ptr %527, i64 %529
  %531 = getelementptr inbounds %struct.complex, ptr %530, i32 0, i32 1
  store float %526, ptr %531, align 4, !tbaa !15
  br label %532

532:                                              ; preds = %458, %408
  %533 = load i32, ptr %81, align 4, !tbaa !9
  %534 = icmp eq i32 %533, 0
  br i1 %534, label %535, label %591

535:                                              ; preds = %532
  %536 = load ptr, ptr %24, align 8, !tbaa !5
  %537 = load i32, ptr %62, align 4, !tbaa !9
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds float, ptr %536, i64 %538
  %540 = load float, ptr %539, align 4, !tbaa !11
  %541 = load float, ptr %94, align 4, !tbaa !11
  %542 = fcmp olt float %540, %541
  br i1 %542, label %543, label %565

543:                                              ; preds = %535
  %544 = load ptr, ptr %24, align 8, !tbaa !5
  %545 = load i32, ptr %62, align 4, !tbaa !9
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds float, ptr %544, i64 %546
  %548 = load float, ptr %547, align 4, !tbaa !11
  %549 = load float, ptr %72, align 4, !tbaa !11
  %550 = fcmp ogt float %548, %549
  br i1 %550, label %551, label %565

551:                                              ; preds = %543
  %552 = load ptr, ptr %19, align 8, !tbaa !5
  %553 = load ptr, ptr %21, align 8, !tbaa !5
  %554 = load i32, ptr %62, align 4, !tbaa !9
  %555 = load i32, ptr %35, align 4, !tbaa !9
  %556 = mul nsw i32 %554, %555
  %557 = add nsw i32 %556, 1
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds %struct.complex, ptr %553, i64 %558
  %560 = call float @scnrm2_(ptr noundef %552, ptr noundef %559, ptr noundef @c__1)
  %561 = load ptr, ptr %24, align 8, !tbaa !5
  %562 = load i32, ptr %62, align 4, !tbaa !9
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds float, ptr %561, i64 %563
  store float %560, ptr %564, align 4, !tbaa !11
  br label %585

565:                                              ; preds = %543, %535
  store float 0.000000e+00, ptr %60, align 4, !tbaa !11
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %566 = load ptr, ptr %19, align 8, !tbaa !5
  %567 = load ptr, ptr %21, align 8, !tbaa !5
  %568 = load i32, ptr %62, align 4, !tbaa !9
  %569 = load i32, ptr %35, align 4, !tbaa !9
  %570 = mul nsw i32 %568, %569
  %571 = add nsw i32 %570, 1
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds %struct.complex, ptr %567, i64 %572
  call void @classq_(ptr noundef %566, ptr noundef %573, ptr noundef @c__1, ptr noundef %60, ptr noundef %51)
  %574 = load float, ptr %60, align 4, !tbaa !11
  %575 = fpext float %574 to double
  %576 = load float, ptr %51, align 4, !tbaa !11
  %577 = fpext float %576 to double
  %578 = call double @sqrt(double noundef %577) #7
  %579 = fmul double %575, %578
  %580 = fptrunc double %579 to float
  %581 = load ptr, ptr %24, align 8, !tbaa !5
  %582 = load i32, ptr %62, align 4, !tbaa !9
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds float, ptr %581, i64 %583
  store float %580, ptr %584, align 4, !tbaa !11
  br label %585

585:                                              ; preds = %565, %551
  %586 = load ptr, ptr %24, align 8, !tbaa !5
  %587 = load i32, ptr %62, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds float, ptr %586, i64 %588
  %590 = load float, ptr %589, align 4, !tbaa !11
  store float %590, ptr %51, align 4, !tbaa !11
  br label %597

591:                                              ; preds = %532
  %592 = load ptr, ptr %24, align 8, !tbaa !5
  %593 = load i32, ptr %62, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load float, ptr %595, align 4, !tbaa !11
  store float %596, ptr %51, align 4, !tbaa !11
  br label %597

597:                                              ; preds = %591, %585
  %598 = load float, ptr %51, align 4, !tbaa !11
  %599 = fcmp ogt float %598, 0.000000e+00
  br i1 %599, label %600, label %1539

600:                                              ; preds = %597
  store i32 0, ptr %57, align 4, !tbaa !9
  %601 = load i32, ptr %89, align 4, !tbaa !9
  %602 = load i32, ptr %87, align 4, !tbaa !9
  %603 = add nsw i32 %601, %602
  %604 = sub nsw i32 %603, 1
  store i32 %604, ptr %44, align 4, !tbaa !9
  %605 = load i32, ptr %44, align 4, !tbaa !9
  %606 = load ptr, ptr %20, align 8, !tbaa !5
  %607 = load i32, ptr %606, align 4, !tbaa !9
  %608 = icmp sle i32 %605, %607
  br i1 %608, label %609, label %611

609:                                              ; preds = %600
  %610 = load i32, ptr %44, align 4, !tbaa !9
  br label %614

611:                                              ; preds = %600
  %612 = load ptr, ptr %20, align 8, !tbaa !5
  %613 = load i32, ptr %612, align 4, !tbaa !9
  br label %614

614:                                              ; preds = %611, %609
  %615 = phi i32 [ %610, %609 ], [ %613, %611 ]
  store i32 %615, ptr %43, align 4, !tbaa !9
  %616 = load i32, ptr %62, align 4, !tbaa !9
  %617 = add nsw i32 %616, 1
  store i32 %617, ptr %63, align 4, !tbaa !9
  br label %618

618:                                              ; preds = %1529, %614
  %619 = load i32, ptr %63, align 4, !tbaa !9
  %620 = load i32, ptr %43, align 4, !tbaa !9
  %621 = icmp sle i32 %619, %620
  br i1 %621, label %622, label %1532

622:                                              ; preds = %618
  %623 = load ptr, ptr %24, align 8, !tbaa !5
  %624 = load i32, ptr %63, align 4, !tbaa !9
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds float, ptr %623, i64 %625
  %627 = load float, ptr %626, align 4, !tbaa !11
  store float %627, ptr %53, align 4, !tbaa !11
  %628 = load float, ptr %53, align 4, !tbaa !11
  %629 = fcmp ogt float %628, 0.000000e+00
  br i1 %629, label %630, label %1504

630:                                              ; preds = %622
  %631 = load float, ptr %51, align 4, !tbaa !11
  store float %631, ptr %58, align 4, !tbaa !11
  %632 = load float, ptr %53, align 4, !tbaa !11
  %633 = fcmp oge float %632, 1.000000e+00
  br i1 %633, label %634, label %730

634:                                              ; preds = %630
  %635 = load float, ptr %68, align 4, !tbaa !11
  %636 = load float, ptr %51, align 4, !tbaa !11
  %637 = fmul float %635, %636
  %638 = load float, ptr %53, align 4, !tbaa !11
  %639 = fcmp ole float %637, %638
  %640 = zext i1 %639 to i32
  store i32 %640, ptr %71, align 4, !tbaa !9
  %641 = load float, ptr %51, align 4, !tbaa !11
  %642 = load float, ptr %86, align 4, !tbaa !11
  %643 = load float, ptr %53, align 4, !tbaa !11
  %644 = fdiv float %642, %643
  %645 = fcmp olt float %641, %644
  br i1 %645, label %646, label %688

646:                                              ; preds = %634
  %647 = load ptr, ptr %19, align 8, !tbaa !5
  %648 = load ptr, ptr %21, align 8, !tbaa !5
  %649 = load i32, ptr %62, align 4, !tbaa !9
  %650 = load i32, ptr %35, align 4, !tbaa !9
  %651 = mul nsw i32 %649, %650
  %652 = add nsw i32 %651, 1
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct.complex, ptr %648, i64 %653
  %655 = load ptr, ptr %21, align 8, !tbaa !5
  %656 = load i32, ptr %63, align 4, !tbaa !9
  %657 = load i32, ptr %35, align 4, !tbaa !9
  %658 = mul nsw i32 %656, %657
  %659 = add nsw i32 %658, 1
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds %struct.complex, ptr %655, i64 %660
  call void @cdotc_(ptr noundef %50, ptr noundef %647, ptr noundef %654, ptr noundef @c__1, ptr noundef %661, ptr noundef @c__1)
  %662 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %663 = load float, ptr %662, align 4, !tbaa !13
  %664 = load float, ptr %53, align 4, !tbaa !11
  %665 = fdiv float %663, %664
  %666 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %665, ptr %666, align 4, !tbaa !13
  %667 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %668 = load float, ptr %667, align 4, !tbaa !15
  %669 = load float, ptr %53, align 4, !tbaa !11
  %670 = fdiv float %668, %669
  %671 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %670, ptr %671, align 4, !tbaa !15
  %672 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %673 = load float, ptr %672, align 4, !tbaa !13
  %674 = load float, ptr %51, align 4, !tbaa !11
  %675 = fdiv float %673, %674
  %676 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %675, ptr %676, align 4, !tbaa !13
  %677 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %678 = load float, ptr %677, align 4, !tbaa !15
  %679 = load float, ptr %51, align 4, !tbaa !11
  %680 = fdiv float %678, %679
  %681 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %680, ptr %681, align 4, !tbaa !15
  %682 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %683 = load float, ptr %682, align 4, !tbaa !13
  %684 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %683, ptr %684, align 4, !tbaa !13
  %685 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %686 = load float, ptr %685, align 4, !tbaa !15
  %687 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %686, ptr %687, align 4, !tbaa !15
  br label %729

688:                                              ; preds = %634
  %689 = load ptr, ptr %19, align 8, !tbaa !5
  %690 = load ptr, ptr %21, align 8, !tbaa !5
  %691 = load i32, ptr %62, align 4, !tbaa !9
  %692 = load i32, ptr %35, align 4, !tbaa !9
  %693 = mul nsw i32 %691, %692
  %694 = add nsw i32 %693, 1
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds %struct.complex, ptr %690, i64 %695
  %697 = load ptr, ptr %32, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.complex, ptr %697, i64 1
  call void @ccopy_(ptr noundef %689, ptr noundef %696, ptr noundef @c__1, ptr noundef %698, ptr noundef @c__1)
  %699 = load ptr, ptr %19, align 8, !tbaa !5
  %700 = load ptr, ptr %32, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.complex, ptr %700, i64 1
  %702 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %51, ptr noundef @c_b27, ptr noundef %699, ptr noundef @c__1, ptr noundef %701, ptr noundef %702, ptr noundef %54)
  %703 = load ptr, ptr %19, align 8, !tbaa !5
  %704 = load ptr, ptr %32, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.complex, ptr %704, i64 1
  %706 = load ptr, ptr %21, align 8, !tbaa !5
  %707 = load i32, ptr %63, align 4, !tbaa !9
  %708 = load i32, ptr %35, align 4, !tbaa !9
  %709 = mul nsw i32 %707, %708
  %710 = add nsw i32 %709, 1
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds %struct.complex, ptr %706, i64 %711
  call void @cdotc_(ptr noundef %49, ptr noundef %703, ptr noundef %705, ptr noundef @c__1, ptr noundef %712, ptr noundef @c__1)
  %713 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %714 = load float, ptr %713, align 4, !tbaa !13
  %715 = load float, ptr %53, align 4, !tbaa !11
  %716 = fdiv float %714, %715
  %717 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %716, ptr %717, align 4, !tbaa !13
  %718 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %719 = load float, ptr %718, align 4, !tbaa !15
  %720 = load float, ptr %53, align 4, !tbaa !11
  %721 = fdiv float %719, %720
  %722 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %721, ptr %722, align 4, !tbaa !15
  %723 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %724 = load float, ptr %723, align 4, !tbaa !13
  %725 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %724, ptr %725, align 4, !tbaa !13
  %726 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %727 = load float, ptr %726, align 4, !tbaa !15
  %728 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %727, ptr %728, align 4, !tbaa !15
  br label %729

729:                                              ; preds = %688, %646
  br label %826

730:                                              ; preds = %630
  %731 = load float, ptr %51, align 4, !tbaa !11
  %732 = load float, ptr %53, align 4, !tbaa !11
  %733 = load float, ptr %68, align 4, !tbaa !11
  %734 = fdiv float %732, %733
  %735 = fcmp ole float %731, %734
  %736 = zext i1 %735 to i32
  store i32 %736, ptr %71, align 4, !tbaa !9
  %737 = load float, ptr %51, align 4, !tbaa !11
  %738 = load float, ptr %68, align 4, !tbaa !11
  %739 = load float, ptr %53, align 4, !tbaa !11
  %740 = fdiv float %738, %739
  %741 = fcmp ogt float %737, %740
  br i1 %741, label %742, label %784

742:                                              ; preds = %730
  %743 = load ptr, ptr %19, align 8, !tbaa !5
  %744 = load ptr, ptr %21, align 8, !tbaa !5
  %745 = load i32, ptr %62, align 4, !tbaa !9
  %746 = load i32, ptr %35, align 4, !tbaa !9
  %747 = mul nsw i32 %745, %746
  %748 = add nsw i32 %747, 1
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds %struct.complex, ptr %744, i64 %749
  %751 = load ptr, ptr %21, align 8, !tbaa !5
  %752 = load i32, ptr %63, align 4, !tbaa !9
  %753 = load i32, ptr %35, align 4, !tbaa !9
  %754 = mul nsw i32 %752, %753
  %755 = add nsw i32 %754, 1
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds %struct.complex, ptr %751, i64 %756
  call void @cdotc_(ptr noundef %50, ptr noundef %743, ptr noundef %750, ptr noundef @c__1, ptr noundef %757, ptr noundef @c__1)
  %758 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %759 = load float, ptr %758, align 4, !tbaa !13
  %760 = load float, ptr %51, align 4, !tbaa !11
  %761 = fdiv float %759, %760
  %762 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %761, ptr %762, align 4, !tbaa !13
  %763 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %764 = load float, ptr %763, align 4, !tbaa !15
  %765 = load float, ptr %51, align 4, !tbaa !11
  %766 = fdiv float %764, %765
  %767 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %766, ptr %767, align 4, !tbaa !15
  %768 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %769 = load float, ptr %768, align 4, !tbaa !13
  %770 = load float, ptr %53, align 4, !tbaa !11
  %771 = fdiv float %769, %770
  %772 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %771, ptr %772, align 4, !tbaa !13
  %773 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %774 = load float, ptr %773, align 4, !tbaa !15
  %775 = load float, ptr %53, align 4, !tbaa !11
  %776 = fdiv float %774, %775
  %777 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %776, ptr %777, align 4, !tbaa !15
  %778 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %779 = load float, ptr %778, align 4, !tbaa !13
  %780 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %779, ptr %780, align 4, !tbaa !13
  %781 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %782 = load float, ptr %781, align 4, !tbaa !15
  %783 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %782, ptr %783, align 4, !tbaa !15
  br label %825

784:                                              ; preds = %730
  %785 = load ptr, ptr %19, align 8, !tbaa !5
  %786 = load ptr, ptr %21, align 8, !tbaa !5
  %787 = load i32, ptr %63, align 4, !tbaa !9
  %788 = load i32, ptr %35, align 4, !tbaa !9
  %789 = mul nsw i32 %787, %788
  %790 = add nsw i32 %789, 1
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds %struct.complex, ptr %786, i64 %791
  %793 = load ptr, ptr %32, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.complex, ptr %793, i64 1
  call void @ccopy_(ptr noundef %785, ptr noundef %792, ptr noundef @c__1, ptr noundef %794, ptr noundef @c__1)
  %795 = load ptr, ptr %19, align 8, !tbaa !5
  %796 = load ptr, ptr %32, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.complex, ptr %796, i64 1
  %798 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %53, ptr noundef @c_b27, ptr noundef %795, ptr noundef @c__1, ptr noundef %797, ptr noundef %798, ptr noundef %54)
  %799 = load ptr, ptr %19, align 8, !tbaa !5
  %800 = load ptr, ptr %21, align 8, !tbaa !5
  %801 = load i32, ptr %62, align 4, !tbaa !9
  %802 = load i32, ptr %35, align 4, !tbaa !9
  %803 = mul nsw i32 %801, %802
  %804 = add nsw i32 %803, 1
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds %struct.complex, ptr %800, i64 %805
  %807 = load ptr, ptr %32, align 8, !tbaa !5
  %808 = getelementptr inbounds %struct.complex, ptr %807, i64 1
  call void @cdotc_(ptr noundef %49, ptr noundef %799, ptr noundef %806, ptr noundef @c__1, ptr noundef %808, ptr noundef @c__1)
  %809 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %810 = load float, ptr %809, align 4, !tbaa !13
  %811 = load float, ptr %51, align 4, !tbaa !11
  %812 = fdiv float %810, %811
  %813 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %812, ptr %813, align 4, !tbaa !13
  %814 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %815 = load float, ptr %814, align 4, !tbaa !15
  %816 = load float, ptr %51, align 4, !tbaa !11
  %817 = fdiv float %815, %816
  %818 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %817, ptr %818, align 4, !tbaa !15
  %819 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %820 = load float, ptr %819, align 4, !tbaa !13
  %821 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %820, ptr %821, align 4, !tbaa !13
  %822 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %823 = load float, ptr %822, align 4, !tbaa !15
  %824 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %823, ptr %824, align 4, !tbaa !15
  br label %825

825:                                              ; preds = %784, %742
  br label %826

826:                                              ; preds = %825, %729
  %827 = call <2 x float> @Cf(ptr noundef %52)
  store <2 x float> %827, ptr %99, align 4
  %828 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 0
  %829 = load float, ptr %828, align 4
  %830 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 1
  %831 = load float, ptr %830, align 4
  %832 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %833 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  store float %829, ptr %832, align 4
  store float %831, ptr %833, align 4
  %834 = load <2 x float>, ptr %100, align 4
  %835 = call float @cabsf(<2 x float> noundef %834) #7
  %836 = fneg float %835
  store float %836, ptr %59, align 4, !tbaa !11
  %837 = load float, ptr %78, align 4, !tbaa !11
  store float %837, ptr %46, align 4, !tbaa !11
  %838 = load float, ptr %59, align 4, !tbaa !11
  %839 = fneg float %838
  store float %839, ptr %47, align 4, !tbaa !11
  %840 = load float, ptr %46, align 4, !tbaa !11
  %841 = load float, ptr %47, align 4, !tbaa !11
  %842 = fcmp oge float %840, %841
  br i1 %842, label %843, label %845

843:                                              ; preds = %826
  %844 = load float, ptr %46, align 4, !tbaa !11
  br label %847

845:                                              ; preds = %826
  %846 = load float, ptr %47, align 4, !tbaa !11
  br label %847

847:                                              ; preds = %845, %843
  %848 = phi float [ %844, %843 ], [ %846, %845 ]
  store float %848, ptr %78, align 4, !tbaa !11
  %849 = load float, ptr %59, align 4, !tbaa !11
  %850 = fcmp oge float %849, 0.000000e+00
  br i1 %850, label %851, label %853

851:                                              ; preds = %847
  %852 = load float, ptr %59, align 4, !tbaa !11
  br label %856

853:                                              ; preds = %847
  %854 = load float, ptr %59, align 4, !tbaa !11
  %855 = fneg float %854
  br label %856

856:                                              ; preds = %853, %851
  %857 = phi float [ %852, %851 ], [ %855, %853 ]
  %858 = load ptr, ptr %30, align 8, !tbaa !5
  %859 = load float, ptr %858, align 4, !tbaa !11
  %860 = fcmp ogt float %857, %859
  br i1 %860, label %861, label %1494

861:                                              ; preds = %856
  %862 = call <2 x float> @Cf(ptr noundef %52)
  store <2 x float> %862, ptr %101, align 4
  %863 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %864 = load float, ptr %863, align 4
  %865 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  %866 = load float, ptr %865, align 4
  %867 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %868 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  store float %864, ptr %867, align 4
  store float %866, ptr %868, align 4
  %869 = load <2 x float>, ptr %102, align 4
  %870 = call float @cabsf(<2 x float> noundef %869) #7
  store float %870, ptr %46, align 4, !tbaa !11
  %871 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %872 = load float, ptr %871, align 4, !tbaa !13
  %873 = load float, ptr %46, align 4, !tbaa !11
  %874 = fdiv float %872, %873
  %875 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %874, ptr %875, align 4, !tbaa !13
  %876 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %877 = load float, ptr %876, align 4, !tbaa !15
  %878 = load float, ptr %46, align 4, !tbaa !11
  %879 = fdiv float %877, %878
  %880 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %879, ptr %880, align 4, !tbaa !15
  %881 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %882 = load float, ptr %881, align 4, !tbaa !13
  %883 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %882, ptr %883, align 4, !tbaa !13
  %884 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %885 = load float, ptr %884, align 4, !tbaa !15
  %886 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %885, ptr %886, align 4, !tbaa !15
  %887 = load i32, ptr %81, align 4, !tbaa !9
  %888 = icmp eq i32 %887, 0
  br i1 %888, label %889, label %892

889:                                              ; preds = %861
  store i32 0, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %57, align 4, !tbaa !9
  %890 = load i32, ptr %84, align 4, !tbaa !9
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr %84, align 4, !tbaa !9
  br label %892

892:                                              ; preds = %889, %861
  %893 = load i32, ptr %71, align 4, !tbaa !9
  %894 = icmp ne i32 %893, 0
  br i1 %894, label %895, label %1306

895:                                              ; preds = %892
  %896 = load float, ptr %53, align 4, !tbaa !11
  %897 = load float, ptr %51, align 4, !tbaa !11
  %898 = fdiv float %896, %897
  store float %898, ptr %66, align 4, !tbaa !11
  %899 = load float, ptr %51, align 4, !tbaa !11
  %900 = load float, ptr %53, align 4, !tbaa !11
  %901 = fdiv float %899, %900
  store float %901, ptr %65, align 4, !tbaa !11
  %902 = load float, ptr %66, align 4, !tbaa !11
  %903 = load float, ptr %65, align 4, !tbaa !11
  %904 = fsub float %902, %903
  store float %904, ptr %46, align 4, !tbaa !11
  %905 = load float, ptr %46, align 4, !tbaa !11
  %906 = fcmp oge float %905, 0.000000e+00
  br i1 %906, label %907, label %909

907:                                              ; preds = %895
  %908 = load float, ptr %46, align 4, !tbaa !11
  br label %912

909:                                              ; preds = %895
  %910 = load float, ptr %46, align 4, !tbaa !11
  %911 = fneg float %910
  br label %912

912:                                              ; preds = %909, %907
  %913 = phi float [ %908, %907 ], [ %911, %909 ]
  %914 = fmul float %913, -5.000000e-01
  %915 = load float, ptr %59, align 4, !tbaa !11
  %916 = fdiv float %914, %915
  store float %916, ptr %67, align 4, !tbaa !11
  %917 = load float, ptr %67, align 4, !tbaa !11
  %918 = fcmp oge float %917, 0.000000e+00
  br i1 %918, label %919, label %921

919:                                              ; preds = %912
  %920 = load float, ptr %67, align 4, !tbaa !11
  br label %924

921:                                              ; preds = %912
  %922 = load float, ptr %67, align 4, !tbaa !11
  %923 = fneg float %922
  br label %924

924:                                              ; preds = %921, %919
  %925 = phi float [ %920, %919 ], [ %923, %921 ]
  %926 = load float, ptr %55, align 4, !tbaa !11
  %927 = fcmp ogt float %925, %926
  br i1 %927, label %928, label %1066

928:                                              ; preds = %924
  %929 = load float, ptr %67, align 4, !tbaa !11
  %930 = fdiv float 5.000000e-01, %929
  store float %930, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %73, align 4, !tbaa !11
  %931 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %931, ptr %103, align 4
  %932 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %933 = load float, ptr %932, align 4
  %934 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %935 = load float, ptr %934, align 4
  %936 = fneg float %935
  %937 = call ptr @_pCf(ptr noundef %49)
  %938 = getelementptr inbounds { float, float }, ptr %937, i32 0, i32 0
  %939 = getelementptr inbounds { float, float }, ptr %937, i32 0, i32 1
  store float %933, ptr %938, align 4
  store float %936, ptr %939, align 4
  %940 = load float, ptr %64, align 4, !tbaa !11
  %941 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %942 = load float, ptr %941, align 4, !tbaa !13
  %943 = fmul float %940, %942
  %944 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %943, ptr %944, align 4, !tbaa !13
  %945 = load float, ptr %64, align 4, !tbaa !11
  %946 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %947 = load float, ptr %946, align 4, !tbaa !15
  %948 = fmul float %945, %947
  %949 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %948, ptr %949, align 4, !tbaa !15
  %950 = load ptr, ptr %19, align 8, !tbaa !5
  %951 = load ptr, ptr %21, align 8, !tbaa !5
  %952 = load i32, ptr %62, align 4, !tbaa !9
  %953 = load i32, ptr %35, align 4, !tbaa !9
  %954 = mul nsw i32 %952, %953
  %955 = add nsw i32 %954, 1
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds %struct.complex, ptr %951, i64 %956
  %958 = load ptr, ptr %21, align 8, !tbaa !5
  %959 = load i32, ptr %63, align 4, !tbaa !9
  %960 = load i32, ptr %35, align 4, !tbaa !9
  %961 = mul nsw i32 %959, %960
  %962 = add nsw i32 %961, 1
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds %struct.complex, ptr %958, i64 %963
  call void @crot_(ptr noundef %950, ptr noundef %957, ptr noundef @c__1, ptr noundef %964, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  %965 = load i32, ptr %70, align 4, !tbaa !9
  %966 = icmp ne i32 %965, 0
  br i1 %966, label %967, label %1001

967:                                              ; preds = %928
  %968 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %968, ptr %104, align 4
  %969 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %970 = load float, ptr %969, align 4
  %971 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %972 = load float, ptr %971, align 4
  %973 = fneg float %972
  %974 = call ptr @_pCf(ptr noundef %49)
  %975 = getelementptr inbounds { float, float }, ptr %974, i32 0, i32 0
  %976 = getelementptr inbounds { float, float }, ptr %974, i32 0, i32 1
  store float %970, ptr %975, align 4
  store float %973, ptr %976, align 4
  %977 = load float, ptr %64, align 4, !tbaa !11
  %978 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %979 = load float, ptr %978, align 4, !tbaa !13
  %980 = fmul float %977, %979
  %981 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %980, ptr %981, align 4, !tbaa !13
  %982 = load float, ptr %64, align 4, !tbaa !11
  %983 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %984 = load float, ptr %983, align 4, !tbaa !15
  %985 = fmul float %982, %984
  %986 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %985, ptr %986, align 4, !tbaa !15
  %987 = load ptr, ptr %26, align 8, !tbaa !5
  %988 = load i32, ptr %62, align 4, !tbaa !9
  %989 = load i32, ptr %37, align 4, !tbaa !9
  %990 = mul nsw i32 %988, %989
  %991 = add nsw i32 %990, 1
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds %struct.complex, ptr %987, i64 %992
  %994 = load ptr, ptr %26, align 8, !tbaa !5
  %995 = load i32, ptr %63, align 4, !tbaa !9
  %996 = load i32, ptr %37, align 4, !tbaa !9
  %997 = mul nsw i32 %995, %996
  %998 = add nsw i32 %997, 1
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds %struct.complex, ptr %994, i64 %999
  call void @crot_(ptr noundef %93, ptr noundef %993, ptr noundef @c__1, ptr noundef %1000, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  br label %1001

1001:                                             ; preds = %967, %928
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %1002 = load float, ptr %64, align 4, !tbaa !11
  %1003 = load float, ptr %65, align 4, !tbaa !11
  %1004 = fmul float %1002, %1003
  %1005 = load float, ptr %59, align 4, !tbaa !11
  %1006 = call float @llvm.fmuladd.f32(float %1004, float %1005, float 1.000000e+00)
  store float %1006, ptr %47, align 4, !tbaa !11
  %1007 = load float, ptr %53, align 4, !tbaa !11
  %1008 = fpext float %1007 to double
  %1009 = load float, ptr %46, align 4, !tbaa !11
  %1010 = load float, ptr %47, align 4, !tbaa !11
  %1011 = fcmp oge float %1009, %1010
  br i1 %1011, label %1012, label %1014

1012:                                             ; preds = %1001
  %1013 = load float, ptr %46, align 4, !tbaa !11
  br label %1016

1014:                                             ; preds = %1001
  %1015 = load float, ptr %47, align 4, !tbaa !11
  br label %1016

1016:                                             ; preds = %1014, %1012
  %1017 = phi float [ %1013, %1012 ], [ %1015, %1014 ]
  %1018 = fpext float %1017 to double
  %1019 = call double @sqrt(double noundef %1018) #7
  %1020 = fmul double %1008, %1019
  %1021 = fptrunc double %1020 to float
  %1022 = load ptr, ptr %24, align 8, !tbaa !5
  %1023 = load i32, ptr %63, align 4, !tbaa !9
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds float, ptr %1022, i64 %1024
  store float %1021, ptr %1025, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %1026 = load float, ptr %64, align 4, !tbaa !11
  %1027 = load float, ptr %66, align 4, !tbaa !11
  %1028 = fmul float %1026, %1027
  %1029 = load float, ptr %59, align 4, !tbaa !11
  %1030 = fneg float %1028
  %1031 = call float @llvm.fmuladd.f32(float %1030, float %1029, float 1.000000e+00)
  store float %1031, ptr %47, align 4, !tbaa !11
  %1032 = load float, ptr %46, align 4, !tbaa !11
  %1033 = load float, ptr %47, align 4, !tbaa !11
  %1034 = fcmp oge float %1032, %1033
  br i1 %1034, label %1035, label %1037

1035:                                             ; preds = %1016
  %1036 = load float, ptr %46, align 4, !tbaa !11
  br label %1039

1037:                                             ; preds = %1016
  %1038 = load float, ptr %47, align 4, !tbaa !11
  br label %1039

1039:                                             ; preds = %1037, %1035
  %1040 = phi float [ %1036, %1035 ], [ %1038, %1037 ]
  %1041 = fpext float %1040 to double
  %1042 = call double @sqrt(double noundef %1041) #7
  %1043 = load float, ptr %51, align 4, !tbaa !11
  %1044 = fpext float %1043 to double
  %1045 = fmul double %1044, %1042
  %1046 = fptrunc double %1045 to float
  store float %1046, ptr %51, align 4, !tbaa !11
  %1047 = load float, ptr %80, align 4, !tbaa !11
  store float %1047, ptr %46, align 4, !tbaa !11
  %1048 = load float, ptr %64, align 4, !tbaa !11
  %1049 = fcmp oge float %1048, 0.000000e+00
  br i1 %1049, label %1050, label %1052

1050:                                             ; preds = %1039
  %1051 = load float, ptr %64, align 4, !tbaa !11
  br label %1055

1052:                                             ; preds = %1039
  %1053 = load float, ptr %64, align 4, !tbaa !11
  %1054 = fneg float %1053
  br label %1055

1055:                                             ; preds = %1052, %1050
  %1056 = phi float [ %1051, %1050 ], [ %1054, %1052 ]
  store float %1056, ptr %47, align 4, !tbaa !11
  %1057 = load float, ptr %46, align 4, !tbaa !11
  %1058 = load float, ptr %47, align 4, !tbaa !11
  %1059 = fcmp oge float %1057, %1058
  br i1 %1059, label %1060, label %1062

1060:                                             ; preds = %1055
  %1061 = load float, ptr %46, align 4, !tbaa !11
  br label %1064

1062:                                             ; preds = %1055
  %1063 = load float, ptr %47, align 4, !tbaa !11
  br label %1064

1064:                                             ; preds = %1062, %1060
  %1065 = phi float [ %1061, %1060 ], [ %1063, %1062 ]
  store float %1065, ptr %80, align 4, !tbaa !11
  br label %1250

1066:                                             ; preds = %924
  %1067 = load float, ptr %59, align 4, !tbaa !11
  %1068 = fcmp oge float %1067, 0.000000e+00
  br i1 %1068, label %1069, label %1079

1069:                                             ; preds = %1066
  %1070 = load float, ptr @c_b27, align 4, !tbaa !11
  %1071 = fcmp oge float %1070, 0.000000e+00
  br i1 %1071, label %1072, label %1074

1072:                                             ; preds = %1069
  %1073 = load float, ptr @c_b27, align 4, !tbaa !11
  br label %1077

1074:                                             ; preds = %1069
  %1075 = load float, ptr @c_b27, align 4, !tbaa !11
  %1076 = fneg float %1075
  br label %1077

1077:                                             ; preds = %1074, %1072
  %1078 = phi float [ %1073, %1072 ], [ %1076, %1074 ]
  br label %1090

1079:                                             ; preds = %1066
  %1080 = load float, ptr @c_b27, align 4, !tbaa !11
  %1081 = fcmp oge float %1080, 0.000000e+00
  br i1 %1081, label %1082, label %1084

1082:                                             ; preds = %1079
  %1083 = load float, ptr @c_b27, align 4, !tbaa !11
  br label %1087

1084:                                             ; preds = %1079
  %1085 = load float, ptr @c_b27, align 4, !tbaa !11
  %1086 = fneg float %1085
  br label %1087

1087:                                             ; preds = %1084, %1082
  %1088 = phi float [ %1083, %1082 ], [ %1086, %1084 ]
  %1089 = fneg float %1088
  br label %1090

1090:                                             ; preds = %1087, %1077
  %1091 = phi float [ %1078, %1077 ], [ %1089, %1087 ]
  %1092 = fneg float %1091
  store float %1092, ptr %79, align 4, !tbaa !11
  %1093 = load float, ptr %67, align 4, !tbaa !11
  %1094 = fpext float %1093 to double
  %1095 = load float, ptr %79, align 4, !tbaa !11
  %1096 = fpext float %1095 to double
  %1097 = load float, ptr %67, align 4, !tbaa !11
  %1098 = load float, ptr %67, align 4, !tbaa !11
  %1099 = call float @llvm.fmuladd.f32(float %1097, float %1098, float 1.000000e+00)
  %1100 = fpext float %1099 to double
  %1101 = call double @sqrt(double noundef %1100) #7
  %1102 = call double @llvm.fmuladd.f64(double %1096, double %1101, double %1094)
  %1103 = fdiv double 1.000000e+00, %1102
  %1104 = fptrunc double %1103 to float
  store float %1104, ptr %64, align 4, !tbaa !11
  %1105 = load float, ptr %64, align 4, !tbaa !11
  %1106 = load float, ptr %64, align 4, !tbaa !11
  %1107 = call float @llvm.fmuladd.f32(float %1105, float %1106, float 1.000000e+00)
  %1108 = fdiv float 1.000000e+00, %1107
  %1109 = fpext float %1108 to double
  %1110 = call double @sqrt(double noundef %1109) #7
  %1111 = fptrunc double %1110 to float
  store float %1111, ptr %73, align 4, !tbaa !11
  %1112 = load float, ptr %64, align 4, !tbaa !11
  %1113 = load float, ptr %73, align 4, !tbaa !11
  %1114 = fmul float %1112, %1113
  store float %1114, ptr %74, align 4, !tbaa !11
  %1115 = load float, ptr %80, align 4, !tbaa !11
  store float %1115, ptr %46, align 4, !tbaa !11
  %1116 = load float, ptr %74, align 4, !tbaa !11
  %1117 = fcmp oge float %1116, 0.000000e+00
  br i1 %1117, label %1118, label %1120

1118:                                             ; preds = %1090
  %1119 = load float, ptr %74, align 4, !tbaa !11
  br label %1123

1120:                                             ; preds = %1090
  %1121 = load float, ptr %74, align 4, !tbaa !11
  %1122 = fneg float %1121
  br label %1123

1123:                                             ; preds = %1120, %1118
  %1124 = phi float [ %1119, %1118 ], [ %1122, %1120 ]
  store float %1124, ptr %47, align 4, !tbaa !11
  %1125 = load float, ptr %46, align 4, !tbaa !11
  %1126 = load float, ptr %47, align 4, !tbaa !11
  %1127 = fcmp oge float %1125, %1126
  br i1 %1127, label %1128, label %1130

1128:                                             ; preds = %1123
  %1129 = load float, ptr %46, align 4, !tbaa !11
  br label %1132

1130:                                             ; preds = %1123
  %1131 = load float, ptr %47, align 4, !tbaa !11
  br label %1132

1132:                                             ; preds = %1130, %1128
  %1133 = phi float [ %1129, %1128 ], [ %1131, %1130 ]
  store float %1133, ptr %80, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %1134 = load float, ptr %64, align 4, !tbaa !11
  %1135 = load float, ptr %65, align 4, !tbaa !11
  %1136 = fmul float %1134, %1135
  %1137 = load float, ptr %59, align 4, !tbaa !11
  %1138 = call float @llvm.fmuladd.f32(float %1136, float %1137, float 1.000000e+00)
  store float %1138, ptr %47, align 4, !tbaa !11
  %1139 = load float, ptr %53, align 4, !tbaa !11
  %1140 = fpext float %1139 to double
  %1141 = load float, ptr %46, align 4, !tbaa !11
  %1142 = load float, ptr %47, align 4, !tbaa !11
  %1143 = fcmp oge float %1141, %1142
  br i1 %1143, label %1144, label %1146

1144:                                             ; preds = %1132
  %1145 = load float, ptr %46, align 4, !tbaa !11
  br label %1148

1146:                                             ; preds = %1132
  %1147 = load float, ptr %47, align 4, !tbaa !11
  br label %1148

1148:                                             ; preds = %1146, %1144
  %1149 = phi float [ %1145, %1144 ], [ %1147, %1146 ]
  %1150 = fpext float %1149 to double
  %1151 = call double @sqrt(double noundef %1150) #7
  %1152 = fmul double %1140, %1151
  %1153 = fptrunc double %1152 to float
  %1154 = load ptr, ptr %24, align 8, !tbaa !5
  %1155 = load i32, ptr %63, align 4, !tbaa !9
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds float, ptr %1154, i64 %1156
  store float %1153, ptr %1157, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %1158 = load float, ptr %64, align 4, !tbaa !11
  %1159 = load float, ptr %66, align 4, !tbaa !11
  %1160 = fmul float %1158, %1159
  %1161 = load float, ptr %59, align 4, !tbaa !11
  %1162 = fneg float %1160
  %1163 = call float @llvm.fmuladd.f32(float %1162, float %1161, float 1.000000e+00)
  store float %1163, ptr %47, align 4, !tbaa !11
  %1164 = load float, ptr %46, align 4, !tbaa !11
  %1165 = load float, ptr %47, align 4, !tbaa !11
  %1166 = fcmp oge float %1164, %1165
  br i1 %1166, label %1167, label %1169

1167:                                             ; preds = %1148
  %1168 = load float, ptr %46, align 4, !tbaa !11
  br label %1171

1169:                                             ; preds = %1148
  %1170 = load float, ptr %47, align 4, !tbaa !11
  br label %1171

1171:                                             ; preds = %1169, %1167
  %1172 = phi float [ %1168, %1167 ], [ %1170, %1169 ]
  %1173 = fpext float %1172 to double
  %1174 = call double @sqrt(double noundef %1173) #7
  %1175 = load float, ptr %51, align 4, !tbaa !11
  %1176 = fpext float %1175 to double
  %1177 = fmul double %1176, %1174
  %1178 = fptrunc double %1177 to float
  store float %1178, ptr %51, align 4, !tbaa !11
  %1179 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %1179, ptr %105, align 4
  %1180 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %1181 = load float, ptr %1180, align 4
  %1182 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %1183 = load float, ptr %1182, align 4
  %1184 = fneg float %1183
  %1185 = call ptr @_pCf(ptr noundef %49)
  %1186 = getelementptr inbounds { float, float }, ptr %1185, i32 0, i32 0
  %1187 = getelementptr inbounds { float, float }, ptr %1185, i32 0, i32 1
  store float %1181, ptr %1186, align 4
  store float %1184, ptr %1187, align 4
  %1188 = load float, ptr %74, align 4, !tbaa !11
  %1189 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1190 = load float, ptr %1189, align 4, !tbaa !13
  %1191 = fmul float %1188, %1190
  %1192 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1191, ptr %1192, align 4, !tbaa !13
  %1193 = load float, ptr %74, align 4, !tbaa !11
  %1194 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1195 = load float, ptr %1194, align 4, !tbaa !15
  %1196 = fmul float %1193, %1195
  %1197 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1196, ptr %1197, align 4, !tbaa !15
  %1198 = load ptr, ptr %19, align 8, !tbaa !5
  %1199 = load ptr, ptr %21, align 8, !tbaa !5
  %1200 = load i32, ptr %62, align 4, !tbaa !9
  %1201 = load i32, ptr %35, align 4, !tbaa !9
  %1202 = mul nsw i32 %1200, %1201
  %1203 = add nsw i32 %1202, 1
  %1204 = sext i32 %1203 to i64
  %1205 = getelementptr inbounds %struct.complex, ptr %1199, i64 %1204
  %1206 = load ptr, ptr %21, align 8, !tbaa !5
  %1207 = load i32, ptr %63, align 4, !tbaa !9
  %1208 = load i32, ptr %35, align 4, !tbaa !9
  %1209 = mul nsw i32 %1207, %1208
  %1210 = add nsw i32 %1209, 1
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds %struct.complex, ptr %1206, i64 %1211
  call void @crot_(ptr noundef %1198, ptr noundef %1205, ptr noundef @c__1, ptr noundef %1212, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  %1213 = load i32, ptr %70, align 4, !tbaa !9
  %1214 = icmp ne i32 %1213, 0
  br i1 %1214, label %1215, label %1249

1215:                                             ; preds = %1171
  %1216 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %1216, ptr %106, align 4
  %1217 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %1218 = load float, ptr %1217, align 4
  %1219 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  %1220 = load float, ptr %1219, align 4
  %1221 = fneg float %1220
  %1222 = call ptr @_pCf(ptr noundef %49)
  %1223 = getelementptr inbounds { float, float }, ptr %1222, i32 0, i32 0
  %1224 = getelementptr inbounds { float, float }, ptr %1222, i32 0, i32 1
  store float %1218, ptr %1223, align 4
  store float %1221, ptr %1224, align 4
  %1225 = load float, ptr %74, align 4, !tbaa !11
  %1226 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1227 = load float, ptr %1226, align 4, !tbaa !13
  %1228 = fmul float %1225, %1227
  %1229 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1228, ptr %1229, align 4, !tbaa !13
  %1230 = load float, ptr %74, align 4, !tbaa !11
  %1231 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1232 = load float, ptr %1231, align 4, !tbaa !15
  %1233 = fmul float %1230, %1232
  %1234 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1233, ptr %1234, align 4, !tbaa !15
  %1235 = load ptr, ptr %26, align 8, !tbaa !5
  %1236 = load i32, ptr %62, align 4, !tbaa !9
  %1237 = load i32, ptr %37, align 4, !tbaa !9
  %1238 = mul nsw i32 %1236, %1237
  %1239 = add nsw i32 %1238, 1
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds %struct.complex, ptr %1235, i64 %1240
  %1242 = load ptr, ptr %26, align 8, !tbaa !5
  %1243 = load i32, ptr %63, align 4, !tbaa !9
  %1244 = load i32, ptr %37, align 4, !tbaa !9
  %1245 = mul nsw i32 %1243, %1244
  %1246 = add nsw i32 %1245, 1
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds %struct.complex, ptr %1242, i64 %1247
  call void @crot_(ptr noundef %93, ptr noundef %1241, ptr noundef @c__1, ptr noundef %1248, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  br label %1249

1249:                                             ; preds = %1215, %1171
  br label %1250

1250:                                             ; preds = %1249, %1064
  %1251 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %1251, ptr %44, align 4, !tbaa !9
  %1252 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %1252, ptr %45, align 4, !tbaa !9
  %1253 = load ptr, ptr %23, align 8, !tbaa !5
  %1254 = load i32, ptr %45, align 4, !tbaa !9
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds %struct.complex, ptr %1253, i64 %1255
  %1257 = getelementptr inbounds %struct.complex, ptr %1256, i32 0, i32 0
  %1258 = load float, ptr %1257, align 4, !tbaa !13
  %1259 = fneg float %1258
  %1260 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1259, ptr %1260, align 4, !tbaa !13
  %1261 = load ptr, ptr %23, align 8, !tbaa !5
  %1262 = load i32, ptr %45, align 4, !tbaa !9
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds %struct.complex, ptr %1261, i64 %1263
  %1265 = getelementptr inbounds %struct.complex, ptr %1264, i32 0, i32 1
  %1266 = load float, ptr %1265, align 4, !tbaa !15
  %1267 = fneg float %1266
  %1268 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1267, ptr %1268, align 4, !tbaa !15
  %1269 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1270 = load float, ptr %1269, align 4, !tbaa !13
  %1271 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1272 = load float, ptr %1271, align 4, !tbaa !13
  %1273 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1274 = load float, ptr %1273, align 4, !tbaa !15
  %1275 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1276 = load float, ptr %1275, align 4, !tbaa !15
  %1277 = fmul float %1274, %1276
  %1278 = fneg float %1277
  %1279 = call float @llvm.fmuladd.f32(float %1270, float %1272, float %1278)
  %1280 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1279, ptr %1280, align 4, !tbaa !13
  %1281 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1282 = load float, ptr %1281, align 4, !tbaa !13
  %1283 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1284 = load float, ptr %1283, align 4, !tbaa !15
  %1285 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1286 = load float, ptr %1285, align 4, !tbaa !15
  %1287 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1288 = load float, ptr %1287, align 4, !tbaa !13
  %1289 = fmul float %1286, %1288
  %1290 = call float @llvm.fmuladd.f32(float %1282, float %1284, float %1289)
  %1291 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1290, ptr %1291, align 4, !tbaa !15
  %1292 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1293 = load float, ptr %1292, align 4, !tbaa !13
  %1294 = load ptr, ptr %23, align 8, !tbaa !5
  %1295 = load i32, ptr %44, align 4, !tbaa !9
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds %struct.complex, ptr %1294, i64 %1296
  %1298 = getelementptr inbounds %struct.complex, ptr %1297, i32 0, i32 0
  store float %1293, ptr %1298, align 4, !tbaa !13
  %1299 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1300 = load float, ptr %1299, align 4, !tbaa !15
  %1301 = load ptr, ptr %23, align 8, !tbaa !5
  %1302 = load i32, ptr %44, align 4, !tbaa !9
  %1303 = sext i32 %1302 to i64
  %1304 = getelementptr inbounds %struct.complex, ptr %1301, i64 %1303
  %1305 = getelementptr inbounds %struct.complex, ptr %1304, i32 0, i32 1
  store float %1300, ptr %1305, align 4, !tbaa !15
  br label %1391

1306:                                             ; preds = %892
  %1307 = load ptr, ptr %19, align 8, !tbaa !5
  %1308 = load ptr, ptr %21, align 8, !tbaa !5
  %1309 = load i32, ptr %62, align 4, !tbaa !9
  %1310 = load i32, ptr %35, align 4, !tbaa !9
  %1311 = mul nsw i32 %1309, %1310
  %1312 = add nsw i32 %1311, 1
  %1313 = sext i32 %1312 to i64
  %1314 = getelementptr inbounds %struct.complex, ptr %1308, i64 %1313
  %1315 = load ptr, ptr %32, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.complex, ptr %1315, i64 1
  call void @ccopy_(ptr noundef %1307, ptr noundef %1314, ptr noundef @c__1, ptr noundef %1316, ptr noundef @c__1)
  %1317 = load ptr, ptr %19, align 8, !tbaa !5
  %1318 = load ptr, ptr %32, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.complex, ptr %1318, i64 1
  %1320 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %51, ptr noundef @c_b27, ptr noundef %1317, ptr noundef @c__1, ptr noundef %1319, ptr noundef %1320, ptr noundef %54)
  %1321 = load ptr, ptr %19, align 8, !tbaa !5
  %1322 = load ptr, ptr %21, align 8, !tbaa !5
  %1323 = load i32, ptr %63, align 4, !tbaa !9
  %1324 = load i32, ptr %35, align 4, !tbaa !9
  %1325 = mul nsw i32 %1323, %1324
  %1326 = add nsw i32 %1325, 1
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds %struct.complex, ptr %1322, i64 %1327
  %1329 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %53, ptr noundef @c_b27, ptr noundef %1321, ptr noundef @c__1, ptr noundef %1328, ptr noundef %1329, ptr noundef %54)
  %1330 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1331 = load float, ptr %1330, align 4, !tbaa !13
  %1332 = fneg float %1331
  %1333 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1332, ptr %1333, align 4, !tbaa !13
  %1334 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1335 = load float, ptr %1334, align 4, !tbaa !15
  %1336 = fneg float %1335
  %1337 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1336, ptr %1337, align 4, !tbaa !15
  %1338 = load ptr, ptr %19, align 8, !tbaa !5
  %1339 = load ptr, ptr %32, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.complex, ptr %1339, i64 1
  %1341 = load ptr, ptr %21, align 8, !tbaa !5
  %1342 = load i32, ptr %63, align 4, !tbaa !9
  %1343 = load i32, ptr %35, align 4, !tbaa !9
  %1344 = mul nsw i32 %1342, %1343
  %1345 = add nsw i32 %1344, 1
  %1346 = sext i32 %1345 to i64
  %1347 = getelementptr inbounds %struct.complex, ptr %1341, i64 %1346
  call void @caxpy_(ptr noundef %1338, ptr noundef %48, ptr noundef %1340, ptr noundef @c__1, ptr noundef %1347, ptr noundef @c__1)
  %1348 = load ptr, ptr %19, align 8, !tbaa !5
  %1349 = load ptr, ptr %21, align 8, !tbaa !5
  %1350 = load i32, ptr %63, align 4, !tbaa !9
  %1351 = load i32, ptr %35, align 4, !tbaa !9
  %1352 = mul nsw i32 %1350, %1351
  %1353 = add nsw i32 %1352, 1
  %1354 = sext i32 %1353 to i64
  %1355 = getelementptr inbounds %struct.complex, ptr %1349, i64 %1354
  %1356 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b27, ptr noundef %53, ptr noundef %1348, ptr noundef @c__1, ptr noundef %1355, ptr noundef %1356, ptr noundef %54)
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %1357 = load float, ptr %59, align 4, !tbaa !11
  %1358 = load float, ptr %59, align 4, !tbaa !11
  %1359 = fneg float %1357
  %1360 = call float @llvm.fmuladd.f32(float %1359, float %1358, float 1.000000e+00)
  store float %1360, ptr %47, align 4, !tbaa !11
  %1361 = load float, ptr %53, align 4, !tbaa !11
  %1362 = fpext float %1361 to double
  %1363 = load float, ptr %46, align 4, !tbaa !11
  %1364 = load float, ptr %47, align 4, !tbaa !11
  %1365 = fcmp oge float %1363, %1364
  br i1 %1365, label %1366, label %1368

1366:                                             ; preds = %1306
  %1367 = load float, ptr %46, align 4, !tbaa !11
  br label %1370

1368:                                             ; preds = %1306
  %1369 = load float, ptr %47, align 4, !tbaa !11
  br label %1370

1370:                                             ; preds = %1368, %1366
  %1371 = phi float [ %1367, %1366 ], [ %1369, %1368 ]
  %1372 = fpext float %1371 to double
  %1373 = call double @sqrt(double noundef %1372) #7
  %1374 = fmul double %1362, %1373
  %1375 = fptrunc double %1374 to float
  %1376 = load ptr, ptr %24, align 8, !tbaa !5
  %1377 = load i32, ptr %63, align 4, !tbaa !9
  %1378 = sext i32 %1377 to i64
  %1379 = getelementptr inbounds float, ptr %1376, i64 %1378
  store float %1375, ptr %1379, align 4, !tbaa !11
  %1380 = load float, ptr %80, align 4, !tbaa !11
  %1381 = load ptr, ptr %29, align 8, !tbaa !5
  %1382 = load float, ptr %1381, align 4, !tbaa !11
  %1383 = fcmp oge float %1380, %1382
  br i1 %1383, label %1384, label %1386

1384:                                             ; preds = %1370
  %1385 = load float, ptr %80, align 4, !tbaa !11
  br label %1389

1386:                                             ; preds = %1370
  %1387 = load ptr, ptr %29, align 8, !tbaa !5
  %1388 = load float, ptr %1387, align 4, !tbaa !11
  br label %1389

1389:                                             ; preds = %1386, %1384
  %1390 = phi float [ %1385, %1384 ], [ %1388, %1386 ]
  store float %1390, ptr %80, align 4, !tbaa !11
  br label %1391

1391:                                             ; preds = %1389, %1250
  %1392 = load ptr, ptr %24, align 8, !tbaa !5
  %1393 = load i32, ptr %63, align 4, !tbaa !9
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds float, ptr %1392, i64 %1394
  %1396 = load float, ptr %1395, align 4, !tbaa !11
  %1397 = load float, ptr %53, align 4, !tbaa !11
  %1398 = fdiv float %1396, %1397
  store float %1398, ptr %46, align 4, !tbaa !11
  %1399 = load float, ptr %46, align 4, !tbaa !11
  %1400 = load float, ptr %46, align 4, !tbaa !11
  %1401 = fmul float %1399, %1400
  %1402 = load float, ptr %95, align 4, !tbaa !11
  %1403 = fcmp ole float %1401, %1402
  br i1 %1403, label %1404, label %1447

1404:                                             ; preds = %1391
  %1405 = load float, ptr %53, align 4, !tbaa !11
  %1406 = load float, ptr %94, align 4, !tbaa !11
  %1407 = fcmp olt float %1405, %1406
  br i1 %1407, label %1408, label %1426

1408:                                             ; preds = %1404
  %1409 = load float, ptr %53, align 4, !tbaa !11
  %1410 = load float, ptr %72, align 4, !tbaa !11
  %1411 = fcmp ogt float %1409, %1410
  br i1 %1411, label %1412, label %1426

1412:                                             ; preds = %1408
  %1413 = load ptr, ptr %19, align 8, !tbaa !5
  %1414 = load ptr, ptr %21, align 8, !tbaa !5
  %1415 = load i32, ptr %63, align 4, !tbaa !9
  %1416 = load i32, ptr %35, align 4, !tbaa !9
  %1417 = mul nsw i32 %1415, %1416
  %1418 = add nsw i32 %1417, 1
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds %struct.complex, ptr %1414, i64 %1419
  %1421 = call float @scnrm2_(ptr noundef %1413, ptr noundef %1420, ptr noundef @c__1)
  %1422 = load ptr, ptr %24, align 8, !tbaa !5
  %1423 = load i32, ptr %63, align 4, !tbaa !9
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds float, ptr %1422, i64 %1424
  store float %1421, ptr %1425, align 4, !tbaa !11
  br label %1446

1426:                                             ; preds = %1408, %1404
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %53, align 4, !tbaa !11
  %1427 = load ptr, ptr %19, align 8, !tbaa !5
  %1428 = load ptr, ptr %21, align 8, !tbaa !5
  %1429 = load i32, ptr %63, align 4, !tbaa !9
  %1430 = load i32, ptr %35, align 4, !tbaa !9
  %1431 = mul nsw i32 %1429, %1430
  %1432 = add nsw i32 %1431, 1
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds %struct.complex, ptr %1428, i64 %1433
  call void @classq_(ptr noundef %1427, ptr noundef %1434, ptr noundef @c__1, ptr noundef %64, ptr noundef %53)
  %1435 = load float, ptr %64, align 4, !tbaa !11
  %1436 = fpext float %1435 to double
  %1437 = load float, ptr %53, align 4, !tbaa !11
  %1438 = fpext float %1437 to double
  %1439 = call double @sqrt(double noundef %1438) #7
  %1440 = fmul double %1436, %1439
  %1441 = fptrunc double %1440 to float
  %1442 = load ptr, ptr %24, align 8, !tbaa !5
  %1443 = load i32, ptr %63, align 4, !tbaa !9
  %1444 = sext i32 %1443 to i64
  %1445 = getelementptr inbounds float, ptr %1442, i64 %1444
  store float %1441, ptr %1445, align 4, !tbaa !11
  br label %1446

1446:                                             ; preds = %1426, %1412
  br label %1447

1447:                                             ; preds = %1446, %1391
  %1448 = load float, ptr %51, align 4, !tbaa !11
  %1449 = load float, ptr %58, align 4, !tbaa !11
  %1450 = fdiv float %1448, %1449
  %1451 = load float, ptr %95, align 4, !tbaa !11
  %1452 = fcmp ole float %1450, %1451
  br i1 %1452, label %1453, label %1493

1453:                                             ; preds = %1447
  %1454 = load float, ptr %51, align 4, !tbaa !11
  %1455 = load float, ptr %94, align 4, !tbaa !11
  %1456 = fcmp olt float %1454, %1455
  br i1 %1456, label %1457, label %1471

1457:                                             ; preds = %1453
  %1458 = load float, ptr %51, align 4, !tbaa !11
  %1459 = load float, ptr %72, align 4, !tbaa !11
  %1460 = fcmp ogt float %1458, %1459
  br i1 %1460, label %1461, label %1471

1461:                                             ; preds = %1457
  %1462 = load ptr, ptr %19, align 8, !tbaa !5
  %1463 = load ptr, ptr %21, align 8, !tbaa !5
  %1464 = load i32, ptr %62, align 4, !tbaa !9
  %1465 = load i32, ptr %35, align 4, !tbaa !9
  %1466 = mul nsw i32 %1464, %1465
  %1467 = add nsw i32 %1466, 1
  %1468 = sext i32 %1467 to i64
  %1469 = getelementptr inbounds %struct.complex, ptr %1463, i64 %1468
  %1470 = call float @scnrm2_(ptr noundef %1462, ptr noundef %1469, ptr noundef @c__1)
  store float %1470, ptr %51, align 4, !tbaa !11
  br label %1487

1471:                                             ; preds = %1457, %1453
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %1472 = load ptr, ptr %19, align 8, !tbaa !5
  %1473 = load ptr, ptr %21, align 8, !tbaa !5
  %1474 = load i32, ptr %62, align 4, !tbaa !9
  %1475 = load i32, ptr %35, align 4, !tbaa !9
  %1476 = mul nsw i32 %1474, %1475
  %1477 = add nsw i32 %1476, 1
  %1478 = sext i32 %1477 to i64
  %1479 = getelementptr inbounds %struct.complex, ptr %1473, i64 %1478
  call void @classq_(ptr noundef %1472, ptr noundef %1479, ptr noundef @c__1, ptr noundef %64, ptr noundef %51)
  %1480 = load float, ptr %64, align 4, !tbaa !11
  %1481 = fpext float %1480 to double
  %1482 = load float, ptr %51, align 4, !tbaa !11
  %1483 = fpext float %1482 to double
  %1484 = call double @sqrt(double noundef %1483) #7
  %1485 = fmul double %1481, %1484
  %1486 = fptrunc double %1485 to float
  store float %1486, ptr %51, align 4, !tbaa !11
  br label %1487

1487:                                             ; preds = %1471, %1461
  %1488 = load float, ptr %51, align 4, !tbaa !11
  %1489 = load ptr, ptr %24, align 8, !tbaa !5
  %1490 = load i32, ptr %62, align 4, !tbaa !9
  %1491 = sext i32 %1490 to i64
  %1492 = getelementptr inbounds float, ptr %1489, i64 %1491
  store float %1488, ptr %1492, align 4, !tbaa !11
  br label %1493

1493:                                             ; preds = %1487, %1447
  br label %1503

1494:                                             ; preds = %856
  %1495 = load i32, ptr %81, align 4, !tbaa !9
  %1496 = icmp eq i32 %1495, 0
  br i1 %1496, label %1497, label %1500

1497:                                             ; preds = %1494
  %1498 = load i32, ptr %83, align 4, !tbaa !9
  %1499 = add nsw i32 %1498, 1
  store i32 %1499, ptr %83, align 4, !tbaa !9
  br label %1500

1500:                                             ; preds = %1497, %1494
  %1501 = load i32, ptr %57, align 4, !tbaa !9
  %1502 = add nsw i32 %1501, 1
  store i32 %1502, ptr %57, align 4, !tbaa !9
  br label %1503

1503:                                             ; preds = %1500, %1493
  br label %1513

1504:                                             ; preds = %622
  %1505 = load i32, ptr %81, align 4, !tbaa !9
  %1506 = icmp eq i32 %1505, 0
  br i1 %1506, label %1507, label %1510

1507:                                             ; preds = %1504
  %1508 = load i32, ptr %83, align 4, !tbaa !9
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr %83, align 4, !tbaa !9
  br label %1510

1510:                                             ; preds = %1507, %1504
  %1511 = load i32, ptr %57, align 4, !tbaa !9
  %1512 = add nsw i32 %1511, 1
  store i32 %1512, ptr %57, align 4, !tbaa !9
  br label %1513

1513:                                             ; preds = %1510, %1503
  %1514 = load i32, ptr %61, align 4, !tbaa !9
  %1515 = load i32, ptr %76, align 4, !tbaa !9
  %1516 = icmp sle i32 %1514, %1515
  br i1 %1516, label %1517, label %1528

1517:                                             ; preds = %1513
  %1518 = load i32, ptr %57, align 4, !tbaa !9
  %1519 = load i32, ptr %96, align 4, !tbaa !9
  %1520 = icmp sgt i32 %1518, %1519
  br i1 %1520, label %1521, label %1528

1521:                                             ; preds = %1517
  %1522 = load i32, ptr %81, align 4, !tbaa !9
  %1523 = icmp eq i32 %1522, 0
  br i1 %1523, label %1524, label %1527

1524:                                             ; preds = %1521
  %1525 = load float, ptr %51, align 4, !tbaa !11
  %1526 = fneg float %1525
  store float %1526, ptr %51, align 4, !tbaa !11
  br label %1527

1527:                                             ; preds = %1524, %1521
  store i32 0, ptr %83, align 4, !tbaa !9
  br label %1533

1528:                                             ; preds = %1517, %1513
  br label %1529

1529:                                             ; preds = %1528
  %1530 = load i32, ptr %63, align 4, !tbaa !9
  %1531 = add nsw i32 %1530, 1
  store i32 %1531, ptr %63, align 4, !tbaa !9
  br label %618, !llvm.loop !16

1532:                                             ; preds = %618
  br label %1533

1533:                                             ; preds = %1532, %1527
  %1534 = load float, ptr %51, align 4, !tbaa !11
  %1535 = load ptr, ptr %24, align 8, !tbaa !5
  %1536 = load i32, ptr %62, align 4, !tbaa !9
  %1537 = sext i32 %1536 to i64
  %1538 = getelementptr inbounds float, ptr %1535, i64 %1537
  store float %1534, ptr %1538, align 4, !tbaa !11
  br label %1571

1539:                                             ; preds = %597
  %1540 = load float, ptr %51, align 4, !tbaa !11
  %1541 = load ptr, ptr %24, align 8, !tbaa !5
  %1542 = load i32, ptr %62, align 4, !tbaa !9
  %1543 = sext i32 %1542 to i64
  %1544 = getelementptr inbounds float, ptr %1541, i64 %1543
  store float %1540, ptr %1544, align 4, !tbaa !11
  %1545 = load i32, ptr %81, align 4, !tbaa !9
  %1546 = icmp eq i32 %1545, 0
  br i1 %1546, label %1547, label %1570

1547:                                             ; preds = %1539
  %1548 = load float, ptr %51, align 4, !tbaa !11
  %1549 = fcmp oeq float %1548, 0.000000e+00
  br i1 %1549, label %1550, label %1570

1550:                                             ; preds = %1547
  %1551 = load i32, ptr %89, align 4, !tbaa !9
  %1552 = load i32, ptr %87, align 4, !tbaa !9
  %1553 = add nsw i32 %1551, %1552
  %1554 = sub nsw i32 %1553, 1
  store i32 %1554, ptr %43, align 4, !tbaa !9
  %1555 = load i32, ptr %83, align 4, !tbaa !9
  %1556 = load i32, ptr %43, align 4, !tbaa !9
  %1557 = load ptr, ptr %20, align 8, !tbaa !5
  %1558 = load i32, ptr %1557, align 4, !tbaa !9
  %1559 = icmp sle i32 %1556, %1558
  br i1 %1559, label %1560, label %1562

1560:                                             ; preds = %1550
  %1561 = load i32, ptr %43, align 4, !tbaa !9
  br label %1565

1562:                                             ; preds = %1550
  %1563 = load ptr, ptr %20, align 8, !tbaa !5
  %1564 = load i32, ptr %1563, align 4, !tbaa !9
  br label %1565

1565:                                             ; preds = %1562, %1560
  %1566 = phi i32 [ %1561, %1560 ], [ %1564, %1562 ]
  %1567 = add nsw i32 %1555, %1566
  %1568 = load i32, ptr %62, align 4, !tbaa !9
  %1569 = sub nsw i32 %1567, %1568
  store i32 %1569, ptr %83, align 4, !tbaa !9
  br label %1570

1570:                                             ; preds = %1565, %1547, %1539
  br label %1571

1571:                                             ; preds = %1570, %1533
  br label %1572

1572:                                             ; preds = %1571
  %1573 = load i32, ptr %62, align 4, !tbaa !9
  %1574 = add nsw i32 %1573, 1
  store i32 %1574, ptr %62, align 4, !tbaa !9
  br label %404, !llvm.loop !18

1575:                                             ; preds = %404
  br label %1576

1576:                                             ; preds = %1575
  %1577 = load i32, ptr %81, align 4, !tbaa !9
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr %81, align 4, !tbaa !9
  br label %377, !llvm.loop !19

1579:                                             ; preds = %377
  %1580 = load i32, ptr %90, align 4, !tbaa !9
  %1581 = sub nsw i32 %1580, 1
  %1582 = load i32, ptr %87, align 4, !tbaa !9
  %1583 = mul nsw i32 %1581, %1582
  %1584 = add nsw i32 %1583, 1
  store i32 %1584, ptr %89, align 4, !tbaa !9
  %1585 = load i32, ptr %92, align 4, !tbaa !9
  store i32 %1585, ptr %41, align 4, !tbaa !9
  %1586 = load i32, ptr %90, align 4, !tbaa !9
  %1587 = add nsw i32 %1586, 1
  store i32 %1587, ptr %85, align 4, !tbaa !9
  br label %1588

1588:                                             ; preds = %2758, %1579
  %1589 = load i32, ptr %85, align 4, !tbaa !9
  %1590 = load i32, ptr %41, align 4, !tbaa !9
  %1591 = icmp sle i32 %1589, %1590
  br i1 %1591, label %1592, label %2761

1592:                                             ; preds = %1588
  %1593 = load i32, ptr %85, align 4, !tbaa !9
  %1594 = sub nsw i32 %1593, 1
  %1595 = load i32, ptr %87, align 4, !tbaa !9
  %1596 = mul nsw i32 %1594, %1595
  %1597 = add nsw i32 %1596, 1
  store i32 %1597, ptr %91, align 4, !tbaa !9
  store i32 0, ptr %75, align 4, !tbaa !9
  %1598 = load i32, ptr %89, align 4, !tbaa !9
  %1599 = load i32, ptr %87, align 4, !tbaa !9
  %1600 = add nsw i32 %1598, %1599
  %1601 = sub nsw i32 %1600, 1
  store i32 %1601, ptr %43, align 4, !tbaa !9
  %1602 = load i32, ptr %43, align 4, !tbaa !9
  %1603 = load ptr, ptr %20, align 8, !tbaa !5
  %1604 = load i32, ptr %1603, align 4, !tbaa !9
  %1605 = icmp sle i32 %1602, %1604
  br i1 %1605, label %1606, label %1608

1606:                                             ; preds = %1592
  %1607 = load i32, ptr %43, align 4, !tbaa !9
  br label %1611

1608:                                             ; preds = %1592
  %1609 = load ptr, ptr %20, align 8, !tbaa !5
  %1610 = load i32, ptr %1609, align 4, !tbaa !9
  br label %1611

1611:                                             ; preds = %1608, %1606
  %1612 = phi i32 [ %1607, %1606 ], [ %1610, %1608 ]
  store i32 %1612, ptr %42, align 4, !tbaa !9
  %1613 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %1613, ptr %62, align 4, !tbaa !9
  br label %1614

1614:                                             ; preds = %2754, %1611
  %1615 = load i32, ptr %62, align 4, !tbaa !9
  %1616 = load i32, ptr %42, align 4, !tbaa !9
  %1617 = icmp sle i32 %1615, %1616
  br i1 %1617, label %1618, label %2757

1618:                                             ; preds = %1614
  %1619 = load ptr, ptr %24, align 8, !tbaa !5
  %1620 = load i32, ptr %62, align 4, !tbaa !9
  %1621 = sext i32 %1620 to i64
  %1622 = getelementptr inbounds float, ptr %1619, i64 %1621
  %1623 = load float, ptr %1622, align 4, !tbaa !11
  store float %1623, ptr %51, align 4, !tbaa !11
  %1624 = load float, ptr %51, align 4, !tbaa !11
  %1625 = fcmp ogt float %1624, 0.000000e+00
  br i1 %1625, label %1626, label %2724

1626:                                             ; preds = %1618
  store i32 0, ptr %57, align 4, !tbaa !9
  %1627 = load i32, ptr %91, align 4, !tbaa !9
  %1628 = load i32, ptr %87, align 4, !tbaa !9
  %1629 = add nsw i32 %1627, %1628
  %1630 = sub nsw i32 %1629, 1
  store i32 %1630, ptr %44, align 4, !tbaa !9
  %1631 = load i32, ptr %44, align 4, !tbaa !9
  %1632 = load ptr, ptr %20, align 8, !tbaa !5
  %1633 = load i32, ptr %1632, align 4, !tbaa !9
  %1634 = icmp sle i32 %1631, %1633
  br i1 %1634, label %1635, label %1637

1635:                                             ; preds = %1626
  %1636 = load i32, ptr %44, align 4, !tbaa !9
  br label %1640

1637:                                             ; preds = %1626
  %1638 = load ptr, ptr %20, align 8, !tbaa !5
  %1639 = load i32, ptr %1638, align 4, !tbaa !9
  br label %1640

1640:                                             ; preds = %1637, %1635
  %1641 = phi i32 [ %1636, %1635 ], [ %1639, %1637 ]
  store i32 %1641, ptr %43, align 4, !tbaa !9
  %1642 = load i32, ptr %91, align 4, !tbaa !9
  store i32 %1642, ptr %63, align 4, !tbaa !9
  br label %1643

1643:                                             ; preds = %2714, %1640
  %1644 = load i32, ptr %63, align 4, !tbaa !9
  %1645 = load i32, ptr %43, align 4, !tbaa !9
  %1646 = icmp sle i32 %1644, %1645
  br i1 %1646, label %1647, label %2717

1647:                                             ; preds = %1643
  %1648 = load ptr, ptr %24, align 8, !tbaa !5
  %1649 = load i32, ptr %63, align 4, !tbaa !9
  %1650 = sext i32 %1649 to i64
  %1651 = getelementptr inbounds float, ptr %1648, i64 %1650
  %1652 = load float, ptr %1651, align 4, !tbaa !11
  store float %1652, ptr %53, align 4, !tbaa !11
  %1653 = load float, ptr %53, align 4, !tbaa !11
  %1654 = fcmp ogt float %1653, 0.000000e+00
  br i1 %1654, label %1655, label %2681

1655:                                             ; preds = %1647
  %1656 = load float, ptr %51, align 4, !tbaa !11
  store float %1656, ptr %58, align 4, !tbaa !11
  %1657 = load float, ptr %53, align 4, !tbaa !11
  %1658 = fcmp oge float %1657, 1.000000e+00
  br i1 %1658, label %1659, label %1767

1659:                                             ; preds = %1655
  %1660 = load float, ptr %51, align 4, !tbaa !11
  %1661 = load float, ptr %53, align 4, !tbaa !11
  %1662 = fcmp oge float %1660, %1661
  br i1 %1662, label %1663, label %1670

1663:                                             ; preds = %1659
  %1664 = load float, ptr %68, align 4, !tbaa !11
  %1665 = load float, ptr %51, align 4, !tbaa !11
  %1666 = fmul float %1664, %1665
  %1667 = load float, ptr %53, align 4, !tbaa !11
  %1668 = fcmp ole float %1666, %1667
  %1669 = zext i1 %1668 to i32
  store i32 %1669, ptr %71, align 4, !tbaa !9
  br label %1677

1670:                                             ; preds = %1659
  %1671 = load float, ptr %68, align 4, !tbaa !11
  %1672 = load float, ptr %53, align 4, !tbaa !11
  %1673 = fmul float %1671, %1672
  %1674 = load float, ptr %51, align 4, !tbaa !11
  %1675 = fcmp ole float %1673, %1674
  %1676 = zext i1 %1675 to i32
  store i32 %1676, ptr %71, align 4, !tbaa !9
  br label %1677

1677:                                             ; preds = %1670, %1663
  %1678 = load float, ptr %51, align 4, !tbaa !11
  %1679 = load float, ptr %86, align 4, !tbaa !11
  %1680 = load float, ptr %53, align 4, !tbaa !11
  %1681 = fdiv float %1679, %1680
  %1682 = fcmp olt float %1678, %1681
  br i1 %1682, label %1683, label %1725

1683:                                             ; preds = %1677
  %1684 = load ptr, ptr %19, align 8, !tbaa !5
  %1685 = load ptr, ptr %21, align 8, !tbaa !5
  %1686 = load i32, ptr %62, align 4, !tbaa !9
  %1687 = load i32, ptr %35, align 4, !tbaa !9
  %1688 = mul nsw i32 %1686, %1687
  %1689 = add nsw i32 %1688, 1
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds %struct.complex, ptr %1685, i64 %1690
  %1692 = load ptr, ptr %21, align 8, !tbaa !5
  %1693 = load i32, ptr %63, align 4, !tbaa !9
  %1694 = load i32, ptr %35, align 4, !tbaa !9
  %1695 = mul nsw i32 %1693, %1694
  %1696 = add nsw i32 %1695, 1
  %1697 = sext i32 %1696 to i64
  %1698 = getelementptr inbounds %struct.complex, ptr %1692, i64 %1697
  call void @cdotc_(ptr noundef %50, ptr noundef %1684, ptr noundef %1691, ptr noundef @c__1, ptr noundef %1698, ptr noundef @c__1)
  %1699 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1700 = load float, ptr %1699, align 4, !tbaa !13
  %1701 = load float, ptr %53, align 4, !tbaa !11
  %1702 = fdiv float %1700, %1701
  %1703 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1702, ptr %1703, align 4, !tbaa !13
  %1704 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1705 = load float, ptr %1704, align 4, !tbaa !15
  %1706 = load float, ptr %53, align 4, !tbaa !11
  %1707 = fdiv float %1705, %1706
  %1708 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1707, ptr %1708, align 4, !tbaa !15
  %1709 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1710 = load float, ptr %1709, align 4, !tbaa !13
  %1711 = load float, ptr %51, align 4, !tbaa !11
  %1712 = fdiv float %1710, %1711
  %1713 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1712, ptr %1713, align 4, !tbaa !13
  %1714 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1715 = load float, ptr %1714, align 4, !tbaa !15
  %1716 = load float, ptr %51, align 4, !tbaa !11
  %1717 = fdiv float %1715, %1716
  %1718 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1717, ptr %1718, align 4, !tbaa !15
  %1719 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1720 = load float, ptr %1719, align 4, !tbaa !13
  %1721 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1720, ptr %1721, align 4, !tbaa !13
  %1722 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1723 = load float, ptr %1722, align 4, !tbaa !15
  %1724 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1723, ptr %1724, align 4, !tbaa !15
  br label %1766

1725:                                             ; preds = %1677
  %1726 = load ptr, ptr %19, align 8, !tbaa !5
  %1727 = load ptr, ptr %21, align 8, !tbaa !5
  %1728 = load i32, ptr %62, align 4, !tbaa !9
  %1729 = load i32, ptr %35, align 4, !tbaa !9
  %1730 = mul nsw i32 %1728, %1729
  %1731 = add nsw i32 %1730, 1
  %1732 = sext i32 %1731 to i64
  %1733 = getelementptr inbounds %struct.complex, ptr %1727, i64 %1732
  %1734 = load ptr, ptr %32, align 8, !tbaa !5
  %1735 = getelementptr inbounds %struct.complex, ptr %1734, i64 1
  call void @ccopy_(ptr noundef %1726, ptr noundef %1733, ptr noundef @c__1, ptr noundef %1735, ptr noundef @c__1)
  %1736 = load ptr, ptr %19, align 8, !tbaa !5
  %1737 = load ptr, ptr %32, align 8, !tbaa !5
  %1738 = getelementptr inbounds %struct.complex, ptr %1737, i64 1
  %1739 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %51, ptr noundef @c_b27, ptr noundef %1736, ptr noundef @c__1, ptr noundef %1738, ptr noundef %1739, ptr noundef %54)
  %1740 = load ptr, ptr %19, align 8, !tbaa !5
  %1741 = load ptr, ptr %32, align 8, !tbaa !5
  %1742 = getelementptr inbounds %struct.complex, ptr %1741, i64 1
  %1743 = load ptr, ptr %21, align 8, !tbaa !5
  %1744 = load i32, ptr %63, align 4, !tbaa !9
  %1745 = load i32, ptr %35, align 4, !tbaa !9
  %1746 = mul nsw i32 %1744, %1745
  %1747 = add nsw i32 %1746, 1
  %1748 = sext i32 %1747 to i64
  %1749 = getelementptr inbounds %struct.complex, ptr %1743, i64 %1748
  call void @cdotc_(ptr noundef %49, ptr noundef %1740, ptr noundef %1742, ptr noundef @c__1, ptr noundef %1749, ptr noundef @c__1)
  %1750 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1751 = load float, ptr %1750, align 4, !tbaa !13
  %1752 = load float, ptr %53, align 4, !tbaa !11
  %1753 = fdiv float %1751, %1752
  %1754 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1753, ptr %1754, align 4, !tbaa !13
  %1755 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1756 = load float, ptr %1755, align 4, !tbaa !15
  %1757 = load float, ptr %53, align 4, !tbaa !11
  %1758 = fdiv float %1756, %1757
  %1759 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1758, ptr %1759, align 4, !tbaa !15
  %1760 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1761 = load float, ptr %1760, align 4, !tbaa !13
  %1762 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1761, ptr %1762, align 4, !tbaa !13
  %1763 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1764 = load float, ptr %1763, align 4, !tbaa !15
  %1765 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1764, ptr %1765, align 4, !tbaa !15
  br label %1766

1766:                                             ; preds = %1725, %1683
  br label %1893

1767:                                             ; preds = %1655
  %1768 = load float, ptr %51, align 4, !tbaa !11
  %1769 = load float, ptr %53, align 4, !tbaa !11
  %1770 = fcmp oge float %1768, %1769
  br i1 %1770, label %1771, label %1778

1771:                                             ; preds = %1767
  %1772 = load float, ptr %51, align 4, !tbaa !11
  %1773 = load float, ptr %53, align 4, !tbaa !11
  %1774 = load float, ptr %68, align 4, !tbaa !11
  %1775 = fdiv float %1773, %1774
  %1776 = fcmp ole float %1772, %1775
  %1777 = zext i1 %1776 to i32
  store i32 %1777, ptr %71, align 4, !tbaa !9
  br label %1785

1778:                                             ; preds = %1767
  %1779 = load float, ptr %53, align 4, !tbaa !11
  %1780 = load float, ptr %51, align 4, !tbaa !11
  %1781 = load float, ptr %68, align 4, !tbaa !11
  %1782 = fdiv float %1780, %1781
  %1783 = fcmp ole float %1779, %1782
  %1784 = zext i1 %1783 to i32
  store i32 %1784, ptr %71, align 4, !tbaa !9
  br label %1785

1785:                                             ; preds = %1778, %1771
  %1786 = load float, ptr %51, align 4, !tbaa !11
  %1787 = load float, ptr %68, align 4, !tbaa !11
  %1788 = load float, ptr %53, align 4, !tbaa !11
  %1789 = fdiv float %1787, %1788
  %1790 = fcmp ogt float %1786, %1789
  br i1 %1790, label %1791, label %1851

1791:                                             ; preds = %1785
  %1792 = load ptr, ptr %19, align 8, !tbaa !5
  %1793 = load ptr, ptr %21, align 8, !tbaa !5
  %1794 = load i32, ptr %62, align 4, !tbaa !9
  %1795 = load i32, ptr %35, align 4, !tbaa !9
  %1796 = mul nsw i32 %1794, %1795
  %1797 = add nsw i32 %1796, 1
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds %struct.complex, ptr %1793, i64 %1798
  %1800 = load ptr, ptr %21, align 8, !tbaa !5
  %1801 = load i32, ptr %63, align 4, !tbaa !9
  %1802 = load i32, ptr %35, align 4, !tbaa !9
  %1803 = mul nsw i32 %1801, %1802
  %1804 = add nsw i32 %1803, 1
  %1805 = sext i32 %1804 to i64
  %1806 = getelementptr inbounds %struct.complex, ptr %1800, i64 %1805
  call void @cdotc_(ptr noundef %50, ptr noundef %1792, ptr noundef %1799, ptr noundef @c__1, ptr noundef %1806, ptr noundef @c__1)
  %1807 = load float, ptr %53, align 4, !tbaa !11
  %1808 = load float, ptr %51, align 4, !tbaa !11
  %1809 = fcmp oge float %1807, %1808
  br i1 %1809, label %1810, label %1812

1810:                                             ; preds = %1791
  %1811 = load float, ptr %53, align 4, !tbaa !11
  br label %1814

1812:                                             ; preds = %1791
  %1813 = load float, ptr %51, align 4, !tbaa !11
  br label %1814

1814:                                             ; preds = %1812, %1810
  %1815 = phi float [ %1811, %1810 ], [ %1813, %1812 ]
  store float %1815, ptr %46, align 4, !tbaa !11
  %1816 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1817 = load float, ptr %1816, align 4, !tbaa !13
  %1818 = load float, ptr %46, align 4, !tbaa !11
  %1819 = fdiv float %1817, %1818
  %1820 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1819, ptr %1820, align 4, !tbaa !13
  %1821 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1822 = load float, ptr %1821, align 4, !tbaa !15
  %1823 = load float, ptr %46, align 4, !tbaa !11
  %1824 = fdiv float %1822, %1823
  %1825 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1824, ptr %1825, align 4, !tbaa !15
  %1826 = load float, ptr %53, align 4, !tbaa !11
  %1827 = load float, ptr %51, align 4, !tbaa !11
  %1828 = fcmp ole float %1826, %1827
  br i1 %1828, label %1829, label %1831

1829:                                             ; preds = %1814
  %1830 = load float, ptr %53, align 4, !tbaa !11
  br label %1833

1831:                                             ; preds = %1814
  %1832 = load float, ptr %51, align 4, !tbaa !11
  br label %1833

1833:                                             ; preds = %1831, %1829
  %1834 = phi float [ %1830, %1829 ], [ %1832, %1831 ]
  store float %1834, ptr %47, align 4, !tbaa !11
  %1835 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1836 = load float, ptr %1835, align 4, !tbaa !13
  %1837 = load float, ptr %47, align 4, !tbaa !11
  %1838 = fdiv float %1836, %1837
  %1839 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1838, ptr %1839, align 4, !tbaa !13
  %1840 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1841 = load float, ptr %1840, align 4, !tbaa !15
  %1842 = load float, ptr %47, align 4, !tbaa !11
  %1843 = fdiv float %1841, %1842
  %1844 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1843, ptr %1844, align 4, !tbaa !15
  %1845 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1846 = load float, ptr %1845, align 4, !tbaa !13
  %1847 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1846, ptr %1847, align 4, !tbaa !13
  %1848 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1849 = load float, ptr %1848, align 4, !tbaa !15
  %1850 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1849, ptr %1850, align 4, !tbaa !15
  br label %1892

1851:                                             ; preds = %1785
  %1852 = load ptr, ptr %19, align 8, !tbaa !5
  %1853 = load ptr, ptr %21, align 8, !tbaa !5
  %1854 = load i32, ptr %63, align 4, !tbaa !9
  %1855 = load i32, ptr %35, align 4, !tbaa !9
  %1856 = mul nsw i32 %1854, %1855
  %1857 = add nsw i32 %1856, 1
  %1858 = sext i32 %1857 to i64
  %1859 = getelementptr inbounds %struct.complex, ptr %1853, i64 %1858
  %1860 = load ptr, ptr %32, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.complex, ptr %1860, i64 1
  call void @ccopy_(ptr noundef %1852, ptr noundef %1859, ptr noundef @c__1, ptr noundef %1861, ptr noundef @c__1)
  %1862 = load ptr, ptr %19, align 8, !tbaa !5
  %1863 = load ptr, ptr %32, align 8, !tbaa !5
  %1864 = getelementptr inbounds %struct.complex, ptr %1863, i64 1
  %1865 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %53, ptr noundef @c_b27, ptr noundef %1862, ptr noundef @c__1, ptr noundef %1864, ptr noundef %1865, ptr noundef %54)
  %1866 = load ptr, ptr %19, align 8, !tbaa !5
  %1867 = load ptr, ptr %21, align 8, !tbaa !5
  %1868 = load i32, ptr %62, align 4, !tbaa !9
  %1869 = load i32, ptr %35, align 4, !tbaa !9
  %1870 = mul nsw i32 %1868, %1869
  %1871 = add nsw i32 %1870, 1
  %1872 = sext i32 %1871 to i64
  %1873 = getelementptr inbounds %struct.complex, ptr %1867, i64 %1872
  %1874 = load ptr, ptr %32, align 8, !tbaa !5
  %1875 = getelementptr inbounds %struct.complex, ptr %1874, i64 1
  call void @cdotc_(ptr noundef %49, ptr noundef %1866, ptr noundef %1873, ptr noundef @c__1, ptr noundef %1875, ptr noundef @c__1)
  %1876 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1877 = load float, ptr %1876, align 4, !tbaa !13
  %1878 = load float, ptr %51, align 4, !tbaa !11
  %1879 = fdiv float %1877, %1878
  %1880 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1879, ptr %1880, align 4, !tbaa !13
  %1881 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1882 = load float, ptr %1881, align 4, !tbaa !15
  %1883 = load float, ptr %51, align 4, !tbaa !11
  %1884 = fdiv float %1882, %1883
  %1885 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1884, ptr %1885, align 4, !tbaa !15
  %1886 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1887 = load float, ptr %1886, align 4, !tbaa !13
  %1888 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1887, ptr %1888, align 4, !tbaa !13
  %1889 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1890 = load float, ptr %1889, align 4, !tbaa !15
  %1891 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1890, ptr %1891, align 4, !tbaa !15
  br label %1892

1892:                                             ; preds = %1851, %1833
  br label %1893

1893:                                             ; preds = %1892, %1766
  %1894 = call <2 x float> @Cf(ptr noundef %52)
  store <2 x float> %1894, ptr %107, align 4
  %1895 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %1896 = load float, ptr %1895, align 4
  %1897 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  %1898 = load float, ptr %1897, align 4
  %1899 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 0
  %1900 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 1
  store float %1896, ptr %1899, align 4
  store float %1898, ptr %1900, align 4
  %1901 = load <2 x float>, ptr %108, align 4
  %1902 = call float @cabsf(<2 x float> noundef %1901) #7
  %1903 = fneg float %1902
  store float %1903, ptr %59, align 4, !tbaa !11
  %1904 = load float, ptr %78, align 4, !tbaa !11
  store float %1904, ptr %46, align 4, !tbaa !11
  %1905 = load float, ptr %59, align 4, !tbaa !11
  %1906 = fneg float %1905
  store float %1906, ptr %47, align 4, !tbaa !11
  %1907 = load float, ptr %46, align 4, !tbaa !11
  %1908 = load float, ptr %47, align 4, !tbaa !11
  %1909 = fcmp oge float %1907, %1908
  br i1 %1909, label %1910, label %1912

1910:                                             ; preds = %1893
  %1911 = load float, ptr %46, align 4, !tbaa !11
  br label %1914

1912:                                             ; preds = %1893
  %1913 = load float, ptr %47, align 4, !tbaa !11
  br label %1914

1914:                                             ; preds = %1912, %1910
  %1915 = phi float [ %1911, %1910 ], [ %1913, %1912 ]
  store float %1915, ptr %78, align 4, !tbaa !11
  %1916 = load float, ptr %59, align 4, !tbaa !11
  %1917 = fcmp oge float %1916, 0.000000e+00
  br i1 %1917, label %1918, label %1920

1918:                                             ; preds = %1914
  %1919 = load float, ptr %59, align 4, !tbaa !11
  br label %1923

1920:                                             ; preds = %1914
  %1921 = load float, ptr %59, align 4, !tbaa !11
  %1922 = fneg float %1921
  br label %1923

1923:                                             ; preds = %1920, %1918
  %1924 = phi float [ %1919, %1918 ], [ %1922, %1920 ]
  %1925 = load ptr, ptr %30, align 8, !tbaa !5
  %1926 = load float, ptr %1925, align 4, !tbaa !11
  %1927 = fcmp ogt float %1924, %1926
  br i1 %1927, label %1928, label %2673

1928:                                             ; preds = %1923
  %1929 = call <2 x float> @Cf(ptr noundef %52)
  store <2 x float> %1929, ptr %109, align 4
  %1930 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %1931 = load float, ptr %1930, align 4
  %1932 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %1933 = load float, ptr %1932, align 4
  %1934 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %1935 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  store float %1931, ptr %1934, align 4
  store float %1933, ptr %1935, align 4
  %1936 = load <2 x float>, ptr %110, align 4
  %1937 = call float @cabsf(<2 x float> noundef %1936) #7
  store float %1937, ptr %46, align 4, !tbaa !11
  %1938 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1939 = load float, ptr %1938, align 4, !tbaa !13
  %1940 = load float, ptr %46, align 4, !tbaa !11
  %1941 = fdiv float %1939, %1940
  %1942 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1941, ptr %1942, align 4, !tbaa !13
  %1943 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1944 = load float, ptr %1943, align 4, !tbaa !15
  %1945 = load float, ptr %46, align 4, !tbaa !11
  %1946 = fdiv float %1944, %1945
  %1947 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1946, ptr %1947, align 4, !tbaa !15
  %1948 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1949 = load float, ptr %1948, align 4, !tbaa !13
  %1950 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1949, ptr %1950, align 4, !tbaa !13
  %1951 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1952 = load float, ptr %1951, align 4, !tbaa !15
  %1953 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1952, ptr %1953, align 4, !tbaa !15
  store i32 0, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %57, align 4, !tbaa !9
  %1954 = load i32, ptr %84, align 4, !tbaa !9
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr %84, align 4, !tbaa !9
  %1956 = load i32, ptr %71, align 4, !tbaa !9
  %1957 = icmp ne i32 %1956, 0
  br i1 %1957, label %1958, label %2383

1958:                                             ; preds = %1928
  %1959 = load float, ptr %53, align 4, !tbaa !11
  %1960 = load float, ptr %51, align 4, !tbaa !11
  %1961 = fdiv float %1959, %1960
  store float %1961, ptr %66, align 4, !tbaa !11
  %1962 = load float, ptr %51, align 4, !tbaa !11
  %1963 = load float, ptr %53, align 4, !tbaa !11
  %1964 = fdiv float %1962, %1963
  store float %1964, ptr %65, align 4, !tbaa !11
  %1965 = load float, ptr %66, align 4, !tbaa !11
  %1966 = load float, ptr %65, align 4, !tbaa !11
  %1967 = fsub float %1965, %1966
  store float %1967, ptr %46, align 4, !tbaa !11
  %1968 = load float, ptr %46, align 4, !tbaa !11
  %1969 = fcmp oge float %1968, 0.000000e+00
  br i1 %1969, label %1970, label %1972

1970:                                             ; preds = %1958
  %1971 = load float, ptr %46, align 4, !tbaa !11
  br label %1975

1972:                                             ; preds = %1958
  %1973 = load float, ptr %46, align 4, !tbaa !11
  %1974 = fneg float %1973
  br label %1975

1975:                                             ; preds = %1972, %1970
  %1976 = phi float [ %1971, %1970 ], [ %1974, %1972 ]
  %1977 = fmul float %1976, -5.000000e-01
  %1978 = load float, ptr %59, align 4, !tbaa !11
  %1979 = fdiv float %1977, %1978
  store float %1979, ptr %67, align 4, !tbaa !11
  %1980 = load float, ptr %53, align 4, !tbaa !11
  %1981 = load float, ptr %58, align 4, !tbaa !11
  %1982 = fcmp ogt float %1980, %1981
  br i1 %1982, label %1983, label %1986

1983:                                             ; preds = %1975
  %1984 = load float, ptr %67, align 4, !tbaa !11
  %1985 = fneg float %1984
  store float %1985, ptr %67, align 4, !tbaa !11
  br label %1986

1986:                                             ; preds = %1983, %1975
  %1987 = load float, ptr %67, align 4, !tbaa !11
  %1988 = fcmp oge float %1987, 0.000000e+00
  br i1 %1988, label %1989, label %1991

1989:                                             ; preds = %1986
  %1990 = load float, ptr %67, align 4, !tbaa !11
  br label %1994

1991:                                             ; preds = %1986
  %1992 = load float, ptr %67, align 4, !tbaa !11
  %1993 = fneg float %1992
  br label %1994

1994:                                             ; preds = %1991, %1989
  %1995 = phi float [ %1990, %1989 ], [ %1993, %1991 ]
  %1996 = load float, ptr %55, align 4, !tbaa !11
  %1997 = fcmp ogt float %1995, %1996
  br i1 %1997, label %1998, label %2136

1998:                                             ; preds = %1994
  %1999 = load float, ptr %67, align 4, !tbaa !11
  %2000 = fdiv float 5.000000e-01, %1999
  store float %2000, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %73, align 4, !tbaa !11
  %2001 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %2001, ptr %111, align 4
  %2002 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %2003 = load float, ptr %2002, align 4
  %2004 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %2005 = load float, ptr %2004, align 4
  %2006 = fneg float %2005
  %2007 = call ptr @_pCf(ptr noundef %49)
  %2008 = getelementptr inbounds { float, float }, ptr %2007, i32 0, i32 0
  %2009 = getelementptr inbounds { float, float }, ptr %2007, i32 0, i32 1
  store float %2003, ptr %2008, align 4
  store float %2006, ptr %2009, align 4
  %2010 = load float, ptr %64, align 4, !tbaa !11
  %2011 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2012 = load float, ptr %2011, align 4, !tbaa !13
  %2013 = fmul float %2010, %2012
  %2014 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2013, ptr %2014, align 4, !tbaa !13
  %2015 = load float, ptr %64, align 4, !tbaa !11
  %2016 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2017 = load float, ptr %2016, align 4, !tbaa !15
  %2018 = fmul float %2015, %2017
  %2019 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2018, ptr %2019, align 4, !tbaa !15
  %2020 = load ptr, ptr %19, align 8, !tbaa !5
  %2021 = load ptr, ptr %21, align 8, !tbaa !5
  %2022 = load i32, ptr %62, align 4, !tbaa !9
  %2023 = load i32, ptr %35, align 4, !tbaa !9
  %2024 = mul nsw i32 %2022, %2023
  %2025 = add nsw i32 %2024, 1
  %2026 = sext i32 %2025 to i64
  %2027 = getelementptr inbounds %struct.complex, ptr %2021, i64 %2026
  %2028 = load ptr, ptr %21, align 8, !tbaa !5
  %2029 = load i32, ptr %63, align 4, !tbaa !9
  %2030 = load i32, ptr %35, align 4, !tbaa !9
  %2031 = mul nsw i32 %2029, %2030
  %2032 = add nsw i32 %2031, 1
  %2033 = sext i32 %2032 to i64
  %2034 = getelementptr inbounds %struct.complex, ptr %2028, i64 %2033
  call void @crot_(ptr noundef %2020, ptr noundef %2027, ptr noundef @c__1, ptr noundef %2034, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  %2035 = load i32, ptr %70, align 4, !tbaa !9
  %2036 = icmp ne i32 %2035, 0
  br i1 %2036, label %2037, label %2071

2037:                                             ; preds = %1998
  %2038 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %2038, ptr %112, align 4
  %2039 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %2040 = load float, ptr %2039, align 4
  %2041 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  %2042 = load float, ptr %2041, align 4
  %2043 = fneg float %2042
  %2044 = call ptr @_pCf(ptr noundef %49)
  %2045 = getelementptr inbounds { float, float }, ptr %2044, i32 0, i32 0
  %2046 = getelementptr inbounds { float, float }, ptr %2044, i32 0, i32 1
  store float %2040, ptr %2045, align 4
  store float %2043, ptr %2046, align 4
  %2047 = load float, ptr %64, align 4, !tbaa !11
  %2048 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2049 = load float, ptr %2048, align 4, !tbaa !13
  %2050 = fmul float %2047, %2049
  %2051 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2050, ptr %2051, align 4, !tbaa !13
  %2052 = load float, ptr %64, align 4, !tbaa !11
  %2053 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2054 = load float, ptr %2053, align 4, !tbaa !15
  %2055 = fmul float %2052, %2054
  %2056 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2055, ptr %2056, align 4, !tbaa !15
  %2057 = load ptr, ptr %26, align 8, !tbaa !5
  %2058 = load i32, ptr %62, align 4, !tbaa !9
  %2059 = load i32, ptr %37, align 4, !tbaa !9
  %2060 = mul nsw i32 %2058, %2059
  %2061 = add nsw i32 %2060, 1
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds %struct.complex, ptr %2057, i64 %2062
  %2064 = load ptr, ptr %26, align 8, !tbaa !5
  %2065 = load i32, ptr %63, align 4, !tbaa !9
  %2066 = load i32, ptr %37, align 4, !tbaa !9
  %2067 = mul nsw i32 %2065, %2066
  %2068 = add nsw i32 %2067, 1
  %2069 = sext i32 %2068 to i64
  %2070 = getelementptr inbounds %struct.complex, ptr %2064, i64 %2069
  call void @crot_(ptr noundef %93, ptr noundef %2063, ptr noundef @c__1, ptr noundef %2070, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  br label %2071

2071:                                             ; preds = %2037, %1998
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %2072 = load float, ptr %64, align 4, !tbaa !11
  %2073 = load float, ptr %65, align 4, !tbaa !11
  %2074 = fmul float %2072, %2073
  %2075 = load float, ptr %59, align 4, !tbaa !11
  %2076 = call float @llvm.fmuladd.f32(float %2074, float %2075, float 1.000000e+00)
  store float %2076, ptr %47, align 4, !tbaa !11
  %2077 = load float, ptr %53, align 4, !tbaa !11
  %2078 = fpext float %2077 to double
  %2079 = load float, ptr %46, align 4, !tbaa !11
  %2080 = load float, ptr %47, align 4, !tbaa !11
  %2081 = fcmp oge float %2079, %2080
  br i1 %2081, label %2082, label %2084

2082:                                             ; preds = %2071
  %2083 = load float, ptr %46, align 4, !tbaa !11
  br label %2086

2084:                                             ; preds = %2071
  %2085 = load float, ptr %47, align 4, !tbaa !11
  br label %2086

2086:                                             ; preds = %2084, %2082
  %2087 = phi float [ %2083, %2082 ], [ %2085, %2084 ]
  %2088 = fpext float %2087 to double
  %2089 = call double @sqrt(double noundef %2088) #7
  %2090 = fmul double %2078, %2089
  %2091 = fptrunc double %2090 to float
  %2092 = load ptr, ptr %24, align 8, !tbaa !5
  %2093 = load i32, ptr %63, align 4, !tbaa !9
  %2094 = sext i32 %2093 to i64
  %2095 = getelementptr inbounds float, ptr %2092, i64 %2094
  store float %2091, ptr %2095, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %2096 = load float, ptr %64, align 4, !tbaa !11
  %2097 = load float, ptr %66, align 4, !tbaa !11
  %2098 = fmul float %2096, %2097
  %2099 = load float, ptr %59, align 4, !tbaa !11
  %2100 = fneg float %2098
  %2101 = call float @llvm.fmuladd.f32(float %2100, float %2099, float 1.000000e+00)
  store float %2101, ptr %47, align 4, !tbaa !11
  %2102 = load float, ptr %46, align 4, !tbaa !11
  %2103 = load float, ptr %47, align 4, !tbaa !11
  %2104 = fcmp oge float %2102, %2103
  br i1 %2104, label %2105, label %2107

2105:                                             ; preds = %2086
  %2106 = load float, ptr %46, align 4, !tbaa !11
  br label %2109

2107:                                             ; preds = %2086
  %2108 = load float, ptr %47, align 4, !tbaa !11
  br label %2109

2109:                                             ; preds = %2107, %2105
  %2110 = phi float [ %2106, %2105 ], [ %2108, %2107 ]
  %2111 = fpext float %2110 to double
  %2112 = call double @sqrt(double noundef %2111) #7
  %2113 = load float, ptr %51, align 4, !tbaa !11
  %2114 = fpext float %2113 to double
  %2115 = fmul double %2114, %2112
  %2116 = fptrunc double %2115 to float
  store float %2116, ptr %51, align 4, !tbaa !11
  %2117 = load float, ptr %80, align 4, !tbaa !11
  store float %2117, ptr %46, align 4, !tbaa !11
  %2118 = load float, ptr %64, align 4, !tbaa !11
  %2119 = fcmp oge float %2118, 0.000000e+00
  br i1 %2119, label %2120, label %2122

2120:                                             ; preds = %2109
  %2121 = load float, ptr %64, align 4, !tbaa !11
  br label %2125

2122:                                             ; preds = %2109
  %2123 = load float, ptr %64, align 4, !tbaa !11
  %2124 = fneg float %2123
  br label %2125

2125:                                             ; preds = %2122, %2120
  %2126 = phi float [ %2121, %2120 ], [ %2124, %2122 ]
  store float %2126, ptr %47, align 4, !tbaa !11
  %2127 = load float, ptr %46, align 4, !tbaa !11
  %2128 = load float, ptr %47, align 4, !tbaa !11
  %2129 = fcmp oge float %2127, %2128
  br i1 %2129, label %2130, label %2132

2130:                                             ; preds = %2125
  %2131 = load float, ptr %46, align 4, !tbaa !11
  br label %2134

2132:                                             ; preds = %2125
  %2133 = load float, ptr %47, align 4, !tbaa !11
  br label %2134

2134:                                             ; preds = %2132, %2130
  %2135 = phi float [ %2131, %2130 ], [ %2133, %2132 ]
  store float %2135, ptr %80, align 4, !tbaa !11
  br label %2327

2136:                                             ; preds = %1994
  %2137 = load float, ptr %59, align 4, !tbaa !11
  %2138 = fcmp oge float %2137, 0.000000e+00
  br i1 %2138, label %2139, label %2149

2139:                                             ; preds = %2136
  %2140 = load float, ptr @c_b27, align 4, !tbaa !11
  %2141 = fcmp oge float %2140, 0.000000e+00
  br i1 %2141, label %2142, label %2144

2142:                                             ; preds = %2139
  %2143 = load float, ptr @c_b27, align 4, !tbaa !11
  br label %2147

2144:                                             ; preds = %2139
  %2145 = load float, ptr @c_b27, align 4, !tbaa !11
  %2146 = fneg float %2145
  br label %2147

2147:                                             ; preds = %2144, %2142
  %2148 = phi float [ %2143, %2142 ], [ %2146, %2144 ]
  br label %2160

2149:                                             ; preds = %2136
  %2150 = load float, ptr @c_b27, align 4, !tbaa !11
  %2151 = fcmp oge float %2150, 0.000000e+00
  br i1 %2151, label %2152, label %2154

2152:                                             ; preds = %2149
  %2153 = load float, ptr @c_b27, align 4, !tbaa !11
  br label %2157

2154:                                             ; preds = %2149
  %2155 = load float, ptr @c_b27, align 4, !tbaa !11
  %2156 = fneg float %2155
  br label %2157

2157:                                             ; preds = %2154, %2152
  %2158 = phi float [ %2153, %2152 ], [ %2156, %2154 ]
  %2159 = fneg float %2158
  br label %2160

2160:                                             ; preds = %2157, %2147
  %2161 = phi float [ %2148, %2147 ], [ %2159, %2157 ]
  %2162 = fneg float %2161
  store float %2162, ptr %79, align 4, !tbaa !11
  %2163 = load float, ptr %53, align 4, !tbaa !11
  %2164 = load float, ptr %58, align 4, !tbaa !11
  %2165 = fcmp ogt float %2163, %2164
  br i1 %2165, label %2166, label %2169

2166:                                             ; preds = %2160
  %2167 = load float, ptr %79, align 4, !tbaa !11
  %2168 = fneg float %2167
  store float %2168, ptr %79, align 4, !tbaa !11
  br label %2169

2169:                                             ; preds = %2166, %2160
  %2170 = load float, ptr %67, align 4, !tbaa !11
  %2171 = fpext float %2170 to double
  %2172 = load float, ptr %79, align 4, !tbaa !11
  %2173 = fpext float %2172 to double
  %2174 = load float, ptr %67, align 4, !tbaa !11
  %2175 = load float, ptr %67, align 4, !tbaa !11
  %2176 = call float @llvm.fmuladd.f32(float %2174, float %2175, float 1.000000e+00)
  %2177 = fpext float %2176 to double
  %2178 = call double @sqrt(double noundef %2177) #7
  %2179 = call double @llvm.fmuladd.f64(double %2173, double %2178, double %2171)
  %2180 = fdiv double 1.000000e+00, %2179
  %2181 = fptrunc double %2180 to float
  store float %2181, ptr %64, align 4, !tbaa !11
  %2182 = load float, ptr %64, align 4, !tbaa !11
  %2183 = load float, ptr %64, align 4, !tbaa !11
  %2184 = call float @llvm.fmuladd.f32(float %2182, float %2183, float 1.000000e+00)
  %2185 = fdiv float 1.000000e+00, %2184
  %2186 = fpext float %2185 to double
  %2187 = call double @sqrt(double noundef %2186) #7
  %2188 = fptrunc double %2187 to float
  store float %2188, ptr %73, align 4, !tbaa !11
  %2189 = load float, ptr %64, align 4, !tbaa !11
  %2190 = load float, ptr %73, align 4, !tbaa !11
  %2191 = fmul float %2189, %2190
  store float %2191, ptr %74, align 4, !tbaa !11
  %2192 = load float, ptr %80, align 4, !tbaa !11
  store float %2192, ptr %46, align 4, !tbaa !11
  %2193 = load float, ptr %74, align 4, !tbaa !11
  %2194 = fcmp oge float %2193, 0.000000e+00
  br i1 %2194, label %2195, label %2197

2195:                                             ; preds = %2169
  %2196 = load float, ptr %74, align 4, !tbaa !11
  br label %2200

2197:                                             ; preds = %2169
  %2198 = load float, ptr %74, align 4, !tbaa !11
  %2199 = fneg float %2198
  br label %2200

2200:                                             ; preds = %2197, %2195
  %2201 = phi float [ %2196, %2195 ], [ %2199, %2197 ]
  store float %2201, ptr %47, align 4, !tbaa !11
  %2202 = load float, ptr %46, align 4, !tbaa !11
  %2203 = load float, ptr %47, align 4, !tbaa !11
  %2204 = fcmp oge float %2202, %2203
  br i1 %2204, label %2205, label %2207

2205:                                             ; preds = %2200
  %2206 = load float, ptr %46, align 4, !tbaa !11
  br label %2209

2207:                                             ; preds = %2200
  %2208 = load float, ptr %47, align 4, !tbaa !11
  br label %2209

2209:                                             ; preds = %2207, %2205
  %2210 = phi float [ %2206, %2205 ], [ %2208, %2207 ]
  store float %2210, ptr %80, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %2211 = load float, ptr %64, align 4, !tbaa !11
  %2212 = load float, ptr %65, align 4, !tbaa !11
  %2213 = fmul float %2211, %2212
  %2214 = load float, ptr %59, align 4, !tbaa !11
  %2215 = call float @llvm.fmuladd.f32(float %2213, float %2214, float 1.000000e+00)
  store float %2215, ptr %47, align 4, !tbaa !11
  %2216 = load float, ptr %53, align 4, !tbaa !11
  %2217 = fpext float %2216 to double
  %2218 = load float, ptr %46, align 4, !tbaa !11
  %2219 = load float, ptr %47, align 4, !tbaa !11
  %2220 = fcmp oge float %2218, %2219
  br i1 %2220, label %2221, label %2223

2221:                                             ; preds = %2209
  %2222 = load float, ptr %46, align 4, !tbaa !11
  br label %2225

2223:                                             ; preds = %2209
  %2224 = load float, ptr %47, align 4, !tbaa !11
  br label %2225

2225:                                             ; preds = %2223, %2221
  %2226 = phi float [ %2222, %2221 ], [ %2224, %2223 ]
  %2227 = fpext float %2226 to double
  %2228 = call double @sqrt(double noundef %2227) #7
  %2229 = fmul double %2217, %2228
  %2230 = fptrunc double %2229 to float
  %2231 = load ptr, ptr %24, align 8, !tbaa !5
  %2232 = load i32, ptr %63, align 4, !tbaa !9
  %2233 = sext i32 %2232 to i64
  %2234 = getelementptr inbounds float, ptr %2231, i64 %2233
  store float %2230, ptr %2234, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %2235 = load float, ptr %64, align 4, !tbaa !11
  %2236 = load float, ptr %66, align 4, !tbaa !11
  %2237 = fmul float %2235, %2236
  %2238 = load float, ptr %59, align 4, !tbaa !11
  %2239 = fneg float %2237
  %2240 = call float @llvm.fmuladd.f32(float %2239, float %2238, float 1.000000e+00)
  store float %2240, ptr %47, align 4, !tbaa !11
  %2241 = load float, ptr %46, align 4, !tbaa !11
  %2242 = load float, ptr %47, align 4, !tbaa !11
  %2243 = fcmp oge float %2241, %2242
  br i1 %2243, label %2244, label %2246

2244:                                             ; preds = %2225
  %2245 = load float, ptr %46, align 4, !tbaa !11
  br label %2248

2246:                                             ; preds = %2225
  %2247 = load float, ptr %47, align 4, !tbaa !11
  br label %2248

2248:                                             ; preds = %2246, %2244
  %2249 = phi float [ %2245, %2244 ], [ %2247, %2246 ]
  %2250 = fpext float %2249 to double
  %2251 = call double @sqrt(double noundef %2250) #7
  %2252 = load float, ptr %51, align 4, !tbaa !11
  %2253 = fpext float %2252 to double
  %2254 = fmul double %2253, %2251
  %2255 = fptrunc double %2254 to float
  store float %2255, ptr %51, align 4, !tbaa !11
  %2256 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %2256, ptr %113, align 4
  %2257 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 0
  %2258 = load float, ptr %2257, align 4
  %2259 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 1
  %2260 = load float, ptr %2259, align 4
  %2261 = fneg float %2260
  %2262 = call ptr @_pCf(ptr noundef %49)
  %2263 = getelementptr inbounds { float, float }, ptr %2262, i32 0, i32 0
  %2264 = getelementptr inbounds { float, float }, ptr %2262, i32 0, i32 1
  store float %2258, ptr %2263, align 4
  store float %2261, ptr %2264, align 4
  %2265 = load float, ptr %74, align 4, !tbaa !11
  %2266 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2267 = load float, ptr %2266, align 4, !tbaa !13
  %2268 = fmul float %2265, %2267
  %2269 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2268, ptr %2269, align 4, !tbaa !13
  %2270 = load float, ptr %74, align 4, !tbaa !11
  %2271 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2272 = load float, ptr %2271, align 4, !tbaa !15
  %2273 = fmul float %2270, %2272
  %2274 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2273, ptr %2274, align 4, !tbaa !15
  %2275 = load ptr, ptr %19, align 8, !tbaa !5
  %2276 = load ptr, ptr %21, align 8, !tbaa !5
  %2277 = load i32, ptr %62, align 4, !tbaa !9
  %2278 = load i32, ptr %35, align 4, !tbaa !9
  %2279 = mul nsw i32 %2277, %2278
  %2280 = add nsw i32 %2279, 1
  %2281 = sext i32 %2280 to i64
  %2282 = getelementptr inbounds %struct.complex, ptr %2276, i64 %2281
  %2283 = load ptr, ptr %21, align 8, !tbaa !5
  %2284 = load i32, ptr %63, align 4, !tbaa !9
  %2285 = load i32, ptr %35, align 4, !tbaa !9
  %2286 = mul nsw i32 %2284, %2285
  %2287 = add nsw i32 %2286, 1
  %2288 = sext i32 %2287 to i64
  %2289 = getelementptr inbounds %struct.complex, ptr %2283, i64 %2288
  call void @crot_(ptr noundef %2275, ptr noundef %2282, ptr noundef @c__1, ptr noundef %2289, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  %2290 = load i32, ptr %70, align 4, !tbaa !9
  %2291 = icmp ne i32 %2290, 0
  br i1 %2291, label %2292, label %2326

2292:                                             ; preds = %2248
  %2293 = call <2 x float> @Cf(ptr noundef %56)
  store <2 x float> %2293, ptr %114, align 4
  %2294 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 0
  %2295 = load float, ptr %2294, align 4
  %2296 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 1
  %2297 = load float, ptr %2296, align 4
  %2298 = fneg float %2297
  %2299 = call ptr @_pCf(ptr noundef %49)
  %2300 = getelementptr inbounds { float, float }, ptr %2299, i32 0, i32 0
  %2301 = getelementptr inbounds { float, float }, ptr %2299, i32 0, i32 1
  store float %2295, ptr %2300, align 4
  store float %2298, ptr %2301, align 4
  %2302 = load float, ptr %74, align 4, !tbaa !11
  %2303 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2304 = load float, ptr %2303, align 4, !tbaa !13
  %2305 = fmul float %2302, %2304
  %2306 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2305, ptr %2306, align 4, !tbaa !13
  %2307 = load float, ptr %74, align 4, !tbaa !11
  %2308 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2309 = load float, ptr %2308, align 4, !tbaa !15
  %2310 = fmul float %2307, %2309
  %2311 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2310, ptr %2311, align 4, !tbaa !15
  %2312 = load ptr, ptr %26, align 8, !tbaa !5
  %2313 = load i32, ptr %62, align 4, !tbaa !9
  %2314 = load i32, ptr %37, align 4, !tbaa !9
  %2315 = mul nsw i32 %2313, %2314
  %2316 = add nsw i32 %2315, 1
  %2317 = sext i32 %2316 to i64
  %2318 = getelementptr inbounds %struct.complex, ptr %2312, i64 %2317
  %2319 = load ptr, ptr %26, align 8, !tbaa !5
  %2320 = load i32, ptr %63, align 4, !tbaa !9
  %2321 = load i32, ptr %37, align 4, !tbaa !9
  %2322 = mul nsw i32 %2320, %2321
  %2323 = add nsw i32 %2322, 1
  %2324 = sext i32 %2323 to i64
  %2325 = getelementptr inbounds %struct.complex, ptr %2319, i64 %2324
  call void @crot_(ptr noundef %93, ptr noundef %2318, ptr noundef @c__1, ptr noundef %2325, ptr noundef @c__1, ptr noundef %73, ptr noundef %48)
  br label %2326

2326:                                             ; preds = %2292, %2248
  br label %2327

2327:                                             ; preds = %2326, %2134
  %2328 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %2328, ptr %44, align 4, !tbaa !9
  %2329 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %2329, ptr %45, align 4, !tbaa !9
  %2330 = load ptr, ptr %23, align 8, !tbaa !5
  %2331 = load i32, ptr %45, align 4, !tbaa !9
  %2332 = sext i32 %2331 to i64
  %2333 = getelementptr inbounds %struct.complex, ptr %2330, i64 %2332
  %2334 = getelementptr inbounds %struct.complex, ptr %2333, i32 0, i32 0
  %2335 = load float, ptr %2334, align 4, !tbaa !13
  %2336 = fneg float %2335
  %2337 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %2336, ptr %2337, align 4, !tbaa !13
  %2338 = load ptr, ptr %23, align 8, !tbaa !5
  %2339 = load i32, ptr %45, align 4, !tbaa !9
  %2340 = sext i32 %2339 to i64
  %2341 = getelementptr inbounds %struct.complex, ptr %2338, i64 %2340
  %2342 = getelementptr inbounds %struct.complex, ptr %2341, i32 0, i32 1
  %2343 = load float, ptr %2342, align 4, !tbaa !15
  %2344 = fneg float %2343
  %2345 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %2344, ptr %2345, align 4, !tbaa !15
  %2346 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2347 = load float, ptr %2346, align 4, !tbaa !13
  %2348 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %2349 = load float, ptr %2348, align 4, !tbaa !13
  %2350 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2351 = load float, ptr %2350, align 4, !tbaa !15
  %2352 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %2353 = load float, ptr %2352, align 4, !tbaa !15
  %2354 = fmul float %2351, %2353
  %2355 = fneg float %2354
  %2356 = call float @llvm.fmuladd.f32(float %2347, float %2349, float %2355)
  %2357 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2356, ptr %2357, align 4, !tbaa !13
  %2358 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2359 = load float, ptr %2358, align 4, !tbaa !13
  %2360 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %2361 = load float, ptr %2360, align 4, !tbaa !15
  %2362 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2363 = load float, ptr %2362, align 4, !tbaa !15
  %2364 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %2365 = load float, ptr %2364, align 4, !tbaa !13
  %2366 = fmul float %2363, %2365
  %2367 = call float @llvm.fmuladd.f32(float %2359, float %2361, float %2366)
  %2368 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2367, ptr %2368, align 4, !tbaa !15
  %2369 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2370 = load float, ptr %2369, align 4, !tbaa !13
  %2371 = load ptr, ptr %23, align 8, !tbaa !5
  %2372 = load i32, ptr %44, align 4, !tbaa !9
  %2373 = sext i32 %2372 to i64
  %2374 = getelementptr inbounds %struct.complex, ptr %2371, i64 %2373
  %2375 = getelementptr inbounds %struct.complex, ptr %2374, i32 0, i32 0
  store float %2370, ptr %2375, align 4, !tbaa !13
  %2376 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2377 = load float, ptr %2376, align 4, !tbaa !15
  %2378 = load ptr, ptr %23, align 8, !tbaa !5
  %2379 = load i32, ptr %44, align 4, !tbaa !9
  %2380 = sext i32 %2379 to i64
  %2381 = getelementptr inbounds %struct.complex, ptr %2378, i64 %2380
  %2382 = getelementptr inbounds %struct.complex, ptr %2381, i32 0, i32 1
  store float %2377, ptr %2382, align 4, !tbaa !15
  br label %2567

2383:                                             ; preds = %1928
  %2384 = load float, ptr %51, align 4, !tbaa !11
  %2385 = load float, ptr %53, align 4, !tbaa !11
  %2386 = fcmp ogt float %2384, %2385
  br i1 %2386, label %2387, label %2472

2387:                                             ; preds = %2383
  %2388 = load ptr, ptr %19, align 8, !tbaa !5
  %2389 = load ptr, ptr %21, align 8, !tbaa !5
  %2390 = load i32, ptr %62, align 4, !tbaa !9
  %2391 = load i32, ptr %35, align 4, !tbaa !9
  %2392 = mul nsw i32 %2390, %2391
  %2393 = add nsw i32 %2392, 1
  %2394 = sext i32 %2393 to i64
  %2395 = getelementptr inbounds %struct.complex, ptr %2389, i64 %2394
  %2396 = load ptr, ptr %32, align 8, !tbaa !5
  %2397 = getelementptr inbounds %struct.complex, ptr %2396, i64 1
  call void @ccopy_(ptr noundef %2388, ptr noundef %2395, ptr noundef @c__1, ptr noundef %2397, ptr noundef @c__1)
  %2398 = load ptr, ptr %19, align 8, !tbaa !5
  %2399 = load ptr, ptr %32, align 8, !tbaa !5
  %2400 = getelementptr inbounds %struct.complex, ptr %2399, i64 1
  %2401 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %51, ptr noundef @c_b27, ptr noundef %2398, ptr noundef @c__1, ptr noundef %2400, ptr noundef %2401, ptr noundef %54)
  %2402 = load ptr, ptr %19, align 8, !tbaa !5
  %2403 = load ptr, ptr %21, align 8, !tbaa !5
  %2404 = load i32, ptr %63, align 4, !tbaa !9
  %2405 = load i32, ptr %35, align 4, !tbaa !9
  %2406 = mul nsw i32 %2404, %2405
  %2407 = add nsw i32 %2406, 1
  %2408 = sext i32 %2407 to i64
  %2409 = getelementptr inbounds %struct.complex, ptr %2403, i64 %2408
  %2410 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %53, ptr noundef @c_b27, ptr noundef %2402, ptr noundef @c__1, ptr noundef %2409, ptr noundef %2410, ptr noundef %54)
  %2411 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %2412 = load float, ptr %2411, align 4, !tbaa !13
  %2413 = fneg float %2412
  %2414 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2413, ptr %2414, align 4, !tbaa !13
  %2415 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %2416 = load float, ptr %2415, align 4, !tbaa !15
  %2417 = fneg float %2416
  %2418 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2417, ptr %2418, align 4, !tbaa !15
  %2419 = load ptr, ptr %19, align 8, !tbaa !5
  %2420 = load ptr, ptr %32, align 8, !tbaa !5
  %2421 = getelementptr inbounds %struct.complex, ptr %2420, i64 1
  %2422 = load ptr, ptr %21, align 8, !tbaa !5
  %2423 = load i32, ptr %63, align 4, !tbaa !9
  %2424 = load i32, ptr %35, align 4, !tbaa !9
  %2425 = mul nsw i32 %2423, %2424
  %2426 = add nsw i32 %2425, 1
  %2427 = sext i32 %2426 to i64
  %2428 = getelementptr inbounds %struct.complex, ptr %2422, i64 %2427
  call void @caxpy_(ptr noundef %2419, ptr noundef %48, ptr noundef %2421, ptr noundef @c__1, ptr noundef %2428, ptr noundef @c__1)
  %2429 = load ptr, ptr %19, align 8, !tbaa !5
  %2430 = load ptr, ptr %21, align 8, !tbaa !5
  %2431 = load i32, ptr %63, align 4, !tbaa !9
  %2432 = load i32, ptr %35, align 4, !tbaa !9
  %2433 = mul nsw i32 %2431, %2432
  %2434 = add nsw i32 %2433, 1
  %2435 = sext i32 %2434 to i64
  %2436 = getelementptr inbounds %struct.complex, ptr %2430, i64 %2435
  %2437 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b27, ptr noundef %53, ptr noundef %2429, ptr noundef @c__1, ptr noundef %2436, ptr noundef %2437, ptr noundef %54)
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %2438 = load float, ptr %59, align 4, !tbaa !11
  %2439 = load float, ptr %59, align 4, !tbaa !11
  %2440 = fneg float %2438
  %2441 = call float @llvm.fmuladd.f32(float %2440, float %2439, float 1.000000e+00)
  store float %2441, ptr %47, align 4, !tbaa !11
  %2442 = load float, ptr %53, align 4, !tbaa !11
  %2443 = fpext float %2442 to double
  %2444 = load float, ptr %46, align 4, !tbaa !11
  %2445 = load float, ptr %47, align 4, !tbaa !11
  %2446 = fcmp oge float %2444, %2445
  br i1 %2446, label %2447, label %2449

2447:                                             ; preds = %2387
  %2448 = load float, ptr %46, align 4, !tbaa !11
  br label %2451

2449:                                             ; preds = %2387
  %2450 = load float, ptr %47, align 4, !tbaa !11
  br label %2451

2451:                                             ; preds = %2449, %2447
  %2452 = phi float [ %2448, %2447 ], [ %2450, %2449 ]
  %2453 = fpext float %2452 to double
  %2454 = call double @sqrt(double noundef %2453) #7
  %2455 = fmul double %2443, %2454
  %2456 = fptrunc double %2455 to float
  %2457 = load ptr, ptr %24, align 8, !tbaa !5
  %2458 = load i32, ptr %63, align 4, !tbaa !9
  %2459 = sext i32 %2458 to i64
  %2460 = getelementptr inbounds float, ptr %2457, i64 %2459
  store float %2456, ptr %2460, align 4, !tbaa !11
  %2461 = load float, ptr %80, align 4, !tbaa !11
  %2462 = load ptr, ptr %29, align 8, !tbaa !5
  %2463 = load float, ptr %2462, align 4, !tbaa !11
  %2464 = fcmp oge float %2461, %2463
  br i1 %2464, label %2465, label %2467

2465:                                             ; preds = %2451
  %2466 = load float, ptr %80, align 4, !tbaa !11
  br label %2470

2467:                                             ; preds = %2451
  %2468 = load ptr, ptr %29, align 8, !tbaa !5
  %2469 = load float, ptr %2468, align 4, !tbaa !11
  br label %2470

2470:                                             ; preds = %2467, %2465
  %2471 = phi float [ %2466, %2465 ], [ %2469, %2467 ]
  store float %2471, ptr %80, align 4, !tbaa !11
  br label %2566

2472:                                             ; preds = %2383
  %2473 = load ptr, ptr %19, align 8, !tbaa !5
  %2474 = load ptr, ptr %21, align 8, !tbaa !5
  %2475 = load i32, ptr %63, align 4, !tbaa !9
  %2476 = load i32, ptr %35, align 4, !tbaa !9
  %2477 = mul nsw i32 %2475, %2476
  %2478 = add nsw i32 %2477, 1
  %2479 = sext i32 %2478 to i64
  %2480 = getelementptr inbounds %struct.complex, ptr %2474, i64 %2479
  %2481 = load ptr, ptr %32, align 8, !tbaa !5
  %2482 = getelementptr inbounds %struct.complex, ptr %2481, i64 1
  call void @ccopy_(ptr noundef %2473, ptr noundef %2480, ptr noundef @c__1, ptr noundef %2482, ptr noundef @c__1)
  %2483 = load ptr, ptr %19, align 8, !tbaa !5
  %2484 = load ptr, ptr %32, align 8, !tbaa !5
  %2485 = getelementptr inbounds %struct.complex, ptr %2484, i64 1
  %2486 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %53, ptr noundef @c_b27, ptr noundef %2483, ptr noundef @c__1, ptr noundef %2485, ptr noundef %2486, ptr noundef %54)
  %2487 = load ptr, ptr %19, align 8, !tbaa !5
  %2488 = load ptr, ptr %21, align 8, !tbaa !5
  %2489 = load i32, ptr %62, align 4, !tbaa !9
  %2490 = load i32, ptr %35, align 4, !tbaa !9
  %2491 = mul nsw i32 %2489, %2490
  %2492 = add nsw i32 %2491, 1
  %2493 = sext i32 %2492 to i64
  %2494 = getelementptr inbounds %struct.complex, ptr %2488, i64 %2493
  %2495 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %51, ptr noundef @c_b27, ptr noundef %2487, ptr noundef @c__1, ptr noundef %2494, ptr noundef %2495, ptr noundef %54)
  %2496 = call <2 x float> @Cf(ptr noundef %52)
  store <2 x float> %2496, ptr %115, align 4
  %2497 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 0
  %2498 = load float, ptr %2497, align 4
  %2499 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 1
  %2500 = load float, ptr %2499, align 4
  %2501 = fneg float %2500
  %2502 = call ptr @_pCf(ptr noundef %49)
  %2503 = getelementptr inbounds { float, float }, ptr %2502, i32 0, i32 0
  %2504 = getelementptr inbounds { float, float }, ptr %2502, i32 0, i32 1
  store float %2498, ptr %2503, align 4
  store float %2501, ptr %2504, align 4
  %2505 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2506 = load float, ptr %2505, align 4, !tbaa !13
  %2507 = fneg float %2506
  %2508 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2507, ptr %2508, align 4, !tbaa !13
  %2509 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2510 = load float, ptr %2509, align 4, !tbaa !15
  %2511 = fneg float %2510
  %2512 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2511, ptr %2512, align 4, !tbaa !15
  %2513 = load ptr, ptr %19, align 8, !tbaa !5
  %2514 = load ptr, ptr %32, align 8, !tbaa !5
  %2515 = getelementptr inbounds %struct.complex, ptr %2514, i64 1
  %2516 = load ptr, ptr %21, align 8, !tbaa !5
  %2517 = load i32, ptr %62, align 4, !tbaa !9
  %2518 = load i32, ptr %35, align 4, !tbaa !9
  %2519 = mul nsw i32 %2517, %2518
  %2520 = add nsw i32 %2519, 1
  %2521 = sext i32 %2520 to i64
  %2522 = getelementptr inbounds %struct.complex, ptr %2516, i64 %2521
  call void @caxpy_(ptr noundef %2513, ptr noundef %48, ptr noundef %2515, ptr noundef @c__1, ptr noundef %2522, ptr noundef @c__1)
  %2523 = load ptr, ptr %19, align 8, !tbaa !5
  %2524 = load ptr, ptr %21, align 8, !tbaa !5
  %2525 = load i32, ptr %62, align 4, !tbaa !9
  %2526 = load i32, ptr %35, align 4, !tbaa !9
  %2527 = mul nsw i32 %2525, %2526
  %2528 = add nsw i32 %2527, 1
  %2529 = sext i32 %2528 to i64
  %2530 = getelementptr inbounds %struct.complex, ptr %2524, i64 %2529
  %2531 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b27, ptr noundef %51, ptr noundef %2523, ptr noundef @c__1, ptr noundef %2530, ptr noundef %2531, ptr noundef %54)
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  %2532 = load float, ptr %59, align 4, !tbaa !11
  %2533 = load float, ptr %59, align 4, !tbaa !11
  %2534 = fneg float %2532
  %2535 = call float @llvm.fmuladd.f32(float %2534, float %2533, float 1.000000e+00)
  store float %2535, ptr %47, align 4, !tbaa !11
  %2536 = load float, ptr %51, align 4, !tbaa !11
  %2537 = fpext float %2536 to double
  %2538 = load float, ptr %46, align 4, !tbaa !11
  %2539 = load float, ptr %47, align 4, !tbaa !11
  %2540 = fcmp oge float %2538, %2539
  br i1 %2540, label %2541, label %2543

2541:                                             ; preds = %2472
  %2542 = load float, ptr %46, align 4, !tbaa !11
  br label %2545

2543:                                             ; preds = %2472
  %2544 = load float, ptr %47, align 4, !tbaa !11
  br label %2545

2545:                                             ; preds = %2543, %2541
  %2546 = phi float [ %2542, %2541 ], [ %2544, %2543 ]
  %2547 = fpext float %2546 to double
  %2548 = call double @sqrt(double noundef %2547) #7
  %2549 = fmul double %2537, %2548
  %2550 = fptrunc double %2549 to float
  %2551 = load ptr, ptr %24, align 8, !tbaa !5
  %2552 = load i32, ptr %62, align 4, !tbaa !9
  %2553 = sext i32 %2552 to i64
  %2554 = getelementptr inbounds float, ptr %2551, i64 %2553
  store float %2550, ptr %2554, align 4, !tbaa !11
  %2555 = load float, ptr %80, align 4, !tbaa !11
  %2556 = load ptr, ptr %29, align 8, !tbaa !5
  %2557 = load float, ptr %2556, align 4, !tbaa !11
  %2558 = fcmp oge float %2555, %2557
  br i1 %2558, label %2559, label %2561

2559:                                             ; preds = %2545
  %2560 = load float, ptr %80, align 4, !tbaa !11
  br label %2564

2561:                                             ; preds = %2545
  %2562 = load ptr, ptr %29, align 8, !tbaa !5
  %2563 = load float, ptr %2562, align 4, !tbaa !11
  br label %2564

2564:                                             ; preds = %2561, %2559
  %2565 = phi float [ %2560, %2559 ], [ %2563, %2561 ]
  store float %2565, ptr %80, align 4, !tbaa !11
  br label %2566

2566:                                             ; preds = %2564, %2470
  br label %2567

2567:                                             ; preds = %2566, %2327
  %2568 = load ptr, ptr %24, align 8, !tbaa !5
  %2569 = load i32, ptr %63, align 4, !tbaa !9
  %2570 = sext i32 %2569 to i64
  %2571 = getelementptr inbounds float, ptr %2568, i64 %2570
  %2572 = load float, ptr %2571, align 4, !tbaa !11
  %2573 = load float, ptr %53, align 4, !tbaa !11
  %2574 = fdiv float %2572, %2573
  store float %2574, ptr %46, align 4, !tbaa !11
  %2575 = load float, ptr %46, align 4, !tbaa !11
  %2576 = load float, ptr %46, align 4, !tbaa !11
  %2577 = fmul float %2575, %2576
  %2578 = load float, ptr %95, align 4, !tbaa !11
  %2579 = fcmp ole float %2577, %2578
  br i1 %2579, label %2580, label %2623

2580:                                             ; preds = %2567
  %2581 = load float, ptr %53, align 4, !tbaa !11
  %2582 = load float, ptr %94, align 4, !tbaa !11
  %2583 = fcmp olt float %2581, %2582
  br i1 %2583, label %2584, label %2602

2584:                                             ; preds = %2580
  %2585 = load float, ptr %53, align 4, !tbaa !11
  %2586 = load float, ptr %72, align 4, !tbaa !11
  %2587 = fcmp ogt float %2585, %2586
  br i1 %2587, label %2588, label %2602

2588:                                             ; preds = %2584
  %2589 = load ptr, ptr %19, align 8, !tbaa !5
  %2590 = load ptr, ptr %21, align 8, !tbaa !5
  %2591 = load i32, ptr %63, align 4, !tbaa !9
  %2592 = load i32, ptr %35, align 4, !tbaa !9
  %2593 = mul nsw i32 %2591, %2592
  %2594 = add nsw i32 %2593, 1
  %2595 = sext i32 %2594 to i64
  %2596 = getelementptr inbounds %struct.complex, ptr %2590, i64 %2595
  %2597 = call float @scnrm2_(ptr noundef %2589, ptr noundef %2596, ptr noundef @c__1)
  %2598 = load ptr, ptr %24, align 8, !tbaa !5
  %2599 = load i32, ptr %63, align 4, !tbaa !9
  %2600 = sext i32 %2599 to i64
  %2601 = getelementptr inbounds float, ptr %2598, i64 %2600
  store float %2597, ptr %2601, align 4, !tbaa !11
  br label %2622

2602:                                             ; preds = %2584, %2580
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %53, align 4, !tbaa !11
  %2603 = load ptr, ptr %19, align 8, !tbaa !5
  %2604 = load ptr, ptr %21, align 8, !tbaa !5
  %2605 = load i32, ptr %63, align 4, !tbaa !9
  %2606 = load i32, ptr %35, align 4, !tbaa !9
  %2607 = mul nsw i32 %2605, %2606
  %2608 = add nsw i32 %2607, 1
  %2609 = sext i32 %2608 to i64
  %2610 = getelementptr inbounds %struct.complex, ptr %2604, i64 %2609
  call void @classq_(ptr noundef %2603, ptr noundef %2610, ptr noundef @c__1, ptr noundef %64, ptr noundef %53)
  %2611 = load float, ptr %64, align 4, !tbaa !11
  %2612 = fpext float %2611 to double
  %2613 = load float, ptr %53, align 4, !tbaa !11
  %2614 = fpext float %2613 to double
  %2615 = call double @sqrt(double noundef %2614) #7
  %2616 = fmul double %2612, %2615
  %2617 = fptrunc double %2616 to float
  %2618 = load ptr, ptr %24, align 8, !tbaa !5
  %2619 = load i32, ptr %63, align 4, !tbaa !9
  %2620 = sext i32 %2619 to i64
  %2621 = getelementptr inbounds float, ptr %2618, i64 %2620
  store float %2617, ptr %2621, align 4, !tbaa !11
  br label %2622

2622:                                             ; preds = %2602, %2588
  br label %2623

2623:                                             ; preds = %2622, %2567
  %2624 = load float, ptr %51, align 4, !tbaa !11
  %2625 = load float, ptr %58, align 4, !tbaa !11
  %2626 = fdiv float %2624, %2625
  store float %2626, ptr %46, align 4, !tbaa !11
  %2627 = load float, ptr %46, align 4, !tbaa !11
  %2628 = load float, ptr %46, align 4, !tbaa !11
  %2629 = fmul float %2627, %2628
  %2630 = load float, ptr %95, align 4, !tbaa !11
  %2631 = fcmp ole float %2629, %2630
  br i1 %2631, label %2632, label %2672

2632:                                             ; preds = %2623
  %2633 = load float, ptr %51, align 4, !tbaa !11
  %2634 = load float, ptr %94, align 4, !tbaa !11
  %2635 = fcmp olt float %2633, %2634
  br i1 %2635, label %2636, label %2650

2636:                                             ; preds = %2632
  %2637 = load float, ptr %51, align 4, !tbaa !11
  %2638 = load float, ptr %72, align 4, !tbaa !11
  %2639 = fcmp ogt float %2637, %2638
  br i1 %2639, label %2640, label %2650

2640:                                             ; preds = %2636
  %2641 = load ptr, ptr %19, align 8, !tbaa !5
  %2642 = load ptr, ptr %21, align 8, !tbaa !5
  %2643 = load i32, ptr %62, align 4, !tbaa !9
  %2644 = load i32, ptr %35, align 4, !tbaa !9
  %2645 = mul nsw i32 %2643, %2644
  %2646 = add nsw i32 %2645, 1
  %2647 = sext i32 %2646 to i64
  %2648 = getelementptr inbounds %struct.complex, ptr %2642, i64 %2647
  %2649 = call float @scnrm2_(ptr noundef %2641, ptr noundef %2648, ptr noundef @c__1)
  store float %2649, ptr %51, align 4, !tbaa !11
  br label %2666

2650:                                             ; preds = %2636, %2632
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %2651 = load ptr, ptr %19, align 8, !tbaa !5
  %2652 = load ptr, ptr %21, align 8, !tbaa !5
  %2653 = load i32, ptr %62, align 4, !tbaa !9
  %2654 = load i32, ptr %35, align 4, !tbaa !9
  %2655 = mul nsw i32 %2653, %2654
  %2656 = add nsw i32 %2655, 1
  %2657 = sext i32 %2656 to i64
  %2658 = getelementptr inbounds %struct.complex, ptr %2652, i64 %2657
  call void @classq_(ptr noundef %2651, ptr noundef %2658, ptr noundef @c__1, ptr noundef %64, ptr noundef %51)
  %2659 = load float, ptr %64, align 4, !tbaa !11
  %2660 = fpext float %2659 to double
  %2661 = load float, ptr %51, align 4, !tbaa !11
  %2662 = fpext float %2661 to double
  %2663 = call double @sqrt(double noundef %2662) #7
  %2664 = fmul double %2660, %2663
  %2665 = fptrunc double %2664 to float
  store float %2665, ptr %51, align 4, !tbaa !11
  br label %2666

2666:                                             ; preds = %2650, %2640
  %2667 = load float, ptr %51, align 4, !tbaa !11
  %2668 = load ptr, ptr %24, align 8, !tbaa !5
  %2669 = load i32, ptr %62, align 4, !tbaa !9
  %2670 = sext i32 %2669 to i64
  %2671 = getelementptr inbounds float, ptr %2668, i64 %2670
  store float %2667, ptr %2671, align 4, !tbaa !11
  br label %2672

2672:                                             ; preds = %2666, %2623
  br label %2680

2673:                                             ; preds = %1923
  %2674 = load i32, ptr %83, align 4, !tbaa !9
  %2675 = add nsw i32 %2674, 1
  store i32 %2675, ptr %83, align 4, !tbaa !9
  %2676 = load i32, ptr %57, align 4, !tbaa !9
  %2677 = add nsw i32 %2676, 1
  store i32 %2677, ptr %57, align 4, !tbaa !9
  %2678 = load i32, ptr %75, align 4, !tbaa !9
  %2679 = add nsw i32 %2678, 1
  store i32 %2679, ptr %75, align 4, !tbaa !9
  br label %2680

2680:                                             ; preds = %2673, %2672
  br label %2688

2681:                                             ; preds = %1647
  %2682 = load i32, ptr %83, align 4, !tbaa !9
  %2683 = add nsw i32 %2682, 1
  store i32 %2683, ptr %83, align 4, !tbaa !9
  %2684 = load i32, ptr %57, align 4, !tbaa !9
  %2685 = add nsw i32 %2684, 1
  store i32 %2685, ptr %57, align 4, !tbaa !9
  %2686 = load i32, ptr %75, align 4, !tbaa !9
  %2687 = add nsw i32 %2686, 1
  store i32 %2687, ptr %75, align 4, !tbaa !9
  br label %2688

2688:                                             ; preds = %2681, %2680
  %2689 = load i32, ptr %61, align 4, !tbaa !9
  %2690 = load i32, ptr %76, align 4, !tbaa !9
  %2691 = icmp sle i32 %2689, %2690
  br i1 %2691, label %2692, label %2702

2692:                                             ; preds = %2688
  %2693 = load i32, ptr %75, align 4, !tbaa !9
  %2694 = load i32, ptr %77, align 4, !tbaa !9
  %2695 = icmp sge i32 %2693, %2694
  br i1 %2695, label %2696, label %2702

2696:                                             ; preds = %2692
  %2697 = load float, ptr %51, align 4, !tbaa !11
  %2698 = load ptr, ptr %24, align 8, !tbaa !5
  %2699 = load i32, ptr %62, align 4, !tbaa !9
  %2700 = sext i32 %2699 to i64
  %2701 = getelementptr inbounds float, ptr %2698, i64 %2700
  store float %2697, ptr %2701, align 4, !tbaa !11
  store i32 0, ptr %83, align 4, !tbaa !9
  br label %2762

2702:                                             ; preds = %2692, %2688
  %2703 = load i32, ptr %61, align 4, !tbaa !9
  %2704 = load i32, ptr %76, align 4, !tbaa !9
  %2705 = icmp sle i32 %2703, %2704
  br i1 %2705, label %2706, label %2713

2706:                                             ; preds = %2702
  %2707 = load i32, ptr %57, align 4, !tbaa !9
  %2708 = load i32, ptr %96, align 4, !tbaa !9
  %2709 = icmp sgt i32 %2707, %2708
  br i1 %2709, label %2710, label %2713

2710:                                             ; preds = %2706
  %2711 = load float, ptr %51, align 4, !tbaa !11
  %2712 = fneg float %2711
  store float %2712, ptr %51, align 4, !tbaa !11
  store i32 0, ptr %83, align 4, !tbaa !9
  br label %2718

2713:                                             ; preds = %2706, %2702
  br label %2714

2714:                                             ; preds = %2713
  %2715 = load i32, ptr %63, align 4, !tbaa !9
  %2716 = add nsw i32 %2715, 1
  store i32 %2716, ptr %63, align 4, !tbaa !9
  br label %1643, !llvm.loop !20

2717:                                             ; preds = %1643
  br label %2718

2718:                                             ; preds = %2717, %2710
  %2719 = load float, ptr %51, align 4, !tbaa !11
  %2720 = load ptr, ptr %24, align 8, !tbaa !5
  %2721 = load i32, ptr %62, align 4, !tbaa !9
  %2722 = sext i32 %2721 to i64
  %2723 = getelementptr inbounds float, ptr %2720, i64 %2722
  store float %2719, ptr %2723, align 4, !tbaa !11
  br label %2753

2724:                                             ; preds = %1618
  %2725 = load float, ptr %51, align 4, !tbaa !11
  %2726 = fcmp oeq float %2725, 0.000000e+00
  br i1 %2726, label %2727, label %2748

2727:                                             ; preds = %2724
  %2728 = load i32, ptr %91, align 4, !tbaa !9
  %2729 = load i32, ptr %87, align 4, !tbaa !9
  %2730 = add nsw i32 %2728, %2729
  %2731 = sub nsw i32 %2730, 1
  store i32 %2731, ptr %43, align 4, !tbaa !9
  %2732 = load i32, ptr %83, align 4, !tbaa !9
  %2733 = load i32, ptr %43, align 4, !tbaa !9
  %2734 = load ptr, ptr %20, align 8, !tbaa !5
  %2735 = load i32, ptr %2734, align 4, !tbaa !9
  %2736 = icmp sle i32 %2733, %2735
  br i1 %2736, label %2737, label %2739

2737:                                             ; preds = %2727
  %2738 = load i32, ptr %43, align 4, !tbaa !9
  br label %2742

2739:                                             ; preds = %2727
  %2740 = load ptr, ptr %20, align 8, !tbaa !5
  %2741 = load i32, ptr %2740, align 4, !tbaa !9
  br label %2742

2742:                                             ; preds = %2739, %2737
  %2743 = phi i32 [ %2738, %2737 ], [ %2741, %2739 ]
  %2744 = add nsw i32 %2732, %2743
  %2745 = load i32, ptr %91, align 4, !tbaa !9
  %2746 = sub nsw i32 %2744, %2745
  %2747 = add nsw i32 %2746, 1
  store i32 %2747, ptr %83, align 4, !tbaa !9
  br label %2748

2748:                                             ; preds = %2742, %2724
  %2749 = load float, ptr %51, align 4, !tbaa !11
  %2750 = fcmp olt float %2749, 0.000000e+00
  br i1 %2750, label %2751, label %2752

2751:                                             ; preds = %2748
  store i32 0, ptr %83, align 4, !tbaa !9
  br label %2752

2752:                                             ; preds = %2751, %2748
  br label %2753

2753:                                             ; preds = %2752, %2718
  br label %2754

2754:                                             ; preds = %2753
  %2755 = load i32, ptr %62, align 4, !tbaa !9
  %2756 = add nsw i32 %2755, 1
  store i32 %2756, ptr %62, align 4, !tbaa !9
  br label %1614, !llvm.loop !21

2757:                                             ; preds = %1614
  br label %2758

2758:                                             ; preds = %2757
  %2759 = load i32, ptr %85, align 4, !tbaa !9
  %2760 = add nsw i32 %2759, 1
  store i32 %2760, ptr %85, align 4, !tbaa !9
  br label %1588, !llvm.loop !22

2761:                                             ; preds = %1588
  br label %2762

2762:                                             ; preds = %2761, %2696
  %2763 = load i32, ptr %89, align 4, !tbaa !9
  %2764 = load i32, ptr %87, align 4, !tbaa !9
  %2765 = add nsw i32 %2763, %2764
  %2766 = sub nsw i32 %2765, 1
  store i32 %2766, ptr %42, align 4, !tbaa !9
  %2767 = load i32, ptr %42, align 4, !tbaa !9
  %2768 = load ptr, ptr %20, align 8, !tbaa !5
  %2769 = load i32, ptr %2768, align 4, !tbaa !9
  %2770 = icmp sle i32 %2767, %2769
  br i1 %2770, label %2771, label %2773

2771:                                             ; preds = %2762
  %2772 = load i32, ptr %42, align 4, !tbaa !9
  br label %2776

2773:                                             ; preds = %2762
  %2774 = load ptr, ptr %20, align 8, !tbaa !5
  %2775 = load i32, ptr %2774, align 4, !tbaa !9
  br label %2776

2776:                                             ; preds = %2773, %2771
  %2777 = phi i32 [ %2772, %2771 ], [ %2775, %2773 ]
  store i32 %2777, ptr %41, align 4, !tbaa !9
  %2778 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %2778, ptr %62, align 4, !tbaa !9
  br label %2779

2779:                                             ; preds = %2802, %2776
  %2780 = load i32, ptr %62, align 4, !tbaa !9
  %2781 = load i32, ptr %41, align 4, !tbaa !9
  %2782 = icmp sle i32 %2780, %2781
  br i1 %2782, label %2783, label %2805

2783:                                             ; preds = %2779
  %2784 = load ptr, ptr %24, align 8, !tbaa !5
  %2785 = load i32, ptr %62, align 4, !tbaa !9
  %2786 = sext i32 %2785 to i64
  %2787 = getelementptr inbounds float, ptr %2784, i64 %2786
  %2788 = load float, ptr %2787, align 4, !tbaa !11
  store float %2788, ptr %46, align 4, !tbaa !11
  %2789 = load float, ptr %46, align 4, !tbaa !11
  %2790 = fcmp oge float %2789, 0.000000e+00
  br i1 %2790, label %2791, label %2793

2791:                                             ; preds = %2783
  %2792 = load float, ptr %46, align 4, !tbaa !11
  br label %2796

2793:                                             ; preds = %2783
  %2794 = load float, ptr %46, align 4, !tbaa !11
  %2795 = fneg float %2794
  br label %2796

2796:                                             ; preds = %2793, %2791
  %2797 = phi float [ %2792, %2791 ], [ %2795, %2793 ]
  %2798 = load ptr, ptr %24, align 8, !tbaa !5
  %2799 = load i32, ptr %62, align 4, !tbaa !9
  %2800 = sext i32 %2799 to i64
  %2801 = getelementptr inbounds float, ptr %2798, i64 %2800
  store float %2797, ptr %2801, align 4, !tbaa !11
  br label %2802

2802:                                             ; preds = %2796
  %2803 = load i32, ptr %62, align 4, !tbaa !9
  %2804 = add nsw i32 %2803, 1
  store i32 %2804, ptr %62, align 4, !tbaa !9
  br label %2779, !llvm.loop !23

2805:                                             ; preds = %2779
  br label %2806

2806:                                             ; preds = %2805
  %2807 = load i32, ptr %90, align 4, !tbaa !9
  %2808 = add nsw i32 %2807, 1
  store i32 %2808, ptr %90, align 4, !tbaa !9
  br label %354, !llvm.loop !24

2809:                                             ; preds = %354
  %2810 = load ptr, ptr %24, align 8, !tbaa !5
  %2811 = load ptr, ptr %20, align 8, !tbaa !5
  %2812 = load i32, ptr %2811, align 4, !tbaa !9
  %2813 = sext i32 %2812 to i64
  %2814 = getelementptr inbounds float, ptr %2810, i64 %2813
  %2815 = load float, ptr %2814, align 4, !tbaa !11
  %2816 = load float, ptr %94, align 4, !tbaa !11
  %2817 = fcmp olt float %2815, %2816
  br i1 %2817, label %2818, label %2843

2818:                                             ; preds = %2809
  %2819 = load ptr, ptr %24, align 8, !tbaa !5
  %2820 = load ptr, ptr %20, align 8, !tbaa !5
  %2821 = load i32, ptr %2820, align 4, !tbaa !9
  %2822 = sext i32 %2821 to i64
  %2823 = getelementptr inbounds float, ptr %2819, i64 %2822
  %2824 = load float, ptr %2823, align 4, !tbaa !11
  %2825 = load float, ptr %72, align 4, !tbaa !11
  %2826 = fcmp ogt float %2824, %2825
  br i1 %2826, label %2827, label %2843

2827:                                             ; preds = %2818
  %2828 = load ptr, ptr %19, align 8, !tbaa !5
  %2829 = load ptr, ptr %21, align 8, !tbaa !5
  %2830 = load ptr, ptr %20, align 8, !tbaa !5
  %2831 = load i32, ptr %2830, align 4, !tbaa !9
  %2832 = load i32, ptr %35, align 4, !tbaa !9
  %2833 = mul nsw i32 %2831, %2832
  %2834 = add nsw i32 %2833, 1
  %2835 = sext i32 %2834 to i64
  %2836 = getelementptr inbounds %struct.complex, ptr %2829, i64 %2835
  %2837 = call float @scnrm2_(ptr noundef %2828, ptr noundef %2836, ptr noundef @c__1)
  %2838 = load ptr, ptr %24, align 8, !tbaa !5
  %2839 = load ptr, ptr %20, align 8, !tbaa !5
  %2840 = load i32, ptr %2839, align 4, !tbaa !9
  %2841 = sext i32 %2840 to i64
  %2842 = getelementptr inbounds float, ptr %2838, i64 %2841
  store float %2837, ptr %2842, align 4, !tbaa !11
  br label %2865

2843:                                             ; preds = %2818, %2809
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %2844 = load ptr, ptr %19, align 8, !tbaa !5
  %2845 = load ptr, ptr %21, align 8, !tbaa !5
  %2846 = load ptr, ptr %20, align 8, !tbaa !5
  %2847 = load i32, ptr %2846, align 4, !tbaa !9
  %2848 = load i32, ptr %35, align 4, !tbaa !9
  %2849 = mul nsw i32 %2847, %2848
  %2850 = add nsw i32 %2849, 1
  %2851 = sext i32 %2850 to i64
  %2852 = getelementptr inbounds %struct.complex, ptr %2845, i64 %2851
  call void @classq_(ptr noundef %2844, ptr noundef %2852, ptr noundef @c__1, ptr noundef %64, ptr noundef %51)
  %2853 = load float, ptr %64, align 4, !tbaa !11
  %2854 = fpext float %2853 to double
  %2855 = load float, ptr %51, align 4, !tbaa !11
  %2856 = fpext float %2855 to double
  %2857 = call double @sqrt(double noundef %2856) #7
  %2858 = fmul double %2854, %2857
  %2859 = fptrunc double %2858 to float
  %2860 = load ptr, ptr %24, align 8, !tbaa !5
  %2861 = load ptr, ptr %20, align 8, !tbaa !5
  %2862 = load i32, ptr %2861, align 4, !tbaa !9
  %2863 = sext i32 %2862 to i64
  %2864 = getelementptr inbounds float, ptr %2860, i64 %2863
  store float %2859, ptr %2864, align 4, !tbaa !11
  br label %2865

2865:                                             ; preds = %2843, %2827
  %2866 = load i32, ptr %61, align 4, !tbaa !9
  %2867 = load i32, ptr %76, align 4, !tbaa !9
  %2868 = icmp slt i32 %2866, %2867
  br i1 %2868, label %2869, label %2880

2869:                                             ; preds = %2865
  %2870 = load float, ptr %78, align 4, !tbaa !11
  %2871 = load float, ptr %97, align 4, !tbaa !11
  %2872 = fcmp ole float %2870, %2871
  br i1 %2872, label %2878, label %2873

2873:                                             ; preds = %2869
  %2874 = load i32, ptr %84, align 4, !tbaa !9
  %2875 = load ptr, ptr %20, align 8, !tbaa !5
  %2876 = load i32, ptr %2875, align 4, !tbaa !9
  %2877 = icmp sle i32 %2874, %2876
  br i1 %2877, label %2878, label %2880

2878:                                             ; preds = %2873, %2869
  %2879 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %2879, ptr %76, align 4, !tbaa !9
  br label %2880

2880:                                             ; preds = %2878, %2873, %2865
  %2881 = load i32, ptr %61, align 4, !tbaa !9
  %2882 = load i32, ptr %76, align 4, !tbaa !9
  %2883 = add nsw i32 %2882, 1
  %2884 = icmp sgt i32 %2881, %2883
  br i1 %2884, label %2885, label %2910

2885:                                             ; preds = %2880
  %2886 = load float, ptr %78, align 4, !tbaa !11
  %2887 = fpext float %2886 to double
  %2888 = load ptr, ptr %20, align 8, !tbaa !5
  %2889 = load i32, ptr %2888, align 4, !tbaa !9
  %2890 = sitofp i32 %2889 to float
  %2891 = fpext float %2890 to double
  %2892 = call double @sqrt(double noundef %2891) #7
  %2893 = load ptr, ptr %30, align 8, !tbaa !5
  %2894 = load float, ptr %2893, align 4, !tbaa !11
  %2895 = fpext float %2894 to double
  %2896 = fmul double %2892, %2895
  %2897 = fcmp olt double %2887, %2896
  br i1 %2897, label %2898, label %2910

2898:                                             ; preds = %2885
  %2899 = load ptr, ptr %20, align 8, !tbaa !5
  %2900 = load i32, ptr %2899, align 4, !tbaa !9
  %2901 = sitofp i32 %2900 to float
  %2902 = load float, ptr %78, align 4, !tbaa !11
  %2903 = fmul float %2901, %2902
  %2904 = load float, ptr %80, align 4, !tbaa !11
  %2905 = fmul float %2903, %2904
  %2906 = load ptr, ptr %30, align 8, !tbaa !5
  %2907 = load float, ptr %2906, align 4, !tbaa !11
  %2908 = fcmp olt float %2905, %2907
  br i1 %2908, label %2909, label %2910

2909:                                             ; preds = %2898
  br label %2924

2910:                                             ; preds = %2898, %2885, %2880
  %2911 = load i32, ptr %83, align 4, !tbaa !9
  %2912 = load i32, ptr %82, align 4, !tbaa !9
  %2913 = icmp sge i32 %2911, %2912
  br i1 %2913, label %2914, label %2915

2914:                                             ; preds = %2910
  br label %2924

2915:                                             ; preds = %2910
  br label %2916

2916:                                             ; preds = %2915
  %2917 = load i32, ptr %61, align 4, !tbaa !9
  %2918 = add nsw i32 %2917, 1
  store i32 %2918, ptr %61, align 4, !tbaa !9
  br label %348, !llvm.loop !25

2919:                                             ; preds = %348
  %2920 = load ptr, ptr %31, align 8, !tbaa !5
  %2921 = load i32, ptr %2920, align 4, !tbaa !9
  %2922 = sub nsw i32 %2921, 1
  %2923 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %2922, ptr %2923, align 4, !tbaa !9
  br label %2926

2924:                                             ; preds = %2914, %2909
  %2925 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %2925, align 4, !tbaa !9
  br label %2926

2926:                                             ; preds = %2924, %2919
  %2927 = load ptr, ptr %20, align 8, !tbaa !5
  %2928 = load i32, ptr %2927, align 4, !tbaa !9
  %2929 = sub nsw i32 %2928, 1
  store i32 %2929, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %2930

2930:                                             ; preds = %3059, %2926
  %2931 = load i32, ptr %62, align 4, !tbaa !9
  %2932 = load i32, ptr %39, align 4, !tbaa !9
  %2933 = icmp sle i32 %2931, %2932
  br i1 %2933, label %2934, label %3062

2934:                                             ; preds = %2930
  %2935 = load ptr, ptr %20, align 8, !tbaa !5
  %2936 = load i32, ptr %2935, align 4, !tbaa !9
  %2937 = load i32, ptr %62, align 4, !tbaa !9
  %2938 = sub nsw i32 %2936, %2937
  %2939 = add nsw i32 %2938, 1
  store i32 %2939, ptr %40, align 4, !tbaa !9
  %2940 = load ptr, ptr %24, align 8, !tbaa !5
  %2941 = load i32, ptr %62, align 4, !tbaa !9
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds float, ptr %2940, i64 %2942
  %2944 = call i32 @isamax_(ptr noundef %40, ptr noundef %2943, ptr noundef @c__1)
  %2945 = load i32, ptr %62, align 4, !tbaa !9
  %2946 = add nsw i32 %2944, %2945
  %2947 = sub nsw i32 %2946, 1
  store i32 %2947, ptr %63, align 4, !tbaa !9
  %2948 = load i32, ptr %62, align 4, !tbaa !9
  %2949 = load i32, ptr %63, align 4, !tbaa !9
  %2950 = icmp ne i32 %2948, %2949
  br i1 %2950, label %2951, label %3058

2951:                                             ; preds = %2934
  %2952 = load ptr, ptr %24, align 8, !tbaa !5
  %2953 = load i32, ptr %62, align 4, !tbaa !9
  %2954 = sext i32 %2953 to i64
  %2955 = getelementptr inbounds float, ptr %2952, i64 %2954
  %2956 = load float, ptr %2955, align 4, !tbaa !11
  store float %2956, ptr %60, align 4, !tbaa !11
  %2957 = load ptr, ptr %24, align 8, !tbaa !5
  %2958 = load i32, ptr %63, align 4, !tbaa !9
  %2959 = sext i32 %2958 to i64
  %2960 = getelementptr inbounds float, ptr %2957, i64 %2959
  %2961 = load float, ptr %2960, align 4, !tbaa !11
  %2962 = load ptr, ptr %24, align 8, !tbaa !5
  %2963 = load i32, ptr %62, align 4, !tbaa !9
  %2964 = sext i32 %2963 to i64
  %2965 = getelementptr inbounds float, ptr %2962, i64 %2964
  store float %2961, ptr %2965, align 4, !tbaa !11
  %2966 = load float, ptr %60, align 4, !tbaa !11
  %2967 = load ptr, ptr %24, align 8, !tbaa !5
  %2968 = load i32, ptr %63, align 4, !tbaa !9
  %2969 = sext i32 %2968 to i64
  %2970 = getelementptr inbounds float, ptr %2967, i64 %2969
  store float %2966, ptr %2970, align 4, !tbaa !11
  %2971 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %2971, ptr %40, align 4, !tbaa !9
  %2972 = load ptr, ptr %23, align 8, !tbaa !5
  %2973 = load i32, ptr %40, align 4, !tbaa !9
  %2974 = sext i32 %2973 to i64
  %2975 = getelementptr inbounds %struct.complex, ptr %2972, i64 %2974
  %2976 = getelementptr inbounds %struct.complex, ptr %2975, i32 0, i32 0
  %2977 = load float, ptr %2976, align 4, !tbaa !13
  %2978 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %2977, ptr %2978, align 4, !tbaa !13
  %2979 = load ptr, ptr %23, align 8, !tbaa !5
  %2980 = load i32, ptr %40, align 4, !tbaa !9
  %2981 = sext i32 %2980 to i64
  %2982 = getelementptr inbounds %struct.complex, ptr %2979, i64 %2981
  %2983 = getelementptr inbounds %struct.complex, ptr %2982, i32 0, i32 1
  %2984 = load float, ptr %2983, align 4, !tbaa !15
  %2985 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %2984, ptr %2985, align 4, !tbaa !15
  %2986 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %2986, ptr %40, align 4, !tbaa !9
  %2987 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %2987, ptr %41, align 4, !tbaa !9
  %2988 = load ptr, ptr %23, align 8, !tbaa !5
  %2989 = load i32, ptr %41, align 4, !tbaa !9
  %2990 = sext i32 %2989 to i64
  %2991 = getelementptr inbounds %struct.complex, ptr %2988, i64 %2990
  %2992 = getelementptr inbounds %struct.complex, ptr %2991, i32 0, i32 0
  %2993 = load float, ptr %2992, align 4, !tbaa !13
  %2994 = load ptr, ptr %23, align 8, !tbaa !5
  %2995 = load i32, ptr %40, align 4, !tbaa !9
  %2996 = sext i32 %2995 to i64
  %2997 = getelementptr inbounds %struct.complex, ptr %2994, i64 %2996
  %2998 = getelementptr inbounds %struct.complex, ptr %2997, i32 0, i32 0
  store float %2993, ptr %2998, align 4, !tbaa !13
  %2999 = load ptr, ptr %23, align 8, !tbaa !5
  %3000 = load i32, ptr %41, align 4, !tbaa !9
  %3001 = sext i32 %3000 to i64
  %3002 = getelementptr inbounds %struct.complex, ptr %2999, i64 %3001
  %3003 = getelementptr inbounds %struct.complex, ptr %3002, i32 0, i32 1
  %3004 = load float, ptr %3003, align 4, !tbaa !15
  %3005 = load ptr, ptr %23, align 8, !tbaa !5
  %3006 = load i32, ptr %40, align 4, !tbaa !9
  %3007 = sext i32 %3006 to i64
  %3008 = getelementptr inbounds %struct.complex, ptr %3005, i64 %3007
  %3009 = getelementptr inbounds %struct.complex, ptr %3008, i32 0, i32 1
  store float %3004, ptr %3009, align 4, !tbaa !15
  %3010 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %3010, ptr %40, align 4, !tbaa !9
  %3011 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %3012 = load float, ptr %3011, align 4, !tbaa !13
  %3013 = load ptr, ptr %23, align 8, !tbaa !5
  %3014 = load i32, ptr %40, align 4, !tbaa !9
  %3015 = sext i32 %3014 to i64
  %3016 = getelementptr inbounds %struct.complex, ptr %3013, i64 %3015
  %3017 = getelementptr inbounds %struct.complex, ptr %3016, i32 0, i32 0
  store float %3012, ptr %3017, align 4, !tbaa !13
  %3018 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %3019 = load float, ptr %3018, align 4, !tbaa !15
  %3020 = load ptr, ptr %23, align 8, !tbaa !5
  %3021 = load i32, ptr %40, align 4, !tbaa !9
  %3022 = sext i32 %3021 to i64
  %3023 = getelementptr inbounds %struct.complex, ptr %3020, i64 %3022
  %3024 = getelementptr inbounds %struct.complex, ptr %3023, i32 0, i32 1
  store float %3019, ptr %3024, align 4, !tbaa !15
  %3025 = load ptr, ptr %19, align 8, !tbaa !5
  %3026 = load ptr, ptr %21, align 8, !tbaa !5
  %3027 = load i32, ptr %62, align 4, !tbaa !9
  %3028 = load i32, ptr %35, align 4, !tbaa !9
  %3029 = mul nsw i32 %3027, %3028
  %3030 = add nsw i32 %3029, 1
  %3031 = sext i32 %3030 to i64
  %3032 = getelementptr inbounds %struct.complex, ptr %3026, i64 %3031
  %3033 = load ptr, ptr %21, align 8, !tbaa !5
  %3034 = load i32, ptr %63, align 4, !tbaa !9
  %3035 = load i32, ptr %35, align 4, !tbaa !9
  %3036 = mul nsw i32 %3034, %3035
  %3037 = add nsw i32 %3036, 1
  %3038 = sext i32 %3037 to i64
  %3039 = getelementptr inbounds %struct.complex, ptr %3033, i64 %3038
  call void @cswap_(ptr noundef %3025, ptr noundef %3032, ptr noundef @c__1, ptr noundef %3039, ptr noundef @c__1)
  %3040 = load i32, ptr %70, align 4, !tbaa !9
  %3041 = icmp ne i32 %3040, 0
  br i1 %3041, label %3042, label %3057

3042:                                             ; preds = %2951
  %3043 = load ptr, ptr %26, align 8, !tbaa !5
  %3044 = load i32, ptr %62, align 4, !tbaa !9
  %3045 = load i32, ptr %37, align 4, !tbaa !9
  %3046 = mul nsw i32 %3044, %3045
  %3047 = add nsw i32 %3046, 1
  %3048 = sext i32 %3047 to i64
  %3049 = getelementptr inbounds %struct.complex, ptr %3043, i64 %3048
  %3050 = load ptr, ptr %26, align 8, !tbaa !5
  %3051 = load i32, ptr %63, align 4, !tbaa !9
  %3052 = load i32, ptr %37, align 4, !tbaa !9
  %3053 = mul nsw i32 %3051, %3052
  %3054 = add nsw i32 %3053, 1
  %3055 = sext i32 %3054 to i64
  %3056 = getelementptr inbounds %struct.complex, ptr %3050, i64 %3055
  call void @cswap_(ptr noundef %93, ptr noundef %3049, ptr noundef @c__1, ptr noundef %3056, ptr noundef @c__1)
  br label %3057

3057:                                             ; preds = %3042, %2951
  br label %3058

3058:                                             ; preds = %3057, %2934
  br label %3059

3059:                                             ; preds = %3058
  %3060 = load i32, ptr %62, align 4, !tbaa !9
  %3061 = add nsw i32 %3060, 1
  store i32 %3061, ptr %62, align 4, !tbaa !9
  br label %2930, !llvm.loop !26

3062:                                             ; preds = %2930
  store i32 1, ptr %98, align 4
  br label %3063

3063:                                             ; preds = %3062, %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  ret void
}

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

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

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

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

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

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

declare float @scnrm2_(ptr noundef, ptr noundef, ptr noundef) #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @cdotc_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #6

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !12, i64 0}
!14 = !{!"", !12, i64 0, !12, i64 4}
!15 = !{!14, !12, i64 4}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}


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

; Function Attrs: nounwind uwtable
define dso_local void @cgsvj0_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr noundef %3, ptr noundef %4, ptr nocapture noundef %5, ptr noundef %6, ptr nocapture noundef readonly %7, ptr noundef %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr noundef %14, ptr nocapture noundef readonly %15, ptr nocapture noundef writeonly %16) local_unnamed_addr #0 {
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.complex, align 8
  %22 = alloca %struct.complex, align 8
  %23 = alloca %struct.complex, align 8
  %24 = alloca float, align 4
  %25 = alloca %struct.complex, align 8
  %26 = alloca float, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.complex, align 8
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #9
  %33 = getelementptr inbounds i8, ptr %6, i64 -4
  %34 = getelementptr inbounds i8, ptr %5, i64 -8
  %35 = load i32, ptr %4, align 4, !tbaa !5
  %narrow = xor i32 %35, -1
  %36 = sext i32 %narrow to i64
  %37 = getelementptr inbounds %struct.complex, ptr %3, i64 %36
  %38 = load i32, ptr %9, align 4, !tbaa !5
  %narrow992 = xor i32 %38, -1
  %39 = sext i32 %narrow992 to i64
  %40 = getelementptr inbounds %struct.complex, ptr %8, i64 %39
  %41 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #9
  %42 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #9
  %43 = icmp ne i32 %42, 0
  %44 = icmp ne i32 %41, 0
  %or.cond = select i1 %43, i1 true, i1 %44
  br i1 %or.cond, label %47, label %45

45:                                               ; preds = %17
  %46 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #9
  %.not = icmp eq i32 %46, 0
  br i1 %.not, label %76, label %47

47:                                               ; preds = %45, %17
  %48 = load i32, ptr %1, align 4, !tbaa !5
  %49 = icmp slt i32 %48, 0
  br i1 %49, label %76, label %50

50:                                               ; preds = %47
  %51 = load i32, ptr %2, align 4, !tbaa !5
  %or.cond1028 = icmp ugt i32 %51, %48
  br i1 %or.cond1028, label %76, label %52

52:                                               ; preds = %50
  %53 = load i32, ptr %4, align 4, !tbaa !5
  %54 = icmp slt i32 %53, %48
  br i1 %54, label %76, label %55

55:                                               ; preds = %52
  br i1 %or.cond, label %56, label %.thread1047

56:                                               ; preds = %55
  %57 = load i32, ptr %7, align 4, !tbaa !5
  %58 = icmp slt i32 %57, 0
  br i1 %58, label %76, label %59

59:                                               ; preds = %56
  br i1 %43, label %60, label %63

60:                                               ; preds = %59
  %61 = load i32, ptr %9, align 4, !tbaa !5
  %62 = icmp slt i32 %61, %51
  br i1 %62, label %76, label %63

63:                                               ; preds = %60, %59
  br i1 %44, label %64, label %.thread1047

64:                                               ; preds = %63
  %65 = load i32, ptr %9, align 4, !tbaa !5
  %66 = icmp slt i32 %65, %57
  br i1 %66, label %76, label %.thread1047

.thread1047:                                      ; preds = %55, %64, %63
  %67 = load float, ptr %12, align 4, !tbaa !9
  %68 = load float, ptr %10, align 4, !tbaa !9
  %69 = fcmp ugt float %67, %68
  br i1 %69, label %70, label %76

70:                                               ; preds = %.thread1047
  %71 = load i32, ptr %13, align 4, !tbaa !5
  %72 = icmp slt i32 %71, 0
  br i1 %72, label %76, label %73

73:                                               ; preds = %70
  %74 = load i32, ptr %15, align 4, !tbaa !5
  %75 = icmp slt i32 %74, %48
  br i1 %75, label %76, label %78

76:                                               ; preds = %73, %70, %.thread1047, %60, %64, %56, %52, %50, %47, %45
  %.sink = phi i32 [ -1, %45 ], [ -2, %47 ], [ -3, %50 ], [ -5, %52 ], [ -8, %56 ], [ -10, %64 ], [ -10, %60 ], [ -13, %.thread1047 ], [ -14, %70 ], [ -16, %73 ]
  %.ph.neg = phi i32 [ 1, %45 ], [ 2, %47 ], [ 3, %50 ], [ 5, %52 ], [ 8, %56 ], [ 10, %64 ], [ 10, %60 ], [ 13, %.thread1047 ], [ 14, %70 ], [ 16, %73 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  store i32 %.ph.neg, ptr %18, align 4, !tbaa !5
  %77 = call i32 @xerbla_(ptr noundef nonnull @.str.3, ptr noundef nonnull %18, i32 noundef 6) #9
  br label %.loopexit

78:                                               ; preds = %73
  store i32 0, ptr %16, align 4, !tbaa !5
  br i1 %43, label %79, label %81

79:                                               ; preds = %78
  %80 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %80, ptr %32, align 4, !tbaa !5
  br label %84

81:                                               ; preds = %78
  br i1 %44, label %82, label %84

82:                                               ; preds = %81
  %83 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %83, ptr %32, align 4, !tbaa !5
  br label %84

84:                                               ; preds = %81, %82, %79
  %sqrtf = tail call float @sqrtf(float noundef %68) #3
  %85 = load float, ptr %11, align 4, !tbaa !9
  %sqrtf994 = tail call float @sqrtf(float noundef %85) #3
  %86 = load float, ptr %11, align 4, !tbaa !9
  %87 = load float, ptr %10, align 4, !tbaa !9
  %88 = fdiv float %86, %87
  %89 = fdiv float 1.000000e+00, %86
  %90 = fdiv float 1.000000e+00, %sqrtf994
  %91 = fdiv float 1.000000e+00, %sqrtf
  %92 = load float, ptr %12, align 4, !tbaa !9
  %sqrtf995 = tail call float @sqrtf(float noundef %92) #3
  %93 = load i32, ptr %2, align 4, !tbaa !5
  %94 = add nsw i32 %93, -1
  %95 = mul nsw i32 %94, %93
  %96 = sdiv i32 %95, 2
  %spec.select = tail call i32 @llvm.smin.i32(i32 %93, i32 8)
  %97 = sdiv i32 %93, %spec.select
  %98 = mul nsw i32 %97, %spec.select
  %.not996 = icmp ne i32 %98, %93
  %99 = zext i1 %.not996 to i32
  %.0887 = add i32 %97, %99
  %100 = mul nsw i32 %spec.select, %spec.select
  %101 = tail call i32 @llvm.smin.i32(i32 %93, i32 5)
  %102 = load i32, ptr %13, align 4, !tbaa !5
  store i32 %102, ptr %18, align 4, !tbaa !5
  %invariant.gep1329 = getelementptr i8, ptr %37, i64 8
  %.not9971333 = icmp slt i32 %102, 1
  br i1 %.not9971333, label %._crit_edge1342, label %.lr.ph1341

.lr.ph1341:                                       ; preds = %84
  %103 = add i32 %spec.select, -1
  %invariant.gep1157 = getelementptr i8, ptr %40, i64 8
  %104 = getelementptr inbounds i8, ptr %25, i64 4
  %105 = sext i32 %35 to i64
  %106 = sext i32 %38 to i64
  %.not9981308 = icmp slt i32 %.0887, 1
  %107 = insertelement <2 x float> poison, float %88, i64 0
  %108 = shufflevector <2 x float> %107, <2 x float> poison, <2 x i32> zeroinitializer
  br label %109

109:                                              ; preds = %.lr.ph1341, %897
  %.08801335 = phi i32 [ 1, %.lr.ph1341 ], [ %898, %897 ]
  %.09501334 = phi i32 [ 0, %.lr.ph1341 ], [ %.1951, %897 ]
  store i32 %.0887, ptr %19, align 4, !tbaa !5
  br i1 %.not9981308, label %.._crit_edge1320_crit_edge, label %.lr.ph1319

.._crit_edge1320_crit_edge:                       ; preds = %109
  %.pre1409 = load i32, ptr %2, align 4, !tbaa !5
  br label %._crit_edge1320

.lr.ph1319:                                       ; preds = %109
  %.not1027 = icmp sle i32 %.08801335, %.09501334
  %.not1012 = icmp sgt i32 %.08801335, %.09501334
  br label %110

.loopexit1070:                                    ; preds = %.lr.ph1307, %middle.block, %.loopexit1071
  %indvars.iv.next = add i32 %indvars.iv, %spec.select
  %indvars.iv.next1390 = add i32 %indvars.iv1389, %spec.select
  br i1 %.not10041288.not, label %110, label %._crit_edge1320, !llvm.loop !11

110:                                              ; preds = %.lr.ph1319, %.loopexit1070
  %indvars.iv1389 = phi i32 [ %spec.select, %.lr.ph1319 ], [ %indvars.iv.next1390, %.loopexit1070 ]
  %indvars.iv1387.in = phi i32 [ %.0887, %.lr.ph1319 ], [ %indvars.iv1387, %.loopexit1070 ]
  %indvars.iv = phi i32 [ 1, %.lr.ph1319 ], [ %indvars.iv.next, %.loopexit1070 ]
  %.08881313 = phi i32 [ 1, %.lr.ph1319 ], [ %474, %.loopexit1070 ]
  %.08921312 = phi i32 [ 0, %.lr.ph1319 ], [ %.14, %.loopexit1070 ]
  %.08971311 = phi i32 [ 0, %.lr.ph1319 ], [ %.17, %.loopexit1070 ]
  %.09171310 = phi float [ 0.000000e+00, %.lr.ph1319 ], [ %.17934, %.loopexit1070 ]
  %.09361309 = phi float [ 0.000000e+00, %.lr.ph1319 ], [ %.13949, %.loopexit1070 ]
  %111 = sext i32 %indvars.iv to i64
  %indvars.iv1387 = add i32 %indvars.iv1387.in, -1
  %112 = sext i32 %indvars.iv to i64
  %.inv1412 = icmp slt i32 %indvars.iv1387, 1
  %113 = select i1 %.inv1412, i32 1, i32 2
  %114 = add nsw i32 %.08881313, -1
  %115 = mul nsw i32 %114, %spec.select
  %116 = sub nsw i32 %.0887, %.08881313
  store i32 %116, ptr %20, align 4, !tbaa !5
  %.not10031180 = icmp slt i32 %116, 0
  br i1 %.not10031180, label %._crit_edge1191, label %.lr.ph1190.preheader

.lr.ph1190.preheader:                             ; preds = %110
  %117 = add nsw i32 %115, 1
  br label %.lr.ph1190

.lr.ph1190:                                       ; preds = %.lr.ph1190.preheader, %._crit_edge
  %indvars.iv1379 = phi i32 [ %indvars.iv, %.lr.ph1190.preheader ], [ %indvars.iv.next1380, %._crit_edge ]
  %indvars.iv1377 = phi i32 [ %spec.select, %.lr.ph1190.preheader ], [ %indvars.iv.next1378, %._crit_edge ]
  %.08891186 = phi i32 [ %117, %.lr.ph1190.preheader ], [ %119, %._crit_edge ]
  %.18931185 = phi i32 [ %.08921312, %.lr.ph1190.preheader ], [ %.2894.lcssa, %._crit_edge ]
  %.18981184 = phi i32 [ %.08971311, %.lr.ph1190.preheader ], [ %.2899.lcssa, %._crit_edge ]
  %.09161183 = phi i32 [ 0, %.lr.ph1190.preheader ], [ %473, %._crit_edge ]
  %.19181182 = phi float [ %.09171310, %.lr.ph1190.preheader ], [ %.2919.lcssa, %._crit_edge ]
  %.19371181 = phi float [ %.09361309, %.lr.ph1190.preheader ], [ %.2938.lcssa, %._crit_edge ]
  %118 = mul nuw nsw i32 %.09161183, %spec.select
  %119 = add nsw i32 %.08891186, %118
  %120 = add i32 %103, %119
  store i32 %120, ptr %20, align 4, !tbaa !5
  %121 = load i32, ptr %2, align 4, !tbaa !5
  %122 = add nsw i32 %121, -1
  %123 = call i32 @llvm.smin.i32(i32 %120, i32 %122)
  %.not10171166 = icmp sgt i32 %119, %123
  br i1 %.not10171166, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph1190
  %124 = sext i32 %indvars.iv1379 to i64
  %125 = icmp eq i32 %.09161183, 0
  %126 = zext i1 %125 to i32
  %127 = sext i32 %123 to i64
  br label %128

128:                                              ; preds = %.lr.ph, %472
  %indvars.iv1381 = phi i64 [ %124, %.lr.ph ], [ %indvars.iv.next1382, %472 ]
  %.28941170 = phi i32 [ %.18931185, %.lr.ph ], [ %.7, %472 ]
  %.28991169 = phi i32 [ %.18981184, %.lr.ph ], [ %.9906, %472 ]
  %.29191168 = phi float [ %.19181182, %.lr.ph ], [ %.8925, %472 ]
  %.29381167 = phi float [ %.19371181, %.lr.ph ], [ %.6942, %472 ]
  %129 = load i32, ptr %2, align 4, !tbaa !5
  %130 = trunc nsw i64 %indvars.iv1381 to i32
  %reass.sub = sub i32 %129, %130
  %131 = add i32 %reass.sub, 1
  store i32 %131, ptr %20, align 4, !tbaa !5
  %132 = getelementptr inbounds float, ptr %33, i64 %indvars.iv1381
  %133 = call i32 @isamax_(ptr noundef nonnull %20, ptr noundef nonnull %132, ptr noundef nonnull @c__1) #9
  %134 = add i32 %130, -1
  %135 = add i32 %134, %133
  %.not1018 = icmp eq i32 %135, %130
  br i1 %.not1018, label %153, label %136

136:                                              ; preds = %128
  %137 = mul nsw i64 %indvars.iv1381, %105
  %gep1154 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %137
  %138 = mul nsw i32 %135, %35
  %139 = sext i32 %138 to i64
  %gep1156 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %139
  call void @cswap_(ptr noundef nonnull %1, ptr noundef %gep1154, ptr noundef nonnull @c__1, ptr noundef %gep1156, ptr noundef nonnull @c__1) #9
  br i1 %or.cond, label %140, label %144

140:                                              ; preds = %136
  %141 = mul nsw i64 %indvars.iv1381, %106
  %gep1158 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %141
  %142 = mul nsw i32 %135, %38
  %143 = sext i32 %142 to i64
  %gep1160 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %143
  call void @cswap_(ptr noundef nonnull %32, ptr noundef %gep1158, ptr noundef nonnull @c__1, ptr noundef %gep1160, ptr noundef nonnull @c__1) #9
  br label %144

144:                                              ; preds = %140, %136
  %145 = load float, ptr %132, align 4, !tbaa !9
  store float %145, ptr %29, align 4, !tbaa !9
  %146 = sext i32 %135 to i64
  %147 = getelementptr inbounds float, ptr %33, i64 %146
  %148 = load float, ptr %147, align 4, !tbaa !9
  store float %148, ptr %132, align 4, !tbaa !9
  store float %145, ptr %147, align 4, !tbaa !9
  %149 = getelementptr inbounds %struct.complex, ptr %34, i64 %indvars.iv1381
  %150 = load <2 x float>, ptr %149, align 4, !tbaa !9
  store <2 x float> %150, ptr %25, align 8, !tbaa !9
  %151 = getelementptr inbounds %struct.complex, ptr %34, i64 %146
  %152 = load <2 x float>, ptr %151, align 4, !tbaa !9
  store <2 x float> %152, ptr %149, align 4, !tbaa !9
  store i32 %135, ptr %20, align 4, !tbaa !5
  store <2 x float> %150, ptr %151, align 4, !tbaa !9
  br label %153

153:                                              ; preds = %144, %128
  %154 = load float, ptr %132, align 4, !tbaa !9
  br i1 %125, label %155, label %thread-pre-split

155:                                              ; preds = %153
  %156 = fcmp olt float %154, %90
  %157 = fcmp ogt float %154, %sqrtf994
  %or.cond1029 = and i1 %156, %157
  br i1 %or.cond1029, label %158, label %161

158:                                              ; preds = %155
  %159 = mul nsw i64 %indvars.iv1381, %105
  %gep1164 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %159
  %160 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep1164, ptr noundef nonnull @c__1) #9
  br label %170

161:                                              ; preds = %155
  store float 0.000000e+00, ptr %29, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %162 = mul nsw i64 %indvars.iv1381, %105
  %gep1162 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %162
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep1162, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %24) #9
  %163 = load float, ptr %29, align 4, !tbaa !9
  %164 = fpext float %163 to double
  %165 = load float, ptr %24, align 4, !tbaa !9
  %166 = fpext float %165 to double
  %167 = call double @sqrt(double noundef %166) #9
  %168 = fmul double %167, %164
  %169 = fptrunc double %168 to float
  br label %170

170:                                              ; preds = %161, %158
  %storemerge1020 = phi float [ %169, %161 ], [ %160, %158 ]
  store float %storemerge1020, ptr %132, align 4, !tbaa !9
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %153, %170
  %storemerge1019 = phi float [ %storemerge1020, %170 ], [ %154, %153 ]
  store float %storemerge1019, ptr %24, align 4, !tbaa !9
  %171 = fcmp ogt float %storemerge1019, 0.000000e+00
  br i1 %171, label %172, label %466

172:                                              ; preds = %thread-pre-split
  %173 = load i32, ptr %2, align 4, !tbaa !5
  %. = call i32 @llvm.smin.i32(i32 %120, i32 %173)
  store i32 %., ptr %20, align 4, !tbaa !5
  %174 = mul nsw i64 %indvars.iv1381, %105
  %gep = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %174
  %175 = mul nsw i64 %indvars.iv1381, %106
  %gep1134 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %175
  %176 = getelementptr inbounds %struct.complex, ptr %34, i64 %indvars.iv1381
  br label %177

177:                                              ; preds = %460, %172
  %indvars.iv1383 = phi i64 [ %indvars.iv.next1384, %460 ], [ %indvars.iv1381, %172 ]
  %.3939 = phi float [ %.4940, %460 ], [ %.29381167, %172 ]
  %.3920 = phi float [ %.6923, %460 ], [ %.29191168, %172 ]
  %.3900 = phi i32 [ %.7904, %460 ], [ %.28991169, %172 ]
  %.3895 = phi i32 [ %.5, %460 ], [ %.28941170, %172 ]
  %.0 = phi i32 [ %.2, %460 ], [ 0, %172 ]
  %indvars.iv.next1384 = add nsw i64 %indvars.iv1383, 1
  %178 = load i32, ptr %20, align 4, !tbaa !5
  %179 = sext i32 %178 to i64
  %.not1023.not = icmp slt i64 %indvars.iv1383, %179
  br i1 %.not1023.not, label %180, label %.loopexit1069.loopexit

180:                                              ; preds = %177
  %181 = getelementptr float, ptr %6, i64 %indvars.iv1383
  %182 = load float, ptr %181, align 4, !tbaa !9
  store float %182, ptr %26, align 4, !tbaa !9
  %183 = fcmp ogt float %182, 0.000000e+00
  br i1 %183, label %184, label %458

184:                                              ; preds = %180
  %185 = load float, ptr %24, align 4, !tbaa !9
  %186 = fcmp ult float %182, 1.000000e+00
  br i1 %186, label %214, label %187

187:                                              ; preds = %184
  %188 = fmul float %88, %185
  %189 = fcmp ole float %188, %182
  %190 = fdiv float %89, %182
  %191 = fcmp olt float %185, %190
  br i1 %191, label %192, label %205

192:                                              ; preds = %187
  %193 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1116 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %193
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1116, ptr noundef nonnull @c__1)
  %194 = load float, ptr %26, align 4, !tbaa !9
  %195 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %196 = insertelement <2 x float> poison, float %194, i64 0
  %197 = shufflevector <2 x float> %196, <2 x float> poison, <2 x i32> zeroinitializer
  %198 = fdiv <2 x float> %195, %197
  store <2 x float> %198, ptr %22, align 8, !tbaa !9
  %199 = load float, ptr %24, align 4, !tbaa !9
  %200 = insertelement <2 x float> poison, float %199, i64 0
  %201 = shufflevector <2 x float> %200, <2 x float> poison, <2 x i32> zeroinitializer
  %202 = fdiv <2 x float> %198, %201
  store <2 x float> %202, ptr %21, align 8, !tbaa !9
  %203 = extractelement <2 x float> %202, i64 0
  store float %203, ptr %25, align 8, !tbaa !13
  %204 = extractelement <2 x float> %202, i64 1
  br label %240

205:                                              ; preds = %187
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %206 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1112 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %206
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %1, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1112, ptr noundef nonnull @c__1)
  %207 = load float, ptr %26, align 4, !tbaa !9
  %208 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %209 = insertelement <2 x float> poison, float %207, i64 0
  %210 = shufflevector <2 x float> %209, <2 x float> poison, <2 x i32> zeroinitializer
  %211 = fdiv <2 x float> %208, %210
  store <2 x float> %211, ptr %21, align 8, !tbaa !9
  %212 = extractelement <2 x float> %211, i64 0
  store float %212, ptr %25, align 8, !tbaa !13
  %213 = extractelement <2 x float> %211, i64 1
  br label %240

214:                                              ; preds = %184
  %215 = fdiv float %182, %88
  %216 = fcmp ole float %185, %215
  %217 = fdiv float %88, %182
  %218 = fcmp ogt float %185, %217
  %219 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1124 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %219
  br i1 %218, label %220, label %232

220:                                              ; preds = %214
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1124, ptr noundef nonnull @c__1)
  %221 = load float, ptr %24, align 4, !tbaa !9
  %222 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %223 = insertelement <2 x float> poison, float %221, i64 0
  %224 = shufflevector <2 x float> %223, <2 x float> poison, <2 x i32> zeroinitializer
  %225 = fdiv <2 x float> %222, %224
  store <2 x float> %225, ptr %22, align 8, !tbaa !9
  %226 = load float, ptr %26, align 4, !tbaa !9
  %227 = insertelement <2 x float> poison, float %226, i64 0
  %228 = shufflevector <2 x float> %227, <2 x float> poison, <2 x i32> zeroinitializer
  %229 = fdiv <2 x float> %225, %228
  store <2 x float> %229, ptr %21, align 8, !tbaa !9
  %230 = extractelement <2 x float> %229, i64 0
  store float %230, ptr %25, align 8, !tbaa !13
  %231 = extractelement <2 x float> %229, i64 1
  br label %240

232:                                              ; preds = %214
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep1124, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1)
  %233 = load float, ptr %24, align 4, !tbaa !9
  %234 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %235 = insertelement <2 x float> poison, float %233, i64 0
  %236 = shufflevector <2 x float> %235, <2 x float> poison, <2 x i32> zeroinitializer
  %237 = fdiv <2 x float> %234, %236
  store <2 x float> %237, ptr %21, align 8, !tbaa !9
  %238 = extractelement <2 x float> %237, i64 0
  store float %238, ptr %25, align 8, !tbaa !13
  %239 = extractelement <2 x float> %237, i64 1
  br label %240

240:                                              ; preds = %220, %232, %192, %205
  %.sink1429 = phi float [ %231, %220 ], [ %239, %232 ], [ %204, %192 ], [ %213, %205 ]
  %.0912.in = phi i1 [ %216, %220 ], [ %216, %232 ], [ %189, %192 ], [ %189, %205 ]
  store float %.sink1429, ptr %104, align 4, !tbaa !15
  %241 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %242 = call float @cabsf(<2 x float> noundef %241) #9
  %243 = fneg float %242
  %244 = fcmp oge float %.3939, %242
  %245 = select i1 %244, float %.3939, float %242
  %246 = fcmp ole float %242, 0.000000e+00
  %247 = select i1 %246, float %243, float %242
  %248 = load float, ptr %12, align 4, !tbaa !9
  %249 = fcmp ogt float %247, %248
  br i1 %249, label %250, label %456

250:                                              ; preds = %240
  %251 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %252 = call float @cabsf(<2 x float> noundef %251) #9
  %253 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %254 = insertelement <2 x float> poison, float %252, i64 0
  %255 = shufflevector <2 x float> %254, <2 x float> poison, <2 x i32> zeroinitializer
  %256 = fdiv <2 x float> %253, %255
  store <2 x float> %256, ptr %21, align 8, !tbaa !9
  store <2 x float> %256, ptr %28, align 8, !tbaa !9
  %.4901 = select i1 %125, i32 0, i32 %.3900
  %.4896 = add nsw i32 %.3895, %126
  %.1 = select i1 %125, i32 0, i32 %.0
  br i1 %.0912.in, label %257, label %404

257:                                              ; preds = %250
  %258 = load float, ptr %26, align 4, !tbaa !9
  %259 = load float, ptr %24, align 4, !tbaa !9
  %260 = insertelement <2 x float> poison, float %258, i64 0
  %261 = insertelement <2 x float> %260, float %259, i64 1
  %262 = insertelement <2 x float> poison, float %259, i64 0
  %263 = insertelement <2 x float> %262, float %258, i64 1
  %264 = fdiv <2 x float> %261, %263
  %shift = shufflevector <2 x float> %264, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %265 = fsub <2 x float> %264, %shift
  %266 = extractelement <2 x float> %265, i64 0
  %267 = fcmp oge float %266, 0.000000e+00
  %268 = fneg float %266
  %269 = select i1 %267, float %266, float %268
  %270 = fmul float %269, -5.000000e-01
  %271 = fdiv float %270, %243
  %272 = fcmp oge float %271, 0.000000e+00
  %273 = fneg float %271
  %274 = select i1 %272, float %271, float %273
  %275 = fcmp ogt float %274, %91
  br i1 %275, label %276, label %329

276:                                              ; preds = %257
  %277 = fdiv float 5.000000e-01, %271
  store float %277, ptr %30, align 4, !tbaa !9
  store float 1.000000e+00, ptr %31, align 4, !tbaa !9
  %278 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.019.0.vec.extract = extractelement <2 x float> %278, i64 0
  %.sroa.019.4.vec.extract = extractelement <2 x float> %278, i64 1
  %279 = fneg float %.sroa.019.4.vec.extract
  %280 = call ptr @_pCf(ptr noundef nonnull %22)
  %281 = getelementptr inbounds i8, ptr %280, i64 4
  store float %.sroa.019.0.vec.extract, ptr %280, align 4
  store float %279, ptr %281, align 4
  %282 = load float, ptr %30, align 4, !tbaa !9
  %283 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %284 = insertelement <2 x float> poison, float %282, i64 0
  %285 = shufflevector <2 x float> %284, <2 x float> poison, <2 x i32> zeroinitializer
  %286 = fmul <2 x float> %285, %283
  store <2 x float> %286, ptr %21, align 8, !tbaa !9
  %287 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1140 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %287
  call void @crot_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1140, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br i1 %or.cond, label %288, label %299

288:                                              ; preds = %276
  %289 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.018.0.vec.extract = extractelement <2 x float> %289, i64 0
  %.sroa.018.4.vec.extract = extractelement <2 x float> %289, i64 1
  %290 = fneg float %.sroa.018.4.vec.extract
  %291 = call ptr @_pCf(ptr noundef nonnull %22)
  %292 = getelementptr inbounds i8, ptr %291, i64 4
  store float %.sroa.018.0.vec.extract, ptr %291, align 4
  store float %290, ptr %292, align 4
  %293 = load float, ptr %30, align 4, !tbaa !9
  %294 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %295 = insertelement <2 x float> poison, float %293, i64 0
  %296 = shufflevector <2 x float> %295, <2 x float> poison, <2 x i32> zeroinitializer
  %297 = fmul <2 x float> %296, %294
  store <2 x float> %297, ptr %21, align 8, !tbaa !9
  %298 = mul nsw i64 %indvars.iv.next1384, %106
  %gep1144 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %298
  call void @crot_(ptr noundef nonnull %32, ptr noundef %gep1134, ptr noundef nonnull @c__1, ptr noundef %gep1144, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br label %299

299:                                              ; preds = %288, %276
  %300 = load float, ptr %30, align 4
  %301 = load float, ptr %26, align 4, !tbaa !9
  %302 = fpext float %301 to double
  %303 = fneg float %300
  %304 = insertelement <2 x float> poison, float %303, i64 0
  %305 = insertelement <2 x float> %304, float %300, i64 1
  %306 = fmul <2 x float> %264, %305
  %307 = insertelement <2 x float> poison, float %243, i64 0
  %308 = shufflevector <2 x float> %307, <2 x float> poison, <2 x i32> zeroinitializer
  %309 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %306, <2 x float> %308, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %310 = fcmp ole <2 x float> %309, zeroinitializer
  %311 = extractelement <2 x i1> %310, i64 1
  %312 = extractelement <2 x float> %309, i64 1
  %313 = fpext float %312 to double
  %314 = select i1 %311, double 0.000000e+00, double %313
  %sqrt1053 = call double @llvm.sqrt.f64(double %314)
  %315 = fmul double %sqrt1053, %302
  %316 = fptrunc double %315 to float
  store float %316, ptr %181, align 4, !tbaa !9
  %317 = extractelement <2 x i1> %310, i64 0
  %318 = extractelement <2 x float> %309, i64 0
  %319 = fpext float %318 to double
  %320 = select i1 %317, double 0.000000e+00, double %319
  %sqrt = call double @llvm.sqrt.f64(double %320)
  %321 = load float, ptr %24, align 4, !tbaa !9
  %322 = fpext float %321 to double
  %323 = fmul double %sqrt, %322
  %324 = fptrunc double %323 to float
  store float %324, ptr %24, align 4, !tbaa !9
  %325 = fcmp oge float %300, 0.000000e+00
  %326 = select i1 %325, float %300, float %303
  %327 = fcmp oge float %.3920, %326
  %328 = select i1 %327, float %.3920, float %326
  br label %394

329:                                              ; preds = %257
  %330 = load float, ptr @c_b27, align 4
  %331 = fcmp oge float %330, 0.000000e+00
  %332 = fneg float %330
  br i1 %246, label %333, label %335

333:                                              ; preds = %329
  %334 = select i1 %331, float %330, float %332
  br label %337

335:                                              ; preds = %329
  %336 = select i1 %331, float %332, float %330
  br label %337

337:                                              ; preds = %335, %333
  %338 = phi float [ %334, %333 ], [ %336, %335 ]
  %339 = fneg float %338
  %340 = fpext float %271 to double
  %341 = fpext float %339 to double
  %342 = call float @llvm.fmuladd.f32(float %271, float %271, float 1.000000e+00)
  %343 = fpext float %342 to double
  %sqrt1057 = call double @llvm.sqrt.f64(double %343)
  %344 = call double @llvm.fmuladd.f64(double %341, double %sqrt1057, double %340)
  %345 = fdiv double 1.000000e+00, %344
  %346 = fptrunc double %345 to float
  store float %346, ptr %30, align 4, !tbaa !9
  %347 = call float @llvm.fmuladd.f32(float %346, float %346, float 1.000000e+00)
  %348 = fdiv float 1.000000e+00, %347
  %sqrt1056 = call float @llvm.sqrt.f32(float %348)
  store float %sqrt1056, ptr %31, align 4, !tbaa !9
  %349 = fmul float %sqrt1056, %346
  %350 = fcmp oge float %349, 0.000000e+00
  %351 = fneg float %349
  %352 = select i1 %350, float %349, float %351
  %353 = fcmp oge float %.3920, %352
  %354 = select i1 %353, float %.3920, float %352
  %355 = fpext float %258 to double
  %356 = fneg float %346
  %357 = insertelement <2 x float> poison, float %356, i64 0
  %358 = insertelement <2 x float> %357, float %346, i64 1
  %359 = fmul <2 x float> %264, %358
  %360 = insertelement <2 x float> poison, float %243, i64 0
  %361 = shufflevector <2 x float> %360, <2 x float> poison, <2 x i32> zeroinitializer
  %362 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %359, <2 x float> %361, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %363 = fcmp ole <2 x float> %362, zeroinitializer
  %364 = extractelement <2 x i1> %363, i64 1
  %365 = extractelement <2 x float> %362, i64 1
  %366 = fpext float %365 to double
  %367 = select i1 %364, double 0.000000e+00, double %366
  %sqrt1055 = call double @llvm.sqrt.f64(double %367)
  %368 = fmul double %sqrt1055, %355
  %369 = fptrunc double %368 to float
  store float %369, ptr %181, align 4, !tbaa !9
  %370 = extractelement <2 x i1> %363, i64 0
  %371 = extractelement <2 x float> %362, i64 0
  %372 = fpext float %371 to double
  %373 = select i1 %370, double 0.000000e+00, double %372
  %sqrt1054 = call double @llvm.sqrt.f64(double %373)
  %374 = fpext float %259 to double
  %375 = fmul double %sqrt1054, %374
  %376 = fptrunc double %375 to float
  store float %376, ptr %24, align 4, !tbaa !9
  %377 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.017.0.vec.extract = extractelement <2 x float> %377, i64 0
  %.sroa.017.4.vec.extract = extractelement <2 x float> %377, i64 1
  %378 = fneg float %.sroa.017.4.vec.extract
  %379 = call ptr @_pCf(ptr noundef nonnull %22)
  %380 = getelementptr inbounds i8, ptr %379, i64 4
  store float %.sroa.017.0.vec.extract, ptr %379, align 4
  store float %378, ptr %380, align 4
  %381 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %382 = insertelement <2 x float> poison, float %349, i64 0
  %383 = shufflevector <2 x float> %382, <2 x float> poison, <2 x i32> zeroinitializer
  %384 = fmul <2 x float> %383, %381
  store <2 x float> %384, ptr %21, align 8, !tbaa !9
  %385 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1132 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %385
  call void @crot_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1132, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br i1 %or.cond, label %386, label %394

386:                                              ; preds = %337
  %387 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.016.0.vec.extract = extractelement <2 x float> %387, i64 0
  %.sroa.016.4.vec.extract = extractelement <2 x float> %387, i64 1
  %388 = fneg float %.sroa.016.4.vec.extract
  %389 = call ptr @_pCf(ptr noundef nonnull %22)
  %390 = getelementptr inbounds i8, ptr %389, i64 4
  store float %.sroa.016.0.vec.extract, ptr %389, align 4
  store float %388, ptr %390, align 4
  %391 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %392 = fmul <2 x float> %383, %391
  store <2 x float> %392, ptr %21, align 8, !tbaa !9
  %393 = mul nsw i64 %indvars.iv.next1384, %106
  %gep1136 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %393
  call void @crot_(ptr noundef nonnull %32, ptr noundef %gep1134, ptr noundef nonnull @c__1, ptr noundef %gep1136, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br label %394

394:                                              ; preds = %337, %386, %299
  %.4921 = phi float [ %328, %299 ], [ %354, %386 ], [ %354, %337 ]
  %395 = getelementptr %struct.complex, ptr %5, i64 %indvars.iv1383
  %396 = load <2 x float>, ptr %395, align 4, !tbaa !9
  %397 = fneg <2 x float> %396
  store <2 x float> %397, ptr %22, align 8, !tbaa !9
  %398 = load <2 x float>, ptr %28, align 8, !tbaa !9
  %399 = shufflevector <2 x float> %397, <2 x float> %396, <2 x i32> <i32 1, i32 3>
  %400 = fmul <2 x float> %399, %398
  %401 = shufflevector <2 x float> %400, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %402 = shufflevector <2 x float> %397, <2 x float> poison, <2 x i32> zeroinitializer
  %403 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %402, <2 x float> %398, <2 x float> %401)
  store <2 x float> %403, ptr %21, align 8, !tbaa !9
  store <2 x float> %403, ptr %176, align 4, !tbaa !9
  %.pre = load float, ptr %181, align 4, !tbaa !9
  %.pre1405 = load float, ptr %26, align 4, !tbaa !9
  br label %417

404:                                              ; preds = %250
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %405 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1128 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %405
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1128, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %406 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %407 = fneg <2 x float> %406
  store <2 x float> %407, ptr %21, align 8, !tbaa !9
  call void @caxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1128, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b27, ptr noundef nonnull %26, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1128, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %408 = call float @llvm.fmuladd.f32(float %242, float %243, float 1.000000e+00)
  %409 = load float, ptr %26, align 4, !tbaa !9
  %410 = fpext float %409 to double
  %411 = fcmp ole float %408, 0.000000e+00
  %412 = select i1 %411, float 0.000000e+00, float %408
  %413 = fpext float %412 to double
  %sqrt1058 = call double @llvm.sqrt.f64(double %413)
  %414 = fmul double %sqrt1058, %410
  %415 = fptrunc double %414 to float
  store float %415, ptr %181, align 4, !tbaa !9
  %416 = load float, ptr %11, align 4, !tbaa !9
  %.inv = fcmp oge float %.3920, %416
  %..3920 = select i1 %.inv, float %.3920, float %416
  br label %417

417:                                              ; preds = %404, %394
  %418 = phi float [ %.pre1405, %394 ], [ %409, %404 ]
  %419 = phi float [ %.pre, %394 ], [ %415, %404 ]
  %.5922 = phi float [ %.4921, %394 ], [ %..3920, %404 ]
  %420 = fdiv float %419, %418
  %421 = fmul float %420, %420
  %422 = fcmp ugt float %421, %sqrtf
  br i1 %422, label %438, label %423

423:                                              ; preds = %417
  %424 = fcmp olt float %418, %90
  %425 = fcmp ogt float %418, %sqrtf994
  %or.cond1030 = and i1 %424, %425
  br i1 %or.cond1030, label %426, label %429

426:                                              ; preds = %423
  %427 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1148 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %427
  %428 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep1148, ptr noundef nonnull @c__1) #9
  br label %.sink.split

429:                                              ; preds = %423
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %430 = mul nsw i64 %indvars.iv.next1384, %105
  %gep1146 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %430
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep1146, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %26) #9
  %431 = load float, ptr %30, align 4, !tbaa !9
  %432 = fpext float %431 to double
  %433 = load float, ptr %26, align 4, !tbaa !9
  %434 = fpext float %433 to double
  %435 = call double @sqrt(double noundef %434) #9
  %436 = fmul double %435, %432
  %437 = fptrunc double %436 to float
  br label %.sink.split

.sink.split:                                      ; preds = %429, %426
  %.sink1430 = phi float [ %428, %426 ], [ %437, %429 ]
  store float %.sink1430, ptr %181, align 4, !tbaa !9
  br label %438

438:                                              ; preds = %.sink.split, %417
  %439 = load float, ptr %24, align 4, !tbaa !9
  %440 = fdiv float %439, %185
  %441 = fcmp ugt float %440, %sqrtf
  br i1 %441, label %460, label %442

442:                                              ; preds = %438
  %443 = fcmp olt float %439, %90
  %444 = fcmp ogt float %439, %sqrtf994
  %or.cond1031 = and i1 %443, %444
  br i1 %or.cond1031, label %445, label %447

445:                                              ; preds = %442
  %446 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1) #9
  br label %455

447:                                              ; preds = %442
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %24) #9
  %448 = load float, ptr %30, align 4, !tbaa !9
  %449 = fpext float %448 to double
  %450 = load float, ptr %24, align 4, !tbaa !9
  %451 = fpext float %450 to double
  %452 = call double @sqrt(double noundef %451) #9
  %453 = fmul double %452, %449
  %454 = fptrunc double %453 to float
  br label %455

455:                                              ; preds = %447, %445
  %storemerge1026 = phi float [ %454, %447 ], [ %446, %445 ]
  store float %storemerge1026, ptr %24, align 4, !tbaa !9
  store float %storemerge1026, ptr %132, align 4, !tbaa !9
  br label %460

456:                                              ; preds = %240
  %spec.select1032 = add nsw i32 %.3900, %126
  %457 = add nsw i32 %.0, 1
  br label %460

458:                                              ; preds = %180
  %spec.select1033 = add nsw i32 %.3900, %126
  %459 = add nsw i32 %.0, 1
  br label %460

460:                                              ; preds = %456, %455, %438, %458
  %.4940 = phi float [ %245, %455 ], [ %245, %438 ], [ %245, %456 ], [ %.3939, %458 ]
  %.6923 = phi float [ %.5922, %455 ], [ %.5922, %438 ], [ %.3920, %456 ], [ %.3920, %458 ]
  %.7904 = phi i32 [ %.4901, %455 ], [ %.4901, %438 ], [ %spec.select1032, %456 ], [ %spec.select1033, %458 ]
  %.5 = phi i32 [ %.4896, %455 ], [ %.4896, %438 ], [ %.3895, %456 ], [ %.3895, %458 ]
  %.2 = phi i32 [ %.1, %455 ], [ %.1, %438 ], [ %457, %456 ], [ %459, %458 ]
  %461 = icmp sgt i32 %.2, %101
  %or.cond1034 = select i1 %.not1027, i1 %461, i1 false
  br i1 %or.cond1034, label %462, label %177, !llvm.loop !16

462:                                              ; preds = %460
  %.pre1407 = load float, ptr %24, align 4, !tbaa !9
  br i1 %125, label %463, label %.loopexit1069

463:                                              ; preds = %462
  %464 = fneg float %.pre1407
  store float %464, ptr %24, align 4, !tbaa !9
  br label %.loopexit1069

.loopexit1069.loopexit:                           ; preds = %177
  %.pre1406 = load float, ptr %24, align 4, !tbaa !9
  br label %.loopexit1069

.loopexit1069:                                    ; preds = %.loopexit1069.loopexit, %462, %463
  %465 = phi float [ %464, %463 ], [ %.pre1407, %462 ], [ %.pre1406, %.loopexit1069.loopexit ]
  %.5941 = phi float [ %.4940, %463 ], [ %.4940, %462 ], [ %.3939, %.loopexit1069.loopexit ]
  %.7924 = phi float [ %.6923, %463 ], [ %.6923, %462 ], [ %.3920, %.loopexit1069.loopexit ]
  %.8905 = phi i32 [ 0, %463 ], [ 0, %462 ], [ %.3900, %.loopexit1069.loopexit ]
  %.6 = phi i32 [ %.5, %463 ], [ %.5, %462 ], [ %.3895, %.loopexit1069.loopexit ]
  store float %465, ptr %132, align 4, !tbaa !9
  br label %472

466:                                              ; preds = %thread-pre-split
  %467 = fcmp oeq float %storemerge1019, 0.000000e+00
  %or.cond5 = and i1 %125, %467
  br i1 %or.cond5, label %468, label %472

468:                                              ; preds = %466
  store i32 %120, ptr %20, align 4, !tbaa !5
  %469 = load i32, ptr %2, align 4, !tbaa !5
  %.1035 = call i32 @llvm.smin.i32(i32 %120, i32 %469)
  %470 = sub i32 %.28991169, %130
  %471 = add i32 %470, %.1035
  br label %472

472:                                              ; preds = %.loopexit1069, %468, %466
  %.6942 = phi float [ %.5941, %.loopexit1069 ], [ %.29381167, %468 ], [ %.29381167, %466 ]
  %.8925 = phi float [ %.7924, %.loopexit1069 ], [ %.29191168, %468 ], [ %.29191168, %466 ]
  %.9906 = phi i32 [ %.8905, %.loopexit1069 ], [ %471, %468 ], [ %.28991169, %466 ]
  %.7 = phi i32 [ %.6, %.loopexit1069 ], [ %.28941170, %468 ], [ %.28941170, %466 ]
  %indvars.iv.next1382 = add nsw i64 %indvars.iv1381, 1
  %.not1017.not = icmp slt i64 %indvars.iv1381, %127
  br i1 %.not1017.not, label %128, label %._crit_edge, !llvm.loop !17

._crit_edge:                                      ; preds = %472, %.lr.ph1190
  %.2938.lcssa = phi float [ %.19371181, %.lr.ph1190 ], [ %.6942, %472 ]
  %.2919.lcssa = phi float [ %.19181182, %.lr.ph1190 ], [ %.8925, %472 ]
  %.2899.lcssa = phi i32 [ %.18981184, %.lr.ph1190 ], [ %.9906, %472 ]
  %.2894.lcssa = phi i32 [ %.18931185, %.lr.ph1190 ], [ %.7, %472 ]
  %473 = add nuw nsw i32 %.09161183, 1
  %indvars.iv.next1378 = add i32 %indvars.iv1377, %spec.select
  %indvars.iv.next1380 = add i32 %indvars.iv1379, %indvars.iv1377
  %exitcond.not = icmp eq i32 %473, %113
  br i1 %exitcond.not, label %._crit_edge1191, label %.lr.ph1190, !llvm.loop !18

._crit_edge1191:                                  ; preds = %._crit_edge, %110
  %.1937.lcssa = phi float [ %.09361309, %110 ], [ %.2938.lcssa, %._crit_edge ]
  %.1918.lcssa = phi float [ %.09171310, %110 ], [ %.2919.lcssa, %._crit_edge ]
  %.1898.lcssa = phi i32 [ %.08971311, %110 ], [ %.2899.lcssa, %._crit_edge ]
  %.1893.lcssa = phi i32 [ %.08921312, %110 ], [ %.2894.lcssa, %._crit_edge ]
  %474 = add nuw nsw i32 %.08881313, 1
  %.not10041288.not = icmp slt i32 %.08881313, %.0887
  %475 = mul i32 %.08881313, %spec.select
  br i1 %.not10041288.not, label %.lr.ph1297, label %.loopexit1071

.lr.ph1297:                                       ; preds = %._crit_edge1191, %._crit_edge1281
  %indvars.iv1391 = phi i32 [ %indvars.iv.next1392, %._crit_edge1281 ], [ %indvars.iv1389, %._crit_edge1191 ]
  %.08911293 = phi i32 [ %835, %._crit_edge1281 ], [ %474, %._crit_edge1191 ]
  %.81292 = phi i32 [ %.9.lcssa, %._crit_edge1281 ], [ %.1893.lcssa, %._crit_edge1191 ]
  %.109071291 = phi i32 [ %.11908.lcssa, %._crit_edge1281 ], [ %.1898.lcssa, %._crit_edge1191 ]
  %.99261290 = phi float [ %.10927.lcssa, %._crit_edge1281 ], [ %.1918.lcssa, %._crit_edge1191 ]
  %.79431289 = phi float [ %.8944.lcssa, %._crit_edge1281 ], [ %.1937.lcssa, %._crit_edge1191 ]
  %476 = sext i32 %indvars.iv1391 to i64
  %477 = add nsw i32 %.08911293, -1
  %478 = mul nsw i32 %477, %spec.select
  store i32 %475, ptr %20, align 4, !tbaa !5
  %479 = load i32, ptr %2, align 4, !tbaa !5
  %.1036 = call i32 @llvm.smin.i32(i32 %475, i32 %479)
  %.not10061268.not = icmp slt i32 %115, %.1036
  br i1 %.not10061268.not, label %.lr.ph1280, label %._crit_edge1281

.lr.ph1280:                                       ; preds = %.lr.ph1297
  %480 = mul i32 %.08911293, %spec.select
  %481 = sext i32 %.1036 to i64
  br label %482

482:                                              ; preds = %.lr.ph1280, %834
  %indvars.iv1396 = phi i64 [ %112, %.lr.ph1280 ], [ %indvars.iv.next1397, %834 ]
  %.91273 = phi i32 [ %.81292, %.lr.ph1280 ], [ %.13, %834 ]
  %.119081272 = phi i32 [ %.109071291, %.lr.ph1280 ], [ %.16, %834 ]
  %.109271271 = phi float [ %.99261290, %.lr.ph1280 ], [ %.16933, %834 ]
  %.89441270 = phi float [ %.79431289, %.lr.ph1280 ], [ %.12948, %834 ]
  %.09521269 = phi i32 [ 0, %.lr.ph1280 ], [ %.4956, %834 ]
  %483 = getelementptr inbounds float, ptr %33, i64 %indvars.iv1396
  %484 = load float, ptr %483, align 4, !tbaa !9
  store float %484, ptr %24, align 4, !tbaa !9
  %485 = fcmp ogt float %484, 0.000000e+00
  br i1 %485, label %486, label %825

486:                                              ; preds = %482
  %487 = load i32, ptr %2, align 4, !tbaa !5
  %.1037 = call i32 @llvm.smin.i32(i32 %480, i32 %487)
  store i32 %.1037, ptr %20, align 4, !tbaa !5
  %.not10091246.not = icmp slt i32 %478, %.1037
  br i1 %.not10091246.not, label %.lr.ph1260, label %.loopexit1068

.lr.ph1260:                                       ; preds = %486
  %488 = mul nsw i64 %indvars.iv1396, %105
  %gep1199 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %488
  %489 = mul nsw i64 %indvars.iv1396, %106
  %gep1227 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %489
  %490 = getelementptr inbounds %struct.complex, ptr %34, i64 %indvars.iv1396
  br label %494

491:                                              ; preds = %819
  %492 = load i32, ptr %20, align 4, !tbaa !5
  %493 = sext i32 %492 to i64
  %.not1009.not = icmp slt i64 %indvars.iv.next1394, %493
  br i1 %.not1009.not, label %494, label %.loopexit1068.loopexit, !llvm.loop !19

494:                                              ; preds = %.lr.ph1260, %491
  %indvars.iv1393 = phi i64 [ %476, %.lr.ph1260 ], [ %indvars.iv.next1394, %491 ]
  %.31256 = phi i32 [ 0, %.lr.ph1260 ], [ %.4, %491 ]
  %.101251 = phi i32 [ %.91273, %.lr.ph1260 ], [ %.11, %491 ]
  %.129091250 = phi i32 [ %.119081272, %.lr.ph1260 ], [ %.13910, %491 ]
  %.119281249 = phi float [ %.109271271, %.lr.ph1260 ], [ %.14931, %491 ]
  %.99451248 = phi float [ %.89441270, %.lr.ph1260 ], [ %.10946, %491 ]
  %.19531247 = phi i32 [ %.09521269, %.lr.ph1260 ], [ %.2954, %491 ]
  %indvars.iv.next1394 = add nsw i64 %indvars.iv1393, 1
  %495 = getelementptr float, ptr %6, i64 %indvars.iv1393
  %496 = load float, ptr %495, align 4, !tbaa !9
  store float %496, ptr %26, align 4, !tbaa !9
  %497 = fcmp ogt float %496, 0.000000e+00
  br i1 %497, label %498, label %812

498:                                              ; preds = %494
  %499 = load float, ptr %24, align 4, !tbaa !9
  %500 = fcmp ult float %496, 1.000000e+00
  %501 = fcmp ult float %499, %496
  br i1 %500, label %531, label %502

502:                                              ; preds = %498
  %503 = fmul float %88, %499
  %504 = fcmp ole float %503, %496
  %505 = fmul float %88, %496
  %506 = fcmp ole float %505, %499
  %.1913.in = select i1 %501, i1 %506, i1 %504
  %507 = fdiv float %89, %496
  %508 = fcmp olt float %499, %507
  br i1 %508, label %509, label %522

509:                                              ; preds = %502
  %510 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1205 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %510
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef %gep1205, ptr noundef nonnull @c__1)
  %511 = load float, ptr %26, align 4, !tbaa !9
  %512 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %513 = insertelement <2 x float> poison, float %511, i64 0
  %514 = shufflevector <2 x float> %513, <2 x float> poison, <2 x i32> zeroinitializer
  %515 = fdiv <2 x float> %512, %514
  store <2 x float> %515, ptr %22, align 8, !tbaa !9
  %516 = load float, ptr %24, align 4, !tbaa !9
  %517 = insertelement <2 x float> poison, float %516, i64 0
  %518 = shufflevector <2 x float> %517, <2 x float> poison, <2 x i32> zeroinitializer
  %519 = fdiv <2 x float> %515, %518
  store <2 x float> %519, ptr %21, align 8, !tbaa !9
  %520 = extractelement <2 x float> %519, i64 0
  store float %520, ptr %25, align 8, !tbaa !13
  %521 = extractelement <2 x float> %519, i64 1
  br label %567

522:                                              ; preds = %502
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %523 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1201 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %523
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %1, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1201, ptr noundef nonnull @c__1)
  %524 = load float, ptr %26, align 4, !tbaa !9
  %525 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %526 = insertelement <2 x float> poison, float %524, i64 0
  %527 = shufflevector <2 x float> %526, <2 x float> poison, <2 x i32> zeroinitializer
  %528 = fdiv <2 x float> %525, %527
  store <2 x float> %528, ptr %21, align 8, !tbaa !9
  %529 = extractelement <2 x float> %528, i64 0
  store float %529, ptr %25, align 8, !tbaa !13
  %530 = extractelement <2 x float> %528, i64 1
  br label %567

531:                                              ; preds = %498
  %532 = insertelement <2 x float> poison, float %496, i64 0
  %533 = insertelement <2 x float> %532, float %499, i64 1
  %534 = fdiv <2 x float> %533, %108
  %535 = insertelement <2 x float> poison, float %499, i64 0
  %536 = insertelement <2 x float> %535, float %496, i64 1
  %537 = fcmp ole <2 x float> %536, %534
  %538 = extractelement <2 x i1> %537, i64 0
  %539 = extractelement <2 x i1> %537, i64 1
  %.2914.in = select i1 %501, i1 %539, i1 %538
  %540 = fdiv float %88, %496
  %541 = fcmp ogt float %499, %540
  %542 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1213 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %542
  br i1 %541, label %543, label %559

543:                                              ; preds = %531
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef %gep1213, ptr noundef nonnull @c__1)
  %544 = load float, ptr %26, align 4
  %545 = load float, ptr %24, align 4
  %546 = fcmp oge float %544, %545
  %547 = select i1 %546, float %544, float %545
  %548 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %549 = insertelement <2 x float> poison, float %547, i64 0
  %550 = shufflevector <2 x float> %549, <2 x float> poison, <2 x i32> zeroinitializer
  %551 = fdiv <2 x float> %548, %550
  store <2 x float> %551, ptr %22, align 8, !tbaa !9
  %552 = fcmp ole float %544, %545
  %553 = select i1 %552, float %544, float %545
  %554 = insertelement <2 x float> poison, float %553, i64 0
  %555 = shufflevector <2 x float> %554, <2 x float> poison, <2 x i32> zeroinitializer
  %556 = fdiv <2 x float> %551, %555
  store <2 x float> %556, ptr %21, align 8, !tbaa !9
  %557 = extractelement <2 x float> %556, i64 0
  store float %557, ptr %25, align 8, !tbaa !13
  %558 = extractelement <2 x float> %556, i64 1
  br label %567

559:                                              ; preds = %531
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep1213, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1)
  %560 = load float, ptr %24, align 4, !tbaa !9
  %561 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %562 = insertelement <2 x float> poison, float %560, i64 0
  %563 = shufflevector <2 x float> %562, <2 x float> poison, <2 x i32> zeroinitializer
  %564 = fdiv <2 x float> %561, %563
  store <2 x float> %564, ptr %21, align 8, !tbaa !9
  %565 = extractelement <2 x float> %564, i64 0
  store float %565, ptr %25, align 8, !tbaa !13
  %566 = extractelement <2 x float> %564, i64 1
  br label %567

567:                                              ; preds = %543, %559, %509, %522
  %.sink1431 = phi float [ %558, %543 ], [ %566, %559 ], [ %521, %509 ], [ %530, %522 ]
  %.3915.in = phi i1 [ %.2914.in, %543 ], [ %.2914.in, %559 ], [ %.1913.in, %509 ], [ %.1913.in, %522 ]
  store float %.sink1431, ptr %104, align 4, !tbaa !15
  %568 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %569 = call float @cabsf(<2 x float> noundef %568) #9
  %570 = fneg float %569
  %571 = fcmp oge float %.99451248, %569
  %572 = select i1 %571, float %.99451248, float %569
  %573 = fcmp ole float %569, 0.000000e+00
  %574 = select i1 %573, float %570, float %569
  %575 = load float, ptr %12, align 4, !tbaa !9
  %576 = fcmp ogt float %574, %575
  br i1 %576, label %577, label %808

577:                                              ; preds = %567
  %578 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %579 = call float @cabsf(<2 x float> noundef %578) #9
  %580 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %581 = insertelement <2 x float> poison, float %579, i64 0
  %582 = shufflevector <2 x float> %581, <2 x float> poison, <2 x i32> zeroinitializer
  %583 = fdiv <2 x float> %580, %582
  store <2 x float> %583, ptr %21, align 8, !tbaa !9
  store <2 x float> %583, ptr %28, align 8, !tbaa !9
  %584 = add nsw i32 %.101251, 1
  br i1 %.3915.in, label %585, label %734

585:                                              ; preds = %577
  %586 = load float, ptr %26, align 4, !tbaa !9
  %587 = load float, ptr %24, align 4, !tbaa !9
  %588 = insertelement <2 x float> poison, float %586, i64 0
  %589 = insertelement <2 x float> %588, float %587, i64 1
  %590 = insertelement <2 x float> poison, float %587, i64 0
  %591 = insertelement <2 x float> %590, float %586, i64 1
  %592 = fdiv <2 x float> %589, %591
  %shift1457 = shufflevector <2 x float> %592, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %593 = fsub <2 x float> %592, %shift1457
  %594 = extractelement <2 x float> %593, i64 0
  %595 = fcmp oge float %594, 0.000000e+00
  %596 = fneg float %594
  %597 = select i1 %595, float %594, float %596
  %598 = fmul float %597, -5.000000e-01
  %599 = fdiv float %598, %570
  %600 = fcmp ogt float %586, %499
  %601 = fneg float %599
  %.0890 = select i1 %600, float %601, float %599
  %602 = fcmp oge float %.0890, 0.000000e+00
  %603 = fneg float %.0890
  %604 = select i1 %602, float %.0890, float %603
  %605 = fcmp ogt float %604, %91
  br i1 %605, label %606, label %659

606:                                              ; preds = %585
  %607 = fdiv float 5.000000e-01, %.0890
  store float %607, ptr %30, align 4, !tbaa !9
  store float 1.000000e+00, ptr %31, align 4, !tbaa !9
  %608 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.09.0.vec.extract = extractelement <2 x float> %608, i64 0
  %.sroa.09.4.vec.extract = extractelement <2 x float> %608, i64 1
  %609 = fneg float %.sroa.09.4.vec.extract
  %610 = call ptr @_pCf(ptr noundef nonnull %22)
  %611 = getelementptr inbounds i8, ptr %610, i64 4
  store float %.sroa.09.0.vec.extract, ptr %610, align 4
  store float %609, ptr %611, align 4
  %612 = load float, ptr %30, align 4, !tbaa !9
  %613 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %614 = insertelement <2 x float> poison, float %612, i64 0
  %615 = shufflevector <2 x float> %614, <2 x float> poison, <2 x i32> zeroinitializer
  %616 = fmul <2 x float> %615, %613
  store <2 x float> %616, ptr %21, align 8, !tbaa !9
  %617 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1233 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %617
  call void @crot_(ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef %gep1233, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br i1 %or.cond, label %618, label %629

618:                                              ; preds = %606
  %619 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.08.0.vec.extract = extractelement <2 x float> %619, i64 0
  %.sroa.08.4.vec.extract = extractelement <2 x float> %619, i64 1
  %620 = fneg float %.sroa.08.4.vec.extract
  %621 = call ptr @_pCf(ptr noundef nonnull %22)
  %622 = getelementptr inbounds i8, ptr %621, i64 4
  store float %.sroa.08.0.vec.extract, ptr %621, align 4
  store float %620, ptr %622, align 4
  %623 = load float, ptr %30, align 4, !tbaa !9
  %624 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %625 = insertelement <2 x float> poison, float %623, i64 0
  %626 = shufflevector <2 x float> %625, <2 x float> poison, <2 x i32> zeroinitializer
  %627 = fmul <2 x float> %626, %624
  store <2 x float> %627, ptr %21, align 8, !tbaa !9
  %628 = mul nsw i64 %indvars.iv.next1394, %106
  %gep1237 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %628
  call void @crot_(ptr noundef nonnull %32, ptr noundef %gep1227, ptr noundef nonnull @c__1, ptr noundef %gep1237, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br label %629

629:                                              ; preds = %618, %606
  %630 = load float, ptr %30, align 4
  %631 = load float, ptr %26, align 4, !tbaa !9
  %632 = fpext float %631 to double
  %633 = fneg float %630
  %634 = insertelement <2 x float> poison, float %633, i64 0
  %635 = insertelement <2 x float> %634, float %630, i64 1
  %636 = fmul <2 x float> %592, %635
  %637 = insertelement <2 x float> poison, float %570, i64 0
  %638 = shufflevector <2 x float> %637, <2 x float> poison, <2 x i32> zeroinitializer
  %639 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %636, <2 x float> %638, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %640 = fcmp ole <2 x float> %639, zeroinitializer
  %641 = extractelement <2 x i1> %640, i64 1
  %642 = extractelement <2 x float> %639, i64 1
  %643 = fpext float %642 to double
  %644 = select i1 %641, double 0.000000e+00, double %643
  %sqrt1060 = call double @llvm.sqrt.f64(double %644)
  %645 = fmul double %sqrt1060, %632
  %646 = fptrunc double %645 to float
  store float %646, ptr %495, align 4, !tbaa !9
  %647 = extractelement <2 x i1> %640, i64 0
  %648 = extractelement <2 x float> %639, i64 0
  %649 = fpext float %648 to double
  %650 = select i1 %647, double 0.000000e+00, double %649
  %sqrt1059 = call double @llvm.sqrt.f64(double %650)
  %651 = load float, ptr %24, align 4, !tbaa !9
  %652 = fpext float %651 to double
  %653 = fmul double %sqrt1059, %652
  %654 = fptrunc double %653 to float
  store float %654, ptr %24, align 4, !tbaa !9
  %655 = fcmp oge float %630, 0.000000e+00
  %656 = select i1 %655, float %630, float %633
  %657 = fcmp oge float %.119281249, %656
  %658 = select i1 %657, float %.119281249, float %656
  br label %724

659:                                              ; preds = %585
  %660 = load float, ptr @c_b27, align 4
  %661 = fcmp oge float %660, 0.000000e+00
  %662 = fneg float %660
  br i1 %573, label %663, label %665

663:                                              ; preds = %659
  %664 = select i1 %661, float %660, float %662
  br label %667

665:                                              ; preds = %659
  %666 = select i1 %661, float %662, float %660
  br label %667

667:                                              ; preds = %665, %663
  %668 = phi float [ %664, %663 ], [ %666, %665 ]
  %669 = fneg float %668
  %.0935 = select i1 %600, float %668, float %669
  %670 = fpext float %.0890 to double
  %671 = fpext float %.0935 to double
  %672 = call float @llvm.fmuladd.f32(float %.0890, float %.0890, float 1.000000e+00)
  %673 = fpext float %672 to double
  %sqrt1064 = call double @llvm.sqrt.f64(double %673)
  %674 = call double @llvm.fmuladd.f64(double %671, double %sqrt1064, double %670)
  %675 = fdiv double 1.000000e+00, %674
  %676 = fptrunc double %675 to float
  store float %676, ptr %30, align 4, !tbaa !9
  %677 = call float @llvm.fmuladd.f32(float %676, float %676, float 1.000000e+00)
  %678 = fdiv float 1.000000e+00, %677
  %sqrt1063 = call float @llvm.sqrt.f32(float %678)
  store float %sqrt1063, ptr %31, align 4, !tbaa !9
  %679 = fmul float %sqrt1063, %676
  %680 = fcmp oge float %679, 0.000000e+00
  %681 = fneg float %679
  %682 = select i1 %680, float %679, float %681
  %683 = fcmp oge float %.119281249, %682
  %684 = select i1 %683, float %.119281249, float %682
  %685 = fpext float %586 to double
  %686 = fneg float %676
  %687 = insertelement <2 x float> poison, float %686, i64 0
  %688 = insertelement <2 x float> %687, float %676, i64 1
  %689 = fmul <2 x float> %592, %688
  %690 = insertelement <2 x float> poison, float %570, i64 0
  %691 = shufflevector <2 x float> %690, <2 x float> poison, <2 x i32> zeroinitializer
  %692 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %689, <2 x float> %691, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %693 = fcmp ole <2 x float> %692, zeroinitializer
  %694 = extractelement <2 x i1> %693, i64 1
  %695 = extractelement <2 x float> %692, i64 1
  %696 = fpext float %695 to double
  %697 = select i1 %694, double 0.000000e+00, double %696
  %sqrt1062 = call double @llvm.sqrt.f64(double %697)
  %698 = fmul double %sqrt1062, %685
  %699 = fptrunc double %698 to float
  store float %699, ptr %495, align 4, !tbaa !9
  %700 = extractelement <2 x i1> %693, i64 0
  %701 = extractelement <2 x float> %692, i64 0
  %702 = fpext float %701 to double
  %703 = select i1 %700, double 0.000000e+00, double %702
  %sqrt1061 = call double @llvm.sqrt.f64(double %703)
  %704 = fpext float %587 to double
  %705 = fmul double %sqrt1061, %704
  %706 = fptrunc double %705 to float
  store float %706, ptr %24, align 4, !tbaa !9
  %707 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %707, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %707, i64 1
  %708 = fneg float %.sroa.07.4.vec.extract
  %709 = call ptr @_pCf(ptr noundef nonnull %22)
  %710 = getelementptr inbounds i8, ptr %709, i64 4
  store float %.sroa.07.0.vec.extract, ptr %709, align 4
  store float %708, ptr %710, align 4
  %711 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %712 = insertelement <2 x float> poison, float %679, i64 0
  %713 = shufflevector <2 x float> %712, <2 x float> poison, <2 x i32> zeroinitializer
  %714 = fmul <2 x float> %713, %711
  store <2 x float> %714, ptr %21, align 8, !tbaa !9
  %715 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1225 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %715
  call void @crot_(ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef %gep1225, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br i1 %or.cond, label %716, label %724

716:                                              ; preds = %667
  %717 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.06.0.vec.extract = extractelement <2 x float> %717, i64 0
  %.sroa.06.4.vec.extract = extractelement <2 x float> %717, i64 1
  %718 = fneg float %.sroa.06.4.vec.extract
  %719 = call ptr @_pCf(ptr noundef nonnull %22)
  %720 = getelementptr inbounds i8, ptr %719, i64 4
  store float %.sroa.06.0.vec.extract, ptr %719, align 4
  store float %718, ptr %720, align 4
  %721 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %722 = fmul <2 x float> %713, %721
  store <2 x float> %722, ptr %21, align 8, !tbaa !9
  %723 = mul nsw i64 %indvars.iv.next1394, %106
  %gep1229 = getelementptr %struct.complex, ptr %invariant.gep1157, i64 %723
  call void @crot_(ptr noundef nonnull %32, ptr noundef %gep1227, ptr noundef nonnull @c__1, ptr noundef %gep1229, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %21) #9
  br label %724

724:                                              ; preds = %667, %716, %629
  %.12929 = phi float [ %658, %629 ], [ %684, %716 ], [ %684, %667 ]
  %725 = getelementptr %struct.complex, ptr %5, i64 %indvars.iv1393
  %726 = load <2 x float>, ptr %725, align 4, !tbaa !9
  %727 = fneg <2 x float> %726
  store <2 x float> %727, ptr %22, align 8, !tbaa !9
  %728 = load <2 x float>, ptr %28, align 8, !tbaa !9
  %729 = shufflevector <2 x float> %727, <2 x float> %726, <2 x i32> <i32 1, i32 3>
  %730 = fmul <2 x float> %729, %728
  %731 = shufflevector <2 x float> %730, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %732 = shufflevector <2 x float> %727, <2 x float> poison, <2 x i32> zeroinitializer
  %733 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %732, <2 x float> %728, <2 x float> %731)
  store <2 x float> %733, ptr %21, align 8, !tbaa !9
  store <2 x float> %733, ptr %490, align 4, !tbaa !9
  br label %768

734:                                              ; preds = %577
  %735 = load float, ptr %24, align 4, !tbaa !9
  %736 = load float, ptr %26, align 4, !tbaa !9
  %737 = fcmp ogt float %735, %736
  br i1 %737, label %738, label %751

738:                                              ; preds = %734
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %739 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1221 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %739
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1221, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %740 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %741 = fneg <2 x float> %740
  store <2 x float> %741, ptr %21, align 8, !tbaa !9
  call void @caxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1221, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b27, ptr noundef nonnull %26, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1221, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %742 = call float @llvm.fmuladd.f32(float %569, float %570, float 1.000000e+00)
  %743 = load float, ptr %26, align 4, !tbaa !9
  %744 = fpext float %743 to double
  %745 = fcmp ole float %742, 0.000000e+00
  %746 = select i1 %745, float 0.000000e+00, float %742
  %747 = fpext float %746 to double
  %sqrt1065 = call double @llvm.sqrt.f64(double %747)
  %748 = fmul double %sqrt1065, %744
  %749 = fptrunc double %748 to float
  store float %749, ptr %495, align 4, !tbaa !9
  %750 = load float, ptr %11, align 4, !tbaa !9
  %.inv1051 = fcmp oge float %.119281249, %750
  %..11928 = select i1 %.inv1051, float %.119281249, float %750
  br label %768

751:                                              ; preds = %734
  %752 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1215 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %752
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep1215, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b27, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1199, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %753 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %753, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %753, i64 1
  %754 = fneg float %.sroa.0.4.vec.extract
  %755 = call ptr @_pCf(ptr noundef nonnull %22)
  %756 = getelementptr inbounds i8, ptr %755, i64 4
  store float %.sroa.0.0.vec.extract, ptr %755, align 4
  store float %754, ptr %756, align 4
  %757 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %758 = fneg <2 x float> %757
  store <2 x float> %758, ptr %21, align 8, !tbaa !9
  call void @caxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1199, ptr noundef nonnull @c__1) #9
  call void @clascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b27, ptr noundef nonnull %24, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1199, ptr noundef nonnull %4, ptr noundef nonnull %27) #9
  %759 = call float @llvm.fmuladd.f32(float %569, float %570, float 1.000000e+00)
  %760 = load float, ptr %24, align 4, !tbaa !9
  %761 = fpext float %760 to double
  %762 = fcmp ole float %759, 0.000000e+00
  %763 = select i1 %762, float 0.000000e+00, float %759
  %764 = fpext float %763 to double
  %sqrt1066 = call double @llvm.sqrt.f64(double %764)
  %765 = fmul double %sqrt1066, %761
  %766 = fptrunc double %765 to float
  store float %766, ptr %483, align 4, !tbaa !9
  %767 = load float, ptr %11, align 4, !tbaa !9
  %.inv1050 = fcmp oge float %.119281249, %767
  %..119281038 = select i1 %.inv1050, float %.119281249, float %767
  br label %768

768:                                              ; preds = %738, %751, %724
  %.13930 = phi float [ %.12929, %724 ], [ %..11928, %738 ], [ %..119281038, %751 ]
  %769 = load float, ptr %495, align 4, !tbaa !9
  %770 = load float, ptr %26, align 4, !tbaa !9
  %771 = fdiv float %769, %770
  %772 = fmul float %771, %771
  %773 = fcmp ugt float %772, %sqrtf
  br i1 %773, label %789, label %774

774:                                              ; preds = %768
  %775 = fcmp olt float %770, %90
  %776 = fcmp ogt float %770, %sqrtf994
  %or.cond1039 = and i1 %775, %776
  br i1 %or.cond1039, label %777, label %780

777:                                              ; preds = %774
  %778 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1241 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %778
  %779 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep1241, ptr noundef nonnull @c__1) #9
  br label %.sink.split1432

780:                                              ; preds = %774
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %781 = mul nsw i64 %indvars.iv.next1394, %105
  %gep1239 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %781
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep1239, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %26) #9
  %782 = load float, ptr %30, align 4, !tbaa !9
  %783 = fpext float %782 to double
  %784 = load float, ptr %26, align 4, !tbaa !9
  %785 = fpext float %784 to double
  %786 = call double @sqrt(double noundef %785) #9
  %787 = fmul double %786, %783
  %788 = fptrunc double %787 to float
  br label %.sink.split1432

.sink.split1432:                                  ; preds = %780, %777
  %.sink1433 = phi float [ %779, %777 ], [ %788, %780 ]
  store float %.sink1433, ptr %495, align 4, !tbaa !9
  br label %789

789:                                              ; preds = %.sink.split1432, %768
  %790 = load float, ptr %24, align 4, !tbaa !9
  %791 = fdiv float %790, %499
  %792 = fmul float %791, %791
  %793 = fcmp ugt float %792, %sqrtf
  br i1 %793, label %816, label %794

794:                                              ; preds = %789
  %795 = fcmp olt float %790, %90
  %796 = fcmp ogt float %790, %sqrtf994
  %or.cond1040 = and i1 %795, %796
  br i1 %or.cond1040, label %797, label %799

797:                                              ; preds = %794
  %798 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1) #9
  br label %807

799:                                              ; preds = %794
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep1199, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %24) #9
  %800 = load float, ptr %30, align 4, !tbaa !9
  %801 = fpext float %800 to double
  %802 = load float, ptr %24, align 4, !tbaa !9
  %803 = fpext float %802 to double
  %804 = call double @sqrt(double noundef %803) #9
  %805 = fmul double %804, %801
  %806 = fptrunc double %805 to float
  br label %807

807:                                              ; preds = %799, %797
  %storemerge1011 = phi float [ %806, %799 ], [ %798, %797 ]
  store float %storemerge1011, ptr %24, align 4, !tbaa !9
  store float %storemerge1011, ptr %483, align 4, !tbaa !9
  br label %816

808:                                              ; preds = %567
  %809 = add nsw i32 %.129091250, 1
  %810 = add nsw i32 %.31256, 1
  %811 = add nsw i32 %.19531247, 1
  br label %816

812:                                              ; preds = %494
  %813 = add nsw i32 %.129091250, 1
  %814 = add nsw i32 %.31256, 1
  %815 = add nsw i32 %.19531247, 1
  br label %816

816:                                              ; preds = %808, %807, %789, %812
  %.2954 = phi i32 [ %.19531247, %807 ], [ %.19531247, %789 ], [ %811, %808 ], [ %815, %812 ]
  %.10946 = phi float [ %572, %807 ], [ %572, %789 ], [ %572, %808 ], [ %.99451248, %812 ]
  %.14931 = phi float [ %.13930, %807 ], [ %.13930, %789 ], [ %.119281249, %808 ], [ %.119281249, %812 ]
  %.13910 = phi i32 [ 0, %807 ], [ 0, %789 ], [ %809, %808 ], [ %813, %812 ]
  %.11 = phi i32 [ %584, %807 ], [ %584, %789 ], [ %.101251, %808 ], [ %.101251, %812 ]
  %.4 = phi i32 [ 0, %807 ], [ 0, %789 ], [ %810, %808 ], [ %814, %812 ]
  %.not1013 = icmp slt i32 %.2954, %100
  %or.cond1041 = select i1 %.not1012, i1 true, i1 %.not1013
  br i1 %or.cond1041, label %819, label %817

817:                                              ; preds = %816
  %818 = load float, ptr %24, align 4, !tbaa !9
  store float %818, ptr %483, align 4, !tbaa !9
  br label %.loopexit1071

819:                                              ; preds = %816
  %820 = icmp sle i32 %.4, %101
  %or.cond1042.not = select i1 %.not1012, i1 true, i1 %820
  br i1 %or.cond1042.not, label %491, label %821

821:                                              ; preds = %819
  %822 = load float, ptr %24, align 4, !tbaa !9
  %823 = fneg float %822
  store float %823, ptr %24, align 4, !tbaa !9
  br label %.loopexit1068

.loopexit1068.loopexit:                           ; preds = %491
  %.pre1408 = load float, ptr %24, align 4, !tbaa !9
  br label %.loopexit1068

.loopexit1068:                                    ; preds = %.loopexit1068.loopexit, %486, %821
  %824 = phi float [ %823, %821 ], [ %484, %486 ], [ %.pre1408, %.loopexit1068.loopexit ]
  %.3955 = phi i32 [ %.2954, %821 ], [ %.09521269, %486 ], [ %.2954, %.loopexit1068.loopexit ]
  %.11947 = phi float [ %.10946, %821 ], [ %.89441270, %486 ], [ %.10946, %.loopexit1068.loopexit ]
  %.15932 = phi float [ %.14931, %821 ], [ %.109271271, %486 ], [ %.14931, %.loopexit1068.loopexit ]
  %.14911 = phi i32 [ 0, %821 ], [ %.119081272, %486 ], [ %.13910, %.loopexit1068.loopexit ]
  %.12 = phi i32 [ %.11, %821 ], [ %.91273, %486 ], [ %.11, %.loopexit1068.loopexit ]
  store float %824, ptr %483, align 4, !tbaa !9
  br label %834

825:                                              ; preds = %482
  %826 = fcmp oeq float %484, 0.000000e+00
  br i1 %826, label %827, label %831

827:                                              ; preds = %825
  store i32 %480, ptr %20, align 4, !tbaa !5
  %828 = load i32, ptr %2, align 4, !tbaa !5
  %.1043 = call i32 @llvm.smin.i32(i32 %480, i32 %828)
  %829 = sub i32 %.119081272, %478
  %830 = add i32 %829, %.1043
  br label %831

831:                                              ; preds = %827, %825
  %.15 = phi i32 [ %830, %827 ], [ %.119081272, %825 ]
  %832 = fcmp olt float %484, 0.000000e+00
  br i1 %832, label %833, label %834

833:                                              ; preds = %831
  br label %834

834:                                              ; preds = %.loopexit1068, %833, %831
  %.4956 = phi i32 [ %.3955, %.loopexit1068 ], [ %.09521269, %833 ], [ %.09521269, %831 ]
  %.12948 = phi float [ %.11947, %.loopexit1068 ], [ %.89441270, %833 ], [ %.89441270, %831 ]
  %.16933 = phi float [ %.15932, %.loopexit1068 ], [ %.109271271, %833 ], [ %.109271271, %831 ]
  %.16 = phi i32 [ %.14911, %.loopexit1068 ], [ 0, %833 ], [ %.15, %831 ]
  %.13 = phi i32 [ %.12, %.loopexit1068 ], [ %.91273, %833 ], [ %.91273, %831 ]
  %indvars.iv.next1397 = add nsw i64 %indvars.iv1396, 1
  %.not1006.not = icmp slt i64 %indvars.iv1396, %481
  br i1 %.not1006.not, label %482, label %._crit_edge1281, !llvm.loop !20

._crit_edge1281:                                  ; preds = %834, %.lr.ph1297
  %.8944.lcssa = phi float [ %.79431289, %.lr.ph1297 ], [ %.12948, %834 ]
  %.10927.lcssa = phi float [ %.99261290, %.lr.ph1297 ], [ %.16933, %834 ]
  %.11908.lcssa = phi i32 [ %.109071291, %.lr.ph1297 ], [ %.16, %834 ]
  %.9.lcssa = phi i32 [ %.81292, %.lr.ph1297 ], [ %.13, %834 ]
  %835 = add nuw nsw i32 %.08911293, 1
  %.not1004.not = icmp slt i32 %.08911293, %.0887
  %indvars.iv.next1392 = add i32 %indvars.iv1391, %spec.select
  br i1 %.not1004.not, label %.lr.ph1297, label %.loopexit1071, !llvm.loop !21

.loopexit1071:                                    ; preds = %._crit_edge1281, %._crit_edge1191, %817
  %.13949 = phi float [ %.10946, %817 ], [ %.1937.lcssa, %._crit_edge1191 ], [ %.8944.lcssa, %._crit_edge1281 ]
  %.17934 = phi float [ %.14931, %817 ], [ %.1918.lcssa, %._crit_edge1191 ], [ %.10927.lcssa, %._crit_edge1281 ]
  %.17 = phi i32 [ 0, %817 ], [ %.1898.lcssa, %._crit_edge1191 ], [ %.11908.lcssa, %._crit_edge1281 ]
  %.14 = phi i32 [ %.11, %817 ], [ %.1893.lcssa, %._crit_edge1191 ], [ %.9.lcssa, %._crit_edge1281 ]
  %836 = load i32, ptr %2, align 4, !tbaa !5
  %.1044 = call i32 @llvm.smin.i32(i32 %475, i32 %836)
  %.not10151304.not = icmp slt i32 %115, %.1044
  br i1 %.not10151304.not, label %.lr.ph1307.preheader, label %.loopexit1070

.lr.ph1307.preheader:                             ; preds = %.loopexit1071
  %837 = sext i32 %.1044 to i64
  %smax = call i64 @llvm.smax.i64(i64 %837, i64 %111)
  %838 = add i64 %smax, 1
  %839 = sub i64 %838, %111
  %min.iters.check = icmp ult i64 %839, 8
  br i1 %min.iters.check, label %.lr.ph1307.preheader1458, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1307.preheader
  %n.vec = and i64 %839, -8
  %ind.end = add i64 %n.vec, %112
  %invariant.gep = getelementptr float, ptr %33, i64 %112
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %gep1491 = getelementptr float, ptr %invariant.gep, i64 %index
  %840 = getelementptr inbounds i8, ptr %gep1491, i64 16
  %wide.load = load <4 x float>, ptr %gep1491, align 4, !tbaa !9
  %wide.load1456 = load <4 x float>, ptr %840, align 4, !tbaa !9
  %841 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %842 = fcmp oge <4 x float> %wide.load1456, zeroinitializer
  %843 = fneg <4 x float> %wide.load
  %844 = fneg <4 x float> %wide.load1456
  %845 = select <4 x i1> %841, <4 x float> %wide.load, <4 x float> %843
  %846 = select <4 x i1> %842, <4 x float> %wide.load1456, <4 x float> %844
  store <4 x float> %845, ptr %gep1491, align 4, !tbaa !9
  store <4 x float> %846, ptr %840, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %847 = icmp eq i64 %index.next, %n.vec
  br i1 %847, label %middle.block, label %vector.body, !llvm.loop !22

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %839, %n.vec
  br i1 %cmp.n, label %.loopexit1070, label %.lr.ph1307.preheader1458

.lr.ph1307.preheader1458:                         ; preds = %middle.block, %.lr.ph1307.preheader
  %indvars.iv1399.ph = phi i64 [ %112, %.lr.ph1307.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph1307

.lr.ph1307:                                       ; preds = %.lr.ph1307.preheader1458, %.lr.ph1307
  %indvars.iv1399 = phi i64 [ %indvars.iv.next1400, %.lr.ph1307 ], [ %indvars.iv1399.ph, %.lr.ph1307.preheader1458 ]
  %848 = getelementptr inbounds float, ptr %33, i64 %indvars.iv1399
  %849 = load float, ptr %848, align 4, !tbaa !9
  %850 = fcmp oge float %849, 0.000000e+00
  %851 = fneg float %849
  %852 = select i1 %850, float %849, float %851
  store float %852, ptr %848, align 4, !tbaa !9
  %indvars.iv.next1400 = add nsw i64 %indvars.iv1399, 1
  %.not1015.not = icmp slt i64 %indvars.iv1399, %837
  br i1 %.not1015.not, label %.lr.ph1307, label %.loopexit1070, !llvm.loop !25

._crit_edge1320:                                  ; preds = %.loopexit1070, %.._crit_edge1320_crit_edge
  %853 = phi i32 [ %.pre1409, %.._crit_edge1320_crit_edge ], [ %836, %.loopexit1070 ]
  %.0936.lcssa = phi float [ 0.000000e+00, %.._crit_edge1320_crit_edge ], [ %.13949, %.loopexit1070 ]
  %.0917.lcssa = phi float [ 0.000000e+00, %.._crit_edge1320_crit_edge ], [ %.17934, %.loopexit1070 ]
  %.0897.lcssa = phi i32 [ 0, %.._crit_edge1320_crit_edge ], [ %.17, %.loopexit1070 ]
  %.0892.lcssa = phi i32 [ 0, %.._crit_edge1320_crit_edge ], [ %.14, %.loopexit1070 ]
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds float, ptr %33, i64 %854
  %856 = load float, ptr %855, align 4, !tbaa !9
  %857 = fcmp olt float %856, %90
  %858 = fcmp ogt float %856, %sqrtf994
  %or.cond1045 = and i1 %857, %858
  br i1 %or.cond1045, label %859, label %863

859:                                              ; preds = %._crit_edge1320
  %860 = mul nsw i32 %853, %35
  %861 = sext i32 %860 to i64
  %gep1332 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %861
  %862 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep1332, ptr noundef nonnull @c__1) #9
  br label %873

863:                                              ; preds = %._crit_edge1320
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %864 = mul nsw i32 %853, %35
  %865 = sext i32 %864 to i64
  %gep1330 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %865
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep1330, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %24) #9
  %866 = load float, ptr %30, align 4, !tbaa !9
  %867 = fpext float %866 to double
  %868 = load float, ptr %24, align 4, !tbaa !9
  %869 = fpext float %868 to double
  %870 = call double @sqrt(double noundef %869) #9
  %871 = fmul double %870, %867
  %872 = fptrunc double %871 to float
  br label %873

873:                                              ; preds = %863, %859
  %.sink1434 = phi float [ %872, %863 ], [ %862, %859 ]
  %874 = load i32, ptr %2, align 4, !tbaa !5
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds float, ptr %33, i64 %875
  store float %.sink1434, ptr %876, align 4, !tbaa !9
  %877 = icmp slt i32 %.08801335, %.09501334
  %878 = fcmp ugt float %.0936.lcssa, %sqrtf995
  %.not999 = icmp sgt i32 %.0892.lcssa, %874
  %or.cond1438 = select i1 %878, i1 %.not999, i1 false
  %spec.select1439 = select i1 %or.cond1438, i32 %.09501334, i32 %.08801335
  %.1951 = select i1 %877, i32 %spec.select1439, i32 %.09501334
  %879 = add nsw i32 %.1951, 1
  %880 = icmp sgt i32 %.08801335, %879
  br i1 %880, label %881, label %896

881:                                              ; preds = %873
  %882 = fpext float %.0936.lcssa to double
  %883 = sitofp i32 %874 to float
  %884 = fpext float %883 to double
  %885 = call double @sqrt(double noundef %884) #9
  %886 = load float, ptr %12, align 4, !tbaa !9
  %887 = fpext float %886 to double
  %888 = fmul double %885, %887
  %889 = fcmp ogt double %888, %882
  br i1 %889, label %890, label %896

890:                                              ; preds = %881
  %891 = load i32, ptr %2, align 4, !tbaa !5
  %892 = sitofp i32 %891 to float
  %893 = fmul float %.0936.lcssa, %892
  %894 = fmul float %.0917.lcssa, %893
  %895 = fcmp uge float %894, %886
  %.not1000 = icmp slt i32 %.0897.lcssa, %96
  %or.cond1046 = select i1 %895, i1 %.not1000, i1 false
  br i1 %or.cond1046, label %897, label %.loopexit1072

896:                                              ; preds = %881, %873
  %.not1000.old = icmp slt i32 %.0897.lcssa, %96
  br i1 %.not1000.old, label %897, label %.loopexit1072

897:                                              ; preds = %890, %896
  %898 = add nuw nsw i32 %.08801335, 1
  %.not997.not = icmp slt i32 %.08801335, %102
  br i1 %.not997.not, label %109, label %._crit_edge1342.loopexit, !llvm.loop !26

._crit_edge1342.loopexit:                         ; preds = %897
  %.pre1410 = load i32, ptr %13, align 4, !tbaa !5
  br label %._crit_edge1342

._crit_edge1342:                                  ; preds = %._crit_edge1342.loopexit, %84
  %899 = phi i32 [ %.pre1410, %._crit_edge1342.loopexit ], [ %102, %84 ]
  %900 = add nsw i32 %899, -1
  br label %.loopexit1072

.loopexit1072:                                    ; preds = %890, %896, %._crit_edge1342
  %storemerge = phi i32 [ %900, %._crit_edge1342 ], [ 0, %896 ], [ 0, %890 ]
  store i32 %storemerge, ptr %16, align 4, !tbaa !5
  %901 = load i32, ptr %2, align 4, !tbaa !5
  %invariant.gep1347 = getelementptr i8, ptr %40, i64 8
  %.not10011351 = icmp slt i32 %901, 2
  br i1 %.not10011351, label %.loopexit, label %.lr.ph1354

.lr.ph1354:                                       ; preds = %.loopexit1072
  %902 = add nsw i32 %901, -1
  %903 = sext i32 %35 to i64
  %904 = sext i32 %38 to i64
  %905 = sext i32 %902 to i64
  br label %906

906:                                              ; preds = %.lr.ph1354, %932
  %indvars.iv1402 = phi i64 [ 1, %.lr.ph1354 ], [ %indvars.iv.next1403, %932 ]
  %907 = load i32, ptr %2, align 4, !tbaa !5
  %908 = trunc nuw nsw i64 %indvars.iv1402 to i32
  %reass.sub1355 = sub i32 %907, %908
  %909 = add i32 %reass.sub1355, 1
  store i32 %909, ptr %19, align 4, !tbaa !5
  %910 = getelementptr inbounds float, ptr %33, i64 %indvars.iv1402
  %911 = call i32 @isamax_(ptr noundef nonnull %19, ptr noundef nonnull %910, ptr noundef nonnull @c__1) #9
  %912 = trunc i64 %indvars.iv1402 to i32
  %913 = add i32 %912, -1
  %914 = add i32 %913, %911
  %915 = zext i32 %914 to i64
  %.not1002 = icmp eq i64 %indvars.iv1402, %915
  br i1 %.not1002, label %932, label %916

916:                                              ; preds = %906
  %917 = load float, ptr %910, align 4, !tbaa !9
  store float %917, ptr %29, align 4, !tbaa !9
  %918 = sext i32 %914 to i64
  %919 = getelementptr inbounds float, ptr %33, i64 %918
  %920 = load float, ptr %919, align 4, !tbaa !9
  store float %920, ptr %910, align 4, !tbaa !9
  store float %917, ptr %919, align 4, !tbaa !9
  %921 = getelementptr inbounds %struct.complex, ptr %34, i64 %indvars.iv1402
  %922 = load <2 x float>, ptr %921, align 4, !tbaa !9
  store <2 x float> %922, ptr %25, align 8, !tbaa !9
  %923 = getelementptr inbounds %struct.complex, ptr %34, i64 %918
  %924 = load <2 x float>, ptr %923, align 4, !tbaa !9
  store <2 x float> %924, ptr %921, align 4, !tbaa !9
  store i32 %914, ptr %19, align 4, !tbaa !5
  store <2 x float> %922, ptr %923, align 4, !tbaa !9
  %925 = mul nsw i64 %indvars.iv1402, %903
  %gep1344 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %925
  %926 = mul nsw i32 %914, %35
  %927 = sext i32 %926 to i64
  %gep1346 = getelementptr %struct.complex, ptr %invariant.gep1329, i64 %927
  call void @cswap_(ptr noundef nonnull %1, ptr noundef %gep1344, ptr noundef nonnull @c__1, ptr noundef %gep1346, ptr noundef nonnull @c__1) #9
  br i1 %or.cond, label %928, label %932

928:                                              ; preds = %916
  %929 = mul nsw i64 %indvars.iv1402, %904
  %gep1348 = getelementptr %struct.complex, ptr %invariant.gep1347, i64 %929
  %930 = mul nsw i32 %914, %38
  %931 = sext i32 %930 to i64
  %gep1350 = getelementptr %struct.complex, ptr %invariant.gep1347, i64 %931
  call void @cswap_(ptr noundef nonnull %32, ptr noundef %gep1348, ptr noundef nonnull @c__1, ptr noundef %gep1350, ptr noundef nonnull @c__1) #9
  br label %932

932:                                              ; preds = %906, %928, %916
  %indvars.iv.next1403 = add nuw nsw i64 %indvars.iv1402, 1
  %.not1001.not = icmp slt i64 %indvars.iv1402, %905
  br i1 %.not1001.not, label %906, label %.loopexit, !llvm.loop !27

.loopexit:                                        ; preds = %932, %.loopexit1072, %76
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  ret void
}

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

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

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

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

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

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

declare float @scnrm2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @cdotc_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #7

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #7

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

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

declare float @sqrtf(float) local_unnamed_addr

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #8

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.sqrt.f32(float) #8

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #8

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

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

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


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass