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

; 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_b18 = external hidden global float, align 4

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

141:                                              ; preds = %18
  %142 = load i32, ptr %73, align 4, !tbaa !9
  %143 = icmp ne i32 %142, 0
  br i1 %143, label %150, label %144

144:                                              ; preds = %141
  %145 = load ptr, ptr %19, align 8, !tbaa !5
  %146 = call i32 @lsame_(ptr noundef %145, ptr noundef @.str.2)
  %147 = icmp ne i32 %146, 0
  br i1 %147, label %150, label %148

148:                                              ; preds = %144
  %149 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -1, ptr %149, align 4, !tbaa !9
  br label %247

150:                                              ; preds = %144, %141, %18
  %151 = load ptr, ptr %20, align 8, !tbaa !5
  %152 = load i32, ptr %151, align 4, !tbaa !9
  %153 = icmp slt i32 %152, 0
  br i1 %153, label %154, label %156

154:                                              ; preds = %150
  %155 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -2, ptr %155, align 4, !tbaa !9
  br label %246

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

160:                                              ; preds = %156
  %161 = load ptr, ptr %21, align 8, !tbaa !5
  %162 = load i32, ptr %161, align 4, !tbaa !9
  %163 = load ptr, ptr %20, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = icmp sgt i32 %162, %164
  br i1 %165, label %166, label %168

166:                                              ; preds = %160, %156
  %167 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -3, ptr %167, align 4, !tbaa !9
  br label %245

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

172:                                              ; preds = %168
  %173 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -4, ptr %173, align 4, !tbaa !9
  br label %244

174:                                              ; preds = %168
  %175 = load ptr, ptr %24, align 8, !tbaa !5
  %176 = load i32, ptr %175, align 4, !tbaa !9
  %177 = load ptr, ptr %20, align 8, !tbaa !5
  %178 = load i32, ptr %177, align 4, !tbaa !9
  %179 = icmp slt i32 %176, %178
  br i1 %179, label %180, label %182

180:                                              ; preds = %174
  %181 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -6, ptr %181, align 4, !tbaa !9
  br label %243

182:                                              ; preds = %174
  %183 = load i32, ptr %74, align 4, !tbaa !9
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %188, label %185

185:                                              ; preds = %182
  %186 = load i32, ptr %73, align 4, !tbaa !9
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %188, label %194

188:                                              ; preds = %185, %182
  %189 = load ptr, ptr %27, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = icmp slt i32 %190, 0
  br i1 %191, label %192, label %194

192:                                              ; preds = %188
  %193 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -9, ptr %193, align 4, !tbaa !9
  br label %242

194:                                              ; preds = %188, %185
  %195 = load i32, ptr %74, align 4, !tbaa !9
  %196 = icmp ne i32 %195, 0
  br i1 %196, label %197, label %203

197:                                              ; preds = %194
  %198 = load ptr, ptr %29, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = load ptr, ptr %21, align 8, !tbaa !5
  %201 = load i32, ptr %200, align 4, !tbaa !9
  %202 = icmp slt i32 %199, %201
  br i1 %202, label %212, label %203

203:                                              ; preds = %197, %194
  %204 = load i32, ptr %73, align 4, !tbaa !9
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %206, label %214

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

212:                                              ; preds = %206, %197
  %213 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -11, ptr %213, align 4, !tbaa !9
  br label %241

214:                                              ; preds = %206, %203
  %215 = load ptr, ptr %32, align 8, !tbaa !5
  %216 = load float, ptr %215, align 4, !tbaa !11
  %217 = load ptr, ptr %30, align 8, !tbaa !5
  %218 = load float, ptr %217, align 4, !tbaa !11
  %219 = fcmp ole float %216, %218
  br i1 %219, label %220, label %222

220:                                              ; preds = %214
  %221 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -14, ptr %221, align 4, !tbaa !9
  br label %240

222:                                              ; preds = %214
  %223 = load ptr, ptr %33, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = icmp slt i32 %224, 0
  br i1 %225, label %226, label %228

226:                                              ; preds = %222
  %227 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -15, ptr %227, align 4, !tbaa !9
  br label %239

228:                                              ; preds = %222
  %229 = load ptr, ptr %35, align 8, !tbaa !5
  %230 = load i32, ptr %229, align 4, !tbaa !9
  %231 = load ptr, ptr %20, align 8, !tbaa !5
  %232 = load i32, ptr %231, align 4, !tbaa !9
  %233 = icmp slt i32 %230, %232
  br i1 %233, label %234, label %236

234:                                              ; preds = %228
  %235 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -17, ptr %235, align 4, !tbaa !9
  br label %238

236:                                              ; preds = %228
  %237 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %237, align 4, !tbaa !9
  br label %238

238:                                              ; preds = %236, %234
  br label %239

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

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

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

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

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

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

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

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

247:                                              ; preds = %246, %148
  %248 = load ptr, ptr %36, 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 %36, align 8, !tbaa !5
  %253 = load i32, ptr %252, align 4, !tbaa !9
  %254 = sub nsw i32 0, %253
  store i32 %254, ptr %41, align 4, !tbaa !9
  %255 = call i32 @xerbla_(ptr noundef @.str.3, ptr noundef %41, i32 noundef 6)
  store i32 1, ptr %99, align 4
  br label %1870

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

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

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

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

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

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

272:                                              ; preds = %269
  %273 = load i32, ptr %73, 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 %74, align 4, !tbaa !9
  %278 = load ptr, ptr %30, 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 %96, align 4, !tbaa !11
  %283 = load ptr, ptr %31, 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 %76, align 4, !tbaa !11
  %288 = load ptr, ptr %31, align 8, !tbaa !5
  %289 = load float, ptr %288, align 4, !tbaa !11
  %290 = load ptr, ptr %30, align 8, !tbaa !5
  %291 = load float, ptr %290, align 4, !tbaa !11
  %292 = fdiv float %289, %291
  store float %292, ptr %72, align 4, !tbaa !11
  %293 = load ptr, ptr %31, align 8, !tbaa !5
  %294 = load float, ptr %293, align 4, !tbaa !11
  %295 = fdiv float 1.000000e+00, %294
  store float %295, ptr %89, align 4, !tbaa !11
  %296 = load float, ptr %76, align 4, !tbaa !11
  %297 = fdiv float 1.000000e+00, %296
  store float %297, ptr %95, align 4, !tbaa !11
  %298 = load float, ptr %96, align 4, !tbaa !11
  %299 = fdiv float 1.000000e+00, %298
  store float %299, ptr %59, align 4, !tbaa !11
  %300 = load ptr, ptr %32, 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 %98, align 4, !tbaa !11
  %305 = load ptr, ptr %22, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = load ptr, ptr %21, align 8, !tbaa !5
  %308 = load i32, ptr %307, align 4, !tbaa !9
  %309 = load ptr, ptr %22, align 8, !tbaa !5
  %310 = load i32, ptr %309, align 4, !tbaa !9
  %311 = sub nsw i32 %308, %310
  %312 = mul nsw i32 %306, %311
  store i32 %312, ptr %85, align 4, !tbaa !9
  store i32 0, ptr %86, align 4, !tbaa !9
  %313 = load ptr, ptr %21, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = icmp sle i32 8, %314
  br i1 %315, label %316, label %317

316:                                              ; preds = %275
  br label %320

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

320:                                              ; preds = %317, %316
  %321 = phi i32 [ 8, %316 ], [ %319, %317 ]
  store i32 %321, ptr %90, align 4, !tbaa !9
  %322 = load ptr, ptr %22, align 8, !tbaa !5
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = load i32, ptr %90, align 4, !tbaa !9
  %325 = sdiv i32 %323, %324
  store i32 %325, ptr %57, align 4, !tbaa !9
  %326 = load i32, ptr %57, align 4, !tbaa !9
  %327 = load i32, ptr %90, align 4, !tbaa !9
  %328 = mul nsw i32 %326, %327
  %329 = load ptr, ptr %22, align 8, !tbaa !5
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = icmp ne i32 %328, %330
  br i1 %331, label %332, label %335

332:                                              ; preds = %320
  %333 = load i32, ptr %57, align 4, !tbaa !9
  %334 = add nsw i32 %333, 1
  store i32 %334, ptr %57, align 4, !tbaa !9
  br label %335

335:                                              ; preds = %332, %320
  %336 = load ptr, ptr %21, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 4, !tbaa !9
  %338 = load ptr, ptr %22, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = sub nsw i32 %337, %339
  %341 = load i32, ptr %90, align 4, !tbaa !9
  %342 = sdiv i32 %340, %341
  store i32 %342, ptr %53, align 4, !tbaa !9
  %343 = load i32, ptr %53, align 4, !tbaa !9
  %344 = load i32, ptr %90, align 4, !tbaa !9
  %345 = mul nsw i32 %343, %344
  %346 = load ptr, ptr %21, align 8, !tbaa !5
  %347 = load i32, ptr %346, align 4, !tbaa !9
  %348 = load ptr, ptr %22, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = sub nsw i32 %347, %349
  %351 = icmp ne i32 %345, %350
  br i1 %351, label %352, label %355

352:                                              ; preds = %335
  %353 = load i32, ptr %53, align 4, !tbaa !9
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr %53, align 4, !tbaa !9
  br label %355

355:                                              ; preds = %352, %335
  %356 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %356, ptr %41, align 4, !tbaa !9
  %357 = load i32, ptr %41, align 4, !tbaa !9
  %358 = load i32, ptr %41, align 4, !tbaa !9
  %359 = mul nsw i32 %357, %358
  %360 = add nsw i32 %359, 1
  store i32 %360, ptr %81, align 4, !tbaa !9
  %361 = load i32, ptr %90, align 4, !tbaa !9
  %362 = icmp sle i32 5, %361
  br i1 %362, label %363, label %364

363:                                              ; preds = %355
  br label %366

364:                                              ; preds = %355
  %365 = load i32, ptr %90, align 4, !tbaa !9
  br label %366

366:                                              ; preds = %364, %363
  %367 = phi i32 [ 5, %363 ], [ %365, %364 ]
  store i32 %367, ptr %97, align 4, !tbaa !9
  store i32 0, ptr %80, align 4, !tbaa !9
  %368 = load ptr, ptr %33, align 8, !tbaa !5
  %369 = load i32, ptr %368, align 4, !tbaa !9
  store i32 %369, ptr %41, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %370

370:                                              ; preds = %1723, %366
  %371 = load i32, ptr %65, align 4, !tbaa !9
  %372 = load i32, ptr %41, align 4, !tbaa !9
  %373 = icmp sle i32 %371, %372
  br i1 %373, label %374, label %1726

374:                                              ; preds = %370
  store float 0.000000e+00, ptr %82, align 4, !tbaa !11
  store float 0.000000e+00, ptr %84, align 4, !tbaa !11
  store i32 0, ptr %87, align 4, !tbaa !9
  store i32 0, ptr %86, align 4, !tbaa !9
  store i32 0, ptr %61, align 4, !tbaa !9
  %375 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %375, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %376

376:                                              ; preds = %1613, %374
  %377 = load i32, ptr %92, align 4, !tbaa !9
  %378 = load i32, ptr %42, align 4, !tbaa !9
  %379 = icmp sle i32 %377, %378
  br i1 %379, label %380, label %1616

380:                                              ; preds = %376
  %381 = load i32, ptr %92, align 4, !tbaa !9
  %382 = sub nsw i32 %381, 1
  %383 = load i32, ptr %90, align 4, !tbaa !9
  %384 = mul nsw i32 %382, %383
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr %91, align 4, !tbaa !9
  %386 = load i32, ptr %92, align 4, !tbaa !9
  %387 = sub nsw i32 %386, 1
  %388 = load i32, ptr %90, align 4, !tbaa !9
  %389 = mul nsw i32 %387, %388
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %91, align 4, !tbaa !9
  %391 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %391, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %88, align 4, !tbaa !9
  br label %392

392:                                              ; preds = %1565, %380
  %393 = load i32, ptr %88, align 4, !tbaa !9
  %394 = load i32, ptr %43, align 4, !tbaa !9
  %395 = icmp sle i32 %393, %394
  br i1 %395, label %396, label %1568

396:                                              ; preds = %392
  %397 = load i32, ptr %88, align 4, !tbaa !9
  %398 = sub nsw i32 %397, 1
  %399 = load i32, ptr %90, align 4, !tbaa !9
  %400 = mul nsw i32 %398, %399
  %401 = load ptr, ptr %22, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = add nsw i32 %400, %402
  %404 = add nsw i32 %403, 1
  store i32 %404, ptr %93, align 4, !tbaa !9
  store i32 0, ptr %79, align 4, !tbaa !9
  %405 = load i32, ptr %91, align 4, !tbaa !9
  %406 = load i32, ptr %90, align 4, !tbaa !9
  %407 = add nsw i32 %405, %406
  %408 = sub nsw i32 %407, 1
  store i32 %408, ptr %45, align 4, !tbaa !9
  %409 = load i32, ptr %45, align 4, !tbaa !9
  %410 = load ptr, ptr %22, align 8, !tbaa !5
  %411 = load i32, ptr %410, align 4, !tbaa !9
  %412 = icmp sle i32 %409, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %396
  %414 = load i32, ptr %45, align 4, !tbaa !9
  br label %418

415:                                              ; preds = %396
  %416 = load ptr, ptr %22, align 8, !tbaa !5
  %417 = load i32, ptr %416, align 4, !tbaa !9
  br label %418

418:                                              ; preds = %415, %413
  %419 = phi i32 [ %414, %413 ], [ %417, %415 ]
  store i32 %419, ptr %44, align 4, !tbaa !9
  %420 = load i32, ptr %91, align 4, !tbaa !9
  store i32 %420, ptr %66, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %1561, %418
  %422 = load i32, ptr %66, align 4, !tbaa !9
  %423 = load i32, ptr %44, align 4, !tbaa !9
  %424 = icmp sle i32 %422, %423
  br i1 %424, label %425, label %1564

425:                                              ; preds = %421
  %426 = load ptr, ptr %26, align 8, !tbaa !5
  %427 = load i32, ptr %66, align 4, !tbaa !9
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds float, ptr %426, i64 %428
  %430 = load float, ptr %429, align 4, !tbaa !11
  store float %430, ptr %54, align 4, !tbaa !11
  %431 = load float, ptr %54, align 4, !tbaa !11
  %432 = fcmp ogt float %431, 0.000000e+00
  br i1 %432, label %433, label %1531

433:                                              ; preds = %425
  store i32 0, ptr %61, align 4, !tbaa !9
  %434 = load i32, ptr %93, align 4, !tbaa !9
  %435 = load i32, ptr %90, align 4, !tbaa !9
  %436 = add nsw i32 %434, %435
  %437 = sub nsw i32 %436, 1
  store i32 %437, ptr %46, align 4, !tbaa !9
  %438 = load i32, ptr %46, align 4, !tbaa !9
  %439 = load ptr, ptr %21, align 8, !tbaa !5
  %440 = load i32, ptr %439, align 4, !tbaa !9
  %441 = icmp sle i32 %438, %440
  br i1 %441, label %442, label %444

442:                                              ; preds = %433
  %443 = load i32, ptr %46, align 4, !tbaa !9
  br label %447

444:                                              ; preds = %433
  %445 = load ptr, ptr %21, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 4, !tbaa !9
  br label %447

447:                                              ; preds = %444, %442
  %448 = phi i32 [ %443, %442 ], [ %446, %444 ]
  store i32 %448, ptr %45, align 4, !tbaa !9
  %449 = load i32, ptr %93, align 4, !tbaa !9
  store i32 %449, ptr %67, align 4, !tbaa !9
  br label %450

450:                                              ; preds = %1521, %447
  %451 = load i32, ptr %67, align 4, !tbaa !9
  %452 = load i32, ptr %45, align 4, !tbaa !9
  %453 = icmp sle i32 %451, %452
  br i1 %453, label %454, label %1524

454:                                              ; preds = %450
  %455 = load ptr, ptr %26, align 8, !tbaa !5
  %456 = load i32, ptr %67, align 4, !tbaa !9
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds float, ptr %455, i64 %457
  %459 = load float, ptr %458, align 4, !tbaa !11
  store float %459, ptr %56, align 4, !tbaa !11
  %460 = load float, ptr %56, align 4, !tbaa !11
  %461 = fcmp ogt float %460, 0.000000e+00
  br i1 %461, label %462, label %1488

462:                                              ; preds = %454
  %463 = load float, ptr %54, align 4, !tbaa !11
  store float %463, ptr %62, align 4, !tbaa !11
  %464 = load float, ptr %56, align 4, !tbaa !11
  %465 = fcmp oge float %464, 1.000000e+00
  br i1 %465, label %466, label %574

466:                                              ; preds = %462
  %467 = load float, ptr %54, align 4, !tbaa !11
  %468 = load float, ptr %56, align 4, !tbaa !11
  %469 = fcmp oge float %467, %468
  br i1 %469, label %470, label %477

470:                                              ; preds = %466
  %471 = load float, ptr %72, align 4, !tbaa !11
  %472 = load float, ptr %54, align 4, !tbaa !11
  %473 = fmul float %471, %472
  %474 = load float, ptr %56, align 4, !tbaa !11
  %475 = fcmp ole float %473, %474
  %476 = zext i1 %475 to i32
  store i32 %476, ptr %75, align 4, !tbaa !9
  br label %484

477:                                              ; preds = %466
  %478 = load float, ptr %72, align 4, !tbaa !11
  %479 = load float, ptr %56, align 4, !tbaa !11
  %480 = fmul float %478, %479
  %481 = load float, ptr %54, align 4, !tbaa !11
  %482 = fcmp ole float %480, %481
  %483 = zext i1 %482 to i32
  store i32 %483, ptr %75, align 4, !tbaa !9
  br label %484

484:                                              ; preds = %477, %470
  %485 = load float, ptr %54, align 4, !tbaa !11
  %486 = load float, ptr %89, align 4, !tbaa !11
  %487 = load float, ptr %56, align 4, !tbaa !11
  %488 = fdiv float %486, %487
  %489 = fcmp olt float %485, %488
  br i1 %489, label %490, label %532

490:                                              ; preds = %484
  %491 = load ptr, ptr %20, align 8, !tbaa !5
  %492 = load ptr, ptr %23, align 8, !tbaa !5
  %493 = load i32, ptr %66, align 4, !tbaa !9
  %494 = load i32, ptr %37, align 4, !tbaa !9
  %495 = mul nsw i32 %493, %494
  %496 = add nsw i32 %495, 1
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds %struct.complex, ptr %492, i64 %497
  %499 = load ptr, ptr %23, align 8, !tbaa !5
  %500 = load i32, ptr %67, align 4, !tbaa !9
  %501 = load i32, ptr %37, align 4, !tbaa !9
  %502 = mul nsw i32 %500, %501
  %503 = add nsw i32 %502, 1
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds %struct.complex, ptr %499, i64 %504
  call void @cdotc_(ptr noundef %52, ptr noundef %491, ptr noundef %498, ptr noundef @c__1, ptr noundef %505, ptr noundef @c__1)
  %506 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %507 = load float, ptr %506, align 4, !tbaa !13
  %508 = load float, ptr %56, align 4, !tbaa !11
  %509 = fdiv float %507, %508
  %510 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %509, ptr %510, align 4, !tbaa !13
  %511 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %512 = load float, ptr %511, align 4, !tbaa !15
  %513 = load float, ptr %56, align 4, !tbaa !11
  %514 = fdiv float %512, %513
  %515 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %514, ptr %515, align 4, !tbaa !15
  %516 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %517 = load float, ptr %516, align 4, !tbaa !13
  %518 = load float, ptr %54, align 4, !tbaa !11
  %519 = fdiv float %517, %518
  %520 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %519, ptr %520, align 4, !tbaa !13
  %521 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %522 = load float, ptr %521, align 4, !tbaa !15
  %523 = load float, ptr %54, align 4, !tbaa !11
  %524 = fdiv float %522, %523
  %525 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %524, ptr %525, align 4, !tbaa !15
  %526 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %527 = load float, ptr %526, align 4, !tbaa !13
  %528 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  store float %527, ptr %528, align 4, !tbaa !13
  %529 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %530 = load float, ptr %529, align 4, !tbaa !15
  %531 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  store float %530, ptr %531, align 4, !tbaa !15
  br label %573

532:                                              ; preds = %484
  %533 = load ptr, ptr %20, align 8, !tbaa !5
  %534 = load ptr, ptr %23, align 8, !tbaa !5
  %535 = load i32, ptr %66, align 4, !tbaa !9
  %536 = load i32, ptr %37, align 4, !tbaa !9
  %537 = mul nsw i32 %535, %536
  %538 = add nsw i32 %537, 1
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds %struct.complex, ptr %534, i64 %539
  %541 = load ptr, ptr %34, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.complex, ptr %541, i64 1
  call void @ccopy_(ptr noundef %533, ptr noundef %540, ptr noundef @c__1, ptr noundef %542, ptr noundef @c__1)
  %543 = load ptr, ptr %20, align 8, !tbaa !5
  %544 = load ptr, ptr %34, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.complex, ptr %544, i64 1
  %546 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %54, ptr noundef @c_b18, ptr noundef %543, ptr noundef @c__1, ptr noundef %545, ptr noundef %546, ptr noundef %58)
  %547 = load ptr, ptr %20, align 8, !tbaa !5
  %548 = load ptr, ptr %34, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.complex, ptr %548, i64 1
  %550 = load ptr, ptr %23, align 8, !tbaa !5
  %551 = load i32, ptr %67, align 4, !tbaa !9
  %552 = load i32, ptr %37, align 4, !tbaa !9
  %553 = mul nsw i32 %551, %552
  %554 = add nsw i32 %553, 1
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds %struct.complex, ptr %550, i64 %555
  call void @cdotc_(ptr noundef %51, ptr noundef %547, ptr noundef %549, ptr noundef @c__1, ptr noundef %556, ptr noundef @c__1)
  %557 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %558 = load float, ptr %557, align 4, !tbaa !13
  %559 = load float, ptr %56, align 4, !tbaa !11
  %560 = fdiv float %558, %559
  %561 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %560, ptr %561, align 4, !tbaa !13
  %562 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %563 = load float, ptr %562, align 4, !tbaa !15
  %564 = load float, ptr %56, align 4, !tbaa !11
  %565 = fdiv float %563, %564
  %566 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %565, ptr %566, align 4, !tbaa !15
  %567 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %568 = load float, ptr %567, align 4, !tbaa !13
  %569 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  store float %568, ptr %569, align 4, !tbaa !13
  %570 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %571 = load float, ptr %570, align 4, !tbaa !15
  %572 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  store float %571, ptr %572, align 4, !tbaa !15
  br label %573

573:                                              ; preds = %532, %490
  br label %700

574:                                              ; preds = %462
  %575 = load float, ptr %54, align 4, !tbaa !11
  %576 = load float, ptr %56, align 4, !tbaa !11
  %577 = fcmp oge float %575, %576
  br i1 %577, label %578, label %585

578:                                              ; preds = %574
  %579 = load float, ptr %54, align 4, !tbaa !11
  %580 = load float, ptr %56, align 4, !tbaa !11
  %581 = load float, ptr %72, align 4, !tbaa !11
  %582 = fdiv float %580, %581
  %583 = fcmp ole float %579, %582
  %584 = zext i1 %583 to i32
  store i32 %584, ptr %75, align 4, !tbaa !9
  br label %592

585:                                              ; preds = %574
  %586 = load float, ptr %56, align 4, !tbaa !11
  %587 = load float, ptr %54, align 4, !tbaa !11
  %588 = load float, ptr %72, align 4, !tbaa !11
  %589 = fdiv float %587, %588
  %590 = fcmp ole float %586, %589
  %591 = zext i1 %590 to i32
  store i32 %591, ptr %75, align 4, !tbaa !9
  br label %592

592:                                              ; preds = %585, %578
  %593 = load float, ptr %54, align 4, !tbaa !11
  %594 = load float, ptr %72, align 4, !tbaa !11
  %595 = load float, ptr %56, align 4, !tbaa !11
  %596 = fdiv float %594, %595
  %597 = fcmp ogt float %593, %596
  br i1 %597, label %598, label %658

598:                                              ; preds = %592
  %599 = load ptr, ptr %20, align 8, !tbaa !5
  %600 = load ptr, ptr %23, align 8, !tbaa !5
  %601 = load i32, ptr %66, align 4, !tbaa !9
  %602 = load i32, ptr %37, align 4, !tbaa !9
  %603 = mul nsw i32 %601, %602
  %604 = add nsw i32 %603, 1
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds %struct.complex, ptr %600, i64 %605
  %607 = load ptr, ptr %23, align 8, !tbaa !5
  %608 = load i32, ptr %67, align 4, !tbaa !9
  %609 = load i32, ptr %37, align 4, !tbaa !9
  %610 = mul nsw i32 %608, %609
  %611 = add nsw i32 %610, 1
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds %struct.complex, ptr %607, i64 %612
  call void @cdotc_(ptr noundef %52, ptr noundef %599, ptr noundef %606, ptr noundef @c__1, ptr noundef %613, ptr noundef @c__1)
  %614 = load float, ptr %56, align 4, !tbaa !11
  %615 = load float, ptr %54, align 4, !tbaa !11
  %616 = fcmp oge float %614, %615
  br i1 %616, label %617, label %619

617:                                              ; preds = %598
  %618 = load float, ptr %56, align 4, !tbaa !11
  br label %621

619:                                              ; preds = %598
  %620 = load float, ptr %54, align 4, !tbaa !11
  br label %621

621:                                              ; preds = %619, %617
  %622 = phi float [ %618, %617 ], [ %620, %619 ]
  store float %622, ptr %48, align 4, !tbaa !11
  %623 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %624 = load float, ptr %623, align 4, !tbaa !13
  %625 = load float, ptr %48, align 4, !tbaa !11
  %626 = fdiv float %624, %625
  %627 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %626, ptr %627, align 4, !tbaa !13
  %628 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %629 = load float, ptr %628, align 4, !tbaa !15
  %630 = load float, ptr %48, align 4, !tbaa !11
  %631 = fdiv float %629, %630
  %632 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %631, ptr %632, align 4, !tbaa !15
  %633 = load float, ptr %56, align 4, !tbaa !11
  %634 = load float, ptr %54, align 4, !tbaa !11
  %635 = fcmp ole float %633, %634
  br i1 %635, label %636, label %638

636:                                              ; preds = %621
  %637 = load float, ptr %56, align 4, !tbaa !11
  br label %640

638:                                              ; preds = %621
  %639 = load float, ptr %54, align 4, !tbaa !11
  br label %640

640:                                              ; preds = %638, %636
  %641 = phi float [ %637, %636 ], [ %639, %638 ]
  store float %641, ptr %49, align 4, !tbaa !11
  %642 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %643 = load float, ptr %642, align 4, !tbaa !13
  %644 = load float, ptr %49, align 4, !tbaa !11
  %645 = fdiv float %643, %644
  %646 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %645, ptr %646, align 4, !tbaa !13
  %647 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %648 = load float, ptr %647, align 4, !tbaa !15
  %649 = load float, ptr %49, align 4, !tbaa !11
  %650 = fdiv float %648, %649
  %651 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %650, ptr %651, align 4, !tbaa !15
  %652 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %653 = load float, ptr %652, align 4, !tbaa !13
  %654 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  store float %653, ptr %654, align 4, !tbaa !13
  %655 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %656 = load float, ptr %655, align 4, !tbaa !15
  %657 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  store float %656, ptr %657, align 4, !tbaa !15
  br label %699

658:                                              ; preds = %592
  %659 = load ptr, ptr %20, align 8, !tbaa !5
  %660 = load ptr, ptr %23, align 8, !tbaa !5
  %661 = load i32, ptr %67, align 4, !tbaa !9
  %662 = load i32, ptr %37, align 4, !tbaa !9
  %663 = mul nsw i32 %661, %662
  %664 = add nsw i32 %663, 1
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds %struct.complex, ptr %660, i64 %665
  %667 = load ptr, ptr %34, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.complex, ptr %667, i64 1
  call void @ccopy_(ptr noundef %659, ptr noundef %666, ptr noundef @c__1, ptr noundef %668, ptr noundef @c__1)
  %669 = load ptr, ptr %20, align 8, !tbaa !5
  %670 = load ptr, ptr %34, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.complex, ptr %670, i64 1
  %672 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %56, ptr noundef @c_b18, ptr noundef %669, ptr noundef @c__1, ptr noundef %671, ptr noundef %672, ptr noundef %58)
  %673 = load ptr, ptr %20, align 8, !tbaa !5
  %674 = load ptr, ptr %23, align 8, !tbaa !5
  %675 = load i32, ptr %66, align 4, !tbaa !9
  %676 = load i32, ptr %37, align 4, !tbaa !9
  %677 = mul nsw i32 %675, %676
  %678 = add nsw i32 %677, 1
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds %struct.complex, ptr %674, i64 %679
  %681 = load ptr, ptr %34, align 8, !tbaa !5
  %682 = getelementptr inbounds %struct.complex, ptr %681, i64 1
  call void @cdotc_(ptr noundef %51, ptr noundef %673, ptr noundef %680, ptr noundef @c__1, ptr noundef %682, ptr noundef @c__1)
  %683 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %684 = load float, ptr %683, align 4, !tbaa !13
  %685 = load float, ptr %54, align 4, !tbaa !11
  %686 = fdiv float %684, %685
  %687 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %686, ptr %687, align 4, !tbaa !13
  %688 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %689 = load float, ptr %688, align 4, !tbaa !15
  %690 = load float, ptr %54, align 4, !tbaa !11
  %691 = fdiv float %689, %690
  %692 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %691, ptr %692, align 4, !tbaa !15
  %693 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %694 = load float, ptr %693, align 4, !tbaa !13
  %695 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  store float %694, ptr %695, align 4, !tbaa !13
  %696 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %697 = load float, ptr %696, align 4, !tbaa !15
  %698 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  store float %697, ptr %698, align 4, !tbaa !15
  br label %699

699:                                              ; preds = %658, %640
  br label %700

700:                                              ; preds = %699, %573
  %701 = call <2 x float> @Cf(ptr noundef %55)
  store <2 x float> %701, ptr %100, align 4
  %702 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %703 = load float, ptr %702, align 4
  %704 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  %705 = load float, ptr %704, align 4
  %706 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %707 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  store float %703, ptr %706, align 4
  store float %705, ptr %707, align 4
  %708 = load <2 x float>, ptr %101, align 4
  %709 = call float @cabsf(<2 x float> noundef %708) #7
  %710 = fneg float %709
  store float %710, ptr %63, align 4, !tbaa !11
  %711 = load float, ptr %82, align 4, !tbaa !11
  store float %711, ptr %48, align 4, !tbaa !11
  %712 = load float, ptr %63, align 4, !tbaa !11
  %713 = fneg float %712
  store float %713, ptr %49, align 4, !tbaa !11
  %714 = load float, ptr %48, align 4, !tbaa !11
  %715 = load float, ptr %49, align 4, !tbaa !11
  %716 = fcmp oge float %714, %715
  br i1 %716, label %717, label %719

717:                                              ; preds = %700
  %718 = load float, ptr %48, align 4, !tbaa !11
  br label %721

719:                                              ; preds = %700
  %720 = load float, ptr %49, align 4, !tbaa !11
  br label %721

721:                                              ; preds = %719, %717
  %722 = phi float [ %718, %717 ], [ %720, %719 ]
  store float %722, ptr %82, align 4, !tbaa !11
  %723 = load float, ptr %63, align 4, !tbaa !11
  %724 = fcmp oge float %723, 0.000000e+00
  br i1 %724, label %725, label %727

725:                                              ; preds = %721
  %726 = load float, ptr %63, align 4, !tbaa !11
  br label %730

727:                                              ; preds = %721
  %728 = load float, ptr %63, align 4, !tbaa !11
  %729 = fneg float %728
  br label %730

730:                                              ; preds = %727, %725
  %731 = phi float [ %726, %725 ], [ %729, %727 ]
  %732 = load ptr, ptr %32, align 8, !tbaa !5
  %733 = load float, ptr %732, align 4, !tbaa !11
  %734 = fcmp ogt float %731, %733
  br i1 %734, label %735, label %1480

735:                                              ; preds = %730
  %736 = call <2 x float> @Cf(ptr noundef %55)
  store <2 x float> %736, ptr %102, align 4
  %737 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %738 = load float, ptr %737, align 4
  %739 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  %740 = load float, ptr %739, align 4
  %741 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %742 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  store float %738, ptr %741, align 4
  store float %740, ptr %742, align 4
  %743 = load <2 x float>, ptr %103, align 4
  %744 = call float @cabsf(<2 x float> noundef %743) #7
  store float %744, ptr %48, align 4, !tbaa !11
  %745 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  %746 = load float, ptr %745, align 4, !tbaa !13
  %747 = load float, ptr %48, align 4, !tbaa !11
  %748 = fdiv float %746, %747
  %749 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %748, ptr %749, align 4, !tbaa !13
  %750 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  %751 = load float, ptr %750, align 4, !tbaa !15
  %752 = load float, ptr %48, align 4, !tbaa !11
  %753 = fdiv float %751, %752
  %754 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %753, ptr %754, align 4, !tbaa !15
  %755 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %756 = load float, ptr %755, align 4, !tbaa !13
  %757 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %756, ptr %757, align 4, !tbaa !13
  %758 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %759 = load float, ptr %758, align 4, !tbaa !15
  %760 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %759, ptr %760, align 4, !tbaa !15
  store i32 0, ptr %86, align 4, !tbaa !9
  store i32 0, ptr %61, align 4, !tbaa !9
  %761 = load i32, ptr %87, align 4, !tbaa !9
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr %87, align 4, !tbaa !9
  %763 = load i32, ptr %75, align 4, !tbaa !9
  %764 = icmp ne i32 %763, 0
  br i1 %764, label %765, label %1190

765:                                              ; preds = %735
  %766 = load float, ptr %56, align 4, !tbaa !11
  %767 = load float, ptr %54, align 4, !tbaa !11
  %768 = fdiv float %766, %767
  store float %768, ptr %70, align 4, !tbaa !11
  %769 = load float, ptr %54, align 4, !tbaa !11
  %770 = load float, ptr %56, align 4, !tbaa !11
  %771 = fdiv float %769, %770
  store float %771, ptr %69, align 4, !tbaa !11
  %772 = load float, ptr %70, align 4, !tbaa !11
  %773 = load float, ptr %69, align 4, !tbaa !11
  %774 = fsub float %772, %773
  store float %774, ptr %48, align 4, !tbaa !11
  %775 = load float, ptr %48, align 4, !tbaa !11
  %776 = fcmp oge float %775, 0.000000e+00
  br i1 %776, label %777, label %779

777:                                              ; preds = %765
  %778 = load float, ptr %48, align 4, !tbaa !11
  br label %782

779:                                              ; preds = %765
  %780 = load float, ptr %48, align 4, !tbaa !11
  %781 = fneg float %780
  br label %782

782:                                              ; preds = %779, %777
  %783 = phi float [ %778, %777 ], [ %781, %779 ]
  %784 = fmul float %783, -5.000000e-01
  %785 = load float, ptr %63, align 4, !tbaa !11
  %786 = fdiv float %784, %785
  store float %786, ptr %71, align 4, !tbaa !11
  %787 = load float, ptr %56, align 4, !tbaa !11
  %788 = load float, ptr %62, align 4, !tbaa !11
  %789 = fcmp ogt float %787, %788
  br i1 %789, label %790, label %793

790:                                              ; preds = %782
  %791 = load float, ptr %71, align 4, !tbaa !11
  %792 = fneg float %791
  store float %792, ptr %71, align 4, !tbaa !11
  br label %793

793:                                              ; preds = %790, %782
  %794 = load float, ptr %71, align 4, !tbaa !11
  %795 = fcmp oge float %794, 0.000000e+00
  br i1 %795, label %796, label %798

796:                                              ; preds = %793
  %797 = load float, ptr %71, align 4, !tbaa !11
  br label %801

798:                                              ; preds = %793
  %799 = load float, ptr %71, align 4, !tbaa !11
  %800 = fneg float %799
  br label %801

801:                                              ; preds = %798, %796
  %802 = phi float [ %797, %796 ], [ %800, %798 ]
  %803 = load float, ptr %59, align 4, !tbaa !11
  %804 = fcmp ogt float %802, %803
  br i1 %804, label %805, label %943

805:                                              ; preds = %801
  %806 = load float, ptr %71, align 4, !tbaa !11
  %807 = fdiv float 5.000000e-01, %806
  store float %807, ptr %68, align 4, !tbaa !11
  store float 1.000000e+00, ptr %77, align 4, !tbaa !11
  %808 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %808, ptr %104, align 4
  %809 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %810 = load float, ptr %809, align 4
  %811 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %812 = load float, ptr %811, align 4
  %813 = fneg float %812
  %814 = call ptr @_pCf(ptr noundef %51)
  %815 = getelementptr inbounds { float, float }, ptr %814, i32 0, i32 0
  %816 = getelementptr inbounds { float, float }, ptr %814, i32 0, i32 1
  store float %810, ptr %815, align 4
  store float %813, ptr %816, align 4
  %817 = load float, ptr %68, align 4, !tbaa !11
  %818 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %819 = load float, ptr %818, align 4, !tbaa !13
  %820 = fmul float %817, %819
  %821 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %820, ptr %821, align 4, !tbaa !13
  %822 = load float, ptr %68, align 4, !tbaa !11
  %823 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %824 = load float, ptr %823, align 4, !tbaa !15
  %825 = fmul float %822, %824
  %826 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %825, ptr %826, align 4, !tbaa !15
  %827 = load ptr, ptr %20, align 8, !tbaa !5
  %828 = load ptr, ptr %23, align 8, !tbaa !5
  %829 = load i32, ptr %66, align 4, !tbaa !9
  %830 = load i32, ptr %37, align 4, !tbaa !9
  %831 = mul nsw i32 %829, %830
  %832 = add nsw i32 %831, 1
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds %struct.complex, ptr %828, i64 %833
  %835 = load ptr, ptr %23, align 8, !tbaa !5
  %836 = load i32, ptr %67, align 4, !tbaa !9
  %837 = load i32, ptr %37, align 4, !tbaa !9
  %838 = mul nsw i32 %836, %837
  %839 = add nsw i32 %838, 1
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds %struct.complex, ptr %835, i64 %840
  call void @crot_(ptr noundef %827, ptr noundef %834, ptr noundef @c__1, ptr noundef %841, ptr noundef @c__1, ptr noundef %77, ptr noundef %50)
  %842 = load i32, ptr %74, align 4, !tbaa !9
  %843 = icmp ne i32 %842, 0
  br i1 %843, label %844, label %878

844:                                              ; preds = %805
  %845 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %845, ptr %105, align 4
  %846 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %847 = load float, ptr %846, align 4
  %848 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %849 = load float, ptr %848, align 4
  %850 = fneg float %849
  %851 = call ptr @_pCf(ptr noundef %51)
  %852 = getelementptr inbounds { float, float }, ptr %851, i32 0, i32 0
  %853 = getelementptr inbounds { float, float }, ptr %851, i32 0, i32 1
  store float %847, ptr %852, align 4
  store float %850, ptr %853, align 4
  %854 = load float, ptr %68, align 4, !tbaa !11
  %855 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %856 = load float, ptr %855, align 4, !tbaa !13
  %857 = fmul float %854, %856
  %858 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %857, ptr %858, align 4, !tbaa !13
  %859 = load float, ptr %68, align 4, !tbaa !11
  %860 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %861 = load float, ptr %860, align 4, !tbaa !15
  %862 = fmul float %859, %861
  %863 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %862, ptr %863, align 4, !tbaa !15
  %864 = load ptr, ptr %28, align 8, !tbaa !5
  %865 = load i32, ptr %66, align 4, !tbaa !9
  %866 = load i32, ptr %39, align 4, !tbaa !9
  %867 = mul nsw i32 %865, %866
  %868 = add nsw i32 %867, 1
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds %struct.complex, ptr %864, i64 %869
  %871 = load ptr, ptr %28, align 8, !tbaa !5
  %872 = load i32, ptr %67, align 4, !tbaa !9
  %873 = load i32, ptr %39, align 4, !tbaa !9
  %874 = mul nsw i32 %872, %873
  %875 = add nsw i32 %874, 1
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds %struct.complex, ptr %871, i64 %876
  call void @crot_(ptr noundef %94, ptr noundef %870, ptr noundef @c__1, ptr noundef %877, ptr noundef @c__1, ptr noundef %77, ptr noundef %50)
  br label %878

878:                                              ; preds = %844, %805
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %879 = load float, ptr %68, align 4, !tbaa !11
  %880 = load float, ptr %69, align 4, !tbaa !11
  %881 = fmul float %879, %880
  %882 = load float, ptr %63, align 4, !tbaa !11
  %883 = call float @llvm.fmuladd.f32(float %881, float %882, float 1.000000e+00)
  store float %883, ptr %49, align 4, !tbaa !11
  %884 = load float, ptr %56, align 4, !tbaa !11
  %885 = fpext float %884 to double
  %886 = load float, ptr %48, align 4, !tbaa !11
  %887 = load float, ptr %49, align 4, !tbaa !11
  %888 = fcmp oge float %886, %887
  br i1 %888, label %889, label %891

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

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

893:                                              ; preds = %891, %889
  %894 = phi float [ %890, %889 ], [ %892, %891 ]
  %895 = fpext float %894 to double
  %896 = call double @sqrt(double noundef %895) #7
  %897 = fmul double %885, %896
  %898 = fptrunc double %897 to float
  %899 = load ptr, ptr %26, align 8, !tbaa !5
  %900 = load i32, ptr %67, align 4, !tbaa !9
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds float, ptr %899, i64 %901
  store float %898, ptr %902, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %903 = load float, ptr %68, align 4, !tbaa !11
  %904 = load float, ptr %70, align 4, !tbaa !11
  %905 = fmul float %903, %904
  %906 = load float, ptr %63, align 4, !tbaa !11
  %907 = fneg float %905
  %908 = call float @llvm.fmuladd.f32(float %907, float %906, float 1.000000e+00)
  store float %908, ptr %49, align 4, !tbaa !11
  %909 = load float, ptr %48, align 4, !tbaa !11
  %910 = load float, ptr %49, align 4, !tbaa !11
  %911 = fcmp oge float %909, %910
  br i1 %911, label %912, label %914

912:                                              ; preds = %893
  %913 = load float, ptr %48, align 4, !tbaa !11
  br label %916

914:                                              ; preds = %893
  %915 = load float, ptr %49, align 4, !tbaa !11
  br label %916

916:                                              ; preds = %914, %912
  %917 = phi float [ %913, %912 ], [ %915, %914 ]
  %918 = fpext float %917 to double
  %919 = call double @sqrt(double noundef %918) #7
  %920 = load float, ptr %54, align 4, !tbaa !11
  %921 = fpext float %920 to double
  %922 = fmul double %921, %919
  %923 = fptrunc double %922 to float
  store float %923, ptr %54, align 4, !tbaa !11
  %924 = load float, ptr %84, align 4, !tbaa !11
  store float %924, ptr %48, align 4, !tbaa !11
  %925 = load float, ptr %68, align 4, !tbaa !11
  %926 = fcmp oge float %925, 0.000000e+00
  br i1 %926, label %927, label %929

927:                                              ; preds = %916
  %928 = load float, ptr %68, align 4, !tbaa !11
  br label %932

929:                                              ; preds = %916
  %930 = load float, ptr %68, align 4, !tbaa !11
  %931 = fneg float %930
  br label %932

932:                                              ; preds = %929, %927
  %933 = phi float [ %928, %927 ], [ %931, %929 ]
  store float %933, ptr %49, align 4, !tbaa !11
  %934 = load float, ptr %48, align 4, !tbaa !11
  %935 = load float, ptr %49, align 4, !tbaa !11
  %936 = fcmp oge float %934, %935
  br i1 %936, label %937, label %939

937:                                              ; preds = %932
  %938 = load float, ptr %48, align 4, !tbaa !11
  br label %941

939:                                              ; preds = %932
  %940 = load float, ptr %49, align 4, !tbaa !11
  br label %941

941:                                              ; preds = %939, %937
  %942 = phi float [ %938, %937 ], [ %940, %939 ]
  store float %942, ptr %84, align 4, !tbaa !11
  br label %1134

943:                                              ; preds = %801
  %944 = load float, ptr %63, align 4, !tbaa !11
  %945 = fcmp oge float %944, 0.000000e+00
  br i1 %945, label %946, label %956

946:                                              ; preds = %943
  %947 = load float, ptr @c_b18, align 4, !tbaa !11
  %948 = fcmp oge float %947, 0.000000e+00
  br i1 %948, label %949, label %951

949:                                              ; preds = %946
  %950 = load float, ptr @c_b18, align 4, !tbaa !11
  br label %954

951:                                              ; preds = %946
  %952 = load float, ptr @c_b18, align 4, !tbaa !11
  %953 = fneg float %952
  br label %954

954:                                              ; preds = %951, %949
  %955 = phi float [ %950, %949 ], [ %953, %951 ]
  br label %967

956:                                              ; preds = %943
  %957 = load float, ptr @c_b18, align 4, !tbaa !11
  %958 = fcmp oge float %957, 0.000000e+00
  br i1 %958, label %959, label %961

959:                                              ; preds = %956
  %960 = load float, ptr @c_b18, align 4, !tbaa !11
  br label %964

961:                                              ; preds = %956
  %962 = load float, ptr @c_b18, align 4, !tbaa !11
  %963 = fneg float %962
  br label %964

964:                                              ; preds = %961, %959
  %965 = phi float [ %960, %959 ], [ %963, %961 ]
  %966 = fneg float %965
  br label %967

967:                                              ; preds = %964, %954
  %968 = phi float [ %955, %954 ], [ %966, %964 ]
  %969 = fneg float %968
  store float %969, ptr %83, align 4, !tbaa !11
  %970 = load float, ptr %56, align 4, !tbaa !11
  %971 = load float, ptr %62, align 4, !tbaa !11
  %972 = fcmp ogt float %970, %971
  br i1 %972, label %973, label %976

973:                                              ; preds = %967
  %974 = load float, ptr %83, align 4, !tbaa !11
  %975 = fneg float %974
  store float %975, ptr %83, align 4, !tbaa !11
  br label %976

976:                                              ; preds = %973, %967
  %977 = load float, ptr %71, align 4, !tbaa !11
  %978 = fpext float %977 to double
  %979 = load float, ptr %83, align 4, !tbaa !11
  %980 = fpext float %979 to double
  %981 = load float, ptr %71, align 4, !tbaa !11
  %982 = load float, ptr %71, align 4, !tbaa !11
  %983 = call float @llvm.fmuladd.f32(float %981, float %982, float 1.000000e+00)
  %984 = fpext float %983 to double
  %985 = call double @sqrt(double noundef %984) #7
  %986 = call double @llvm.fmuladd.f64(double %980, double %985, double %978)
  %987 = fdiv double 1.000000e+00, %986
  %988 = fptrunc double %987 to float
  store float %988, ptr %68, align 4, !tbaa !11
  %989 = load float, ptr %68, align 4, !tbaa !11
  %990 = load float, ptr %68, align 4, !tbaa !11
  %991 = call float @llvm.fmuladd.f32(float %989, float %990, float 1.000000e+00)
  %992 = fdiv float 1.000000e+00, %991
  %993 = fpext float %992 to double
  %994 = call double @sqrt(double noundef %993) #7
  %995 = fptrunc double %994 to float
  store float %995, ptr %77, align 4, !tbaa !11
  %996 = load float, ptr %68, align 4, !tbaa !11
  %997 = load float, ptr %77, align 4, !tbaa !11
  %998 = fmul float %996, %997
  store float %998, ptr %78, align 4, !tbaa !11
  %999 = load float, ptr %84, align 4, !tbaa !11
  store float %999, ptr %48, align 4, !tbaa !11
  %1000 = load float, ptr %78, align 4, !tbaa !11
  %1001 = fcmp oge float %1000, 0.000000e+00
  br i1 %1001, label %1002, label %1004

1002:                                             ; preds = %976
  %1003 = load float, ptr %78, align 4, !tbaa !11
  br label %1007

1004:                                             ; preds = %976
  %1005 = load float, ptr %78, align 4, !tbaa !11
  %1006 = fneg float %1005
  br label %1007

1007:                                             ; preds = %1004, %1002
  %1008 = phi float [ %1003, %1002 ], [ %1006, %1004 ]
  store float %1008, ptr %49, align 4, !tbaa !11
  %1009 = load float, ptr %48, align 4, !tbaa !11
  %1010 = load float, ptr %49, align 4, !tbaa !11
  %1011 = fcmp oge float %1009, %1010
  br i1 %1011, label %1012, label %1014

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

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

1016:                                             ; preds = %1014, %1012
  %1017 = phi float [ %1013, %1012 ], [ %1015, %1014 ]
  store float %1017, ptr %84, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %1018 = load float, ptr %68, align 4, !tbaa !11
  %1019 = load float, ptr %69, align 4, !tbaa !11
  %1020 = fmul float %1018, %1019
  %1021 = load float, ptr %63, align 4, !tbaa !11
  %1022 = call float @llvm.fmuladd.f32(float %1020, float %1021, float 1.000000e+00)
  store float %1022, ptr %49, align 4, !tbaa !11
  %1023 = load float, ptr %56, align 4, !tbaa !11
  %1024 = fpext float %1023 to double
  %1025 = load float, ptr %48, align 4, !tbaa !11
  %1026 = load float, ptr %49, align 4, !tbaa !11
  %1027 = fcmp oge float %1025, %1026
  br i1 %1027, label %1028, label %1030

1028:                                             ; preds = %1016
  %1029 = load float, ptr %48, align 4, !tbaa !11
  br label %1032

1030:                                             ; preds = %1016
  %1031 = load float, ptr %49, align 4, !tbaa !11
  br label %1032

1032:                                             ; preds = %1030, %1028
  %1033 = phi float [ %1029, %1028 ], [ %1031, %1030 ]
  %1034 = fpext float %1033 to double
  %1035 = call double @sqrt(double noundef %1034) #7
  %1036 = fmul double %1024, %1035
  %1037 = fptrunc double %1036 to float
  %1038 = load ptr, ptr %26, align 8, !tbaa !5
  %1039 = load i32, ptr %67, align 4, !tbaa !9
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds float, ptr %1038, i64 %1040
  store float %1037, ptr %1041, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %1042 = load float, ptr %68, align 4, !tbaa !11
  %1043 = load float, ptr %70, align 4, !tbaa !11
  %1044 = fmul float %1042, %1043
  %1045 = load float, ptr %63, align 4, !tbaa !11
  %1046 = fneg float %1044
  %1047 = call float @llvm.fmuladd.f32(float %1046, float %1045, float 1.000000e+00)
  store float %1047, ptr %49, align 4, !tbaa !11
  %1048 = load float, ptr %48, align 4, !tbaa !11
  %1049 = load float, ptr %49, align 4, !tbaa !11
  %1050 = fcmp oge float %1048, %1049
  br i1 %1050, label %1051, label %1053

1051:                                             ; preds = %1032
  %1052 = load float, ptr %48, align 4, !tbaa !11
  br label %1055

1053:                                             ; preds = %1032
  %1054 = load float, ptr %49, align 4, !tbaa !11
  br label %1055

1055:                                             ; preds = %1053, %1051
  %1056 = phi float [ %1052, %1051 ], [ %1054, %1053 ]
  %1057 = fpext float %1056 to double
  %1058 = call double @sqrt(double noundef %1057) #7
  %1059 = load float, ptr %54, align 4, !tbaa !11
  %1060 = fpext float %1059 to double
  %1061 = fmul double %1060, %1058
  %1062 = fptrunc double %1061 to float
  store float %1062, ptr %54, align 4, !tbaa !11
  %1063 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %1063, ptr %106, align 4
  %1064 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %1065 = load float, ptr %1064, align 4
  %1066 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  %1067 = load float, ptr %1066, align 4
  %1068 = fneg float %1067
  %1069 = call ptr @_pCf(ptr noundef %51)
  %1070 = getelementptr inbounds { float, float }, ptr %1069, i32 0, i32 0
  %1071 = getelementptr inbounds { float, float }, ptr %1069, i32 0, i32 1
  store float %1065, ptr %1070, align 4
  store float %1068, ptr %1071, align 4
  %1072 = load float, ptr %78, align 4, !tbaa !11
  %1073 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1074 = load float, ptr %1073, align 4, !tbaa !13
  %1075 = fmul float %1072, %1074
  %1076 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1075, ptr %1076, align 4, !tbaa !13
  %1077 = load float, ptr %78, align 4, !tbaa !11
  %1078 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1079 = load float, ptr %1078, align 4, !tbaa !15
  %1080 = fmul float %1077, %1079
  %1081 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1080, ptr %1081, align 4, !tbaa !15
  %1082 = load ptr, ptr %20, align 8, !tbaa !5
  %1083 = load ptr, ptr %23, align 8, !tbaa !5
  %1084 = load i32, ptr %66, align 4, !tbaa !9
  %1085 = load i32, ptr %37, align 4, !tbaa !9
  %1086 = mul nsw i32 %1084, %1085
  %1087 = add nsw i32 %1086, 1
  %1088 = sext i32 %1087 to i64
  %1089 = getelementptr inbounds %struct.complex, ptr %1083, i64 %1088
  %1090 = load ptr, ptr %23, align 8, !tbaa !5
  %1091 = load i32, ptr %67, align 4, !tbaa !9
  %1092 = load i32, ptr %37, align 4, !tbaa !9
  %1093 = mul nsw i32 %1091, %1092
  %1094 = add nsw i32 %1093, 1
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1095
  call void @crot_(ptr noundef %1082, ptr noundef %1089, ptr noundef @c__1, ptr noundef %1096, ptr noundef @c__1, ptr noundef %77, ptr noundef %50)
  %1097 = load i32, ptr %74, align 4, !tbaa !9
  %1098 = icmp ne i32 %1097, 0
  br i1 %1098, label %1099, label %1133

1099:                                             ; preds = %1055
  %1100 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %1100, ptr %107, align 4
  %1101 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %1102 = load float, ptr %1101, align 4
  %1103 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  %1104 = load float, ptr %1103, align 4
  %1105 = fneg float %1104
  %1106 = call ptr @_pCf(ptr noundef %51)
  %1107 = getelementptr inbounds { float, float }, ptr %1106, i32 0, i32 0
  %1108 = getelementptr inbounds { float, float }, ptr %1106, i32 0, i32 1
  store float %1102, ptr %1107, align 4
  store float %1105, ptr %1108, align 4
  %1109 = load float, ptr %78, align 4, !tbaa !11
  %1110 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1111 = load float, ptr %1110, align 4, !tbaa !13
  %1112 = fmul float %1109, %1111
  %1113 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1112, ptr %1113, align 4, !tbaa !13
  %1114 = load float, ptr %78, align 4, !tbaa !11
  %1115 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1116 = load float, ptr %1115, align 4, !tbaa !15
  %1117 = fmul float %1114, %1116
  %1118 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1117, ptr %1118, align 4, !tbaa !15
  %1119 = load ptr, ptr %28, align 8, !tbaa !5
  %1120 = load i32, ptr %66, align 4, !tbaa !9
  %1121 = load i32, ptr %39, align 4, !tbaa !9
  %1122 = mul nsw i32 %1120, %1121
  %1123 = add nsw i32 %1122, 1
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds %struct.complex, ptr %1119, i64 %1124
  %1126 = load ptr, ptr %28, align 8, !tbaa !5
  %1127 = load i32, ptr %67, align 4, !tbaa !9
  %1128 = load i32, ptr %39, align 4, !tbaa !9
  %1129 = mul nsw i32 %1127, %1128
  %1130 = add nsw i32 %1129, 1
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds %struct.complex, ptr %1126, i64 %1131
  call void @crot_(ptr noundef %94, ptr noundef %1125, ptr noundef @c__1, ptr noundef %1132, ptr noundef @c__1, ptr noundef %77, ptr noundef %50)
  br label %1133

1133:                                             ; preds = %1099, %1055
  br label %1134

1134:                                             ; preds = %1133, %941
  %1135 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %1135, ptr %46, align 4, !tbaa !9
  %1136 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %1136, ptr %47, align 4, !tbaa !9
  %1137 = load ptr, ptr %25, align 8, !tbaa !5
  %1138 = load i32, ptr %47, align 4, !tbaa !9
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds %struct.complex, ptr %1137, i64 %1139
  %1141 = getelementptr inbounds %struct.complex, ptr %1140, i32 0, i32 0
  %1142 = load float, ptr %1141, align 4, !tbaa !13
  %1143 = fneg float %1142
  %1144 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1143, ptr %1144, align 4, !tbaa !13
  %1145 = load ptr, ptr %25, align 8, !tbaa !5
  %1146 = load i32, ptr %47, align 4, !tbaa !9
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds %struct.complex, ptr %1145, i64 %1147
  %1149 = getelementptr inbounds %struct.complex, ptr %1148, i32 0, i32 1
  %1150 = load float, ptr %1149, align 4, !tbaa !15
  %1151 = fneg float %1150
  %1152 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1151, ptr %1152, align 4, !tbaa !15
  %1153 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1154 = load float, ptr %1153, align 4, !tbaa !13
  %1155 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1156 = load float, ptr %1155, align 4, !tbaa !13
  %1157 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1158 = load float, ptr %1157, align 4, !tbaa !15
  %1159 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1160 = load float, ptr %1159, align 4, !tbaa !15
  %1161 = fmul float %1158, %1160
  %1162 = fneg float %1161
  %1163 = call float @llvm.fmuladd.f32(float %1154, float %1156, float %1162)
  %1164 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1163, ptr %1164, align 4, !tbaa !13
  %1165 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1166 = load float, ptr %1165, align 4, !tbaa !13
  %1167 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1168 = load float, ptr %1167, align 4, !tbaa !15
  %1169 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1170 = load float, ptr %1169, align 4, !tbaa !15
  %1171 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1172 = load float, ptr %1171, align 4, !tbaa !13
  %1173 = fmul float %1170, %1172
  %1174 = call float @llvm.fmuladd.f32(float %1166, float %1168, float %1173)
  %1175 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1174, ptr %1175, align 4, !tbaa !15
  %1176 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1177 = load float, ptr %1176, align 4, !tbaa !13
  %1178 = load ptr, ptr %25, align 8, !tbaa !5
  %1179 = load i32, ptr %46, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds %struct.complex, ptr %1178, i64 %1180
  %1182 = getelementptr inbounds %struct.complex, ptr %1181, i32 0, i32 0
  store float %1177, ptr %1182, align 4, !tbaa !13
  %1183 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1184 = load float, ptr %1183, align 4, !tbaa !15
  %1185 = load ptr, ptr %25, align 8, !tbaa !5
  %1186 = load i32, ptr %46, align 4, !tbaa !9
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds %struct.complex, ptr %1185, i64 %1187
  %1189 = getelementptr inbounds %struct.complex, ptr %1188, i32 0, i32 1
  store float %1184, ptr %1189, align 4, !tbaa !15
  br label %1374

1190:                                             ; preds = %735
  %1191 = load float, ptr %54, align 4, !tbaa !11
  %1192 = load float, ptr %56, align 4, !tbaa !11
  %1193 = fcmp ogt float %1191, %1192
  br i1 %1193, label %1194, label %1279

1194:                                             ; preds = %1190
  %1195 = load ptr, ptr %20, align 8, !tbaa !5
  %1196 = load ptr, ptr %23, align 8, !tbaa !5
  %1197 = load i32, ptr %66, align 4, !tbaa !9
  %1198 = load i32, ptr %37, align 4, !tbaa !9
  %1199 = mul nsw i32 %1197, %1198
  %1200 = add nsw i32 %1199, 1
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds %struct.complex, ptr %1196, i64 %1201
  %1203 = load ptr, ptr %34, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.complex, ptr %1203, i64 1
  call void @ccopy_(ptr noundef %1195, ptr noundef %1202, ptr noundef @c__1, ptr noundef %1204, ptr noundef @c__1)
  %1205 = load ptr, ptr %20, align 8, !tbaa !5
  %1206 = load ptr, ptr %34, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.complex, ptr %1206, i64 1
  %1208 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %54, ptr noundef @c_b18, ptr noundef %1205, ptr noundef @c__1, ptr noundef %1207, ptr noundef %1208, ptr noundef %58)
  %1209 = load ptr, ptr %20, align 8, !tbaa !5
  %1210 = load ptr, ptr %23, align 8, !tbaa !5
  %1211 = load i32, ptr %67, align 4, !tbaa !9
  %1212 = load i32, ptr %37, align 4, !tbaa !9
  %1213 = mul nsw i32 %1211, %1212
  %1214 = add nsw i32 %1213, 1
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds %struct.complex, ptr %1210, i64 %1215
  %1217 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %56, ptr noundef @c_b18, ptr noundef %1209, ptr noundef @c__1, ptr noundef %1216, ptr noundef %1217, ptr noundef %58)
  %1218 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  %1219 = load float, ptr %1218, align 4, !tbaa !13
  %1220 = fneg float %1219
  %1221 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1220, ptr %1221, align 4, !tbaa !13
  %1222 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  %1223 = load float, ptr %1222, align 4, !tbaa !15
  %1224 = fneg float %1223
  %1225 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1224, ptr %1225, align 4, !tbaa !15
  %1226 = load ptr, ptr %20, align 8, !tbaa !5
  %1227 = load ptr, ptr %34, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.complex, ptr %1227, i64 1
  %1229 = load ptr, ptr %23, align 8, !tbaa !5
  %1230 = load i32, ptr %67, align 4, !tbaa !9
  %1231 = load i32, ptr %37, align 4, !tbaa !9
  %1232 = mul nsw i32 %1230, %1231
  %1233 = add nsw i32 %1232, 1
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds %struct.complex, ptr %1229, i64 %1234
  call void @caxpy_(ptr noundef %1226, ptr noundef %50, ptr noundef %1228, ptr noundef @c__1, ptr noundef %1235, ptr noundef @c__1)
  %1236 = load ptr, ptr %20, align 8, !tbaa !5
  %1237 = load ptr, ptr %23, align 8, !tbaa !5
  %1238 = load i32, ptr %67, align 4, !tbaa !9
  %1239 = load i32, ptr %37, align 4, !tbaa !9
  %1240 = mul nsw i32 %1238, %1239
  %1241 = add nsw i32 %1240, 1
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds %struct.complex, ptr %1237, i64 %1242
  %1244 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %56, ptr noundef %1236, ptr noundef @c__1, ptr noundef %1243, ptr noundef %1244, ptr noundef %58)
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %1245 = load float, ptr %63, align 4, !tbaa !11
  %1246 = load float, ptr %63, align 4, !tbaa !11
  %1247 = fneg float %1245
  %1248 = call float @llvm.fmuladd.f32(float %1247, float %1246, float 1.000000e+00)
  store float %1248, ptr %49, align 4, !tbaa !11
  %1249 = load float, ptr %56, align 4, !tbaa !11
  %1250 = fpext float %1249 to double
  %1251 = load float, ptr %48, align 4, !tbaa !11
  %1252 = load float, ptr %49, align 4, !tbaa !11
  %1253 = fcmp oge float %1251, %1252
  br i1 %1253, label %1254, label %1256

1254:                                             ; preds = %1194
  %1255 = load float, ptr %48, align 4, !tbaa !11
  br label %1258

1256:                                             ; preds = %1194
  %1257 = load float, ptr %49, align 4, !tbaa !11
  br label %1258

1258:                                             ; preds = %1256, %1254
  %1259 = phi float [ %1255, %1254 ], [ %1257, %1256 ]
  %1260 = fpext float %1259 to double
  %1261 = call double @sqrt(double noundef %1260) #7
  %1262 = fmul double %1250, %1261
  %1263 = fptrunc double %1262 to float
  %1264 = load ptr, ptr %26, align 8, !tbaa !5
  %1265 = load i32, ptr %67, align 4, !tbaa !9
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds float, ptr %1264, i64 %1266
  store float %1263, ptr %1267, align 4, !tbaa !11
  %1268 = load float, ptr %84, align 4, !tbaa !11
  %1269 = load ptr, ptr %31, align 8, !tbaa !5
  %1270 = load float, ptr %1269, align 4, !tbaa !11
  %1271 = fcmp oge float %1268, %1270
  br i1 %1271, label %1272, label %1274

1272:                                             ; preds = %1258
  %1273 = load float, ptr %84, align 4, !tbaa !11
  br label %1277

1274:                                             ; preds = %1258
  %1275 = load ptr, ptr %31, align 8, !tbaa !5
  %1276 = load float, ptr %1275, align 4, !tbaa !11
  br label %1277

1277:                                             ; preds = %1274, %1272
  %1278 = phi float [ %1273, %1272 ], [ %1276, %1274 ]
  store float %1278, ptr %84, align 4, !tbaa !11
  br label %1373

1279:                                             ; preds = %1190
  %1280 = load ptr, ptr %20, align 8, !tbaa !5
  %1281 = load ptr, ptr %23, align 8, !tbaa !5
  %1282 = load i32, ptr %67, align 4, !tbaa !9
  %1283 = load i32, ptr %37, align 4, !tbaa !9
  %1284 = mul nsw i32 %1282, %1283
  %1285 = add nsw i32 %1284, 1
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds %struct.complex, ptr %1281, i64 %1286
  %1288 = load ptr, ptr %34, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.complex, ptr %1288, i64 1
  call void @ccopy_(ptr noundef %1280, ptr noundef %1287, ptr noundef @c__1, ptr noundef %1289, ptr noundef @c__1)
  %1290 = load ptr, ptr %20, align 8, !tbaa !5
  %1291 = load ptr, ptr %34, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.complex, ptr %1291, i64 1
  %1293 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %56, ptr noundef @c_b18, ptr noundef %1290, ptr noundef @c__1, ptr noundef %1292, ptr noundef %1293, ptr noundef %58)
  %1294 = load ptr, ptr %20, align 8, !tbaa !5
  %1295 = load ptr, ptr %23, align 8, !tbaa !5
  %1296 = load i32, ptr %66, align 4, !tbaa !9
  %1297 = load i32, ptr %37, align 4, !tbaa !9
  %1298 = mul nsw i32 %1296, %1297
  %1299 = add nsw i32 %1298, 1
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds %struct.complex, ptr %1295, i64 %1300
  %1302 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %54, ptr noundef @c_b18, ptr noundef %1294, ptr noundef @c__1, ptr noundef %1301, ptr noundef %1302, ptr noundef %58)
  %1303 = call <2 x float> @Cf(ptr noundef %55)
  store <2 x float> %1303, ptr %108, align 4
  %1304 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 0
  %1305 = load float, ptr %1304, align 4
  %1306 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 1
  %1307 = load float, ptr %1306, align 4
  %1308 = fneg float %1307
  %1309 = call ptr @_pCf(ptr noundef %51)
  %1310 = getelementptr inbounds { float, float }, ptr %1309, i32 0, i32 0
  %1311 = getelementptr inbounds { float, float }, ptr %1309, i32 0, i32 1
  store float %1305, ptr %1310, align 4
  store float %1308, ptr %1311, align 4
  %1312 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1313 = load float, ptr %1312, align 4, !tbaa !13
  %1314 = fneg float %1313
  %1315 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1314, ptr %1315, align 4, !tbaa !13
  %1316 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1317 = load float, ptr %1316, align 4, !tbaa !15
  %1318 = fneg float %1317
  %1319 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1318, ptr %1319, align 4, !tbaa !15
  %1320 = load ptr, ptr %20, align 8, !tbaa !5
  %1321 = load ptr, ptr %34, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.complex, ptr %1321, i64 1
  %1323 = load ptr, ptr %23, align 8, !tbaa !5
  %1324 = load i32, ptr %66, align 4, !tbaa !9
  %1325 = load i32, ptr %37, align 4, !tbaa !9
  %1326 = mul nsw i32 %1324, %1325
  %1327 = add nsw i32 %1326, 1
  %1328 = sext i32 %1327 to i64
  %1329 = getelementptr inbounds %struct.complex, ptr %1323, i64 %1328
  call void @caxpy_(ptr noundef %1320, ptr noundef %50, ptr noundef %1322, ptr noundef @c__1, ptr noundef %1329, ptr noundef @c__1)
  %1330 = load ptr, ptr %20, align 8, !tbaa !5
  %1331 = load ptr, ptr %23, align 8, !tbaa !5
  %1332 = load i32, ptr %66, align 4, !tbaa !9
  %1333 = load i32, ptr %37, align 4, !tbaa !9
  %1334 = mul nsw i32 %1332, %1333
  %1335 = add nsw i32 %1334, 1
  %1336 = sext i32 %1335 to i64
  %1337 = getelementptr inbounds %struct.complex, ptr %1331, i64 %1336
  %1338 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %54, ptr noundef %1330, ptr noundef @c__1, ptr noundef %1337, ptr noundef %1338, ptr noundef %58)
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %1339 = load float, ptr %63, align 4, !tbaa !11
  %1340 = load float, ptr %63, align 4, !tbaa !11
  %1341 = fneg float %1339
  %1342 = call float @llvm.fmuladd.f32(float %1341, float %1340, float 1.000000e+00)
  store float %1342, ptr %49, align 4, !tbaa !11
  %1343 = load float, ptr %54, align 4, !tbaa !11
  %1344 = fpext float %1343 to double
  %1345 = load float, ptr %48, align 4, !tbaa !11
  %1346 = load float, ptr %49, align 4, !tbaa !11
  %1347 = fcmp oge float %1345, %1346
  br i1 %1347, label %1348, label %1350

1348:                                             ; preds = %1279
  %1349 = load float, ptr %48, align 4, !tbaa !11
  br label %1352

1350:                                             ; preds = %1279
  %1351 = load float, ptr %49, align 4, !tbaa !11
  br label %1352

1352:                                             ; preds = %1350, %1348
  %1353 = phi float [ %1349, %1348 ], [ %1351, %1350 ]
  %1354 = fpext float %1353 to double
  %1355 = call double @sqrt(double noundef %1354) #7
  %1356 = fmul double %1344, %1355
  %1357 = fptrunc double %1356 to float
  %1358 = load ptr, ptr %26, align 8, !tbaa !5
  %1359 = load i32, ptr %66, align 4, !tbaa !9
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds float, ptr %1358, i64 %1360
  store float %1357, ptr %1361, align 4, !tbaa !11
  %1362 = load float, ptr %84, align 4, !tbaa !11
  %1363 = load ptr, ptr %31, align 8, !tbaa !5
  %1364 = load float, ptr %1363, align 4, !tbaa !11
  %1365 = fcmp oge float %1362, %1364
  br i1 %1365, label %1366, label %1368

1366:                                             ; preds = %1352
  %1367 = load float, ptr %84, align 4, !tbaa !11
  br label %1371

1368:                                             ; preds = %1352
  %1369 = load ptr, ptr %31, align 8, !tbaa !5
  %1370 = load float, ptr %1369, align 4, !tbaa !11
  br label %1371

1371:                                             ; preds = %1368, %1366
  %1372 = phi float [ %1367, %1366 ], [ %1370, %1368 ]
  store float %1372, ptr %84, align 4, !tbaa !11
  br label %1373

1373:                                             ; preds = %1371, %1277
  br label %1374

1374:                                             ; preds = %1373, %1134
  %1375 = load ptr, ptr %26, align 8, !tbaa !5
  %1376 = load i32, ptr %67, align 4, !tbaa !9
  %1377 = sext i32 %1376 to i64
  %1378 = getelementptr inbounds float, ptr %1375, i64 %1377
  %1379 = load float, ptr %1378, align 4, !tbaa !11
  %1380 = load float, ptr %56, align 4, !tbaa !11
  %1381 = fdiv float %1379, %1380
  store float %1381, ptr %48, align 4, !tbaa !11
  %1382 = load float, ptr %48, align 4, !tbaa !11
  %1383 = load float, ptr %48, align 4, !tbaa !11
  %1384 = fmul float %1382, %1383
  %1385 = load float, ptr %96, align 4, !tbaa !11
  %1386 = fcmp ole float %1384, %1385
  br i1 %1386, label %1387, label %1430

1387:                                             ; preds = %1374
  %1388 = load float, ptr %56, align 4, !tbaa !11
  %1389 = load float, ptr %95, align 4, !tbaa !11
  %1390 = fcmp olt float %1388, %1389
  br i1 %1390, label %1391, label %1409

1391:                                             ; preds = %1387
  %1392 = load float, ptr %56, align 4, !tbaa !11
  %1393 = load float, ptr %76, align 4, !tbaa !11
  %1394 = fcmp ogt float %1392, %1393
  br i1 %1394, label %1395, label %1409

1395:                                             ; preds = %1391
  %1396 = load ptr, ptr %20, align 8, !tbaa !5
  %1397 = load ptr, ptr %23, align 8, !tbaa !5
  %1398 = load i32, ptr %67, align 4, !tbaa !9
  %1399 = load i32, ptr %37, align 4, !tbaa !9
  %1400 = mul nsw i32 %1398, %1399
  %1401 = add nsw i32 %1400, 1
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds %struct.complex, ptr %1397, i64 %1402
  %1404 = call float @scnrm2_(ptr noundef %1396, ptr noundef %1403, ptr noundef @c__1)
  %1405 = load ptr, ptr %26, align 8, !tbaa !5
  %1406 = load i32, ptr %67, align 4, !tbaa !9
  %1407 = sext i32 %1406 to i64
  %1408 = getelementptr inbounds float, ptr %1405, i64 %1407
  store float %1404, ptr %1408, align 4, !tbaa !11
  br label %1429

1409:                                             ; preds = %1391, %1387
  store float 0.000000e+00, ptr %68, align 4, !tbaa !11
  store float 1.000000e+00, ptr %56, align 4, !tbaa !11
  %1410 = load ptr, ptr %20, align 8, !tbaa !5
  %1411 = load ptr, ptr %23, align 8, !tbaa !5
  %1412 = load i32, ptr %67, align 4, !tbaa !9
  %1413 = load i32, ptr %37, align 4, !tbaa !9
  %1414 = mul nsw i32 %1412, %1413
  %1415 = add nsw i32 %1414, 1
  %1416 = sext i32 %1415 to i64
  %1417 = getelementptr inbounds %struct.complex, ptr %1411, i64 %1416
  call void @classq_(ptr noundef %1410, ptr noundef %1417, ptr noundef @c__1, ptr noundef %68, ptr noundef %56)
  %1418 = load float, ptr %68, align 4, !tbaa !11
  %1419 = fpext float %1418 to double
  %1420 = load float, ptr %56, align 4, !tbaa !11
  %1421 = fpext float %1420 to double
  %1422 = call double @sqrt(double noundef %1421) #7
  %1423 = fmul double %1419, %1422
  %1424 = fptrunc double %1423 to float
  %1425 = load ptr, ptr %26, align 8, !tbaa !5
  %1426 = load i32, ptr %67, align 4, !tbaa !9
  %1427 = sext i32 %1426 to i64
  %1428 = getelementptr inbounds float, ptr %1425, i64 %1427
  store float %1424, ptr %1428, align 4, !tbaa !11
  br label %1429

1429:                                             ; preds = %1409, %1395
  br label %1430

1430:                                             ; preds = %1429, %1374
  %1431 = load float, ptr %54, align 4, !tbaa !11
  %1432 = load float, ptr %62, align 4, !tbaa !11
  %1433 = fdiv float %1431, %1432
  store float %1433, ptr %48, align 4, !tbaa !11
  %1434 = load float, ptr %48, align 4, !tbaa !11
  %1435 = load float, ptr %48, align 4, !tbaa !11
  %1436 = fmul float %1434, %1435
  %1437 = load float, ptr %96, align 4, !tbaa !11
  %1438 = fcmp ole float %1436, %1437
  br i1 %1438, label %1439, label %1479

1439:                                             ; preds = %1430
  %1440 = load float, ptr %54, align 4, !tbaa !11
  %1441 = load float, ptr %95, align 4, !tbaa !11
  %1442 = fcmp olt float %1440, %1441
  br i1 %1442, label %1443, label %1457

1443:                                             ; preds = %1439
  %1444 = load float, ptr %54, align 4, !tbaa !11
  %1445 = load float, ptr %76, align 4, !tbaa !11
  %1446 = fcmp ogt float %1444, %1445
  br i1 %1446, label %1447, label %1457

1447:                                             ; preds = %1443
  %1448 = load ptr, ptr %20, align 8, !tbaa !5
  %1449 = load ptr, ptr %23, align 8, !tbaa !5
  %1450 = load i32, ptr %66, align 4, !tbaa !9
  %1451 = load i32, ptr %37, align 4, !tbaa !9
  %1452 = mul nsw i32 %1450, %1451
  %1453 = add nsw i32 %1452, 1
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds %struct.complex, ptr %1449, i64 %1454
  %1456 = call float @scnrm2_(ptr noundef %1448, ptr noundef %1455, ptr noundef @c__1)
  store float %1456, ptr %54, align 4, !tbaa !11
  br label %1473

1457:                                             ; preds = %1443, %1439
  store float 0.000000e+00, ptr %68, align 4, !tbaa !11
  store float 1.000000e+00, ptr %54, align 4, !tbaa !11
  %1458 = load ptr, ptr %20, align 8, !tbaa !5
  %1459 = load ptr, ptr %23, align 8, !tbaa !5
  %1460 = load i32, ptr %66, align 4, !tbaa !9
  %1461 = load i32, ptr %37, align 4, !tbaa !9
  %1462 = mul nsw i32 %1460, %1461
  %1463 = add nsw i32 %1462, 1
  %1464 = sext i32 %1463 to i64
  %1465 = getelementptr inbounds %struct.complex, ptr %1459, i64 %1464
  call void @classq_(ptr noundef %1458, ptr noundef %1465, ptr noundef @c__1, ptr noundef %68, ptr noundef %54)
  %1466 = load float, ptr %68, align 4, !tbaa !11
  %1467 = fpext float %1466 to double
  %1468 = load float, ptr %54, align 4, !tbaa !11
  %1469 = fpext float %1468 to double
  %1470 = call double @sqrt(double noundef %1469) #7
  %1471 = fmul double %1467, %1470
  %1472 = fptrunc double %1471 to float
  store float %1472, ptr %54, align 4, !tbaa !11
  br label %1473

1473:                                             ; preds = %1457, %1447
  %1474 = load float, ptr %54, align 4, !tbaa !11
  %1475 = load ptr, ptr %26, align 8, !tbaa !5
  %1476 = load i32, ptr %66, align 4, !tbaa !9
  %1477 = sext i32 %1476 to i64
  %1478 = getelementptr inbounds float, ptr %1475, i64 %1477
  store float %1474, ptr %1478, align 4, !tbaa !11
  br label %1479

1479:                                             ; preds = %1473, %1430
  br label %1487

1480:                                             ; preds = %730
  %1481 = load i32, ptr %86, align 4, !tbaa !9
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr %86, align 4, !tbaa !9
  %1483 = load i32, ptr %61, align 4, !tbaa !9
  %1484 = add nsw i32 %1483, 1
  store i32 %1484, ptr %61, align 4, !tbaa !9
  %1485 = load i32, ptr %79, align 4, !tbaa !9
  %1486 = add nsw i32 %1485, 1
  store i32 %1486, ptr %79, align 4, !tbaa !9
  br label %1487

1487:                                             ; preds = %1480, %1479
  br label %1495

1488:                                             ; preds = %454
  %1489 = load i32, ptr %86, align 4, !tbaa !9
  %1490 = add nsw i32 %1489, 1
  store i32 %1490, ptr %86, align 4, !tbaa !9
  %1491 = load i32, ptr %61, align 4, !tbaa !9
  %1492 = add nsw i32 %1491, 1
  store i32 %1492, ptr %61, align 4, !tbaa !9
  %1493 = load i32, ptr %79, align 4, !tbaa !9
  %1494 = add nsw i32 %1493, 1
  store i32 %1494, ptr %79, align 4, !tbaa !9
  br label %1495

1495:                                             ; preds = %1488, %1487
  %1496 = load i32, ptr %65, align 4, !tbaa !9
  %1497 = load i32, ptr %80, align 4, !tbaa !9
  %1498 = icmp sle i32 %1496, %1497
  br i1 %1498, label %1499, label %1509

1499:                                             ; preds = %1495
  %1500 = load i32, ptr %79, align 4, !tbaa !9
  %1501 = load i32, ptr %81, align 4, !tbaa !9
  %1502 = icmp sge i32 %1500, %1501
  br i1 %1502, label %1503, label %1509

1503:                                             ; preds = %1499
  %1504 = load float, ptr %54, align 4, !tbaa !11
  %1505 = load ptr, ptr %26, align 8, !tbaa !5
  %1506 = load i32, ptr %66, align 4, !tbaa !9
  %1507 = sext i32 %1506 to i64
  %1508 = getelementptr inbounds float, ptr %1505, i64 %1507
  store float %1504, ptr %1508, align 4, !tbaa !11
  store i32 0, ptr %86, align 4, !tbaa !9
  br label %1569

1509:                                             ; preds = %1499, %1495
  %1510 = load i32, ptr %65, align 4, !tbaa !9
  %1511 = load i32, ptr %80, align 4, !tbaa !9
  %1512 = icmp sle i32 %1510, %1511
  br i1 %1512, label %1513, label %1520

1513:                                             ; preds = %1509
  %1514 = load i32, ptr %61, align 4, !tbaa !9
  %1515 = load i32, ptr %97, align 4, !tbaa !9
  %1516 = icmp sgt i32 %1514, %1515
  br i1 %1516, label %1517, label %1520

1517:                                             ; preds = %1513
  %1518 = load float, ptr %54, align 4, !tbaa !11
  %1519 = fneg float %1518
  store float %1519, ptr %54, align 4, !tbaa !11
  store i32 0, ptr %86, align 4, !tbaa !9
  br label %1525

1520:                                             ; preds = %1513, %1509
  br label %1521

1521:                                             ; preds = %1520
  %1522 = load i32, ptr %67, align 4, !tbaa !9
  %1523 = add nsw i32 %1522, 1
  store i32 %1523, ptr %67, align 4, !tbaa !9
  br label %450, !llvm.loop !16

1524:                                             ; preds = %450
  br label %1525

1525:                                             ; preds = %1524, %1517
  %1526 = load float, ptr %54, align 4, !tbaa !11
  %1527 = load ptr, ptr %26, align 8, !tbaa !5
  %1528 = load i32, ptr %66, align 4, !tbaa !9
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds float, ptr %1527, i64 %1529
  store float %1526, ptr %1530, align 4, !tbaa !11
  br label %1560

1531:                                             ; preds = %425
  %1532 = load float, ptr %54, align 4, !tbaa !11
  %1533 = fcmp oeq float %1532, 0.000000e+00
  br i1 %1533, label %1534, label %1555

1534:                                             ; preds = %1531
  %1535 = load i32, ptr %93, align 4, !tbaa !9
  %1536 = load i32, ptr %90, align 4, !tbaa !9
  %1537 = add nsw i32 %1535, %1536
  %1538 = sub nsw i32 %1537, 1
  store i32 %1538, ptr %45, align 4, !tbaa !9
  %1539 = load i32, ptr %86, align 4, !tbaa !9
  %1540 = load i32, ptr %45, align 4, !tbaa !9
  %1541 = load ptr, ptr %21, align 8, !tbaa !5
  %1542 = load i32, ptr %1541, align 4, !tbaa !9
  %1543 = icmp sle i32 %1540, %1542
  br i1 %1543, label %1544, label %1546

1544:                                             ; preds = %1534
  %1545 = load i32, ptr %45, align 4, !tbaa !9
  br label %1549

1546:                                             ; preds = %1534
  %1547 = load ptr, ptr %21, align 8, !tbaa !5
  %1548 = load i32, ptr %1547, align 4, !tbaa !9
  br label %1549

1549:                                             ; preds = %1546, %1544
  %1550 = phi i32 [ %1545, %1544 ], [ %1548, %1546 ]
  %1551 = add nsw i32 %1539, %1550
  %1552 = load i32, ptr %93, align 4, !tbaa !9
  %1553 = sub nsw i32 %1551, %1552
  %1554 = add nsw i32 %1553, 1
  store i32 %1554, ptr %86, align 4, !tbaa !9
  br label %1555

1555:                                             ; preds = %1549, %1531
  %1556 = load float, ptr %54, align 4, !tbaa !11
  %1557 = fcmp olt float %1556, 0.000000e+00
  br i1 %1557, label %1558, label %1559

1558:                                             ; preds = %1555
  store i32 0, ptr %86, align 4, !tbaa !9
  br label %1559

1559:                                             ; preds = %1558, %1555
  br label %1560

1560:                                             ; preds = %1559, %1525
  br label %1561

1561:                                             ; preds = %1560
  %1562 = load i32, ptr %66, align 4, !tbaa !9
  %1563 = add nsw i32 %1562, 1
  store i32 %1563, ptr %66, align 4, !tbaa !9
  br label %421, !llvm.loop !18

1564:                                             ; preds = %421
  br label %1565

1565:                                             ; preds = %1564
  %1566 = load i32, ptr %88, align 4, !tbaa !9
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr %88, align 4, !tbaa !9
  br label %392, !llvm.loop !19

1568:                                             ; preds = %392
  br label %1569

1569:                                             ; preds = %1568, %1503
  %1570 = load i32, ptr %91, align 4, !tbaa !9
  %1571 = load i32, ptr %90, align 4, !tbaa !9
  %1572 = add nsw i32 %1570, %1571
  %1573 = sub nsw i32 %1572, 1
  store i32 %1573, ptr %44, align 4, !tbaa !9
  %1574 = load i32, ptr %44, align 4, !tbaa !9
  %1575 = load ptr, ptr %21, align 8, !tbaa !5
  %1576 = load i32, ptr %1575, align 4, !tbaa !9
  %1577 = icmp sle i32 %1574, %1576
  br i1 %1577, label %1578, label %1580

1578:                                             ; preds = %1569
  %1579 = load i32, ptr %44, align 4, !tbaa !9
  br label %1583

1580:                                             ; preds = %1569
  %1581 = load ptr, ptr %21, align 8, !tbaa !5
  %1582 = load i32, ptr %1581, align 4, !tbaa !9
  br label %1583

1583:                                             ; preds = %1580, %1578
  %1584 = phi i32 [ %1579, %1578 ], [ %1582, %1580 ]
  store i32 %1584, ptr %43, align 4, !tbaa !9
  %1585 = load i32, ptr %91, align 4, !tbaa !9
  store i32 %1585, ptr %66, align 4, !tbaa !9
  br label %1586

1586:                                             ; preds = %1609, %1583
  %1587 = load i32, ptr %66, align 4, !tbaa !9
  %1588 = load i32, ptr %43, align 4, !tbaa !9
  %1589 = icmp sle i32 %1587, %1588
  br i1 %1589, label %1590, label %1612

1590:                                             ; preds = %1586
  %1591 = load ptr, ptr %26, align 8, !tbaa !5
  %1592 = load i32, ptr %66, align 4, !tbaa !9
  %1593 = sext i32 %1592 to i64
  %1594 = getelementptr inbounds float, ptr %1591, i64 %1593
  %1595 = load float, ptr %1594, align 4, !tbaa !11
  store float %1595, ptr %48, align 4, !tbaa !11
  %1596 = load float, ptr %48, align 4, !tbaa !11
  %1597 = fcmp oge float %1596, 0.000000e+00
  br i1 %1597, label %1598, label %1600

1598:                                             ; preds = %1590
  %1599 = load float, ptr %48, align 4, !tbaa !11
  br label %1603

1600:                                             ; preds = %1590
  %1601 = load float, ptr %48, align 4, !tbaa !11
  %1602 = fneg float %1601
  br label %1603

1603:                                             ; preds = %1600, %1598
  %1604 = phi float [ %1599, %1598 ], [ %1602, %1600 ]
  %1605 = load ptr, ptr %26, align 8, !tbaa !5
  %1606 = load i32, ptr %66, align 4, !tbaa !9
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds float, ptr %1605, i64 %1607
  store float %1604, ptr %1608, align 4, !tbaa !11
  br label %1609

1609:                                             ; preds = %1603
  %1610 = load i32, ptr %66, align 4, !tbaa !9
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr %66, align 4, !tbaa !9
  br label %1586, !llvm.loop !20

1612:                                             ; preds = %1586
  br label %1613

1613:                                             ; preds = %1612
  %1614 = load i32, ptr %92, align 4, !tbaa !9
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr %92, align 4, !tbaa !9
  br label %376, !llvm.loop !21

1616:                                             ; preds = %376
  %1617 = load ptr, ptr %26, align 8, !tbaa !5
  %1618 = load ptr, ptr %21, align 8, !tbaa !5
  %1619 = load i32, ptr %1618, align 4, !tbaa !9
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds float, ptr %1617, i64 %1620
  %1622 = load float, ptr %1621, align 4, !tbaa !11
  %1623 = load float, ptr %95, align 4, !tbaa !11
  %1624 = fcmp olt float %1622, %1623
  br i1 %1624, label %1625, label %1650

1625:                                             ; preds = %1616
  %1626 = load ptr, ptr %26, align 8, !tbaa !5
  %1627 = load ptr, ptr %21, align 8, !tbaa !5
  %1628 = load i32, ptr %1627, align 4, !tbaa !9
  %1629 = sext i32 %1628 to i64
  %1630 = getelementptr inbounds float, ptr %1626, i64 %1629
  %1631 = load float, ptr %1630, align 4, !tbaa !11
  %1632 = load float, ptr %76, align 4, !tbaa !11
  %1633 = fcmp ogt float %1631, %1632
  br i1 %1633, label %1634, label %1650

1634:                                             ; preds = %1625
  %1635 = load ptr, ptr %20, align 8, !tbaa !5
  %1636 = load ptr, ptr %23, align 8, !tbaa !5
  %1637 = load ptr, ptr %21, align 8, !tbaa !5
  %1638 = load i32, ptr %1637, align 4, !tbaa !9
  %1639 = load i32, ptr %37, align 4, !tbaa !9
  %1640 = mul nsw i32 %1638, %1639
  %1641 = add nsw i32 %1640, 1
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds %struct.complex, ptr %1636, i64 %1642
  %1644 = call float @scnrm2_(ptr noundef %1635, ptr noundef %1643, ptr noundef @c__1)
  %1645 = load ptr, ptr %26, align 8, !tbaa !5
  %1646 = load ptr, ptr %21, align 8, !tbaa !5
  %1647 = load i32, ptr %1646, align 4, !tbaa !9
  %1648 = sext i32 %1647 to i64
  %1649 = getelementptr inbounds float, ptr %1645, i64 %1648
  store float %1644, ptr %1649, align 4, !tbaa !11
  br label %1672

1650:                                             ; preds = %1625, %1616
  store float 0.000000e+00, ptr %68, align 4, !tbaa !11
  store float 1.000000e+00, ptr %54, align 4, !tbaa !11
  %1651 = load ptr, ptr %20, align 8, !tbaa !5
  %1652 = load ptr, ptr %23, align 8, !tbaa !5
  %1653 = load ptr, ptr %21, align 8, !tbaa !5
  %1654 = load i32, ptr %1653, align 4, !tbaa !9
  %1655 = load i32, ptr %37, align 4, !tbaa !9
  %1656 = mul nsw i32 %1654, %1655
  %1657 = add nsw i32 %1656, 1
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds %struct.complex, ptr %1652, i64 %1658
  call void @classq_(ptr noundef %1651, ptr noundef %1659, ptr noundef @c__1, ptr noundef %68, ptr noundef %54)
  %1660 = load float, ptr %68, align 4, !tbaa !11
  %1661 = fpext float %1660 to double
  %1662 = load float, ptr %54, align 4, !tbaa !11
  %1663 = fpext float %1662 to double
  %1664 = call double @sqrt(double noundef %1663) #7
  %1665 = fmul double %1661, %1664
  %1666 = fptrunc double %1665 to float
  %1667 = load ptr, ptr %26, align 8, !tbaa !5
  %1668 = load ptr, ptr %21, align 8, !tbaa !5
  %1669 = load i32, ptr %1668, align 4, !tbaa !9
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds float, ptr %1667, i64 %1670
  store float %1666, ptr %1671, align 4, !tbaa !11
  br label %1672

1672:                                             ; preds = %1650, %1634
  %1673 = load i32, ptr %65, align 4, !tbaa !9
  %1674 = load i32, ptr %80, align 4, !tbaa !9
  %1675 = icmp slt i32 %1673, %1674
  br i1 %1675, label %1676, label %1687

1676:                                             ; preds = %1672
  %1677 = load float, ptr %82, align 4, !tbaa !11
  %1678 = load float, ptr %98, align 4, !tbaa !11
  %1679 = fcmp ole float %1677, %1678
  br i1 %1679, label %1685, label %1680

1680:                                             ; preds = %1676
  %1681 = load i32, ptr %87, align 4, !tbaa !9
  %1682 = load ptr, ptr %21, align 8, !tbaa !5
  %1683 = load i32, ptr %1682, align 4, !tbaa !9
  %1684 = icmp sle i32 %1681, %1683
  br i1 %1684, label %1685, label %1687

1685:                                             ; preds = %1680, %1676
  %1686 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1686, ptr %80, align 4, !tbaa !9
  br label %1687

1687:                                             ; preds = %1685, %1680, %1672
  %1688 = load i32, ptr %65, align 4, !tbaa !9
  %1689 = load i32, ptr %80, align 4, !tbaa !9
  %1690 = add nsw i32 %1689, 1
  %1691 = icmp sgt i32 %1688, %1690
  br i1 %1691, label %1692, label %1717

1692:                                             ; preds = %1687
  %1693 = load float, ptr %82, align 4, !tbaa !11
  %1694 = fpext float %1693 to double
  %1695 = load ptr, ptr %21, align 8, !tbaa !5
  %1696 = load i32, ptr %1695, align 4, !tbaa !9
  %1697 = sitofp i32 %1696 to float
  %1698 = fpext float %1697 to double
  %1699 = call double @sqrt(double noundef %1698) #7
  %1700 = load ptr, ptr %32, align 8, !tbaa !5
  %1701 = load float, ptr %1700, align 4, !tbaa !11
  %1702 = fpext float %1701 to double
  %1703 = fmul double %1699, %1702
  %1704 = fcmp olt double %1694, %1703
  br i1 %1704, label %1705, label %1717

1705:                                             ; preds = %1692
  %1706 = load ptr, ptr %21, align 8, !tbaa !5
  %1707 = load i32, ptr %1706, align 4, !tbaa !9
  %1708 = sitofp i32 %1707 to float
  %1709 = load float, ptr %82, align 4, !tbaa !11
  %1710 = fmul float %1708, %1709
  %1711 = load float, ptr %84, align 4, !tbaa !11
  %1712 = fmul float %1710, %1711
  %1713 = load ptr, ptr %32, align 8, !tbaa !5
  %1714 = load float, ptr %1713, align 4, !tbaa !11
  %1715 = fcmp olt float %1712, %1714
  br i1 %1715, label %1716, label %1717

1716:                                             ; preds = %1705
  br label %1731

1717:                                             ; preds = %1705, %1692, %1687
  %1718 = load i32, ptr %86, align 4, !tbaa !9
  %1719 = load i32, ptr %85, align 4, !tbaa !9
  %1720 = icmp sge i32 %1718, %1719
  br i1 %1720, label %1721, label %1722

1721:                                             ; preds = %1717
  br label %1731

1722:                                             ; preds = %1717
  br label %1723

1723:                                             ; preds = %1722
  %1724 = load i32, ptr %65, align 4, !tbaa !9
  %1725 = add nsw i32 %1724, 1
  store i32 %1725, ptr %65, align 4, !tbaa !9
  br label %370, !llvm.loop !22

1726:                                             ; preds = %370
  %1727 = load ptr, ptr %33, align 8, !tbaa !5
  %1728 = load i32, ptr %1727, align 4, !tbaa !9
  %1729 = sub nsw i32 %1728, 1
  %1730 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 %1729, ptr %1730, align 4, !tbaa !9
  br label %1733

1731:                                             ; preds = %1721, %1716
  %1732 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %1732, align 4, !tbaa !9
  br label %1733

1733:                                             ; preds = %1731, %1726
  %1734 = load ptr, ptr %21, align 8, !tbaa !5
  %1735 = load i32, ptr %1734, align 4, !tbaa !9
  %1736 = sub nsw i32 %1735, 1
  store i32 %1736, ptr %41, align 4, !tbaa !9
  store i32 1, ptr %66, align 4, !tbaa !9
  br label %1737

1737:                                             ; preds = %1866, %1733
  %1738 = load i32, ptr %66, align 4, !tbaa !9
  %1739 = load i32, ptr %41, align 4, !tbaa !9
  %1740 = icmp sle i32 %1738, %1739
  br i1 %1740, label %1741, label %1869

1741:                                             ; preds = %1737
  %1742 = load ptr, ptr %21, align 8, !tbaa !5
  %1743 = load i32, ptr %1742, align 4, !tbaa !9
  %1744 = load i32, ptr %66, align 4, !tbaa !9
  %1745 = sub nsw i32 %1743, %1744
  %1746 = add nsw i32 %1745, 1
  store i32 %1746, ptr %42, align 4, !tbaa !9
  %1747 = load ptr, ptr %26, align 8, !tbaa !5
  %1748 = load i32, ptr %66, align 4, !tbaa !9
  %1749 = sext i32 %1748 to i64
  %1750 = getelementptr inbounds float, ptr %1747, i64 %1749
  %1751 = call i32 @isamax_(ptr noundef %42, ptr noundef %1750, ptr noundef @c__1)
  %1752 = load i32, ptr %66, align 4, !tbaa !9
  %1753 = add nsw i32 %1751, %1752
  %1754 = sub nsw i32 %1753, 1
  store i32 %1754, ptr %67, align 4, !tbaa !9
  %1755 = load i32, ptr %66, align 4, !tbaa !9
  %1756 = load i32, ptr %67, align 4, !tbaa !9
  %1757 = icmp ne i32 %1755, %1756
  br i1 %1757, label %1758, label %1865

1758:                                             ; preds = %1741
  %1759 = load ptr, ptr %26, align 8, !tbaa !5
  %1760 = load i32, ptr %66, align 4, !tbaa !9
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds float, ptr %1759, i64 %1761
  %1763 = load float, ptr %1762, align 4, !tbaa !11
  store float %1763, ptr %64, align 4, !tbaa !11
  %1764 = load ptr, ptr %26, align 8, !tbaa !5
  %1765 = load i32, ptr %67, align 4, !tbaa !9
  %1766 = sext i32 %1765 to i64
  %1767 = getelementptr inbounds float, ptr %1764, i64 %1766
  %1768 = load float, ptr %1767, align 4, !tbaa !11
  %1769 = load ptr, ptr %26, align 8, !tbaa !5
  %1770 = load i32, ptr %66, align 4, !tbaa !9
  %1771 = sext i32 %1770 to i64
  %1772 = getelementptr inbounds float, ptr %1769, i64 %1771
  store float %1768, ptr %1772, align 4, !tbaa !11
  %1773 = load float, ptr %64, align 4, !tbaa !11
  %1774 = load ptr, ptr %26, align 8, !tbaa !5
  %1775 = load i32, ptr %67, align 4, !tbaa !9
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds float, ptr %1774, i64 %1776
  store float %1773, ptr %1777, align 4, !tbaa !11
  %1778 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %1778, ptr %42, align 4, !tbaa !9
  %1779 = load ptr, ptr %25, align 8, !tbaa !5
  %1780 = load i32, ptr %42, align 4, !tbaa !9
  %1781 = sext i32 %1780 to i64
  %1782 = getelementptr inbounds %struct.complex, ptr %1779, i64 %1781
  %1783 = getelementptr inbounds %struct.complex, ptr %1782, i32 0, i32 0
  %1784 = load float, ptr %1783, align 4, !tbaa !13
  %1785 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  store float %1784, ptr %1785, align 4, !tbaa !13
  %1786 = load ptr, ptr %25, align 8, !tbaa !5
  %1787 = load i32, ptr %42, align 4, !tbaa !9
  %1788 = sext i32 %1787 to i64
  %1789 = getelementptr inbounds %struct.complex, ptr %1786, i64 %1788
  %1790 = getelementptr inbounds %struct.complex, ptr %1789, i32 0, i32 1
  %1791 = load float, ptr %1790, align 4, !tbaa !15
  %1792 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  store float %1791, ptr %1792, align 4, !tbaa !15
  %1793 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %1793, ptr %42, align 4, !tbaa !9
  %1794 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %1794, ptr %43, align 4, !tbaa !9
  %1795 = load ptr, ptr %25, align 8, !tbaa !5
  %1796 = load i32, ptr %43, align 4, !tbaa !9
  %1797 = sext i32 %1796 to i64
  %1798 = getelementptr inbounds %struct.complex, ptr %1795, i64 %1797
  %1799 = getelementptr inbounds %struct.complex, ptr %1798, i32 0, i32 0
  %1800 = load float, ptr %1799, align 4, !tbaa !13
  %1801 = load ptr, ptr %25, align 8, !tbaa !5
  %1802 = load i32, ptr %42, align 4, !tbaa !9
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds %struct.complex, ptr %1801, i64 %1803
  %1805 = getelementptr inbounds %struct.complex, ptr %1804, i32 0, i32 0
  store float %1800, ptr %1805, align 4, !tbaa !13
  %1806 = load ptr, ptr %25, align 8, !tbaa !5
  %1807 = load i32, ptr %43, align 4, !tbaa !9
  %1808 = sext i32 %1807 to i64
  %1809 = getelementptr inbounds %struct.complex, ptr %1806, i64 %1808
  %1810 = getelementptr inbounds %struct.complex, ptr %1809, i32 0, i32 1
  %1811 = load float, ptr %1810, align 4, !tbaa !15
  %1812 = load ptr, ptr %25, align 8, !tbaa !5
  %1813 = load i32, ptr %42, align 4, !tbaa !9
  %1814 = sext i32 %1813 to i64
  %1815 = getelementptr inbounds %struct.complex, ptr %1812, i64 %1814
  %1816 = getelementptr inbounds %struct.complex, ptr %1815, i32 0, i32 1
  store float %1811, ptr %1816, align 4, !tbaa !15
  %1817 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %1817, ptr %42, align 4, !tbaa !9
  %1818 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  %1819 = load float, ptr %1818, align 4, !tbaa !13
  %1820 = load ptr, ptr %25, align 8, !tbaa !5
  %1821 = load i32, ptr %42, align 4, !tbaa !9
  %1822 = sext i32 %1821 to i64
  %1823 = getelementptr inbounds %struct.complex, ptr %1820, i64 %1822
  %1824 = getelementptr inbounds %struct.complex, ptr %1823, i32 0, i32 0
  store float %1819, ptr %1824, align 4, !tbaa !13
  %1825 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  %1826 = load float, ptr %1825, align 4, !tbaa !15
  %1827 = load ptr, ptr %25, align 8, !tbaa !5
  %1828 = load i32, ptr %42, align 4, !tbaa !9
  %1829 = sext i32 %1828 to i64
  %1830 = getelementptr inbounds %struct.complex, ptr %1827, i64 %1829
  %1831 = getelementptr inbounds %struct.complex, ptr %1830, i32 0, i32 1
  store float %1826, ptr %1831, align 4, !tbaa !15
  %1832 = load ptr, ptr %20, align 8, !tbaa !5
  %1833 = load ptr, ptr %23, align 8, !tbaa !5
  %1834 = load i32, ptr %66, align 4, !tbaa !9
  %1835 = load i32, ptr %37, align 4, !tbaa !9
  %1836 = mul nsw i32 %1834, %1835
  %1837 = add nsw i32 %1836, 1
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds %struct.complex, ptr %1833, i64 %1838
  %1840 = load ptr, ptr %23, align 8, !tbaa !5
  %1841 = load i32, ptr %67, align 4, !tbaa !9
  %1842 = load i32, ptr %37, align 4, !tbaa !9
  %1843 = mul nsw i32 %1841, %1842
  %1844 = add nsw i32 %1843, 1
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr inbounds %struct.complex, ptr %1840, i64 %1845
  call void @cswap_(ptr noundef %1832, ptr noundef %1839, ptr noundef @c__1, ptr noundef %1846, ptr noundef @c__1)
  %1847 = load i32, ptr %74, align 4, !tbaa !9
  %1848 = icmp ne i32 %1847, 0
  br i1 %1848, label %1849, label %1864

1849:                                             ; preds = %1758
  %1850 = load ptr, ptr %28, align 8, !tbaa !5
  %1851 = load i32, ptr %66, align 4, !tbaa !9
  %1852 = load i32, ptr %39, align 4, !tbaa !9
  %1853 = mul nsw i32 %1851, %1852
  %1854 = add nsw i32 %1853, 1
  %1855 = sext i32 %1854 to i64
  %1856 = getelementptr inbounds %struct.complex, ptr %1850, i64 %1855
  %1857 = load ptr, ptr %28, align 8, !tbaa !5
  %1858 = load i32, ptr %67, align 4, !tbaa !9
  %1859 = load i32, ptr %39, align 4, !tbaa !9
  %1860 = mul nsw i32 %1858, %1859
  %1861 = add nsw i32 %1860, 1
  %1862 = sext i32 %1861 to i64
  %1863 = getelementptr inbounds %struct.complex, ptr %1857, i64 %1862
  call void @cswap_(ptr noundef %94, ptr noundef %1856, ptr noundef @c__1, ptr noundef %1863, ptr noundef @c__1)
  br label %1864

1864:                                             ; preds = %1849, %1758
  br label %1865

1865:                                             ; preds = %1864, %1741
  br label %1866

1866:                                             ; preds = %1865
  %1867 = load i32, ptr %66, align 4, !tbaa !9
  %1868 = add nsw i32 %1867, 1
  store i32 %1868, ptr %66, align 4, !tbaa !9
  br label %1737, !llvm.loop !23

1869:                                             ; preds = %1737
  store i32 1, ptr %99, align 4
  br label %1870

1870:                                             ; preds = %1869, %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  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 8, 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 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  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

; 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

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

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

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

declare void @cswap_(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}


; 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_b18 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local void @cgsvj1_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr noundef %4, ptr noundef %5, ptr nocapture noundef %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr noundef %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr nocapture noundef readonly %14, ptr noundef %15, ptr nocapture noundef readonly %16, ptr nocapture noundef writeonly %17) local_unnamed_addr #0 {
  %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 i32, align 4
  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
  %32 = getelementptr inbounds i8, ptr %7, i64 -4
  %33 = getelementptr inbounds i8, ptr %6, i64 -8
  %34 = load i32, ptr %5, align 4, !tbaa !5
  %narrow = xor i32 %34, -1
  %35 = sext i32 %narrow to i64
  %36 = getelementptr inbounds %struct.complex, ptr %4, i64 %35
  %37 = load i32, ptr %10, align 4, !tbaa !5
  %narrow612 = xor i32 %37, -1
  %38 = sext i32 %narrow612 to i64
  %39 = getelementptr inbounds %struct.complex, ptr %9, i64 %38
  %40 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #9
  %41 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #9
  %42 = icmp ne i32 %41, 0
  %43 = icmp ne i32 %40, 0
  %or.cond = select i1 %42, i1 true, i1 %43
  br i1 %or.cond, label %46, label %44

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

46:                                               ; preds = %44, %18
  %47 = load i32, ptr %1, align 4, !tbaa !5
  %48 = icmp slt i32 %47, 0
  br i1 %48, label %78, label %49

49:                                               ; preds = %46
  %50 = load i32, ptr %2, align 4, !tbaa !5
  %or.cond636 = icmp ugt i32 %50, %47
  br i1 %or.cond636, label %78, label %51

51:                                               ; preds = %49
  %52 = load i32, ptr %3, align 4, !tbaa !5
  %53 = icmp slt i32 %52, 0
  br i1 %53, label %78, label %54

54:                                               ; preds = %51
  %55 = load i32, ptr %5, align 4, !tbaa !5
  %56 = icmp slt i32 %55, %47
  br i1 %56, label %78, label %57

57:                                               ; preds = %54
  br i1 %or.cond, label %58, label %.thread648

58:                                               ; preds = %57
  %59 = load i32, ptr %8, align 4, !tbaa !5
  %60 = icmp slt i32 %59, 0
  br i1 %60, label %78, label %61

61:                                               ; preds = %58
  br i1 %42, label %62, label %65

62:                                               ; preds = %61
  %63 = load i32, ptr %10, align 4, !tbaa !5
  %64 = icmp slt i32 %63, %50
  br i1 %64, label %78, label %65

65:                                               ; preds = %62, %61
  br i1 %43, label %66, label %.thread648

66:                                               ; preds = %65
  %67 = load i32, ptr %10, align 4, !tbaa !5
  %68 = icmp slt i32 %67, %59
  br i1 %68, label %78, label %.thread648

.thread648:                                       ; preds = %57, %66, %65
  %69 = load float, ptr %13, align 4, !tbaa !9
  %70 = load float, ptr %11, align 4, !tbaa !9
  %71 = fcmp ugt float %69, %70
  br i1 %71, label %72, label %78

72:                                               ; preds = %.thread648
  %73 = load i32, ptr %14, align 4, !tbaa !5
  %74 = icmp slt i32 %73, 0
  br i1 %74, label %78, label %75

75:                                               ; preds = %72
  %76 = load i32, ptr %16, align 4, !tbaa !5
  %77 = icmp slt i32 %76, %47
  br i1 %77, label %78, label %80

78:                                               ; preds = %75, %72, %.thread648, %62, %66, %58, %54, %51, %49, %46, %44
  %.sink = phi i32 [ -1, %44 ], [ -2, %46 ], [ -3, %49 ], [ -4, %51 ], [ -6, %54 ], [ -9, %58 ], [ -11, %66 ], [ -11, %62 ], [ -14, %.thread648 ], [ -15, %72 ], [ -17, %75 ]
  %.ph.neg = phi i32 [ 1, %44 ], [ 2, %46 ], [ 3, %49 ], [ 4, %51 ], [ 6, %54 ], [ 9, %58 ], [ 11, %66 ], [ 11, %62 ], [ 14, %.thread648 ], [ 15, %72 ], [ 17, %75 ]
  store i32 %.sink, ptr %17, align 4, !tbaa !5
  store i32 %.ph.neg, ptr %19, align 4, !tbaa !5
  %79 = call i32 @xerbla_(ptr noundef nonnull @.str.3, ptr noundef nonnull %19, i32 noundef 6) #9
  br label %.loopexit

80:                                               ; preds = %75
  store i32 0, ptr %17, align 4, !tbaa !5
  br i1 %42, label %81, label %83

81:                                               ; preds = %80
  %82 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %82, ptr %31, align 4, !tbaa !5
  br label %86

83:                                               ; preds = %80
  br i1 %43, label %84, label %86

84:                                               ; preds = %83
  %85 = load i32, ptr %8, align 4, !tbaa !5
  store i32 %85, ptr %31, align 4, !tbaa !5
  br label %86

86:                                               ; preds = %83, %84, %81
  %sqrtf = tail call float @sqrtf(float noundef %70) #3
  %87 = load float, ptr %12, align 4, !tbaa !9
  %sqrtf614 = tail call float @sqrtf(float noundef %87) #3
  %88 = load float, ptr %12, align 4, !tbaa !9
  %89 = load float, ptr %11, align 4, !tbaa !9
  %90 = fdiv float %88, %89
  %91 = fdiv float 1.000000e+00, %88
  %92 = fdiv float 1.000000e+00, %sqrtf614
  %93 = fdiv float 1.000000e+00, %sqrtf
  %94 = load float, ptr %13, align 4, !tbaa !9
  %sqrtf615 = tail call float @sqrtf(float noundef %94) #3
  %95 = load i32, ptr %3, align 4, !tbaa !5
  %96 = load i32, ptr %2, align 4, !tbaa !5
  %97 = sub nsw i32 %96, %95
  %98 = mul nsw i32 %97, %95
  %spec.select = tail call i32 @llvm.smin.i32(i32 %96, i32 8)
  %99 = sdiv i32 %95, %spec.select
  %100 = mul nsw i32 %99, %spec.select
  %.not616 = icmp ne i32 %100, %95
  %101 = zext i1 %.not616 to i32
  %.0541 = add nsw i32 %99, %101
  %102 = mul nsw i32 %spec.select, %spec.select
  %103 = tail call i32 @llvm.smin.i32(i32 %96, i32 5)
  %104 = load i32, ptr %14, align 4, !tbaa !5
  store i32 %104, ptr %19, align 4, !tbaa !5
  %invariant.gep821 = getelementptr i8, ptr %36, i64 8
  %.not618825 = icmp slt i32 %104, 1
  br i1 %.not618825, label %._crit_edge832, label %.lr.ph831

.lr.ph831:                                        ; preds = %86
  %105 = sdiv i32 %97, %spec.select
  %106 = mul nsw i32 %105, %spec.select
  %.not617 = icmp ne i32 %106, %97
  %107 = zext i1 %.not617 to i32
  %.0 = add i32 %105, %107
  %.not624778 = icmp slt i32 %.0, 1
  %invariant.gep721 = getelementptr i8, ptr %39, i64 8
  %108 = getelementptr inbounds i8, ptr %25, i64 4
  %109 = sext i32 %34 to i64
  %110 = sext i32 %37 to i64
  %111 = tail call i32 @llvm.smin.i32(i32 %96, i32 8)
  %smin = sext i32 %111 to i64
  %.not619799 = icmp slt i32 %.0541, 1
  %112 = insertelement <2 x float> poison, float %90, i64 0
  %113 = shufflevector <2 x float> %112, <2 x float> poison, <2 x i32> zeroinitializer
  br label %114

114:                                              ; preds = %.lr.ph831, %571
  %.0554827 = phi i32 [ 1, %.lr.ph831 ], [ %572, %571 ]
  %.0576826 = phi i32 [ 0, %.lr.ph831 ], [ %.1577, %571 ]
  store i32 %.0541, ptr %20, align 4, !tbaa !5
  br i1 %.not619799, label %.._crit_edge809_crit_edge, label %.lr.ph808

.._crit_edge809_crit_edge:                        ; preds = %114
  %.pre880 = load i32, ptr %2, align 4, !tbaa !5
  br label %._crit_edge809

.lr.ph808:                                        ; preds = %114
  %.not632 = icmp sle i32 %.0554827, %.0576826
  br i1 %.not624778, label %.lr.ph808.split.us, label %.lr.ph787

.lr.ph808.split.us:                               ; preds = %.lr.ph808
  %115 = load i32, ptr %2, align 4, !tbaa !5
  br label %.loopexit661.us

.loopexit661.us:                                  ; preds = %._crit_edge798.us, %.lr.ph808.split.us
  %indvar917 = phi i64 [ %indvar.next918, %._crit_edge798.us ], [ 0, %.lr.ph808.split.us ]
  %indvar = phi i32 [ %indvar.next, %._crit_edge798.us ], [ 0, %.lr.ph808.split.us ]
  %indvars.iv872 = phi i64 [ %indvars.iv.next873, %._crit_edge798.us ], [ 0, %.lr.ph808.split.us ]
  %.0540804.us = phi i32 [ %141, %._crit_edge798.us ], [ 1, %.lr.ph808.split.us ]
  %116 = add i32 %indvar, 1
  %117 = mul i32 %spec.select, %116
  %118 = call i32 @llvm.smin.i32(i32 %115, i32 %117)
  %smin916 = sext i32 %118 to i64
  %119 = add i64 %indvars.iv872, 1
  %smax = call i64 @llvm.smax.i64(i64 %smin916, i64 %119)
  %120 = mul i64 %indvar917, %smin
  %121 = sub i64 %smax, %120
  %122 = add nsw i32 %.0540804.us, -1
  %123 = mul nsw i32 %122, %spec.select
  %124 = mul i32 %.0540804.us, %spec.select
  %.645.us = call i32 @llvm.smin.i32(i32 %124, i32 %115)
  %.not635794.us.not = icmp slt i32 %123, %.645.us
  br i1 %.not635794.us.not, label %.lr.ph797.us.preheader, label %._crit_edge798.us

.lr.ph797.us.preheader:                           ; preds = %.loopexit661.us
  %125 = sext i32 %.645.us to i64
  %min.iters.check = icmp ult i64 %121, 8
  br i1 %min.iters.check, label %.lr.ph797.us.preheader936, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph797.us.preheader
  %n.vec = and i64 %121, -8
  %ind.end = add i64 %indvars.iv872, %n.vec
  %126 = getelementptr float, ptr %7, i64 %indvars.iv872
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %127 = getelementptr float, ptr %126, i64 %index
  %128 = getelementptr i8, ptr %127, i64 16
  %wide.load = load <4 x float>, ptr %127, align 4, !tbaa !9
  %wide.load919 = load <4 x float>, ptr %128, align 4, !tbaa !9
  %129 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %130 = fcmp oge <4 x float> %wide.load919, zeroinitializer
  %131 = fneg <4 x float> %wide.load
  %132 = fneg <4 x float> %wide.load919
  %133 = select <4 x i1> %129, <4 x float> %wide.load, <4 x float> %131
  %134 = select <4 x i1> %130, <4 x float> %wide.load919, <4 x float> %132
  store <4 x float> %133, ptr %127, align 4, !tbaa !9
  store <4 x float> %134, ptr %128, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %135 = icmp eq i64 %index.next, %n.vec
  br i1 %135, label %middle.block, label %vector.body, !llvm.loop !11

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %121, %n.vec
  br i1 %cmp.n, label %._crit_edge798.us, label %.lr.ph797.us.preheader936

.lr.ph797.us.preheader936:                        ; preds = %middle.block, %.lr.ph797.us.preheader
  %indvars.iv874.ph = phi i64 [ %indvars.iv872, %.lr.ph797.us.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph797.us

.lr.ph797.us:                                     ; preds = %.lr.ph797.us.preheader936, %.lr.ph797.us
  %indvars.iv874 = phi i64 [ %indvars.iv.next875, %.lr.ph797.us ], [ %indvars.iv874.ph, %.lr.ph797.us.preheader936 ]
  %indvars.iv.next875 = add nsw i64 %indvars.iv874, 1
  %136 = getelementptr float, ptr %7, i64 %indvars.iv874
  %137 = load float, ptr %136, align 4, !tbaa !9
  %138 = fcmp oge float %137, 0.000000e+00
  %139 = fneg float %137
  %140 = select i1 %138, float %137, float %139
  store float %140, ptr %136, align 4, !tbaa !9
  %.not635.us.not = icmp slt i64 %indvars.iv.next875, %125
  br i1 %.not635.us.not, label %.lr.ph797.us, label %._crit_edge798.us, !llvm.loop !15

._crit_edge798.us:                                ; preds = %.lr.ph797.us, %middle.block, %.loopexit661.us
  %141 = add nuw i32 %.0540804.us, 1
  %indvars.iv.next873 = add i64 %indvars.iv872, %smin
  %exitcond876.not = icmp eq i32 %.0540804.us, %.0541
  %indvar.next = add i32 %indvar, 1
  %indvar.next918 = add i64 %indvar917, 1
  br i1 %exitcond876.not, label %._crit_edge809, label %.loopexit661.us, !llvm.loop !16

.lr.ph787:                                        ; preds = %.lr.ph808, %._crit_edge798
  %indvars.iv864 = phi i32 [ %indvars.iv.next865, %._crit_edge798 ], [ 1, %.lr.ph808 ]
  %.0540804 = phi i32 [ %526, %._crit_edge798 ], [ 1, %.lr.ph808 ]
  %.0544803 = phi i32 [ %.7, %._crit_edge798 ], [ 0, %.lr.ph808 ]
  %.0546802 = phi i32 [ %.8, %._crit_edge798 ], [ 0, %.lr.ph808 ]
  %.0555801 = phi float [ %.9, %._crit_edge798 ], [ 0.000000e+00, %.lr.ph808 ]
  %.0565800 = phi float [ %.7572, %._crit_edge798 ], [ 0.000000e+00, %.lr.ph808 ]
  %142 = sext i32 %indvars.iv864 to i64
  %143 = sext i32 %indvars.iv864 to i64
  %144 = add nsw i32 %.0540804, -1
  %145 = mul nsw i32 %144, %spec.select
  %146 = mul i32 %.0540804, %spec.select
  br label %147

147:                                              ; preds = %.lr.ph787, %._crit_edge
  %indvars.iv = phi i32 [ 0, %.lr.ph787 ], [ %indvars.iv.next, %._crit_edge ]
  %.0543783 = phi i32 [ 1, %.lr.ph787 ], [ %508, %._crit_edge ]
  %.1545782 = phi i32 [ %.0544803, %.lr.ph787 ], [ %.2.lcssa, %._crit_edge ]
  %.1547781 = phi i32 [ %.0546802, %.lr.ph787 ], [ %.2548.lcssa, %._crit_edge ]
  %.1556780 = phi float [ %.0555801, %.lr.ph787 ], [ %.2557.lcssa, %._crit_edge ]
  %.1566779 = phi float [ %.0565800, %.lr.ph787 ], [ %.2567.lcssa, %._crit_edge ]
  %148 = add nsw i32 %.0543783, -1
  %149 = mul nsw i32 %148, %spec.select
  %150 = load i32, ptr %3, align 4, !tbaa !5
  %151 = add nsw i32 %150, %149
  %. = call i32 @llvm.smin.i32(i32 %146, i32 %150)
  %.not626760.not = icmp slt i32 %145, %.
  br i1 %.not626760.not, label %.lr.ph771, label %._crit_edge

.lr.ph771:                                        ; preds = %147
  %152 = add i32 %151, %spec.select
  %153 = add i32 %150, %indvars.iv
  %154 = sext i32 %153 to i64
  %155 = sext i32 %. to i64
  br label %156

156:                                              ; preds = %.lr.ph771, %507
  %indvars.iv866 = phi i64 [ %143, %.lr.ph771 ], [ %indvars.iv.next867, %507 ]
  %.2768 = phi i32 [ %.1545782, %.lr.ph771 ], [ %.6, %507 ]
  %.2548767 = phi i32 [ %.1547781, %.lr.ph771 ], [ %.7553, %507 ]
  %.2557766 = phi float [ %.1556780, %.lr.ph771 ], [ %.8563, %507 ]
  %.2567765 = phi float [ %.1566779, %.lr.ph771 ], [ %.6571, %507 ]
  %.0578761 = phi i32 [ 0, %.lr.ph771 ], [ %.4582, %507 ]
  %157 = getelementptr inbounds float, ptr %32, i64 %indvars.iv866
  %158 = load float, ptr %157, align 4, !tbaa !9
  store float %158, ptr %24, align 4, !tbaa !9
  %159 = fcmp ogt float %158, 0.000000e+00
  br i1 %159, label %160, label %498

160:                                              ; preds = %156
  %161 = load i32, ptr %2, align 4, !tbaa !5
  %.637 = call i32 @llvm.smin.i32(i32 %152, i32 %161)
  %.not629741.not = icmp slt i32 %151, %.637
  br i1 %.not629741.not, label %.lr.ph, label %.loopexit660

.lr.ph:                                           ; preds = %160
  %162 = mul nsw i64 %indvars.iv866, %109
  %gep = getelementptr %struct.complex, ptr %invariant.gep821, i64 %162
  %163 = mul nsw i64 %indvars.iv866, %110
  %gep722 = getelementptr %struct.complex, ptr %invariant.gep721, i64 %163
  %164 = getelementptr inbounds %struct.complex, ptr %33, i64 %indvars.iv866
  %165 = sext i32 %.637 to i64
  br label %167

166:                                              ; preds = %492
  %.not629.not = icmp slt i64 %indvars.iv.next862, %165
  br i1 %.not629.not, label %167, label %.loopexit660.loopexit, !llvm.loop !17

167:                                              ; preds = %.lr.ph, %166
  %indvars.iv861 = phi i64 [ %154, %.lr.ph ], [ %indvars.iv.next862, %166 ]
  %.0542751 = phi i32 [ 0, %.lr.ph ], [ %.1, %166 ]
  %.3750 = phi i32 [ %.2768, %.lr.ph ], [ %.4, %166 ]
  %.3549749 = phi i32 [ %.2548767, %.lr.ph ], [ %.4550, %166 ]
  %.3558748 = phi float [ %.2557766, %.lr.ph ], [ %.6561, %166 ]
  %.3568747 = phi float [ %.2567765, %.lr.ph ], [ %.4569, %166 ]
  %.1579746 = phi i32 [ %.0578761, %.lr.ph ], [ %.2580, %166 ]
  %indvars.iv.next862 = add nsw i64 %indvars.iv861, 1
  %168 = getelementptr float, ptr %7, i64 %indvars.iv861
  %169 = load float, ptr %168, align 4, !tbaa !9
  store float %169, ptr %26, align 4, !tbaa !9
  %170 = fcmp ogt float %169, 0.000000e+00
  br i1 %170, label %171, label %485

171:                                              ; preds = %167
  %172 = load float, ptr %24, align 4, !tbaa !9
  %173 = fcmp ult float %169, 1.000000e+00
  %174 = fcmp ult float %172, %169
  br i1 %173, label %204, label %175

175:                                              ; preds = %171
  %176 = fmul float %90, %172
  %177 = fcmp ole float %176, %169
  %178 = fmul float %90, %169
  %179 = fcmp ole float %178, %172
  %.0585.in = select i1 %174, i1 %179, i1 %177
  %180 = fdiv float %91, %169
  %181 = fcmp olt float %172, %180
  br i1 %181, label %182, label %195

182:                                              ; preds = %175
  %183 = mul nsw i64 %indvars.iv.next862, %109
  %gep700 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %183
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep700, ptr noundef nonnull @c__1)
  %184 = load float, ptr %26, align 4, !tbaa !9
  %185 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %186 = insertelement <2 x float> poison, float %184, i64 0
  %187 = shufflevector <2 x float> %186, <2 x float> poison, <2 x i32> zeroinitializer
  %188 = fdiv <2 x float> %185, %187
  store <2 x float> %188, ptr %22, align 8, !tbaa !9
  %189 = load float, ptr %24, align 4, !tbaa !9
  %190 = insertelement <2 x float> poison, float %189, i64 0
  %191 = shufflevector <2 x float> %190, <2 x float> poison, <2 x i32> zeroinitializer
  %192 = fdiv <2 x float> %188, %191
  store <2 x float> %192, ptr %21, align 8, !tbaa !9
  %193 = extractelement <2 x float> %192, i64 0
  store float %193, ptr %25, align 8, !tbaa !18
  %194 = extractelement <2 x float> %192, i64 1
  br label %240

195:                                              ; preds = %175
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %15, 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_b18, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull %5, ptr noundef nonnull %27) #9
  %196 = mul nsw i64 %indvars.iv.next862, %109
  %gep696 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %196
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %1, ptr noundef %15, ptr noundef nonnull @c__1, ptr noundef %gep696, ptr noundef nonnull @c__1)
  %197 = load float, ptr %26, align 4, !tbaa !9
  %198 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %199 = insertelement <2 x float> poison, float %197, i64 0
  %200 = shufflevector <2 x float> %199, <2 x float> poison, <2 x i32> zeroinitializer
  %201 = fdiv <2 x float> %198, %200
  store <2 x float> %201, ptr %21, align 8, !tbaa !9
  %202 = extractelement <2 x float> %201, i64 0
  store float %202, ptr %25, align 8, !tbaa !18
  %203 = extractelement <2 x float> %201, i64 1
  br label %240

204:                                              ; preds = %171
  %205 = insertelement <2 x float> poison, float %169, i64 0
  %206 = insertelement <2 x float> %205, float %172, i64 1
  %207 = fdiv <2 x float> %206, %113
  %208 = insertelement <2 x float> poison, float %172, i64 0
  %209 = insertelement <2 x float> %208, float %169, i64 1
  %210 = fcmp ole <2 x float> %209, %207
  %211 = extractelement <2 x i1> %210, i64 0
  %212 = extractelement <2 x i1> %210, i64 1
  %.1586.in = select i1 %174, i1 %212, i1 %211
  %213 = fdiv float %90, %169
  %214 = fcmp ogt float %172, %213
  %215 = mul nsw i64 %indvars.iv.next862, %109
  %gep708 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %215
  br i1 %214, label %216, label %232

216:                                              ; preds = %204
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep708, ptr noundef nonnull @c__1)
  %217 = load float, ptr %26, align 4
  %218 = load float, ptr %24, align 4
  %219 = fcmp oge float %217, %218
  %220 = select i1 %219, float %217, float %218
  %221 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %222 = insertelement <2 x float> poison, float %220, i64 0
  %223 = shufflevector <2 x float> %222, <2 x float> poison, <2 x i32> zeroinitializer
  %224 = fdiv <2 x float> %221, %223
  store <2 x float> %224, ptr %22, align 8, !tbaa !9
  %225 = fcmp ole float %217, %218
  %226 = select i1 %225, float %217, float %218
  %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> %224, %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 !18
  %231 = extractelement <2 x float> %229, i64 1
  br label %240

232:                                              ; preds = %204
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep708, ptr noundef nonnull @c__1, ptr noundef %15, 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_b18, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull %5, 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 %15, 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 !18
  %239 = extractelement <2 x float> %237, i64 1
  br label %240

240:                                              ; preds = %216, %232, %182, %195
  %.sink895 = phi float [ %231, %216 ], [ %239, %232 ], [ %194, %182 ], [ %203, %195 ]
  %.2587.in = phi i1 [ %.1586.in, %216 ], [ %.1586.in, %232 ], [ %.0585.in, %182 ], [ %.0585.in, %195 ]
  store float %.sink895, ptr %108, align 4, !tbaa !20
  %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 %.3568747, %242
  %245 = select i1 %244, float %.3568747, float %242
  %246 = fcmp ole float %242, 0.000000e+00
  %247 = select i1 %246, float %243, float %242
  %248 = load float, ptr %13, align 4, !tbaa !9
  %249 = fcmp ogt float %247, %248
  br i1 %249, label %250, label %481

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
  %257 = add nsw i32 %.3750, 1
  br i1 %.2587.in, label %258, label %407

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

279:                                              ; preds = %258
  %280 = fdiv float 5.000000e-01, %.0584
  store float %280, ptr %29, align 4, !tbaa !9
  store float 1.000000e+00, ptr %30, align 4, !tbaa !9
  %281 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %281, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %281, i64 1
  %282 = fneg float %.sroa.07.4.vec.extract
  %283 = call ptr @_pCf(ptr noundef nonnull %22)
  %284 = getelementptr inbounds i8, ptr %283, i64 4
  store float %.sroa.07.0.vec.extract, ptr %283, align 4
  store float %282, ptr %284, align 4
  %285 = load float, ptr %29, align 4, !tbaa !9
  %286 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %287 = insertelement <2 x float> poison, float %285, i64 0
  %288 = shufflevector <2 x float> %287, <2 x float> poison, <2 x i32> zeroinitializer
  %289 = fmul <2 x float> %288, %286
  store <2 x float> %289, ptr %21, align 8, !tbaa !9
  %290 = mul nsw i64 %indvars.iv.next862, %109
  %gep728 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %290
  call void @crot_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep728, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %21) #9
  br i1 %or.cond, label %291, label %302

291:                                              ; preds = %279
  %292 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.06.0.vec.extract = extractelement <2 x float> %292, i64 0
  %.sroa.06.4.vec.extract = extractelement <2 x float> %292, i64 1
  %293 = fneg float %.sroa.06.4.vec.extract
  %294 = call ptr @_pCf(ptr noundef nonnull %22)
  %295 = getelementptr inbounds i8, ptr %294, i64 4
  store float %.sroa.06.0.vec.extract, ptr %294, align 4
  store float %293, ptr %295, align 4
  %296 = load float, ptr %29, align 4, !tbaa !9
  %297 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %298 = insertelement <2 x float> poison, float %296, i64 0
  %299 = shufflevector <2 x float> %298, <2 x float> poison, <2 x i32> zeroinitializer
  %300 = fmul <2 x float> %299, %297
  store <2 x float> %300, ptr %21, align 8, !tbaa !9
  %301 = mul nsw i64 %indvars.iv.next862, %110
  %gep732 = getelementptr %struct.complex, ptr %invariant.gep721, i64 %301
  call void @crot_(ptr noundef nonnull %31, ptr noundef %gep722, ptr noundef nonnull @c__1, ptr noundef %gep732, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %21) #9
  br label %302

302:                                              ; preds = %291, %279
  %303 = load float, ptr %29, align 4
  %304 = load float, ptr %26, align 4, !tbaa !9
  %305 = fpext float %304 to double
  %306 = fneg float %303
  %307 = insertelement <2 x float> poison, float %306, i64 0
  %308 = insertelement <2 x float> %307, float %303, i64 1
  %309 = fmul <2 x float> %265, %308
  %310 = insertelement <2 x float> poison, float %243, i64 0
  %311 = shufflevector <2 x float> %310, <2 x float> poison, <2 x i32> zeroinitializer
  %312 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %309, <2 x float> %311, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %313 = fcmp ole <2 x float> %312, zeroinitializer
  %314 = extractelement <2 x i1> %313, i64 1
  %315 = extractelement <2 x float> %312, i64 1
  %316 = fpext float %315 to double
  %317 = select i1 %314, double 0.000000e+00, double %316
  %sqrt652 = call double @llvm.sqrt.f64(double %317)
  %318 = fmul double %sqrt652, %305
  %319 = fptrunc double %318 to float
  store float %319, ptr %168, align 4, !tbaa !9
  %320 = extractelement <2 x i1> %313, i64 0
  %321 = extractelement <2 x float> %312, i64 0
  %322 = fpext float %321 to double
  %323 = select i1 %320, double 0.000000e+00, double %322
  %sqrt = call double @llvm.sqrt.f64(double %323)
  %324 = load float, ptr %24, align 4, !tbaa !9
  %325 = fpext float %324 to double
  %326 = fmul double %sqrt, %325
  %327 = fptrunc double %326 to float
  store float %327, ptr %24, align 4, !tbaa !9
  %328 = fcmp oge float %303, 0.000000e+00
  %329 = select i1 %328, float %303, float %306
  %330 = fcmp oge float %.3558748, %329
  %331 = select i1 %330, float %.3558748, float %329
  br label %397

332:                                              ; preds = %258
  %333 = load float, ptr @c_b18, align 4
  %334 = fcmp oge float %333, 0.000000e+00
  %335 = fneg float %333
  br i1 %246, label %336, label %338

336:                                              ; preds = %332
  %337 = select i1 %334, float %333, float %335
  br label %340

338:                                              ; preds = %332
  %339 = select i1 %334, float %335, float %333
  br label %340

340:                                              ; preds = %338, %336
  %341 = phi float [ %337, %336 ], [ %339, %338 ]
  %342 = fneg float %341
  %.0564 = select i1 %273, float %341, float %342
  %343 = fpext float %.0584 to double
  %344 = fpext float %.0564 to double
  %345 = call float @llvm.fmuladd.f32(float %.0584, float %.0584, float 1.000000e+00)
  %346 = fpext float %345 to double
  %sqrt656 = call double @llvm.sqrt.f64(double %346)
  %347 = call double @llvm.fmuladd.f64(double %344, double %sqrt656, double %343)
  %348 = fdiv double 1.000000e+00, %347
  %349 = fptrunc double %348 to float
  store float %349, ptr %29, align 4, !tbaa !9
  %350 = call float @llvm.fmuladd.f32(float %349, float %349, float 1.000000e+00)
  %351 = fdiv float 1.000000e+00, %350
  %sqrt655 = call float @llvm.sqrt.f32(float %351)
  store float %sqrt655, ptr %30, align 4, !tbaa !9
  %352 = fmul float %sqrt655, %349
  %353 = fcmp oge float %352, 0.000000e+00
  %354 = fneg float %352
  %355 = select i1 %353, float %352, float %354
  %356 = fcmp oge float %.3558748, %355
  %357 = select i1 %356, float %.3558748, float %355
  %358 = fpext float %259 to double
  %359 = fneg float %349
  %360 = insertelement <2 x float> poison, float %359, i64 0
  %361 = insertelement <2 x float> %360, float %349, i64 1
  %362 = fmul <2 x float> %265, %361
  %363 = insertelement <2 x float> poison, float %243, i64 0
  %364 = shufflevector <2 x float> %363, <2 x float> poison, <2 x i32> zeroinitializer
  %365 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %362, <2 x float> %364, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %366 = fcmp ole <2 x float> %365, zeroinitializer
  %367 = extractelement <2 x i1> %366, i64 1
  %368 = extractelement <2 x float> %365, i64 1
  %369 = fpext float %368 to double
  %370 = select i1 %367, double 0.000000e+00, double %369
  %sqrt654 = call double @llvm.sqrt.f64(double %370)
  %371 = fmul double %sqrt654, %358
  %372 = fptrunc double %371 to float
  store float %372, ptr %168, align 4, !tbaa !9
  %373 = extractelement <2 x i1> %366, i64 0
  %374 = extractelement <2 x float> %365, i64 0
  %375 = fpext float %374 to double
  %376 = select i1 %373, double 0.000000e+00, double %375
  %sqrt653 = call double @llvm.sqrt.f64(double %376)
  %377 = fpext float %260 to double
  %378 = fmul double %sqrt653, %377
  %379 = fptrunc double %378 to float
  store float %379, ptr %24, align 4, !tbaa !9
  %380 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.05.0.vec.extract = extractelement <2 x float> %380, i64 0
  %.sroa.05.4.vec.extract = extractelement <2 x float> %380, i64 1
  %381 = fneg float %.sroa.05.4.vec.extract
  %382 = call ptr @_pCf(ptr noundef nonnull %22)
  %383 = getelementptr inbounds i8, ptr %382, i64 4
  store float %.sroa.05.0.vec.extract, ptr %382, align 4
  store float %381, ptr %383, align 4
  %384 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %385 = insertelement <2 x float> poison, float %352, i64 0
  %386 = shufflevector <2 x float> %385, <2 x float> poison, <2 x i32> zeroinitializer
  %387 = fmul <2 x float> %386, %384
  store <2 x float> %387, ptr %21, align 8, !tbaa !9
  %388 = mul nsw i64 %indvars.iv.next862, %109
  %gep720 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %388
  call void @crot_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep720, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %21) #9
  br i1 %or.cond, label %389, label %397

389:                                              ; preds = %340
  %390 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.04.0.vec.extract = extractelement <2 x float> %390, i64 0
  %.sroa.04.4.vec.extract = extractelement <2 x float> %390, i64 1
  %391 = fneg float %.sroa.04.4.vec.extract
  %392 = call ptr @_pCf(ptr noundef nonnull %22)
  %393 = getelementptr inbounds i8, ptr %392, i64 4
  store float %.sroa.04.0.vec.extract, ptr %392, align 4
  store float %391, ptr %393, align 4
  %394 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %395 = fmul <2 x float> %386, %394
  store <2 x float> %395, ptr %21, align 8, !tbaa !9
  %396 = mul nsw i64 %indvars.iv.next862, %110
  %gep724 = getelementptr %struct.complex, ptr %invariant.gep721, i64 %396
  call void @crot_(ptr noundef nonnull %31, ptr noundef %gep722, ptr noundef nonnull @c__1, ptr noundef %gep724, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %21) #9
  br label %397

397:                                              ; preds = %340, %389, %302
  %.4559 = phi float [ %331, %302 ], [ %357, %389 ], [ %357, %340 ]
  %398 = getelementptr %struct.complex, ptr %6, i64 %indvars.iv861
  %399 = load <2 x float>, ptr %398, align 4, !tbaa !9
  %400 = fneg <2 x float> %399
  store <2 x float> %400, ptr %22, align 8, !tbaa !9
  %401 = load <2 x float>, ptr %28, align 8, !tbaa !9
  %402 = shufflevector <2 x float> %400, <2 x float> %399, <2 x i32> <i32 1, i32 3>
  %403 = fmul <2 x float> %402, %401
  %404 = shufflevector <2 x float> %403, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %405 = shufflevector <2 x float> %400, <2 x float> poison, <2 x i32> zeroinitializer
  %406 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %405, <2 x float> %401, <2 x float> %404)
  store <2 x float> %406, ptr %21, align 8, !tbaa !9
  store <2 x float> %406, ptr %164, align 4, !tbaa !9
  br label %441

407:                                              ; preds = %250
  %408 = load float, ptr %24, align 4, !tbaa !9
  %409 = load float, ptr %26, align 4, !tbaa !9
  %410 = fcmp ogt float %408, %409
  br i1 %410, label %411, label %424

411:                                              ; preds = %407
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %15, 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_b18, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull %5, ptr noundef nonnull %27) #9
  %412 = mul nsw i64 %indvars.iv.next862, %109
  %gep716 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %412
  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_b18, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep716, ptr noundef nonnull %5, ptr noundef nonnull %27) #9
  %413 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %414 = fneg <2 x float> %413
  store <2 x float> %414, ptr %21, align 8, !tbaa !9
  call void @caxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %15, ptr noundef nonnull @c__1, ptr noundef %gep716, 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_b18, ptr noundef nonnull %26, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep716, ptr noundef nonnull %5, ptr noundef nonnull %27) #9
  %415 = call float @llvm.fmuladd.f32(float %242, float %243, float 1.000000e+00)
  %416 = load float, ptr %26, align 4, !tbaa !9
  %417 = fpext float %416 to double
  %418 = fcmp ole float %415, 0.000000e+00
  %419 = select i1 %418, float 0.000000e+00, float %415
  %420 = fpext float %419 to double
  %sqrt657 = call double @llvm.sqrt.f64(double %420)
  %421 = fmul double %sqrt657, %417
  %422 = fptrunc double %421 to float
  store float %422, ptr %168, align 4, !tbaa !9
  %423 = load float, ptr %12, align 4, !tbaa !9
  %.inv651 = fcmp oge float %.3558748, %423
  %..3558 = select i1 %.inv651, float %.3558748, float %423
  br label %441

424:                                              ; preds = %407
  %425 = mul nsw i64 %indvars.iv.next862, %109
  %gep710 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %425
  call void @ccopy_(ptr noundef nonnull %1, ptr noundef %gep710, ptr noundef nonnull @c__1, ptr noundef %15, 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_b18, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull %5, 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_b18, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull %5, ptr noundef nonnull %27) #9
  %426 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %426, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %426, i64 1
  %427 = fneg float %.sroa.0.4.vec.extract
  %428 = call ptr @_pCf(ptr noundef nonnull %22)
  %429 = getelementptr inbounds i8, ptr %428, i64 4
  store float %.sroa.0.0.vec.extract, ptr %428, align 4
  store float %427, ptr %429, align 4
  %430 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %431 = fneg <2 x float> %430
  store <2 x float> %431, ptr %21, align 8, !tbaa !9
  call void @caxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %15, ptr noundef nonnull @c__1, ptr noundef %gep, 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_b18, ptr noundef nonnull %24, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull %5, ptr noundef nonnull %27) #9
  %432 = call float @llvm.fmuladd.f32(float %242, float %243, float 1.000000e+00)
  %433 = load float, ptr %24, align 4, !tbaa !9
  %434 = fpext float %433 to double
  %435 = fcmp ole float %432, 0.000000e+00
  %436 = select i1 %435, float 0.000000e+00, float %432
  %437 = fpext float %436 to double
  %sqrt658 = call double @llvm.sqrt.f64(double %437)
  %438 = fmul double %sqrt658, %434
  %439 = fptrunc double %438 to float
  store float %439, ptr %157, align 4, !tbaa !9
  %440 = load float, ptr %12, align 4, !tbaa !9
  %.inv = fcmp oge float %.3558748, %440
  %..3558638 = select i1 %.inv, float %.3558748, float %440
  br label %441

441:                                              ; preds = %411, %424, %397
  %.5560 = phi float [ %.4559, %397 ], [ %..3558, %411 ], [ %..3558638, %424 ]
  %442 = load float, ptr %168, align 4, !tbaa !9
  %443 = load float, ptr %26, align 4, !tbaa !9
  %444 = fdiv float %442, %443
  %445 = fmul float %444, %444
  %446 = fcmp ugt float %445, %sqrtf
  br i1 %446, label %462, label %447

447:                                              ; preds = %441
  %448 = fcmp olt float %443, %92
  %449 = fcmp ogt float %443, %sqrtf614
  %or.cond639 = and i1 %448, %449
  br i1 %or.cond639, label %450, label %453

450:                                              ; preds = %447
  %451 = mul nsw i64 %indvars.iv.next862, %109
  %gep736 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %451
  %452 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep736, ptr noundef nonnull @c__1) #9
  br label %.sink.split

453:                                              ; preds = %447
  store float 0.000000e+00, ptr %29, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %454 = mul nsw i64 %indvars.iv.next862, %109
  %gep734 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %454
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep734, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %26) #9
  %455 = load float, ptr %29, align 4, !tbaa !9
  %456 = fpext float %455 to double
  %457 = load float, ptr %26, align 4, !tbaa !9
  %458 = fpext float %457 to double
  %459 = call double @sqrt(double noundef %458) #9
  %460 = fmul double %459, %456
  %461 = fptrunc double %460 to float
  br label %.sink.split

.sink.split:                                      ; preds = %453, %450
  %.sink896 = phi float [ %452, %450 ], [ %461, %453 ]
  store float %.sink896, ptr %168, align 4, !tbaa !9
  br label %462

462:                                              ; preds = %.sink.split, %441
  %463 = load float, ptr %24, align 4, !tbaa !9
  %464 = fdiv float %463, %172
  %465 = fmul float %464, %464
  %466 = fcmp ugt float %465, %sqrtf
  br i1 %466, label %489, label %467

467:                                              ; preds = %462
  %468 = fcmp olt float %463, %92
  %469 = fcmp ogt float %463, %sqrtf614
  %or.cond640 = and i1 %468, %469
  br i1 %or.cond640, label %470, label %472

470:                                              ; preds = %467
  %471 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1) #9
  br label %480

472:                                              ; preds = %467
  store float 0.000000e+00, ptr %29, 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 %29, ptr noundef nonnull %24) #9
  %473 = load float, ptr %29, align 4, !tbaa !9
  %474 = fpext float %473 to double
  %475 = load float, ptr %24, align 4, !tbaa !9
  %476 = fpext float %475 to double
  %477 = call double @sqrt(double noundef %476) #9
  %478 = fmul double %477, %474
  %479 = fptrunc double %478 to float
  br label %480

480:                                              ; preds = %472, %470
  %storemerge631 = phi float [ %479, %472 ], [ %471, %470 ]
  store float %storemerge631, ptr %24, align 4, !tbaa !9
  store float %storemerge631, ptr %157, align 4, !tbaa !9
  br label %489

481:                                              ; preds = %240
  %482 = add nsw i32 %.3549749, 1
  %483 = add nsw i32 %.0542751, 1
  %484 = add nsw i32 %.1579746, 1
  br label %489

485:                                              ; preds = %167
  %486 = add nsw i32 %.3549749, 1
  %487 = add nsw i32 %.0542751, 1
  %488 = add nsw i32 %.1579746, 1
  br label %489

489:                                              ; preds = %481, %480, %462, %485
  %.2580 = phi i32 [ %.1579746, %480 ], [ %.1579746, %462 ], [ %484, %481 ], [ %488, %485 ]
  %.4569 = phi float [ %245, %480 ], [ %245, %462 ], [ %245, %481 ], [ %.3568747, %485 ]
  %.6561 = phi float [ %.5560, %480 ], [ %.5560, %462 ], [ %.3558748, %481 ], [ %.3558748, %485 ]
  %.4550 = phi i32 [ 0, %480 ], [ 0, %462 ], [ %482, %481 ], [ %486, %485 ]
  %.4 = phi i32 [ %257, %480 ], [ %257, %462 ], [ %.3750, %481 ], [ %.3750, %485 ]
  %.1 = phi i32 [ 0, %480 ], [ 0, %462 ], [ %483, %481 ], [ %487, %485 ]
  %.not633.not = icmp sgt i32 %.2580, %102
  %or.cond641 = select i1 %.not632, i1 %.not633.not, i1 false
  br i1 %or.cond641, label %490, label %492

490:                                              ; preds = %489
  %491 = load float, ptr %24, align 4, !tbaa !9
  store float %491, ptr %157, align 4, !tbaa !9
  br label %..loopexit661_crit_edge

492:                                              ; preds = %489
  %493 = icmp sgt i32 %.1, %103
  %or.cond643 = select i1 %.not632, i1 %493, i1 false
  br i1 %or.cond643, label %494, label %166

494:                                              ; preds = %492
  %495 = load float, ptr %24, align 4, !tbaa !9
  %496 = fneg float %495
  store float %496, ptr %24, align 4, !tbaa !9
  br label %.loopexit660

.loopexit660.loopexit:                            ; preds = %166
  %.pre = load float, ptr %24, align 4, !tbaa !9
  br label %.loopexit660

.loopexit660:                                     ; preds = %.loopexit660.loopexit, %160, %494
  %497 = phi float [ %496, %494 ], [ %158, %160 ], [ %.pre, %.loopexit660.loopexit ]
  %.3581 = phi i32 [ %.2580, %494 ], [ %.0578761, %160 ], [ %.2580, %.loopexit660.loopexit ]
  %.5570 = phi float [ %.4569, %494 ], [ %.2567765, %160 ], [ %.4569, %.loopexit660.loopexit ]
  %.7562 = phi float [ %.6561, %494 ], [ %.2557766, %160 ], [ %.6561, %.loopexit660.loopexit ]
  %.5551 = phi i32 [ 0, %494 ], [ %.2548767, %160 ], [ %.4550, %.loopexit660.loopexit ]
  %.5 = phi i32 [ %.4, %494 ], [ %.2768, %160 ], [ %.4, %.loopexit660.loopexit ]
  store float %497, ptr %157, align 4, !tbaa !9
  br label %507

498:                                              ; preds = %156
  %499 = fcmp oeq float %158, 0.000000e+00
  br i1 %499, label %500, label %504

500:                                              ; preds = %498
  %501 = load i32, ptr %2, align 4, !tbaa !5
  %.644 = call i32 @llvm.smin.i32(i32 %152, i32 %501)
  %502 = sub i32 %.2548767, %151
  %503 = add i32 %502, %.644
  br label %504

504:                                              ; preds = %500, %498
  %.6552 = phi i32 [ %503, %500 ], [ %.2548767, %498 ]
  %505 = fcmp olt float %158, 0.000000e+00
  br i1 %505, label %506, label %507

506:                                              ; preds = %504
  br label %507

507:                                              ; preds = %.loopexit660, %506, %504
  %.4582 = phi i32 [ %.3581, %.loopexit660 ], [ %.0578761, %506 ], [ %.0578761, %504 ]
  %.6571 = phi float [ %.5570, %.loopexit660 ], [ %.2567765, %506 ], [ %.2567765, %504 ]
  %.8563 = phi float [ %.7562, %.loopexit660 ], [ %.2557766, %506 ], [ %.2557766, %504 ]
  %.7553 = phi i32 [ %.5551, %.loopexit660 ], [ 0, %506 ], [ %.6552, %504 ]
  %.6 = phi i32 [ %.5, %.loopexit660 ], [ %.2768, %506 ], [ %.2768, %504 ]
  %indvars.iv.next867 = add nsw i64 %indvars.iv866, 1
  %.not626.not = icmp slt i64 %indvars.iv866, %155
  br i1 %.not626.not, label %156, label %._crit_edge, !llvm.loop !21

._crit_edge:                                      ; preds = %507, %147
  %.2567.lcssa = phi float [ %.1566779, %147 ], [ %.6571, %507 ]
  %.2557.lcssa = phi float [ %.1556780, %147 ], [ %.8563, %507 ]
  %.2548.lcssa = phi i32 [ %.1547781, %147 ], [ %.7553, %507 ]
  %.2.lcssa = phi i32 [ %.1545782, %147 ], [ %.6, %507 ]
  %508 = add nuw i32 %.0543783, 1
  %indvars.iv.next = add i32 %indvars.iv, %spec.select
  %exitcond.not = icmp eq i32 %.0543783, %.0
  br i1 %exitcond.not, label %..loopexit661_crit_edge, label %147, !llvm.loop !22

..loopexit661_crit_edge:                          ; preds = %._crit_edge, %490
  %.7572 = phi float [ %.4569, %490 ], [ %.2567.lcssa, %._crit_edge ]
  %.9 = phi float [ %.6561, %490 ], [ %.2557.lcssa, %._crit_edge ]
  %.8 = phi i32 [ 0, %490 ], [ %.2548.lcssa, %._crit_edge ]
  %.7 = phi i32 [ %.4, %490 ], [ %.2.lcssa, %._crit_edge ]
  %509 = load i32, ptr %2, align 4, !tbaa !5
  %.645 = call i32 @llvm.smin.i32(i32 %146, i32 %509)
  %.not635794.not = icmp slt i32 %145, %.645
  br i1 %.not635794.not, label %.lr.ph797.preheader, label %._crit_edge798

.lr.ph797.preheader:                              ; preds = %..loopexit661_crit_edge
  %510 = sext i32 %.645 to i64
  %smax920 = call i64 @llvm.smax.i64(i64 %510, i64 %142)
  %511 = add i64 %smax920, 1
  %512 = sub i64 %511, %142
  %min.iters.check923 = icmp ult i64 %512, 8
  br i1 %min.iters.check923, label %.lr.ph797.preheader937, label %vector.ph924

vector.ph924:                                     ; preds = %.lr.ph797.preheader
  %n.vec926 = and i64 %512, -8
  %ind.end927 = add i64 %n.vec926, %143
  %invariant.gep = getelementptr float, ptr %32, i64 %143
  br label %vector.body929

vector.body929:                                   ; preds = %vector.body929, %vector.ph924
  %index930 = phi i64 [ 0, %vector.ph924 ], [ %index.next934, %vector.body929 ]
  %gep963 = getelementptr float, ptr %invariant.gep, i64 %index930
  %513 = getelementptr inbounds i8, ptr %gep963, i64 16
  %wide.load932 = load <4 x float>, ptr %gep963, align 4, !tbaa !9
  %wide.load933 = load <4 x float>, ptr %513, align 4, !tbaa !9
  %514 = fcmp oge <4 x float> %wide.load932, zeroinitializer
  %515 = fcmp oge <4 x float> %wide.load933, zeroinitializer
  %516 = fneg <4 x float> %wide.load932
  %517 = fneg <4 x float> %wide.load933
  %518 = select <4 x i1> %514, <4 x float> %wide.load932, <4 x float> %516
  %519 = select <4 x i1> %515, <4 x float> %wide.load933, <4 x float> %517
  store <4 x float> %518, ptr %gep963, align 4, !tbaa !9
  store <4 x float> %519, ptr %513, align 4, !tbaa !9
  %index.next934 = add nuw i64 %index930, 8
  %520 = icmp eq i64 %index.next934, %n.vec926
  br i1 %520, label %middle.block921, label %vector.body929, !llvm.loop !23

middle.block921:                                  ; preds = %vector.body929
  %cmp.n935 = icmp eq i64 %512, %n.vec926
  br i1 %cmp.n935, label %._crit_edge798, label %.lr.ph797.preheader937

.lr.ph797.preheader937:                           ; preds = %middle.block921, %.lr.ph797.preheader
  %indvars.iv869.ph = phi i64 [ %143, %.lr.ph797.preheader ], [ %ind.end927, %middle.block921 ]
  br label %.lr.ph797

.lr.ph797:                                        ; preds = %.lr.ph797.preheader937, %.lr.ph797
  %indvars.iv869 = phi i64 [ %indvars.iv.next870, %.lr.ph797 ], [ %indvars.iv869.ph, %.lr.ph797.preheader937 ]
  %521 = getelementptr inbounds float, ptr %32, i64 %indvars.iv869
  %522 = load float, ptr %521, align 4, !tbaa !9
  %523 = fcmp oge float %522, 0.000000e+00
  %524 = fneg float %522
  %525 = select i1 %523, float %522, float %524
  store float %525, ptr %521, align 4, !tbaa !9
  %indvars.iv.next870 = add nsw i64 %indvars.iv869, 1
  %.not635.not = icmp slt i64 %indvars.iv869, %510
  br i1 %.not635.not, label %.lr.ph797, label %._crit_edge798, !llvm.loop !24

._crit_edge798:                                   ; preds = %.lr.ph797, %middle.block921, %..loopexit661_crit_edge
  %526 = add nuw nsw i32 %.0540804, 1
  %.not619.not = icmp slt i32 %.0540804, %.0541
  %indvars.iv.next865 = add i32 %indvars.iv864, %spec.select
  br i1 %.not619.not, label %.lr.ph787, label %._crit_edge809, !llvm.loop !16

._crit_edge809:                                   ; preds = %._crit_edge798, %._crit_edge798.us, %.._crit_edge809_crit_edge
  %527 = phi i32 [ %.pre880, %.._crit_edge809_crit_edge ], [ %115, %._crit_edge798.us ], [ %509, %._crit_edge798 ]
  %.0565.lcssa = phi float [ 0.000000e+00, %.._crit_edge809_crit_edge ], [ 0.000000e+00, %._crit_edge798.us ], [ %.7572, %._crit_edge798 ]
  %.0555.lcssa = phi float [ 0.000000e+00, %.._crit_edge809_crit_edge ], [ 0.000000e+00, %._crit_edge798.us ], [ %.9, %._crit_edge798 ]
  %.0546.lcssa = phi i32 [ 0, %.._crit_edge809_crit_edge ], [ 0, %._crit_edge798.us ], [ %.8, %._crit_edge798 ]
  %.0544.lcssa = phi i32 [ 0, %.._crit_edge809_crit_edge ], [ 0, %._crit_edge798.us ], [ %.7, %._crit_edge798 ]
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds float, ptr %32, i64 %528
  %530 = load float, ptr %529, align 4, !tbaa !9
  %531 = fcmp olt float %530, %92
  %532 = fcmp ogt float %530, %sqrtf614
  %or.cond646 = and i1 %531, %532
  br i1 %or.cond646, label %533, label %537

533:                                              ; preds = %._crit_edge809
  %534 = mul nsw i32 %527, %34
  %535 = sext i32 %534 to i64
  %gep824 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %535
  %536 = call float @scnrm2_(ptr noundef nonnull %1, ptr noundef %gep824, ptr noundef nonnull @c__1) #9
  br label %547

537:                                              ; preds = %._crit_edge809
  store float 0.000000e+00, ptr %29, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %538 = mul nsw i32 %527, %34
  %539 = sext i32 %538 to i64
  %gep822 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %539
  call void @classq_(ptr noundef nonnull %1, ptr noundef %gep822, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %24) #9
  %540 = load float, ptr %29, align 4, !tbaa !9
  %541 = fpext float %540 to double
  %542 = load float, ptr %24, align 4, !tbaa !9
  %543 = fpext float %542 to double
  %544 = call double @sqrt(double noundef %543) #9
  %545 = fmul double %544, %541
  %546 = fptrunc double %545 to float
  br label %547

547:                                              ; preds = %537, %533
  %.sink897 = phi float [ %546, %537 ], [ %536, %533 ]
  %548 = load i32, ptr %2, align 4, !tbaa !5
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds float, ptr %32, i64 %549
  store float %.sink897, ptr %550, align 4, !tbaa !9
  %551 = icmp slt i32 %.0554827, %.0576826
  %552 = fcmp ugt float %.0565.lcssa, %sqrtf615
  %.not620 = icmp sgt i32 %.0544.lcssa, %548
  %or.cond901 = select i1 %552, i1 %.not620, i1 false
  %spec.select902 = select i1 %or.cond901, i32 %.0576826, i32 %.0554827
  %.1577 = select i1 %551, i32 %spec.select902, i32 %.0576826
  %553 = add nsw i32 %.1577, 1
  %554 = icmp sgt i32 %.0554827, %553
  br i1 %554, label %555, label %570

555:                                              ; preds = %547
  %556 = fpext float %.0565.lcssa to double
  %557 = sitofp i32 %548 to float
  %558 = fpext float %557 to double
  %559 = call double @sqrt(double noundef %558) #9
  %560 = load float, ptr %13, align 4, !tbaa !9
  %561 = fpext float %560 to double
  %562 = fmul double %559, %561
  %563 = fcmp ogt double %562, %556
  br i1 %563, label %564, label %570

564:                                              ; preds = %555
  %565 = load i32, ptr %2, align 4, !tbaa !5
  %566 = sitofp i32 %565 to float
  %567 = fmul float %.0565.lcssa, %566
  %568 = fmul float %.0555.lcssa, %567
  %569 = fcmp uge float %568, %560
  %.not621 = icmp slt i32 %.0546.lcssa, %98
  %or.cond647 = select i1 %569, i1 %.not621, i1 false
  br i1 %or.cond647, label %571, label %.loopexit662

570:                                              ; preds = %555, %547
  %.not621.old = icmp slt i32 %.0546.lcssa, %98
  br i1 %.not621.old, label %571, label %.loopexit662

571:                                              ; preds = %564, %570
  %572 = add nuw nsw i32 %.0554827, 1
  %.not618.not = icmp slt i32 %.0554827, %104
  br i1 %.not618.not, label %114, label %._crit_edge832.loopexit, !llvm.loop !25

._crit_edge832.loopexit:                          ; preds = %571
  %.pre881 = load i32, ptr %14, align 4, !tbaa !5
  br label %._crit_edge832

._crit_edge832:                                   ; preds = %._crit_edge832.loopexit, %86
  %573 = phi i32 [ %.pre881, %._crit_edge832.loopexit ], [ %104, %86 ]
  %574 = add nsw i32 %573, -1
  br label %.loopexit662

.loopexit662:                                     ; preds = %564, %570, %._crit_edge832
  %storemerge = phi i32 [ %574, %._crit_edge832 ], [ 0, %570 ], [ 0, %564 ]
  store i32 %storemerge, ptr %17, align 4, !tbaa !5
  %575 = load i32, ptr %2, align 4, !tbaa !5
  %invariant.gep837 = getelementptr i8, ptr %39, i64 8
  %.not622841 = icmp slt i32 %575, 2
  br i1 %.not622841, label %.loopexit, label %.lr.ph844

.lr.ph844:                                        ; preds = %.loopexit662
  %576 = add nsw i32 %575, -1
  %577 = sext i32 %34 to i64
  %578 = sext i32 %37 to i64
  %579 = sext i32 %576 to i64
  br label %580

580:                                              ; preds = %.lr.ph844, %606
  %indvars.iv877 = phi i64 [ 1, %.lr.ph844 ], [ %indvars.iv.next878, %606 ]
  %581 = load i32, ptr %2, align 4, !tbaa !5
  %582 = trunc nuw nsw i64 %indvars.iv877 to i32
  %reass.sub = sub i32 %581, %582
  %583 = add i32 %reass.sub, 1
  store i32 %583, ptr %20, align 4, !tbaa !5
  %584 = getelementptr inbounds float, ptr %32, i64 %indvars.iv877
  %585 = call i32 @isamax_(ptr noundef nonnull %20, ptr noundef nonnull %584, ptr noundef nonnull @c__1) #9
  %586 = trunc i64 %indvars.iv877 to i32
  %587 = add i32 %586, -1
  %588 = add i32 %587, %585
  %589 = zext i32 %588 to i64
  %.not623 = icmp eq i64 %indvars.iv877, %589
  br i1 %.not623, label %606, label %590

590:                                              ; preds = %580
  %591 = load float, ptr %584, align 4, !tbaa !9
  %592 = sext i32 %588 to i64
  %593 = getelementptr inbounds float, ptr %32, i64 %592
  %594 = load float, ptr %593, align 4, !tbaa !9
  store float %594, ptr %584, align 4, !tbaa !9
  store float %591, ptr %593, align 4, !tbaa !9
  %595 = getelementptr inbounds %struct.complex, ptr %33, i64 %indvars.iv877
  %596 = load <2 x float>, ptr %595, align 4, !tbaa !9
  store <2 x float> %596, ptr %25, align 8, !tbaa !9
  %597 = getelementptr inbounds %struct.complex, ptr %33, i64 %592
  %598 = load <2 x float>, ptr %597, align 4, !tbaa !9
  store <2 x float> %598, ptr %595, align 4, !tbaa !9
  store i32 %588, ptr %20, align 4, !tbaa !5
  store <2 x float> %596, ptr %597, align 4, !tbaa !9
  %599 = mul nsw i64 %indvars.iv877, %577
  %gep834 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %599
  %600 = mul nsw i32 %588, %34
  %601 = sext i32 %600 to i64
  %gep836 = getelementptr %struct.complex, ptr %invariant.gep821, i64 %601
  call void @cswap_(ptr noundef nonnull %1, ptr noundef %gep834, ptr noundef nonnull @c__1, ptr noundef %gep836, ptr noundef nonnull @c__1) #9
  br i1 %or.cond, label %602, label %606

602:                                              ; preds = %590
  %603 = mul nsw i64 %indvars.iv877, %578
  %gep838 = getelementptr %struct.complex, ptr %invariant.gep837, i64 %603
  %604 = mul nsw i32 %588, %37
  %605 = sext i32 %604 to i64
  %gep840 = getelementptr %struct.complex, ptr %invariant.gep837, i64 %605
  call void @cswap_(ptr noundef nonnull %31, ptr noundef %gep838, ptr noundef nonnull @c__1, ptr noundef %gep840, ptr noundef nonnull @c__1) #9
  br label %606

606:                                              ; preds = %580, %602, %590
  %indvars.iv.next878 = add nuw nsw i64 %indvars.iv877, 1
  %.not622.not = icmp slt i64 %indvars.iv877, %579
  br i1 %.not622.not, label %580, label %.loopexit, !llvm.loop !26

.loopexit:                                        ; preds = %606, %.loopexit662, %78
  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
  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

; 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

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

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

; 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, !13, !14}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = distinct !{!15, !12, !14, !13}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = !{!19, !10, i64 0}
!19 = !{!"", !10, i64 0, !10, i64 4}
!20 = !{!19, !10, i64 4}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12, !13, !14}
!24 = distinct !{!24, !12, !14, !13}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}


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