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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [12 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c__1 = external hidden global i32, align 4
@c__0 = external hidden global i32, align 4
@c_b41 = external hidden global float, align 4
@c__2 = external hidden global i32, align 4

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

157:                                              ; preds = %16
  %158 = load ptr, ptr %18, align 8, !tbaa !5
  %159 = call i32 @lsame_(ptr noundef %158, ptr noundef @.str.1)
  %160 = icmp ne i32 %159, 0
  br label %161

161:                                              ; preds = %157, %16
  %162 = phi i1 [ true, %16 ], [ %160, %157 ]
  %163 = zext i1 %162 to i32
  store i32 %163, ptr %68, align 4, !tbaa !9
  %164 = load ptr, ptr %18, align 8, !tbaa !5
  %165 = call i32 @lsame_(ptr noundef %164, ptr noundef @.str.2)
  store i32 %165, ptr %72, align 4, !tbaa !9
  %166 = load ptr, ptr %19, align 8, !tbaa !5
  %167 = call i32 @lsame_(ptr noundef %166, ptr noundef @.str.3)
  %168 = icmp ne i32 %167, 0
  br i1 %168, label %173, label %169

169:                                              ; preds = %161
  %170 = load ptr, ptr %19, align 8, !tbaa !5
  %171 = call i32 @lsame_(ptr noundef %170, ptr noundef @.str.4)
  %172 = icmp ne i32 %171, 0
  br label %173

173:                                              ; preds = %169, %161
  %174 = phi i1 [ true, %161 ], [ %172, %169 ]
  %175 = zext i1 %174 to i32
  store i32 %175, ptr %71, align 4, !tbaa !9
  %176 = load ptr, ptr %19, align 8, !tbaa !5
  %177 = call i32 @lsame_(ptr noundef %176, ptr noundef @.str.5)
  store i32 %177, ptr %70, align 4, !tbaa !9
  %178 = load ptr, ptr %17, align 8, !tbaa !5
  %179 = call i32 @lsame_(ptr noundef %178, ptr noundef @.str)
  store i32 %179, ptr %74, align 4, !tbaa !9
  %180 = load ptr, ptr %17, align 8, !tbaa !5
  %181 = call i32 @lsame_(ptr noundef %180, ptr noundef @.str.6)
  store i32 %181, ptr %73, align 4, !tbaa !9
  %182 = load ptr, ptr %29, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  %184 = icmp eq i32 %183, -1
  br i1 %184, label %189, label %185

185:                                              ; preds = %173
  %186 = load ptr, ptr %31, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = icmp eq i32 %187, -1
  br label %189

189:                                              ; preds = %185, %173
  %190 = phi i1 [ true, %173 ], [ %188, %185 ]
  %191 = zext i1 %190 to i32
  store i32 %191, ptr %90, align 4, !tbaa !9
  %192 = load i32, ptr %74, align 4, !tbaa !9
  %193 = icmp ne i32 %192, 0
  br i1 %193, label %203, label %194

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

197:                                              ; preds = %194
  %198 = load ptr, ptr %17, align 8, !tbaa !5
  %199 = call i32 @lsame_(ptr noundef %198, ptr noundef @.str.7)
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %203, label %201

201:                                              ; preds = %197
  %202 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -1, ptr %202, align 4, !tbaa !9
  br label %333

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

206:                                              ; preds = %203
  %207 = load i32, ptr %72, align 4, !tbaa !9
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %215, label %209

209:                                              ; preds = %206
  %210 = load ptr, ptr %18, align 8, !tbaa !5
  %211 = call i32 @lsame_(ptr noundef %210, ptr noundef @.str.8)
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %215, label %213

213:                                              ; preds = %209
  %214 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -2, ptr %214, align 4, !tbaa !9
  br label %332

215:                                              ; preds = %209, %206, %203
  %216 = load i32, ptr %71, align 4, !tbaa !9
  %217 = icmp ne i32 %216, 0
  br i1 %217, label %227, label %218

218:                                              ; preds = %215
  %219 = load i32, ptr %70, align 4, !tbaa !9
  %220 = icmp ne i32 %219, 0
  br i1 %220, label %227, label %221

221:                                              ; preds = %218
  %222 = load ptr, ptr %19, align 8, !tbaa !5
  %223 = call i32 @lsame_(ptr noundef %222, ptr noundef @.str.8)
  %224 = icmp ne i32 %223, 0
  br i1 %224, label %227, label %225

225:                                              ; preds = %221
  %226 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -3, ptr %226, align 4, !tbaa !9
  br label %331

227:                                              ; preds = %221, %218, %215
  %228 = load ptr, ptr %20, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = icmp slt i32 %229, 0
  br i1 %230, label %231, label %233

231:                                              ; preds = %227
  %232 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -4, ptr %232, align 4, !tbaa !9
  br label %330

233:                                              ; preds = %227
  %234 = load ptr, ptr %21, align 8, !tbaa !5
  %235 = load i32, ptr %234, align 4, !tbaa !9
  %236 = icmp slt i32 %235, 0
  br i1 %236, label %243, label %237

237:                                              ; preds = %233
  %238 = load ptr, ptr %21, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = load ptr, ptr %20, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = icmp sgt i32 %239, %241
  br i1 %242, label %243, label %245

243:                                              ; preds = %237, %233
  %244 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -5, ptr %244, align 4, !tbaa !9
  br label %329

245:                                              ; preds = %237
  %246 = load ptr, ptr %23, align 8, !tbaa !5
  %247 = load i32, ptr %246, align 4, !tbaa !9
  %248 = load ptr, ptr %20, align 8, !tbaa !5
  %249 = load i32, ptr %248, align 4, !tbaa !9
  %250 = icmp slt i32 %247, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %245
  %252 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -7, ptr %252, align 4, !tbaa !9
  br label %328

253:                                              ; preds = %245
  %254 = load ptr, ptr %25, align 8, !tbaa !5
  %255 = load i32, ptr %254, align 4, !tbaa !9
  %256 = icmp slt i32 %255, 0
  br i1 %256, label %257, label %259

257:                                              ; preds = %253
  %258 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -9, ptr %258, align 4, !tbaa !9
  br label %327

259:                                              ; preds = %253
  %260 = load i32, ptr %71, align 4, !tbaa !9
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %268

262:                                              ; preds = %259
  %263 = load ptr, ptr %27, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = load ptr, ptr %21, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = icmp slt i32 %264, %266
  br i1 %267, label %277, label %268

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

271:                                              ; preds = %268
  %272 = load ptr, ptr %27, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = load ptr, ptr %25, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = icmp slt i32 %273, %275
  br i1 %276, label %277, label %279

277:                                              ; preds = %271, %262
  %278 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -11, ptr %278, align 4, !tbaa !9
  br label %326

279:                                              ; preds = %271, %268
  %280 = load i32, ptr %72, align 4, !tbaa !9
  %281 = icmp ne i32 %280, 0
  br i1 %281, label %282, label %289

282:                                              ; preds = %279
  %283 = load ptr, ptr %30, align 8, !tbaa !5
  %284 = getelementptr inbounds float, ptr %283, i64 1
  %285 = load float, ptr %284, align 4, !tbaa !11
  %286 = fcmp ole float %285, 1.000000e+00
  br i1 %286, label %287, label %289

287:                                              ; preds = %282
  %288 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -12, ptr %288, align 4, !tbaa !9
  br label %325

289:                                              ; preds = %282, %279
  %290 = load ptr, ptr %29, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = load ptr, ptr %20, align 8, !tbaa !5
  %293 = load i32, ptr %292, align 4, !tbaa !9
  %294 = load ptr, ptr %21, align 8, !tbaa !5
  %295 = load i32, ptr %294, align 4, !tbaa !9
  %296 = add nsw i32 %293, %295
  %297 = icmp slt i32 %291, %296
  br i1 %297, label %298, label %303

298:                                              ; preds = %289
  %299 = load i32, ptr %90, align 4, !tbaa !9
  %300 = icmp ne i32 %299, 0
  br i1 %300, label %303, label %301

301:                                              ; preds = %298
  %302 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -13, ptr %302, align 4, !tbaa !9
  br label %324

303:                                              ; preds = %298, %289
  %304 = load ptr, ptr %31, align 8, !tbaa !5
  %305 = load i32, ptr %304, align 4, !tbaa !9
  %306 = load ptr, ptr %21, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  %308 = icmp sge i32 %307, 6
  br i1 %308, label %309, label %312

309:                                              ; preds = %303
  %310 = load ptr, ptr %21, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  br label %313

312:                                              ; preds = %303
  br label %313

313:                                              ; preds = %312, %309
  %314 = phi i32 [ %311, %309 ], [ 6, %312 ]
  %315 = icmp slt i32 %305, %314
  br i1 %315, label %316, label %321

316:                                              ; preds = %313
  %317 = load i32, ptr %90, align 4, !tbaa !9
  %318 = icmp ne i32 %317, 0
  br i1 %318, label %321, label %319

319:                                              ; preds = %316
  %320 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -15, ptr %320, align 4, !tbaa !9
  br label %323

321:                                              ; preds = %316, %313
  %322 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 0, ptr %322, align 4, !tbaa !9
  br label %323

323:                                              ; preds = %321, %319
  br label %324

324:                                              ; preds = %323, %301
  br label %325

325:                                              ; preds = %324, %287
  br label %326

326:                                              ; preds = %325, %277
  br label %327

327:                                              ; preds = %326, %257
  br label %328

328:                                              ; preds = %327, %251
  br label %329

329:                                              ; preds = %328, %243
  br label %330

330:                                              ; preds = %329, %231
  br label %331

331:                                              ; preds = %330, %225
  br label %332

332:                                              ; preds = %331, %213
  br label %333

333:                                              ; preds = %332, %201
  %334 = load ptr, ptr %32, align 8, !tbaa !5
  %335 = load i32, ptr %334, align 4, !tbaa !9
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %337, label %342

337:                                              ; preds = %333
  %338 = load ptr, ptr %32, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = sub nsw i32 0, %339
  store i32 %340, ptr %37, align 4, !tbaa !9
  %341 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %37, i32 noundef 6)
  store i32 1, ptr %110, align 4
  br label %4465

342:                                              ; preds = %333
  %343 = load i32, ptr %90, align 4, !tbaa !9
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %345, label %371

345:                                              ; preds = %342
  %346 = load ptr, ptr %20, align 8, !tbaa !5
  %347 = load i32, ptr %346, align 4, !tbaa !9
  %348 = load ptr, ptr %21, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = add nsw i32 %347, %349
  store i32 %350, ptr %37, align 4, !tbaa !9
  %351 = load i32, ptr %37, align 4, !tbaa !9
  %352 = sitofp i32 %351 to float
  %353 = load ptr, ptr %28, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.complex, ptr %353, i64 1
  %355 = getelementptr inbounds %struct.complex, ptr %354, i32 0, i32 0
  store float %352, ptr %355, align 4, !tbaa !13
  %356 = load ptr, ptr %28, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.complex, ptr %356, i64 1
  %358 = getelementptr inbounds %struct.complex, ptr %357, i32 0, i32 1
  store float 0.000000e+00, ptr %358, align 4, !tbaa !15
  %359 = load ptr, ptr %21, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = icmp sge i32 %360, 6
  br i1 %361, label %362, label %365

362:                                              ; preds = %345
  %363 = load ptr, ptr %21, align 8, !tbaa !5
  %364 = load i32, ptr %363, align 4, !tbaa !9
  br label %366

365:                                              ; preds = %345
  br label %366

366:                                              ; preds = %365, %362
  %367 = phi i32 [ %364, %362 ], [ 6, %365 ]
  %368 = sitofp i32 %367 to float
  %369 = load ptr, ptr %30, align 8, !tbaa !5
  %370 = getelementptr inbounds float, ptr %369, i64 1
  store float %368, ptr %370, align 4, !tbaa !11
  store i32 1, ptr %110, align 4
  br label %4465

371:                                              ; preds = %342
  br label %372

372:                                              ; preds = %371
  %373 = load ptr, ptr %20, align 8, !tbaa !5
  %374 = load i32, ptr %373, align 4, !tbaa !9
  %375 = icmp eq i32 %374, 0
  br i1 %375, label %380, label %376

376:                                              ; preds = %372
  %377 = load ptr, ptr %21, align 8, !tbaa !5
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = icmp eq i32 %378, 0
  br i1 %379, label %380, label %381

380:                                              ; preds = %376, %372
  store i32 1, ptr %110, align 4
  br label %4465

381:                                              ; preds = %376
  %382 = load i32, ptr %72, align 4, !tbaa !9
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %388

384:                                              ; preds = %381
  %385 = load ptr, ptr %30, align 8, !tbaa !5
  %386 = getelementptr inbounds float, ptr %385, i64 1
  %387 = load float, ptr %386, align 4, !tbaa !11
  store float %387, ptr %51, align 4, !tbaa !11
  br label %409

388:                                              ; preds = %381
  %389 = load i32, ptr %68, align 4, !tbaa !9
  %390 = icmp ne i32 %389, 0
  br i1 %390, label %397, label %391

391:                                              ; preds = %388
  %392 = load i32, ptr %71, align 4, !tbaa !9
  %393 = icmp ne i32 %392, 0
  br i1 %393, label %397, label %394

394:                                              ; preds = %391
  %395 = load i32, ptr %70, align 4, !tbaa !9
  %396 = icmp ne i32 %395, 0
  br i1 %396, label %397, label %404

397:                                              ; preds = %394, %391, %388
  %398 = load ptr, ptr %20, align 8, !tbaa !5
  %399 = load i32, ptr %398, align 4, !tbaa !9
  %400 = sitofp i32 %399 to float
  %401 = fpext float %400 to double
  %402 = call double @sqrt(double noundef %401) #7
  %403 = fptrunc double %402 to float
  store float %403, ptr %51, align 4, !tbaa !11
  br label %408

404:                                              ; preds = %394
  %405 = load ptr, ptr %20, align 8, !tbaa !5
  %406 = load i32, ptr %405, align 4, !tbaa !9
  %407 = sitofp i32 %406 to float
  store float %407, ptr %51, align 4, !tbaa !11
  br label %408

408:                                              ; preds = %404, %397
  br label %409

409:                                              ; preds = %408, %384
  %410 = call float @slamch_(ptr noundef @.str.10)
  store float %410, ptr %69, align 4, !tbaa !11
  %411 = load float, ptr %69, align 4, !tbaa !11
  %412 = fpext float %411 to double
  %413 = call double @sqrt(double noundef %412) #7
  %414 = fptrunc double %413 to float
  store float %414, ptr %107, align 4, !tbaa !11
  %415 = call float @slamch_(ptr noundef @.str.11)
  store float %415, ptr %67, align 4, !tbaa !11
  %416 = load float, ptr %67, align 4, !tbaa !11
  %417 = fpext float %416 to double
  %418 = call double @sqrt(double noundef %417) #7
  %419 = fptrunc double %418 to float
  store float %419, ptr %78, align 4, !tbaa !11
  %420 = load float, ptr %67, align 4, !tbaa !11
  %421 = load float, ptr %69, align 4, !tbaa !11
  %422 = fdiv float %420, %421
  store float %422, ptr %66, align 4, !tbaa !11
  %423 = load float, ptr %67, align 4, !tbaa !11
  %424 = fdiv float 1.000000e+00, %423
  store float %424, ptr %94, align 4, !tbaa !11
  %425 = load float, ptr %78, align 4, !tbaa !11
  %426 = fdiv float 1.000000e+00, %425
  store float %426, ptr %106, align 4, !tbaa !11
  %427 = load float, ptr %107, align 4, !tbaa !11
  %428 = fdiv float 1.000000e+00, %427
  store float %428, ptr %53, align 4, !tbaa !11
  %429 = load float, ptr %51, align 4, !tbaa !11
  %430 = load float, ptr %69, align 4, !tbaa !11
  %431 = fmul float %429, %430
  store float %431, ptr %103, align 4, !tbaa !11
  %432 = load float, ptr %103, align 4, !tbaa !11
  %433 = fpext float %432 to double
  %434 = call double @sqrt(double noundef %433) #7
  %435 = fptrunc double %434 to float
  store float %435, ptr %109, align 4, !tbaa !11
  %436 = load ptr, ptr %20, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = sitofp i32 %437 to float
  %439 = load float, ptr %69, align 4, !tbaa !11
  %440 = fmul float %438, %439
  %441 = fcmp oge float %440, 1.000000e+00
  br i1 %441, label %442, label %448

442:                                              ; preds = %409
  %443 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -4, ptr %443, align 4, !tbaa !9
  %444 = load ptr, ptr %32, align 8, !tbaa !5
  %445 = load i32, ptr %444, align 4, !tbaa !9
  %446 = sub nsw i32 0, %445
  store i32 %446, ptr %37, align 4, !tbaa !9
  %447 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %37, i32 noundef 6)
  store i32 1, ptr %110, align 4
  br label %4465

448:                                              ; preds = %409
  %449 = load i32, ptr %71, align 4, !tbaa !9
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %451, label %460

451:                                              ; preds = %448
  %452 = load ptr, ptr %21, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  store i32 %453, ptr %104, align 4, !tbaa !9
  %454 = load ptr, ptr %21, align 8, !tbaa !5
  %455 = load ptr, ptr %26, align 8, !tbaa !5
  %456 = load i32, ptr %36, align 4, !tbaa !9
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds %struct.complex, ptr %455, i64 %457
  %459 = load ptr, ptr %27, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.5, ptr noundef %104, ptr noundef %454, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %458, ptr noundef %459)
  br label %467

460:                                              ; preds = %448
  %461 = load i32, ptr %70, align 4, !tbaa !9
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %466

463:                                              ; preds = %460
  %464 = load ptr, ptr %25, align 8, !tbaa !5
  %465 = load i32, ptr %464, align 4, !tbaa !9
  store i32 %465, ptr %104, align 4, !tbaa !9
  br label %466

466:                                              ; preds = %463, %460
  br label %467

467:                                              ; preds = %466, %451
  %468 = load i32, ptr %71, align 4, !tbaa !9
  %469 = icmp ne i32 %468, 0
  br i1 %469, label %473, label %470

470:                                              ; preds = %467
  %471 = load i32, ptr %70, align 4, !tbaa !9
  %472 = icmp ne i32 %471, 0
  br label %473

473:                                              ; preds = %470, %467
  %474 = phi i1 [ true, %467 ], [ %472, %470 ]
  %475 = zext i1 %474 to i32
  store i32 %475, ptr %71, align 4, !tbaa !9
  %476 = load ptr, ptr %20, align 8, !tbaa !5
  %477 = load i32, ptr %476, align 4, !tbaa !9
  %478 = sitofp i32 %477 to float
  %479 = load ptr, ptr %21, align 8, !tbaa !5
  %480 = load i32, ptr %479, align 4, !tbaa !9
  %481 = sitofp i32 %480 to float
  %482 = fmul float %478, %481
  %483 = fpext float %482 to double
  %484 = call double @sqrt(double noundef %483) #7
  %485 = fdiv double 1.000000e+00, %484
  %486 = fptrunc double %485 to float
  store float %486, ptr %101, align 4, !tbaa !11
  store i32 1, ptr %105, align 4, !tbaa !9
  store i32 1, ptr %102, align 4, !tbaa !9
  %487 = load i32, ptr %73, align 4, !tbaa !9
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %489, label %577

489:                                              ; preds = %473
  %490 = load ptr, ptr %21, align 8, !tbaa !5
  %491 = load i32, ptr %490, align 4, !tbaa !9
  store i32 %491, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %492

492:                                              ; preds = %573, %489
  %493 = load i32, ptr %60, align 4, !tbaa !9
  %494 = load i32, ptr %37, align 4, !tbaa !9
  %495 = icmp sle i32 %493, %494
  br i1 %495, label %496, label %576

496:                                              ; preds = %492
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %497 = load ptr, ptr %20, align 8, !tbaa !5
  %498 = load i32, ptr %497, align 4, !tbaa !9
  %499 = load i32, ptr %60, align 4, !tbaa !9
  %500 = sub nsw i32 %498, %499
  %501 = add nsw i32 %500, 1
  store i32 %501, ptr %38, align 4, !tbaa !9
  %502 = load ptr, ptr %22, align 8, !tbaa !5
  %503 = load i32, ptr %60, align 4, !tbaa !9
  %504 = load i32, ptr %60, align 4, !tbaa !9
  %505 = load i32, ptr %33, align 4, !tbaa !9
  %506 = mul nsw i32 %504, %505
  %507 = add nsw i32 %503, %506
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds %struct.complex, ptr %502, i64 %508
  call void @classq_(ptr noundef %38, ptr noundef %509, ptr noundef @c__1, ptr noundef %48, ptr noundef %50)
  %510 = load float, ptr %48, align 4, !tbaa !11
  %511 = load float, ptr %94, align 4, !tbaa !11
  %512 = fcmp ogt float %510, %511
  br i1 %512, label %513, label %519

513:                                              ; preds = %496
  %514 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -6, ptr %514, align 4, !tbaa !9
  %515 = load ptr, ptr %32, align 8, !tbaa !5
  %516 = load i32, ptr %515, align 4, !tbaa !9
  %517 = sub nsw i32 0, %516
  store i32 %517, ptr %38, align 4, !tbaa !9
  %518 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %38, i32 noundef 6)
  store i32 1, ptr %110, align 4
  br label %4465

519:                                              ; preds = %496
  %520 = load float, ptr %50, align 4, !tbaa !11
  %521 = fpext float %520 to double
  %522 = call double @sqrt(double noundef %521) #7
  %523 = fptrunc double %522 to float
  store float %523, ptr %50, align 4, !tbaa !11
  %524 = load float, ptr %48, align 4, !tbaa !11
  %525 = load float, ptr %94, align 4, !tbaa !11
  %526 = load float, ptr %50, align 4, !tbaa !11
  %527 = fdiv float %525, %526
  %528 = fcmp olt float %524, %527
  br i1 %528, label %529, label %540

529:                                              ; preds = %519
  %530 = load i32, ptr %105, align 4, !tbaa !9
  %531 = icmp ne i32 %530, 0
  br i1 %531, label %532, label %540

532:                                              ; preds = %529
  %533 = load float, ptr %48, align 4, !tbaa !11
  %534 = load float, ptr %50, align 4, !tbaa !11
  %535 = fmul float %533, %534
  %536 = load ptr, ptr %24, align 8, !tbaa !5
  %537 = load i32, ptr %60, align 4, !tbaa !9
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds float, ptr %536, i64 %538
  store float %535, ptr %539, align 4, !tbaa !11
  br label %572

540:                                              ; preds = %529, %519
  store i32 0, ptr %105, align 4, !tbaa !9
  %541 = load float, ptr %48, align 4, !tbaa !11
  %542 = load float, ptr %50, align 4, !tbaa !11
  %543 = load float, ptr %101, align 4, !tbaa !11
  %544 = fmul float %542, %543
  %545 = fmul float %541, %544
  %546 = load ptr, ptr %24, align 8, !tbaa !5
  %547 = load i32, ptr %60, align 4, !tbaa !9
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds float, ptr %546, i64 %548
  store float %545, ptr %549, align 4, !tbaa !11
  %550 = load i32, ptr %102, align 4, !tbaa !9
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %552, label %571

552:                                              ; preds = %540
  store i32 0, ptr %102, align 4, !tbaa !9
  %553 = load i32, ptr %60, align 4, !tbaa !9
  %554 = sub nsw i32 %553, 1
  store i32 %554, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %555

555:                                              ; preds = %567, %552
  %556 = load i32, ptr %61, align 4, !tbaa !9
  %557 = load i32, ptr %38, align 4, !tbaa !9
  %558 = icmp sle i32 %556, %557
  br i1 %558, label %559, label %570

559:                                              ; preds = %555
  %560 = load float, ptr %101, align 4, !tbaa !11
  %561 = load ptr, ptr %24, align 8, !tbaa !5
  %562 = load i32, ptr %61, align 4, !tbaa !9
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds float, ptr %561, i64 %563
  %565 = load float, ptr %564, align 4, !tbaa !11
  %566 = fmul float %565, %560
  store float %566, ptr %564, align 4, !tbaa !11
  br label %567

567:                                              ; preds = %559
  %568 = load i32, ptr %61, align 4, !tbaa !9
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr %61, align 4, !tbaa !9
  br label %555, !llvm.loop !16

570:                                              ; preds = %555
  br label %571

571:                                              ; preds = %570, %540
  br label %572

572:                                              ; preds = %571, %532
  br label %573

573:                                              ; preds = %572
  %574 = load i32, ptr %60, align 4, !tbaa !9
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr %60, align 4, !tbaa !9
  br label %492, !llvm.loop !18

576:                                              ; preds = %492
  br label %746

577:                                              ; preds = %473
  %578 = load i32, ptr %74, align 4, !tbaa !9
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %662

580:                                              ; preds = %577
  %581 = load ptr, ptr %21, align 8, !tbaa !5
  %582 = load i32, ptr %581, align 4, !tbaa !9
  store i32 %582, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %583

583:                                              ; preds = %658, %580
  %584 = load i32, ptr %60, align 4, !tbaa !9
  %585 = load i32, ptr %37, align 4, !tbaa !9
  %586 = icmp sle i32 %584, %585
  br i1 %586, label %587, label %661

587:                                              ; preds = %583
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %588 = load ptr, ptr %22, align 8, !tbaa !5
  %589 = load i32, ptr %60, align 4, !tbaa !9
  %590 = load i32, ptr %33, align 4, !tbaa !9
  %591 = mul nsw i32 %589, %590
  %592 = add nsw i32 %591, 1
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds %struct.complex, ptr %588, i64 %593
  call void @classq_(ptr noundef %60, ptr noundef %594, ptr noundef @c__1, ptr noundef %48, ptr noundef %50)
  %595 = load float, ptr %48, align 4, !tbaa !11
  %596 = load float, ptr %94, align 4, !tbaa !11
  %597 = fcmp ogt float %595, %596
  br i1 %597, label %598, label %604

598:                                              ; preds = %587
  %599 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -6, ptr %599, align 4, !tbaa !9
  %600 = load ptr, ptr %32, align 8, !tbaa !5
  %601 = load i32, ptr %600, align 4, !tbaa !9
  %602 = sub nsw i32 0, %601
  store i32 %602, ptr %38, align 4, !tbaa !9
  %603 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %38, i32 noundef 6)
  store i32 1, ptr %110, align 4
  br label %4465

604:                                              ; preds = %587
  %605 = load float, ptr %50, align 4, !tbaa !11
  %606 = fpext float %605 to double
  %607 = call double @sqrt(double noundef %606) #7
  %608 = fptrunc double %607 to float
  store float %608, ptr %50, align 4, !tbaa !11
  %609 = load float, ptr %48, align 4, !tbaa !11
  %610 = load float, ptr %94, align 4, !tbaa !11
  %611 = load float, ptr %50, align 4, !tbaa !11
  %612 = fdiv float %610, %611
  %613 = fcmp olt float %609, %612
  br i1 %613, label %614, label %625

614:                                              ; preds = %604
  %615 = load i32, ptr %105, align 4, !tbaa !9
  %616 = icmp ne i32 %615, 0
  br i1 %616, label %617, label %625

617:                                              ; preds = %614
  %618 = load float, ptr %48, align 4, !tbaa !11
  %619 = load float, ptr %50, align 4, !tbaa !11
  %620 = fmul float %618, %619
  %621 = load ptr, ptr %24, align 8, !tbaa !5
  %622 = load i32, ptr %60, align 4, !tbaa !9
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds float, ptr %621, i64 %623
  store float %620, ptr %624, align 4, !tbaa !11
  br label %657

625:                                              ; preds = %614, %604
  store i32 0, ptr %105, align 4, !tbaa !9
  %626 = load float, ptr %48, align 4, !tbaa !11
  %627 = load float, ptr %50, align 4, !tbaa !11
  %628 = load float, ptr %101, align 4, !tbaa !11
  %629 = fmul float %627, %628
  %630 = fmul float %626, %629
  %631 = load ptr, ptr %24, align 8, !tbaa !5
  %632 = load i32, ptr %60, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds float, ptr %631, i64 %633
  store float %630, ptr %634, align 4, !tbaa !11
  %635 = load i32, ptr %102, align 4, !tbaa !9
  %636 = icmp ne i32 %635, 0
  br i1 %636, label %637, label %656

637:                                              ; preds = %625
  store i32 0, ptr %102, align 4, !tbaa !9
  %638 = load i32, ptr %60, align 4, !tbaa !9
  %639 = sub nsw i32 %638, 1
  store i32 %639, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %640

640:                                              ; preds = %652, %637
  %641 = load i32, ptr %61, align 4, !tbaa !9
  %642 = load i32, ptr %38, align 4, !tbaa !9
  %643 = icmp sle i32 %641, %642
  br i1 %643, label %644, label %655

644:                                              ; preds = %640
  %645 = load float, ptr %101, align 4, !tbaa !11
  %646 = load ptr, ptr %24, align 8, !tbaa !5
  %647 = load i32, ptr %61, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds float, ptr %646, i64 %648
  %650 = load float, ptr %649, align 4, !tbaa !11
  %651 = fmul float %650, %645
  store float %651, ptr %649, align 4, !tbaa !11
  br label %652

652:                                              ; preds = %644
  %653 = load i32, ptr %61, align 4, !tbaa !9
  %654 = add nsw i32 %653, 1
  store i32 %654, ptr %61, align 4, !tbaa !9
  br label %640, !llvm.loop !19

655:                                              ; preds = %640
  br label %656

656:                                              ; preds = %655, %625
  br label %657

657:                                              ; preds = %656, %617
  br label %658

658:                                              ; preds = %657
  %659 = load i32, ptr %60, align 4, !tbaa !9
  %660 = add nsw i32 %659, 1
  store i32 %660, ptr %60, align 4, !tbaa !9
  br label %583, !llvm.loop !20

661:                                              ; preds = %583
  br label %745

662:                                              ; preds = %577
  %663 = load ptr, ptr %21, align 8, !tbaa !5
  %664 = load i32, ptr %663, align 4, !tbaa !9
  store i32 %664, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %665

665:                                              ; preds = %741, %662
  %666 = load i32, ptr %60, align 4, !tbaa !9
  %667 = load i32, ptr %37, align 4, !tbaa !9
  %668 = icmp sle i32 %666, %667
  br i1 %668, label %669, label %744

669:                                              ; preds = %665
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %670 = load ptr, ptr %20, align 8, !tbaa !5
  %671 = load ptr, ptr %22, align 8, !tbaa !5
  %672 = load i32, ptr %60, align 4, !tbaa !9
  %673 = load i32, ptr %33, align 4, !tbaa !9
  %674 = mul nsw i32 %672, %673
  %675 = add nsw i32 %674, 1
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds %struct.complex, ptr %671, i64 %676
  call void @classq_(ptr noundef %670, ptr noundef %677, ptr noundef @c__1, ptr noundef %48, ptr noundef %50)
  %678 = load float, ptr %48, align 4, !tbaa !11
  %679 = load float, ptr %94, align 4, !tbaa !11
  %680 = fcmp ogt float %678, %679
  br i1 %680, label %681, label %687

681:                                              ; preds = %669
  %682 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -6, ptr %682, align 4, !tbaa !9
  %683 = load ptr, ptr %32, align 8, !tbaa !5
  %684 = load i32, ptr %683, align 4, !tbaa !9
  %685 = sub nsw i32 0, %684
  store i32 %685, ptr %38, align 4, !tbaa !9
  %686 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %38, i32 noundef 6)
  store i32 1, ptr %110, align 4
  br label %4465

687:                                              ; preds = %669
  %688 = load float, ptr %50, align 4, !tbaa !11
  %689 = fpext float %688 to double
  %690 = call double @sqrt(double noundef %689) #7
  %691 = fptrunc double %690 to float
  store float %691, ptr %50, align 4, !tbaa !11
  %692 = load float, ptr %48, align 4, !tbaa !11
  %693 = load float, ptr %94, align 4, !tbaa !11
  %694 = load float, ptr %50, align 4, !tbaa !11
  %695 = fdiv float %693, %694
  %696 = fcmp olt float %692, %695
  br i1 %696, label %697, label %708

697:                                              ; preds = %687
  %698 = load i32, ptr %105, align 4, !tbaa !9
  %699 = icmp ne i32 %698, 0
  br i1 %699, label %700, label %708

700:                                              ; preds = %697
  %701 = load float, ptr %48, align 4, !tbaa !11
  %702 = load float, ptr %50, align 4, !tbaa !11
  %703 = fmul float %701, %702
  %704 = load ptr, ptr %24, align 8, !tbaa !5
  %705 = load i32, ptr %60, align 4, !tbaa !9
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds float, ptr %704, i64 %706
  store float %703, ptr %707, align 4, !tbaa !11
  br label %740

708:                                              ; preds = %697, %687
  store i32 0, ptr %105, align 4, !tbaa !9
  %709 = load float, ptr %48, align 4, !tbaa !11
  %710 = load float, ptr %50, align 4, !tbaa !11
  %711 = load float, ptr %101, align 4, !tbaa !11
  %712 = fmul float %710, %711
  %713 = fmul float %709, %712
  %714 = load ptr, ptr %24, align 8, !tbaa !5
  %715 = load i32, ptr %60, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds float, ptr %714, i64 %716
  store float %713, ptr %717, align 4, !tbaa !11
  %718 = load i32, ptr %102, align 4, !tbaa !9
  %719 = icmp ne i32 %718, 0
  br i1 %719, label %720, label %739

720:                                              ; preds = %708
  store i32 0, ptr %102, align 4, !tbaa !9
  %721 = load i32, ptr %60, align 4, !tbaa !9
  %722 = sub nsw i32 %721, 1
  store i32 %722, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %723

723:                                              ; preds = %735, %720
  %724 = load i32, ptr %61, align 4, !tbaa !9
  %725 = load i32, ptr %38, align 4, !tbaa !9
  %726 = icmp sle i32 %724, %725
  br i1 %726, label %727, label %738

727:                                              ; preds = %723
  %728 = load float, ptr %101, align 4, !tbaa !11
  %729 = load ptr, ptr %24, align 8, !tbaa !5
  %730 = load i32, ptr %61, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds float, ptr %729, i64 %731
  %733 = load float, ptr %732, align 4, !tbaa !11
  %734 = fmul float %733, %728
  store float %734, ptr %732, align 4, !tbaa !11
  br label %735

735:                                              ; preds = %727
  %736 = load i32, ptr %61, align 4, !tbaa !9
  %737 = add nsw i32 %736, 1
  store i32 %737, ptr %61, align 4, !tbaa !9
  br label %723, !llvm.loop !21

738:                                              ; preds = %723
  br label %739

739:                                              ; preds = %738, %708
  br label %740

740:                                              ; preds = %739, %700
  br label %741

741:                                              ; preds = %740
  %742 = load i32, ptr %60, align 4, !tbaa !9
  %743 = add nsw i32 %742, 1
  store i32 %743, ptr %60, align 4, !tbaa !9
  br label %665, !llvm.loop !22

744:                                              ; preds = %665
  br label %745

745:                                              ; preds = %744, %661
  br label %746

746:                                              ; preds = %745, %576
  %747 = load i32, ptr %105, align 4, !tbaa !9
  %748 = icmp ne i32 %747, 0
  br i1 %748, label %749, label %750

749:                                              ; preds = %746
  store float 1.000000e+00, ptr %101, align 4, !tbaa !11
  br label %750

750:                                              ; preds = %749, %746
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %751 = load float, ptr %94, align 4, !tbaa !11
  store float %751, ptr %50, align 4, !tbaa !11
  %752 = load ptr, ptr %21, align 8, !tbaa !5
  %753 = load i32, ptr %752, align 4, !tbaa !9
  store i32 %753, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %797, %750
  %755 = load i32, ptr %60, align 4, !tbaa !9
  %756 = load i32, ptr %37, align 4, !tbaa !9
  %757 = icmp sle i32 %755, %756
  br i1 %757, label %758, label %800

758:                                              ; preds = %754
  %759 = load ptr, ptr %24, align 8, !tbaa !5
  %760 = load i32, ptr %60, align 4, !tbaa !9
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds float, ptr %759, i64 %761
  %763 = load float, ptr %762, align 4, !tbaa !11
  %764 = fcmp une float %763, 0.000000e+00
  br i1 %764, label %765, label %781

765:                                              ; preds = %758
  %766 = load float, ptr %50, align 4, !tbaa !11
  store float %766, ptr %43, align 4, !tbaa !11
  %767 = load ptr, ptr %24, align 8, !tbaa !5
  %768 = load i32, ptr %60, align 4, !tbaa !9
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds float, ptr %767, i64 %769
  %771 = load float, ptr %770, align 4, !tbaa !11
  store float %771, ptr %44, align 4, !tbaa !11
  %772 = load float, ptr %43, align 4, !tbaa !11
  %773 = load float, ptr %44, align 4, !tbaa !11
  %774 = fcmp ole float %772, %773
  br i1 %774, label %775, label %777

775:                                              ; preds = %765
  %776 = load float, ptr %43, align 4, !tbaa !11
  br label %779

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

779:                                              ; preds = %777, %775
  %780 = phi float [ %776, %775 ], [ %778, %777 ]
  store float %780, ptr %50, align 4, !tbaa !11
  br label %781

781:                                              ; preds = %779, %758
  %782 = load float, ptr %48, align 4, !tbaa !11
  store float %782, ptr %43, align 4, !tbaa !11
  %783 = load ptr, ptr %24, align 8, !tbaa !5
  %784 = load i32, ptr %60, align 4, !tbaa !9
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds float, ptr %783, i64 %785
  %787 = load float, ptr %786, align 4, !tbaa !11
  store float %787, ptr %44, align 4, !tbaa !11
  %788 = load float, ptr %43, align 4, !tbaa !11
  %789 = load float, ptr %44, align 4, !tbaa !11
  %790 = fcmp oge float %788, %789
  br i1 %790, label %791, label %793

791:                                              ; preds = %781
  %792 = load float, ptr %43, align 4, !tbaa !11
  br label %795

793:                                              ; preds = %781
  %794 = load float, ptr %44, align 4, !tbaa !11
  br label %795

795:                                              ; preds = %793, %791
  %796 = phi float [ %792, %791 ], [ %794, %793 ]
  store float %796, ptr %48, align 4, !tbaa !11
  br label %797

797:                                              ; preds = %795
  %798 = load i32, ptr %60, align 4, !tbaa !9
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr %60, align 4, !tbaa !9
  br label %754, !llvm.loop !23

800:                                              ; preds = %754
  %801 = load float, ptr %48, align 4, !tbaa !11
  %802 = fcmp oeq float %801, 0.000000e+00
  br i1 %802, label %803, label %827

803:                                              ; preds = %800
  %804 = load i32, ptr %68, align 4, !tbaa !9
  %805 = icmp ne i32 %804, 0
  br i1 %805, label %806, label %814

806:                                              ; preds = %803
  %807 = load ptr, ptr %20, align 8, !tbaa !5
  %808 = load ptr, ptr %21, align 8, !tbaa !5
  %809 = load ptr, ptr %22, align 8, !tbaa !5
  %810 = load i32, ptr %34, align 4, !tbaa !9
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds %struct.complex, ptr %809, i64 %811
  %813 = load ptr, ptr %23, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.7, ptr noundef %807, ptr noundef %808, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %812, ptr noundef %813)
  br label %814

814:                                              ; preds = %806, %803
  %815 = load ptr, ptr %30, align 8, !tbaa !5
  %816 = getelementptr inbounds float, ptr %815, i64 1
  store float 1.000000e+00, ptr %816, align 4, !tbaa !11
  %817 = load ptr, ptr %30, align 8, !tbaa !5
  %818 = getelementptr inbounds float, ptr %817, i64 2
  store float 0.000000e+00, ptr %818, align 4, !tbaa !11
  %819 = load ptr, ptr %30, align 8, !tbaa !5
  %820 = getelementptr inbounds float, ptr %819, i64 3
  store float 0.000000e+00, ptr %820, align 4, !tbaa !11
  %821 = load ptr, ptr %30, align 8, !tbaa !5
  %822 = getelementptr inbounds float, ptr %821, i64 4
  store float 0.000000e+00, ptr %822, align 4, !tbaa !11
  %823 = load ptr, ptr %30, align 8, !tbaa !5
  %824 = getelementptr inbounds float, ptr %823, i64 5
  store float 0.000000e+00, ptr %824, align 4, !tbaa !11
  %825 = load ptr, ptr %30, align 8, !tbaa !5
  %826 = getelementptr inbounds float, ptr %825, i64 6
  store float 0.000000e+00, ptr %826, align 4, !tbaa !11
  store i32 1, ptr %110, align 4
  br label %4465

827:                                              ; preds = %800
  %828 = load ptr, ptr %21, align 8, !tbaa !5
  %829 = load i32, ptr %828, align 4, !tbaa !9
  %830 = icmp eq i32 %829, 1
  br i1 %830, label %831, label %869

831:                                              ; preds = %827
  %832 = load i32, ptr %68, align 4, !tbaa !9
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %834, label %844

834:                                              ; preds = %831
  %835 = load ptr, ptr %24, align 8, !tbaa !5
  %836 = getelementptr inbounds float, ptr %835, i64 1
  %837 = load ptr, ptr %20, align 8, !tbaa !5
  %838 = load ptr, ptr %22, align 8, !tbaa !5
  %839 = load i32, ptr %33, align 4, !tbaa !9
  %840 = add nsw i32 %839, 1
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds %struct.complex, ptr %838, i64 %841
  %843 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %836, ptr noundef %101, ptr noundef %837, ptr noundef @c__1, ptr noundef %842, ptr noundef %843, ptr noundef %52)
  br label %844

844:                                              ; preds = %834, %831
  %845 = load float, ptr %101, align 4, !tbaa !11
  %846 = fdiv float 1.000000e+00, %845
  %847 = load ptr, ptr %30, align 8, !tbaa !5
  %848 = getelementptr inbounds float, ptr %847, i64 1
  store float %846, ptr %848, align 4, !tbaa !11
  %849 = load ptr, ptr %24, align 8, !tbaa !5
  %850 = getelementptr inbounds float, ptr %849, i64 1
  %851 = load float, ptr %850, align 4, !tbaa !11
  %852 = load float, ptr %67, align 4, !tbaa !11
  %853 = fcmp oge float %851, %852
  br i1 %853, label %854, label %857

854:                                              ; preds = %844
  %855 = load ptr, ptr %30, align 8, !tbaa !5
  %856 = getelementptr inbounds float, ptr %855, i64 2
  store float 1.000000e+00, ptr %856, align 4, !tbaa !11
  br label %860

857:                                              ; preds = %844
  %858 = load ptr, ptr %30, align 8, !tbaa !5
  %859 = getelementptr inbounds float, ptr %858, i64 2
  store float 0.000000e+00, ptr %859, align 4, !tbaa !11
  br label %860

860:                                              ; preds = %857, %854
  %861 = load ptr, ptr %30, align 8, !tbaa !5
  %862 = getelementptr inbounds float, ptr %861, i64 3
  store float 0.000000e+00, ptr %862, align 4, !tbaa !11
  %863 = load ptr, ptr %30, align 8, !tbaa !5
  %864 = getelementptr inbounds float, ptr %863, i64 4
  store float 0.000000e+00, ptr %864, align 4, !tbaa !11
  %865 = load ptr, ptr %30, align 8, !tbaa !5
  %866 = getelementptr inbounds float, ptr %865, i64 5
  store float 0.000000e+00, ptr %866, align 4, !tbaa !11
  %867 = load ptr, ptr %30, align 8, !tbaa !5
  %868 = getelementptr inbounds float, ptr %867, i64 6
  store float 0.000000e+00, ptr %868, align 4, !tbaa !11
  store i32 1, ptr %110, align 4
  br label %4465

869:                                              ; preds = %827
  %870 = load float, ptr %67, align 4, !tbaa !11
  %871 = load float, ptr %69, align 4, !tbaa !11
  %872 = fdiv float %870, %871
  %873 = fpext float %872 to double
  %874 = call double @sqrt(double noundef %873) #7
  %875 = fptrunc double %874 to float
  store float %875, ptr %81, align 4, !tbaa !11
  %876 = load float, ptr %94, align 4, !tbaa !11
  %877 = load ptr, ptr %21, align 8, !tbaa !5
  %878 = load i32, ptr %877, align 4, !tbaa !9
  %879 = sitofp i32 %878 to float
  %880 = fdiv float %876, %879
  %881 = fpext float %880 to double
  %882 = call double @sqrt(double noundef %881) #7
  %883 = fptrunc double %882 to float
  store float %883, ptr %58, align 4, !tbaa !11
  %884 = load float, ptr %48, align 4, !tbaa !11
  %885 = load float, ptr %81, align 4, !tbaa !11
  %886 = fcmp ole float %884, %885
  br i1 %886, label %899, label %887

887:                                              ; preds = %869
  %888 = load float, ptr %50, align 4, !tbaa !11
  %889 = load float, ptr %58, align 4, !tbaa !11
  %890 = fcmp oge float %888, %889
  br i1 %890, label %899, label %891

891:                                              ; preds = %887
  %892 = load float, ptr %81, align 4, !tbaa !11
  %893 = load float, ptr %50, align 4, !tbaa !11
  %894 = fcmp ole float %892, %893
  br i1 %894, label %895, label %913

895:                                              ; preds = %891
  %896 = load float, ptr %48, align 4, !tbaa !11
  %897 = load float, ptr %58, align 4, !tbaa !11
  %898 = fcmp ole float %896, %897
  br i1 %898, label %899, label %913

899:                                              ; preds = %895, %887, %869
  %900 = load float, ptr %94, align 4, !tbaa !11
  store float %900, ptr %43, align 4, !tbaa !11
  %901 = load float, ptr %58, align 4, !tbaa !11
  %902 = load float, ptr %48, align 4, !tbaa !11
  %903 = fdiv float %901, %902
  store float %903, ptr %44, align 4, !tbaa !11
  %904 = load float, ptr %43, align 4, !tbaa !11
  %905 = load float, ptr %44, align 4, !tbaa !11
  %906 = fcmp ole float %904, %905
  br i1 %906, label %907, label %909

907:                                              ; preds = %899
  %908 = load float, ptr %43, align 4, !tbaa !11
  br label %911

909:                                              ; preds = %899
  %910 = load float, ptr %44, align 4, !tbaa !11
  br label %911

911:                                              ; preds = %909, %907
  %912 = phi float [ %908, %907 ], [ %910, %909 ]
  store float %912, ptr %58, align 4, !tbaa !11
  br label %1007

913:                                              ; preds = %895, %891
  %914 = load float, ptr %50, align 4, !tbaa !11
  %915 = load float, ptr %81, align 4, !tbaa !11
  %916 = fcmp ole float %914, %915
  br i1 %916, label %917, label %946

917:                                              ; preds = %913
  %918 = load float, ptr %48, align 4, !tbaa !11
  %919 = load float, ptr %58, align 4, !tbaa !11
  %920 = fcmp ole float %918, %919
  br i1 %920, label %921, label %946

921:                                              ; preds = %917
  %922 = load float, ptr %81, align 4, !tbaa !11
  %923 = load float, ptr %50, align 4, !tbaa !11
  %924 = fdiv float %922, %923
  store float %924, ptr %43, align 4, !tbaa !11
  %925 = load float, ptr %94, align 4, !tbaa !11
  %926 = fpext float %925 to double
  %927 = load float, ptr %48, align 4, !tbaa !11
  %928 = fpext float %927 to double
  %929 = load ptr, ptr %21, align 8, !tbaa !5
  %930 = load i32, ptr %929, align 4, !tbaa !9
  %931 = sitofp i32 %930 to float
  %932 = fpext float %931 to double
  %933 = call double @sqrt(double noundef %932) #7
  %934 = fmul double %928, %933
  %935 = fdiv double %926, %934
  %936 = fptrunc double %935 to float
  store float %936, ptr %44, align 4, !tbaa !11
  %937 = load float, ptr %43, align 4, !tbaa !11
  %938 = load float, ptr %44, align 4, !tbaa !11
  %939 = fcmp ole float %937, %938
  br i1 %939, label %940, label %942

940:                                              ; preds = %921
  %941 = load float, ptr %43, align 4, !tbaa !11
  br label %944

942:                                              ; preds = %921
  %943 = load float, ptr %44, align 4, !tbaa !11
  br label %944

944:                                              ; preds = %942, %940
  %945 = phi float [ %941, %940 ], [ %943, %942 ]
  store float %945, ptr %58, align 4, !tbaa !11
  br label %1006

946:                                              ; preds = %917, %913
  %947 = load float, ptr %50, align 4, !tbaa !11
  %948 = load float, ptr %81, align 4, !tbaa !11
  %949 = fcmp oge float %947, %948
  br i1 %949, label %950, label %970

950:                                              ; preds = %946
  %951 = load float, ptr %48, align 4, !tbaa !11
  %952 = load float, ptr %58, align 4, !tbaa !11
  %953 = fcmp oge float %951, %952
  br i1 %953, label %954, label %970

954:                                              ; preds = %950
  %955 = load float, ptr %81, align 4, !tbaa !11
  %956 = load float, ptr %50, align 4, !tbaa !11
  %957 = fdiv float %955, %956
  store float %957, ptr %43, align 4, !tbaa !11
  %958 = load float, ptr %58, align 4, !tbaa !11
  %959 = load float, ptr %48, align 4, !tbaa !11
  %960 = fdiv float %958, %959
  store float %960, ptr %44, align 4, !tbaa !11
  %961 = load float, ptr %43, align 4, !tbaa !11
  %962 = load float, ptr %44, align 4, !tbaa !11
  %963 = fcmp oge float %961, %962
  br i1 %963, label %964, label %966

964:                                              ; preds = %954
  %965 = load float, ptr %43, align 4, !tbaa !11
  br label %968

966:                                              ; preds = %954
  %967 = load float, ptr %44, align 4, !tbaa !11
  br label %968

968:                                              ; preds = %966, %964
  %969 = phi float [ %965, %964 ], [ %967, %966 ]
  store float %969, ptr %58, align 4, !tbaa !11
  br label %1005

970:                                              ; preds = %950, %946
  %971 = load float, ptr %50, align 4, !tbaa !11
  %972 = load float, ptr %81, align 4, !tbaa !11
  %973 = fcmp ole float %971, %972
  br i1 %973, label %974, label %1003

974:                                              ; preds = %970
  %975 = load float, ptr %48, align 4, !tbaa !11
  %976 = load float, ptr %58, align 4, !tbaa !11
  %977 = fcmp oge float %975, %976
  br i1 %977, label %978, label %1003

978:                                              ; preds = %974
  %979 = load float, ptr %81, align 4, !tbaa !11
  %980 = load float, ptr %50, align 4, !tbaa !11
  %981 = fdiv float %979, %980
  store float %981, ptr %43, align 4, !tbaa !11
  %982 = load float, ptr %94, align 4, !tbaa !11
  %983 = fpext float %982 to double
  %984 = load ptr, ptr %21, align 8, !tbaa !5
  %985 = load i32, ptr %984, align 4, !tbaa !9
  %986 = sitofp i32 %985 to float
  %987 = fpext float %986 to double
  %988 = call double @sqrt(double noundef %987) #7
  %989 = load float, ptr %48, align 4, !tbaa !11
  %990 = fpext float %989 to double
  %991 = fmul double %988, %990
  %992 = fdiv double %983, %991
  %993 = fptrunc double %992 to float
  store float %993, ptr %44, align 4, !tbaa !11
  %994 = load float, ptr %43, align 4, !tbaa !11
  %995 = load float, ptr %44, align 4, !tbaa !11
  %996 = fcmp ole float %994, %995
  br i1 %996, label %997, label %999

997:                                              ; preds = %978
  %998 = load float, ptr %43, align 4, !tbaa !11
  br label %1001

999:                                              ; preds = %978
  %1000 = load float, ptr %44, align 4, !tbaa !11
  br label %1001

1001:                                             ; preds = %999, %997
  %1002 = phi float [ %998, %997 ], [ %1000, %999 ]
  store float %1002, ptr %58, align 4, !tbaa !11
  br label %1004

1003:                                             ; preds = %974, %970
  store float 1.000000e+00, ptr %58, align 4, !tbaa !11
  br label %1004

1004:                                             ; preds = %1003, %1001
  br label %1005

1005:                                             ; preds = %1004, %968
  br label %1006

1006:                                             ; preds = %1005, %944
  br label %1007

1007:                                             ; preds = %1006, %911
  %1008 = load float, ptr %58, align 4, !tbaa !11
  %1009 = fcmp une float %1008, 1.000000e+00
  br i1 %1009, label %1010, label %1015

1010:                                             ; preds = %1007
  %1011 = load ptr, ptr %21, align 8, !tbaa !5
  %1012 = load ptr, ptr %24, align 8, !tbaa !5
  %1013 = getelementptr inbounds float, ptr %1012, i64 1
  %1014 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b41, ptr noundef %58, ptr noundef %1011, ptr noundef @c__1, ptr noundef %1013, ptr noundef %1014, ptr noundef %52)
  br label %1015

1015:                                             ; preds = %1010, %1007
  %1016 = load float, ptr %58, align 4, !tbaa !11
  %1017 = load float, ptr %101, align 4, !tbaa !11
  %1018 = fmul float %1016, %1017
  store float %1018, ptr %101, align 4, !tbaa !11
  %1019 = load float, ptr %101, align 4, !tbaa !11
  %1020 = fcmp une float %1019, 1.000000e+00
  br i1 %1020, label %1021, label %1032

1021:                                             ; preds = %1015
  %1022 = load ptr, ptr %17, align 8, !tbaa !5
  %1023 = load ptr, ptr %20, align 8, !tbaa !5
  %1024 = load ptr, ptr %21, align 8, !tbaa !5
  %1025 = load ptr, ptr %22, align 8, !tbaa !5
  %1026 = load i32, ptr %34, align 4, !tbaa !9
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds %struct.complex, ptr %1025, i64 %1027
  %1029 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef %1022, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b41, ptr noundef %101, ptr noundef %1023, ptr noundef %1024, ptr noundef %1028, ptr noundef %1029, ptr noundef %52)
  %1030 = load float, ptr %101, align 4, !tbaa !11
  %1031 = fdiv float 1.000000e+00, %1030
  store float %1031, ptr %101, align 4, !tbaa !11
  br label %1032

1032:                                             ; preds = %1021, %1015
  %1033 = load ptr, ptr %21, align 8, !tbaa !5
  %1034 = load i32, ptr %1033, align 4, !tbaa !9
  %1035 = load ptr, ptr %21, align 8, !tbaa !5
  %1036 = load i32, ptr %1035, align 4, !tbaa !9
  %1037 = sub nsw i32 %1036, 1
  %1038 = mul nsw i32 %1034, %1037
  %1039 = sdiv i32 %1038, 2
  store i32 %1039, ptr %89, align 4, !tbaa !9
  store i32 0, ptr %91, align 4, !tbaa !9
  %1040 = load ptr, ptr %21, align 8, !tbaa !5
  %1041 = load i32, ptr %1040, align 4, !tbaa !9
  store i32 %1041, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %1042

1042:                                             ; preds = %1058, %1032
  %1043 = load i32, ptr %61, align 4, !tbaa !9
  %1044 = load i32, ptr %37, align 4, !tbaa !9
  %1045 = icmp sle i32 %1043, %1044
  br i1 %1045, label %1046, label %1061

1046:                                             ; preds = %1042
  %1047 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1047, ptr %38, align 4, !tbaa !9
  %1048 = load ptr, ptr %28, align 8, !tbaa !5
  %1049 = load i32, ptr %38, align 4, !tbaa !9
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds %struct.complex, ptr %1048, i64 %1050
  %1052 = getelementptr inbounds %struct.complex, ptr %1051, i32 0, i32 0
  store float 1.000000e+00, ptr %1052, align 4, !tbaa !13
  %1053 = load ptr, ptr %28, align 8, !tbaa !5
  %1054 = load i32, ptr %38, align 4, !tbaa !9
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds %struct.complex, ptr %1053, i64 %1055
  %1057 = getelementptr inbounds %struct.complex, ptr %1056, i32 0, i32 1
  store float 0.000000e+00, ptr %1057, align 4, !tbaa !15
  br label %1058

1058:                                             ; preds = %1046
  %1059 = load i32, ptr %61, align 4, !tbaa !9
  %1060 = add nsw i32 %1059, 1
  store i32 %1060, ptr %61, align 4, !tbaa !9
  br label %1042, !llvm.loop !24

1061:                                             ; preds = %1042
  store i32 3, ptr %83, align 4, !tbaa !9
  %1062 = load ptr, ptr %21, align 8, !tbaa !5
  %1063 = load i32, ptr %1062, align 4, !tbaa !9
  %1064 = icmp sle i32 8, %1063
  br i1 %1064, label %1065, label %1066

1065:                                             ; preds = %1061
  br label %1069

1066:                                             ; preds = %1061
  %1067 = load ptr, ptr %21, align 8, !tbaa !5
  %1068 = load i32, ptr %1067, align 4, !tbaa !9
  br label %1069

1069:                                             ; preds = %1066, %1065
  %1070 = phi i32 [ 8, %1065 ], [ %1068, %1066 ]
  store i32 %1070, ptr %95, align 4, !tbaa !9
  %1071 = load ptr, ptr %21, align 8, !tbaa !5
  %1072 = load i32, ptr %1071, align 4, !tbaa !9
  %1073 = load i32, ptr %95, align 4, !tbaa !9
  %1074 = sdiv i32 %1072, %1073
  store i32 %1074, ptr %100, align 4, !tbaa !9
  %1075 = load i32, ptr %100, align 4, !tbaa !9
  %1076 = load i32, ptr %95, align 4, !tbaa !9
  %1077 = mul nsw i32 %1075, %1076
  %1078 = load ptr, ptr %21, align 8, !tbaa !5
  %1079 = load i32, ptr %1078, align 4, !tbaa !9
  %1080 = icmp ne i32 %1077, %1079
  br i1 %1080, label %1081, label %1084

1081:                                             ; preds = %1069
  %1082 = load i32, ptr %100, align 4, !tbaa !9
  %1083 = add nsw i32 %1082, 1
  store i32 %1083, ptr %100, align 4, !tbaa !9
  br label %1084

1084:                                             ; preds = %1081, %1069
  %1085 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %1085, ptr %37, align 4, !tbaa !9
  %1086 = load i32, ptr %37, align 4, !tbaa !9
  %1087 = load i32, ptr %37, align 4, !tbaa !9
  %1088 = mul nsw i32 %1086, %1087
  store i32 %1088, ptr %84, align 4, !tbaa !9
  %1089 = load i32, ptr %95, align 4, !tbaa !9
  %1090 = icmp sle i32 5, %1089
  br i1 %1090, label %1091, label %1092

1091:                                             ; preds = %1084
  br label %1094

1092:                                             ; preds = %1084
  %1093 = load i32, ptr %95, align 4, !tbaa !9
  br label %1094

1094:                                             ; preds = %1092, %1091
  %1095 = phi i32 [ 5, %1091 ], [ %1093, %1092 ]
  store i32 %1095, ptr %108, align 4, !tbaa !9
  store i32 1, ptr %96, align 4, !tbaa !9
  store i32 64, ptr %37, align 4, !tbaa !9
  %1096 = load i32, ptr %95, align 4, !tbaa !9
  %1097 = shl i32 %1096, 2
  store i32 %1097, ptr %38, align 4, !tbaa !9
  %1098 = load i32, ptr %73, align 4, !tbaa !9
  %1099 = icmp ne i32 %1098, 0
  br i1 %1099, label %1103, label %1100

1100:                                             ; preds = %1094
  %1101 = load i32, ptr %74, align 4, !tbaa !9
  %1102 = icmp ne i32 %1101, 0
  br i1 %1102, label %1103, label %1550

1103:                                             ; preds = %1100, %1094
  %1104 = load ptr, ptr %21, align 8, !tbaa !5
  %1105 = load i32, ptr %1104, align 4, !tbaa !9
  %1106 = load i32, ptr %37, align 4, !tbaa !9
  %1107 = load i32, ptr %38, align 4, !tbaa !9
  %1108 = icmp sge i32 %1106, %1107
  br i1 %1108, label %1109, label %1111

1109:                                             ; preds = %1103
  %1110 = load i32, ptr %37, align 4, !tbaa !9
  br label %1113

1111:                                             ; preds = %1103
  %1112 = load i32, ptr %38, align 4, !tbaa !9
  br label %1113

1113:                                             ; preds = %1111, %1109
  %1114 = phi i32 [ %1110, %1109 ], [ %1112, %1111 ]
  %1115 = icmp sgt i32 %1105, %1114
  br i1 %1115, label %1116, label %1550

1116:                                             ; preds = %1113
  %1117 = load ptr, ptr %21, align 8, !tbaa !5
  %1118 = load i32, ptr %1117, align 4, !tbaa !9
  %1119 = sdiv i32 %1118, 4
  store i32 %1119, ptr %77, align 4, !tbaa !9
  %1120 = load ptr, ptr %21, align 8, !tbaa !5
  %1121 = load i32, ptr %1120, align 4, !tbaa !9
  %1122 = sdiv i32 %1121, 2
  store i32 %1122, ptr %76, align 4, !tbaa !9
  %1123 = load i32, ptr %77, align 4, !tbaa !9
  %1124 = mul nsw i32 %1123, 3
  store i32 %1124, ptr %79, align 4, !tbaa !9
  %1125 = load i32, ptr %70, align 4, !tbaa !9
  %1126 = icmp ne i32 %1125, 0
  br i1 %1126, label %1127, label %1128

1127:                                             ; preds = %1116
  store i32 0, ptr %61, align 4, !tbaa !9
  br label %1129

1128:                                             ; preds = %1116
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %1129

1129:                                             ; preds = %1128, %1127
  %1130 = load i32, ptr %73, align 4, !tbaa !9
  %1131 = icmp ne i32 %1130, 0
  br i1 %1131, label %1132, label %1401

1132:                                             ; preds = %1129
  %1133 = load ptr, ptr %20, align 8, !tbaa !5
  %1134 = load i32, ptr %1133, align 4, !tbaa !9
  %1135 = load i32, ptr %79, align 4, !tbaa !9
  %1136 = sub nsw i32 %1134, %1135
  store i32 %1136, ptr %37, align 4, !tbaa !9
  %1137 = load ptr, ptr %21, align 8, !tbaa !5
  %1138 = load i32, ptr %1137, align 4, !tbaa !9
  %1139 = load i32, ptr %79, align 4, !tbaa !9
  %1140 = sub nsw i32 %1138, %1139
  store i32 %1140, ptr %38, align 4, !tbaa !9
  %1141 = load ptr, ptr %29, align 8, !tbaa !5
  %1142 = load i32, ptr %1141, align 4, !tbaa !9
  %1143 = load ptr, ptr %21, align 8, !tbaa !5
  %1144 = load i32, ptr %1143, align 4, !tbaa !9
  %1145 = sub nsw i32 %1142, %1144
  store i32 %1145, ptr %39, align 4, !tbaa !9
  %1146 = load ptr, ptr %19, align 8, !tbaa !5
  %1147 = load ptr, ptr %22, align 8, !tbaa !5
  %1148 = load i32, ptr %79, align 4, !tbaa !9
  %1149 = add nsw i32 %1148, 1
  %1150 = load i32, ptr %79, align 4, !tbaa !9
  %1151 = add nsw i32 %1150, 1
  %1152 = load i32, ptr %33, align 4, !tbaa !9
  %1153 = mul nsw i32 %1151, %1152
  %1154 = add nsw i32 %1149, %1153
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds %struct.complex, ptr %1147, i64 %1155
  %1157 = load ptr, ptr %23, align 8, !tbaa !5
  %1158 = load ptr, ptr %28, align 8, !tbaa !5
  %1159 = load i32, ptr %79, align 4, !tbaa !9
  %1160 = add nsw i32 %1159, 1
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds %struct.complex, ptr %1158, i64 %1161
  %1163 = load ptr, ptr %24, align 8, !tbaa !5
  %1164 = load i32, ptr %79, align 4, !tbaa !9
  %1165 = add nsw i32 %1164, 1
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds float, ptr %1163, i64 %1166
  %1168 = load ptr, ptr %26, align 8, !tbaa !5
  %1169 = load i32, ptr %79, align 4, !tbaa !9
  %1170 = load i32, ptr %61, align 4, !tbaa !9
  %1171 = mul nsw i32 %1169, %1170
  %1172 = add nsw i32 %1171, 1
  %1173 = load i32, ptr %79, align 4, !tbaa !9
  %1174 = add nsw i32 %1173, 1
  %1175 = load i32, ptr %35, align 4, !tbaa !9
  %1176 = mul nsw i32 %1174, %1175
  %1177 = add nsw i32 %1172, %1176
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds %struct.complex, ptr %1168, i64 %1178
  %1180 = load ptr, ptr %27, align 8, !tbaa !5
  %1181 = load ptr, ptr %28, align 8, !tbaa !5
  %1182 = load ptr, ptr %21, align 8, !tbaa !5
  %1183 = load i32, ptr %1182, align 4, !tbaa !9
  %1184 = add nsw i32 %1183, 1
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds %struct.complex, ptr %1181, i64 %1185
  call void @cgsvj0_(ptr noundef %1146, ptr noundef %37, ptr noundef %38, ptr noundef %1156, ptr noundef %1157, ptr noundef %1162, ptr noundef %1167, ptr noundef %104, ptr noundef %1179, ptr noundef %1180, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__2, ptr noundef %1186, ptr noundef %39, ptr noundef %52)
  %1187 = load ptr, ptr %20, align 8, !tbaa !5
  %1188 = load i32, ptr %1187, align 4, !tbaa !9
  %1189 = load i32, ptr %76, align 4, !tbaa !9
  %1190 = sub nsw i32 %1188, %1189
  store i32 %1190, ptr %37, align 4, !tbaa !9
  %1191 = load i32, ptr %79, align 4, !tbaa !9
  %1192 = load i32, ptr %76, align 4, !tbaa !9
  %1193 = sub nsw i32 %1191, %1192
  store i32 %1193, ptr %38, align 4, !tbaa !9
  %1194 = load ptr, ptr %29, align 8, !tbaa !5
  %1195 = load i32, ptr %1194, align 4, !tbaa !9
  %1196 = load ptr, ptr %21, align 8, !tbaa !5
  %1197 = load i32, ptr %1196, align 4, !tbaa !9
  %1198 = sub nsw i32 %1195, %1197
  store i32 %1198, ptr %39, align 4, !tbaa !9
  %1199 = load ptr, ptr %19, align 8, !tbaa !5
  %1200 = load ptr, ptr %22, align 8, !tbaa !5
  %1201 = load i32, ptr %76, align 4, !tbaa !9
  %1202 = add nsw i32 %1201, 1
  %1203 = load i32, ptr %76, align 4, !tbaa !9
  %1204 = add nsw i32 %1203, 1
  %1205 = load i32, ptr %33, align 4, !tbaa !9
  %1206 = mul nsw i32 %1204, %1205
  %1207 = add nsw i32 %1202, %1206
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds %struct.complex, ptr %1200, i64 %1208
  %1210 = load ptr, ptr %23, align 8, !tbaa !5
  %1211 = load ptr, ptr %28, align 8, !tbaa !5
  %1212 = load i32, ptr %76, align 4, !tbaa !9
  %1213 = add nsw i32 %1212, 1
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds %struct.complex, ptr %1211, i64 %1214
  %1216 = load ptr, ptr %24, align 8, !tbaa !5
  %1217 = load i32, ptr %76, align 4, !tbaa !9
  %1218 = add nsw i32 %1217, 1
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds float, ptr %1216, i64 %1219
  %1221 = load ptr, ptr %26, align 8, !tbaa !5
  %1222 = load i32, ptr %76, align 4, !tbaa !9
  %1223 = load i32, ptr %61, align 4, !tbaa !9
  %1224 = mul nsw i32 %1222, %1223
  %1225 = add nsw i32 %1224, 1
  %1226 = load i32, ptr %76, align 4, !tbaa !9
  %1227 = add nsw i32 %1226, 1
  %1228 = load i32, ptr %35, align 4, !tbaa !9
  %1229 = mul nsw i32 %1227, %1228
  %1230 = add nsw i32 %1225, %1229
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds %struct.complex, ptr %1221, i64 %1231
  %1233 = load ptr, ptr %27, align 8, !tbaa !5
  %1234 = load ptr, ptr %28, align 8, !tbaa !5
  %1235 = load ptr, ptr %21, align 8, !tbaa !5
  %1236 = load i32, ptr %1235, align 4, !tbaa !9
  %1237 = add nsw i32 %1236, 1
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds %struct.complex, ptr %1234, i64 %1238
  call void @cgsvj0_(ptr noundef %1199, ptr noundef %37, ptr noundef %38, ptr noundef %1209, ptr noundef %1210, ptr noundef %1215, ptr noundef %1220, ptr noundef %104, ptr noundef %1232, ptr noundef %1233, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__2, ptr noundef %1239, ptr noundef %39, ptr noundef %52)
  %1240 = load ptr, ptr %20, align 8, !tbaa !5
  %1241 = load i32, ptr %1240, align 4, !tbaa !9
  %1242 = load i32, ptr %76, align 4, !tbaa !9
  %1243 = sub nsw i32 %1241, %1242
  store i32 %1243, ptr %37, align 4, !tbaa !9
  %1244 = load ptr, ptr %21, align 8, !tbaa !5
  %1245 = load i32, ptr %1244, align 4, !tbaa !9
  %1246 = load i32, ptr %76, align 4, !tbaa !9
  %1247 = sub nsw i32 %1245, %1246
  store i32 %1247, ptr %38, align 4, !tbaa !9
  %1248 = load ptr, ptr %29, align 8, !tbaa !5
  %1249 = load i32, ptr %1248, align 4, !tbaa !9
  %1250 = load ptr, ptr %21, align 8, !tbaa !5
  %1251 = load i32, ptr %1250, align 4, !tbaa !9
  %1252 = sub nsw i32 %1249, %1251
  store i32 %1252, ptr %39, align 4, !tbaa !9
  %1253 = load ptr, ptr %19, align 8, !tbaa !5
  %1254 = load ptr, ptr %22, align 8, !tbaa !5
  %1255 = load i32, ptr %76, align 4, !tbaa !9
  %1256 = add nsw i32 %1255, 1
  %1257 = load i32, ptr %76, align 4, !tbaa !9
  %1258 = add nsw i32 %1257, 1
  %1259 = load i32, ptr %33, align 4, !tbaa !9
  %1260 = mul nsw i32 %1258, %1259
  %1261 = add nsw i32 %1256, %1260
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds %struct.complex, ptr %1254, i64 %1262
  %1264 = load ptr, ptr %23, align 8, !tbaa !5
  %1265 = load ptr, ptr %28, align 8, !tbaa !5
  %1266 = load i32, ptr %76, align 4, !tbaa !9
  %1267 = add nsw i32 %1266, 1
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds %struct.complex, ptr %1265, i64 %1268
  %1270 = load ptr, ptr %24, align 8, !tbaa !5
  %1271 = load i32, ptr %76, align 4, !tbaa !9
  %1272 = add nsw i32 %1271, 1
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds float, ptr %1270, i64 %1273
  %1275 = load ptr, ptr %26, align 8, !tbaa !5
  %1276 = load i32, ptr %76, align 4, !tbaa !9
  %1277 = load i32, ptr %61, align 4, !tbaa !9
  %1278 = mul nsw i32 %1276, %1277
  %1279 = add nsw i32 %1278, 1
  %1280 = load i32, ptr %76, align 4, !tbaa !9
  %1281 = add nsw i32 %1280, 1
  %1282 = load i32, ptr %35, align 4, !tbaa !9
  %1283 = mul nsw i32 %1281, %1282
  %1284 = add nsw i32 %1279, %1283
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds %struct.complex, ptr %1275, i64 %1285
  %1287 = load ptr, ptr %27, align 8, !tbaa !5
  %1288 = load ptr, ptr %28, align 8, !tbaa !5
  %1289 = load ptr, ptr %21, align 8, !tbaa !5
  %1290 = load i32, ptr %1289, align 4, !tbaa !9
  %1291 = add nsw i32 %1290, 1
  %1292 = sext i32 %1291 to i64
  %1293 = getelementptr inbounds %struct.complex, ptr %1288, i64 %1292
  call void @cgsvj1_(ptr noundef %1253, ptr noundef %37, ptr noundef %38, ptr noundef %77, ptr noundef %1263, ptr noundef %1264, ptr noundef %1269, ptr noundef %1274, ptr noundef %104, ptr noundef %1286, ptr noundef %1287, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__1, ptr noundef %1293, ptr noundef %39, ptr noundef %52)
  %1294 = load ptr, ptr %20, align 8, !tbaa !5
  %1295 = load i32, ptr %1294, align 4, !tbaa !9
  %1296 = load i32, ptr %77, align 4, !tbaa !9
  %1297 = sub nsw i32 %1295, %1296
  store i32 %1297, ptr %37, align 4, !tbaa !9
  %1298 = load i32, ptr %76, align 4, !tbaa !9
  %1299 = load i32, ptr %77, align 4, !tbaa !9
  %1300 = sub nsw i32 %1298, %1299
  store i32 %1300, ptr %38, align 4, !tbaa !9
  %1301 = load ptr, ptr %29, align 8, !tbaa !5
  %1302 = load i32, ptr %1301, align 4, !tbaa !9
  %1303 = load ptr, ptr %21, align 8, !tbaa !5
  %1304 = load i32, ptr %1303, align 4, !tbaa !9
  %1305 = sub nsw i32 %1302, %1304
  store i32 %1305, ptr %39, align 4, !tbaa !9
  %1306 = load ptr, ptr %19, align 8, !tbaa !5
  %1307 = load ptr, ptr %22, align 8, !tbaa !5
  %1308 = load i32, ptr %77, align 4, !tbaa !9
  %1309 = add nsw i32 %1308, 1
  %1310 = load i32, ptr %77, align 4, !tbaa !9
  %1311 = add nsw i32 %1310, 1
  %1312 = load i32, ptr %33, align 4, !tbaa !9
  %1313 = mul nsw i32 %1311, %1312
  %1314 = add nsw i32 %1309, %1313
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds %struct.complex, ptr %1307, i64 %1315
  %1317 = load ptr, ptr %23, align 8, !tbaa !5
  %1318 = load ptr, ptr %28, align 8, !tbaa !5
  %1319 = load i32, ptr %77, align 4, !tbaa !9
  %1320 = add nsw i32 %1319, 1
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds %struct.complex, ptr %1318, i64 %1321
  %1323 = load ptr, ptr %24, align 8, !tbaa !5
  %1324 = load i32, ptr %77, align 4, !tbaa !9
  %1325 = add nsw i32 %1324, 1
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds float, ptr %1323, i64 %1326
  %1328 = load ptr, ptr %26, align 8, !tbaa !5
  %1329 = load i32, ptr %77, align 4, !tbaa !9
  %1330 = load i32, ptr %61, align 4, !tbaa !9
  %1331 = mul nsw i32 %1329, %1330
  %1332 = add nsw i32 %1331, 1
  %1333 = load i32, ptr %77, align 4, !tbaa !9
  %1334 = add nsw i32 %1333, 1
  %1335 = load i32, ptr %35, align 4, !tbaa !9
  %1336 = mul nsw i32 %1334, %1335
  %1337 = add nsw i32 %1332, %1336
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds %struct.complex, ptr %1328, i64 %1338
  %1340 = load ptr, ptr %27, align 8, !tbaa !5
  %1341 = load ptr, ptr %28, align 8, !tbaa !5
  %1342 = load ptr, ptr %21, align 8, !tbaa !5
  %1343 = load i32, ptr %1342, align 4, !tbaa !9
  %1344 = add nsw i32 %1343, 1
  %1345 = sext i32 %1344 to i64
  %1346 = getelementptr inbounds %struct.complex, ptr %1341, i64 %1345
  call void @cgsvj0_(ptr noundef %1306, ptr noundef %37, ptr noundef %38, ptr noundef %1316, ptr noundef %1317, ptr noundef %1322, ptr noundef %1327, ptr noundef %104, ptr noundef %1339, ptr noundef %1340, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__1, ptr noundef %1346, ptr noundef %39, ptr noundef %52)
  %1347 = load ptr, ptr %29, align 8, !tbaa !5
  %1348 = load i32, ptr %1347, align 4, !tbaa !9
  %1349 = load ptr, ptr %21, align 8, !tbaa !5
  %1350 = load i32, ptr %1349, align 4, !tbaa !9
  %1351 = sub nsw i32 %1348, %1350
  store i32 %1351, ptr %37, align 4, !tbaa !9
  %1352 = load ptr, ptr %19, align 8, !tbaa !5
  %1353 = load ptr, ptr %20, align 8, !tbaa !5
  %1354 = load ptr, ptr %22, align 8, !tbaa !5
  %1355 = load i32, ptr %34, align 4, !tbaa !9
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds %struct.complex, ptr %1354, i64 %1356
  %1358 = load ptr, ptr %23, align 8, !tbaa !5
  %1359 = load ptr, ptr %28, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.complex, ptr %1359, i64 1
  %1361 = load ptr, ptr %24, align 8, !tbaa !5
  %1362 = getelementptr inbounds float, ptr %1361, i64 1
  %1363 = load ptr, ptr %26, align 8, !tbaa !5
  %1364 = load i32, ptr %36, align 4, !tbaa !9
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds %struct.complex, ptr %1363, i64 %1365
  %1367 = load ptr, ptr %27, align 8, !tbaa !5
  %1368 = load ptr, ptr %28, align 8, !tbaa !5
  %1369 = load ptr, ptr %21, align 8, !tbaa !5
  %1370 = load i32, ptr %1369, align 4, !tbaa !9
  %1371 = add nsw i32 %1370, 1
  %1372 = sext i32 %1371 to i64
  %1373 = getelementptr inbounds %struct.complex, ptr %1368, i64 %1372
  call void @cgsvj0_(ptr noundef %1352, ptr noundef %1353, ptr noundef %77, ptr noundef %1357, ptr noundef %1358, ptr noundef %1360, ptr noundef %1362, ptr noundef %104, ptr noundef %1366, ptr noundef %1367, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__1, ptr noundef %1373, ptr noundef %37, ptr noundef %52)
  %1374 = load ptr, ptr %29, align 8, !tbaa !5
  %1375 = load i32, ptr %1374, align 4, !tbaa !9
  %1376 = load ptr, ptr %21, align 8, !tbaa !5
  %1377 = load i32, ptr %1376, align 4, !tbaa !9
  %1378 = sub nsw i32 %1375, %1377
  store i32 %1378, ptr %37, align 4, !tbaa !9
  %1379 = load ptr, ptr %19, align 8, !tbaa !5
  %1380 = load ptr, ptr %20, align 8, !tbaa !5
  %1381 = load ptr, ptr %22, align 8, !tbaa !5
  %1382 = load i32, ptr %34, align 4, !tbaa !9
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds %struct.complex, ptr %1381, i64 %1383
  %1385 = load ptr, ptr %23, align 8, !tbaa !5
  %1386 = load ptr, ptr %28, align 8, !tbaa !5
  %1387 = getelementptr inbounds %struct.complex, ptr %1386, i64 1
  %1388 = load ptr, ptr %24, align 8, !tbaa !5
  %1389 = getelementptr inbounds float, ptr %1388, i64 1
  %1390 = load ptr, ptr %26, align 8, !tbaa !5
  %1391 = load i32, ptr %36, align 4, !tbaa !9
  %1392 = sext i32 %1391 to i64
  %1393 = getelementptr inbounds %struct.complex, ptr %1390, i64 %1392
  %1394 = load ptr, ptr %27, align 8, !tbaa !5
  %1395 = load ptr, ptr %28, align 8, !tbaa !5
  %1396 = load ptr, ptr %21, align 8, !tbaa !5
  %1397 = load i32, ptr %1396, align 4, !tbaa !9
  %1398 = add nsw i32 %1397, 1
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds %struct.complex, ptr %1395, i64 %1399
  call void @cgsvj1_(ptr noundef %1379, ptr noundef %1380, ptr noundef %76, ptr noundef %77, ptr noundef %1384, ptr noundef %1385, ptr noundef %1387, ptr noundef %1389, ptr noundef %104, ptr noundef %1393, ptr noundef %1394, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__1, ptr noundef %1400, ptr noundef %37, ptr noundef %52)
  br label %1549

1401:                                             ; preds = %1129
  %1402 = load i32, ptr %74, align 4, !tbaa !9
  %1403 = icmp ne i32 %1402, 0
  br i1 %1403, label %1404, label %1548

1404:                                             ; preds = %1401
  %1405 = load ptr, ptr %29, align 8, !tbaa !5
  %1406 = load i32, ptr %1405, align 4, !tbaa !9
  %1407 = load ptr, ptr %21, align 8, !tbaa !5
  %1408 = load i32, ptr %1407, align 4, !tbaa !9
  %1409 = sub nsw i32 %1406, %1408
  store i32 %1409, ptr %37, align 4, !tbaa !9
  %1410 = load ptr, ptr %19, align 8, !tbaa !5
  %1411 = load ptr, ptr %22, align 8, !tbaa !5
  %1412 = load i32, ptr %34, align 4, !tbaa !9
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds %struct.complex, ptr %1411, i64 %1413
  %1415 = load ptr, ptr %23, align 8, !tbaa !5
  %1416 = load ptr, ptr %28, align 8, !tbaa !5
  %1417 = getelementptr inbounds %struct.complex, ptr %1416, i64 1
  %1418 = load ptr, ptr %24, align 8, !tbaa !5
  %1419 = getelementptr inbounds float, ptr %1418, i64 1
  %1420 = load ptr, ptr %26, align 8, !tbaa !5
  %1421 = load i32, ptr %36, align 4, !tbaa !9
  %1422 = sext i32 %1421 to i64
  %1423 = getelementptr inbounds %struct.complex, ptr %1420, i64 %1422
  %1424 = load ptr, ptr %27, align 8, !tbaa !5
  %1425 = load ptr, ptr %28, align 8, !tbaa !5
  %1426 = load ptr, ptr %21, align 8, !tbaa !5
  %1427 = load i32, ptr %1426, align 4, !tbaa !9
  %1428 = add nsw i32 %1427, 1
  %1429 = sext i32 %1428 to i64
  %1430 = getelementptr inbounds %struct.complex, ptr %1425, i64 %1429
  call void @cgsvj0_(ptr noundef %1410, ptr noundef %77, ptr noundef %77, ptr noundef %1414, ptr noundef %1415, ptr noundef %1417, ptr noundef %1419, ptr noundef %104, ptr noundef %1423, ptr noundef %1424, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__2, ptr noundef %1430, ptr noundef %37, ptr noundef %52)
  %1431 = load ptr, ptr %29, align 8, !tbaa !5
  %1432 = load i32, ptr %1431, align 4, !tbaa !9
  %1433 = load ptr, ptr %21, align 8, !tbaa !5
  %1434 = load i32, ptr %1433, align 4, !tbaa !9
  %1435 = sub nsw i32 %1432, %1434
  store i32 %1435, ptr %37, align 4, !tbaa !9
  %1436 = load ptr, ptr %19, align 8, !tbaa !5
  %1437 = load ptr, ptr %22, align 8, !tbaa !5
  %1438 = load i32, ptr %77, align 4, !tbaa !9
  %1439 = add nsw i32 %1438, 1
  %1440 = load i32, ptr %33, align 4, !tbaa !9
  %1441 = mul nsw i32 %1439, %1440
  %1442 = add nsw i32 %1441, 1
  %1443 = sext i32 %1442 to i64
  %1444 = getelementptr inbounds %struct.complex, ptr %1437, i64 %1443
  %1445 = load ptr, ptr %23, align 8, !tbaa !5
  %1446 = load ptr, ptr %28, align 8, !tbaa !5
  %1447 = load i32, ptr %77, align 4, !tbaa !9
  %1448 = add nsw i32 %1447, 1
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds %struct.complex, ptr %1446, i64 %1449
  %1451 = load ptr, ptr %24, align 8, !tbaa !5
  %1452 = load i32, ptr %77, align 4, !tbaa !9
  %1453 = add nsw i32 %1452, 1
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds float, ptr %1451, i64 %1454
  %1456 = load ptr, ptr %26, align 8, !tbaa !5
  %1457 = load i32, ptr %77, align 4, !tbaa !9
  %1458 = load i32, ptr %61, align 4, !tbaa !9
  %1459 = mul nsw i32 %1457, %1458
  %1460 = add nsw i32 %1459, 1
  %1461 = load i32, ptr %77, align 4, !tbaa !9
  %1462 = add nsw i32 %1461, 1
  %1463 = load i32, ptr %35, align 4, !tbaa !9
  %1464 = mul nsw i32 %1462, %1463
  %1465 = add nsw i32 %1460, %1464
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds %struct.complex, ptr %1456, i64 %1466
  %1468 = load ptr, ptr %27, align 8, !tbaa !5
  %1469 = load ptr, ptr %28, align 8, !tbaa !5
  %1470 = load ptr, ptr %21, align 8, !tbaa !5
  %1471 = load i32, ptr %1470, align 4, !tbaa !9
  %1472 = add nsw i32 %1471, 1
  %1473 = sext i32 %1472 to i64
  %1474 = getelementptr inbounds %struct.complex, ptr %1469, i64 %1473
  call void @cgsvj0_(ptr noundef %1436, ptr noundef %76, ptr noundef %77, ptr noundef %1444, ptr noundef %1445, ptr noundef %1450, ptr noundef %1455, ptr noundef %104, ptr noundef %1467, ptr noundef %1468, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__1, ptr noundef %1474, ptr noundef %37, ptr noundef %52)
  %1475 = load ptr, ptr %29, align 8, !tbaa !5
  %1476 = load i32, ptr %1475, align 4, !tbaa !9
  %1477 = load ptr, ptr %21, align 8, !tbaa !5
  %1478 = load i32, ptr %1477, align 4, !tbaa !9
  %1479 = sub nsw i32 %1476, %1478
  store i32 %1479, ptr %37, align 4, !tbaa !9
  %1480 = load ptr, ptr %19, align 8, !tbaa !5
  %1481 = load ptr, ptr %22, align 8, !tbaa !5
  %1482 = load i32, ptr %34, align 4, !tbaa !9
  %1483 = sext i32 %1482 to i64
  %1484 = getelementptr inbounds %struct.complex, ptr %1481, i64 %1483
  %1485 = load ptr, ptr %23, align 8, !tbaa !5
  %1486 = load ptr, ptr %28, align 8, !tbaa !5
  %1487 = getelementptr inbounds %struct.complex, ptr %1486, i64 1
  %1488 = load ptr, ptr %24, align 8, !tbaa !5
  %1489 = getelementptr inbounds float, ptr %1488, i64 1
  %1490 = load ptr, ptr %26, align 8, !tbaa !5
  %1491 = load i32, ptr %36, align 4, !tbaa !9
  %1492 = sext i32 %1491 to i64
  %1493 = getelementptr inbounds %struct.complex, ptr %1490, i64 %1492
  %1494 = load ptr, ptr %27, align 8, !tbaa !5
  %1495 = load ptr, ptr %28, align 8, !tbaa !5
  %1496 = load ptr, ptr %21, align 8, !tbaa !5
  %1497 = load i32, ptr %1496, align 4, !tbaa !9
  %1498 = add nsw i32 %1497, 1
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds %struct.complex, ptr %1495, i64 %1499
  call void @cgsvj1_(ptr noundef %1480, ptr noundef %76, ptr noundef %76, ptr noundef %77, ptr noundef %1484, ptr noundef %1485, ptr noundef %1487, ptr noundef %1489, ptr noundef %104, ptr noundef %1493, ptr noundef %1494, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__1, ptr noundef %1500, ptr noundef %37, ptr noundef %52)
  %1501 = load i32, ptr %76, align 4, !tbaa !9
  %1502 = load i32, ptr %77, align 4, !tbaa !9
  %1503 = add nsw i32 %1501, %1502
  store i32 %1503, ptr %37, align 4, !tbaa !9
  %1504 = load ptr, ptr %29, align 8, !tbaa !5
  %1505 = load i32, ptr %1504, align 4, !tbaa !9
  %1506 = load ptr, ptr %21, align 8, !tbaa !5
  %1507 = load i32, ptr %1506, align 4, !tbaa !9
  %1508 = sub nsw i32 %1505, %1507
  store i32 %1508, ptr %38, align 4, !tbaa !9
  %1509 = load ptr, ptr %19, align 8, !tbaa !5
  %1510 = load ptr, ptr %22, align 8, !tbaa !5
  %1511 = load i32, ptr %76, align 4, !tbaa !9
  %1512 = add nsw i32 %1511, 1
  %1513 = load i32, ptr %33, align 4, !tbaa !9
  %1514 = mul nsw i32 %1512, %1513
  %1515 = add nsw i32 %1514, 1
  %1516 = sext i32 %1515 to i64
  %1517 = getelementptr inbounds %struct.complex, ptr %1510, i64 %1516
  %1518 = load ptr, ptr %23, align 8, !tbaa !5
  %1519 = load ptr, ptr %28, align 8, !tbaa !5
  %1520 = load i32, ptr %76, align 4, !tbaa !9
  %1521 = add nsw i32 %1520, 1
  %1522 = sext i32 %1521 to i64
  %1523 = getelementptr inbounds %struct.complex, ptr %1519, i64 %1522
  %1524 = load ptr, ptr %24, align 8, !tbaa !5
  %1525 = load i32, ptr %76, align 4, !tbaa !9
  %1526 = add nsw i32 %1525, 1
  %1527 = sext i32 %1526 to i64
  %1528 = getelementptr inbounds float, ptr %1524, i64 %1527
  %1529 = load ptr, ptr %26, align 8, !tbaa !5
  %1530 = load i32, ptr %76, align 4, !tbaa !9
  %1531 = load i32, ptr %61, align 4, !tbaa !9
  %1532 = mul nsw i32 %1530, %1531
  %1533 = add nsw i32 %1532, 1
  %1534 = load i32, ptr %76, align 4, !tbaa !9
  %1535 = add nsw i32 %1534, 1
  %1536 = load i32, ptr %35, align 4, !tbaa !9
  %1537 = mul nsw i32 %1535, %1536
  %1538 = add nsw i32 %1533, %1537
  %1539 = sext i32 %1538 to i64
  %1540 = getelementptr inbounds %struct.complex, ptr %1529, i64 %1539
  %1541 = load ptr, ptr %27, align 8, !tbaa !5
  %1542 = load ptr, ptr %28, align 8, !tbaa !5
  %1543 = load ptr, ptr %21, align 8, !tbaa !5
  %1544 = load i32, ptr %1543, align 4, !tbaa !9
  %1545 = add nsw i32 %1544, 1
  %1546 = sext i32 %1545 to i64
  %1547 = getelementptr inbounds %struct.complex, ptr %1542, i64 %1546
  call void @cgsvj0_(ptr noundef %1509, ptr noundef %37, ptr noundef %77, ptr noundef %1517, ptr noundef %1518, ptr noundef %1523, ptr noundef %1528, ptr noundef %104, ptr noundef %1540, ptr noundef %1541, ptr noundef %69, ptr noundef %67, ptr noundef %103, ptr noundef @c__1, ptr noundef %1547, ptr noundef %38, ptr noundef %52)
  br label %1548

1548:                                             ; preds = %1404, %1401
  br label %1549

1549:                                             ; preds = %1548, %1132
  br label %1550

1550:                                             ; preds = %1549, %1113, %1100
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %1551

1551:                                             ; preds = %4192, %1550
  %1552 = load i32, ptr %59, align 4, !tbaa !9
  %1553 = icmp sle i32 %1552, 30
  br i1 %1553, label %1554, label %4195

1554:                                             ; preds = %1551
  store float 0.000000e+00, ptr %85, align 4, !tbaa !11
  store float 0.000000e+00, ptr %87, align 4, !tbaa !11
  store i32 0, ptr %92, align 4, !tbaa !9
  store i32 0, ptr %91, align 4, !tbaa !9
  store i32 0, ptr %55, align 4, !tbaa !9
  %1555 = load i32, ptr %100, align 4, !tbaa !9
  store i32 %1555, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %98, align 4, !tbaa !9
  br label %1556

1556:                                             ; preds = %4084, %1554
  %1557 = load i32, ptr %98, align 4, !tbaa !9
  %1558 = load i32, ptr %37, align 4, !tbaa !9
  %1559 = icmp sle i32 %1557, %1558
  br i1 %1559, label %1560, label %4087

1560:                                             ; preds = %1556
  %1561 = load i32, ptr %98, align 4, !tbaa !9
  %1562 = sub nsw i32 %1561, 1
  %1563 = load i32, ptr %95, align 4, !tbaa !9
  %1564 = mul nsw i32 %1562, %1563
  %1565 = add nsw i32 %1564, 1
  store i32 %1565, ptr %97, align 4, !tbaa !9
  %1566 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %1566, ptr %39, align 4, !tbaa !9
  %1567 = load i32, ptr %100, align 4, !tbaa !9
  %1568 = load i32, ptr %98, align 4, !tbaa !9
  %1569 = sub nsw i32 %1567, %1568
  store i32 %1569, ptr %40, align 4, !tbaa !9
  %1570 = load i32, ptr %39, align 4, !tbaa !9
  %1571 = load i32, ptr %40, align 4, !tbaa !9
  %1572 = icmp sle i32 %1570, %1571
  br i1 %1572, label %1573, label %1575

1573:                                             ; preds = %1560
  %1574 = load i32, ptr %39, align 4, !tbaa !9
  br label %1577

1575:                                             ; preds = %1560
  %1576 = load i32, ptr %40, align 4, !tbaa !9
  br label %1577

1577:                                             ; preds = %1575, %1573
  %1578 = phi i32 [ %1574, %1573 ], [ %1576, %1575 ]
  store i32 %1578, ptr %38, align 4, !tbaa !9
  store i32 0, ptr %88, align 4, !tbaa !9
  br label %1579

1579:                                             ; preds = %2811, %1577
  %1580 = load i32, ptr %88, align 4, !tbaa !9
  %1581 = load i32, ptr %38, align 4, !tbaa !9
  %1582 = icmp sle i32 %1580, %1581
  br i1 %1582, label %1583, label %2814

1583:                                             ; preds = %1579
  %1584 = load i32, ptr %88, align 4, !tbaa !9
  %1585 = load i32, ptr %95, align 4, !tbaa !9
  %1586 = mul nsw i32 %1584, %1585
  %1587 = load i32, ptr %97, align 4, !tbaa !9
  %1588 = add nsw i32 %1587, %1586
  store i32 %1588, ptr %97, align 4, !tbaa !9
  %1589 = load i32, ptr %97, align 4, !tbaa !9
  %1590 = load i32, ptr %95, align 4, !tbaa !9
  %1591 = add nsw i32 %1589, %1590
  %1592 = sub nsw i32 %1591, 1
  store i32 %1592, ptr %40, align 4, !tbaa !9
  %1593 = load ptr, ptr %21, align 8, !tbaa !5
  %1594 = load i32, ptr %1593, align 4, !tbaa !9
  %1595 = sub nsw i32 %1594, 1
  store i32 %1595, ptr %41, align 4, !tbaa !9
  %1596 = load i32, ptr %40, align 4, !tbaa !9
  %1597 = load i32, ptr %41, align 4, !tbaa !9
  %1598 = icmp sle i32 %1596, %1597
  br i1 %1598, label %1599, label %1601

1599:                                             ; preds = %1583
  %1600 = load i32, ptr %40, align 4, !tbaa !9
  br label %1603

1601:                                             ; preds = %1583
  %1602 = load i32, ptr %41, align 4, !tbaa !9
  br label %1603

1603:                                             ; preds = %1601, %1599
  %1604 = phi i32 [ %1600, %1599 ], [ %1602, %1601 ]
  store i32 %1604, ptr %39, align 4, !tbaa !9
  %1605 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %1605, ptr %60, align 4, !tbaa !9
  br label %1606

1606:                                             ; preds = %2807, %1603
  %1607 = load i32, ptr %60, align 4, !tbaa !9
  %1608 = load i32, ptr %39, align 4, !tbaa !9
  %1609 = icmp sle i32 %1607, %1608
  br i1 %1609, label %1610, label %2810

1610:                                             ; preds = %1606
  %1611 = load ptr, ptr %21, align 8, !tbaa !5
  %1612 = load i32, ptr %1611, align 4, !tbaa !9
  %1613 = load i32, ptr %60, align 4, !tbaa !9
  %1614 = sub nsw i32 %1612, %1613
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr %40, align 4, !tbaa !9
  %1616 = load ptr, ptr %24, align 8, !tbaa !5
  %1617 = load i32, ptr %60, align 4, !tbaa !9
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds float, ptr %1616, i64 %1618
  %1620 = call i32 @isamax_(ptr noundef %40, ptr noundef %1619, ptr noundef @c__1)
  %1621 = load i32, ptr %60, align 4, !tbaa !9
  %1622 = add nsw i32 %1620, %1621
  %1623 = sub nsw i32 %1622, 1
  store i32 %1623, ptr %61, align 4, !tbaa !9
  %1624 = load i32, ptr %60, align 4, !tbaa !9
  %1625 = load i32, ptr %61, align 4, !tbaa !9
  %1626 = icmp ne i32 %1624, %1625
  br i1 %1626, label %1627, label %1734

1627:                                             ; preds = %1610
  %1628 = load ptr, ptr %20, align 8, !tbaa !5
  %1629 = load ptr, ptr %22, align 8, !tbaa !5
  %1630 = load i32, ptr %60, align 4, !tbaa !9
  %1631 = load i32, ptr %33, align 4, !tbaa !9
  %1632 = mul nsw i32 %1630, %1631
  %1633 = add nsw i32 %1632, 1
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds %struct.complex, ptr %1629, i64 %1634
  %1636 = load ptr, ptr %22, align 8, !tbaa !5
  %1637 = load i32, ptr %61, align 4, !tbaa !9
  %1638 = load i32, ptr %33, align 4, !tbaa !9
  %1639 = mul nsw i32 %1637, %1638
  %1640 = add nsw i32 %1639, 1
  %1641 = sext i32 %1640 to i64
  %1642 = getelementptr inbounds %struct.complex, ptr %1636, i64 %1641
  call void @cswap_(ptr noundef %1628, ptr noundef %1635, ptr noundef @c__1, ptr noundef %1642, ptr noundef @c__1)
  %1643 = load i32, ptr %71, align 4, !tbaa !9
  %1644 = icmp ne i32 %1643, 0
  br i1 %1644, label %1645, label %1660

1645:                                             ; preds = %1627
  %1646 = load ptr, ptr %26, align 8, !tbaa !5
  %1647 = load i32, ptr %60, align 4, !tbaa !9
  %1648 = load i32, ptr %35, align 4, !tbaa !9
  %1649 = mul nsw i32 %1647, %1648
  %1650 = add nsw i32 %1649, 1
  %1651 = sext i32 %1650 to i64
  %1652 = getelementptr inbounds %struct.complex, ptr %1646, i64 %1651
  %1653 = load ptr, ptr %26, align 8, !tbaa !5
  %1654 = load i32, ptr %61, align 4, !tbaa !9
  %1655 = load i32, ptr %35, 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 %1653, i64 %1658
  call void @cswap_(ptr noundef %104, ptr noundef %1652, ptr noundef @c__1, ptr noundef %1659, ptr noundef @c__1)
  br label %1660

1660:                                             ; preds = %1645, %1627
  %1661 = load ptr, ptr %24, align 8, !tbaa !5
  %1662 = load i32, ptr %60, align 4, !tbaa !9
  %1663 = sext i32 %1662 to i64
  %1664 = getelementptr inbounds float, ptr %1661, i64 %1663
  %1665 = load float, ptr %1664, align 4, !tbaa !11
  store float %1665, ptr %58, align 4, !tbaa !11
  %1666 = load ptr, ptr %24, align 8, !tbaa !5
  %1667 = load i32, ptr %61, align 4, !tbaa !9
  %1668 = sext i32 %1667 to i64
  %1669 = getelementptr inbounds float, ptr %1666, i64 %1668
  %1670 = load float, ptr %1669, align 4, !tbaa !11
  %1671 = load ptr, ptr %24, align 8, !tbaa !5
  %1672 = load i32, ptr %60, align 4, !tbaa !9
  %1673 = sext i32 %1672 to i64
  %1674 = getelementptr inbounds float, ptr %1671, i64 %1673
  store float %1670, ptr %1674, align 4, !tbaa !11
  %1675 = load float, ptr %58, align 4, !tbaa !11
  %1676 = load ptr, ptr %24, align 8, !tbaa !5
  %1677 = load i32, ptr %61, align 4, !tbaa !9
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds float, ptr %1676, i64 %1678
  store float %1675, ptr %1679, align 4, !tbaa !11
  %1680 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1680, ptr %40, align 4, !tbaa !9
  %1681 = load ptr, ptr %28, align 8, !tbaa !5
  %1682 = load i32, ptr %40, align 4, !tbaa !9
  %1683 = sext i32 %1682 to i64
  %1684 = getelementptr inbounds %struct.complex, ptr %1681, i64 %1683
  %1685 = getelementptr inbounds %struct.complex, ptr %1684, i32 0, i32 0
  %1686 = load float, ptr %1685, align 4, !tbaa !13
  %1687 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1686, ptr %1687, align 4, !tbaa !13
  %1688 = load ptr, ptr %28, align 8, !tbaa !5
  %1689 = load i32, ptr %40, align 4, !tbaa !9
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds %struct.complex, ptr %1688, i64 %1690
  %1692 = getelementptr inbounds %struct.complex, ptr %1691, i32 0, i32 1
  %1693 = load float, ptr %1692, align 4, !tbaa !15
  %1694 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1693, ptr %1694, align 4, !tbaa !15
  %1695 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1695, ptr %40, align 4, !tbaa !9
  %1696 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1696, ptr %41, align 4, !tbaa !9
  %1697 = load ptr, ptr %28, align 8, !tbaa !5
  %1698 = load i32, ptr %41, align 4, !tbaa !9
  %1699 = sext i32 %1698 to i64
  %1700 = getelementptr inbounds %struct.complex, ptr %1697, i64 %1699
  %1701 = getelementptr inbounds %struct.complex, ptr %1700, i32 0, i32 0
  %1702 = load float, ptr %1701, align 4, !tbaa !13
  %1703 = load ptr, ptr %28, align 8, !tbaa !5
  %1704 = load i32, ptr %40, align 4, !tbaa !9
  %1705 = sext i32 %1704 to i64
  %1706 = getelementptr inbounds %struct.complex, ptr %1703, i64 %1705
  %1707 = getelementptr inbounds %struct.complex, ptr %1706, i32 0, i32 0
  store float %1702, ptr %1707, align 4, !tbaa !13
  %1708 = load ptr, ptr %28, align 8, !tbaa !5
  %1709 = load i32, ptr %41, align 4, !tbaa !9
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds %struct.complex, ptr %1708, i64 %1710
  %1712 = getelementptr inbounds %struct.complex, ptr %1711, i32 0, i32 1
  %1713 = load float, ptr %1712, align 4, !tbaa !15
  %1714 = load ptr, ptr %28, align 8, !tbaa !5
  %1715 = load i32, ptr %40, align 4, !tbaa !9
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds %struct.complex, ptr %1714, i64 %1716
  %1718 = getelementptr inbounds %struct.complex, ptr %1717, i32 0, i32 1
  store float %1713, ptr %1718, align 4, !tbaa !15
  %1719 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1719, ptr %40, align 4, !tbaa !9
  %1720 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1721 = load float, ptr %1720, align 4, !tbaa !13
  %1722 = load ptr, ptr %28, align 8, !tbaa !5
  %1723 = load i32, ptr %40, align 4, !tbaa !9
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds %struct.complex, ptr %1722, i64 %1724
  %1726 = getelementptr inbounds %struct.complex, ptr %1725, i32 0, i32 0
  store float %1721, ptr %1726, align 4, !tbaa !13
  %1727 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1728 = load float, ptr %1727, align 4, !tbaa !15
  %1729 = load ptr, ptr %28, align 8, !tbaa !5
  %1730 = load i32, ptr %40, align 4, !tbaa !9
  %1731 = sext i32 %1730 to i64
  %1732 = getelementptr inbounds %struct.complex, ptr %1729, i64 %1731
  %1733 = getelementptr inbounds %struct.complex, ptr %1732, i32 0, i32 1
  store float %1728, ptr %1733, align 4, !tbaa !15
  br label %1734

1734:                                             ; preds = %1660, %1610
  %1735 = load i32, ptr %88, align 4, !tbaa !9
  %1736 = icmp eq i32 %1735, 0
  br i1 %1736, label %1737, label %1793

1737:                                             ; preds = %1734
  %1738 = load ptr, ptr %24, align 8, !tbaa !5
  %1739 = load i32, ptr %60, align 4, !tbaa !9
  %1740 = sext i32 %1739 to i64
  %1741 = getelementptr inbounds float, ptr %1738, i64 %1740
  %1742 = load float, ptr %1741, align 4, !tbaa !11
  %1743 = load float, ptr %106, align 4, !tbaa !11
  %1744 = fcmp olt float %1742, %1743
  br i1 %1744, label %1745, label %1767

1745:                                             ; preds = %1737
  %1746 = load ptr, ptr %24, align 8, !tbaa !5
  %1747 = load i32, ptr %60, align 4, !tbaa !9
  %1748 = sext i32 %1747 to i64
  %1749 = getelementptr inbounds float, ptr %1746, i64 %1748
  %1750 = load float, ptr %1749, align 4, !tbaa !11
  %1751 = load float, ptr %78, align 4, !tbaa !11
  %1752 = fcmp ogt float %1750, %1751
  br i1 %1752, label %1753, label %1767

1753:                                             ; preds = %1745
  %1754 = load ptr, ptr %20, align 8, !tbaa !5
  %1755 = load ptr, ptr %22, align 8, !tbaa !5
  %1756 = load i32, ptr %60, align 4, !tbaa !9
  %1757 = load i32, ptr %33, align 4, !tbaa !9
  %1758 = mul nsw i32 %1756, %1757
  %1759 = add nsw i32 %1758, 1
  %1760 = sext i32 %1759 to i64
  %1761 = getelementptr inbounds %struct.complex, ptr %1755, i64 %1760
  %1762 = call float @scnrm2_(ptr noundef %1754, ptr noundef %1761, ptr noundef @c__1)
  %1763 = load ptr, ptr %24, align 8, !tbaa !5
  %1764 = load i32, ptr %60, align 4, !tbaa !9
  %1765 = sext i32 %1764 to i64
  %1766 = getelementptr inbounds float, ptr %1763, i64 %1765
  store float %1762, ptr %1766, align 4, !tbaa !11
  br label %1787

1767:                                             ; preds = %1745, %1737
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %48, align 4, !tbaa !11
  %1768 = load ptr, ptr %20, align 8, !tbaa !5
  %1769 = load ptr, ptr %22, align 8, !tbaa !5
  %1770 = load i32, ptr %60, align 4, !tbaa !9
  %1771 = load i32, ptr %33, align 4, !tbaa !9
  %1772 = mul nsw i32 %1770, %1771
  %1773 = add nsw i32 %1772, 1
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds %struct.complex, ptr %1769, i64 %1774
  call void @classq_(ptr noundef %1768, ptr noundef %1775, ptr noundef @c__1, ptr noundef %58, ptr noundef %48)
  %1776 = load float, ptr %58, align 4, !tbaa !11
  %1777 = fpext float %1776 to double
  %1778 = load float, ptr %48, align 4, !tbaa !11
  %1779 = fpext float %1778 to double
  %1780 = call double @sqrt(double noundef %1779) #7
  %1781 = fmul double %1777, %1780
  %1782 = fptrunc double %1781 to float
  %1783 = load ptr, ptr %24, align 8, !tbaa !5
  %1784 = load i32, ptr %60, align 4, !tbaa !9
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds float, ptr %1783, i64 %1785
  store float %1782, ptr %1786, align 4, !tbaa !11
  br label %1787

1787:                                             ; preds = %1767, %1753
  %1788 = load ptr, ptr %24, align 8, !tbaa !5
  %1789 = load i32, ptr %60, align 4, !tbaa !9
  %1790 = sext i32 %1789 to i64
  %1791 = getelementptr inbounds float, ptr %1788, i64 %1790
  %1792 = load float, ptr %1791, align 4, !tbaa !11
  store float %1792, ptr %48, align 4, !tbaa !11
  br label %1799

1793:                                             ; preds = %1734
  %1794 = load ptr, ptr %24, align 8, !tbaa !5
  %1795 = load i32, ptr %60, align 4, !tbaa !9
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds float, ptr %1794, i64 %1796
  %1798 = load float, ptr %1797, align 4, !tbaa !11
  store float %1798, ptr %48, align 4, !tbaa !11
  br label %1799

1799:                                             ; preds = %1793, %1787
  %1800 = load float, ptr %48, align 4, !tbaa !11
  %1801 = fcmp ogt float %1800, 0.000000e+00
  br i1 %1801, label %1802, label %2774

1802:                                             ; preds = %1799
  store i32 0, ptr %55, align 4, !tbaa !9
  %1803 = load i32, ptr %97, align 4, !tbaa !9
  %1804 = load i32, ptr %95, align 4, !tbaa !9
  %1805 = add nsw i32 %1803, %1804
  %1806 = sub nsw i32 %1805, 1
  store i32 %1806, ptr %41, align 4, !tbaa !9
  %1807 = load i32, ptr %41, align 4, !tbaa !9
  %1808 = load ptr, ptr %21, align 8, !tbaa !5
  %1809 = load i32, ptr %1808, align 4, !tbaa !9
  %1810 = icmp sle i32 %1807, %1809
  br i1 %1810, label %1811, label %1813

1811:                                             ; preds = %1802
  %1812 = load i32, ptr %41, align 4, !tbaa !9
  br label %1816

1813:                                             ; preds = %1802
  %1814 = load ptr, ptr %21, align 8, !tbaa !5
  %1815 = load i32, ptr %1814, align 4, !tbaa !9
  br label %1816

1816:                                             ; preds = %1813, %1811
  %1817 = phi i32 [ %1812, %1811 ], [ %1815, %1813 ]
  store i32 %1817, ptr %40, align 4, !tbaa !9
  %1818 = load i32, ptr %60, align 4, !tbaa !9
  %1819 = add nsw i32 %1818, 1
  store i32 %1819, ptr %61, align 4, !tbaa !9
  br label %1820

1820:                                             ; preds = %2764, %1816
  %1821 = load i32, ptr %61, align 4, !tbaa !9
  %1822 = load i32, ptr %40, align 4, !tbaa !9
  %1823 = icmp sle i32 %1821, %1822
  br i1 %1823, label %1824, label %2767

1824:                                             ; preds = %1820
  %1825 = load ptr, ptr %24, align 8, !tbaa !5
  %1826 = load i32, ptr %61, align 4, !tbaa !9
  %1827 = sext i32 %1826 to i64
  %1828 = getelementptr inbounds float, ptr %1825, i64 %1827
  %1829 = load float, ptr %1828, align 4, !tbaa !11
  store float %1829, ptr %50, align 4, !tbaa !11
  %1830 = load float, ptr %50, align 4, !tbaa !11
  %1831 = fcmp ogt float %1830, 0.000000e+00
  br i1 %1831, label %1832, label %2739

1832:                                             ; preds = %1824
  %1833 = load float, ptr %48, align 4, !tbaa !11
  store float %1833, ptr %56, align 4, !tbaa !11
  %1834 = load float, ptr %50, align 4, !tbaa !11
  %1835 = fcmp oge float %1834, 1.000000e+00
  br i1 %1835, label %1836, label %1944

1836:                                             ; preds = %1832
  %1837 = load float, ptr %66, align 4, !tbaa !11
  %1838 = load float, ptr %48, align 4, !tbaa !11
  %1839 = fmul float %1837, %1838
  %1840 = load float, ptr %50, align 4, !tbaa !11
  %1841 = fcmp ole float %1839, %1840
  %1842 = zext i1 %1841 to i32
  store i32 %1842, ptr %75, align 4, !tbaa !9
  %1843 = load float, ptr %48, align 4, !tbaa !11
  %1844 = load float, ptr %94, align 4, !tbaa !11
  %1845 = load float, ptr %50, align 4, !tbaa !11
  %1846 = fdiv float %1844, %1845
  %1847 = fcmp olt float %1843, %1846
  br i1 %1847, label %1848, label %1890

1848:                                             ; preds = %1836
  %1849 = load ptr, ptr %20, align 8, !tbaa !5
  %1850 = load ptr, ptr %22, align 8, !tbaa !5
  %1851 = load i32, ptr %60, align 4, !tbaa !9
  %1852 = load i32, ptr %33, 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 %22, align 8, !tbaa !5
  %1858 = load i32, ptr %61, align 4, !tbaa !9
  %1859 = load i32, ptr %33, 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 @cdotc_(ptr noundef %47, ptr noundef %1849, ptr noundef %1856, ptr noundef @c__1, ptr noundef %1863, ptr noundef @c__1)
  %1864 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1865 = load float, ptr %1864, align 4, !tbaa !13
  %1866 = load float, ptr %50, align 4, !tbaa !11
  %1867 = fdiv float %1865, %1866
  %1868 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1867, ptr %1868, align 4, !tbaa !13
  %1869 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1870 = load float, ptr %1869, align 4, !tbaa !15
  %1871 = load float, ptr %50, align 4, !tbaa !11
  %1872 = fdiv float %1870, %1871
  %1873 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1872, ptr %1873, align 4, !tbaa !15
  %1874 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1875 = load float, ptr %1874, align 4, !tbaa !13
  %1876 = load float, ptr %48, align 4, !tbaa !11
  %1877 = fdiv float %1875, %1876
  %1878 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1877, ptr %1878, align 4, !tbaa !13
  %1879 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1880 = load float, ptr %1879, align 4, !tbaa !15
  %1881 = load float, ptr %48, align 4, !tbaa !11
  %1882 = fdiv float %1880, %1881
  %1883 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1882, ptr %1883, align 4, !tbaa !15
  %1884 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1885 = load float, ptr %1884, align 4, !tbaa !13
  %1886 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1885, ptr %1886, align 4, !tbaa !13
  %1887 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1888 = load float, ptr %1887, align 4, !tbaa !15
  %1889 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1888, ptr %1889, align 4, !tbaa !15
  br label %1943

1890:                                             ; preds = %1836
  %1891 = load ptr, ptr %20, align 8, !tbaa !5
  %1892 = load ptr, ptr %22, align 8, !tbaa !5
  %1893 = load i32, ptr %60, align 4, !tbaa !9
  %1894 = load i32, ptr %33, align 4, !tbaa !9
  %1895 = mul nsw i32 %1893, %1894
  %1896 = add nsw i32 %1895, 1
  %1897 = sext i32 %1896 to i64
  %1898 = getelementptr inbounds %struct.complex, ptr %1892, i64 %1897
  %1899 = load ptr, ptr %28, align 8, !tbaa !5
  %1900 = load ptr, ptr %21, align 8, !tbaa !5
  %1901 = load i32, ptr %1900, align 4, !tbaa !9
  %1902 = add nsw i32 %1901, 1
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds %struct.complex, ptr %1899, i64 %1903
  call void @ccopy_(ptr noundef %1891, ptr noundef %1898, ptr noundef @c__1, ptr noundef %1904, ptr noundef @c__1)
  %1905 = load ptr, ptr %20, align 8, !tbaa !5
  %1906 = load ptr, ptr %28, align 8, !tbaa !5
  %1907 = load ptr, ptr %21, align 8, !tbaa !5
  %1908 = load i32, ptr %1907, align 4, !tbaa !9
  %1909 = add nsw i32 %1908, 1
  %1910 = sext i32 %1909 to i64
  %1911 = getelementptr inbounds %struct.complex, ptr %1906, i64 %1910
  %1912 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %48, ptr noundef @c_b41, ptr noundef %1905, ptr noundef @c__1, ptr noundef %1911, ptr noundef %1912, ptr noundef %52)
  %1913 = load ptr, ptr %20, align 8, !tbaa !5
  %1914 = load ptr, ptr %28, align 8, !tbaa !5
  %1915 = load ptr, ptr %21, align 8, !tbaa !5
  %1916 = load i32, ptr %1915, align 4, !tbaa !9
  %1917 = add nsw i32 %1916, 1
  %1918 = sext i32 %1917 to i64
  %1919 = getelementptr inbounds %struct.complex, ptr %1914, i64 %1918
  %1920 = load ptr, ptr %22, align 8, !tbaa !5
  %1921 = load i32, ptr %61, align 4, !tbaa !9
  %1922 = load i32, ptr %33, align 4, !tbaa !9
  %1923 = mul nsw i32 %1921, %1922
  %1924 = add nsw i32 %1923, 1
  %1925 = sext i32 %1924 to i64
  %1926 = getelementptr inbounds %struct.complex, ptr %1920, i64 %1925
  call void @cdotc_(ptr noundef %46, ptr noundef %1913, ptr noundef %1919, ptr noundef @c__1, ptr noundef %1926, ptr noundef @c__1)
  %1927 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1928 = load float, ptr %1927, align 4, !tbaa !13
  %1929 = load float, ptr %50, align 4, !tbaa !11
  %1930 = fdiv float %1928, %1929
  %1931 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1930, ptr %1931, align 4, !tbaa !13
  %1932 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1933 = load float, ptr %1932, align 4, !tbaa !15
  %1934 = load float, ptr %50, align 4, !tbaa !11
  %1935 = fdiv float %1933, %1934
  %1936 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1935, ptr %1936, align 4, !tbaa !15
  %1937 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1938 = load float, ptr %1937, align 4, !tbaa !13
  %1939 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1938, ptr %1939, align 4, !tbaa !13
  %1940 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1941 = load float, ptr %1940, align 4, !tbaa !15
  %1942 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1941, ptr %1942, align 4, !tbaa !15
  br label %1943

1943:                                             ; preds = %1890, %1848
  br label %2052

1944:                                             ; preds = %1832
  %1945 = load float, ptr %48, align 4, !tbaa !11
  %1946 = load float, ptr %50, align 4, !tbaa !11
  %1947 = load float, ptr %66, align 4, !tbaa !11
  %1948 = fdiv float %1946, %1947
  %1949 = fcmp ole float %1945, %1948
  %1950 = zext i1 %1949 to i32
  store i32 %1950, ptr %75, align 4, !tbaa !9
  %1951 = load float, ptr %48, align 4, !tbaa !11
  %1952 = load float, ptr %66, align 4, !tbaa !11
  %1953 = load float, ptr %50, align 4, !tbaa !11
  %1954 = fdiv float %1952, %1953
  %1955 = fcmp ogt float %1951, %1954
  br i1 %1955, label %1956, label %1998

1956:                                             ; preds = %1944
  %1957 = load ptr, ptr %20, align 8, !tbaa !5
  %1958 = load ptr, ptr %22, align 8, !tbaa !5
  %1959 = load i32, ptr %60, align 4, !tbaa !9
  %1960 = load i32, ptr %33, align 4, !tbaa !9
  %1961 = mul nsw i32 %1959, %1960
  %1962 = add nsw i32 %1961, 1
  %1963 = sext i32 %1962 to i64
  %1964 = getelementptr inbounds %struct.complex, ptr %1958, i64 %1963
  %1965 = load ptr, ptr %22, align 8, !tbaa !5
  %1966 = load i32, ptr %61, align 4, !tbaa !9
  %1967 = load i32, ptr %33, align 4, !tbaa !9
  %1968 = mul nsw i32 %1966, %1967
  %1969 = add nsw i32 %1968, 1
  %1970 = sext i32 %1969 to i64
  %1971 = getelementptr inbounds %struct.complex, ptr %1965, i64 %1970
  call void @cdotc_(ptr noundef %47, ptr noundef %1957, ptr noundef %1964, ptr noundef @c__1, ptr noundef %1971, ptr noundef @c__1)
  %1972 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1973 = load float, ptr %1972, align 4, !tbaa !13
  %1974 = load float, ptr %48, align 4, !tbaa !11
  %1975 = fdiv float %1973, %1974
  %1976 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1975, ptr %1976, align 4, !tbaa !13
  %1977 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1978 = load float, ptr %1977, align 4, !tbaa !15
  %1979 = load float, ptr %48, align 4, !tbaa !11
  %1980 = fdiv float %1978, %1979
  %1981 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1980, ptr %1981, align 4, !tbaa !15
  %1982 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1983 = load float, ptr %1982, align 4, !tbaa !13
  %1984 = load float, ptr %50, align 4, !tbaa !11
  %1985 = fdiv float %1983, %1984
  %1986 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1985, ptr %1986, align 4, !tbaa !13
  %1987 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1988 = load float, ptr %1987, align 4, !tbaa !15
  %1989 = load float, ptr %50, align 4, !tbaa !11
  %1990 = fdiv float %1988, %1989
  %1991 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1990, ptr %1991, align 4, !tbaa !15
  %1992 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1993 = load float, ptr %1992, align 4, !tbaa !13
  %1994 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1993, ptr %1994, align 4, !tbaa !13
  %1995 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1996 = load float, ptr %1995, align 4, !tbaa !15
  %1997 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1996, ptr %1997, align 4, !tbaa !15
  br label %2051

1998:                                             ; preds = %1944
  %1999 = load ptr, ptr %20, align 8, !tbaa !5
  %2000 = load ptr, ptr %22, align 8, !tbaa !5
  %2001 = load i32, ptr %61, align 4, !tbaa !9
  %2002 = load i32, ptr %33, align 4, !tbaa !9
  %2003 = mul nsw i32 %2001, %2002
  %2004 = add nsw i32 %2003, 1
  %2005 = sext i32 %2004 to i64
  %2006 = getelementptr inbounds %struct.complex, ptr %2000, i64 %2005
  %2007 = load ptr, ptr %28, align 8, !tbaa !5
  %2008 = load ptr, ptr %21, align 8, !tbaa !5
  %2009 = load i32, ptr %2008, align 4, !tbaa !9
  %2010 = add nsw i32 %2009, 1
  %2011 = sext i32 %2010 to i64
  %2012 = getelementptr inbounds %struct.complex, ptr %2007, i64 %2011
  call void @ccopy_(ptr noundef %1999, ptr noundef %2006, ptr noundef @c__1, ptr noundef %2012, ptr noundef @c__1)
  %2013 = load ptr, ptr %20, align 8, !tbaa !5
  %2014 = load ptr, ptr %28, align 8, !tbaa !5
  %2015 = load ptr, ptr %21, align 8, !tbaa !5
  %2016 = load i32, ptr %2015, align 4, !tbaa !9
  %2017 = add nsw i32 %2016, 1
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds %struct.complex, ptr %2014, i64 %2018
  %2020 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef @c_b41, ptr noundef %2013, ptr noundef @c__1, ptr noundef %2019, ptr noundef %2020, ptr noundef %52)
  %2021 = load ptr, ptr %20, align 8, !tbaa !5
  %2022 = load ptr, ptr %22, align 8, !tbaa !5
  %2023 = load i32, ptr %60, align 4, !tbaa !9
  %2024 = load i32, ptr %33, align 4, !tbaa !9
  %2025 = mul nsw i32 %2023, %2024
  %2026 = add nsw i32 %2025, 1
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds %struct.complex, ptr %2022, i64 %2027
  %2029 = load ptr, ptr %28, align 8, !tbaa !5
  %2030 = load ptr, ptr %21, align 8, !tbaa !5
  %2031 = load i32, ptr %2030, align 4, !tbaa !9
  %2032 = add nsw i32 %2031, 1
  %2033 = sext i32 %2032 to i64
  %2034 = getelementptr inbounds %struct.complex, ptr %2029, i64 %2033
  call void @cdotc_(ptr noundef %46, ptr noundef %2021, ptr noundef %2028, ptr noundef @c__1, ptr noundef %2034, ptr noundef @c__1)
  %2035 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2036 = load float, ptr %2035, align 4, !tbaa !13
  %2037 = load float, ptr %48, align 4, !tbaa !11
  %2038 = fdiv float %2036, %2037
  %2039 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2038, ptr %2039, align 4, !tbaa !13
  %2040 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2041 = load float, ptr %2040, align 4, !tbaa !15
  %2042 = load float, ptr %48, align 4, !tbaa !11
  %2043 = fdiv float %2041, %2042
  %2044 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2043, ptr %2044, align 4, !tbaa !15
  %2045 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2046 = load float, ptr %2045, align 4, !tbaa !13
  %2047 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %2046, ptr %2047, align 4, !tbaa !13
  %2048 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2049 = load float, ptr %2048, align 4, !tbaa !15
  %2050 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %2049, ptr %2050, align 4, !tbaa !15
  br label %2051

2051:                                             ; preds = %1998, %1956
  br label %2052

2052:                                             ; preds = %2051, %1943
  %2053 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %2053, ptr %111, align 4
  %2054 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %2055 = load float, ptr %2054, align 4
  %2056 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %2057 = load float, ptr %2056, align 4
  %2058 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %2059 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  store float %2055, ptr %2058, align 4
  store float %2057, ptr %2059, align 4
  %2060 = load <2 x float>, ptr %112, align 4
  %2061 = call float @cabsf(<2 x float> noundef %2060) #7
  %2062 = fneg float %2061
  store float %2062, ptr %57, align 4, !tbaa !11
  %2063 = load float, ptr %85, align 4, !tbaa !11
  store float %2063, ptr %43, align 4, !tbaa !11
  %2064 = load float, ptr %57, align 4, !tbaa !11
  %2065 = fneg float %2064
  store float %2065, ptr %44, align 4, !tbaa !11
  %2066 = load float, ptr %43, align 4, !tbaa !11
  %2067 = load float, ptr %44, align 4, !tbaa !11
  %2068 = fcmp oge float %2066, %2067
  br i1 %2068, label %2069, label %2071

2069:                                             ; preds = %2052
  %2070 = load float, ptr %43, align 4, !tbaa !11
  br label %2073

2071:                                             ; preds = %2052
  %2072 = load float, ptr %44, align 4, !tbaa !11
  br label %2073

2073:                                             ; preds = %2071, %2069
  %2074 = phi float [ %2070, %2069 ], [ %2072, %2071 ]
  store float %2074, ptr %85, align 4, !tbaa !11
  %2075 = load float, ptr %57, align 4, !tbaa !11
  %2076 = fcmp oge float %2075, 0.000000e+00
  br i1 %2076, label %2077, label %2079

2077:                                             ; preds = %2073
  %2078 = load float, ptr %57, align 4, !tbaa !11
  br label %2082

2079:                                             ; preds = %2073
  %2080 = load float, ptr %57, align 4, !tbaa !11
  %2081 = fneg float %2080
  br label %2082

2082:                                             ; preds = %2079, %2077
  %2083 = phi float [ %2078, %2077 ], [ %2081, %2079 ]
  %2084 = load float, ptr %103, align 4, !tbaa !11
  %2085 = fcmp ogt float %2083, %2084
  br i1 %2085, label %2086, label %2729

2086:                                             ; preds = %2082
  %2087 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %2087, ptr %113, align 4
  %2088 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 0
  %2089 = load float, ptr %2088, align 4
  %2090 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 1
  %2091 = load float, ptr %2090, align 4
  %2092 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 0
  %2093 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 1
  store float %2089, ptr %2092, align 4
  store float %2091, ptr %2093, align 4
  %2094 = load <2 x float>, ptr %114, align 4
  %2095 = call float @cabsf(<2 x float> noundef %2094) #7
  store float %2095, ptr %43, align 4, !tbaa !11
  %2096 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2097 = load float, ptr %2096, align 4, !tbaa !13
  %2098 = load float, ptr %43, align 4, !tbaa !11
  %2099 = fdiv float %2097, %2098
  %2100 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2099, ptr %2100, align 4, !tbaa !13
  %2101 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2102 = load float, ptr %2101, align 4, !tbaa !15
  %2103 = load float, ptr %43, align 4, !tbaa !11
  %2104 = fdiv float %2102, %2103
  %2105 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2104, ptr %2105, align 4, !tbaa !15
  %2106 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2107 = load float, ptr %2106, align 4, !tbaa !13
  %2108 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  store float %2107, ptr %2108, align 4, !tbaa !13
  %2109 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2110 = load float, ptr %2109, align 4, !tbaa !15
  %2111 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  store float %2110, ptr %2111, align 4, !tbaa !15
  %2112 = load i32, ptr %88, align 4, !tbaa !9
  %2113 = icmp eq i32 %2112, 0
  br i1 %2113, label %2114, label %2117

2114:                                             ; preds = %2086
  store i32 0, ptr %91, align 4, !tbaa !9
  store i32 0, ptr %55, align 4, !tbaa !9
  %2115 = load i32, ptr %92, align 4, !tbaa !9
  %2116 = add nsw i32 %2115, 1
  store i32 %2116, ptr %92, align 4, !tbaa !9
  br label %2117

2117:                                             ; preds = %2114, %2086
  %2118 = load i32, ptr %75, align 4, !tbaa !9
  %2119 = icmp ne i32 %2118, 0
  br i1 %2119, label %2120, label %2531

2120:                                             ; preds = %2117
  %2121 = load float, ptr %50, align 4, !tbaa !11
  %2122 = load float, ptr %48, align 4, !tbaa !11
  %2123 = fdiv float %2121, %2122
  store float %2123, ptr %64, align 4, !tbaa !11
  %2124 = load float, ptr %48, align 4, !tbaa !11
  %2125 = load float, ptr %50, align 4, !tbaa !11
  %2126 = fdiv float %2124, %2125
  store float %2126, ptr %63, align 4, !tbaa !11
  %2127 = load float, ptr %64, align 4, !tbaa !11
  %2128 = load float, ptr %63, align 4, !tbaa !11
  %2129 = fsub float %2127, %2128
  store float %2129, ptr %43, align 4, !tbaa !11
  %2130 = load float, ptr %43, align 4, !tbaa !11
  %2131 = fcmp oge float %2130, 0.000000e+00
  br i1 %2131, label %2132, label %2134

2132:                                             ; preds = %2120
  %2133 = load float, ptr %43, align 4, !tbaa !11
  br label %2137

2134:                                             ; preds = %2120
  %2135 = load float, ptr %43, align 4, !tbaa !11
  %2136 = fneg float %2135
  br label %2137

2137:                                             ; preds = %2134, %2132
  %2138 = phi float [ %2133, %2132 ], [ %2136, %2134 ]
  %2139 = fmul float %2138, -5.000000e-01
  %2140 = load float, ptr %57, align 4, !tbaa !11
  %2141 = fdiv float %2139, %2140
  store float %2141, ptr %65, align 4, !tbaa !11
  %2142 = load float, ptr %65, align 4, !tbaa !11
  %2143 = fcmp oge float %2142, 0.000000e+00
  br i1 %2143, label %2144, label %2146

2144:                                             ; preds = %2137
  %2145 = load float, ptr %65, align 4, !tbaa !11
  br label %2149

2146:                                             ; preds = %2137
  %2147 = load float, ptr %65, align 4, !tbaa !11
  %2148 = fneg float %2147
  br label %2149

2149:                                             ; preds = %2146, %2144
  %2150 = phi float [ %2145, %2144 ], [ %2148, %2146 ]
  %2151 = load float, ptr %53, align 4, !tbaa !11
  %2152 = fcmp ogt float %2150, %2151
  br i1 %2152, label %2153, label %2291

2153:                                             ; preds = %2149
  %2154 = load float, ptr %65, align 4, !tbaa !11
  %2155 = fdiv float 5.000000e-01, %2154
  store float %2155, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %80, align 4, !tbaa !11
  %2156 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %2156, ptr %115, align 4
  %2157 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 0
  %2158 = load float, ptr %2157, align 4
  %2159 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 1
  %2160 = load float, ptr %2159, align 4
  %2161 = fneg float %2160
  %2162 = call ptr @_pCf(ptr noundef %46)
  %2163 = getelementptr inbounds { float, float }, ptr %2162, i32 0, i32 0
  %2164 = getelementptr inbounds { float, float }, ptr %2162, i32 0, i32 1
  store float %2158, ptr %2163, align 4
  store float %2161, ptr %2164, align 4
  %2165 = load float, ptr %62, align 4, !tbaa !11
  %2166 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2167 = load float, ptr %2166, align 4, !tbaa !13
  %2168 = fmul float %2165, %2167
  %2169 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2168, ptr %2169, align 4, !tbaa !13
  %2170 = load float, ptr %62, align 4, !tbaa !11
  %2171 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2172 = load float, ptr %2171, align 4, !tbaa !15
  %2173 = fmul float %2170, %2172
  %2174 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2173, ptr %2174, align 4, !tbaa !15
  %2175 = load ptr, ptr %20, align 8, !tbaa !5
  %2176 = load ptr, ptr %22, align 8, !tbaa !5
  %2177 = load i32, ptr %60, align 4, !tbaa !9
  %2178 = load i32, ptr %33, align 4, !tbaa !9
  %2179 = mul nsw i32 %2177, %2178
  %2180 = add nsw i32 %2179, 1
  %2181 = sext i32 %2180 to i64
  %2182 = getelementptr inbounds %struct.complex, ptr %2176, i64 %2181
  %2183 = load ptr, ptr %22, align 8, !tbaa !5
  %2184 = load i32, ptr %61, align 4, !tbaa !9
  %2185 = load i32, ptr %33, align 4, !tbaa !9
  %2186 = mul nsw i32 %2184, %2185
  %2187 = add nsw i32 %2186, 1
  %2188 = sext i32 %2187 to i64
  %2189 = getelementptr inbounds %struct.complex, ptr %2183, i64 %2188
  call void @crot_(ptr noundef %2175, ptr noundef %2182, ptr noundef @c__1, ptr noundef %2189, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  %2190 = load i32, ptr %71, align 4, !tbaa !9
  %2191 = icmp ne i32 %2190, 0
  br i1 %2191, label %2192, label %2226

2192:                                             ; preds = %2153
  %2193 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %2193, ptr %116, align 4
  %2194 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 0
  %2195 = load float, ptr %2194, align 4
  %2196 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 1
  %2197 = load float, ptr %2196, align 4
  %2198 = fneg float %2197
  %2199 = call ptr @_pCf(ptr noundef %46)
  %2200 = getelementptr inbounds { float, float }, ptr %2199, i32 0, i32 0
  %2201 = getelementptr inbounds { float, float }, ptr %2199, i32 0, i32 1
  store float %2195, ptr %2200, align 4
  store float %2198, ptr %2201, align 4
  %2202 = load float, ptr %62, align 4, !tbaa !11
  %2203 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2204 = load float, ptr %2203, align 4, !tbaa !13
  %2205 = fmul float %2202, %2204
  %2206 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2205, ptr %2206, align 4, !tbaa !13
  %2207 = load float, ptr %62, align 4, !tbaa !11
  %2208 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2209 = load float, ptr %2208, align 4, !tbaa !15
  %2210 = fmul float %2207, %2209
  %2211 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2210, ptr %2211, align 4, !tbaa !15
  %2212 = load ptr, ptr %26, align 8, !tbaa !5
  %2213 = load i32, ptr %60, align 4, !tbaa !9
  %2214 = load i32, ptr %35, align 4, !tbaa !9
  %2215 = mul nsw i32 %2213, %2214
  %2216 = add nsw i32 %2215, 1
  %2217 = sext i32 %2216 to i64
  %2218 = getelementptr inbounds %struct.complex, ptr %2212, i64 %2217
  %2219 = load ptr, ptr %26, align 8, !tbaa !5
  %2220 = load i32, ptr %61, align 4, !tbaa !9
  %2221 = load i32, ptr %35, align 4, !tbaa !9
  %2222 = mul nsw i32 %2220, %2221
  %2223 = add nsw i32 %2222, 1
  %2224 = sext i32 %2223 to i64
  %2225 = getelementptr inbounds %struct.complex, ptr %2219, i64 %2224
  call void @crot_(ptr noundef %104, ptr noundef %2218, ptr noundef @c__1, ptr noundef %2225, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  br label %2226

2226:                                             ; preds = %2192, %2153
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %2227 = load float, ptr %62, align 4, !tbaa !11
  %2228 = load float, ptr %63, align 4, !tbaa !11
  %2229 = fmul float %2227, %2228
  %2230 = load float, ptr %57, align 4, !tbaa !11
  %2231 = call float @llvm.fmuladd.f32(float %2229, float %2230, float 1.000000e+00)
  store float %2231, ptr %44, align 4, !tbaa !11
  %2232 = load float, ptr %50, align 4, !tbaa !11
  %2233 = fpext float %2232 to double
  %2234 = load float, ptr %43, align 4, !tbaa !11
  %2235 = load float, ptr %44, align 4, !tbaa !11
  %2236 = fcmp oge float %2234, %2235
  br i1 %2236, label %2237, label %2239

2237:                                             ; preds = %2226
  %2238 = load float, ptr %43, align 4, !tbaa !11
  br label %2241

2239:                                             ; preds = %2226
  %2240 = load float, ptr %44, align 4, !tbaa !11
  br label %2241

2241:                                             ; preds = %2239, %2237
  %2242 = phi float [ %2238, %2237 ], [ %2240, %2239 ]
  %2243 = fpext float %2242 to double
  %2244 = call double @sqrt(double noundef %2243) #7
  %2245 = fmul double %2233, %2244
  %2246 = fptrunc double %2245 to float
  %2247 = load ptr, ptr %24, align 8, !tbaa !5
  %2248 = load i32, ptr %61, align 4, !tbaa !9
  %2249 = sext i32 %2248 to i64
  %2250 = getelementptr inbounds float, ptr %2247, i64 %2249
  store float %2246, ptr %2250, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %2251 = load float, ptr %62, align 4, !tbaa !11
  %2252 = load float, ptr %64, align 4, !tbaa !11
  %2253 = fmul float %2251, %2252
  %2254 = load float, ptr %57, align 4, !tbaa !11
  %2255 = fneg float %2253
  %2256 = call float @llvm.fmuladd.f32(float %2255, float %2254, float 1.000000e+00)
  store float %2256, ptr %44, align 4, !tbaa !11
  %2257 = load float, ptr %43, align 4, !tbaa !11
  %2258 = load float, ptr %44, align 4, !tbaa !11
  %2259 = fcmp oge float %2257, %2258
  br i1 %2259, label %2260, label %2262

2260:                                             ; preds = %2241
  %2261 = load float, ptr %43, align 4, !tbaa !11
  br label %2264

2262:                                             ; preds = %2241
  %2263 = load float, ptr %44, align 4, !tbaa !11
  br label %2264

2264:                                             ; preds = %2262, %2260
  %2265 = phi float [ %2261, %2260 ], [ %2263, %2262 ]
  %2266 = fpext float %2265 to double
  %2267 = call double @sqrt(double noundef %2266) #7
  %2268 = load float, ptr %48, align 4, !tbaa !11
  %2269 = fpext float %2268 to double
  %2270 = fmul double %2269, %2267
  %2271 = fptrunc double %2270 to float
  store float %2271, ptr %48, align 4, !tbaa !11
  %2272 = load float, ptr %87, align 4, !tbaa !11
  store float %2272, ptr %43, align 4, !tbaa !11
  %2273 = load float, ptr %62, align 4, !tbaa !11
  %2274 = fcmp oge float %2273, 0.000000e+00
  br i1 %2274, label %2275, label %2277

2275:                                             ; preds = %2264
  %2276 = load float, ptr %62, align 4, !tbaa !11
  br label %2280

2277:                                             ; preds = %2264
  %2278 = load float, ptr %62, align 4, !tbaa !11
  %2279 = fneg float %2278
  br label %2280

2280:                                             ; preds = %2277, %2275
  %2281 = phi float [ %2276, %2275 ], [ %2279, %2277 ]
  store float %2281, ptr %44, align 4, !tbaa !11
  %2282 = load float, ptr %43, align 4, !tbaa !11
  %2283 = load float, ptr %44, align 4, !tbaa !11
  %2284 = fcmp oge float %2282, %2283
  br i1 %2284, label %2285, label %2287

2285:                                             ; preds = %2280
  %2286 = load float, ptr %43, align 4, !tbaa !11
  br label %2289

2287:                                             ; preds = %2280
  %2288 = load float, ptr %44, align 4, !tbaa !11
  br label %2289

2289:                                             ; preds = %2287, %2285
  %2290 = phi float [ %2286, %2285 ], [ %2288, %2287 ]
  store float %2290, ptr %87, align 4, !tbaa !11
  br label %2475

2291:                                             ; preds = %2149
  %2292 = load float, ptr %57, align 4, !tbaa !11
  %2293 = fcmp oge float %2292, 0.000000e+00
  br i1 %2293, label %2294, label %2304

2294:                                             ; preds = %2291
  %2295 = load float, ptr @c_b41, align 4, !tbaa !11
  %2296 = fcmp oge float %2295, 0.000000e+00
  br i1 %2296, label %2297, label %2299

2297:                                             ; preds = %2294
  %2298 = load float, ptr @c_b41, align 4, !tbaa !11
  br label %2302

2299:                                             ; preds = %2294
  %2300 = load float, ptr @c_b41, align 4, !tbaa !11
  %2301 = fneg float %2300
  br label %2302

2302:                                             ; preds = %2299, %2297
  %2303 = phi float [ %2298, %2297 ], [ %2301, %2299 ]
  br label %2315

2304:                                             ; preds = %2291
  %2305 = load float, ptr @c_b41, align 4, !tbaa !11
  %2306 = fcmp oge float %2305, 0.000000e+00
  br i1 %2306, label %2307, label %2309

2307:                                             ; preds = %2304
  %2308 = load float, ptr @c_b41, align 4, !tbaa !11
  br label %2312

2309:                                             ; preds = %2304
  %2310 = load float, ptr @c_b41, align 4, !tbaa !11
  %2311 = fneg float %2310
  br label %2312

2312:                                             ; preds = %2309, %2307
  %2313 = phi float [ %2308, %2307 ], [ %2311, %2309 ]
  %2314 = fneg float %2313
  br label %2315

2315:                                             ; preds = %2312, %2302
  %2316 = phi float [ %2303, %2302 ], [ %2314, %2312 ]
  %2317 = fneg float %2316
  store float %2317, ptr %86, align 4, !tbaa !11
  %2318 = load float, ptr %65, align 4, !tbaa !11
  %2319 = fpext float %2318 to double
  %2320 = load float, ptr %86, align 4, !tbaa !11
  %2321 = fpext float %2320 to double
  %2322 = load float, ptr %65, align 4, !tbaa !11
  %2323 = load float, ptr %65, align 4, !tbaa !11
  %2324 = call float @llvm.fmuladd.f32(float %2322, float %2323, float 1.000000e+00)
  %2325 = fpext float %2324 to double
  %2326 = call double @sqrt(double noundef %2325) #7
  %2327 = call double @llvm.fmuladd.f64(double %2321, double %2326, double %2319)
  %2328 = fdiv double 1.000000e+00, %2327
  %2329 = fptrunc double %2328 to float
  store float %2329, ptr %62, align 4, !tbaa !11
  %2330 = load float, ptr %62, align 4, !tbaa !11
  %2331 = load float, ptr %62, align 4, !tbaa !11
  %2332 = call float @llvm.fmuladd.f32(float %2330, float %2331, float 1.000000e+00)
  %2333 = fdiv float 1.000000e+00, %2332
  %2334 = fpext float %2333 to double
  %2335 = call double @sqrt(double noundef %2334) #7
  %2336 = fptrunc double %2335 to float
  store float %2336, ptr %80, align 4, !tbaa !11
  %2337 = load float, ptr %62, align 4, !tbaa !11
  %2338 = load float, ptr %80, align 4, !tbaa !11
  %2339 = fmul float %2337, %2338
  store float %2339, ptr %81, align 4, !tbaa !11
  %2340 = load float, ptr %87, align 4, !tbaa !11
  store float %2340, ptr %43, align 4, !tbaa !11
  %2341 = load float, ptr %81, align 4, !tbaa !11
  %2342 = fcmp oge float %2341, 0.000000e+00
  br i1 %2342, label %2343, label %2345

2343:                                             ; preds = %2315
  %2344 = load float, ptr %81, align 4, !tbaa !11
  br label %2348

2345:                                             ; preds = %2315
  %2346 = load float, ptr %81, align 4, !tbaa !11
  %2347 = fneg float %2346
  br label %2348

2348:                                             ; preds = %2345, %2343
  %2349 = phi float [ %2344, %2343 ], [ %2347, %2345 ]
  store float %2349, ptr %44, align 4, !tbaa !11
  %2350 = load float, ptr %43, align 4, !tbaa !11
  %2351 = load float, ptr %44, align 4, !tbaa !11
  %2352 = fcmp oge float %2350, %2351
  br i1 %2352, label %2353, label %2355

2353:                                             ; preds = %2348
  %2354 = load float, ptr %43, align 4, !tbaa !11
  br label %2357

2355:                                             ; preds = %2348
  %2356 = load float, ptr %44, align 4, !tbaa !11
  br label %2357

2357:                                             ; preds = %2355, %2353
  %2358 = phi float [ %2354, %2353 ], [ %2356, %2355 ]
  store float %2358, ptr %87, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %2359 = load float, ptr %62, align 4, !tbaa !11
  %2360 = load float, ptr %63, align 4, !tbaa !11
  %2361 = fmul float %2359, %2360
  %2362 = load float, ptr %57, align 4, !tbaa !11
  %2363 = call float @llvm.fmuladd.f32(float %2361, float %2362, float 1.000000e+00)
  store float %2363, ptr %44, align 4, !tbaa !11
  %2364 = load float, ptr %50, align 4, !tbaa !11
  %2365 = fpext float %2364 to double
  %2366 = load float, ptr %43, align 4, !tbaa !11
  %2367 = load float, ptr %44, align 4, !tbaa !11
  %2368 = fcmp oge float %2366, %2367
  br i1 %2368, label %2369, label %2371

2369:                                             ; preds = %2357
  %2370 = load float, ptr %43, align 4, !tbaa !11
  br label %2373

2371:                                             ; preds = %2357
  %2372 = load float, ptr %44, align 4, !tbaa !11
  br label %2373

2373:                                             ; preds = %2371, %2369
  %2374 = phi float [ %2370, %2369 ], [ %2372, %2371 ]
  %2375 = fpext float %2374 to double
  %2376 = call double @sqrt(double noundef %2375) #7
  %2377 = fmul double %2365, %2376
  %2378 = fptrunc double %2377 to float
  %2379 = load ptr, ptr %24, align 8, !tbaa !5
  %2380 = load i32, ptr %61, align 4, !tbaa !9
  %2381 = sext i32 %2380 to i64
  %2382 = getelementptr inbounds float, ptr %2379, i64 %2381
  store float %2378, ptr %2382, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %2383 = load float, ptr %62, align 4, !tbaa !11
  %2384 = load float, ptr %64, align 4, !tbaa !11
  %2385 = fmul float %2383, %2384
  %2386 = load float, ptr %57, align 4, !tbaa !11
  %2387 = fneg float %2385
  %2388 = call float @llvm.fmuladd.f32(float %2387, float %2386, float 1.000000e+00)
  store float %2388, ptr %44, align 4, !tbaa !11
  %2389 = load float, ptr %43, align 4, !tbaa !11
  %2390 = load float, ptr %44, align 4, !tbaa !11
  %2391 = fcmp oge float %2389, %2390
  br i1 %2391, label %2392, label %2394

2392:                                             ; preds = %2373
  %2393 = load float, ptr %43, align 4, !tbaa !11
  br label %2396

2394:                                             ; preds = %2373
  %2395 = load float, ptr %44, align 4, !tbaa !11
  br label %2396

2396:                                             ; preds = %2394, %2392
  %2397 = phi float [ %2393, %2392 ], [ %2395, %2394 ]
  %2398 = fpext float %2397 to double
  %2399 = call double @sqrt(double noundef %2398) #7
  %2400 = load float, ptr %48, align 4, !tbaa !11
  %2401 = fpext float %2400 to double
  %2402 = fmul double %2401, %2399
  %2403 = fptrunc double %2402 to float
  store float %2403, ptr %48, align 4, !tbaa !11
  %2404 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %2404, ptr %117, align 4
  %2405 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 0
  %2406 = load float, ptr %2405, align 4
  %2407 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 1
  %2408 = load float, ptr %2407, align 4
  %2409 = fneg float %2408
  %2410 = call ptr @_pCf(ptr noundef %46)
  %2411 = getelementptr inbounds { float, float }, ptr %2410, i32 0, i32 0
  %2412 = getelementptr inbounds { float, float }, ptr %2410, i32 0, i32 1
  store float %2406, ptr %2411, align 4
  store float %2409, ptr %2412, align 4
  %2413 = load float, ptr %81, align 4, !tbaa !11
  %2414 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2415 = load float, ptr %2414, align 4, !tbaa !13
  %2416 = fmul float %2413, %2415
  %2417 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2416, ptr %2417, align 4, !tbaa !13
  %2418 = load float, ptr %81, align 4, !tbaa !11
  %2419 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2420 = load float, ptr %2419, align 4, !tbaa !15
  %2421 = fmul float %2418, %2420
  %2422 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2421, ptr %2422, align 4, !tbaa !15
  %2423 = load ptr, ptr %20, align 8, !tbaa !5
  %2424 = load ptr, ptr %22, align 8, !tbaa !5
  %2425 = load i32, ptr %60, align 4, !tbaa !9
  %2426 = load i32, ptr %33, align 4, !tbaa !9
  %2427 = mul nsw i32 %2425, %2426
  %2428 = add nsw i32 %2427, 1
  %2429 = sext i32 %2428 to i64
  %2430 = getelementptr inbounds %struct.complex, ptr %2424, i64 %2429
  %2431 = load ptr, ptr %22, align 8, !tbaa !5
  %2432 = load i32, ptr %61, align 4, !tbaa !9
  %2433 = load i32, ptr %33, align 4, !tbaa !9
  %2434 = mul nsw i32 %2432, %2433
  %2435 = add nsw i32 %2434, 1
  %2436 = sext i32 %2435 to i64
  %2437 = getelementptr inbounds %struct.complex, ptr %2431, i64 %2436
  call void @crot_(ptr noundef %2423, ptr noundef %2430, ptr noundef @c__1, ptr noundef %2437, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  %2438 = load i32, ptr %71, align 4, !tbaa !9
  %2439 = icmp ne i32 %2438, 0
  br i1 %2439, label %2440, label %2474

2440:                                             ; preds = %2396
  %2441 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %2441, ptr %118, align 4
  %2442 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 0
  %2443 = load float, ptr %2442, align 4
  %2444 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 1
  %2445 = load float, ptr %2444, align 4
  %2446 = fneg float %2445
  %2447 = call ptr @_pCf(ptr noundef %46)
  %2448 = getelementptr inbounds { float, float }, ptr %2447, i32 0, i32 0
  %2449 = getelementptr inbounds { float, float }, ptr %2447, i32 0, i32 1
  store float %2443, ptr %2448, align 4
  store float %2446, ptr %2449, align 4
  %2450 = load float, ptr %81, align 4, !tbaa !11
  %2451 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2452 = load float, ptr %2451, align 4, !tbaa !13
  %2453 = fmul float %2450, %2452
  %2454 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2453, ptr %2454, align 4, !tbaa !13
  %2455 = load float, ptr %81, align 4, !tbaa !11
  %2456 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2457 = load float, ptr %2456, align 4, !tbaa !15
  %2458 = fmul float %2455, %2457
  %2459 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2458, ptr %2459, align 4, !tbaa !15
  %2460 = load ptr, ptr %26, align 8, !tbaa !5
  %2461 = load i32, ptr %60, align 4, !tbaa !9
  %2462 = load i32, ptr %35, align 4, !tbaa !9
  %2463 = mul nsw i32 %2461, %2462
  %2464 = add nsw i32 %2463, 1
  %2465 = sext i32 %2464 to i64
  %2466 = getelementptr inbounds %struct.complex, ptr %2460, i64 %2465
  %2467 = load ptr, ptr %26, align 8, !tbaa !5
  %2468 = load i32, ptr %61, align 4, !tbaa !9
  %2469 = load i32, ptr %35, align 4, !tbaa !9
  %2470 = mul nsw i32 %2468, %2469
  %2471 = add nsw i32 %2470, 1
  %2472 = sext i32 %2471 to i64
  %2473 = getelementptr inbounds %struct.complex, ptr %2467, i64 %2472
  call void @crot_(ptr noundef %104, ptr noundef %2466, ptr noundef @c__1, ptr noundef %2473, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  br label %2474

2474:                                             ; preds = %2440, %2396
  br label %2475

2475:                                             ; preds = %2474, %2289
  %2476 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %2476, ptr %41, align 4, !tbaa !9
  %2477 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %2477, ptr %42, align 4, !tbaa !9
  %2478 = load ptr, ptr %28, align 8, !tbaa !5
  %2479 = load i32, ptr %42, align 4, !tbaa !9
  %2480 = sext i32 %2479 to i64
  %2481 = getelementptr inbounds %struct.complex, ptr %2478, i64 %2480
  %2482 = getelementptr inbounds %struct.complex, ptr %2481, i32 0, i32 0
  %2483 = load float, ptr %2482, align 4, !tbaa !13
  %2484 = fneg float %2483
  %2485 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2484, ptr %2485, align 4, !tbaa !13
  %2486 = load ptr, ptr %28, align 8, !tbaa !5
  %2487 = load i32, ptr %42, align 4, !tbaa !9
  %2488 = sext i32 %2487 to i64
  %2489 = getelementptr inbounds %struct.complex, ptr %2486, i64 %2488
  %2490 = getelementptr inbounds %struct.complex, ptr %2489, i32 0, i32 1
  %2491 = load float, ptr %2490, align 4, !tbaa !15
  %2492 = fneg float %2491
  %2493 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2492, ptr %2493, align 4, !tbaa !15
  %2494 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2495 = load float, ptr %2494, align 4, !tbaa !13
  %2496 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %2497 = load float, ptr %2496, align 4, !tbaa !13
  %2498 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2499 = load float, ptr %2498, align 4, !tbaa !15
  %2500 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %2501 = load float, ptr %2500, align 4, !tbaa !15
  %2502 = fmul float %2499, %2501
  %2503 = fneg float %2502
  %2504 = call float @llvm.fmuladd.f32(float %2495, float %2497, float %2503)
  %2505 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2504, ptr %2505, align 4, !tbaa !13
  %2506 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2507 = load float, ptr %2506, align 4, !tbaa !13
  %2508 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %2509 = load float, ptr %2508, align 4, !tbaa !15
  %2510 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2511 = load float, ptr %2510, align 4, !tbaa !15
  %2512 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %2513 = load float, ptr %2512, align 4, !tbaa !13
  %2514 = fmul float %2511, %2513
  %2515 = call float @llvm.fmuladd.f32(float %2507, float %2509, float %2514)
  %2516 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2515, ptr %2516, align 4, !tbaa !15
  %2517 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2518 = load float, ptr %2517, align 4, !tbaa !13
  %2519 = load ptr, ptr %28, align 8, !tbaa !5
  %2520 = load i32, ptr %41, align 4, !tbaa !9
  %2521 = sext i32 %2520 to i64
  %2522 = getelementptr inbounds %struct.complex, ptr %2519, i64 %2521
  %2523 = getelementptr inbounds %struct.complex, ptr %2522, i32 0, i32 0
  store float %2518, ptr %2523, align 4, !tbaa !13
  %2524 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2525 = load float, ptr %2524, align 4, !tbaa !15
  %2526 = load ptr, ptr %28, align 8, !tbaa !5
  %2527 = load i32, ptr %41, align 4, !tbaa !9
  %2528 = sext i32 %2527 to i64
  %2529 = getelementptr inbounds %struct.complex, ptr %2526, i64 %2528
  %2530 = getelementptr inbounds %struct.complex, ptr %2529, i32 0, i32 1
  store float %2525, ptr %2530, align 4, !tbaa !15
  br label %2626

2531:                                             ; preds = %2117
  %2532 = load ptr, ptr %20, align 8, !tbaa !5
  %2533 = load ptr, ptr %22, align 8, !tbaa !5
  %2534 = load i32, ptr %60, align 4, !tbaa !9
  %2535 = load i32, ptr %33, align 4, !tbaa !9
  %2536 = mul nsw i32 %2534, %2535
  %2537 = add nsw i32 %2536, 1
  %2538 = sext i32 %2537 to i64
  %2539 = getelementptr inbounds %struct.complex, ptr %2533, i64 %2538
  %2540 = load ptr, ptr %28, align 8, !tbaa !5
  %2541 = load ptr, ptr %21, align 8, !tbaa !5
  %2542 = load i32, ptr %2541, align 4, !tbaa !9
  %2543 = add nsw i32 %2542, 1
  %2544 = sext i32 %2543 to i64
  %2545 = getelementptr inbounds %struct.complex, ptr %2540, i64 %2544
  call void @ccopy_(ptr noundef %2532, ptr noundef %2539, ptr noundef @c__1, ptr noundef %2545, ptr noundef @c__1)
  %2546 = load ptr, ptr %20, align 8, !tbaa !5
  %2547 = load ptr, ptr %28, align 8, !tbaa !5
  %2548 = load ptr, ptr %21, align 8, !tbaa !5
  %2549 = load i32, ptr %2548, align 4, !tbaa !9
  %2550 = add nsw i32 %2549, 1
  %2551 = sext i32 %2550 to i64
  %2552 = getelementptr inbounds %struct.complex, ptr %2547, i64 %2551
  %2553 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %48, ptr noundef @c_b41, ptr noundef %2546, ptr noundef @c__1, ptr noundef %2552, ptr noundef %2553, ptr noundef %52)
  %2554 = load ptr, ptr %20, align 8, !tbaa !5
  %2555 = load ptr, ptr %22, align 8, !tbaa !5
  %2556 = load i32, ptr %61, align 4, !tbaa !9
  %2557 = load i32, ptr %33, align 4, !tbaa !9
  %2558 = mul nsw i32 %2556, %2557
  %2559 = add nsw i32 %2558, 1
  %2560 = sext i32 %2559 to i64
  %2561 = getelementptr inbounds %struct.complex, ptr %2555, i64 %2560
  %2562 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef @c_b41, ptr noundef %2554, ptr noundef @c__1, ptr noundef %2561, ptr noundef %2562, ptr noundef %52)
  %2563 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2564 = load float, ptr %2563, align 4, !tbaa !13
  %2565 = fneg float %2564
  %2566 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2565, ptr %2566, align 4, !tbaa !13
  %2567 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2568 = load float, ptr %2567, align 4, !tbaa !15
  %2569 = fneg float %2568
  %2570 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2569, ptr %2570, align 4, !tbaa !15
  %2571 = load ptr, ptr %20, align 8, !tbaa !5
  %2572 = load ptr, ptr %28, align 8, !tbaa !5
  %2573 = load ptr, ptr %21, align 8, !tbaa !5
  %2574 = load i32, ptr %2573, align 4, !tbaa !9
  %2575 = add nsw i32 %2574, 1
  %2576 = sext i32 %2575 to i64
  %2577 = getelementptr inbounds %struct.complex, ptr %2572, i64 %2576
  %2578 = load ptr, ptr %22, align 8, !tbaa !5
  %2579 = load i32, ptr %61, align 4, !tbaa !9
  %2580 = load i32, ptr %33, align 4, !tbaa !9
  %2581 = mul nsw i32 %2579, %2580
  %2582 = add nsw i32 %2581, 1
  %2583 = sext i32 %2582 to i64
  %2584 = getelementptr inbounds %struct.complex, ptr %2578, i64 %2583
  call void @caxpy_(ptr noundef %2571, ptr noundef %45, ptr noundef %2577, ptr noundef @c__1, ptr noundef %2584, ptr noundef @c__1)
  %2585 = load ptr, ptr %20, align 8, !tbaa !5
  %2586 = load ptr, ptr %22, align 8, !tbaa !5
  %2587 = load i32, ptr %61, align 4, !tbaa !9
  %2588 = load i32, ptr %33, align 4, !tbaa !9
  %2589 = mul nsw i32 %2587, %2588
  %2590 = add nsw i32 %2589, 1
  %2591 = sext i32 %2590 to i64
  %2592 = getelementptr inbounds %struct.complex, ptr %2586, i64 %2591
  %2593 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b41, ptr noundef %50, ptr noundef %2585, ptr noundef @c__1, ptr noundef %2592, ptr noundef %2593, ptr noundef %52)
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %2594 = load float, ptr %57, align 4, !tbaa !11
  %2595 = load float, ptr %57, align 4, !tbaa !11
  %2596 = fneg float %2594
  %2597 = call float @llvm.fmuladd.f32(float %2596, float %2595, float 1.000000e+00)
  store float %2597, ptr %44, align 4, !tbaa !11
  %2598 = load float, ptr %50, align 4, !tbaa !11
  %2599 = fpext float %2598 to double
  %2600 = load float, ptr %43, align 4, !tbaa !11
  %2601 = load float, ptr %44, align 4, !tbaa !11
  %2602 = fcmp oge float %2600, %2601
  br i1 %2602, label %2603, label %2605

2603:                                             ; preds = %2531
  %2604 = load float, ptr %43, align 4, !tbaa !11
  br label %2607

2605:                                             ; preds = %2531
  %2606 = load float, ptr %44, align 4, !tbaa !11
  br label %2607

2607:                                             ; preds = %2605, %2603
  %2608 = phi float [ %2604, %2603 ], [ %2606, %2605 ]
  %2609 = fpext float %2608 to double
  %2610 = call double @sqrt(double noundef %2609) #7
  %2611 = fmul double %2599, %2610
  %2612 = fptrunc double %2611 to float
  %2613 = load ptr, ptr %24, align 8, !tbaa !5
  %2614 = load i32, ptr %61, align 4, !tbaa !9
  %2615 = sext i32 %2614 to i64
  %2616 = getelementptr inbounds float, ptr %2613, i64 %2615
  store float %2612, ptr %2616, align 4, !tbaa !11
  %2617 = load float, ptr %87, align 4, !tbaa !11
  %2618 = load float, ptr %67, align 4, !tbaa !11
  %2619 = fcmp oge float %2617, %2618
  br i1 %2619, label %2620, label %2622

2620:                                             ; preds = %2607
  %2621 = load float, ptr %87, align 4, !tbaa !11
  br label %2624

2622:                                             ; preds = %2607
  %2623 = load float, ptr %67, align 4, !tbaa !11
  br label %2624

2624:                                             ; preds = %2622, %2620
  %2625 = phi float [ %2621, %2620 ], [ %2623, %2622 ]
  store float %2625, ptr %87, align 4, !tbaa !11
  br label %2626

2626:                                             ; preds = %2624, %2475
  %2627 = load ptr, ptr %24, align 8, !tbaa !5
  %2628 = load i32, ptr %61, align 4, !tbaa !9
  %2629 = sext i32 %2628 to i64
  %2630 = getelementptr inbounds float, ptr %2627, i64 %2629
  %2631 = load float, ptr %2630, align 4, !tbaa !11
  %2632 = load float, ptr %50, align 4, !tbaa !11
  %2633 = fdiv float %2631, %2632
  store float %2633, ptr %43, align 4, !tbaa !11
  %2634 = load float, ptr %43, align 4, !tbaa !11
  %2635 = load float, ptr %43, align 4, !tbaa !11
  %2636 = fmul float %2634, %2635
  %2637 = load float, ptr %107, align 4, !tbaa !11
  %2638 = fcmp ole float %2636, %2637
  br i1 %2638, label %2639, label %2682

2639:                                             ; preds = %2626
  %2640 = load float, ptr %50, align 4, !tbaa !11
  %2641 = load float, ptr %106, align 4, !tbaa !11
  %2642 = fcmp olt float %2640, %2641
  br i1 %2642, label %2643, label %2661

2643:                                             ; preds = %2639
  %2644 = load float, ptr %50, align 4, !tbaa !11
  %2645 = load float, ptr %78, align 4, !tbaa !11
  %2646 = fcmp ogt float %2644, %2645
  br i1 %2646, label %2647, label %2661

2647:                                             ; preds = %2643
  %2648 = load ptr, ptr %20, align 8, !tbaa !5
  %2649 = load ptr, ptr %22, align 8, !tbaa !5
  %2650 = load i32, ptr %61, align 4, !tbaa !9
  %2651 = load i32, ptr %33, align 4, !tbaa !9
  %2652 = mul nsw i32 %2650, %2651
  %2653 = add nsw i32 %2652, 1
  %2654 = sext i32 %2653 to i64
  %2655 = getelementptr inbounds %struct.complex, ptr %2649, i64 %2654
  %2656 = call float @scnrm2_(ptr noundef %2648, ptr noundef %2655, ptr noundef @c__1)
  %2657 = load ptr, ptr %24, align 8, !tbaa !5
  %2658 = load i32, ptr %61, align 4, !tbaa !9
  %2659 = sext i32 %2658 to i64
  %2660 = getelementptr inbounds float, ptr %2657, i64 %2659
  store float %2656, ptr %2660, align 4, !tbaa !11
  br label %2681

2661:                                             ; preds = %2643, %2639
  store float 0.000000e+00, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %2662 = load ptr, ptr %20, align 8, !tbaa !5
  %2663 = load ptr, ptr %22, align 8, !tbaa !5
  %2664 = load i32, ptr %61, align 4, !tbaa !9
  %2665 = load i32, ptr %33, align 4, !tbaa !9
  %2666 = mul nsw i32 %2664, %2665
  %2667 = add nsw i32 %2666, 1
  %2668 = sext i32 %2667 to i64
  %2669 = getelementptr inbounds %struct.complex, ptr %2663, i64 %2668
  call void @classq_(ptr noundef %2662, ptr noundef %2669, ptr noundef @c__1, ptr noundef %62, ptr noundef %50)
  %2670 = load float, ptr %62, align 4, !tbaa !11
  %2671 = fpext float %2670 to double
  %2672 = load float, ptr %50, align 4, !tbaa !11
  %2673 = fpext float %2672 to double
  %2674 = call double @sqrt(double noundef %2673) #7
  %2675 = fmul double %2671, %2674
  %2676 = fptrunc double %2675 to float
  %2677 = load ptr, ptr %24, align 8, !tbaa !5
  %2678 = load i32, ptr %61, align 4, !tbaa !9
  %2679 = sext i32 %2678 to i64
  %2680 = getelementptr inbounds float, ptr %2677, i64 %2679
  store float %2676, ptr %2680, align 4, !tbaa !11
  br label %2681

2681:                                             ; preds = %2661, %2647
  br label %2682

2682:                                             ; preds = %2681, %2626
  %2683 = load float, ptr %48, align 4, !tbaa !11
  %2684 = load float, ptr %56, align 4, !tbaa !11
  %2685 = fdiv float %2683, %2684
  %2686 = load float, ptr %107, align 4, !tbaa !11
  %2687 = fcmp ole float %2685, %2686
  br i1 %2687, label %2688, label %2728

2688:                                             ; preds = %2682
  %2689 = load float, ptr %48, align 4, !tbaa !11
  %2690 = load float, ptr %106, align 4, !tbaa !11
  %2691 = fcmp olt float %2689, %2690
  br i1 %2691, label %2692, label %2706

2692:                                             ; preds = %2688
  %2693 = load float, ptr %48, align 4, !tbaa !11
  %2694 = load float, ptr %78, align 4, !tbaa !11
  %2695 = fcmp ogt float %2693, %2694
  br i1 %2695, label %2696, label %2706

2696:                                             ; preds = %2692
  %2697 = load ptr, ptr %20, align 8, !tbaa !5
  %2698 = load ptr, ptr %22, align 8, !tbaa !5
  %2699 = load i32, ptr %60, align 4, !tbaa !9
  %2700 = load i32, ptr %33, align 4, !tbaa !9
  %2701 = mul nsw i32 %2699, %2700
  %2702 = add nsw i32 %2701, 1
  %2703 = sext i32 %2702 to i64
  %2704 = getelementptr inbounds %struct.complex, ptr %2698, i64 %2703
  %2705 = call float @scnrm2_(ptr noundef %2697, ptr noundef %2704, ptr noundef @c__1)
  store float %2705, ptr %48, align 4, !tbaa !11
  br label %2722

2706:                                             ; preds = %2692, %2688
  store float 0.000000e+00, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %48, align 4, !tbaa !11
  %2707 = load ptr, ptr %20, align 8, !tbaa !5
  %2708 = load ptr, ptr %22, align 8, !tbaa !5
  %2709 = load i32, ptr %60, align 4, !tbaa !9
  %2710 = load i32, ptr %33, align 4, !tbaa !9
  %2711 = mul nsw i32 %2709, %2710
  %2712 = add nsw i32 %2711, 1
  %2713 = sext i32 %2712 to i64
  %2714 = getelementptr inbounds %struct.complex, ptr %2708, i64 %2713
  call void @classq_(ptr noundef %2707, ptr noundef %2714, ptr noundef @c__1, ptr noundef %62, ptr noundef %48)
  %2715 = load float, ptr %62, align 4, !tbaa !11
  %2716 = fpext float %2715 to double
  %2717 = load float, ptr %48, align 4, !tbaa !11
  %2718 = fpext float %2717 to double
  %2719 = call double @sqrt(double noundef %2718) #7
  %2720 = fmul double %2716, %2719
  %2721 = fptrunc double %2720 to float
  store float %2721, ptr %48, align 4, !tbaa !11
  br label %2722

2722:                                             ; preds = %2706, %2696
  %2723 = load float, ptr %48, align 4, !tbaa !11
  %2724 = load ptr, ptr %24, align 8, !tbaa !5
  %2725 = load i32, ptr %60, align 4, !tbaa !9
  %2726 = sext i32 %2725 to i64
  %2727 = getelementptr inbounds float, ptr %2724, i64 %2726
  store float %2723, ptr %2727, align 4, !tbaa !11
  br label %2728

2728:                                             ; preds = %2722, %2682
  br label %2738

2729:                                             ; preds = %2082
  %2730 = load i32, ptr %88, align 4, !tbaa !9
  %2731 = icmp eq i32 %2730, 0
  br i1 %2731, label %2732, label %2735

2732:                                             ; preds = %2729
  %2733 = load i32, ptr %91, align 4, !tbaa !9
  %2734 = add nsw i32 %2733, 1
  store i32 %2734, ptr %91, align 4, !tbaa !9
  br label %2735

2735:                                             ; preds = %2732, %2729
  %2736 = load i32, ptr %55, align 4, !tbaa !9
  %2737 = add nsw i32 %2736, 1
  store i32 %2737, ptr %55, align 4, !tbaa !9
  br label %2738

2738:                                             ; preds = %2735, %2728
  br label %2748

2739:                                             ; preds = %1824
  %2740 = load i32, ptr %88, align 4, !tbaa !9
  %2741 = icmp eq i32 %2740, 0
  br i1 %2741, label %2742, label %2745

2742:                                             ; preds = %2739
  %2743 = load i32, ptr %91, align 4, !tbaa !9
  %2744 = add nsw i32 %2743, 1
  store i32 %2744, ptr %91, align 4, !tbaa !9
  br label %2745

2745:                                             ; preds = %2742, %2739
  %2746 = load i32, ptr %55, align 4, !tbaa !9
  %2747 = add nsw i32 %2746, 1
  store i32 %2747, ptr %55, align 4, !tbaa !9
  br label %2748

2748:                                             ; preds = %2745, %2738
  %2749 = load i32, ptr %59, align 4, !tbaa !9
  %2750 = load i32, ptr %83, align 4, !tbaa !9
  %2751 = icmp sle i32 %2749, %2750
  br i1 %2751, label %2752, label %2763

2752:                                             ; preds = %2748
  %2753 = load i32, ptr %55, align 4, !tbaa !9
  %2754 = load i32, ptr %108, align 4, !tbaa !9
  %2755 = icmp sgt i32 %2753, %2754
  br i1 %2755, label %2756, label %2763

2756:                                             ; preds = %2752
  %2757 = load i32, ptr %88, align 4, !tbaa !9
  %2758 = icmp eq i32 %2757, 0
  br i1 %2758, label %2759, label %2762

2759:                                             ; preds = %2756
  %2760 = load float, ptr %48, align 4, !tbaa !11
  %2761 = fneg float %2760
  store float %2761, ptr %48, align 4, !tbaa !11
  br label %2762

2762:                                             ; preds = %2759, %2756
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %2768

2763:                                             ; preds = %2752, %2748
  br label %2764

2764:                                             ; preds = %2763
  %2765 = load i32, ptr %61, align 4, !tbaa !9
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr %61, align 4, !tbaa !9
  br label %1820, !llvm.loop !25

2767:                                             ; preds = %1820
  br label %2768

2768:                                             ; preds = %2767, %2762
  %2769 = load float, ptr %48, align 4, !tbaa !11
  %2770 = load ptr, ptr %24, align 8, !tbaa !5
  %2771 = load i32, ptr %60, align 4, !tbaa !9
  %2772 = sext i32 %2771 to i64
  %2773 = getelementptr inbounds float, ptr %2770, i64 %2772
  store float %2769, ptr %2773, align 4, !tbaa !11
  br label %2806

2774:                                             ; preds = %1799
  %2775 = load float, ptr %48, align 4, !tbaa !11
  %2776 = load ptr, ptr %24, align 8, !tbaa !5
  %2777 = load i32, ptr %60, align 4, !tbaa !9
  %2778 = sext i32 %2777 to i64
  %2779 = getelementptr inbounds float, ptr %2776, i64 %2778
  store float %2775, ptr %2779, align 4, !tbaa !11
  %2780 = load i32, ptr %88, align 4, !tbaa !9
  %2781 = icmp eq i32 %2780, 0
  br i1 %2781, label %2782, label %2805

2782:                                             ; preds = %2774
  %2783 = load float, ptr %48, align 4, !tbaa !11
  %2784 = fcmp oeq float %2783, 0.000000e+00
  br i1 %2784, label %2785, label %2805

2785:                                             ; preds = %2782
  %2786 = load i32, ptr %97, align 4, !tbaa !9
  %2787 = load i32, ptr %95, align 4, !tbaa !9
  %2788 = add nsw i32 %2786, %2787
  %2789 = sub nsw i32 %2788, 1
  store i32 %2789, ptr %40, align 4, !tbaa !9
  %2790 = load i32, ptr %91, align 4, !tbaa !9
  %2791 = load i32, ptr %40, align 4, !tbaa !9
  %2792 = load ptr, ptr %21, align 8, !tbaa !5
  %2793 = load i32, ptr %2792, align 4, !tbaa !9
  %2794 = icmp sle i32 %2791, %2793
  br i1 %2794, label %2795, label %2797

2795:                                             ; preds = %2785
  %2796 = load i32, ptr %40, align 4, !tbaa !9
  br label %2800

2797:                                             ; preds = %2785
  %2798 = load ptr, ptr %21, align 8, !tbaa !5
  %2799 = load i32, ptr %2798, align 4, !tbaa !9
  br label %2800

2800:                                             ; preds = %2797, %2795
  %2801 = phi i32 [ %2796, %2795 ], [ %2799, %2797 ]
  %2802 = add nsw i32 %2790, %2801
  %2803 = load i32, ptr %60, align 4, !tbaa !9
  %2804 = sub nsw i32 %2802, %2803
  store i32 %2804, ptr %91, align 4, !tbaa !9
  br label %2805

2805:                                             ; preds = %2800, %2782, %2774
  br label %2806

2806:                                             ; preds = %2805, %2768
  br label %2807

2807:                                             ; preds = %2806
  %2808 = load i32, ptr %60, align 4, !tbaa !9
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr %60, align 4, !tbaa !9
  br label %1606, !llvm.loop !26

2810:                                             ; preds = %1606
  br label %2811

2811:                                             ; preds = %2810
  %2812 = load i32, ptr %88, align 4, !tbaa !9
  %2813 = add nsw i32 %2812, 1
  store i32 %2813, ptr %88, align 4, !tbaa !9
  br label %1579, !llvm.loop !27

2814:                                             ; preds = %1579
  %2815 = load i32, ptr %98, align 4, !tbaa !9
  %2816 = sub nsw i32 %2815, 1
  %2817 = load i32, ptr %95, align 4, !tbaa !9
  %2818 = mul nsw i32 %2816, %2817
  %2819 = add nsw i32 %2818, 1
  store i32 %2819, ptr %97, align 4, !tbaa !9
  %2820 = load i32, ptr %100, align 4, !tbaa !9
  store i32 %2820, ptr %38, align 4, !tbaa !9
  %2821 = load i32, ptr %98, align 4, !tbaa !9
  %2822 = add nsw i32 %2821, 1
  store i32 %2822, ptr %93, align 4, !tbaa !9
  br label %2823

2823:                                             ; preds = %4036, %2814
  %2824 = load i32, ptr %93, align 4, !tbaa !9
  %2825 = load i32, ptr %38, align 4, !tbaa !9
  %2826 = icmp sle i32 %2824, %2825
  br i1 %2826, label %2827, label %4039

2827:                                             ; preds = %2823
  %2828 = load i32, ptr %93, align 4, !tbaa !9
  %2829 = sub nsw i32 %2828, 1
  %2830 = load i32, ptr %95, align 4, !tbaa !9
  %2831 = mul nsw i32 %2829, %2830
  %2832 = add nsw i32 %2831, 1
  store i32 %2832, ptr %99, align 4, !tbaa !9
  store i32 0, ptr %82, align 4, !tbaa !9
  %2833 = load i32, ptr %97, align 4, !tbaa !9
  %2834 = load i32, ptr %95, align 4, !tbaa !9
  %2835 = add nsw i32 %2833, %2834
  %2836 = sub nsw i32 %2835, 1
  store i32 %2836, ptr %40, align 4, !tbaa !9
  %2837 = load i32, ptr %40, align 4, !tbaa !9
  %2838 = load ptr, ptr %21, align 8, !tbaa !5
  %2839 = load i32, ptr %2838, align 4, !tbaa !9
  %2840 = icmp sle i32 %2837, %2839
  br i1 %2840, label %2841, label %2843

2841:                                             ; preds = %2827
  %2842 = load i32, ptr %40, align 4, !tbaa !9
  br label %2846

2843:                                             ; preds = %2827
  %2844 = load ptr, ptr %21, align 8, !tbaa !5
  %2845 = load i32, ptr %2844, align 4, !tbaa !9
  br label %2846

2846:                                             ; preds = %2843, %2841
  %2847 = phi i32 [ %2842, %2841 ], [ %2845, %2843 ]
  store i32 %2847, ptr %39, align 4, !tbaa !9
  %2848 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %2848, ptr %60, align 4, !tbaa !9
  br label %2849

2849:                                             ; preds = %4032, %2846
  %2850 = load i32, ptr %60, align 4, !tbaa !9
  %2851 = load i32, ptr %39, align 4, !tbaa !9
  %2852 = icmp sle i32 %2850, %2851
  br i1 %2852, label %2853, label %4035

2853:                                             ; preds = %2849
  %2854 = load ptr, ptr %24, align 8, !tbaa !5
  %2855 = load i32, ptr %60, align 4, !tbaa !9
  %2856 = sext i32 %2855 to i64
  %2857 = getelementptr inbounds float, ptr %2854, i64 %2856
  %2858 = load float, ptr %2857, align 4, !tbaa !11
  store float %2858, ptr %48, align 4, !tbaa !11
  %2859 = load float, ptr %48, align 4, !tbaa !11
  %2860 = fcmp ogt float %2859, 0.000000e+00
  br i1 %2860, label %2861, label %4002

2861:                                             ; preds = %2853
  store i32 0, ptr %55, align 4, !tbaa !9
  %2862 = load i32, ptr %99, align 4, !tbaa !9
  %2863 = load i32, ptr %95, align 4, !tbaa !9
  %2864 = add nsw i32 %2862, %2863
  %2865 = sub nsw i32 %2864, 1
  store i32 %2865, ptr %41, align 4, !tbaa !9
  %2866 = load i32, ptr %41, align 4, !tbaa !9
  %2867 = load ptr, ptr %21, align 8, !tbaa !5
  %2868 = load i32, ptr %2867, align 4, !tbaa !9
  %2869 = icmp sle i32 %2866, %2868
  br i1 %2869, label %2870, label %2872

2870:                                             ; preds = %2861
  %2871 = load i32, ptr %41, align 4, !tbaa !9
  br label %2875

2872:                                             ; preds = %2861
  %2873 = load ptr, ptr %21, align 8, !tbaa !5
  %2874 = load i32, ptr %2873, align 4, !tbaa !9
  br label %2875

2875:                                             ; preds = %2872, %2870
  %2876 = phi i32 [ %2871, %2870 ], [ %2874, %2872 ]
  store i32 %2876, ptr %40, align 4, !tbaa !9
  %2877 = load i32, ptr %99, align 4, !tbaa !9
  store i32 %2877, ptr %61, align 4, !tbaa !9
  br label %2878

2878:                                             ; preds = %3992, %2875
  %2879 = load i32, ptr %61, align 4, !tbaa !9
  %2880 = load i32, ptr %40, align 4, !tbaa !9
  %2881 = icmp sle i32 %2879, %2880
  br i1 %2881, label %2882, label %3995

2882:                                             ; preds = %2878
  %2883 = load ptr, ptr %24, align 8, !tbaa !5
  %2884 = load i32, ptr %61, align 4, !tbaa !9
  %2885 = sext i32 %2884 to i64
  %2886 = getelementptr inbounds float, ptr %2883, i64 %2885
  %2887 = load float, ptr %2886, align 4, !tbaa !11
  store float %2887, ptr %50, align 4, !tbaa !11
  %2888 = load float, ptr %50, align 4, !tbaa !11
  %2889 = fcmp ogt float %2888, 0.000000e+00
  br i1 %2889, label %2890, label %3959

2890:                                             ; preds = %2882
  %2891 = load float, ptr %48, align 4, !tbaa !11
  store float %2891, ptr %56, align 4, !tbaa !11
  %2892 = load float, ptr %50, align 4, !tbaa !11
  %2893 = fcmp oge float %2892, 1.000000e+00
  br i1 %2893, label %2894, label %3014

2894:                                             ; preds = %2890
  %2895 = load float, ptr %48, align 4, !tbaa !11
  %2896 = load float, ptr %50, align 4, !tbaa !11
  %2897 = fcmp oge float %2895, %2896
  br i1 %2897, label %2898, label %2905

2898:                                             ; preds = %2894
  %2899 = load float, ptr %66, align 4, !tbaa !11
  %2900 = load float, ptr %48, align 4, !tbaa !11
  %2901 = fmul float %2899, %2900
  %2902 = load float, ptr %50, align 4, !tbaa !11
  %2903 = fcmp ole float %2901, %2902
  %2904 = zext i1 %2903 to i32
  store i32 %2904, ptr %75, align 4, !tbaa !9
  br label %2912

2905:                                             ; preds = %2894
  %2906 = load float, ptr %66, align 4, !tbaa !11
  %2907 = load float, ptr %50, align 4, !tbaa !11
  %2908 = fmul float %2906, %2907
  %2909 = load float, ptr %48, align 4, !tbaa !11
  %2910 = fcmp ole float %2908, %2909
  %2911 = zext i1 %2910 to i32
  store i32 %2911, ptr %75, align 4, !tbaa !9
  br label %2912

2912:                                             ; preds = %2905, %2898
  %2913 = load float, ptr %48, align 4, !tbaa !11
  %2914 = load float, ptr %94, align 4, !tbaa !11
  %2915 = load float, ptr %50, align 4, !tbaa !11
  %2916 = fdiv float %2914, %2915
  %2917 = fcmp olt float %2913, %2916
  br i1 %2917, label %2918, label %2960

2918:                                             ; preds = %2912
  %2919 = load ptr, ptr %20, align 8, !tbaa !5
  %2920 = load ptr, ptr %22, align 8, !tbaa !5
  %2921 = load i32, ptr %60, align 4, !tbaa !9
  %2922 = load i32, ptr %33, align 4, !tbaa !9
  %2923 = mul nsw i32 %2921, %2922
  %2924 = add nsw i32 %2923, 1
  %2925 = sext i32 %2924 to i64
  %2926 = getelementptr inbounds %struct.complex, ptr %2920, i64 %2925
  %2927 = load ptr, ptr %22, align 8, !tbaa !5
  %2928 = load i32, ptr %61, align 4, !tbaa !9
  %2929 = load i32, ptr %33, align 4, !tbaa !9
  %2930 = mul nsw i32 %2928, %2929
  %2931 = add nsw i32 %2930, 1
  %2932 = sext i32 %2931 to i64
  %2933 = getelementptr inbounds %struct.complex, ptr %2927, i64 %2932
  call void @cdotc_(ptr noundef %47, ptr noundef %2919, ptr noundef %2926, ptr noundef @c__1, ptr noundef %2933, ptr noundef @c__1)
  %2934 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2935 = load float, ptr %2934, align 4, !tbaa !13
  %2936 = load float, ptr %50, align 4, !tbaa !11
  %2937 = fdiv float %2935, %2936
  %2938 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2937, ptr %2938, align 4, !tbaa !13
  %2939 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2940 = load float, ptr %2939, align 4, !tbaa !15
  %2941 = load float, ptr %50, align 4, !tbaa !11
  %2942 = fdiv float %2940, %2941
  %2943 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2942, ptr %2943, align 4, !tbaa !15
  %2944 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2945 = load float, ptr %2944, align 4, !tbaa !13
  %2946 = load float, ptr %48, align 4, !tbaa !11
  %2947 = fdiv float %2945, %2946
  %2948 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2947, ptr %2948, align 4, !tbaa !13
  %2949 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2950 = load float, ptr %2949, align 4, !tbaa !15
  %2951 = load float, ptr %48, align 4, !tbaa !11
  %2952 = fdiv float %2950, %2951
  %2953 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2952, ptr %2953, align 4, !tbaa !15
  %2954 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2955 = load float, ptr %2954, align 4, !tbaa !13
  %2956 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %2955, ptr %2956, align 4, !tbaa !13
  %2957 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2958 = load float, ptr %2957, align 4, !tbaa !15
  %2959 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %2958, ptr %2959, align 4, !tbaa !15
  br label %3013

2960:                                             ; preds = %2912
  %2961 = load ptr, ptr %20, align 8, !tbaa !5
  %2962 = load ptr, ptr %22, align 8, !tbaa !5
  %2963 = load i32, ptr %60, align 4, !tbaa !9
  %2964 = load i32, ptr %33, align 4, !tbaa !9
  %2965 = mul nsw i32 %2963, %2964
  %2966 = add nsw i32 %2965, 1
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds %struct.complex, ptr %2962, i64 %2967
  %2969 = load ptr, ptr %28, align 8, !tbaa !5
  %2970 = load ptr, ptr %21, align 8, !tbaa !5
  %2971 = load i32, ptr %2970, align 4, !tbaa !9
  %2972 = add nsw i32 %2971, 1
  %2973 = sext i32 %2972 to i64
  %2974 = getelementptr inbounds %struct.complex, ptr %2969, i64 %2973
  call void @ccopy_(ptr noundef %2961, ptr noundef %2968, ptr noundef @c__1, ptr noundef %2974, ptr noundef @c__1)
  %2975 = load ptr, ptr %20, align 8, !tbaa !5
  %2976 = load ptr, ptr %28, align 8, !tbaa !5
  %2977 = load ptr, ptr %21, align 8, !tbaa !5
  %2978 = load i32, ptr %2977, align 4, !tbaa !9
  %2979 = add nsw i32 %2978, 1
  %2980 = sext i32 %2979 to i64
  %2981 = getelementptr inbounds %struct.complex, ptr %2976, i64 %2980
  %2982 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %48, ptr noundef @c_b41, ptr noundef %2975, ptr noundef @c__1, ptr noundef %2981, ptr noundef %2982, ptr noundef %52)
  %2983 = load ptr, ptr %20, align 8, !tbaa !5
  %2984 = load ptr, ptr %28, align 8, !tbaa !5
  %2985 = load ptr, ptr %21, align 8, !tbaa !5
  %2986 = load i32, ptr %2985, align 4, !tbaa !9
  %2987 = add nsw i32 %2986, 1
  %2988 = sext i32 %2987 to i64
  %2989 = getelementptr inbounds %struct.complex, ptr %2984, i64 %2988
  %2990 = load ptr, ptr %22, align 8, !tbaa !5
  %2991 = load i32, ptr %61, align 4, !tbaa !9
  %2992 = load i32, ptr %33, align 4, !tbaa !9
  %2993 = mul nsw i32 %2991, %2992
  %2994 = add nsw i32 %2993, 1
  %2995 = sext i32 %2994 to i64
  %2996 = getelementptr inbounds %struct.complex, ptr %2990, i64 %2995
  call void @cdotc_(ptr noundef %46, ptr noundef %2983, ptr noundef %2989, ptr noundef @c__1, ptr noundef %2996, ptr noundef @c__1)
  %2997 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2998 = load float, ptr %2997, align 4, !tbaa !13
  %2999 = load float, ptr %50, align 4, !tbaa !11
  %3000 = fdiv float %2998, %2999
  %3001 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3000, ptr %3001, align 4, !tbaa !13
  %3002 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3003 = load float, ptr %3002, align 4, !tbaa !15
  %3004 = load float, ptr %50, align 4, !tbaa !11
  %3005 = fdiv float %3003, %3004
  %3006 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3005, ptr %3006, align 4, !tbaa !15
  %3007 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3008 = load float, ptr %3007, align 4, !tbaa !13
  %3009 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %3008, ptr %3009, align 4, !tbaa !13
  %3010 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3011 = load float, ptr %3010, align 4, !tbaa !15
  %3012 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %3011, ptr %3012, align 4, !tbaa !15
  br label %3013

3013:                                             ; preds = %2960, %2918
  br label %3152

3014:                                             ; preds = %2890
  %3015 = load float, ptr %48, align 4, !tbaa !11
  %3016 = load float, ptr %50, align 4, !tbaa !11
  %3017 = fcmp oge float %3015, %3016
  br i1 %3017, label %3018, label %3025

3018:                                             ; preds = %3014
  %3019 = load float, ptr %48, align 4, !tbaa !11
  %3020 = load float, ptr %50, align 4, !tbaa !11
  %3021 = load float, ptr %66, align 4, !tbaa !11
  %3022 = fdiv float %3020, %3021
  %3023 = fcmp ole float %3019, %3022
  %3024 = zext i1 %3023 to i32
  store i32 %3024, ptr %75, align 4, !tbaa !9
  br label %3032

3025:                                             ; preds = %3014
  %3026 = load float, ptr %50, align 4, !tbaa !11
  %3027 = load float, ptr %48, align 4, !tbaa !11
  %3028 = load float, ptr %66, align 4, !tbaa !11
  %3029 = fdiv float %3027, %3028
  %3030 = fcmp ole float %3026, %3029
  %3031 = zext i1 %3030 to i32
  store i32 %3031, ptr %75, align 4, !tbaa !9
  br label %3032

3032:                                             ; preds = %3025, %3018
  %3033 = load float, ptr %48, align 4, !tbaa !11
  %3034 = load float, ptr %66, align 4, !tbaa !11
  %3035 = load float, ptr %50, align 4, !tbaa !11
  %3036 = fdiv float %3034, %3035
  %3037 = fcmp ogt float %3033, %3036
  br i1 %3037, label %3038, label %3098

3038:                                             ; preds = %3032
  %3039 = load ptr, ptr %20, align 8, !tbaa !5
  %3040 = load ptr, ptr %22, align 8, !tbaa !5
  %3041 = load i32, ptr %60, align 4, !tbaa !9
  %3042 = load i32, ptr %33, align 4, !tbaa !9
  %3043 = mul nsw i32 %3041, %3042
  %3044 = add nsw i32 %3043, 1
  %3045 = sext i32 %3044 to i64
  %3046 = getelementptr inbounds %struct.complex, ptr %3040, i64 %3045
  %3047 = load ptr, ptr %22, align 8, !tbaa !5
  %3048 = load i32, ptr %61, align 4, !tbaa !9
  %3049 = load i32, ptr %33, align 4, !tbaa !9
  %3050 = mul nsw i32 %3048, %3049
  %3051 = add nsw i32 %3050, 1
  %3052 = sext i32 %3051 to i64
  %3053 = getelementptr inbounds %struct.complex, ptr %3047, i64 %3052
  call void @cdotc_(ptr noundef %47, ptr noundef %3039, ptr noundef %3046, ptr noundef @c__1, ptr noundef %3053, ptr noundef @c__1)
  %3054 = load float, ptr %50, align 4, !tbaa !11
  %3055 = load float, ptr %48, align 4, !tbaa !11
  %3056 = fcmp oge float %3054, %3055
  br i1 %3056, label %3057, label %3059

3057:                                             ; preds = %3038
  %3058 = load float, ptr %50, align 4, !tbaa !11
  br label %3061

3059:                                             ; preds = %3038
  %3060 = load float, ptr %48, align 4, !tbaa !11
  br label %3061

3061:                                             ; preds = %3059, %3057
  %3062 = phi float [ %3058, %3057 ], [ %3060, %3059 ]
  store float %3062, ptr %43, align 4, !tbaa !11
  %3063 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3064 = load float, ptr %3063, align 4, !tbaa !13
  %3065 = load float, ptr %43, align 4, !tbaa !11
  %3066 = fdiv float %3064, %3065
  %3067 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3066, ptr %3067, align 4, !tbaa !13
  %3068 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3069 = load float, ptr %3068, align 4, !tbaa !15
  %3070 = load float, ptr %43, align 4, !tbaa !11
  %3071 = fdiv float %3069, %3070
  %3072 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3071, ptr %3072, align 4, !tbaa !15
  %3073 = load float, ptr %50, align 4, !tbaa !11
  %3074 = load float, ptr %48, align 4, !tbaa !11
  %3075 = fcmp ole float %3073, %3074
  br i1 %3075, label %3076, label %3078

3076:                                             ; preds = %3061
  %3077 = load float, ptr %50, align 4, !tbaa !11
  br label %3080

3078:                                             ; preds = %3061
  %3079 = load float, ptr %48, align 4, !tbaa !11
  br label %3080

3080:                                             ; preds = %3078, %3076
  %3081 = phi float [ %3077, %3076 ], [ %3079, %3078 ]
  store float %3081, ptr %44, align 4, !tbaa !11
  %3082 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3083 = load float, ptr %3082, align 4, !tbaa !13
  %3084 = load float, ptr %44, align 4, !tbaa !11
  %3085 = fdiv float %3083, %3084
  %3086 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3085, ptr %3086, align 4, !tbaa !13
  %3087 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3088 = load float, ptr %3087, align 4, !tbaa !15
  %3089 = load float, ptr %44, align 4, !tbaa !11
  %3090 = fdiv float %3088, %3089
  %3091 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3090, ptr %3091, align 4, !tbaa !15
  %3092 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3093 = load float, ptr %3092, align 4, !tbaa !13
  %3094 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %3093, ptr %3094, align 4, !tbaa !13
  %3095 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3096 = load float, ptr %3095, align 4, !tbaa !15
  %3097 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %3096, ptr %3097, align 4, !tbaa !15
  br label %3151

3098:                                             ; preds = %3032
  %3099 = load ptr, ptr %20, align 8, !tbaa !5
  %3100 = load ptr, ptr %22, align 8, !tbaa !5
  %3101 = load i32, ptr %61, align 4, !tbaa !9
  %3102 = load i32, ptr %33, align 4, !tbaa !9
  %3103 = mul nsw i32 %3101, %3102
  %3104 = add nsw i32 %3103, 1
  %3105 = sext i32 %3104 to i64
  %3106 = getelementptr inbounds %struct.complex, ptr %3100, i64 %3105
  %3107 = load ptr, ptr %28, align 8, !tbaa !5
  %3108 = load ptr, ptr %21, align 8, !tbaa !5
  %3109 = load i32, ptr %3108, align 4, !tbaa !9
  %3110 = add nsw i32 %3109, 1
  %3111 = sext i32 %3110 to i64
  %3112 = getelementptr inbounds %struct.complex, ptr %3107, i64 %3111
  call void @ccopy_(ptr noundef %3099, ptr noundef %3106, ptr noundef @c__1, ptr noundef %3112, ptr noundef @c__1)
  %3113 = load ptr, ptr %20, align 8, !tbaa !5
  %3114 = load ptr, ptr %28, align 8, !tbaa !5
  %3115 = load ptr, ptr %21, align 8, !tbaa !5
  %3116 = load i32, ptr %3115, align 4, !tbaa !9
  %3117 = add nsw i32 %3116, 1
  %3118 = sext i32 %3117 to i64
  %3119 = getelementptr inbounds %struct.complex, ptr %3114, i64 %3118
  %3120 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef @c_b41, ptr noundef %3113, ptr noundef @c__1, ptr noundef %3119, ptr noundef %3120, ptr noundef %52)
  %3121 = load ptr, ptr %20, align 8, !tbaa !5
  %3122 = load ptr, ptr %22, align 8, !tbaa !5
  %3123 = load i32, ptr %60, align 4, !tbaa !9
  %3124 = load i32, ptr %33, align 4, !tbaa !9
  %3125 = mul nsw i32 %3123, %3124
  %3126 = add nsw i32 %3125, 1
  %3127 = sext i32 %3126 to i64
  %3128 = getelementptr inbounds %struct.complex, ptr %3122, i64 %3127
  %3129 = load ptr, ptr %28, align 8, !tbaa !5
  %3130 = load ptr, ptr %21, align 8, !tbaa !5
  %3131 = load i32, ptr %3130, align 4, !tbaa !9
  %3132 = add nsw i32 %3131, 1
  %3133 = sext i32 %3132 to i64
  %3134 = getelementptr inbounds %struct.complex, ptr %3129, i64 %3133
  call void @cdotc_(ptr noundef %46, ptr noundef %3121, ptr noundef %3128, ptr noundef @c__1, ptr noundef %3134, ptr noundef @c__1)
  %3135 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3136 = load float, ptr %3135, align 4, !tbaa !13
  %3137 = load float, ptr %48, align 4, !tbaa !11
  %3138 = fdiv float %3136, %3137
  %3139 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3138, ptr %3139, align 4, !tbaa !13
  %3140 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3141 = load float, ptr %3140, align 4, !tbaa !15
  %3142 = load float, ptr %48, align 4, !tbaa !11
  %3143 = fdiv float %3141, %3142
  %3144 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3143, ptr %3144, align 4, !tbaa !15
  %3145 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3146 = load float, ptr %3145, align 4, !tbaa !13
  %3147 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %3146, ptr %3147, align 4, !tbaa !13
  %3148 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3149 = load float, ptr %3148, align 4, !tbaa !15
  %3150 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %3149, ptr %3150, align 4, !tbaa !15
  br label %3151

3151:                                             ; preds = %3098, %3080
  br label %3152

3152:                                             ; preds = %3151, %3013
  %3153 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3153, ptr %119, align 4
  %3154 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 0
  %3155 = load float, ptr %3154, align 4
  %3156 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 1
  %3157 = load float, ptr %3156, align 4
  %3158 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 0
  %3159 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 1
  store float %3155, ptr %3158, align 4
  store float %3157, ptr %3159, align 4
  %3160 = load <2 x float>, ptr %120, align 4
  %3161 = call float @cabsf(<2 x float> noundef %3160) #7
  %3162 = fneg float %3161
  store float %3162, ptr %57, align 4, !tbaa !11
  %3163 = load float, ptr %85, align 4, !tbaa !11
  store float %3163, ptr %43, align 4, !tbaa !11
  %3164 = load float, ptr %57, align 4, !tbaa !11
  %3165 = fneg float %3164
  store float %3165, ptr %44, align 4, !tbaa !11
  %3166 = load float, ptr %43, align 4, !tbaa !11
  %3167 = load float, ptr %44, align 4, !tbaa !11
  %3168 = fcmp oge float %3166, %3167
  br i1 %3168, label %3169, label %3171

3169:                                             ; preds = %3152
  %3170 = load float, ptr %43, align 4, !tbaa !11
  br label %3173

3171:                                             ; preds = %3152
  %3172 = load float, ptr %44, align 4, !tbaa !11
  br label %3173

3173:                                             ; preds = %3171, %3169
  %3174 = phi float [ %3170, %3169 ], [ %3172, %3171 ]
  store float %3174, ptr %85, align 4, !tbaa !11
  %3175 = load float, ptr %57, align 4, !tbaa !11
  %3176 = fcmp oge float %3175, 0.000000e+00
  br i1 %3176, label %3177, label %3179

3177:                                             ; preds = %3173
  %3178 = load float, ptr %57, align 4, !tbaa !11
  br label %3182

3179:                                             ; preds = %3173
  %3180 = load float, ptr %57, align 4, !tbaa !11
  %3181 = fneg float %3180
  br label %3182

3182:                                             ; preds = %3179, %3177
  %3183 = phi float [ %3178, %3177 ], [ %3181, %3179 ]
  %3184 = load float, ptr %103, align 4, !tbaa !11
  %3185 = fcmp ogt float %3183, %3184
  br i1 %3185, label %3186, label %3951

3186:                                             ; preds = %3182
  %3187 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3187, ptr %121, align 4
  %3188 = getelementptr inbounds { float, float }, ptr %121, i32 0, i32 0
  %3189 = load float, ptr %3188, align 4
  %3190 = getelementptr inbounds { float, float }, ptr %121, i32 0, i32 1
  %3191 = load float, ptr %3190, align 4
  %3192 = getelementptr inbounds { float, float }, ptr %122, i32 0, i32 0
  %3193 = getelementptr inbounds { float, float }, ptr %122, i32 0, i32 1
  store float %3189, ptr %3192, align 4
  store float %3191, ptr %3193, align 4
  %3194 = load <2 x float>, ptr %122, align 4
  %3195 = call float @cabsf(<2 x float> noundef %3194) #7
  store float %3195, ptr %43, align 4, !tbaa !11
  %3196 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3197 = load float, ptr %3196, align 4, !tbaa !13
  %3198 = load float, ptr %43, align 4, !tbaa !11
  %3199 = fdiv float %3197, %3198
  %3200 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3199, ptr %3200, align 4, !tbaa !13
  %3201 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3202 = load float, ptr %3201, align 4, !tbaa !15
  %3203 = load float, ptr %43, align 4, !tbaa !11
  %3204 = fdiv float %3202, %3203
  %3205 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3204, ptr %3205, align 4, !tbaa !15
  %3206 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3207 = load float, ptr %3206, align 4, !tbaa !13
  %3208 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  store float %3207, ptr %3208, align 4, !tbaa !13
  %3209 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3210 = load float, ptr %3209, align 4, !tbaa !15
  %3211 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  store float %3210, ptr %3211, align 4, !tbaa !15
  store i32 0, ptr %91, align 4, !tbaa !9
  store i32 0, ptr %55, align 4, !tbaa !9
  %3212 = load i32, ptr %92, align 4, !tbaa !9
  %3213 = add nsw i32 %3212, 1
  store i32 %3213, ptr %92, align 4, !tbaa !9
  %3214 = load i32, ptr %75, align 4, !tbaa !9
  %3215 = icmp ne i32 %3214, 0
  br i1 %3215, label %3216, label %3641

3216:                                             ; preds = %3186
  %3217 = load float, ptr %50, align 4, !tbaa !11
  %3218 = load float, ptr %48, align 4, !tbaa !11
  %3219 = fdiv float %3217, %3218
  store float %3219, ptr %64, align 4, !tbaa !11
  %3220 = load float, ptr %48, align 4, !tbaa !11
  %3221 = load float, ptr %50, align 4, !tbaa !11
  %3222 = fdiv float %3220, %3221
  store float %3222, ptr %63, align 4, !tbaa !11
  %3223 = load float, ptr %64, align 4, !tbaa !11
  %3224 = load float, ptr %63, align 4, !tbaa !11
  %3225 = fsub float %3223, %3224
  store float %3225, ptr %43, align 4, !tbaa !11
  %3226 = load float, ptr %43, align 4, !tbaa !11
  %3227 = fcmp oge float %3226, 0.000000e+00
  br i1 %3227, label %3228, label %3230

3228:                                             ; preds = %3216
  %3229 = load float, ptr %43, align 4, !tbaa !11
  br label %3233

3230:                                             ; preds = %3216
  %3231 = load float, ptr %43, align 4, !tbaa !11
  %3232 = fneg float %3231
  br label %3233

3233:                                             ; preds = %3230, %3228
  %3234 = phi float [ %3229, %3228 ], [ %3232, %3230 ]
  %3235 = fmul float %3234, -5.000000e-01
  %3236 = load float, ptr %57, align 4, !tbaa !11
  %3237 = fdiv float %3235, %3236
  store float %3237, ptr %65, align 4, !tbaa !11
  %3238 = load float, ptr %50, align 4, !tbaa !11
  %3239 = load float, ptr %56, align 4, !tbaa !11
  %3240 = fcmp ogt float %3238, %3239
  br i1 %3240, label %3241, label %3244

3241:                                             ; preds = %3233
  %3242 = load float, ptr %65, align 4, !tbaa !11
  %3243 = fneg float %3242
  store float %3243, ptr %65, align 4, !tbaa !11
  br label %3244

3244:                                             ; preds = %3241, %3233
  %3245 = load float, ptr %65, align 4, !tbaa !11
  %3246 = fcmp oge float %3245, 0.000000e+00
  br i1 %3246, label %3247, label %3249

3247:                                             ; preds = %3244
  %3248 = load float, ptr %65, align 4, !tbaa !11
  br label %3252

3249:                                             ; preds = %3244
  %3250 = load float, ptr %65, align 4, !tbaa !11
  %3251 = fneg float %3250
  br label %3252

3252:                                             ; preds = %3249, %3247
  %3253 = phi float [ %3248, %3247 ], [ %3251, %3249 ]
  %3254 = load float, ptr %53, align 4, !tbaa !11
  %3255 = fcmp ogt float %3253, %3254
  br i1 %3255, label %3256, label %3394

3256:                                             ; preds = %3252
  %3257 = load float, ptr %65, align 4, !tbaa !11
  %3258 = fdiv float 5.000000e-01, %3257
  store float %3258, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %80, align 4, !tbaa !11
  %3259 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %3259, ptr %123, align 4
  %3260 = getelementptr inbounds { float, float }, ptr %123, i32 0, i32 0
  %3261 = load float, ptr %3260, align 4
  %3262 = getelementptr inbounds { float, float }, ptr %123, i32 0, i32 1
  %3263 = load float, ptr %3262, align 4
  %3264 = fneg float %3263
  %3265 = call ptr @_pCf(ptr noundef %46)
  %3266 = getelementptr inbounds { float, float }, ptr %3265, i32 0, i32 0
  %3267 = getelementptr inbounds { float, float }, ptr %3265, i32 0, i32 1
  store float %3261, ptr %3266, align 4
  store float %3264, ptr %3267, align 4
  %3268 = load float, ptr %62, align 4, !tbaa !11
  %3269 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3270 = load float, ptr %3269, align 4, !tbaa !13
  %3271 = fmul float %3268, %3270
  %3272 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3271, ptr %3272, align 4, !tbaa !13
  %3273 = load float, ptr %62, align 4, !tbaa !11
  %3274 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3275 = load float, ptr %3274, align 4, !tbaa !15
  %3276 = fmul float %3273, %3275
  %3277 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3276, ptr %3277, align 4, !tbaa !15
  %3278 = load ptr, ptr %20, align 8, !tbaa !5
  %3279 = load ptr, ptr %22, align 8, !tbaa !5
  %3280 = load i32, ptr %60, align 4, !tbaa !9
  %3281 = load i32, ptr %33, align 4, !tbaa !9
  %3282 = mul nsw i32 %3280, %3281
  %3283 = add nsw i32 %3282, 1
  %3284 = sext i32 %3283 to i64
  %3285 = getelementptr inbounds %struct.complex, ptr %3279, i64 %3284
  %3286 = load ptr, ptr %22, align 8, !tbaa !5
  %3287 = load i32, ptr %61, align 4, !tbaa !9
  %3288 = load i32, ptr %33, align 4, !tbaa !9
  %3289 = mul nsw i32 %3287, %3288
  %3290 = add nsw i32 %3289, 1
  %3291 = sext i32 %3290 to i64
  %3292 = getelementptr inbounds %struct.complex, ptr %3286, i64 %3291
  call void @crot_(ptr noundef %3278, ptr noundef %3285, ptr noundef @c__1, ptr noundef %3292, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  %3293 = load i32, ptr %71, align 4, !tbaa !9
  %3294 = icmp ne i32 %3293, 0
  br i1 %3294, label %3295, label %3329

3295:                                             ; preds = %3256
  %3296 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %3296, ptr %124, align 4
  %3297 = getelementptr inbounds { float, float }, ptr %124, i32 0, i32 0
  %3298 = load float, ptr %3297, align 4
  %3299 = getelementptr inbounds { float, float }, ptr %124, i32 0, i32 1
  %3300 = load float, ptr %3299, align 4
  %3301 = fneg float %3300
  %3302 = call ptr @_pCf(ptr noundef %46)
  %3303 = getelementptr inbounds { float, float }, ptr %3302, i32 0, i32 0
  %3304 = getelementptr inbounds { float, float }, ptr %3302, i32 0, i32 1
  store float %3298, ptr %3303, align 4
  store float %3301, ptr %3304, align 4
  %3305 = load float, ptr %62, align 4, !tbaa !11
  %3306 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3307 = load float, ptr %3306, align 4, !tbaa !13
  %3308 = fmul float %3305, %3307
  %3309 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3308, ptr %3309, align 4, !tbaa !13
  %3310 = load float, ptr %62, align 4, !tbaa !11
  %3311 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3312 = load float, ptr %3311, align 4, !tbaa !15
  %3313 = fmul float %3310, %3312
  %3314 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3313, ptr %3314, align 4, !tbaa !15
  %3315 = load ptr, ptr %26, align 8, !tbaa !5
  %3316 = load i32, ptr %60, align 4, !tbaa !9
  %3317 = load i32, ptr %35, align 4, !tbaa !9
  %3318 = mul nsw i32 %3316, %3317
  %3319 = add nsw i32 %3318, 1
  %3320 = sext i32 %3319 to i64
  %3321 = getelementptr inbounds %struct.complex, ptr %3315, i64 %3320
  %3322 = load ptr, ptr %26, align 8, !tbaa !5
  %3323 = load i32, ptr %61, align 4, !tbaa !9
  %3324 = load i32, ptr %35, align 4, !tbaa !9
  %3325 = mul nsw i32 %3323, %3324
  %3326 = add nsw i32 %3325, 1
  %3327 = sext i32 %3326 to i64
  %3328 = getelementptr inbounds %struct.complex, ptr %3322, i64 %3327
  call void @crot_(ptr noundef %104, ptr noundef %3321, ptr noundef @c__1, ptr noundef %3328, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  br label %3329

3329:                                             ; preds = %3295, %3256
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3330 = load float, ptr %62, align 4, !tbaa !11
  %3331 = load float, ptr %63, align 4, !tbaa !11
  %3332 = fmul float %3330, %3331
  %3333 = load float, ptr %57, align 4, !tbaa !11
  %3334 = call float @llvm.fmuladd.f32(float %3332, float %3333, float 1.000000e+00)
  store float %3334, ptr %44, align 4, !tbaa !11
  %3335 = load float, ptr %50, align 4, !tbaa !11
  %3336 = fpext float %3335 to double
  %3337 = load float, ptr %43, align 4, !tbaa !11
  %3338 = load float, ptr %44, align 4, !tbaa !11
  %3339 = fcmp oge float %3337, %3338
  br i1 %3339, label %3340, label %3342

3340:                                             ; preds = %3329
  %3341 = load float, ptr %43, align 4, !tbaa !11
  br label %3344

3342:                                             ; preds = %3329
  %3343 = load float, ptr %44, align 4, !tbaa !11
  br label %3344

3344:                                             ; preds = %3342, %3340
  %3345 = phi float [ %3341, %3340 ], [ %3343, %3342 ]
  %3346 = fpext float %3345 to double
  %3347 = call double @sqrt(double noundef %3346) #7
  %3348 = fmul double %3336, %3347
  %3349 = fptrunc double %3348 to float
  %3350 = load ptr, ptr %24, align 8, !tbaa !5
  %3351 = load i32, ptr %61, align 4, !tbaa !9
  %3352 = sext i32 %3351 to i64
  %3353 = getelementptr inbounds float, ptr %3350, i64 %3352
  store float %3349, ptr %3353, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3354 = load float, ptr %62, align 4, !tbaa !11
  %3355 = load float, ptr %64, align 4, !tbaa !11
  %3356 = fmul float %3354, %3355
  %3357 = load float, ptr %57, align 4, !tbaa !11
  %3358 = fneg float %3356
  %3359 = call float @llvm.fmuladd.f32(float %3358, float %3357, float 1.000000e+00)
  store float %3359, ptr %44, align 4, !tbaa !11
  %3360 = load float, ptr %43, align 4, !tbaa !11
  %3361 = load float, ptr %44, align 4, !tbaa !11
  %3362 = fcmp oge float %3360, %3361
  br i1 %3362, label %3363, label %3365

3363:                                             ; preds = %3344
  %3364 = load float, ptr %43, align 4, !tbaa !11
  br label %3367

3365:                                             ; preds = %3344
  %3366 = load float, ptr %44, align 4, !tbaa !11
  br label %3367

3367:                                             ; preds = %3365, %3363
  %3368 = phi float [ %3364, %3363 ], [ %3366, %3365 ]
  %3369 = fpext float %3368 to double
  %3370 = call double @sqrt(double noundef %3369) #7
  %3371 = load float, ptr %48, align 4, !tbaa !11
  %3372 = fpext float %3371 to double
  %3373 = fmul double %3372, %3370
  %3374 = fptrunc double %3373 to float
  store float %3374, ptr %48, align 4, !tbaa !11
  %3375 = load float, ptr %87, align 4, !tbaa !11
  store float %3375, ptr %43, align 4, !tbaa !11
  %3376 = load float, ptr %62, align 4, !tbaa !11
  %3377 = fcmp oge float %3376, 0.000000e+00
  br i1 %3377, label %3378, label %3380

3378:                                             ; preds = %3367
  %3379 = load float, ptr %62, align 4, !tbaa !11
  br label %3383

3380:                                             ; preds = %3367
  %3381 = load float, ptr %62, align 4, !tbaa !11
  %3382 = fneg float %3381
  br label %3383

3383:                                             ; preds = %3380, %3378
  %3384 = phi float [ %3379, %3378 ], [ %3382, %3380 ]
  store float %3384, ptr %44, align 4, !tbaa !11
  %3385 = load float, ptr %43, align 4, !tbaa !11
  %3386 = load float, ptr %44, align 4, !tbaa !11
  %3387 = fcmp oge float %3385, %3386
  br i1 %3387, label %3388, label %3390

3388:                                             ; preds = %3383
  %3389 = load float, ptr %43, align 4, !tbaa !11
  br label %3392

3390:                                             ; preds = %3383
  %3391 = load float, ptr %44, align 4, !tbaa !11
  br label %3392

3392:                                             ; preds = %3390, %3388
  %3393 = phi float [ %3389, %3388 ], [ %3391, %3390 ]
  store float %3393, ptr %87, align 4, !tbaa !11
  br label %3585

3394:                                             ; preds = %3252
  %3395 = load float, ptr %57, align 4, !tbaa !11
  %3396 = fcmp oge float %3395, 0.000000e+00
  br i1 %3396, label %3397, label %3407

3397:                                             ; preds = %3394
  %3398 = load float, ptr @c_b41, align 4, !tbaa !11
  %3399 = fcmp oge float %3398, 0.000000e+00
  br i1 %3399, label %3400, label %3402

3400:                                             ; preds = %3397
  %3401 = load float, ptr @c_b41, align 4, !tbaa !11
  br label %3405

3402:                                             ; preds = %3397
  %3403 = load float, ptr @c_b41, align 4, !tbaa !11
  %3404 = fneg float %3403
  br label %3405

3405:                                             ; preds = %3402, %3400
  %3406 = phi float [ %3401, %3400 ], [ %3404, %3402 ]
  br label %3418

3407:                                             ; preds = %3394
  %3408 = load float, ptr @c_b41, align 4, !tbaa !11
  %3409 = fcmp oge float %3408, 0.000000e+00
  br i1 %3409, label %3410, label %3412

3410:                                             ; preds = %3407
  %3411 = load float, ptr @c_b41, align 4, !tbaa !11
  br label %3415

3412:                                             ; preds = %3407
  %3413 = load float, ptr @c_b41, align 4, !tbaa !11
  %3414 = fneg float %3413
  br label %3415

3415:                                             ; preds = %3412, %3410
  %3416 = phi float [ %3411, %3410 ], [ %3414, %3412 ]
  %3417 = fneg float %3416
  br label %3418

3418:                                             ; preds = %3415, %3405
  %3419 = phi float [ %3406, %3405 ], [ %3417, %3415 ]
  %3420 = fneg float %3419
  store float %3420, ptr %86, align 4, !tbaa !11
  %3421 = load float, ptr %50, align 4, !tbaa !11
  %3422 = load float, ptr %56, align 4, !tbaa !11
  %3423 = fcmp ogt float %3421, %3422
  br i1 %3423, label %3424, label %3427

3424:                                             ; preds = %3418
  %3425 = load float, ptr %86, align 4, !tbaa !11
  %3426 = fneg float %3425
  store float %3426, ptr %86, align 4, !tbaa !11
  br label %3427

3427:                                             ; preds = %3424, %3418
  %3428 = load float, ptr %65, align 4, !tbaa !11
  %3429 = fpext float %3428 to double
  %3430 = load float, ptr %86, align 4, !tbaa !11
  %3431 = fpext float %3430 to double
  %3432 = load float, ptr %65, align 4, !tbaa !11
  %3433 = load float, ptr %65, align 4, !tbaa !11
  %3434 = call float @llvm.fmuladd.f32(float %3432, float %3433, float 1.000000e+00)
  %3435 = fpext float %3434 to double
  %3436 = call double @sqrt(double noundef %3435) #7
  %3437 = call double @llvm.fmuladd.f64(double %3431, double %3436, double %3429)
  %3438 = fdiv double 1.000000e+00, %3437
  %3439 = fptrunc double %3438 to float
  store float %3439, ptr %62, align 4, !tbaa !11
  %3440 = load float, ptr %62, align 4, !tbaa !11
  %3441 = load float, ptr %62, align 4, !tbaa !11
  %3442 = call float @llvm.fmuladd.f32(float %3440, float %3441, float 1.000000e+00)
  %3443 = fdiv float 1.000000e+00, %3442
  %3444 = fpext float %3443 to double
  %3445 = call double @sqrt(double noundef %3444) #7
  %3446 = fptrunc double %3445 to float
  store float %3446, ptr %80, align 4, !tbaa !11
  %3447 = load float, ptr %62, align 4, !tbaa !11
  %3448 = load float, ptr %80, align 4, !tbaa !11
  %3449 = fmul float %3447, %3448
  store float %3449, ptr %81, align 4, !tbaa !11
  %3450 = load float, ptr %87, align 4, !tbaa !11
  store float %3450, ptr %43, align 4, !tbaa !11
  %3451 = load float, ptr %81, align 4, !tbaa !11
  %3452 = fcmp oge float %3451, 0.000000e+00
  br i1 %3452, label %3453, label %3455

3453:                                             ; preds = %3427
  %3454 = load float, ptr %81, align 4, !tbaa !11
  br label %3458

3455:                                             ; preds = %3427
  %3456 = load float, ptr %81, align 4, !tbaa !11
  %3457 = fneg float %3456
  br label %3458

3458:                                             ; preds = %3455, %3453
  %3459 = phi float [ %3454, %3453 ], [ %3457, %3455 ]
  store float %3459, ptr %44, align 4, !tbaa !11
  %3460 = load float, ptr %43, align 4, !tbaa !11
  %3461 = load float, ptr %44, align 4, !tbaa !11
  %3462 = fcmp oge float %3460, %3461
  br i1 %3462, label %3463, label %3465

3463:                                             ; preds = %3458
  %3464 = load float, ptr %43, align 4, !tbaa !11
  br label %3467

3465:                                             ; preds = %3458
  %3466 = load float, ptr %44, align 4, !tbaa !11
  br label %3467

3467:                                             ; preds = %3465, %3463
  %3468 = phi float [ %3464, %3463 ], [ %3466, %3465 ]
  store float %3468, ptr %87, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3469 = load float, ptr %62, align 4, !tbaa !11
  %3470 = load float, ptr %63, align 4, !tbaa !11
  %3471 = fmul float %3469, %3470
  %3472 = load float, ptr %57, align 4, !tbaa !11
  %3473 = call float @llvm.fmuladd.f32(float %3471, float %3472, float 1.000000e+00)
  store float %3473, ptr %44, align 4, !tbaa !11
  %3474 = load float, ptr %50, align 4, !tbaa !11
  %3475 = fpext float %3474 to double
  %3476 = load float, ptr %43, align 4, !tbaa !11
  %3477 = load float, ptr %44, align 4, !tbaa !11
  %3478 = fcmp oge float %3476, %3477
  br i1 %3478, label %3479, label %3481

3479:                                             ; preds = %3467
  %3480 = load float, ptr %43, align 4, !tbaa !11
  br label %3483

3481:                                             ; preds = %3467
  %3482 = load float, ptr %44, align 4, !tbaa !11
  br label %3483

3483:                                             ; preds = %3481, %3479
  %3484 = phi float [ %3480, %3479 ], [ %3482, %3481 ]
  %3485 = fpext float %3484 to double
  %3486 = call double @sqrt(double noundef %3485) #7
  %3487 = fmul double %3475, %3486
  %3488 = fptrunc double %3487 to float
  %3489 = load ptr, ptr %24, align 8, !tbaa !5
  %3490 = load i32, ptr %61, align 4, !tbaa !9
  %3491 = sext i32 %3490 to i64
  %3492 = getelementptr inbounds float, ptr %3489, i64 %3491
  store float %3488, ptr %3492, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3493 = load float, ptr %62, align 4, !tbaa !11
  %3494 = load float, ptr %64, align 4, !tbaa !11
  %3495 = fmul float %3493, %3494
  %3496 = load float, ptr %57, align 4, !tbaa !11
  %3497 = fneg float %3495
  %3498 = call float @llvm.fmuladd.f32(float %3497, float %3496, float 1.000000e+00)
  store float %3498, ptr %44, align 4, !tbaa !11
  %3499 = load float, ptr %43, align 4, !tbaa !11
  %3500 = load float, ptr %44, align 4, !tbaa !11
  %3501 = fcmp oge float %3499, %3500
  br i1 %3501, label %3502, label %3504

3502:                                             ; preds = %3483
  %3503 = load float, ptr %43, align 4, !tbaa !11
  br label %3506

3504:                                             ; preds = %3483
  %3505 = load float, ptr %44, align 4, !tbaa !11
  br label %3506

3506:                                             ; preds = %3504, %3502
  %3507 = phi float [ %3503, %3502 ], [ %3505, %3504 ]
  %3508 = fpext float %3507 to double
  %3509 = call double @sqrt(double noundef %3508) #7
  %3510 = load float, ptr %48, align 4, !tbaa !11
  %3511 = fpext float %3510 to double
  %3512 = fmul double %3511, %3509
  %3513 = fptrunc double %3512 to float
  store float %3513, ptr %48, align 4, !tbaa !11
  %3514 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %3514, ptr %125, align 4
  %3515 = getelementptr inbounds { float, float }, ptr %125, i32 0, i32 0
  %3516 = load float, ptr %3515, align 4
  %3517 = getelementptr inbounds { float, float }, ptr %125, i32 0, i32 1
  %3518 = load float, ptr %3517, align 4
  %3519 = fneg float %3518
  %3520 = call ptr @_pCf(ptr noundef %46)
  %3521 = getelementptr inbounds { float, float }, ptr %3520, i32 0, i32 0
  %3522 = getelementptr inbounds { float, float }, ptr %3520, i32 0, i32 1
  store float %3516, ptr %3521, align 4
  store float %3519, ptr %3522, align 4
  %3523 = load float, ptr %81, align 4, !tbaa !11
  %3524 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3525 = load float, ptr %3524, align 4, !tbaa !13
  %3526 = fmul float %3523, %3525
  %3527 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3526, ptr %3527, align 4, !tbaa !13
  %3528 = load float, ptr %81, align 4, !tbaa !11
  %3529 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3530 = load float, ptr %3529, align 4, !tbaa !15
  %3531 = fmul float %3528, %3530
  %3532 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3531, ptr %3532, align 4, !tbaa !15
  %3533 = load ptr, ptr %20, align 8, !tbaa !5
  %3534 = load ptr, ptr %22, align 8, !tbaa !5
  %3535 = load i32, ptr %60, align 4, !tbaa !9
  %3536 = load i32, ptr %33, align 4, !tbaa !9
  %3537 = mul nsw i32 %3535, %3536
  %3538 = add nsw i32 %3537, 1
  %3539 = sext i32 %3538 to i64
  %3540 = getelementptr inbounds %struct.complex, ptr %3534, i64 %3539
  %3541 = load ptr, ptr %22, align 8, !tbaa !5
  %3542 = load i32, ptr %61, align 4, !tbaa !9
  %3543 = load i32, ptr %33, align 4, !tbaa !9
  %3544 = mul nsw i32 %3542, %3543
  %3545 = add nsw i32 %3544, 1
  %3546 = sext i32 %3545 to i64
  %3547 = getelementptr inbounds %struct.complex, ptr %3541, i64 %3546
  call void @crot_(ptr noundef %3533, ptr noundef %3540, ptr noundef @c__1, ptr noundef %3547, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  %3548 = load i32, ptr %71, align 4, !tbaa !9
  %3549 = icmp ne i32 %3548, 0
  br i1 %3549, label %3550, label %3584

3550:                                             ; preds = %3506
  %3551 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %3551, ptr %126, align 4
  %3552 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 0
  %3553 = load float, ptr %3552, align 4
  %3554 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 1
  %3555 = load float, ptr %3554, align 4
  %3556 = fneg float %3555
  %3557 = call ptr @_pCf(ptr noundef %46)
  %3558 = getelementptr inbounds { float, float }, ptr %3557, i32 0, i32 0
  %3559 = getelementptr inbounds { float, float }, ptr %3557, i32 0, i32 1
  store float %3553, ptr %3558, align 4
  store float %3556, ptr %3559, align 4
  %3560 = load float, ptr %81, align 4, !tbaa !11
  %3561 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3562 = load float, ptr %3561, align 4, !tbaa !13
  %3563 = fmul float %3560, %3562
  %3564 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3563, ptr %3564, align 4, !tbaa !13
  %3565 = load float, ptr %81, align 4, !tbaa !11
  %3566 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3567 = load float, ptr %3566, align 4, !tbaa !15
  %3568 = fmul float %3565, %3567
  %3569 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3568, ptr %3569, align 4, !tbaa !15
  %3570 = load ptr, ptr %26, align 8, !tbaa !5
  %3571 = load i32, ptr %60, align 4, !tbaa !9
  %3572 = load i32, ptr %35, align 4, !tbaa !9
  %3573 = mul nsw i32 %3571, %3572
  %3574 = add nsw i32 %3573, 1
  %3575 = sext i32 %3574 to i64
  %3576 = getelementptr inbounds %struct.complex, ptr %3570, i64 %3575
  %3577 = load ptr, ptr %26, align 8, !tbaa !5
  %3578 = load i32, ptr %61, align 4, !tbaa !9
  %3579 = load i32, ptr %35, align 4, !tbaa !9
  %3580 = mul nsw i32 %3578, %3579
  %3581 = add nsw i32 %3580, 1
  %3582 = sext i32 %3581 to i64
  %3583 = getelementptr inbounds %struct.complex, ptr %3577, i64 %3582
  call void @crot_(ptr noundef %104, ptr noundef %3576, ptr noundef @c__1, ptr noundef %3583, ptr noundef @c__1, ptr noundef %80, ptr noundef %45)
  br label %3584

3584:                                             ; preds = %3550, %3506
  br label %3585

3585:                                             ; preds = %3584, %3392
  %3586 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %3586, ptr %41, align 4, !tbaa !9
  %3587 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %3587, ptr %42, align 4, !tbaa !9
  %3588 = load ptr, ptr %28, align 8, !tbaa !5
  %3589 = load i32, ptr %42, align 4, !tbaa !9
  %3590 = sext i32 %3589 to i64
  %3591 = getelementptr inbounds %struct.complex, ptr %3588, i64 %3590
  %3592 = getelementptr inbounds %struct.complex, ptr %3591, i32 0, i32 0
  %3593 = load float, ptr %3592, align 4, !tbaa !13
  %3594 = fneg float %3593
  %3595 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3594, ptr %3595, align 4, !tbaa !13
  %3596 = load ptr, ptr %28, align 8, !tbaa !5
  %3597 = load i32, ptr %42, align 4, !tbaa !9
  %3598 = sext i32 %3597 to i64
  %3599 = getelementptr inbounds %struct.complex, ptr %3596, i64 %3598
  %3600 = getelementptr inbounds %struct.complex, ptr %3599, i32 0, i32 1
  %3601 = load float, ptr %3600, align 4, !tbaa !15
  %3602 = fneg float %3601
  %3603 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3602, ptr %3603, align 4, !tbaa !15
  %3604 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3605 = load float, ptr %3604, align 4, !tbaa !13
  %3606 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %3607 = load float, ptr %3606, align 4, !tbaa !13
  %3608 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3609 = load float, ptr %3608, align 4, !tbaa !15
  %3610 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %3611 = load float, ptr %3610, align 4, !tbaa !15
  %3612 = fmul float %3609, %3611
  %3613 = fneg float %3612
  %3614 = call float @llvm.fmuladd.f32(float %3605, float %3607, float %3613)
  %3615 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3614, ptr %3615, align 4, !tbaa !13
  %3616 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3617 = load float, ptr %3616, align 4, !tbaa !13
  %3618 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %3619 = load float, ptr %3618, align 4, !tbaa !15
  %3620 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3621 = load float, ptr %3620, align 4, !tbaa !15
  %3622 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %3623 = load float, ptr %3622, align 4, !tbaa !13
  %3624 = fmul float %3621, %3623
  %3625 = call float @llvm.fmuladd.f32(float %3617, float %3619, float %3624)
  %3626 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3625, ptr %3626, align 4, !tbaa !15
  %3627 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3628 = load float, ptr %3627, align 4, !tbaa !13
  %3629 = load ptr, ptr %28, align 8, !tbaa !5
  %3630 = load i32, ptr %41, align 4, !tbaa !9
  %3631 = sext i32 %3630 to i64
  %3632 = getelementptr inbounds %struct.complex, ptr %3629, i64 %3631
  %3633 = getelementptr inbounds %struct.complex, ptr %3632, i32 0, i32 0
  store float %3628, ptr %3633, align 4, !tbaa !13
  %3634 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3635 = load float, ptr %3634, align 4, !tbaa !15
  %3636 = load ptr, ptr %28, align 8, !tbaa !5
  %3637 = load i32, ptr %41, align 4, !tbaa !9
  %3638 = sext i32 %3637 to i64
  %3639 = getelementptr inbounds %struct.complex, ptr %3636, i64 %3638
  %3640 = getelementptr inbounds %struct.complex, ptr %3639, i32 0, i32 1
  store float %3635, ptr %3640, align 4, !tbaa !15
  br label %3845

3641:                                             ; preds = %3186
  %3642 = load float, ptr %48, align 4, !tbaa !11
  %3643 = load float, ptr %50, align 4, !tbaa !11
  %3644 = fcmp ogt float %3642, %3643
  br i1 %3644, label %3645, label %3740

3645:                                             ; preds = %3641
  %3646 = load ptr, ptr %20, align 8, !tbaa !5
  %3647 = load ptr, ptr %22, align 8, !tbaa !5
  %3648 = load i32, ptr %60, align 4, !tbaa !9
  %3649 = load i32, ptr %33, align 4, !tbaa !9
  %3650 = mul nsw i32 %3648, %3649
  %3651 = add nsw i32 %3650, 1
  %3652 = sext i32 %3651 to i64
  %3653 = getelementptr inbounds %struct.complex, ptr %3647, i64 %3652
  %3654 = load ptr, ptr %28, align 8, !tbaa !5
  %3655 = load ptr, ptr %21, align 8, !tbaa !5
  %3656 = load i32, ptr %3655, align 4, !tbaa !9
  %3657 = add nsw i32 %3656, 1
  %3658 = sext i32 %3657 to i64
  %3659 = getelementptr inbounds %struct.complex, ptr %3654, i64 %3658
  call void @ccopy_(ptr noundef %3646, ptr noundef %3653, ptr noundef @c__1, ptr noundef %3659, ptr noundef @c__1)
  %3660 = load ptr, ptr %20, align 8, !tbaa !5
  %3661 = load ptr, ptr %28, align 8, !tbaa !5
  %3662 = load ptr, ptr %21, align 8, !tbaa !5
  %3663 = load i32, ptr %3662, align 4, !tbaa !9
  %3664 = add nsw i32 %3663, 1
  %3665 = sext i32 %3664 to i64
  %3666 = getelementptr inbounds %struct.complex, ptr %3661, i64 %3665
  %3667 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %48, ptr noundef @c_b41, ptr noundef %3660, ptr noundef @c__1, ptr noundef %3666, ptr noundef %3667, ptr noundef %52)
  %3668 = load ptr, ptr %20, align 8, !tbaa !5
  %3669 = load ptr, ptr %22, align 8, !tbaa !5
  %3670 = load i32, ptr %61, align 4, !tbaa !9
  %3671 = load i32, ptr %33, align 4, !tbaa !9
  %3672 = mul nsw i32 %3670, %3671
  %3673 = add nsw i32 %3672, 1
  %3674 = sext i32 %3673 to i64
  %3675 = getelementptr inbounds %struct.complex, ptr %3669, i64 %3674
  %3676 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef @c_b41, ptr noundef %3668, ptr noundef @c__1, ptr noundef %3675, ptr noundef %3676, ptr noundef %52)
  %3677 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3678 = load float, ptr %3677, align 4, !tbaa !13
  %3679 = fneg float %3678
  %3680 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3679, ptr %3680, align 4, !tbaa !13
  %3681 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3682 = load float, ptr %3681, align 4, !tbaa !15
  %3683 = fneg float %3682
  %3684 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3683, ptr %3684, align 4, !tbaa !15
  %3685 = load ptr, ptr %20, align 8, !tbaa !5
  %3686 = load ptr, ptr %28, align 8, !tbaa !5
  %3687 = load ptr, ptr %21, align 8, !tbaa !5
  %3688 = load i32, ptr %3687, align 4, !tbaa !9
  %3689 = add nsw i32 %3688, 1
  %3690 = sext i32 %3689 to i64
  %3691 = getelementptr inbounds %struct.complex, ptr %3686, i64 %3690
  %3692 = load ptr, ptr %22, align 8, !tbaa !5
  %3693 = load i32, ptr %61, align 4, !tbaa !9
  %3694 = load i32, ptr %33, align 4, !tbaa !9
  %3695 = mul nsw i32 %3693, %3694
  %3696 = add nsw i32 %3695, 1
  %3697 = sext i32 %3696 to i64
  %3698 = getelementptr inbounds %struct.complex, ptr %3692, i64 %3697
  call void @caxpy_(ptr noundef %3685, ptr noundef %45, ptr noundef %3691, ptr noundef @c__1, ptr noundef %3698, ptr noundef @c__1)
  %3699 = load ptr, ptr %20, align 8, !tbaa !5
  %3700 = load ptr, ptr %22, align 8, !tbaa !5
  %3701 = load i32, ptr %61, align 4, !tbaa !9
  %3702 = load i32, ptr %33, align 4, !tbaa !9
  %3703 = mul nsw i32 %3701, %3702
  %3704 = add nsw i32 %3703, 1
  %3705 = sext i32 %3704 to i64
  %3706 = getelementptr inbounds %struct.complex, ptr %3700, i64 %3705
  %3707 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b41, ptr noundef %50, ptr noundef %3699, ptr noundef @c__1, ptr noundef %3706, ptr noundef %3707, ptr noundef %52)
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3708 = load float, ptr %57, align 4, !tbaa !11
  %3709 = load float, ptr %57, align 4, !tbaa !11
  %3710 = fneg float %3708
  %3711 = call float @llvm.fmuladd.f32(float %3710, float %3709, float 1.000000e+00)
  store float %3711, ptr %44, align 4, !tbaa !11
  %3712 = load float, ptr %50, align 4, !tbaa !11
  %3713 = fpext float %3712 to double
  %3714 = load float, ptr %43, align 4, !tbaa !11
  %3715 = load float, ptr %44, align 4, !tbaa !11
  %3716 = fcmp oge float %3714, %3715
  br i1 %3716, label %3717, label %3719

3717:                                             ; preds = %3645
  %3718 = load float, ptr %43, align 4, !tbaa !11
  br label %3721

3719:                                             ; preds = %3645
  %3720 = load float, ptr %44, align 4, !tbaa !11
  br label %3721

3721:                                             ; preds = %3719, %3717
  %3722 = phi float [ %3718, %3717 ], [ %3720, %3719 ]
  %3723 = fpext float %3722 to double
  %3724 = call double @sqrt(double noundef %3723) #7
  %3725 = fmul double %3713, %3724
  %3726 = fptrunc double %3725 to float
  %3727 = load ptr, ptr %24, align 8, !tbaa !5
  %3728 = load i32, ptr %61, align 4, !tbaa !9
  %3729 = sext i32 %3728 to i64
  %3730 = getelementptr inbounds float, ptr %3727, i64 %3729
  store float %3726, ptr %3730, align 4, !tbaa !11
  %3731 = load float, ptr %87, align 4, !tbaa !11
  %3732 = load float, ptr %67, align 4, !tbaa !11
  %3733 = fcmp oge float %3731, %3732
  br i1 %3733, label %3734, label %3736

3734:                                             ; preds = %3721
  %3735 = load float, ptr %87, align 4, !tbaa !11
  br label %3738

3736:                                             ; preds = %3721
  %3737 = load float, ptr %67, align 4, !tbaa !11
  br label %3738

3738:                                             ; preds = %3736, %3734
  %3739 = phi float [ %3735, %3734 ], [ %3737, %3736 ]
  store float %3739, ptr %87, align 4, !tbaa !11
  br label %3844

3740:                                             ; preds = %3641
  %3741 = load ptr, ptr %20, align 8, !tbaa !5
  %3742 = load ptr, ptr %22, align 8, !tbaa !5
  %3743 = load i32, ptr %61, align 4, !tbaa !9
  %3744 = load i32, ptr %33, align 4, !tbaa !9
  %3745 = mul nsw i32 %3743, %3744
  %3746 = add nsw i32 %3745, 1
  %3747 = sext i32 %3746 to i64
  %3748 = getelementptr inbounds %struct.complex, ptr %3742, i64 %3747
  %3749 = load ptr, ptr %28, align 8, !tbaa !5
  %3750 = load ptr, ptr %21, align 8, !tbaa !5
  %3751 = load i32, ptr %3750, align 4, !tbaa !9
  %3752 = add nsw i32 %3751, 1
  %3753 = sext i32 %3752 to i64
  %3754 = getelementptr inbounds %struct.complex, ptr %3749, i64 %3753
  call void @ccopy_(ptr noundef %3741, ptr noundef %3748, ptr noundef @c__1, ptr noundef %3754, ptr noundef @c__1)
  %3755 = load ptr, ptr %20, align 8, !tbaa !5
  %3756 = load ptr, ptr %28, align 8, !tbaa !5
  %3757 = load ptr, ptr %21, align 8, !tbaa !5
  %3758 = load i32, ptr %3757, align 4, !tbaa !9
  %3759 = add nsw i32 %3758, 1
  %3760 = sext i32 %3759 to i64
  %3761 = getelementptr inbounds %struct.complex, ptr %3756, i64 %3760
  %3762 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef @c_b41, ptr noundef %3755, ptr noundef @c__1, ptr noundef %3761, ptr noundef %3762, ptr noundef %52)
  %3763 = load ptr, ptr %20, align 8, !tbaa !5
  %3764 = load ptr, ptr %22, align 8, !tbaa !5
  %3765 = load i32, ptr %60, align 4, !tbaa !9
  %3766 = load i32, ptr %33, align 4, !tbaa !9
  %3767 = mul nsw i32 %3765, %3766
  %3768 = add nsw i32 %3767, 1
  %3769 = sext i32 %3768 to i64
  %3770 = getelementptr inbounds %struct.complex, ptr %3764, i64 %3769
  %3771 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %48, ptr noundef @c_b41, ptr noundef %3763, ptr noundef @c__1, ptr noundef %3770, ptr noundef %3771, ptr noundef %52)
  %3772 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3772, ptr %127, align 4
  %3773 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 0
  %3774 = load float, ptr %3773, align 4
  %3775 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 1
  %3776 = load float, ptr %3775, align 4
  %3777 = fneg float %3776
  %3778 = call ptr @_pCf(ptr noundef %46)
  %3779 = getelementptr inbounds { float, float }, ptr %3778, i32 0, i32 0
  %3780 = getelementptr inbounds { float, float }, ptr %3778, i32 0, i32 1
  store float %3774, ptr %3779, align 4
  store float %3777, ptr %3780, align 4
  %3781 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3782 = load float, ptr %3781, align 4, !tbaa !13
  %3783 = fneg float %3782
  %3784 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3783, ptr %3784, align 4, !tbaa !13
  %3785 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3786 = load float, ptr %3785, align 4, !tbaa !15
  %3787 = fneg float %3786
  %3788 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3787, ptr %3788, align 4, !tbaa !15
  %3789 = load ptr, ptr %20, align 8, !tbaa !5
  %3790 = load ptr, ptr %28, align 8, !tbaa !5
  %3791 = load ptr, ptr %21, align 8, !tbaa !5
  %3792 = load i32, ptr %3791, align 4, !tbaa !9
  %3793 = add nsw i32 %3792, 1
  %3794 = sext i32 %3793 to i64
  %3795 = getelementptr inbounds %struct.complex, ptr %3790, i64 %3794
  %3796 = load ptr, ptr %22, align 8, !tbaa !5
  %3797 = load i32, ptr %60, align 4, !tbaa !9
  %3798 = load i32, ptr %33, align 4, !tbaa !9
  %3799 = mul nsw i32 %3797, %3798
  %3800 = add nsw i32 %3799, 1
  %3801 = sext i32 %3800 to i64
  %3802 = getelementptr inbounds %struct.complex, ptr %3796, i64 %3801
  call void @caxpy_(ptr noundef %3789, ptr noundef %45, ptr noundef %3795, ptr noundef @c__1, ptr noundef %3802, ptr noundef @c__1)
  %3803 = load ptr, ptr %20, align 8, !tbaa !5
  %3804 = load ptr, ptr %22, align 8, !tbaa !5
  %3805 = load i32, ptr %60, align 4, !tbaa !9
  %3806 = load i32, ptr %33, align 4, !tbaa !9
  %3807 = mul nsw i32 %3805, %3806
  %3808 = add nsw i32 %3807, 1
  %3809 = sext i32 %3808 to i64
  %3810 = getelementptr inbounds %struct.complex, ptr %3804, i64 %3809
  %3811 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b41, ptr noundef %48, ptr noundef %3803, ptr noundef @c__1, ptr noundef %3810, ptr noundef %3811, ptr noundef %52)
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3812 = load float, ptr %57, align 4, !tbaa !11
  %3813 = load float, ptr %57, align 4, !tbaa !11
  %3814 = fneg float %3812
  %3815 = call float @llvm.fmuladd.f32(float %3814, float %3813, float 1.000000e+00)
  store float %3815, ptr %44, align 4, !tbaa !11
  %3816 = load float, ptr %48, align 4, !tbaa !11
  %3817 = fpext float %3816 to double
  %3818 = load float, ptr %43, align 4, !tbaa !11
  %3819 = load float, ptr %44, align 4, !tbaa !11
  %3820 = fcmp oge float %3818, %3819
  br i1 %3820, label %3821, label %3823

3821:                                             ; preds = %3740
  %3822 = load float, ptr %43, align 4, !tbaa !11
  br label %3825

3823:                                             ; preds = %3740
  %3824 = load float, ptr %44, align 4, !tbaa !11
  br label %3825

3825:                                             ; preds = %3823, %3821
  %3826 = phi float [ %3822, %3821 ], [ %3824, %3823 ]
  %3827 = fpext float %3826 to double
  %3828 = call double @sqrt(double noundef %3827) #7
  %3829 = fmul double %3817, %3828
  %3830 = fptrunc double %3829 to float
  %3831 = load ptr, ptr %24, align 8, !tbaa !5
  %3832 = load i32, ptr %60, align 4, !tbaa !9
  %3833 = sext i32 %3832 to i64
  %3834 = getelementptr inbounds float, ptr %3831, i64 %3833
  store float %3830, ptr %3834, align 4, !tbaa !11
  %3835 = load float, ptr %87, align 4, !tbaa !11
  %3836 = load float, ptr %67, align 4, !tbaa !11
  %3837 = fcmp oge float %3835, %3836
  br i1 %3837, label %3838, label %3840

3838:                                             ; preds = %3825
  %3839 = load float, ptr %87, align 4, !tbaa !11
  br label %3842

3840:                                             ; preds = %3825
  %3841 = load float, ptr %67, align 4, !tbaa !11
  br label %3842

3842:                                             ; preds = %3840, %3838
  %3843 = phi float [ %3839, %3838 ], [ %3841, %3840 ]
  store float %3843, ptr %87, align 4, !tbaa !11
  br label %3844

3844:                                             ; preds = %3842, %3738
  br label %3845

3845:                                             ; preds = %3844, %3585
  %3846 = load ptr, ptr %24, align 8, !tbaa !5
  %3847 = load i32, ptr %61, align 4, !tbaa !9
  %3848 = sext i32 %3847 to i64
  %3849 = getelementptr inbounds float, ptr %3846, i64 %3848
  %3850 = load float, ptr %3849, align 4, !tbaa !11
  %3851 = load float, ptr %50, align 4, !tbaa !11
  %3852 = fdiv float %3850, %3851
  store float %3852, ptr %43, align 4, !tbaa !11
  %3853 = load float, ptr %43, align 4, !tbaa !11
  %3854 = load float, ptr %43, align 4, !tbaa !11
  %3855 = fmul float %3853, %3854
  %3856 = load float, ptr %107, align 4, !tbaa !11
  %3857 = fcmp ole float %3855, %3856
  br i1 %3857, label %3858, label %3901

3858:                                             ; preds = %3845
  %3859 = load float, ptr %50, align 4, !tbaa !11
  %3860 = load float, ptr %106, align 4, !tbaa !11
  %3861 = fcmp olt float %3859, %3860
  br i1 %3861, label %3862, label %3880

3862:                                             ; preds = %3858
  %3863 = load float, ptr %50, align 4, !tbaa !11
  %3864 = load float, ptr %78, align 4, !tbaa !11
  %3865 = fcmp ogt float %3863, %3864
  br i1 %3865, label %3866, label %3880

3866:                                             ; preds = %3862
  %3867 = load ptr, ptr %20, align 8, !tbaa !5
  %3868 = load ptr, ptr %22, align 8, !tbaa !5
  %3869 = load i32, ptr %61, align 4, !tbaa !9
  %3870 = load i32, ptr %33, align 4, !tbaa !9
  %3871 = mul nsw i32 %3869, %3870
  %3872 = add nsw i32 %3871, 1
  %3873 = sext i32 %3872 to i64
  %3874 = getelementptr inbounds %struct.complex, ptr %3868, i64 %3873
  %3875 = call float @scnrm2_(ptr noundef %3867, ptr noundef %3874, ptr noundef @c__1)
  %3876 = load ptr, ptr %24, align 8, !tbaa !5
  %3877 = load i32, ptr %61, align 4, !tbaa !9
  %3878 = sext i32 %3877 to i64
  %3879 = getelementptr inbounds float, ptr %3876, i64 %3878
  store float %3875, ptr %3879, align 4, !tbaa !11
  br label %3900

3880:                                             ; preds = %3862, %3858
  store float 0.000000e+00, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %3881 = load ptr, ptr %20, align 8, !tbaa !5
  %3882 = load ptr, ptr %22, align 8, !tbaa !5
  %3883 = load i32, ptr %61, align 4, !tbaa !9
  %3884 = load i32, ptr %33, align 4, !tbaa !9
  %3885 = mul nsw i32 %3883, %3884
  %3886 = add nsw i32 %3885, 1
  %3887 = sext i32 %3886 to i64
  %3888 = getelementptr inbounds %struct.complex, ptr %3882, i64 %3887
  call void @classq_(ptr noundef %3881, ptr noundef %3888, ptr noundef @c__1, ptr noundef %62, ptr noundef %50)
  %3889 = load float, ptr %62, align 4, !tbaa !11
  %3890 = fpext float %3889 to double
  %3891 = load float, ptr %50, align 4, !tbaa !11
  %3892 = fpext float %3891 to double
  %3893 = call double @sqrt(double noundef %3892) #7
  %3894 = fmul double %3890, %3893
  %3895 = fptrunc double %3894 to float
  %3896 = load ptr, ptr %24, align 8, !tbaa !5
  %3897 = load i32, ptr %61, align 4, !tbaa !9
  %3898 = sext i32 %3897 to i64
  %3899 = getelementptr inbounds float, ptr %3896, i64 %3898
  store float %3895, ptr %3899, align 4, !tbaa !11
  br label %3900

3900:                                             ; preds = %3880, %3866
  br label %3901

3901:                                             ; preds = %3900, %3845
  %3902 = load float, ptr %48, align 4, !tbaa !11
  %3903 = load float, ptr %56, align 4, !tbaa !11
  %3904 = fdiv float %3902, %3903
  store float %3904, ptr %43, align 4, !tbaa !11
  %3905 = load float, ptr %43, align 4, !tbaa !11
  %3906 = load float, ptr %43, align 4, !tbaa !11
  %3907 = fmul float %3905, %3906
  %3908 = load float, ptr %107, align 4, !tbaa !11
  %3909 = fcmp ole float %3907, %3908
  br i1 %3909, label %3910, label %3950

3910:                                             ; preds = %3901
  %3911 = load float, ptr %48, align 4, !tbaa !11
  %3912 = load float, ptr %106, align 4, !tbaa !11
  %3913 = fcmp olt float %3911, %3912
  br i1 %3913, label %3914, label %3928

3914:                                             ; preds = %3910
  %3915 = load float, ptr %48, align 4, !tbaa !11
  %3916 = load float, ptr %78, align 4, !tbaa !11
  %3917 = fcmp ogt float %3915, %3916
  br i1 %3917, label %3918, label %3928

3918:                                             ; preds = %3914
  %3919 = load ptr, ptr %20, align 8, !tbaa !5
  %3920 = load ptr, ptr %22, align 8, !tbaa !5
  %3921 = load i32, ptr %60, align 4, !tbaa !9
  %3922 = load i32, ptr %33, align 4, !tbaa !9
  %3923 = mul nsw i32 %3921, %3922
  %3924 = add nsw i32 %3923, 1
  %3925 = sext i32 %3924 to i64
  %3926 = getelementptr inbounds %struct.complex, ptr %3920, i64 %3925
  %3927 = call float @scnrm2_(ptr noundef %3919, ptr noundef %3926, ptr noundef @c__1)
  store float %3927, ptr %48, align 4, !tbaa !11
  br label %3944

3928:                                             ; preds = %3914, %3910
  store float 0.000000e+00, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %48, align 4, !tbaa !11
  %3929 = load ptr, ptr %20, align 8, !tbaa !5
  %3930 = load ptr, ptr %22, align 8, !tbaa !5
  %3931 = load i32, ptr %60, align 4, !tbaa !9
  %3932 = load i32, ptr %33, align 4, !tbaa !9
  %3933 = mul nsw i32 %3931, %3932
  %3934 = add nsw i32 %3933, 1
  %3935 = sext i32 %3934 to i64
  %3936 = getelementptr inbounds %struct.complex, ptr %3930, i64 %3935
  call void @classq_(ptr noundef %3929, ptr noundef %3936, ptr noundef @c__1, ptr noundef %62, ptr noundef %48)
  %3937 = load float, ptr %62, align 4, !tbaa !11
  %3938 = fpext float %3937 to double
  %3939 = load float, ptr %48, align 4, !tbaa !11
  %3940 = fpext float %3939 to double
  %3941 = call double @sqrt(double noundef %3940) #7
  %3942 = fmul double %3938, %3941
  %3943 = fptrunc double %3942 to float
  store float %3943, ptr %48, align 4, !tbaa !11
  br label %3944

3944:                                             ; preds = %3928, %3918
  %3945 = load float, ptr %48, align 4, !tbaa !11
  %3946 = load ptr, ptr %24, align 8, !tbaa !5
  %3947 = load i32, ptr %60, align 4, !tbaa !9
  %3948 = sext i32 %3947 to i64
  %3949 = getelementptr inbounds float, ptr %3946, i64 %3948
  store float %3945, ptr %3949, align 4, !tbaa !11
  br label %3950

3950:                                             ; preds = %3944, %3901
  br label %3958

3951:                                             ; preds = %3182
  %3952 = load i32, ptr %91, align 4, !tbaa !9
  %3953 = add nsw i32 %3952, 1
  store i32 %3953, ptr %91, align 4, !tbaa !9
  %3954 = load i32, ptr %55, align 4, !tbaa !9
  %3955 = add nsw i32 %3954, 1
  store i32 %3955, ptr %55, align 4, !tbaa !9
  %3956 = load i32, ptr %82, align 4, !tbaa !9
  %3957 = add nsw i32 %3956, 1
  store i32 %3957, ptr %82, align 4, !tbaa !9
  br label %3958

3958:                                             ; preds = %3951, %3950
  br label %3966

3959:                                             ; preds = %2882
  %3960 = load i32, ptr %91, align 4, !tbaa !9
  %3961 = add nsw i32 %3960, 1
  store i32 %3961, ptr %91, align 4, !tbaa !9
  %3962 = load i32, ptr %55, align 4, !tbaa !9
  %3963 = add nsw i32 %3962, 1
  store i32 %3963, ptr %55, align 4, !tbaa !9
  %3964 = load i32, ptr %82, align 4, !tbaa !9
  %3965 = add nsw i32 %3964, 1
  store i32 %3965, ptr %82, align 4, !tbaa !9
  br label %3966

3966:                                             ; preds = %3959, %3958
  %3967 = load i32, ptr %59, align 4, !tbaa !9
  %3968 = load i32, ptr %83, align 4, !tbaa !9
  %3969 = icmp sle i32 %3967, %3968
  br i1 %3969, label %3970, label %3980

3970:                                             ; preds = %3966
  %3971 = load i32, ptr %82, align 4, !tbaa !9
  %3972 = load i32, ptr %84, align 4, !tbaa !9
  %3973 = icmp sge i32 %3971, %3972
  br i1 %3973, label %3974, label %3980

3974:                                             ; preds = %3970
  %3975 = load float, ptr %48, align 4, !tbaa !11
  %3976 = load ptr, ptr %24, align 8, !tbaa !5
  %3977 = load i32, ptr %60, align 4, !tbaa !9
  %3978 = sext i32 %3977 to i64
  %3979 = getelementptr inbounds float, ptr %3976, i64 %3978
  store float %3975, ptr %3979, align 4, !tbaa !11
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %4040

3980:                                             ; preds = %3970, %3966
  %3981 = load i32, ptr %59, align 4, !tbaa !9
  %3982 = load i32, ptr %83, align 4, !tbaa !9
  %3983 = icmp sle i32 %3981, %3982
  br i1 %3983, label %3984, label %3991

3984:                                             ; preds = %3980
  %3985 = load i32, ptr %55, align 4, !tbaa !9
  %3986 = load i32, ptr %108, align 4, !tbaa !9
  %3987 = icmp sgt i32 %3985, %3986
  br i1 %3987, label %3988, label %3991

3988:                                             ; preds = %3984
  %3989 = load float, ptr %48, align 4, !tbaa !11
  %3990 = fneg float %3989
  store float %3990, ptr %48, align 4, !tbaa !11
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %3996

3991:                                             ; preds = %3984, %3980
  br label %3992

3992:                                             ; preds = %3991
  %3993 = load i32, ptr %61, align 4, !tbaa !9
  %3994 = add nsw i32 %3993, 1
  store i32 %3994, ptr %61, align 4, !tbaa !9
  br label %2878, !llvm.loop !28

3995:                                             ; preds = %2878
  br label %3996

3996:                                             ; preds = %3995, %3988
  %3997 = load float, ptr %48, align 4, !tbaa !11
  %3998 = load ptr, ptr %24, align 8, !tbaa !5
  %3999 = load i32, ptr %60, align 4, !tbaa !9
  %4000 = sext i32 %3999 to i64
  %4001 = getelementptr inbounds float, ptr %3998, i64 %4000
  store float %3997, ptr %4001, align 4, !tbaa !11
  br label %4031

4002:                                             ; preds = %2853
  %4003 = load float, ptr %48, align 4, !tbaa !11
  %4004 = fcmp oeq float %4003, 0.000000e+00
  br i1 %4004, label %4005, label %4026

4005:                                             ; preds = %4002
  %4006 = load i32, ptr %99, align 4, !tbaa !9
  %4007 = load i32, ptr %95, align 4, !tbaa !9
  %4008 = add nsw i32 %4006, %4007
  %4009 = sub nsw i32 %4008, 1
  store i32 %4009, ptr %40, align 4, !tbaa !9
  %4010 = load i32, ptr %91, align 4, !tbaa !9
  %4011 = load i32, ptr %40, align 4, !tbaa !9
  %4012 = load ptr, ptr %21, align 8, !tbaa !5
  %4013 = load i32, ptr %4012, align 4, !tbaa !9
  %4014 = icmp sle i32 %4011, %4013
  br i1 %4014, label %4015, label %4017

4015:                                             ; preds = %4005
  %4016 = load i32, ptr %40, align 4, !tbaa !9
  br label %4020

4017:                                             ; preds = %4005
  %4018 = load ptr, ptr %21, align 8, !tbaa !5
  %4019 = load i32, ptr %4018, align 4, !tbaa !9
  br label %4020

4020:                                             ; preds = %4017, %4015
  %4021 = phi i32 [ %4016, %4015 ], [ %4019, %4017 ]
  %4022 = add nsw i32 %4010, %4021
  %4023 = load i32, ptr %99, align 4, !tbaa !9
  %4024 = sub nsw i32 %4022, %4023
  %4025 = add nsw i32 %4024, 1
  store i32 %4025, ptr %91, align 4, !tbaa !9
  br label %4026

4026:                                             ; preds = %4020, %4002
  %4027 = load float, ptr %48, align 4, !tbaa !11
  %4028 = fcmp olt float %4027, 0.000000e+00
  br i1 %4028, label %4029, label %4030

4029:                                             ; preds = %4026
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %4030

4030:                                             ; preds = %4029, %4026
  br label %4031

4031:                                             ; preds = %4030, %3996
  br label %4032

4032:                                             ; preds = %4031
  %4033 = load i32, ptr %60, align 4, !tbaa !9
  %4034 = add nsw i32 %4033, 1
  store i32 %4034, ptr %60, align 4, !tbaa !9
  br label %2849, !llvm.loop !29

4035:                                             ; preds = %2849
  br label %4036

4036:                                             ; preds = %4035
  %4037 = load i32, ptr %93, align 4, !tbaa !9
  %4038 = add nsw i32 %4037, 1
  store i32 %4038, ptr %93, align 4, !tbaa !9
  br label %2823, !llvm.loop !30

4039:                                             ; preds = %2823
  br label %4040

4040:                                             ; preds = %4039, %3974
  %4041 = load i32, ptr %97, align 4, !tbaa !9
  %4042 = load i32, ptr %95, align 4, !tbaa !9
  %4043 = add nsw i32 %4041, %4042
  %4044 = sub nsw i32 %4043, 1
  store i32 %4044, ptr %39, align 4, !tbaa !9
  %4045 = load i32, ptr %39, align 4, !tbaa !9
  %4046 = load ptr, ptr %21, align 8, !tbaa !5
  %4047 = load i32, ptr %4046, align 4, !tbaa !9
  %4048 = icmp sle i32 %4045, %4047
  br i1 %4048, label %4049, label %4051

4049:                                             ; preds = %4040
  %4050 = load i32, ptr %39, align 4, !tbaa !9
  br label %4054

4051:                                             ; preds = %4040
  %4052 = load ptr, ptr %21, align 8, !tbaa !5
  %4053 = load i32, ptr %4052, align 4, !tbaa !9
  br label %4054

4054:                                             ; preds = %4051, %4049
  %4055 = phi i32 [ %4050, %4049 ], [ %4053, %4051 ]
  store i32 %4055, ptr %38, align 4, !tbaa !9
  %4056 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %4056, ptr %60, align 4, !tbaa !9
  br label %4057

4057:                                             ; preds = %4080, %4054
  %4058 = load i32, ptr %60, align 4, !tbaa !9
  %4059 = load i32, ptr %38, align 4, !tbaa !9
  %4060 = icmp sle i32 %4058, %4059
  br i1 %4060, label %4061, label %4083

4061:                                             ; preds = %4057
  %4062 = load ptr, ptr %24, align 8, !tbaa !5
  %4063 = load i32, ptr %60, align 4, !tbaa !9
  %4064 = sext i32 %4063 to i64
  %4065 = getelementptr inbounds float, ptr %4062, i64 %4064
  %4066 = load float, ptr %4065, align 4, !tbaa !11
  store float %4066, ptr %43, align 4, !tbaa !11
  %4067 = load float, ptr %43, align 4, !tbaa !11
  %4068 = fcmp oge float %4067, 0.000000e+00
  br i1 %4068, label %4069, label %4071

4069:                                             ; preds = %4061
  %4070 = load float, ptr %43, align 4, !tbaa !11
  br label %4074

4071:                                             ; preds = %4061
  %4072 = load float, ptr %43, align 4, !tbaa !11
  %4073 = fneg float %4072
  br label %4074

4074:                                             ; preds = %4071, %4069
  %4075 = phi float [ %4070, %4069 ], [ %4073, %4071 ]
  %4076 = load ptr, ptr %24, align 8, !tbaa !5
  %4077 = load i32, ptr %60, align 4, !tbaa !9
  %4078 = sext i32 %4077 to i64
  %4079 = getelementptr inbounds float, ptr %4076, i64 %4078
  store float %4075, ptr %4079, align 4, !tbaa !11
  br label %4080

4080:                                             ; preds = %4074
  %4081 = load i32, ptr %60, align 4, !tbaa !9
  %4082 = add nsw i32 %4081, 1
  store i32 %4082, ptr %60, align 4, !tbaa !9
  br label %4057, !llvm.loop !31

4083:                                             ; preds = %4057
  br label %4084

4084:                                             ; preds = %4083
  %4085 = load i32, ptr %98, align 4, !tbaa !9
  %4086 = add nsw i32 %4085, 1
  store i32 %4086, ptr %98, align 4, !tbaa !9
  br label %1556, !llvm.loop !32

4087:                                             ; preds = %1556
  %4088 = load ptr, ptr %24, align 8, !tbaa !5
  %4089 = load ptr, ptr %21, align 8, !tbaa !5
  %4090 = load i32, ptr %4089, align 4, !tbaa !9
  %4091 = sext i32 %4090 to i64
  %4092 = getelementptr inbounds float, ptr %4088, i64 %4091
  %4093 = load float, ptr %4092, align 4, !tbaa !11
  %4094 = load float, ptr %106, align 4, !tbaa !11
  %4095 = fcmp olt float %4093, %4094
  br i1 %4095, label %4096, label %4121

4096:                                             ; preds = %4087
  %4097 = load ptr, ptr %24, align 8, !tbaa !5
  %4098 = load ptr, ptr %21, align 8, !tbaa !5
  %4099 = load i32, ptr %4098, align 4, !tbaa !9
  %4100 = sext i32 %4099 to i64
  %4101 = getelementptr inbounds float, ptr %4097, i64 %4100
  %4102 = load float, ptr %4101, align 4, !tbaa !11
  %4103 = load float, ptr %78, align 4, !tbaa !11
  %4104 = fcmp ogt float %4102, %4103
  br i1 %4104, label %4105, label %4121

4105:                                             ; preds = %4096
  %4106 = load ptr, ptr %20, align 8, !tbaa !5
  %4107 = load ptr, ptr %22, align 8, !tbaa !5
  %4108 = load ptr, ptr %21, align 8, !tbaa !5
  %4109 = load i32, ptr %4108, align 4, !tbaa !9
  %4110 = load i32, ptr %33, align 4, !tbaa !9
  %4111 = mul nsw i32 %4109, %4110
  %4112 = add nsw i32 %4111, 1
  %4113 = sext i32 %4112 to i64
  %4114 = getelementptr inbounds %struct.complex, ptr %4107, i64 %4113
  %4115 = call float @scnrm2_(ptr noundef %4106, ptr noundef %4114, ptr noundef @c__1)
  %4116 = load ptr, ptr %24, align 8, !tbaa !5
  %4117 = load ptr, ptr %21, align 8, !tbaa !5
  %4118 = load i32, ptr %4117, align 4, !tbaa !9
  %4119 = sext i32 %4118 to i64
  %4120 = getelementptr inbounds float, ptr %4116, i64 %4119
  store float %4115, ptr %4120, align 4, !tbaa !11
  br label %4143

4121:                                             ; preds = %4096, %4087
  store float 0.000000e+00, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %48, align 4, !tbaa !11
  %4122 = load ptr, ptr %20, align 8, !tbaa !5
  %4123 = load ptr, ptr %22, align 8, !tbaa !5
  %4124 = load ptr, ptr %21, align 8, !tbaa !5
  %4125 = load i32, ptr %4124, align 4, !tbaa !9
  %4126 = load i32, ptr %33, align 4, !tbaa !9
  %4127 = mul nsw i32 %4125, %4126
  %4128 = add nsw i32 %4127, 1
  %4129 = sext i32 %4128 to i64
  %4130 = getelementptr inbounds %struct.complex, ptr %4123, i64 %4129
  call void @classq_(ptr noundef %4122, ptr noundef %4130, ptr noundef @c__1, ptr noundef %62, ptr noundef %48)
  %4131 = load float, ptr %62, align 4, !tbaa !11
  %4132 = fpext float %4131 to double
  %4133 = load float, ptr %48, align 4, !tbaa !11
  %4134 = fpext float %4133 to double
  %4135 = call double @sqrt(double noundef %4134) #7
  %4136 = fmul double %4132, %4135
  %4137 = fptrunc double %4136 to float
  %4138 = load ptr, ptr %24, align 8, !tbaa !5
  %4139 = load ptr, ptr %21, align 8, !tbaa !5
  %4140 = load i32, ptr %4139, align 4, !tbaa !9
  %4141 = sext i32 %4140 to i64
  %4142 = getelementptr inbounds float, ptr %4138, i64 %4141
  store float %4137, ptr %4142, align 4, !tbaa !11
  br label %4143

4143:                                             ; preds = %4121, %4105
  %4144 = load i32, ptr %59, align 4, !tbaa !9
  %4145 = load i32, ptr %83, align 4, !tbaa !9
  %4146 = icmp slt i32 %4144, %4145
  br i1 %4146, label %4147, label %4158

4147:                                             ; preds = %4143
  %4148 = load float, ptr %85, align 4, !tbaa !11
  %4149 = load float, ptr %109, align 4, !tbaa !11
  %4150 = fcmp ole float %4148, %4149
  br i1 %4150, label %4156, label %4151

4151:                                             ; preds = %4147
  %4152 = load i32, ptr %92, align 4, !tbaa !9
  %4153 = load ptr, ptr %21, align 8, !tbaa !5
  %4154 = load i32, ptr %4153, align 4, !tbaa !9
  %4155 = icmp sle i32 %4152, %4154
  br i1 %4155, label %4156, label %4158

4156:                                             ; preds = %4151, %4147
  %4157 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %4157, ptr %83, align 4, !tbaa !9
  br label %4158

4158:                                             ; preds = %4156, %4151, %4143
  %4159 = load i32, ptr %59, align 4, !tbaa !9
  %4160 = load i32, ptr %83, align 4, !tbaa !9
  %4161 = add nsw i32 %4160, 1
  %4162 = icmp sgt i32 %4159, %4161
  br i1 %4162, label %4163, label %4186

4163:                                             ; preds = %4158
  %4164 = load float, ptr %85, align 4, !tbaa !11
  %4165 = fpext float %4164 to double
  %4166 = load ptr, ptr %21, align 8, !tbaa !5
  %4167 = load i32, ptr %4166, align 4, !tbaa !9
  %4168 = sitofp i32 %4167 to float
  %4169 = fpext float %4168 to double
  %4170 = call double @sqrt(double noundef %4169) #7
  %4171 = load float, ptr %103, align 4, !tbaa !11
  %4172 = fpext float %4171 to double
  %4173 = fmul double %4170, %4172
  %4174 = fcmp olt double %4165, %4173
  br i1 %4174, label %4175, label %4186

4175:                                             ; preds = %4163
  %4176 = load ptr, ptr %21, align 8, !tbaa !5
  %4177 = load i32, ptr %4176, align 4, !tbaa !9
  %4178 = sitofp i32 %4177 to float
  %4179 = load float, ptr %85, align 4, !tbaa !11
  %4180 = fmul float %4178, %4179
  %4181 = load float, ptr %87, align 4, !tbaa !11
  %4182 = fmul float %4180, %4181
  %4183 = load float, ptr %103, align 4, !tbaa !11
  %4184 = fcmp olt float %4182, %4183
  br i1 %4184, label %4185, label %4186

4185:                                             ; preds = %4175
  br label %4197

4186:                                             ; preds = %4175, %4163, %4158
  %4187 = load i32, ptr %91, align 4, !tbaa !9
  %4188 = load i32, ptr %89, align 4, !tbaa !9
  %4189 = icmp sge i32 %4187, %4188
  br i1 %4189, label %4190, label %4191

4190:                                             ; preds = %4186
  br label %4197

4191:                                             ; preds = %4186
  br label %4192

4192:                                             ; preds = %4191
  %4193 = load i32, ptr %59, align 4, !tbaa !9
  %4194 = add nsw i32 %4193, 1
  store i32 %4194, ptr %59, align 4, !tbaa !9
  br label %1551, !llvm.loop !33

4195:                                             ; preds = %1551
  %4196 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 29, ptr %4196, align 4, !tbaa !9
  br label %4199

4197:                                             ; preds = %4190, %4185
  %4198 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 0, ptr %4198, align 4, !tbaa !9
  br label %4199

4199:                                             ; preds = %4197, %4195
  store i32 0, ptr %76, align 4, !tbaa !9
  store i32 0, ptr %77, align 4, !tbaa !9
  %4200 = load ptr, ptr %21, align 8, !tbaa !5
  %4201 = load i32, ptr %4200, align 4, !tbaa !9
  %4202 = sub nsw i32 %4201, 1
  store i32 %4202, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4203

4203:                                             ; preds = %4301, %4199
  %4204 = load i32, ptr %60, align 4, !tbaa !9
  %4205 = load i32, ptr %37, align 4, !tbaa !9
  %4206 = icmp sle i32 %4204, %4205
  br i1 %4206, label %4207, label %4304

4207:                                             ; preds = %4203
  %4208 = load ptr, ptr %21, align 8, !tbaa !5
  %4209 = load i32, ptr %4208, align 4, !tbaa !9
  %4210 = load i32, ptr %60, align 4, !tbaa !9
  %4211 = sub nsw i32 %4209, %4210
  %4212 = add nsw i32 %4211, 1
  store i32 %4212, ptr %38, align 4, !tbaa !9
  %4213 = load ptr, ptr %24, align 8, !tbaa !5
  %4214 = load i32, ptr %60, align 4, !tbaa !9
  %4215 = sext i32 %4214 to i64
  %4216 = getelementptr inbounds float, ptr %4213, i64 %4215
  %4217 = call i32 @isamax_(ptr noundef %38, ptr noundef %4216, ptr noundef @c__1)
  %4218 = load i32, ptr %60, align 4, !tbaa !9
  %4219 = add nsw i32 %4217, %4218
  %4220 = sub nsw i32 %4219, 1
  store i32 %4220, ptr %61, align 4, !tbaa !9
  %4221 = load i32, ptr %60, align 4, !tbaa !9
  %4222 = load i32, ptr %61, align 4, !tbaa !9
  %4223 = icmp ne i32 %4221, %4222
  br i1 %4223, label %4224, label %4277

4224:                                             ; preds = %4207
  %4225 = load ptr, ptr %24, align 8, !tbaa !5
  %4226 = load i32, ptr %60, align 4, !tbaa !9
  %4227 = sext i32 %4226 to i64
  %4228 = getelementptr inbounds float, ptr %4225, i64 %4227
  %4229 = load float, ptr %4228, align 4, !tbaa !11
  store float %4229, ptr %58, align 4, !tbaa !11
  %4230 = load ptr, ptr %24, align 8, !tbaa !5
  %4231 = load i32, ptr %61, align 4, !tbaa !9
  %4232 = sext i32 %4231 to i64
  %4233 = getelementptr inbounds float, ptr %4230, i64 %4232
  %4234 = load float, ptr %4233, align 4, !tbaa !11
  %4235 = load ptr, ptr %24, align 8, !tbaa !5
  %4236 = load i32, ptr %60, align 4, !tbaa !9
  %4237 = sext i32 %4236 to i64
  %4238 = getelementptr inbounds float, ptr %4235, i64 %4237
  store float %4234, ptr %4238, align 4, !tbaa !11
  %4239 = load float, ptr %58, align 4, !tbaa !11
  %4240 = load ptr, ptr %24, align 8, !tbaa !5
  %4241 = load i32, ptr %61, align 4, !tbaa !9
  %4242 = sext i32 %4241 to i64
  %4243 = getelementptr inbounds float, ptr %4240, i64 %4242
  store float %4239, ptr %4243, align 4, !tbaa !11
  %4244 = load ptr, ptr %20, align 8, !tbaa !5
  %4245 = load ptr, ptr %22, align 8, !tbaa !5
  %4246 = load i32, ptr %60, align 4, !tbaa !9
  %4247 = load i32, ptr %33, align 4, !tbaa !9
  %4248 = mul nsw i32 %4246, %4247
  %4249 = add nsw i32 %4248, 1
  %4250 = sext i32 %4249 to i64
  %4251 = getelementptr inbounds %struct.complex, ptr %4245, i64 %4250
  %4252 = load ptr, ptr %22, align 8, !tbaa !5
  %4253 = load i32, ptr %61, align 4, !tbaa !9
  %4254 = load i32, ptr %33, align 4, !tbaa !9
  %4255 = mul nsw i32 %4253, %4254
  %4256 = add nsw i32 %4255, 1
  %4257 = sext i32 %4256 to i64
  %4258 = getelementptr inbounds %struct.complex, ptr %4252, i64 %4257
  call void @cswap_(ptr noundef %4244, ptr noundef %4251, ptr noundef @c__1, ptr noundef %4258, ptr noundef @c__1)
  %4259 = load i32, ptr %71, align 4, !tbaa !9
  %4260 = icmp ne i32 %4259, 0
  br i1 %4260, label %4261, label %4276

4261:                                             ; preds = %4224
  %4262 = load ptr, ptr %26, align 8, !tbaa !5
  %4263 = load i32, ptr %60, align 4, !tbaa !9
  %4264 = load i32, ptr %35, align 4, !tbaa !9
  %4265 = mul nsw i32 %4263, %4264
  %4266 = add nsw i32 %4265, 1
  %4267 = sext i32 %4266 to i64
  %4268 = getelementptr inbounds %struct.complex, ptr %4262, i64 %4267
  %4269 = load ptr, ptr %26, align 8, !tbaa !5
  %4270 = load i32, ptr %61, align 4, !tbaa !9
  %4271 = load i32, ptr %35, align 4, !tbaa !9
  %4272 = mul nsw i32 %4270, %4271
  %4273 = add nsw i32 %4272, 1
  %4274 = sext i32 %4273 to i64
  %4275 = getelementptr inbounds %struct.complex, ptr %4269, i64 %4274
  call void @cswap_(ptr noundef %104, ptr noundef %4268, ptr noundef @c__1, ptr noundef %4275, ptr noundef @c__1)
  br label %4276

4276:                                             ; preds = %4261, %4224
  br label %4277

4277:                                             ; preds = %4276, %4207
  %4278 = load ptr, ptr %24, align 8, !tbaa !5
  %4279 = load i32, ptr %60, align 4, !tbaa !9
  %4280 = sext i32 %4279 to i64
  %4281 = getelementptr inbounds float, ptr %4278, i64 %4280
  %4282 = load float, ptr %4281, align 4, !tbaa !11
  %4283 = fcmp une float %4282, 0.000000e+00
  br i1 %4283, label %4284, label %4300

4284:                                             ; preds = %4277
  %4285 = load i32, ptr %77, align 4, !tbaa !9
  %4286 = add nsw i32 %4285, 1
  store i32 %4286, ptr %77, align 4, !tbaa !9
  %4287 = load ptr, ptr %24, align 8, !tbaa !5
  %4288 = load i32, ptr %60, align 4, !tbaa !9
  %4289 = sext i32 %4288 to i64
  %4290 = getelementptr inbounds float, ptr %4287, i64 %4289
  %4291 = load float, ptr %4290, align 4, !tbaa !11
  %4292 = load float, ptr %101, align 4, !tbaa !11
  %4293 = fmul float %4291, %4292
  %4294 = load float, ptr %67, align 4, !tbaa !11
  %4295 = fcmp ogt float %4293, %4294
  br i1 %4295, label %4296, label %4299

4296:                                             ; preds = %4284
  %4297 = load i32, ptr %76, align 4, !tbaa !9
  %4298 = add nsw i32 %4297, 1
  store i32 %4298, ptr %76, align 4, !tbaa !9
  br label %4299

4299:                                             ; preds = %4296, %4284
  br label %4300

4300:                                             ; preds = %4299, %4277
  br label %4301

4301:                                             ; preds = %4300
  %4302 = load i32, ptr %60, align 4, !tbaa !9
  %4303 = add nsw i32 %4302, 1
  store i32 %4303, ptr %60, align 4, !tbaa !9
  br label %4203, !llvm.loop !34

4304:                                             ; preds = %4203
  %4305 = load ptr, ptr %24, align 8, !tbaa !5
  %4306 = load ptr, ptr %21, align 8, !tbaa !5
  %4307 = load i32, ptr %4306, align 4, !tbaa !9
  %4308 = sext i32 %4307 to i64
  %4309 = getelementptr inbounds float, ptr %4305, i64 %4308
  %4310 = load float, ptr %4309, align 4, !tbaa !11
  %4311 = fcmp une float %4310, 0.000000e+00
  br i1 %4311, label %4312, label %4329

4312:                                             ; preds = %4304
  %4313 = load i32, ptr %77, align 4, !tbaa !9
  %4314 = add nsw i32 %4313, 1
  store i32 %4314, ptr %77, align 4, !tbaa !9
  %4315 = load ptr, ptr %24, align 8, !tbaa !5
  %4316 = load ptr, ptr %21, align 8, !tbaa !5
  %4317 = load i32, ptr %4316, align 4, !tbaa !9
  %4318 = sext i32 %4317 to i64
  %4319 = getelementptr inbounds float, ptr %4315, i64 %4318
  %4320 = load float, ptr %4319, align 4, !tbaa !11
  %4321 = load float, ptr %101, align 4, !tbaa !11
  %4322 = fmul float %4320, %4321
  %4323 = load float, ptr %67, align 4, !tbaa !11
  %4324 = fcmp ogt float %4322, %4323
  br i1 %4324, label %4325, label %4328

4325:                                             ; preds = %4312
  %4326 = load i32, ptr %76, align 4, !tbaa !9
  %4327 = add nsw i32 %4326, 1
  store i32 %4327, ptr %76, align 4, !tbaa !9
  br label %4328

4328:                                             ; preds = %4325, %4312
  br label %4329

4329:                                             ; preds = %4328, %4304
  %4330 = load i32, ptr %68, align 4, !tbaa !9
  %4331 = icmp ne i32 %4330, 0
  br i1 %4331, label %4335, label %4332

4332:                                             ; preds = %4329
  %4333 = load i32, ptr %72, align 4, !tbaa !9
  %4334 = icmp ne i32 %4333, 0
  br i1 %4334, label %4335, label %4359

4335:                                             ; preds = %4332, %4329
  %4336 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %4336, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4337

4337:                                             ; preds = %4355, %4335
  %4338 = load i32, ptr %60, align 4, !tbaa !9
  %4339 = load i32, ptr %37, align 4, !tbaa !9
  %4340 = icmp sle i32 %4338, %4339
  br i1 %4340, label %4341, label %4358

4341:                                             ; preds = %4337
  %4342 = load ptr, ptr %24, align 8, !tbaa !5
  %4343 = load i32, ptr %60, align 4, !tbaa !9
  %4344 = sext i32 %4343 to i64
  %4345 = getelementptr inbounds float, ptr %4342, i64 %4344
  %4346 = load ptr, ptr %20, align 8, !tbaa !5
  %4347 = load ptr, ptr %22, align 8, !tbaa !5
  %4348 = load i32, ptr %60, align 4, !tbaa !9
  %4349 = load i32, ptr %33, align 4, !tbaa !9
  %4350 = mul nsw i32 %4348, %4349
  %4351 = add nsw i32 %4350, 1
  %4352 = sext i32 %4351 to i64
  %4353 = getelementptr inbounds %struct.complex, ptr %4347, i64 %4352
  %4354 = load ptr, ptr %20, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.7, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %4345, ptr noundef @c_b41, ptr noundef %4346, ptr noundef @c__1, ptr noundef %4353, ptr noundef %4354, ptr noundef %52)
  br label %4355

4355:                                             ; preds = %4341
  %4356 = load i32, ptr %60, align 4, !tbaa !9
  %4357 = add nsw i32 %4356, 1
  store i32 %4357, ptr %60, align 4, !tbaa !9
  br label %4337, !llvm.loop !35

4358:                                             ; preds = %4337
  br label %4359

4359:                                             ; preds = %4358, %4332
  %4360 = load i32, ptr %71, align 4, !tbaa !9
  %4361 = icmp ne i32 %4360, 0
  br i1 %4361, label %4362, label %4390

4362:                                             ; preds = %4359
  %4363 = load ptr, ptr %21, align 8, !tbaa !5
  %4364 = load i32, ptr %4363, align 4, !tbaa !9
  store i32 %4364, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4365

4365:                                             ; preds = %4386, %4362
  %4366 = load i32, ptr %60, align 4, !tbaa !9
  %4367 = load i32, ptr %37, align 4, !tbaa !9
  %4368 = icmp sle i32 %4366, %4367
  br i1 %4368, label %4369, label %4389

4369:                                             ; preds = %4365
  %4370 = load ptr, ptr %26, align 8, !tbaa !5
  %4371 = load i32, ptr %60, align 4, !tbaa !9
  %4372 = load i32, ptr %35, align 4, !tbaa !9
  %4373 = mul nsw i32 %4371, %4372
  %4374 = add nsw i32 %4373, 1
  %4375 = sext i32 %4374 to i64
  %4376 = getelementptr inbounds %struct.complex, ptr %4370, i64 %4375
  %4377 = call float @scnrm2_(ptr noundef %104, ptr noundef %4376, ptr noundef @c__1)
  %4378 = fdiv float 1.000000e+00, %4377
  store float %4378, ptr %58, align 4, !tbaa !11
  %4379 = load ptr, ptr %26, align 8, !tbaa !5
  %4380 = load i32, ptr %60, align 4, !tbaa !9
  %4381 = load i32, ptr %35, align 4, !tbaa !9
  %4382 = mul nsw i32 %4380, %4381
  %4383 = add nsw i32 %4382, 1
  %4384 = sext i32 %4383 to i64
  %4385 = getelementptr inbounds %struct.complex, ptr %4379, i64 %4384
  call void @csscal_(ptr noundef %104, ptr noundef %58, ptr noundef %4385, ptr noundef @c__1)
  br label %4386

4386:                                             ; preds = %4369
  %4387 = load i32, ptr %60, align 4, !tbaa !9
  %4388 = add nsw i32 %4387, 1
  store i32 %4388, ptr %60, align 4, !tbaa !9
  br label %4365, !llvm.loop !36

4389:                                             ; preds = %4365
  br label %4390

4390:                                             ; preds = %4389, %4359
  %4391 = load float, ptr %101, align 4, !tbaa !11
  %4392 = fcmp ogt float %4391, 1.000000e+00
  br i1 %4392, label %4393, label %4401

4393:                                             ; preds = %4390
  %4394 = load ptr, ptr %24, align 8, !tbaa !5
  %4395 = getelementptr inbounds float, ptr %4394, i64 1
  %4396 = load float, ptr %4395, align 4, !tbaa !11
  %4397 = load float, ptr %94, align 4, !tbaa !11
  %4398 = load float, ptr %101, align 4, !tbaa !11
  %4399 = fdiv float %4397, %4398
  %4400 = fcmp olt float %4396, %4399
  br i1 %4400, label %4420, label %4401

4401:                                             ; preds = %4393, %4390
  %4402 = load float, ptr %101, align 4, !tbaa !11
  %4403 = fcmp olt float %4402, 1.000000e+00
  br i1 %4403, label %4404, label %4443

4404:                                             ; preds = %4401
  %4405 = load ptr, ptr %24, align 8, !tbaa !5
  %4406 = load i32, ptr %76, align 4, !tbaa !9
  %4407 = icmp sge i32 %4406, 1
  br i1 %4407, label %4408, label %4410

4408:                                             ; preds = %4404
  %4409 = load i32, ptr %76, align 4, !tbaa !9
  br label %4411

4410:                                             ; preds = %4404
  br label %4411

4411:                                             ; preds = %4410, %4408
  %4412 = phi i32 [ %4409, %4408 ], [ 1, %4410 ]
  %4413 = sext i32 %4412 to i64
  %4414 = getelementptr inbounds float, ptr %4405, i64 %4413
  %4415 = load float, ptr %4414, align 4, !tbaa !11
  %4416 = load float, ptr %67, align 4, !tbaa !11
  %4417 = load float, ptr %101, align 4, !tbaa !11
  %4418 = fdiv float %4416, %4417
  %4419 = fcmp ogt float %4415, %4418
  br i1 %4419, label %4420, label %4443

4420:                                             ; preds = %4411, %4393
  %4421 = load ptr, ptr %21, align 8, !tbaa !5
  %4422 = load i32, ptr %4421, align 4, !tbaa !9
  store i32 %4422, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4423

4423:                                             ; preds = %4439, %4420
  %4424 = load i32, ptr %60, align 4, !tbaa !9
  %4425 = load i32, ptr %37, align 4, !tbaa !9
  %4426 = icmp sle i32 %4424, %4425
  br i1 %4426, label %4427, label %4442

4427:                                             ; preds = %4423
  %4428 = load float, ptr %101, align 4, !tbaa !11
  %4429 = load ptr, ptr %24, align 8, !tbaa !5
  %4430 = load i32, ptr %60, align 4, !tbaa !9
  %4431 = sext i32 %4430 to i64
  %4432 = getelementptr inbounds float, ptr %4429, i64 %4431
  %4433 = load float, ptr %4432, align 4, !tbaa !11
  %4434 = fmul float %4428, %4433
  %4435 = load ptr, ptr %24, align 8, !tbaa !5
  %4436 = load i32, ptr %60, align 4, !tbaa !9
  %4437 = sext i32 %4436 to i64
  %4438 = getelementptr inbounds float, ptr %4435, i64 %4437
  store float %4434, ptr %4438, align 4, !tbaa !11
  br label %4439

4439:                                             ; preds = %4427
  %4440 = load i32, ptr %60, align 4, !tbaa !9
  %4441 = add nsw i32 %4440, 1
  store i32 %4441, ptr %60, align 4, !tbaa !9
  br label %4423, !llvm.loop !37

4442:                                             ; preds = %4423
  store float 1.000000e+00, ptr %101, align 4, !tbaa !11
  br label %4443

4443:                                             ; preds = %4442, %4411, %4401
  %4444 = load float, ptr %101, align 4, !tbaa !11
  %4445 = load ptr, ptr %30, align 8, !tbaa !5
  %4446 = getelementptr inbounds float, ptr %4445, i64 1
  store float %4444, ptr %4446, align 4, !tbaa !11
  %4447 = load i32, ptr %77, align 4, !tbaa !9
  %4448 = sitofp i32 %4447 to float
  %4449 = load ptr, ptr %30, align 8, !tbaa !5
  %4450 = getelementptr inbounds float, ptr %4449, i64 2
  store float %4448, ptr %4450, align 4, !tbaa !11
  %4451 = load i32, ptr %76, align 4, !tbaa !9
  %4452 = sitofp i32 %4451 to float
  %4453 = load ptr, ptr %30, align 8, !tbaa !5
  %4454 = getelementptr inbounds float, ptr %4453, i64 3
  store float %4452, ptr %4454, align 4, !tbaa !11
  %4455 = load i32, ptr %59, align 4, !tbaa !9
  %4456 = sitofp i32 %4455 to float
  %4457 = load ptr, ptr %30, align 8, !tbaa !5
  %4458 = getelementptr inbounds float, ptr %4457, i64 4
  store float %4456, ptr %4458, align 4, !tbaa !11
  %4459 = load float, ptr %85, align 4, !tbaa !11
  %4460 = load ptr, ptr %30, align 8, !tbaa !5
  %4461 = getelementptr inbounds float, ptr %4460, i64 5
  store float %4459, ptr %4461, align 4, !tbaa !11
  %4462 = load float, ptr %87, align 4, !tbaa !11
  %4463 = load ptr, ptr %30, align 8, !tbaa !5
  %4464 = getelementptr inbounds float, ptr %4463, i64 6
  store float %4462, ptr %4464, align 4, !tbaa !11
  store i32 1, ptr %110, align 4
  br label %4465

4465:                                             ; preds = %4443, %860, %814, %681, %598, %513, %442, %380, %366, %337
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #7
  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 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

; 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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !12, i64 0}
!14 = !{!"", !12, i64 0, !12, i64 4}
!15 = !{!14, !12, i64 4}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = distinct !{!31, !17}
!32 = distinct !{!32, !17}
!33 = distinct !{!33, !17}
!34 = distinct !{!34, !17}
!35 = distinct !{!35, !17}
!36 = distinct !{!36, !17}
!37 = distinct !{!37, !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 [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [12 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c__1 = external hidden global i32, align 4
@c__0 = external hidden global i32, align 4
@c_b41 = external hidden global float, align 4
@c__2 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @cgesvj_(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 nocapture noundef readonly %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr nocapture noundef readonly %12, ptr nocapture noundef %13, ptr nocapture noundef readonly %14, ptr nocapture noundef writeonly %15) local_unnamed_addr #0 {
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.complex, align 8
  %22 = alloca %struct.complex, align 8
  %23 = alloca %struct.complex, align 8
  %24 = alloca float, align 4
  %25 = alloca %struct.complex, align 8
  %26 = alloca float, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.complex, align 8
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #10
  %40 = getelementptr inbounds i8, ptr %7, i64 -4
  %41 = load i32, ptr %6, align 4, !tbaa !5
  %narrow1412 = xor i32 %41, -1
  %42 = sext i32 %narrow1412 to i64
  %43 = getelementptr inbounds %struct.complex, ptr %5, i64 %42
  %44 = load i32, ptr %10, align 4, !tbaa !5
  %narrow = xor i32 %44, -1
  %45 = sext i32 %narrow to i64
  %46 = getelementptr inbounds %struct.complex, ptr %9, i64 %45
  %47 = getelementptr inbounds i8, ptr %11, i64 -8
  %48 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #10
  %.not = icmp eq i32 %48, 0
  br i1 %.not, label %49, label %52

49:                                               ; preds = %16
  %50 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #10
  %51 = icmp ne i32 %50, 0
  br label %52

52:                                               ; preds = %49, %16
  %53 = phi i1 [ true, %16 ], [ %51, %49 ]
  %54 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #10
  %55 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.3) #10
  %.not1344 = icmp eq i32 %55, 0
  br i1 %.not1344, label %56, label %59

56:                                               ; preds = %52
  %57 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #10
  %58 = icmp ne i32 %57, 0
  br label %59

59:                                               ; preds = %56, %52
  %60 = phi i1 [ true, %52 ], [ %58, %56 ]
  %61 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #10
  %62 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #10
  %63 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #10
  %64 = load i32, ptr %12, align 4, !tbaa !5
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %69, label %66

66:                                               ; preds = %59
  %67 = load i32, ptr %14, align 4, !tbaa !5
  %68 = icmp eq i32 %67, -1
  br label %69

69:                                               ; preds = %66, %59
  %70 = phi i1 [ true, %59 ], [ %68, %66 ]
  %71 = icmp ne i32 %62, 0
  %72 = icmp ne i32 %63, 0
  %or.cond = select i1 %71, i1 true, i1 %72
  br i1 %or.cond, label %75, label %73

73:                                               ; preds = %69
  %74 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.7) #10
  %.not1345 = icmp eq i32 %74, 0
  br i1 %.not1345, label %113, label %75

75:                                               ; preds = %73, %69
  %76 = icmp ne i32 %54, 0
  %or.cond3 = select i1 %53, i1 true, i1 %76
  br i1 %or.cond3, label %79, label %77

77:                                               ; preds = %75
  %78 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.8) #10
  %.not1346 = icmp eq i32 %78, 0
  br i1 %.not1346, label %113, label %79

79:                                               ; preds = %77, %75
  %80 = icmp ne i32 %61, 0
  %or.cond5 = select i1 %60, i1 true, i1 %80
  br i1 %or.cond5, label %83, label %81

81:                                               ; preds = %79
  %82 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.8) #10
  %.not1347 = icmp eq i32 %82, 0
  br i1 %.not1347, label %113, label %83

83:                                               ; preds = %81, %79
  %84 = load i32, ptr %3, align 4, !tbaa !5
  %85 = icmp slt i32 %84, 0
  br i1 %85, label %113, label %86

86:                                               ; preds = %83
  %87 = load i32, ptr %4, align 4, !tbaa !5
  %or.cond1416 = icmp ugt i32 %87, %84
  br i1 %or.cond1416, label %113, label %88

88:                                               ; preds = %86
  %89 = load i32, ptr %6, align 4, !tbaa !5
  %90 = icmp slt i32 %89, %84
  br i1 %90, label %113, label %91

91:                                               ; preds = %88
  %92 = load i32, ptr %8, align 4, !tbaa !5
  %93 = icmp slt i32 %92, 0
  br i1 %93, label %113, label %94

94:                                               ; preds = %91
  br i1 %60, label %95, label %98

95:                                               ; preds = %94
  %96 = load i32, ptr %10, align 4, !tbaa !5
  %97 = icmp slt i32 %96, %87
  br i1 %97, label %113, label %98

98:                                               ; preds = %95, %94
  br i1 %80, label %99, label %102

99:                                               ; preds = %98
  %100 = load i32, ptr %10, align 4, !tbaa !5
  %101 = icmp slt i32 %100, %92
  br i1 %101, label %113, label %102

102:                                              ; preds = %99, %98
  br i1 %76, label %103, label %106

103:                                              ; preds = %102
  %104 = load float, ptr %13, align 4, !tbaa !9
  %105 = fcmp ugt float %104, 1.000000e+00
  br i1 %105, label %106, label %113

106:                                              ; preds = %103, %102
  %107 = load i32, ptr %12, align 4, !tbaa !5
  %108 = add nuw nsw i32 %87, %84
  %109 = icmp sge i32 %107, %108
  %or.cond7 = select i1 %109, i1 true, i1 %70
  br i1 %or.cond7, label %110, label %113

110:                                              ; preds = %106
  %111 = load i32, ptr %14, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %87, i32 6)
  %112 = icmp sge i32 %111, %spec.select
  %or.cond9 = select i1 %112, i1 true, i1 %70
  br i1 %or.cond9, label %115, label %113

113:                                              ; preds = %110, %106, %103, %95, %99, %91, %88, %86, %83, %81, %77, %73
  %.sink1968 = phi i32 [ -1, %73 ], [ -2, %77 ], [ -3, %81 ], [ -4, %83 ], [ -5, %86 ], [ -7, %88 ], [ -9, %91 ], [ -11, %99 ], [ -11, %95 ], [ -12, %103 ], [ -13, %106 ], [ -15, %110 ]
  %.ph.neg = phi i32 [ 1, %73 ], [ 2, %77 ], [ 3, %81 ], [ 4, %83 ], [ 5, %86 ], [ 7, %88 ], [ 9, %91 ], [ 11, %99 ], [ 11, %95 ], [ 12, %103 ], [ 13, %106 ], [ 15, %110 ]
  store i32 %.sink1968, ptr %15, align 4, !tbaa !5
  store i32 %.ph.neg, ptr %17, align 4, !tbaa !5
  %114 = call i32 @xerbla_(ptr noundef nonnull @.str.9, ptr noundef nonnull %17, i32 noundef 6) #10
  br label %1655

115:                                              ; preds = %110
  store i32 0, ptr %15, align 4, !tbaa !5
  %116 = load i32, ptr %3, align 4, !tbaa !5
  br i1 %70, label %117, label %125

117:                                              ; preds = %115
  %118 = load i32, ptr %4, align 4, !tbaa !5
  %119 = add nsw i32 %118, %116
  %120 = sitofp i32 %119 to float
  store float %120, ptr %11, align 4, !tbaa !11
  %121 = getelementptr inbounds i8, ptr %11, i64 4
  store float 0.000000e+00, ptr %121, align 4, !tbaa !13
  %122 = icmp sgt i32 %118, 5
  %123 = uitofp nneg i32 %118 to float
  %124 = select i1 %122, float %123, float 6.000000e+00
  store float %124, ptr %13, align 4, !tbaa !9
  br label %1655

125:                                              ; preds = %115
  %126 = icmp eq i32 %116, 0
  br i1 %126, label %1655, label %127

127:                                              ; preds = %125
  %128 = load i32, ptr %4, align 4, !tbaa !5
  %129 = icmp eq i32 %128, 0
  br i1 %129, label %1655, label %130

130:                                              ; preds = %127
  br i1 %76, label %131, label %133

131:                                              ; preds = %130
  %132 = load float, ptr %13, align 4, !tbaa !9
  br label %136

133:                                              ; preds = %130
  %or.cond11 = select i1 %53, i1 true, i1 %60
  %or.cond13 = select i1 %or.cond11, i1 true, i1 %80
  %134 = sitofp i32 %116 to float
  br i1 %or.cond13, label %135, label %136

135:                                              ; preds = %133
  %sqrtf = tail call float @sqrtf(float noundef %134) #3
  br label %136

136:                                              ; preds = %133, %135, %131
  %.0 = phi float [ %132, %131 ], [ %sqrtf, %135 ], [ %134, %133 ]
  %137 = tail call float @slamch_(ptr noundef nonnull @.str.10) #10
  store float %137, ptr %33, align 4, !tbaa !9
  %sqrtf1349 = tail call float @sqrtf(float noundef %137) #3
  %138 = tail call float @slamch_(ptr noundef nonnull @.str.11) #10
  store float %138, ptr %32, align 4, !tbaa !9
  %sqrtf1350 = tail call float @sqrtf(float noundef %138) #3
  %139 = fdiv float %138, %137
  %140 = fdiv float 1.000000e+00, %138
  %141 = fdiv float 1.000000e+00, %sqrtf1350
  %142 = fdiv float 1.000000e+00, %sqrtf1349
  %143 = fmul float %.0, %137
  store float %143, ptr %38, align 4, !tbaa !9
  %sqrtf1351 = tail call float @sqrtf(float noundef %143) #3
  %144 = load i32, ptr %3, align 4, !tbaa !5
  %145 = sitofp i32 %144 to float
  %146 = fmul float %137, %145
  %147 = fcmp ult float %146, 1.000000e+00
  br i1 %147, label %150, label %148

148:                                              ; preds = %136
  store i32 -4, ptr %15, align 4, !tbaa !5
  store i32 4, ptr %17, align 4, !tbaa !5
  %149 = call i32 @xerbla_(ptr noundef nonnull @.str.9, ptr noundef nonnull %17, i32 noundef 6) #10
  br label %1655

150:                                              ; preds = %136
  br i1 %60, label %151, label %153

151:                                              ; preds = %150
  %152 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %152, ptr %39, align 4, !tbaa !5
  call void @claset_(ptr noundef nonnull @.str.5, ptr noundef nonnull %39, ptr noundef nonnull %4, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %9, ptr noundef nonnull %10) #10
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %.pre1945 = sitofp i32 %.pre to float
  br label %156

153:                                              ; preds = %150
  %.not1352 = icmp eq i32 %61, 0
  br i1 %.not1352, label %156, label %154

154:                                              ; preds = %153
  %155 = load i32, ptr %8, align 4, !tbaa !5
  store i32 %155, ptr %39, align 4, !tbaa !5
  br label %156

156:                                              ; preds = %153, %154, %151
  %.pre-phi = phi float [ %145, %153 ], [ %145, %154 ], [ %.pre1945, %151 ]
  %157 = load i32, ptr %4, align 4, !tbaa !5
  %158 = sitofp i32 %157 to float
  %159 = fmul float %.pre-phi, %158
  %160 = fpext float %159 to double
  %161 = call double @sqrt(double noundef %160) #10
  %162 = fdiv double 1.000000e+00, %161
  %163 = fptrunc double %162 to float
  store float %163, ptr %37, align 4, !tbaa !9
  %164 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %164, ptr %17, align 4, !tbaa !5
  br i1 %72, label %165, label %209

165:                                              ; preds = %156
  store i32 1, ptr %30, align 4, !tbaa !5
  %.not13631532 = icmp slt i32 %164, 1
  br i1 %.not13631532, label %.loopexit1465.thread, label %.lr.ph1536

.lr.ph1536:                                       ; preds = %165
  %166 = add i32 %41, 1
  br label %167

167:                                              ; preds = %.lr.ph1536, %.loopexit1464
  %.011921535 = phi i32 [ 1, %.lr.ph1536 ], [ %.11193, %.loopexit1464 ]
  %.011991534 = phi i32 [ 1, %.lr.ph1536 ], [ %.11200, %.loopexit1464 ]
  %storemerge13621533 = phi i32 [ 1, %.lr.ph1536 ], [ %207, %.loopexit1464 ]
  store float 0.000000e+00, ptr %24, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %168 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %168, %storemerge13621533
  %169 = add i32 %reass.sub, 1
  store i32 %169, ptr %18, align 4, !tbaa !5
  %170 = mul i32 %storemerge13621533, %166
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds %struct.complex, ptr %43, i64 %171
  call void @classq_(ptr noundef nonnull %18, ptr noundef %172, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef nonnull %26) #10
  %173 = load float, ptr %24, align 4, !tbaa !9
  %174 = fcmp ogt float %173, %140
  br i1 %174, label %175, label %177

175:                                              ; preds = %167
  store i32 -6, ptr %15, align 4, !tbaa !5
  store i32 6, ptr %18, align 4, !tbaa !5
  %176 = call i32 @xerbla_(ptr noundef nonnull @.str.9, ptr noundef nonnull %18, i32 noundef 6) #10
  br label %1655

177:                                              ; preds = %167
  %178 = load float, ptr %26, align 4, !tbaa !9
  %sqrtf1413 = call float @sqrtf(float noundef %178) #3
  store float %sqrtf1413, ptr %26, align 4, !tbaa !9
  %179 = load float, ptr %24, align 4, !tbaa !9
  %180 = fdiv float %140, %sqrtf1413
  %181 = fcmp olt float %179, %180
  %182 = icmp ne i32 %.011921535, 0
  %or.cond15 = and i1 %182, %181
  br i1 %or.cond15, label %183, label %188

183:                                              ; preds = %177
  %184 = fmul float %sqrtf1413, %179
  %185 = load i32, ptr %30, align 4, !tbaa !5
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds float, ptr %40, i64 %186
  store float %184, ptr %187, align 4, !tbaa !9
  br label %.loopexit1464

188:                                              ; preds = %177
  %189 = load float, ptr %37, align 4, !tbaa !9
  %190 = fmul float %sqrtf1413, %189
  %191 = fmul float %179, %190
  %192 = load i32, ptr %30, align 4, !tbaa !5
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds float, ptr %40, i64 %193
  store float %191, ptr %194, align 4, !tbaa !9
  %.not1414 = icmp eq i32 %.011991534, 0
  br i1 %.not1414, label %.loopexit1464, label %195

195:                                              ; preds = %188
  %196 = add nsw i32 %192, -1
  store i32 %196, ptr %18, align 4, !tbaa !5
  %.not1415.not1529 = icmp sgt i32 %192, 1
  br i1 %.not1415.not1529, label %.lr.ph1531.preheader, label %.loopexit1464

.lr.ph1531.preheader:                             ; preds = %195
  %wide.trip.count1894 = zext nneg i32 %192 to i64
  %197 = add nsw i64 %wide.trip.count1894, -1
  %min.iters.check2021 = icmp ult i32 %192, 9
  br i1 %min.iters.check2021, label %.lr.ph1531.preheader2101, label %vector.ph2022

vector.ph2022:                                    ; preds = %.lr.ph1531.preheader
  %n.vec2024 = and i64 %197, -8
  %ind.end2025 = or disjoint i64 %n.vec2024, 1
  %broadcast.splatinsert2032 = insertelement <4 x float> poison, float %189, i64 0
  %broadcast.splat2033 = shufflevector <4 x float> %broadcast.splatinsert2032, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2027

vector.body2027:                                  ; preds = %vector.body2027, %vector.ph2022
  %index2028 = phi i64 [ 0, %vector.ph2022 ], [ %index.next2034, %vector.body2027 ]
  %198 = getelementptr float, ptr %7, i64 %index2028
  %199 = getelementptr inbounds i8, ptr %198, i64 16
  %wide.load2030 = load <4 x float>, ptr %198, align 4, !tbaa !9
  %wide.load2031 = load <4 x float>, ptr %199, align 4, !tbaa !9
  %200 = fmul <4 x float> %broadcast.splat2033, %wide.load2030
  %201 = fmul <4 x float> %broadcast.splat2033, %wide.load2031
  store <4 x float> %200, ptr %198, align 4, !tbaa !9
  store <4 x float> %201, ptr %199, align 4, !tbaa !9
  %index.next2034 = add nuw i64 %index2028, 8
  %202 = icmp eq i64 %index.next2034, %n.vec2024
  br i1 %202, label %middle.block2019, label %vector.body2027, !llvm.loop !14

middle.block2019:                                 ; preds = %vector.body2027
  %cmp.n2035 = icmp eq i64 %197, %n.vec2024
  br i1 %cmp.n2035, label %.loopexit1464, label %.lr.ph1531.preheader2101

.lr.ph1531.preheader2101:                         ; preds = %middle.block2019, %.lr.ph1531.preheader
  %indvars.iv1891.ph = phi i64 [ 1, %.lr.ph1531.preheader ], [ %ind.end2025, %middle.block2019 ]
  br label %.lr.ph1531

.lr.ph1531:                                       ; preds = %.lr.ph1531.preheader2101, %.lr.ph1531
  %indvars.iv1891 = phi i64 [ %indvars.iv.next1892, %.lr.ph1531 ], [ %indvars.iv1891.ph, %.lr.ph1531.preheader2101 ]
  %203 = getelementptr inbounds float, ptr %40, i64 %indvars.iv1891
  %204 = load float, ptr %203, align 4, !tbaa !9
  %205 = fmul float %189, %204
  store float %205, ptr %203, align 4, !tbaa !9
  %indvars.iv.next1892 = add nuw nsw i64 %indvars.iv1891, 1
  %exitcond1895.not = icmp eq i64 %indvars.iv.next1892, %wide.trip.count1894
  br i1 %exitcond1895.not, label %.loopexit1464, label %.lr.ph1531, !llvm.loop !18

.loopexit1464:                                    ; preds = %.lr.ph1531, %middle.block2019, %195, %183, %188
  %206 = phi i32 [ %185, %183 ], [ %192, %188 ], [ %192, %195 ], [ %192, %middle.block2019 ], [ %192, %.lr.ph1531 ]
  %.11200 = phi i32 [ %.011991534, %183 ], [ 0, %188 ], [ 0, %195 ], [ 0, %middle.block2019 ], [ 0, %.lr.ph1531 ]
  %.11193 = phi i32 [ 1, %183 ], [ 0, %188 ], [ 0, %195 ], [ 0, %middle.block2019 ], [ 0, %.lr.ph1531 ]
  %207 = add nsw i32 %206, 1
  store i32 %207, ptr %30, align 4, !tbaa !5
  %208 = load i32, ptr %17, align 4, !tbaa !5
  %.not1363.not = icmp slt i32 %206, %208
  br i1 %.not1363.not, label %167, label %.loopexit1465, !llvm.loop !19

209:                                              ; preds = %156
  %invariant.gep1521 = getelementptr i8, ptr %43, i64 8
  store i32 1, ptr %30, align 4, !tbaa !5
  %.not13581523 = icmp slt i32 %164, 1
  br i1 %71, label %210, label %249

210:                                              ; preds = %209
  br i1 %.not13581523, label %.loopexit1465.thread, label %.lr.ph1527

.lr.ph1527:                                       ; preds = %210, %.loopexit1466
  %.211941526 = phi i32 [ %.31195, %.loopexit1466 ], [ 1, %210 ]
  %.212011525 = phi i32 [ %.31202, %.loopexit1466 ], [ 1, %210 ]
  %storemerge13571524 = phi i32 [ %247, %.loopexit1466 ], [ 1, %210 ]
  store float 0.000000e+00, ptr %24, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %211 = mul nsw i32 %storemerge13571524, %41
  %212 = sext i32 %211 to i64
  %gep1522 = getelementptr %struct.complex, ptr %invariant.gep1521, i64 %212
  call void @classq_(ptr noundef nonnull %30, ptr noundef %gep1522, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef nonnull %26) #10
  %213 = load float, ptr %24, align 4, !tbaa !9
  %214 = fcmp ogt float %213, %140
  br i1 %214, label %215, label %217

215:                                              ; preds = %.lr.ph1527
  store i32 -6, ptr %15, align 4, !tbaa !5
  store i32 6, ptr %18, align 4, !tbaa !5
  %216 = call i32 @xerbla_(ptr noundef nonnull @.str.9, ptr noundef nonnull %18, i32 noundef 6) #10
  br label %1655

217:                                              ; preds = %.lr.ph1527
  %218 = load float, ptr %26, align 4, !tbaa !9
  %sqrtf1359 = call float @sqrtf(float noundef %218) #3
  store float %sqrtf1359, ptr %26, align 4, !tbaa !9
  %219 = load float, ptr %24, align 4, !tbaa !9
  %220 = fdiv float %140, %sqrtf1359
  %221 = fcmp olt float %219, %220
  %222 = icmp ne i32 %.211941526, 0
  %or.cond17 = and i1 %222, %221
  br i1 %or.cond17, label %223, label %228

223:                                              ; preds = %217
  %224 = fmul float %sqrtf1359, %219
  %225 = load i32, ptr %30, align 4, !tbaa !5
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds float, ptr %40, i64 %226
  store float %224, ptr %227, align 4, !tbaa !9
  br label %.loopexit1466

228:                                              ; preds = %217
  %229 = load float, ptr %37, align 4, !tbaa !9
  %230 = fmul float %sqrtf1359, %229
  %231 = fmul float %219, %230
  %232 = load i32, ptr %30, align 4, !tbaa !5
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds float, ptr %40, i64 %233
  store float %231, ptr %234, align 4, !tbaa !9
  %.not1360 = icmp eq i32 %.212011525, 0
  br i1 %.not1360, label %.loopexit1466, label %235

235:                                              ; preds = %228
  %236 = add nsw i32 %232, -1
  store i32 %236, ptr %18, align 4, !tbaa !5
  %.not1361.not1518 = icmp sgt i32 %232, 1
  br i1 %.not1361.not1518, label %.lr.ph1520.preheader, label %.loopexit1466

.lr.ph1520.preheader:                             ; preds = %235
  %wide.trip.count1889 = zext nneg i32 %232 to i64
  %237 = add nsw i64 %wide.trip.count1889, -1
  %min.iters.check2004 = icmp ult i32 %232, 9
  br i1 %min.iters.check2004, label %.lr.ph1520.preheader2102, label %vector.ph2005

vector.ph2005:                                    ; preds = %.lr.ph1520.preheader
  %n.vec2007 = and i64 %237, -8
  %ind.end2008 = or disjoint i64 %n.vec2007, 1
  %broadcast.splatinsert2015 = insertelement <4 x float> poison, float %229, i64 0
  %broadcast.splat2016 = shufflevector <4 x float> %broadcast.splatinsert2015, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2010

vector.body2010:                                  ; preds = %vector.body2010, %vector.ph2005
  %index2011 = phi i64 [ 0, %vector.ph2005 ], [ %index.next2017, %vector.body2010 ]
  %238 = getelementptr float, ptr %7, i64 %index2011
  %239 = getelementptr inbounds i8, ptr %238, i64 16
  %wide.load2013 = load <4 x float>, ptr %238, align 4, !tbaa !9
  %wide.load2014 = load <4 x float>, ptr %239, align 4, !tbaa !9
  %240 = fmul <4 x float> %broadcast.splat2016, %wide.load2013
  %241 = fmul <4 x float> %broadcast.splat2016, %wide.load2014
  store <4 x float> %240, ptr %238, align 4, !tbaa !9
  store <4 x float> %241, ptr %239, align 4, !tbaa !9
  %index.next2017 = add nuw i64 %index2011, 8
  %242 = icmp eq i64 %index.next2017, %n.vec2007
  br i1 %242, label %middle.block2002, label %vector.body2010, !llvm.loop !20

middle.block2002:                                 ; preds = %vector.body2010
  %cmp.n2018 = icmp eq i64 %237, %n.vec2007
  br i1 %cmp.n2018, label %.loopexit1466, label %.lr.ph1520.preheader2102

.lr.ph1520.preheader2102:                         ; preds = %middle.block2002, %.lr.ph1520.preheader
  %indvars.iv1886.ph = phi i64 [ 1, %.lr.ph1520.preheader ], [ %ind.end2008, %middle.block2002 ]
  br label %.lr.ph1520

.lr.ph1520:                                       ; preds = %.lr.ph1520.preheader2102, %.lr.ph1520
  %indvars.iv1886 = phi i64 [ %indvars.iv.next1887, %.lr.ph1520 ], [ %indvars.iv1886.ph, %.lr.ph1520.preheader2102 ]
  %243 = getelementptr inbounds float, ptr %40, i64 %indvars.iv1886
  %244 = load float, ptr %243, align 4, !tbaa !9
  %245 = fmul float %229, %244
  store float %245, ptr %243, align 4, !tbaa !9
  %indvars.iv.next1887 = add nuw nsw i64 %indvars.iv1886, 1
  %exitcond1890.not = icmp eq i64 %indvars.iv.next1887, %wide.trip.count1889
  br i1 %exitcond1890.not, label %.loopexit1466, label %.lr.ph1520, !llvm.loop !21

.loopexit1466:                                    ; preds = %.lr.ph1520, %middle.block2002, %235, %223, %228
  %246 = phi i32 [ %225, %223 ], [ %232, %228 ], [ %232, %235 ], [ %232, %middle.block2002 ], [ %232, %.lr.ph1520 ]
  %.31202 = phi i32 [ %.212011525, %223 ], [ 0, %228 ], [ 0, %235 ], [ 0, %middle.block2002 ], [ 0, %.lr.ph1520 ]
  %.31195 = phi i32 [ 1, %223 ], [ 0, %228 ], [ 0, %235 ], [ 0, %middle.block2002 ], [ 0, %.lr.ph1520 ]
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr %30, align 4, !tbaa !5
  %248 = load i32, ptr %17, align 4, !tbaa !5
  %.not1358.not = icmp slt i32 %246, %248
  br i1 %.not1358.not, label %.lr.ph1527, label %.loopexit1465, !llvm.loop !22

249:                                              ; preds = %209
  br i1 %.not13581523, label %.loopexit1465.thread, label %.lr.ph1517

.lr.ph1517:                                       ; preds = %249, %.loopexit1468
  %.411961516 = phi i32 [ %.51197, %.loopexit1468 ], [ 1, %249 ]
  %.412031515 = phi i32 [ %.51204, %.loopexit1468 ], [ 1, %249 ]
  %storemerge1514 = phi i32 [ %286, %.loopexit1468 ], [ 1, %249 ]
  store float 0.000000e+00, ptr %24, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %250 = mul nsw i32 %storemerge1514, %41
  %251 = sext i32 %250 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep1521, i64 %251
  call void @classq_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef nonnull %26) #10
  %252 = load float, ptr %24, align 4, !tbaa !9
  %253 = fcmp ogt float %252, %140
  br i1 %253, label %254, label %256

254:                                              ; preds = %.lr.ph1517
  store i32 -6, ptr %15, align 4, !tbaa !5
  store i32 6, ptr %18, align 4, !tbaa !5
  %255 = call i32 @xerbla_(ptr noundef nonnull @.str.9, ptr noundef nonnull %18, i32 noundef 6) #10
  br label %1655

256:                                              ; preds = %.lr.ph1517
  %257 = load float, ptr %26, align 4, !tbaa !9
  %sqrtf1354 = call float @sqrtf(float noundef %257) #3
  store float %sqrtf1354, ptr %26, align 4, !tbaa !9
  %258 = load float, ptr %24, align 4, !tbaa !9
  %259 = fdiv float %140, %sqrtf1354
  %260 = fcmp olt float %258, %259
  %261 = icmp ne i32 %.411961516, 0
  %or.cond19 = and i1 %261, %260
  br i1 %or.cond19, label %262, label %267

262:                                              ; preds = %256
  %263 = fmul float %sqrtf1354, %258
  %264 = load i32, ptr %30, align 4, !tbaa !5
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds float, ptr %40, i64 %265
  store float %263, ptr %266, align 4, !tbaa !9
  br label %.loopexit1468

267:                                              ; preds = %256
  %268 = load float, ptr %37, align 4, !tbaa !9
  %269 = fmul float %sqrtf1354, %268
  %270 = fmul float %258, %269
  %271 = load i32, ptr %30, align 4, !tbaa !5
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds float, ptr %40, i64 %272
  store float %270, ptr %273, align 4, !tbaa !9
  %.not1355 = icmp eq i32 %.412031515, 0
  br i1 %.not1355, label %.loopexit1468, label %274

274:                                              ; preds = %267
  %275 = add nsw i32 %271, -1
  store i32 %275, ptr %18, align 4, !tbaa !5
  %.not1356.not1511 = icmp sgt i32 %271, 1
  br i1 %.not1356.not1511, label %.lr.ph.preheader, label %.loopexit1468

.lr.ph.preheader:                                 ; preds = %274
  %wide.trip.count = zext nneg i32 %271 to i64
  %276 = add nsw i64 %wide.trip.count, -1
  %min.iters.check = icmp ult i32 %271, 9
  br i1 %min.iters.check, label %.lr.ph.preheader2104, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %276, -8
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %268, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %277 = getelementptr float, ptr %7, i64 %index
  %278 = getelementptr inbounds i8, ptr %277, i64 16
  %wide.load = load <4 x float>, ptr %277, align 4, !tbaa !9
  %wide.load2001 = load <4 x float>, ptr %278, align 4, !tbaa !9
  %279 = fmul <4 x float> %broadcast.splat, %wide.load
  %280 = fmul <4 x float> %broadcast.splat, %wide.load2001
  store <4 x float> %279, ptr %277, align 4, !tbaa !9
  store <4 x float> %280, ptr %278, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %281 = icmp eq i64 %index.next, %n.vec
  br i1 %281, label %middle.block, label %vector.body, !llvm.loop !23

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %276, %n.vec
  br i1 %cmp.n, label %.loopexit1468, label %.lr.ph.preheader2104

.lr.ph.preheader2104:                             ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader2104, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader2104 ]
  %282 = getelementptr inbounds float, ptr %40, i64 %indvars.iv
  %283 = load float, ptr %282, align 4, !tbaa !9
  %284 = fmul float %268, %283
  store float %284, ptr %282, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit1468, label %.lr.ph, !llvm.loop !24

.loopexit1468:                                    ; preds = %.lr.ph, %middle.block, %274, %262, %267
  %285 = phi i32 [ %264, %262 ], [ %271, %267 ], [ %271, %274 ], [ %271, %middle.block ], [ %271, %.lr.ph ]
  %.51204 = phi i32 [ %.412031515, %262 ], [ 0, %267 ], [ 0, %274 ], [ 0, %middle.block ], [ 0, %.lr.ph ]
  %.51197 = phi i32 [ 1, %262 ], [ 0, %267 ], [ 0, %274 ], [ 0, %middle.block ], [ 0, %.lr.ph ]
  %286 = add nsw i32 %285, 1
  store i32 %286, ptr %30, align 4, !tbaa !5
  %287 = load i32, ptr %17, align 4, !tbaa !5
  %.not1353.not = icmp slt i32 %285, %287
  br i1 %.not1353.not, label %.lr.ph1517, label %.loopexit1465, !llvm.loop !25

.loopexit1465:                                    ; preds = %.loopexit1468, %.loopexit1466, %.loopexit1464
  %.61198 = phi i32 [ %.11193, %.loopexit1464 ], [ %.31195, %.loopexit1466 ], [ %.51197, %.loopexit1468 ]
  %.not1364 = icmp eq i32 %.61198, 0
  br i1 %.not1364, label %288, label %.loopexit1465.thread

.loopexit1465.thread:                             ; preds = %249, %210, %165, %.loopexit1465
  store float 1.000000e+00, ptr %37, align 4, !tbaa !9
  br label %288

288:                                              ; preds = %.loopexit1465.thread, %.loopexit1465
  store float 0.000000e+00, ptr %24, align 4, !tbaa !9
  store float %140, ptr %26, align 4, !tbaa !9
  %289 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %289, ptr %17, align 4, !tbaa !5
  %.not13661539 = icmp slt i32 %289, 1
  br i1 %.not13661539, label %.thread, label %.lr.ph1541.preheader

.thread:                                          ; preds = %288
  store i32 1, ptr %30, align 4, !tbaa !5
  br label %305

.lr.ph1541.preheader:                             ; preds = %288
  %290 = add nuw i32 %289, 1
  %wide.trip.count1899 = zext i32 %290 to i64
  br label %.lr.ph1541

.lr.ph1541:                                       ; preds = %.lr.ph1541.preheader, %299
  %indvars.iv1896 = phi i64 [ 1, %.lr.ph1541.preheader ], [ %indvars.iv.next1897, %299 ]
  %291 = phi float [ %140, %.lr.ph1541.preheader ], [ %300, %299 ]
  %292 = phi float [ 0.000000e+00, %.lr.ph1541.preheader ], [ %302, %299 ]
  %293 = getelementptr inbounds float, ptr %40, i64 %indvars.iv1896
  %294 = load float, ptr %293, align 4, !tbaa !9
  %295 = fcmp une float %294, 0.000000e+00
  br i1 %295, label %296, label %299

296:                                              ; preds = %.lr.ph1541
  %297 = fcmp ole float %291, %294
  %298 = select i1 %297, float %291, float %294
  store float %298, ptr %26, align 4, !tbaa !9
  br label %299

299:                                              ; preds = %296, %.lr.ph1541
  %300 = phi float [ %298, %296 ], [ %291, %.lr.ph1541 ]
  %301 = fcmp oge float %292, %294
  %302 = select i1 %301, float %292, float %294
  %indvars.iv.next1897 = add nuw nsw i64 %indvars.iv1896, 1
  %exitcond1900.not = icmp eq i64 %indvars.iv.next1897, %wide.trip.count1899
  br i1 %exitcond1900.not, label %303, label %.lr.ph1541, !llvm.loop !26

303:                                              ; preds = %299
  store float %302, ptr %24, align 4, !tbaa !9
  store i32 %290, ptr %30, align 4, !tbaa !5
  %304 = fcmp oeq float %302, 0.000000e+00
  br i1 %304, label %305, label %309

305:                                              ; preds = %.thread, %303
  br i1 %53, label %306, label %307

306:                                              ; preds = %305
  call void @claset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %5, ptr noundef nonnull %6) #10
  br label %307

307:                                              ; preds = %306, %305
  store float 1.000000e+00, ptr %13, align 4, !tbaa !9
  %308 = getelementptr inbounds i8, ptr %13, i64 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %308, i8 0, i64 20, i1 false)
  br label %1655

309:                                              ; preds = %303
  %310 = icmp eq i32 %289, 1
  br i1 %310, label %311, label %321

311:                                              ; preds = %309
  br i1 %53, label %312, label %313

312:                                              ; preds = %311
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %7, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  br label %313

313:                                              ; preds = %312, %311
  %314 = load float, ptr %37, align 4, !tbaa !9
  %315 = fdiv float 1.000000e+00, %314
  store float %315, ptr %13, align 4, !tbaa !9
  %316 = load float, ptr %7, align 4, !tbaa !9
  %317 = load float, ptr %32, align 4, !tbaa !9
  %318 = fcmp ult float %316, %317
  %.sink = select i1 %318, float 0.000000e+00, float 1.000000e+00
  %319 = getelementptr inbounds i8, ptr %13, i64 4
  store float %.sink, ptr %319, align 4
  %320 = getelementptr inbounds i8, ptr %13, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %320, i8 0, i64 16, i1 false)
  br label %1655

321:                                              ; preds = %309
  %322 = load float, ptr %32, align 4, !tbaa !9
  %323 = load float, ptr %33, align 4, !tbaa !9
  %324 = fdiv float %322, %323
  %sqrtf1367 = call float @sqrtf(float noundef %324) #3
  %325 = load i32, ptr %4, align 4, !tbaa !5
  %326 = sitofp i32 %325 to float
  %327 = fdiv float %140, %326
  %sqrtf1368 = call float @sqrtf(float noundef %327) #3
  %328 = load float, ptr %24, align 4, !tbaa !9
  %329 = fcmp ugt float %328, %sqrtf1367
  br i1 %329, label %330, label %336

330:                                              ; preds = %321
  %331 = load float, ptr %26, align 4, !tbaa !9
  %332 = fcmp ult float %331, %sqrtf1368
  br i1 %332, label %333, label %336

333:                                              ; preds = %330
  %334 = fcmp ugt float %sqrtf1367, %331
  %335 = fcmp ugt float %328, %sqrtf1368
  %or.cond1417 = select i1 %334, i1 true, i1 %335
  br i1 %or.cond1417, label %340, label %336

336:                                              ; preds = %333, %330, %321
  %337 = fdiv float %sqrtf1368, %328
  %338 = fcmp ole float %140, %337
  %339 = select i1 %338, float %140, float %337
  store float %339, ptr %29, align 4, !tbaa !9
  br label %382

340:                                              ; preds = %333
  %341 = fcmp ugt float %331, %sqrtf1367
  %brmerge = select i1 %341, i1 true, i1 %335
  br i1 %brmerge, label %355, label %342

342:                                              ; preds = %340
  %343 = fdiv float %sqrtf1367, %331
  %344 = fpext float %140 to double
  %345 = fpext float %328 to double
  %346 = load i32, ptr %4, align 4, !tbaa !5
  %347 = sitofp i32 %346 to float
  %348 = fpext float %347 to double
  %349 = call double @sqrt(double noundef %348) #10
  %350 = fmul double %349, %345
  %351 = fdiv double %344, %350
  %352 = fptrunc double %351 to float
  %353 = fcmp ole float %343, %352
  %354 = select i1 %353, float %343, float %352
  store float %354, ptr %29, align 4, !tbaa !9
  br label %382

355:                                              ; preds = %340
  %356 = fcmp ult float %328, %sqrtf1368
  %or.cond1439 = select i1 %334, i1 true, i1 %356
  br i1 %or.cond1439, label %367, label %357

357:                                              ; preds = %355
  %358 = insertelement <2 x float> poison, float %sqrtf1367, i64 0
  %359 = insertelement <2 x float> %358, float %sqrtf1368, i64 1
  %360 = insertelement <2 x float> poison, float %331, i64 0
  %361 = insertelement <2 x float> %360, float %328, i64 1
  %362 = fdiv <2 x float> %359, %361
  %363 = extractelement <2 x float> %362, i64 0
  %364 = extractelement <2 x float> %362, i64 1
  %365 = fcmp oge float %363, %364
  %366 = select i1 %365, float %363, float %364
  store float %366, ptr %29, align 4, !tbaa !9
  br label %382

367:                                              ; preds = %355
  %or.cond1440 = select i1 %341, i1 true, i1 %356
  br i1 %or.cond1440, label %.thread1438, label %368

368:                                              ; preds = %367
  %369 = fdiv float %sqrtf1367, %331
  %370 = fpext float %140 to double
  %371 = load i32, ptr %4, align 4, !tbaa !5
  %372 = sitofp i32 %371 to float
  %373 = fpext float %372 to double
  %374 = call double @sqrt(double noundef %373) #10
  %375 = load float, ptr %24, align 4, !tbaa !9
  %376 = fpext float %375 to double
  %377 = fmul double %374, %376
  %378 = fdiv double %370, %377
  %379 = fptrunc double %378 to float
  %380 = fcmp ole float %369, %379
  %381 = select i1 %380, float %369, float %379
  store float %381, ptr %29, align 4, !tbaa !9
  br label %382

.thread1438:                                      ; preds = %367
  store float 1.000000e+00, ptr %29, align 4, !tbaa !9
  br label %386

382:                                              ; preds = %342, %368, %357, %336
  %383 = phi float [ %354, %342 ], [ %381, %368 ], [ %366, %357 ], [ %339, %336 ]
  %384 = fcmp une float %383, 1.000000e+00
  br i1 %384, label %385, label %386

385:                                              ; preds = %382
  call void @slascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b41, ptr noundef nonnull %29, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull %4, ptr noundef nonnull %27) #10
  %.pre1927 = load float, ptr %29, align 4, !tbaa !9
  br label %386

386:                                              ; preds = %.thread1438, %385, %382
  %387 = phi float [ 1.000000e+00, %.thread1438 ], [ %.pre1927, %385 ], [ 1.000000e+00, %382 ]
  %388 = load float, ptr %37, align 4, !tbaa !9
  %389 = fmul float %387, %388
  store float %389, ptr %37, align 4, !tbaa !9
  %390 = fcmp une float %389, 1.000000e+00
  br i1 %390, label %391, label %394

391:                                              ; preds = %386
  call void @clascl_(ptr noundef %0, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b41, ptr noundef nonnull %37, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %392 = load float, ptr %37, align 4, !tbaa !9
  %393 = fdiv float 1.000000e+00, %392
  store float %393, ptr %37, align 4, !tbaa !9
  br label %394

394:                                              ; preds = %391, %386
  %395 = load i32, ptr %4, align 4, !tbaa !5
  %396 = add nsw i32 %395, -1
  %397 = mul nsw i32 %396, %395
  %398 = sdiv i32 %397, 2
  %.not13691543 = icmp slt i32 %395, 1
  br i1 %.not13691543, label %._crit_edge1547, label %.lr.ph1546.preheader

.lr.ph1546.preheader:                             ; preds = %394
  %399 = add nuw i32 %395, 1
  %wide.trip.count1904 = zext i32 %399 to i64
  %400 = zext nneg i32 %395 to i64
  %min.iters.check2038 = icmp ult i32 %395, 4
  br i1 %min.iters.check2038, label %.lr.ph1546.preheader2099, label %vector.ph2039

vector.ph2039:                                    ; preds = %.lr.ph1546.preheader
  %n.vec2041 = and i64 %400, 2147483644
  %ind.end2042 = or disjoint i64 %n.vec2041, 1
  br label %vector.body2044

vector.body2044:                                  ; preds = %vector.body2044, %vector.ph2039
  %index2045 = phi i64 [ 0, %vector.ph2039 ], [ %index.next2047, %vector.body2044 ]
  %401 = or disjoint i64 %index2045, 3
  %402 = getelementptr %struct.complex, ptr %11, i64 %index2045
  %403 = getelementptr inbounds %struct.complex, ptr %47, i64 %401
  store <4 x float> <float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 0.000000e+00>, ptr %402, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 0.000000e+00>, ptr %403, align 4, !tbaa !9
  %index.next2047 = add nuw i64 %index2045, 4
  %404 = icmp eq i64 %index.next2047, %n.vec2041
  br i1 %404, label %middle.block2036, label %vector.body2044, !llvm.loop !27

middle.block2036:                                 ; preds = %vector.body2044
  %cmp.n2048 = icmp eq i64 %n.vec2041, %400
  br i1 %cmp.n2048, label %._crit_edge1547, label %.lr.ph1546.preheader2099

.lr.ph1546.preheader2099:                         ; preds = %middle.block2036, %.lr.ph1546.preheader
  %indvars.iv1901.ph = phi i64 [ 1, %.lr.ph1546.preheader ], [ %ind.end2042, %middle.block2036 ]
  br label %.lr.ph1546

.lr.ph1546:                                       ; preds = %.lr.ph1546.preheader2099, %.lr.ph1546
  %indvars.iv1901 = phi i64 [ %indvars.iv.next1902, %.lr.ph1546 ], [ %indvars.iv1901.ph, %.lr.ph1546.preheader2099 ]
  %405 = getelementptr inbounds %struct.complex, ptr %47, i64 %indvars.iv1901
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %405, align 4, !tbaa !9
  %indvars.iv.next1902 = add nuw nsw i64 %indvars.iv1901, 1
  %exitcond1905.not = icmp eq i64 %indvars.iv.next1902, %wide.trip.count1904
  br i1 %exitcond1905.not, label %._crit_edge1547, label %.lr.ph1546, !llvm.loop !28

._crit_edge1547:                                  ; preds = %.lr.ph1546, %middle.block2036, %394
  %spec.select1418 = call i32 @llvm.smin.i32(i32 %395, i32 8)
  %406 = sdiv i32 %395, %spec.select1418
  %407 = mul nsw i32 %406, %spec.select1418
  %.not1370 = icmp ne i32 %407, %395
  %408 = zext i1 %.not1370 to i32
  %.01205 = add nsw i32 %406, %408
  %409 = mul nsw i32 %spec.select1418, %spec.select1418
  %410 = call i32 @llvm.smin.i32(i32 %395, i32 5)
  %411 = shl i32 %spec.select1418, 2
  store i32 %411, ptr %18, align 4, !tbaa !5
  %412 = or i32 %63, %62
  %or.cond21.not = icmp ne i32 %412, 0
  %413 = call i32 @llvm.smax.i32(i32 %411, i32 64)
  %414 = icmp sgt i32 %395, %413
  %or.cond1442 = and i1 %or.cond21.not, %414
  br i1 %or.cond1442, label %415, label %575

415:                                              ; preds = %._crit_edge1547
  %416 = lshr i32 %395, 2
  store i32 %416, ptr %35, align 4, !tbaa !5
  %417 = lshr i32 %395, 1
  store i32 %417, ptr %34, align 4, !tbaa !5
  br i1 %72, label %418, label %520

418:                                              ; preds = %415
  %419 = mul nuw nsw i32 %416, 3
  %420 = load i32, ptr %3, align 4, !tbaa !5
  %421 = sub nsw i32 %420, %419
  store i32 %421, ptr %17, align 4, !tbaa !5
  %422 = sub nsw i32 %395, %419
  store i32 %422, ptr %18, align 4, !tbaa !5
  %423 = load i32, ptr %12, align 4, !tbaa !5
  %424 = sub nsw i32 %423, %395
  store i32 %424, ptr %19, align 4, !tbaa !5
  %425 = add nuw nsw i32 %419, 1
  %426 = add i32 %41, 1
  %427 = mul i32 %425, %426
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds %struct.complex, ptr %43, i64 %428
  %430 = zext nneg i32 %425 to i64
  %431 = getelementptr inbounds %struct.complex, ptr %47, i64 %430
  %432 = getelementptr inbounds float, ptr %40, i64 %430
  %433 = select i1 %80, i32 1, i32 %425
  %434 = mul nsw i32 %425, %44
  %435 = add nsw i32 %433, %434
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds %struct.complex, ptr %46, i64 %436
  %438 = zext nneg i32 %395 to i64
  %439 = getelementptr %struct.complex, ptr %47, i64 %438
  %440 = getelementptr i8, ptr %439, i64 8
  call void @cgsvj0_(ptr noundef %2, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef %429, ptr noundef nonnull %6, ptr noundef nonnull %431, ptr noundef nonnull %432, ptr noundef nonnull %39, ptr noundef %437, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__2, ptr noundef %440, ptr noundef nonnull %19, ptr noundef nonnull %27) #10
  %441 = load i32, ptr %3, align 4, !tbaa !5
  %442 = load i32, ptr %34, align 4, !tbaa !5
  %443 = sub nsw i32 %441, %442
  store i32 %443, ptr %17, align 4, !tbaa !5
  %444 = sub nsw i32 %419, %442
  store i32 %444, ptr %18, align 4, !tbaa !5
  %445 = load i32, ptr %12, align 4, !tbaa !5
  %446 = load i32, ptr %4, align 4, !tbaa !5
  %447 = sub nsw i32 %445, %446
  store i32 %447, ptr %19, align 4, !tbaa !5
  %448 = add nsw i32 %442, 1
  %449 = mul i32 %448, %426
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds %struct.complex, ptr %43, i64 %450
  %452 = sext i32 %448 to i64
  %453 = getelementptr inbounds %struct.complex, ptr %47, i64 %452
  %454 = getelementptr inbounds float, ptr %40, i64 %452
  %455 = select i1 %80, i32 1, i32 %448
  %456 = mul nsw i32 %448, %44
  %457 = add nsw i32 %455, %456
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds %struct.complex, ptr %46, i64 %458
  %460 = sext i32 %446 to i64
  %461 = getelementptr %struct.complex, ptr %47, i64 %460
  %462 = getelementptr i8, ptr %461, i64 8
  call void @cgsvj0_(ptr noundef %2, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef %451, ptr noundef nonnull %6, ptr noundef nonnull %453, ptr noundef nonnull %454, ptr noundef nonnull %39, ptr noundef %459, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__2, ptr noundef %462, ptr noundef nonnull %19, ptr noundef nonnull %27) #10
  %463 = load i32, ptr %3, align 4, !tbaa !5
  %464 = load i32, ptr %34, align 4, !tbaa !5
  %465 = sub nsw i32 %463, %464
  store i32 %465, ptr %17, align 4, !tbaa !5
  %466 = load i32, ptr %4, align 4, !tbaa !5
  %467 = sub nsw i32 %466, %464
  store i32 %467, ptr %18, align 4, !tbaa !5
  %468 = load i32, ptr %12, align 4, !tbaa !5
  %469 = sub nsw i32 %468, %466
  store i32 %469, ptr %19, align 4, !tbaa !5
  %470 = add nsw i32 %464, 1
  %471 = mul i32 %470, %426
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds %struct.complex, ptr %43, i64 %472
  %474 = sext i32 %470 to i64
  %475 = getelementptr inbounds %struct.complex, ptr %47, i64 %474
  %476 = getelementptr inbounds float, ptr %40, i64 %474
  %477 = select i1 %80, i32 1, i32 %470
  %478 = mul nsw i32 %470, %44
  %479 = add nsw i32 %477, %478
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds %struct.complex, ptr %46, i64 %480
  %482 = sext i32 %466 to i64
  %483 = getelementptr %struct.complex, ptr %47, i64 %482
  %484 = getelementptr i8, ptr %483, i64 8
  call void @cgsvj1_(ptr noundef %2, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %35, ptr noundef %473, ptr noundef nonnull %6, ptr noundef nonnull %475, ptr noundef nonnull %476, ptr noundef nonnull %39, ptr noundef %481, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef %484, ptr noundef nonnull %19, ptr noundef nonnull %27) #10
  %485 = load i32, ptr %3, align 4, !tbaa !5
  %486 = load i32, ptr %35, align 4, !tbaa !5
  %487 = sub nsw i32 %485, %486
  store i32 %487, ptr %17, align 4, !tbaa !5
  %488 = load i32, ptr %34, align 4, !tbaa !5
  %489 = sub nsw i32 %488, %486
  store i32 %489, ptr %18, align 4, !tbaa !5
  %490 = load i32, ptr %12, align 4, !tbaa !5
  %491 = load i32, ptr %4, align 4, !tbaa !5
  %492 = sub nsw i32 %490, %491
  store i32 %492, ptr %19, align 4, !tbaa !5
  %493 = add nsw i32 %486, 1
  %494 = mul i32 %493, %426
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds %struct.complex, ptr %43, i64 %495
  %497 = sext i32 %493 to i64
  %498 = getelementptr inbounds %struct.complex, ptr %47, i64 %497
  %499 = getelementptr inbounds float, ptr %40, i64 %497
  %500 = select i1 %80, i32 1, i32 %493
  %501 = mul nsw i32 %493, %44
  %502 = add nsw i32 %500, %501
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds %struct.complex, ptr %46, i64 %503
  %505 = sext i32 %491 to i64
  %506 = getelementptr %struct.complex, ptr %47, i64 %505
  %507 = getelementptr i8, ptr %506, i64 8
  call void @cgsvj0_(ptr noundef %2, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef %496, ptr noundef nonnull %6, ptr noundef nonnull %498, ptr noundef nonnull %499, ptr noundef nonnull %39, ptr noundef %504, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef %507, ptr noundef nonnull %19, ptr noundef nonnull %27) #10
  %508 = load i32, ptr %12, align 4, !tbaa !5
  %509 = load i32, ptr %4, align 4, !tbaa !5
  %510 = sub nsw i32 %508, %509
  store i32 %510, ptr %17, align 4, !tbaa !5
  %511 = sext i32 %509 to i64
  %512 = getelementptr %struct.complex, ptr %47, i64 %511
  %513 = getelementptr i8, ptr %512, i64 8
  call void @cgsvj0_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %35, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %39, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef %513, ptr noundef nonnull %17, ptr noundef nonnull %27) #10
  %514 = load i32, ptr %12, align 4, !tbaa !5
  %515 = load i32, ptr %4, align 4, !tbaa !5
  %516 = sub nsw i32 %514, %515
  store i32 %516, ptr %17, align 4, !tbaa !5
  %517 = sext i32 %515 to i64
  %518 = getelementptr %struct.complex, ptr %47, i64 %517
  %519 = getelementptr i8, ptr %518, i64 8
  call void @cgsvj1_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %39, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef %519, ptr noundef nonnull %17, ptr noundef nonnull %27) #10
  br label %575

520:                                              ; preds = %415
  br i1 %71, label %521, label %575

521:                                              ; preds = %520
  %522 = load i32, ptr %12, align 4, !tbaa !5
  %523 = sub nsw i32 %522, %395
  store i32 %523, ptr %17, align 4, !tbaa !5
  %524 = zext nneg i32 %395 to i64
  %525 = getelementptr %struct.complex, ptr %47, i64 %524
  %526 = getelementptr i8, ptr %525, i64 8
  call void @cgsvj0_(ptr noundef %2, ptr noundef nonnull %35, ptr noundef nonnull %35, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %39, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__2, ptr noundef %526, ptr noundef nonnull %17, ptr noundef nonnull %27) #10
  %527 = load i32, ptr %12, align 4, !tbaa !5
  %528 = load i32, ptr %4, align 4, !tbaa !5
  %529 = sub nsw i32 %527, %528
  store i32 %529, ptr %17, align 4, !tbaa !5
  %530 = load i32, ptr %35, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  %532 = mul nsw i32 %531, %41
  %533 = sext i32 %532 to i64
  %534 = getelementptr %struct.complex, ptr %43, i64 %533
  %535 = getelementptr i8, ptr %534, i64 8
  %536 = sext i32 %531 to i64
  %537 = getelementptr inbounds %struct.complex, ptr %47, i64 %536
  %538 = getelementptr inbounds float, ptr %40, i64 %536
  %539 = select i1 %80, i32 1, i32 %531
  %540 = mul nsw i32 %531, %44
  %541 = add nsw i32 %539, %540
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds %struct.complex, ptr %46, i64 %542
  %544 = sext i32 %528 to i64
  %545 = getelementptr %struct.complex, ptr %47, i64 %544
  %546 = getelementptr i8, ptr %545, i64 8
  call void @cgsvj0_(ptr noundef %2, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef %535, ptr noundef nonnull %6, ptr noundef nonnull %537, ptr noundef nonnull %538, ptr noundef nonnull %39, ptr noundef %543, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef %546, ptr noundef nonnull %17, ptr noundef nonnull %27) #10
  %547 = load i32, ptr %12, align 4, !tbaa !5
  %548 = load i32, ptr %4, align 4, !tbaa !5
  %549 = sub nsw i32 %547, %548
  store i32 %549, ptr %17, align 4, !tbaa !5
  %550 = sext i32 %548 to i64
  %551 = getelementptr %struct.complex, ptr %47, i64 %550
  %552 = getelementptr i8, ptr %551, i64 8
  call void @cgsvj1_(ptr noundef %2, ptr noundef nonnull %34, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %39, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef %552, ptr noundef nonnull %17, ptr noundef nonnull %27) #10
  %553 = load i32, ptr %34, align 4, !tbaa !5
  %554 = load i32, ptr %35, align 4, !tbaa !5
  %555 = add nsw i32 %554, %553
  store i32 %555, ptr %17, align 4, !tbaa !5
  %556 = load i32, ptr %12, align 4, !tbaa !5
  %557 = load i32, ptr %4, align 4, !tbaa !5
  %558 = sub nsw i32 %556, %557
  store i32 %558, ptr %18, align 4, !tbaa !5
  %559 = add nsw i32 %553, 1
  %560 = mul nsw i32 %559, %41
  %561 = sext i32 %560 to i64
  %562 = getelementptr %struct.complex, ptr %43, i64 %561
  %563 = getelementptr i8, ptr %562, i64 8
  %564 = sext i32 %559 to i64
  %565 = getelementptr inbounds %struct.complex, ptr %47, i64 %564
  %566 = getelementptr inbounds float, ptr %40, i64 %564
  %567 = select i1 %80, i32 1, i32 %559
  %568 = mul nsw i32 %559, %44
  %569 = add nsw i32 %567, %568
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds %struct.complex, ptr %46, i64 %570
  %572 = sext i32 %557 to i64
  %573 = getelementptr %struct.complex, ptr %47, i64 %572
  %574 = getelementptr i8, ptr %573, i64 8
  call void @cgsvj0_(ptr noundef %2, ptr noundef nonnull %17, ptr noundef nonnull %35, ptr noundef %563, ptr noundef nonnull %6, ptr noundef nonnull %565, ptr noundef nonnull %566, ptr noundef nonnull %39, ptr noundef %571, ptr noundef nonnull %10, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef %574, ptr noundef nonnull %18, ptr noundef nonnull %27) #10
  br label %575

575:                                              ; preds = %418, %521, %520, %._crit_edge1547
  %invariant.gep1815 = getelementptr i8, ptr %43, i64 8
  %576 = add i32 %spec.select1418, -1
  %invariant.gep1614 = getelementptr i8, ptr %46, i64 8
  %577 = getelementptr inbounds i8, ptr %25, i64 4
  %578 = sext i32 %41 to i64
  %579 = sext i32 %44 to i64
  %.not13731794 = icmp slt i32 %.01205, 1
  %580 = insertelement <2 x float> poison, float %139, i64 0
  %581 = shufflevector <2 x float> %580, <2 x float> poison, <2 x i32> zeroinitializer
  br label %582

582:                                              ; preds = %575, %1530
  %.011861820 = phi i32 [ 1, %575 ], [ %1531, %1530 ]
  %.012411819 = phi i32 [ 3, %575 ], [ %.11242, %1530 ]
  store i32 %.01205, ptr %17, align 4, !tbaa !5
  br i1 %.not13731794, label %.._crit_edge1806_crit_edge, label %.lr.ph1805

.._crit_edge1806_crit_edge:                       ; preds = %582
  %.pre1939 = load i32, ptr %4, align 4, !tbaa !5
  br label %._crit_edge1806

.lr.ph1805:                                       ; preds = %582
  %.not1411 = icmp sle i32 %.011861820, %.012411819
  %.not1395 = icmp sgt i32 %.011861820, %.012411819
  br label %585

.loopexit1462.loopexit:                           ; preds = %.lr.ph1792, %middle.block2049
  %indvars.iv.next1919.lcssa = phi i64 [ %ind.end2055, %middle.block2049 ], [ %indvars.iv.next1919, %.lr.ph1792 ]
  %583 = trunc nsw i64 %indvars.iv.next1919.lcssa to i32
  br label %.loopexit1462

.loopexit1462:                                    ; preds = %.loopexit1462.loopexit, %.loopexit1463
  %storemerge1398.lcssa = phi i32 [ %590, %.loopexit1463 ], [ %583, %.loopexit1462.loopexit ]
  store i32 %storemerge1398.lcssa, ptr %30, align 4, !tbaa !5
  %584 = load i32, ptr %17, align 4, !tbaa !5
  %.not1373.not = icmp slt i32 %.012071799, %584
  %indvars.iv.next1910 = add i32 %indvars.iv1909, %spec.select1418
  %indvars.iv.next1917 = add i32 %indvars.iv1916, %spec.select1418
  br i1 %.not1373.not, label %585, label %._crit_edge1806, !llvm.loop !29

585:                                              ; preds = %.lr.ph1805, %.loopexit1462
  %indvars.iv1916 = phi i32 [ 1, %.lr.ph1805 ], [ %indvars.iv.next1917, %.loopexit1462 ]
  %indvars.iv1909 = phi i32 [ %spec.select1418, %.lr.ph1805 ], [ %indvars.iv.next1910, %.loopexit1462 ]
  %.012071799 = phi i32 [ 1, %.lr.ph1805 ], [ %1022, %.loopexit1462 ]
  %.012141798 = phi i32 [ 0, %.lr.ph1805 ], [ %.14, %.loopexit1462 ]
  %.012211797 = phi i32 [ 0, %.lr.ph1805 ], [ %.17, %.loopexit1462 ]
  %.112451796 = phi float [ 0.000000e+00, %.lr.ph1805 ], [ %.18, %.loopexit1462 ]
  %.112641795 = phi float [ 0.000000e+00, %.lr.ph1805 ], [ %.141277, %.loopexit1462 ]
  %586 = sext i32 %indvars.iv1916 to i64
  %587 = sext i32 %indvars.iv1916 to i64
  %588 = add nsw i32 %.012071799, -1
  %589 = mul nsw i32 %588, %spec.select1418
  %590 = add nsw i32 %589, 1
  %591 = sub nsw i32 %.01205, %.012071799
  store i32 %591, ptr %20, align 4, !tbaa !5
  %592 = call i32 @llvm.smin.i32(i32 %591, i32 1)
  store i32 %592, ptr %18, align 4, !tbaa !5
  %.not13851639 = icmp slt i32 %591, 0
  br i1 %.not13851639, label %._crit_edge1650, label %.lr.ph1649

.lr.ph1649:                                       ; preds = %585, %._crit_edge1632
  %593 = phi i32 [ %1020, %._crit_edge1632 ], [ %592, %585 ]
  %.012081645 = phi i32 [ %595, %._crit_edge1632 ], [ %590, %585 ]
  %.112151644 = phi i32 [ %.21216.lcssa, %._crit_edge1632 ], [ %.012141798, %585 ]
  %.112221643 = phi i32 [ %.21223.lcssa, %._crit_edge1632 ], [ %.012211797, %585 ]
  %.012431642 = phi i32 [ %1021, %._crit_edge1632 ], [ 0, %585 ]
  %.212461641 = phi float [ %.31247.lcssa, %._crit_edge1632 ], [ %.112451796, %585 ]
  %.212651640 = phi float [ %.31266.lcssa, %._crit_edge1632 ], [ %.112641795, %585 ]
  %594 = mul nsw i32 %.012431642, %spec.select1418
  %595 = add nsw i32 %.012081645, %594
  %596 = add i32 %576, %595
  store i32 %596, ptr %20, align 4, !tbaa !5
  %597 = load i32, ptr %4, align 4, !tbaa !5
  %598 = add nsw i32 %597, -1
  %599 = call i32 @llvm.smin.i32(i32 %596, i32 %598)
  store i32 %599, ptr %19, align 4, !tbaa !5
  store i32 %595, ptr %30, align 4, !tbaa !5
  %.not14021622 = icmp sgt i32 %595, %599
  br i1 %.not14021622, label %._crit_edge1632, label %.lr.ph1631

.lr.ph1631:                                       ; preds = %.lr.ph1649
  %600 = icmp eq i32 %.012431642, 0
  %601 = zext i1 %600 to i32
  br label %602

602:                                              ; preds = %.lr.ph1631, %1016
  %.212161627 = phi i32 [ %.112151644, %.lr.ph1631 ], [ %.7, %1016 ]
  %.212231626 = phi i32 [ %.112221643, %.lr.ph1631 ], [ %.91230, %1016 ]
  %.312471625 = phi float [ %.212461641, %.lr.ph1631 ], [ %.91253, %1016 ]
  %.312661624 = phi float [ %.212651640, %.lr.ph1631 ], [ %.71270, %1016 ]
  %storemerge14011623 = phi i32 [ %595, %.lr.ph1631 ], [ %1018, %1016 ]
  %603 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub1858 = sub i32 %603, %storemerge14011623
  %604 = add i32 %reass.sub1858, 1
  store i32 %604, ptr %20, align 4, !tbaa !5
  %605 = sext i32 %storemerge14011623 to i64
  %606 = getelementptr inbounds float, ptr %40, i64 %605
  %607 = call i32 @isamax_(ptr noundef nonnull %20, ptr noundef nonnull %606, ptr noundef nonnull @c__1) #10
  %608 = load i32, ptr %30, align 4, !tbaa !5
  %609 = add i32 %607, -1
  %610 = add i32 %609, %608
  %.not1403 = icmp eq i32 %609, 0
  br i1 %.not1403, label %634, label %611

611:                                              ; preds = %602
  %612 = mul nsw i32 %608, %41
  %613 = sext i32 %612 to i64
  %gep1611 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %613
  %614 = mul nsw i32 %610, %41
  %615 = sext i32 %614 to i64
  %gep1613 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %615
  call void @cswap_(ptr noundef nonnull %3, ptr noundef %gep1611, ptr noundef nonnull @c__1, ptr noundef %gep1613, ptr noundef nonnull @c__1) #10
  br i1 %or.cond5, label %616, label %622

616:                                              ; preds = %611
  %617 = load i32, ptr %30, align 4, !tbaa !5
  %618 = mul nsw i32 %617, %44
  %619 = sext i32 %618 to i64
  %gep1615 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %619
  %620 = mul nsw i32 %610, %44
  %621 = sext i32 %620 to i64
  %gep1617 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %621
  call void @cswap_(ptr noundef nonnull %39, ptr noundef %gep1615, ptr noundef nonnull @c__1, ptr noundef %gep1617, ptr noundef nonnull @c__1) #10
  br label %622

622:                                              ; preds = %616, %611
  %623 = load i32, ptr %30, align 4, !tbaa !5
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds float, ptr %40, i64 %624
  %626 = load float, ptr %625, align 4, !tbaa !9
  store float %626, ptr %29, align 4, !tbaa !9
  %627 = sext i32 %610 to i64
  %628 = getelementptr inbounds float, ptr %40, i64 %627
  %629 = load float, ptr %628, align 4, !tbaa !9
  store float %629, ptr %625, align 4, !tbaa !9
  store float %626, ptr %628, align 4, !tbaa !9
  %630 = getelementptr inbounds %struct.complex, ptr %47, i64 %624
  %631 = load <2 x float>, ptr %630, align 4, !tbaa !9
  store <2 x float> %631, ptr %25, align 8, !tbaa !9
  %632 = getelementptr inbounds %struct.complex, ptr %47, i64 %627
  %633 = load <2 x float>, ptr %632, align 4, !tbaa !9
  store <2 x float> %633, ptr %630, align 4, !tbaa !9
  store i32 %610, ptr %20, align 4, !tbaa !5
  store <2 x float> %631, ptr %632, align 4, !tbaa !9
  br label %634

634:                                              ; preds = %622, %602
  %635 = phi i32 [ %623, %622 ], [ %608, %602 ]
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds float, ptr %40, i64 %636
  %638 = load float, ptr %637, align 4, !tbaa !9
  br i1 %600, label %639, label %._crit_edge1929

639:                                              ; preds = %634
  %640 = fcmp olt float %638, %141
  %641 = fcmp ogt float %638, %sqrtf1350
  %or.cond1419 = and i1 %640, %641
  br i1 %or.cond1419, label %642, label %646

642:                                              ; preds = %639
  %643 = mul nsw i32 %635, %41
  %644 = sext i32 %643 to i64
  %gep1621 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %644
  %645 = call float @scnrm2_(ptr noundef nonnull %3, ptr noundef %gep1621, ptr noundef nonnull @c__1) #10
  br label %._crit_edge1929.sink.split

646:                                              ; preds = %639
  store float 0.000000e+00, ptr %29, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %647 = mul nsw i32 %635, %41
  %648 = sext i32 %647 to i64
  %gep1619 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %648
  call void @classq_(ptr noundef nonnull %3, ptr noundef %gep1619, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %24) #10
  %649 = load float, ptr %29, align 4, !tbaa !9
  %650 = fpext float %649 to double
  %651 = load float, ptr %24, align 4, !tbaa !9
  %652 = fpext float %651 to double
  %653 = call double @sqrt(double noundef %652) #10
  %654 = fmul double %653, %650
  %655 = fptrunc double %654 to float
  br label %._crit_edge1929.sink.split

._crit_edge1929.sink.split:                       ; preds = %646, %642
  %.sink1969 = phi float [ %645, %642 ], [ %655, %646 ]
  %.sink1972 = load i32, ptr %30, align 4, !tbaa !5
  %656 = sext i32 %.sink1972 to i64
  %657 = getelementptr inbounds float, ptr %40, i64 %656
  store float %.sink1969, ptr %657, align 4, !tbaa !9
  br label %._crit_edge1929

._crit_edge1929:                                  ; preds = %._crit_edge1929.sink.split, %634
  %.pn.pre-phi = phi i64 [ %636, %634 ], [ %656, %._crit_edge1929.sink.split ]
  %storemerge1404 = phi float [ %638, %634 ], [ %.sink1969, %._crit_edge1929.sink.split ]
  %.pn.in = phi i32 [ %635, %634 ], [ %.sink1972, %._crit_edge1929.sink.split ]
  store float %storemerge1404, ptr %24, align 4, !tbaa !9
  %658 = fcmp ogt float %storemerge1404, 0.000000e+00
  br i1 %658, label %659, label %1010

659:                                              ; preds = %._crit_edge1929
  %660 = load i32, ptr %4, align 4, !tbaa !5
  %.1420 = call i32 @llvm.smin.i32(i32 %596, i32 %660)
  store i32 %.1420, ptr %20, align 4, !tbaa !5
  br label %661

661:                                              ; preds = %1001, %659
  %indvars.iv1906 = phi i64 [ %indvars.iv.next1907, %1001 ], [ %.pn.pre-phi, %659 ]
  %.41267 = phi float [ %.51268, %1001 ], [ %.312661624, %659 ]
  %.41248 = phi float [ %.71251, %1001 ], [ %.312471625, %659 ]
  %.31224 = phi i32 [ %.71228, %1001 ], [ %.212231626, %659 ]
  %.31217 = phi i32 [ %.51219, %1001 ], [ %.212161627, %659 ]
  %.01185 = phi i32 [ %.2, %1001 ], [ 0, %659 ]
  %indvars.iv.next1907 = add nsw i64 %indvars.iv1906, 1
  %662 = load i32, ptr %20, align 4, !tbaa !5
  %663 = sext i32 %662 to i64
  %.not1407.not = icmp slt i64 %indvars.iv1906, %663
  br i1 %.not1407.not, label %664, label %.loopexit1461.loopexit

664:                                              ; preds = %661
  %665 = getelementptr float, ptr %7, i64 %indvars.iv1906
  %666 = load float, ptr %665, align 4, !tbaa !9
  store float %666, ptr %26, align 4, !tbaa !9
  %667 = fcmp ogt float %666, 0.000000e+00
  br i1 %667, label %668, label %999

668:                                              ; preds = %664
  %669 = load float, ptr %24, align 4, !tbaa !9
  %670 = fcmp ult float %666, 1.000000e+00
  br i1 %670, label %707, label %671

671:                                              ; preds = %668
  %672 = fmul float %139, %669
  %673 = fcmp ole float %672, %666
  %674 = fdiv float %140, %666
  %675 = fcmp olt float %669, %674
  %676 = load i32, ptr %30, align 4, !tbaa !5
  %677 = mul nsw i32 %676, %41
  %678 = sext i32 %677 to i64
  %gep1559 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %678
  br i1 %675, label %679, label %692

679:                                              ; preds = %671
  %680 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1561 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %680
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %3, ptr noundef %gep1559, ptr noundef nonnull @c__1, ptr noundef %gep1561, ptr noundef nonnull @c__1)
  %681 = load float, ptr %26, align 4, !tbaa !9
  %682 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %683 = insertelement <2 x float> poison, float %681, i64 0
  %684 = shufflevector <2 x float> %683, <2 x float> poison, <2 x i32> zeroinitializer
  %685 = fdiv <2 x float> %682, %684
  store <2 x float> %685, ptr %22, align 8, !tbaa !9
  %686 = load float, ptr %24, align 4, !tbaa !9
  %687 = insertelement <2 x float> poison, float %686, i64 0
  %688 = shufflevector <2 x float> %687, <2 x float> poison, <2 x i32> zeroinitializer
  %689 = fdiv <2 x float> %685, %688
  store <2 x float> %689, ptr %21, align 8, !tbaa !9
  %690 = extractelement <2 x float> %689, i64 0
  store float %690, ptr %25, align 8, !tbaa !11
  %691 = extractelement <2 x float> %689, i64 1
  br label %746

692:                                              ; preds = %671
  %693 = load i32, ptr %4, align 4, !tbaa !5
  %694 = sext i32 %693 to i64
  %gep1551 = getelementptr %struct.complex, ptr %11, i64 %694
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep1559, ptr noundef nonnull @c__1, ptr noundef %gep1551, ptr noundef nonnull @c__1) #10
  %695 = load i32, ptr %4, align 4, !tbaa !5
  %696 = sext i32 %695 to i64
  %gep1553 = getelementptr %struct.complex, ptr %11, i64 %696
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1553, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %697 = load i32, ptr %4, align 4, !tbaa !5
  %698 = sext i32 %697 to i64
  %gep1555 = getelementptr %struct.complex, ptr %11, i64 %698
  %699 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1557 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %699
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %3, ptr noundef %gep1555, ptr noundef nonnull @c__1, ptr noundef %gep1557, ptr noundef nonnull @c__1)
  %700 = load float, ptr %26, align 4, !tbaa !9
  %701 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %702 = insertelement <2 x float> poison, float %700, i64 0
  %703 = shufflevector <2 x float> %702, <2 x float> poison, <2 x i32> zeroinitializer
  %704 = fdiv <2 x float> %701, %703
  store <2 x float> %704, ptr %21, align 8, !tbaa !9
  %705 = extractelement <2 x float> %704, i64 0
  store float %705, ptr %25, align 8, !tbaa !11
  %706 = extractelement <2 x float> %704, i64 1
  br label %746

707:                                              ; preds = %668
  %708 = fdiv float %666, %139
  %709 = fcmp ole float %669, %708
  %710 = fdiv float %139, %666
  %711 = fcmp ogt float %669, %710
  br i1 %711, label %712, label %728

712:                                              ; preds = %707
  %713 = load i32, ptr %30, align 4, !tbaa !5
  %714 = mul nsw i32 %713, %41
  %715 = sext i32 %714 to i64
  %gep1573 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %715
  %716 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1575 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %716
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %3, ptr noundef %gep1573, ptr noundef nonnull @c__1, ptr noundef %gep1575, ptr noundef nonnull @c__1)
  %717 = load float, ptr %24, align 4, !tbaa !9
  %718 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %719 = insertelement <2 x float> poison, float %717, i64 0
  %720 = shufflevector <2 x float> %719, <2 x float> poison, <2 x i32> zeroinitializer
  %721 = fdiv <2 x float> %718, %720
  store <2 x float> %721, ptr %22, align 8, !tbaa !9
  %722 = load float, ptr %26, align 4, !tbaa !9
  %723 = insertelement <2 x float> poison, float %722, i64 0
  %724 = shufflevector <2 x float> %723, <2 x float> poison, <2 x i32> zeroinitializer
  %725 = fdiv <2 x float> %721, %724
  store <2 x float> %725, ptr %21, align 8, !tbaa !9
  %726 = extractelement <2 x float> %725, i64 0
  store float %726, ptr %25, align 8, !tbaa !11
  %727 = extractelement <2 x float> %725, i64 1
  br label %746

728:                                              ; preds = %707
  %729 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1563 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %729
  %730 = load i32, ptr %4, align 4, !tbaa !5
  %731 = sext i32 %730 to i64
  %gep1565 = getelementptr %struct.complex, ptr %11, i64 %731
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep1563, ptr noundef nonnull @c__1, ptr noundef %gep1565, ptr noundef nonnull @c__1) #10
  %732 = load i32, ptr %4, align 4, !tbaa !5
  %733 = sext i32 %732 to i64
  %gep1567 = getelementptr %struct.complex, ptr %11, i64 %733
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1567, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %734 = load i32, ptr %30, align 4, !tbaa !5
  %735 = mul nsw i32 %734, %41
  %736 = sext i32 %735 to i64
  %gep1569 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %736
  %737 = load i32, ptr %4, align 4, !tbaa !5
  %738 = sext i32 %737 to i64
  %gep1571 = getelementptr %struct.complex, ptr %11, i64 %738
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %3, ptr noundef %gep1569, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull @c__1)
  %739 = load float, ptr %24, align 4, !tbaa !9
  %740 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %741 = insertelement <2 x float> poison, float %739, i64 0
  %742 = shufflevector <2 x float> %741, <2 x float> poison, <2 x i32> zeroinitializer
  %743 = fdiv <2 x float> %740, %742
  store <2 x float> %743, ptr %21, align 8, !tbaa !9
  %744 = extractelement <2 x float> %743, i64 0
  store float %744, ptr %25, align 8, !tbaa !11
  %745 = extractelement <2 x float> %743, i64 1
  br label %746

746:                                              ; preds = %712, %728, %679, %692
  %.sink1973 = phi float [ %727, %712 ], [ %745, %728 ], [ %691, %679 ], [ %706, %692 ]
  %.01209.in = phi i1 [ %709, %712 ], [ %709, %728 ], [ %673, %679 ], [ %673, %692 ]
  store float %.sink1973, ptr %577, align 4, !tbaa !13
  %747 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %748 = call float @cabsf(<2 x float> noundef %747) #10
  %749 = fneg float %748
  %750 = fcmp oge float %.41267, %748
  %751 = select i1 %750, float %.41267, float %748
  %752 = fcmp ole float %748, 0.000000e+00
  %753 = select i1 %752, float %749, float %748
  %754 = load float, ptr %38, align 4, !tbaa !9
  %755 = fcmp ogt float %753, %754
  br i1 %755, label %756, label %997

756:                                              ; preds = %746
  %757 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %758 = call float @cabsf(<2 x float> noundef %757) #10
  %759 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %760 = insertelement <2 x float> poison, float %758, i64 0
  %761 = shufflevector <2 x float> %760, <2 x float> poison, <2 x i32> zeroinitializer
  %762 = fdiv <2 x float> %759, %761
  store <2 x float> %762, ptr %21, align 8, !tbaa !9
  store <2 x float> %762, ptr %28, align 8, !tbaa !9
  %.41225 = select i1 %600, i32 0, i32 %.31224
  %.41218 = add nsw i32 %.31217, %601
  %.1 = select i1 %600, i32 0, i32 %.01185
  br i1 %.01209.in, label %763, label %925

763:                                              ; preds = %756
  %764 = load float, ptr %26, align 4, !tbaa !9
  %765 = load float, ptr %24, align 4, !tbaa !9
  %766 = insertelement <2 x float> poison, float %764, i64 0
  %767 = insertelement <2 x float> %766, float %765, i64 1
  %768 = insertelement <2 x float> poison, float %765, i64 0
  %769 = insertelement <2 x float> %768, float %764, i64 1
  %770 = fdiv <2 x float> %767, %769
  %shift = shufflevector <2 x float> %770, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %771 = fsub <2 x float> %770, %shift
  %772 = extractelement <2 x float> %771, i64 0
  %773 = fcmp oge float %772, 0.000000e+00
  %774 = fneg float %772
  %775 = select i1 %773, float %772, float %774
  %776 = fmul float %775, -5.000000e-01
  %777 = fdiv float %776, %749
  %778 = fcmp oge float %777, 0.000000e+00
  %779 = fneg float %777
  %780 = select i1 %778, float %777, float %779
  %781 = fcmp ogt float %780, %142
  br i1 %781, label %782, label %841

782:                                              ; preds = %763
  %783 = fdiv float 5.000000e-01, %777
  store float %783, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %36, align 4, !tbaa !9
  %784 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.039.0.vec.extract = extractelement <2 x float> %784, i64 0
  %.sroa.039.4.vec.extract = extractelement <2 x float> %784, i64 1
  %785 = fneg float %.sroa.039.4.vec.extract
  %786 = call ptr @_pCf(ptr noundef nonnull %22)
  %787 = getelementptr inbounds i8, ptr %786, i64 4
  store float %.sroa.039.0.vec.extract, ptr %786, align 4
  store float %785, ptr %787, align 4
  %788 = load float, ptr %31, align 4, !tbaa !9
  %789 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %790 = insertelement <2 x float> poison, float %788, i64 0
  %791 = shufflevector <2 x float> %790, <2 x float> poison, <2 x i32> zeroinitializer
  %792 = fmul <2 x float> %791, %789
  store <2 x float> %792, ptr %21, align 8, !tbaa !9
  %793 = load i32, ptr %30, align 4, !tbaa !5
  %794 = mul nsw i32 %793, %41
  %795 = sext i32 %794 to i64
  %gep1595 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %795
  %796 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1597 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %796
  call void @crot_(ptr noundef nonnull %3, ptr noundef %gep1595, ptr noundef nonnull @c__1, ptr noundef %gep1597, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br i1 %or.cond5, label %797, label %811

797:                                              ; preds = %782
  %798 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.038.0.vec.extract = extractelement <2 x float> %798, i64 0
  %.sroa.038.4.vec.extract = extractelement <2 x float> %798, i64 1
  %799 = fneg float %.sroa.038.4.vec.extract
  %800 = call ptr @_pCf(ptr noundef nonnull %22)
  %801 = getelementptr inbounds i8, ptr %800, i64 4
  store float %.sroa.038.0.vec.extract, ptr %800, align 4
  store float %799, ptr %801, align 4
  %802 = load float, ptr %31, align 4, !tbaa !9
  %803 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %804 = insertelement <2 x float> poison, float %802, i64 0
  %805 = shufflevector <2 x float> %804, <2 x float> poison, <2 x i32> zeroinitializer
  %806 = fmul <2 x float> %805, %803
  store <2 x float> %806, ptr %21, align 8, !tbaa !9
  %807 = load i32, ptr %30, align 4, !tbaa !5
  %808 = mul nsw i32 %807, %44
  %809 = sext i32 %808 to i64
  %gep1599 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %809
  %810 = mul nsw i64 %indvars.iv.next1907, %579
  %gep1601 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %810
  call void @crot_(ptr noundef nonnull %39, ptr noundef %gep1599, ptr noundef nonnull @c__1, ptr noundef %gep1601, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br label %811

811:                                              ; preds = %797, %782
  %812 = load float, ptr %31, align 4
  %813 = load float, ptr %26, align 4, !tbaa !9
  %814 = fpext float %813 to double
  %815 = fneg float %812
  %816 = insertelement <2 x float> poison, float %815, i64 0
  %817 = insertelement <2 x float> %816, float %812, i64 1
  %818 = fmul <2 x float> %770, %817
  %819 = insertelement <2 x float> poison, float %749, i64 0
  %820 = shufflevector <2 x float> %819, <2 x float> poison, <2 x i32> zeroinitializer
  %821 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %818, <2 x float> %820, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %822 = fcmp ole <2 x float> %821, zeroinitializer
  %823 = extractelement <2 x i1> %822, i64 1
  %824 = extractelement <2 x float> %821, i64 1
  %825 = fpext float %824 to double
  %826 = select i1 %823, double 0.000000e+00, double %825
  %sqrt1444 = call double @llvm.sqrt.f64(double %826)
  %827 = fmul double %sqrt1444, %814
  %828 = fptrunc double %827 to float
  store float %828, ptr %665, align 4, !tbaa !9
  %829 = extractelement <2 x i1> %822, i64 0
  %830 = extractelement <2 x float> %821, i64 0
  %831 = fpext float %830 to double
  %832 = select i1 %829, double 0.000000e+00, double %831
  %sqrt = call double @llvm.sqrt.f64(double %832)
  %833 = load float, ptr %24, align 4, !tbaa !9
  %834 = fpext float %833 to double
  %835 = fmul double %sqrt, %834
  %836 = fptrunc double %835 to float
  store float %836, ptr %24, align 4, !tbaa !9
  %837 = fcmp oge float %812, 0.000000e+00
  %838 = select i1 %837, float %812, float %815
  %839 = fcmp oge float %.41248, %838
  %840 = select i1 %839, float %.41248, float %838
  br label %912

841:                                              ; preds = %763
  %842 = load float, ptr @c_b41, align 4
  %843 = fcmp oge float %842, 0.000000e+00
  %844 = fneg float %842
  br i1 %752, label %845, label %847

845:                                              ; preds = %841
  %846 = select i1 %843, float %842, float %844
  br label %849

847:                                              ; preds = %841
  %848 = select i1 %843, float %844, float %842
  br label %849

849:                                              ; preds = %847, %845
  %850 = phi float [ %846, %845 ], [ %848, %847 ]
  %851 = fneg float %850
  %852 = fpext float %777 to double
  %853 = fpext float %851 to double
  %854 = call float @llvm.fmuladd.f32(float %777, float %777, float 1.000000e+00)
  %855 = fpext float %854 to double
  %sqrt1448 = call double @llvm.sqrt.f64(double %855)
  %856 = call double @llvm.fmuladd.f64(double %853, double %sqrt1448, double %852)
  %857 = fdiv double 1.000000e+00, %856
  %858 = fptrunc double %857 to float
  store float %858, ptr %31, align 4, !tbaa !9
  %859 = call float @llvm.fmuladd.f32(float %858, float %858, float 1.000000e+00)
  %860 = fdiv float 1.000000e+00, %859
  %sqrt1447 = call float @llvm.sqrt.f32(float %860)
  store float %sqrt1447, ptr %36, align 4, !tbaa !9
  %861 = fmul float %sqrt1447, %858
  %862 = fcmp oge float %861, 0.000000e+00
  %863 = fneg float %861
  %864 = select i1 %862, float %861, float %863
  %865 = fcmp oge float %.41248, %864
  %866 = select i1 %865, float %.41248, float %864
  %867 = fpext float %764 to double
  %868 = fneg float %858
  %869 = insertelement <2 x float> poison, float %868, i64 0
  %870 = insertelement <2 x float> %869, float %858, i64 1
  %871 = fmul <2 x float> %770, %870
  %872 = insertelement <2 x float> poison, float %749, i64 0
  %873 = shufflevector <2 x float> %872, <2 x float> poison, <2 x i32> zeroinitializer
  %874 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %871, <2 x float> %873, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %875 = fcmp ole <2 x float> %874, zeroinitializer
  %876 = extractelement <2 x i1> %875, i64 1
  %877 = extractelement <2 x float> %874, i64 1
  %878 = fpext float %877 to double
  %879 = select i1 %876, double 0.000000e+00, double %878
  %sqrt1446 = call double @llvm.sqrt.f64(double %879)
  %880 = fmul double %sqrt1446, %867
  %881 = fptrunc double %880 to float
  store float %881, ptr %665, align 4, !tbaa !9
  %882 = extractelement <2 x i1> %875, i64 0
  %883 = extractelement <2 x float> %874, i64 0
  %884 = fpext float %883 to double
  %885 = select i1 %882, double 0.000000e+00, double %884
  %sqrt1445 = call double @llvm.sqrt.f64(double %885)
  %886 = fpext float %765 to double
  %887 = fmul double %sqrt1445, %886
  %888 = fptrunc double %887 to float
  store float %888, ptr %24, align 4, !tbaa !9
  %889 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.037.0.vec.extract = extractelement <2 x float> %889, i64 0
  %.sroa.037.4.vec.extract = extractelement <2 x float> %889, i64 1
  %890 = fneg float %.sroa.037.4.vec.extract
  %891 = call ptr @_pCf(ptr noundef nonnull %22)
  %892 = getelementptr inbounds i8, ptr %891, i64 4
  store float %.sroa.037.0.vec.extract, ptr %891, align 4
  store float %890, ptr %892, align 4
  %893 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %894 = insertelement <2 x float> poison, float %861, i64 0
  %895 = shufflevector <2 x float> %894, <2 x float> poison, <2 x i32> zeroinitializer
  %896 = fmul <2 x float> %895, %893
  store <2 x float> %896, ptr %21, align 8, !tbaa !9
  %897 = load i32, ptr %30, align 4, !tbaa !5
  %898 = mul nsw i32 %897, %41
  %899 = sext i32 %898 to i64
  %gep1587 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %899
  %900 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1589 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %900
  call void @crot_(ptr noundef nonnull %3, ptr noundef %gep1587, ptr noundef nonnull @c__1, ptr noundef %gep1589, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br i1 %or.cond5, label %901, label %912

901:                                              ; preds = %849
  %902 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.036.0.vec.extract = extractelement <2 x float> %902, i64 0
  %.sroa.036.4.vec.extract = extractelement <2 x float> %902, i64 1
  %903 = fneg float %.sroa.036.4.vec.extract
  %904 = call ptr @_pCf(ptr noundef nonnull %22)
  %905 = getelementptr inbounds i8, ptr %904, i64 4
  store float %.sroa.036.0.vec.extract, ptr %904, align 4
  store float %903, ptr %905, align 4
  %906 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %907 = fmul <2 x float> %895, %906
  store <2 x float> %907, ptr %21, align 8, !tbaa !9
  %908 = load i32, ptr %30, align 4, !tbaa !5
  %909 = mul nsw i32 %908, %44
  %910 = sext i32 %909 to i64
  %gep1591 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %910
  %911 = mul nsw i64 %indvars.iv.next1907, %579
  %gep1593 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %911
  call void @crot_(ptr noundef nonnull %39, ptr noundef %gep1591, ptr noundef nonnull @c__1, ptr noundef %gep1593, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br label %912

912:                                              ; preds = %849, %901, %811
  %.51249 = phi float [ %840, %811 ], [ %866, %901 ], [ %866, %849 ]
  %913 = load i32, ptr %30, align 4, !tbaa !5
  %914 = getelementptr %struct.complex, ptr %11, i64 %indvars.iv1906
  %915 = load <2 x float>, ptr %914, align 4, !tbaa !9
  %916 = fneg <2 x float> %915
  store <2 x float> %916, ptr %22, align 8, !tbaa !9
  %917 = load <2 x float>, ptr %28, align 8, !tbaa !9
  %918 = shufflevector <2 x float> %916, <2 x float> %915, <2 x i32> <i32 1, i32 3>
  %919 = fmul <2 x float> %918, %917
  %920 = shufflevector <2 x float> %919, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %921 = shufflevector <2 x float> %916, <2 x float> poison, <2 x i32> zeroinitializer
  %922 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %921, <2 x float> %917, <2 x float> %920)
  store <2 x float> %922, ptr %21, align 8, !tbaa !9
  %923 = sext i32 %913 to i64
  %924 = getelementptr inbounds %struct.complex, ptr %47, i64 %923
  store <2 x float> %922, ptr %924, align 4, !tbaa !9
  %.pre1931 = load float, ptr %665, align 4, !tbaa !9
  %.pre1932 = load float, ptr %26, align 4, !tbaa !9
  br label %949

925:                                              ; preds = %756
  %926 = load i32, ptr %30, align 4, !tbaa !5
  %927 = mul nsw i32 %926, %41
  %928 = sext i32 %927 to i64
  %gep1577 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %928
  %929 = load i32, ptr %4, align 4, !tbaa !5
  %930 = sext i32 %929 to i64
  %gep1579 = getelementptr %struct.complex, ptr %11, i64 %930
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep1577, ptr noundef nonnull @c__1, ptr noundef %gep1579, ptr noundef nonnull @c__1) #10
  %931 = load i32, ptr %4, align 4, !tbaa !5
  %932 = sext i32 %931 to i64
  %gep1581 = getelementptr %struct.complex, ptr %11, i64 %932
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1581, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %933 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1583 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %933
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1583, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %934 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %935 = fneg <2 x float> %934
  store <2 x float> %935, ptr %21, align 8, !tbaa !9
  %936 = load i32, ptr %4, align 4, !tbaa !5
  %937 = sext i32 %936 to i64
  %gep1585 = getelementptr %struct.complex, ptr %11, i64 %937
  call void @caxpy_(ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef %gep1585, ptr noundef nonnull @c__1, ptr noundef %gep1583, ptr noundef nonnull @c__1) #10
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b41, ptr noundef nonnull %26, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1583, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %938 = call float @llvm.fmuladd.f32(float %748, float %749, float 1.000000e+00)
  %939 = load float, ptr %26, align 4, !tbaa !9
  %940 = fpext float %939 to double
  %941 = fcmp ole float %938, 0.000000e+00
  %942 = select i1 %941, float 0.000000e+00, float %938
  %943 = fpext float %942 to double
  %sqrt1449 = call double @llvm.sqrt.f64(double %943)
  %944 = fmul double %sqrt1449, %940
  %945 = fptrunc double %944 to float
  store float %945, ptr %665, align 4, !tbaa !9
  %946 = load float, ptr %32, align 4
  %947 = fcmp oge float %.41248, %946
  %948 = select i1 %947, float %.41248, float %946
  br label %949

949:                                              ; preds = %925, %912
  %950 = phi float [ %.pre1932, %912 ], [ %939, %925 ]
  %951 = phi float [ %.pre1931, %912 ], [ %945, %925 ]
  %.61250 = phi float [ %.51249, %912 ], [ %948, %925 ]
  %952 = fdiv float %951, %950
  %953 = fmul float %952, %952
  %954 = fcmp ugt float %953, %sqrtf1349
  br i1 %954, label %970, label %955

955:                                              ; preds = %949
  %956 = fcmp olt float %950, %141
  %957 = fcmp ogt float %950, %sqrtf1350
  %or.cond1421 = and i1 %956, %957
  br i1 %or.cond1421, label %958, label %961

958:                                              ; preds = %955
  %959 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1605 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %959
  %960 = call float @scnrm2_(ptr noundef nonnull %3, ptr noundef %gep1605, ptr noundef nonnull @c__1) #10
  br label %.sink.split

961:                                              ; preds = %955
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %962 = mul nsw i64 %indvars.iv.next1907, %578
  %gep1603 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %962
  call void @classq_(ptr noundef nonnull %3, ptr noundef %gep1603, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %26) #10
  %963 = load float, ptr %31, align 4, !tbaa !9
  %964 = fpext float %963 to double
  %965 = load float, ptr %26, align 4, !tbaa !9
  %966 = fpext float %965 to double
  %967 = call double @sqrt(double noundef %966) #10
  %968 = fmul double %967, %964
  %969 = fptrunc double %968 to float
  br label %.sink.split

.sink.split:                                      ; preds = %961, %958
  %.sink1974 = phi float [ %960, %958 ], [ %969, %961 ]
  store float %.sink1974, ptr %665, align 4, !tbaa !9
  br label %970

970:                                              ; preds = %.sink.split, %949
  %971 = load float, ptr %24, align 4, !tbaa !9
  %972 = fdiv float %971, %669
  %973 = fcmp ugt float %972, %sqrtf1349
  br i1 %973, label %1001, label %974

974:                                              ; preds = %970
  %975 = fcmp olt float %971, %141
  %976 = fcmp ogt float %971, %sqrtf1350
  %or.cond1422 = and i1 %975, %976
  br i1 %or.cond1422, label %977, label %982

977:                                              ; preds = %974
  %978 = load i32, ptr %30, align 4, !tbaa !5
  %979 = mul nsw i32 %978, %41
  %980 = sext i32 %979 to i64
  %gep1609 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %980
  %981 = call float @scnrm2_(ptr noundef nonnull %3, ptr noundef %gep1609, ptr noundef nonnull @c__1) #10
  br label %993

982:                                              ; preds = %974
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %983 = load i32, ptr %30, align 4, !tbaa !5
  %984 = mul nsw i32 %983, %41
  %985 = sext i32 %984 to i64
  %gep1607 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %985
  call void @classq_(ptr noundef nonnull %3, ptr noundef %gep1607, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %24) #10
  %986 = load float, ptr %31, align 4, !tbaa !9
  %987 = fpext float %986 to double
  %988 = load float, ptr %24, align 4, !tbaa !9
  %989 = fpext float %988 to double
  %990 = call double @sqrt(double noundef %989) #10
  %991 = fmul double %990, %987
  %992 = fptrunc double %991 to float
  br label %993

993:                                              ; preds = %982, %977
  %storemerge1410 = phi float [ %992, %982 ], [ %981, %977 ]
  store float %storemerge1410, ptr %24, align 4, !tbaa !9
  %994 = load i32, ptr %30, align 4, !tbaa !5
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds float, ptr %40, i64 %995
  store float %storemerge1410, ptr %996, align 4, !tbaa !9
  br label %1001

997:                                              ; preds = %746
  %spec.select1423 = add nsw i32 %.31224, %601
  %998 = add nsw i32 %.01185, 1
  br label %1001

999:                                              ; preds = %664
  %spec.select1424 = add nsw i32 %.31224, %601
  %1000 = add nsw i32 %.01185, 1
  br label %1001

1001:                                             ; preds = %997, %993, %970, %999
  %.51268 = phi float [ %751, %993 ], [ %751, %970 ], [ %751, %997 ], [ %.41267, %999 ]
  %.71251 = phi float [ %.61250, %993 ], [ %.61250, %970 ], [ %.41248, %997 ], [ %.41248, %999 ]
  %.71228 = phi i32 [ %.41225, %993 ], [ %.41225, %970 ], [ %spec.select1423, %997 ], [ %spec.select1424, %999 ]
  %.51219 = phi i32 [ %.41218, %993 ], [ %.41218, %970 ], [ %.31217, %997 ], [ %.31217, %999 ]
  %.2 = phi i32 [ %.1, %993 ], [ %.1, %970 ], [ %998, %997 ], [ %1000, %999 ]
  %1002 = icmp sgt i32 %.2, %410
  %or.cond1425 = select i1 %.not1411, i1 %1002, i1 false
  br i1 %or.cond1425, label %1003, label %661, !llvm.loop !30

1003:                                             ; preds = %1001
  %.pre1934 = load float, ptr %24, align 4, !tbaa !9
  br i1 %600, label %1004, label %.loopexit1461

1004:                                             ; preds = %1003
  %1005 = fneg float %.pre1934
  store float %1005, ptr %24, align 4, !tbaa !9
  br label %.loopexit1461

.loopexit1461.loopexit:                           ; preds = %661
  %.pre1933 = load float, ptr %24, align 4, !tbaa !9
  br label %.loopexit1461

.loopexit1461:                                    ; preds = %.loopexit1461.loopexit, %1003, %1004
  %1006 = phi float [ %1005, %1004 ], [ %.pre1934, %1003 ], [ %.pre1933, %.loopexit1461.loopexit ]
  %.61269 = phi float [ %.51268, %1004 ], [ %.51268, %1003 ], [ %.41267, %.loopexit1461.loopexit ]
  %.81252 = phi float [ %.71251, %1004 ], [ %.71251, %1003 ], [ %.41248, %.loopexit1461.loopexit ]
  %.81229 = phi i32 [ 0, %1004 ], [ 0, %1003 ], [ %.31224, %.loopexit1461.loopexit ]
  %.61220 = phi i32 [ %.51219, %1004 ], [ %.51219, %1003 ], [ %.31217, %.loopexit1461.loopexit ]
  %1007 = load i32, ptr %30, align 4, !tbaa !5
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds float, ptr %40, i64 %1008
  store float %1006, ptr %1009, align 4, !tbaa !9
  br label %1016

1010:                                             ; preds = %._crit_edge1929
  %1011 = fcmp oeq float %storemerge1404, 0.000000e+00
  %or.cond23 = and i1 %600, %1011
  br i1 %or.cond23, label %1012, label %1016

1012:                                             ; preds = %1010
  store i32 %596, ptr %20, align 4, !tbaa !5
  %1013 = load i32, ptr %4, align 4, !tbaa !5
  %.1426 = call i32 @llvm.smin.i32(i32 %596, i32 %1013)
  %1014 = sub i32 %.212231626, %.pn.in
  %1015 = add i32 %1014, %.1426
  br label %1016

1016:                                             ; preds = %.loopexit1461, %1012, %1010
  %1017 = phi i32 [ %1007, %.loopexit1461 ], [ %.pn.in, %1012 ], [ %.pn.in, %1010 ]
  %.71270 = phi float [ %.61269, %.loopexit1461 ], [ %.312661624, %1012 ], [ %.312661624, %1010 ]
  %.91253 = phi float [ %.81252, %.loopexit1461 ], [ %.312471625, %1012 ], [ %.312471625, %1010 ]
  %.91230 = phi i32 [ %.81229, %.loopexit1461 ], [ %1015, %1012 ], [ %.212231626, %1010 ]
  %.7 = phi i32 [ %.61220, %.loopexit1461 ], [ %.212161627, %1012 ], [ %.212161627, %1010 ]
  %1018 = add nsw i32 %1017, 1
  store i32 %1018, ptr %30, align 4, !tbaa !5
  %1019 = load i32, ptr %19, align 4, !tbaa !5
  %.not1402.not = icmp slt i32 %1017, %1019
  br i1 %.not1402.not, label %602, label %._crit_edge1632.loopexit, !llvm.loop !31

._crit_edge1632.loopexit:                         ; preds = %1016
  %.pre1935 = load i32, ptr %18, align 4, !tbaa !5
  br label %._crit_edge1632

._crit_edge1632:                                  ; preds = %._crit_edge1632.loopexit, %.lr.ph1649
  %1020 = phi i32 [ %593, %.lr.ph1649 ], [ %.pre1935, %._crit_edge1632.loopexit ]
  %.31266.lcssa = phi float [ %.212651640, %.lr.ph1649 ], [ %.71270, %._crit_edge1632.loopexit ]
  %.31247.lcssa = phi float [ %.212461641, %.lr.ph1649 ], [ %.91253, %._crit_edge1632.loopexit ]
  %.21223.lcssa = phi i32 [ %.112221643, %.lr.ph1649 ], [ %.91230, %._crit_edge1632.loopexit ]
  %.21216.lcssa = phi i32 [ %.112151644, %.lr.ph1649 ], [ %.7, %._crit_edge1632.loopexit ]
  %1021 = add nuw nsw i32 %.012431642, 1
  %.not1385.not = icmp slt i32 %.012431642, %1020
  br i1 %.not1385.not, label %.lr.ph1649, label %._crit_edge1650, !llvm.loop !32

._crit_edge1650:                                  ; preds = %._crit_edge1632, %585
  %.21265.lcssa = phi float [ %.112641795, %585 ], [ %.31266.lcssa, %._crit_edge1632 ]
  %.21246.lcssa = phi float [ %.112451796, %585 ], [ %.31247.lcssa, %._crit_edge1632 ]
  %.11222.lcssa = phi i32 [ %.012211797, %585 ], [ %.21223.lcssa, %._crit_edge1632 ]
  %.11215.lcssa = phi i32 [ %.012141798, %585 ], [ %.21216.lcssa, %._crit_edge1632 ]
  store i32 %.01205, ptr %18, align 4, !tbaa !5
  %1022 = add nuw nsw i32 %.012071799, 1
  %.not13861773.not = icmp slt i32 %.012071799, %.01205
  %1023 = mul i32 %.012071799, %spec.select1418
  br i1 %.not13861773.not, label %.lr.ph1782, label %.loopexit1463

.lr.ph1782:                                       ; preds = %._crit_edge1650, %._crit_edge1766
  %1024 = phi i32 [ %1467, %._crit_edge1766 ], [ %.01205, %._crit_edge1650 ]
  %indvars.iv1911 = phi i32 [ %indvars.iv.next1912, %._crit_edge1766 ], [ %indvars.iv1909, %._crit_edge1650 ]
  %.012131778 = phi i32 [ %1468, %._crit_edge1766 ], [ %1022, %._crit_edge1650 ]
  %.81777 = phi i32 [ %.9.lcssa, %._crit_edge1766 ], [ %.11215.lcssa, %._crit_edge1650 ]
  %.1012311776 = phi i32 [ %.111232.lcssa, %._crit_edge1766 ], [ %.11222.lcssa, %._crit_edge1650 ]
  %.1012541775 = phi float [ %.111255.lcssa, %._crit_edge1766 ], [ %.21246.lcssa, %._crit_edge1650 ]
  %.812711774 = phi float [ %.91272.lcssa, %._crit_edge1766 ], [ %.21265.lcssa, %._crit_edge1650 ]
  %1025 = sext i32 %indvars.iv1911 to i64
  %1026 = add nsw i32 %.012131778, -1
  %1027 = mul nsw i32 %1026, %spec.select1418
  store i32 %1023, ptr %20, align 4, !tbaa !5
  %1028 = load i32, ptr %4, align 4, !tbaa !5
  %.1427 = call i32 @llvm.smin.i32(i32 %1023, i32 %1028)
  store i32 %.1427, ptr %19, align 4, !tbaa !5
  store i32 %590, ptr %30, align 4, !tbaa !5
  %.not13891755.not = icmp slt i32 %589, %.1427
  br i1 %.not13891755.not, label %.lr.ph1765, label %._crit_edge1766

.lr.ph1765:                                       ; preds = %.lr.ph1782
  %1029 = mul i32 %.012131778, %spec.select1418
  br label %1030

1030:                                             ; preds = %.lr.ph1765, %1463
  %1031 = phi i32 [ %.1427, %.lr.ph1765 ], [ %1464, %1463 ]
  %.91761 = phi i32 [ %.81777, %.lr.ph1765 ], [ %.13, %1463 ]
  %.1112321760 = phi i32 [ %.1012311776, %.lr.ph1765 ], [ %.16, %1463 ]
  %.012361759 = phi i32 [ 0, %.lr.ph1765 ], [ %.41240, %1463 ]
  %.1112551758 = phi float [ %.1012541775, %.lr.ph1765 ], [ %.171261, %1463 ]
  %.912721757 = phi float [ %.812711774, %.lr.ph1765 ], [ %.131276, %1463 ]
  %storemerge13881756 = phi i32 [ %590, %.lr.ph1765 ], [ %1466, %1463 ]
  %1032 = sext i32 %storemerge13881756 to i64
  %1033 = getelementptr inbounds float, ptr %40, i64 %1032
  %1034 = load float, ptr %1033, align 4, !tbaa !9
  store float %1034, ptr %24, align 4, !tbaa !9
  %1035 = fcmp ogt float %1034, 0.000000e+00
  br i1 %1035, label %1036, label %1454

1036:                                             ; preds = %1030
  %1037 = load i32, ptr %4, align 4, !tbaa !5
  %.1428 = call i32 @llvm.smin.i32(i32 %1029, i32 %1037)
  store i32 %.1428, ptr %20, align 4, !tbaa !5
  %.not13921733.not = icmp slt i32 %1027, %.1428
  br i1 %.not13921733.not, label %.lr.ph1747, label %.loopexit1460

1038:                                             ; preds = %1445
  %1039 = load i32, ptr %20, align 4, !tbaa !5
  %1040 = sext i32 %1039 to i64
  %.not1392.not = icmp slt i64 %indvars.iv.next1914, %1040
  br i1 %.not1392.not, label %.lr.ph1747, label %.loopexit1460.loopexit, !llvm.loop !33

.lr.ph1747:                                       ; preds = %1036, %1038
  %indvars.iv1913 = phi i64 [ %indvars.iv.next1914, %1038 ], [ %1025, %1036 ]
  %.31743 = phi i32 [ %.4, %1038 ], [ 0, %1036 ]
  %.101738 = phi i32 [ %.11, %1038 ], [ %.91761, %1036 ]
  %.1212331737 = phi i32 [ %.131234, %1038 ], [ %.1112321760, %1036 ]
  %.112371736 = phi i32 [ %.21238, %1038 ], [ %.012361759, %1036 ]
  %.1212561735 = phi float [ %.151259, %1038 ], [ %.1112551758, %1036 ]
  %.1012731734 = phi float [ %.111274, %1038 ], [ %.912721757, %1036 ]
  %indvars.iv.next1914 = add nsw i64 %indvars.iv1913, 1
  %1041 = getelementptr float, ptr %7, i64 %indvars.iv1913
  %1042 = load float, ptr %1041, align 4, !tbaa !9
  store float %1042, ptr %26, align 4, !tbaa !9
  %1043 = fcmp ogt float %1042, 0.000000e+00
  br i1 %1043, label %1044, label %1435

1044:                                             ; preds = %.lr.ph1747
  %1045 = load float, ptr %24, align 4, !tbaa !9
  %1046 = fcmp ult float %1042, 1.000000e+00
  %1047 = fcmp ult float %1045, %1042
  br i1 %1046, label %1086, label %1048

1048:                                             ; preds = %1044
  %1049 = fmul float %139, %1045
  %1050 = fcmp ole float %1049, %1042
  %1051 = fmul float %139, %1042
  %1052 = fcmp ole float %1051, %1045
  %.11210.in = select i1 %1047, i1 %1052, i1 %1050
  %1053 = fdiv float %140, %1042
  %1054 = fcmp olt float %1045, %1053
  %1055 = load i32, ptr %30, align 4, !tbaa !5
  %1056 = mul nsw i32 %1055, %41
  %1057 = sext i32 %1056 to i64
  %gep1668 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1057
  br i1 %1054, label %1058, label %1071

1058:                                             ; preds = %1048
  %1059 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1670 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1059
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %3, ptr noundef %gep1668, ptr noundef nonnull @c__1, ptr noundef %gep1670, ptr noundef nonnull @c__1)
  %1060 = load float, ptr %26, align 4, !tbaa !9
  %1061 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %1062 = insertelement <2 x float> poison, float %1060, i64 0
  %1063 = shufflevector <2 x float> %1062, <2 x float> poison, <2 x i32> zeroinitializer
  %1064 = fdiv <2 x float> %1061, %1063
  store <2 x float> %1064, ptr %22, align 8, !tbaa !9
  %1065 = load float, ptr %24, align 4, !tbaa !9
  %1066 = insertelement <2 x float> poison, float %1065, i64 0
  %1067 = shufflevector <2 x float> %1066, <2 x float> poison, <2 x i32> zeroinitializer
  %1068 = fdiv <2 x float> %1064, %1067
  store <2 x float> %1068, ptr %21, align 8, !tbaa !9
  %1069 = extractelement <2 x float> %1068, i64 0
  store float %1069, ptr %25, align 8, !tbaa !11
  %1070 = extractelement <2 x float> %1068, i64 1
  br label %1135

1071:                                             ; preds = %1048
  %1072 = load i32, ptr %4, align 4, !tbaa !5
  %1073 = sext i32 %1072 to i64
  %gep1660 = getelementptr %struct.complex, ptr %11, i64 %1073
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep1668, ptr noundef nonnull @c__1, ptr noundef %gep1660, ptr noundef nonnull @c__1) #10
  %1074 = load i32, ptr %4, align 4, !tbaa !5
  %1075 = sext i32 %1074 to i64
  %gep1662 = getelementptr %struct.complex, ptr %11, i64 %1075
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1662, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1076 = load i32, ptr %4, align 4, !tbaa !5
  %1077 = sext i32 %1076 to i64
  %gep1664 = getelementptr %struct.complex, ptr %11, i64 %1077
  %1078 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1666 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1078
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %3, ptr noundef %gep1664, ptr noundef nonnull @c__1, ptr noundef %gep1666, ptr noundef nonnull @c__1)
  %1079 = load float, ptr %26, align 4, !tbaa !9
  %1080 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %1081 = insertelement <2 x float> poison, float %1079, i64 0
  %1082 = shufflevector <2 x float> %1081, <2 x float> poison, <2 x i32> zeroinitializer
  %1083 = fdiv <2 x float> %1080, %1082
  store <2 x float> %1083, ptr %21, align 8, !tbaa !9
  %1084 = extractelement <2 x float> %1083, i64 0
  store float %1084, ptr %25, align 8, !tbaa !11
  %1085 = extractelement <2 x float> %1083, i64 1
  br label %1135

1086:                                             ; preds = %1044
  %1087 = insertelement <2 x float> poison, float %1042, i64 0
  %1088 = insertelement <2 x float> %1087, float %1045, i64 1
  %1089 = fdiv <2 x float> %1088, %581
  %1090 = insertelement <2 x float> poison, float %1045, i64 0
  %1091 = insertelement <2 x float> %1090, float %1042, i64 1
  %1092 = fcmp ole <2 x float> %1091, %1089
  %1093 = extractelement <2 x i1> %1092, i64 0
  %1094 = extractelement <2 x i1> %1092, i64 1
  %.21211.in = select i1 %1047, i1 %1094, i1 %1093
  %1095 = fdiv float %139, %1042
  %1096 = fcmp ogt float %1045, %1095
  br i1 %1096, label %1097, label %1117

1097:                                             ; preds = %1086
  %1098 = load i32, ptr %30, align 4, !tbaa !5
  %1099 = mul nsw i32 %1098, %41
  %1100 = sext i32 %1099 to i64
  %gep1682 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1100
  %1101 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1684 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1101
  call void @cdotc_(ptr noundef nonnull %23, ptr noundef nonnull %3, ptr noundef %gep1682, ptr noundef nonnull @c__1, ptr noundef %gep1684, ptr noundef nonnull @c__1)
  %1102 = load float, ptr %26, align 4
  %1103 = load float, ptr %24, align 4
  %1104 = fcmp oge float %1102, %1103
  %1105 = select i1 %1104, float %1102, float %1103
  %1106 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %1107 = insertelement <2 x float> poison, float %1105, i64 0
  %1108 = shufflevector <2 x float> %1107, <2 x float> poison, <2 x i32> zeroinitializer
  %1109 = fdiv <2 x float> %1106, %1108
  store <2 x float> %1109, ptr %22, align 8, !tbaa !9
  %1110 = fcmp ole float %1102, %1103
  %1111 = select i1 %1110, float %1102, float %1103
  %1112 = insertelement <2 x float> poison, float %1111, i64 0
  %1113 = shufflevector <2 x float> %1112, <2 x float> poison, <2 x i32> zeroinitializer
  %1114 = fdiv <2 x float> %1109, %1113
  store <2 x float> %1114, ptr %21, align 8, !tbaa !9
  %1115 = extractelement <2 x float> %1114, i64 0
  store float %1115, ptr %25, align 8, !tbaa !11
  %1116 = extractelement <2 x float> %1114, i64 1
  br label %1135

1117:                                             ; preds = %1086
  %1118 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1672 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1118
  %1119 = load i32, ptr %4, align 4, !tbaa !5
  %1120 = sext i32 %1119 to i64
  %gep1674 = getelementptr %struct.complex, ptr %11, i64 %1120
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep1672, ptr noundef nonnull @c__1, ptr noundef %gep1674, ptr noundef nonnull @c__1) #10
  %1121 = load i32, ptr %4, align 4, !tbaa !5
  %1122 = sext i32 %1121 to i64
  %gep1676 = getelementptr %struct.complex, ptr %11, i64 %1122
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1676, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1123 = load i32, ptr %30, align 4, !tbaa !5
  %1124 = mul nsw i32 %1123, %41
  %1125 = sext i32 %1124 to i64
  %gep1678 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1125
  %1126 = load i32, ptr %4, align 4, !tbaa !5
  %1127 = sext i32 %1126 to i64
  %gep1680 = getelementptr %struct.complex, ptr %11, i64 %1127
  call void @cdotc_(ptr noundef nonnull %22, ptr noundef nonnull %3, ptr noundef %gep1678, ptr noundef nonnull @c__1, ptr noundef %gep1680, ptr noundef nonnull @c__1)
  %1128 = load float, ptr %24, align 4, !tbaa !9
  %1129 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %1130 = insertelement <2 x float> poison, float %1128, i64 0
  %1131 = shufflevector <2 x float> %1130, <2 x float> poison, <2 x i32> zeroinitializer
  %1132 = fdiv <2 x float> %1129, %1131
  store <2 x float> %1132, ptr %21, align 8, !tbaa !9
  %1133 = extractelement <2 x float> %1132, i64 0
  store float %1133, ptr %25, align 8, !tbaa !11
  %1134 = extractelement <2 x float> %1132, i64 1
  br label %1135

1135:                                             ; preds = %1097, %1117, %1058, %1071
  %.sink1975 = phi float [ %1116, %1097 ], [ %1134, %1117 ], [ %1070, %1058 ], [ %1085, %1071 ]
  %.31212.in = phi i1 [ %.21211.in, %1097 ], [ %.21211.in, %1117 ], [ %.11210.in, %1058 ], [ %.11210.in, %1071 ]
  store float %.sink1975, ptr %577, align 4, !tbaa !13
  %1136 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %1137 = call float @cabsf(<2 x float> noundef %1136) #10
  %1138 = fneg float %1137
  %1139 = fcmp oge float %.1012731734, %1137
  %1140 = select i1 %1139, float %.1012731734, float %1137
  %1141 = fcmp ole float %1137, 0.000000e+00
  %1142 = select i1 %1141, float %1138, float %1137
  %1143 = load float, ptr %38, align 4, !tbaa !9
  %1144 = fcmp ogt float %1142, %1143
  br i1 %1144, label %1145, label %1431

1145:                                             ; preds = %1135
  %1146 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %1147 = call float @cabsf(<2 x float> noundef %1146) #10
  %1148 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %1149 = insertelement <2 x float> poison, float %1147, i64 0
  %1150 = shufflevector <2 x float> %1149, <2 x float> poison, <2 x i32> zeroinitializer
  %1151 = fdiv <2 x float> %1148, %1150
  store <2 x float> %1151, ptr %21, align 8, !tbaa !9
  store <2 x float> %1151, ptr %28, align 8, !tbaa !9
  %1152 = add nsw i32 %.101738, 1
  br i1 %.31212.in, label %1153, label %1317

1153:                                             ; preds = %1145
  %1154 = load float, ptr %26, align 4, !tbaa !9
  %1155 = load float, ptr %24, align 4, !tbaa !9
  %1156 = insertelement <2 x float> poison, float %1154, i64 0
  %1157 = insertelement <2 x float> %1156, float %1155, i64 1
  %1158 = insertelement <2 x float> poison, float %1155, i64 0
  %1159 = insertelement <2 x float> %1158, float %1154, i64 1
  %1160 = fdiv <2 x float> %1157, %1159
  %shift2081 = shufflevector <2 x float> %1160, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %1161 = fsub <2 x float> %1160, %shift2081
  %1162 = extractelement <2 x float> %1161, i64 0
  %1163 = fcmp oge float %1162, 0.000000e+00
  %1164 = fneg float %1162
  %1165 = select i1 %1163, float %1162, float %1164
  %1166 = fmul float %1165, -5.000000e-01
  %1167 = fdiv float %1166, %1138
  %1168 = fcmp ogt float %1154, %1045
  %1169 = fneg float %1167
  %.01206 = select i1 %1168, float %1169, float %1167
  %1170 = fcmp oge float %.01206, 0.000000e+00
  %1171 = fneg float %.01206
  %1172 = select i1 %1170, float %.01206, float %1171
  %1173 = fcmp ogt float %1172, %142
  br i1 %1173, label %1174, label %1233

1174:                                             ; preds = %1153
  %1175 = fdiv float 5.000000e-01, %.01206
  store float %1175, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %36, align 4, !tbaa !9
  %1176 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.029.0.vec.extract = extractelement <2 x float> %1176, i64 0
  %.sroa.029.4.vec.extract = extractelement <2 x float> %1176, i64 1
  %1177 = fneg float %.sroa.029.4.vec.extract
  %1178 = call ptr @_pCf(ptr noundef nonnull %22)
  %1179 = getelementptr inbounds i8, ptr %1178, i64 4
  store float %.sroa.029.0.vec.extract, ptr %1178, align 4
  store float %1177, ptr %1179, align 4
  %1180 = load float, ptr %31, align 4, !tbaa !9
  %1181 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %1182 = insertelement <2 x float> poison, float %1180, i64 0
  %1183 = shufflevector <2 x float> %1182, <2 x float> poison, <2 x i32> zeroinitializer
  %1184 = fmul <2 x float> %1183, %1181
  store <2 x float> %1184, ptr %21, align 8, !tbaa !9
  %1185 = load i32, ptr %30, align 4, !tbaa !5
  %1186 = mul nsw i32 %1185, %41
  %1187 = sext i32 %1186 to i64
  %gep1718 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1187
  %1188 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1720 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1188
  call void @crot_(ptr noundef nonnull %3, ptr noundef %gep1718, ptr noundef nonnull @c__1, ptr noundef %gep1720, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br i1 %or.cond5, label %1189, label %1203

1189:                                             ; preds = %1174
  %1190 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1190, i64 0
  %.sroa.028.4.vec.extract = extractelement <2 x float> %1190, i64 1
  %1191 = fneg float %.sroa.028.4.vec.extract
  %1192 = call ptr @_pCf(ptr noundef nonnull %22)
  %1193 = getelementptr inbounds i8, ptr %1192, i64 4
  store float %.sroa.028.0.vec.extract, ptr %1192, align 4
  store float %1191, ptr %1193, align 4
  %1194 = load float, ptr %31, align 4, !tbaa !9
  %1195 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %1196 = insertelement <2 x float> poison, float %1194, i64 0
  %1197 = shufflevector <2 x float> %1196, <2 x float> poison, <2 x i32> zeroinitializer
  %1198 = fmul <2 x float> %1197, %1195
  store <2 x float> %1198, ptr %21, align 8, !tbaa !9
  %1199 = load i32, ptr %30, align 4, !tbaa !5
  %1200 = mul nsw i32 %1199, %44
  %1201 = sext i32 %1200 to i64
  %gep1722 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1201
  %1202 = mul nsw i64 %indvars.iv.next1914, %579
  %gep1724 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1202
  call void @crot_(ptr noundef nonnull %39, ptr noundef %gep1722, ptr noundef nonnull @c__1, ptr noundef %gep1724, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br label %1203

1203:                                             ; preds = %1189, %1174
  %1204 = load float, ptr %31, align 4
  %1205 = load float, ptr %26, align 4, !tbaa !9
  %1206 = fpext float %1205 to double
  %1207 = fneg float %1204
  %1208 = insertelement <2 x float> poison, float %1207, i64 0
  %1209 = insertelement <2 x float> %1208, float %1204, i64 1
  %1210 = fmul <2 x float> %1160, %1209
  %1211 = insertelement <2 x float> poison, float %1138, i64 0
  %1212 = shufflevector <2 x float> %1211, <2 x float> poison, <2 x i32> zeroinitializer
  %1213 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1210, <2 x float> %1212, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %1214 = fcmp ole <2 x float> %1213, zeroinitializer
  %1215 = extractelement <2 x i1> %1214, i64 1
  %1216 = extractelement <2 x float> %1213, i64 1
  %1217 = fpext float %1216 to double
  %1218 = select i1 %1215, double 0.000000e+00, double %1217
  %sqrt1451 = call double @llvm.sqrt.f64(double %1218)
  %1219 = fmul double %sqrt1451, %1206
  %1220 = fptrunc double %1219 to float
  store float %1220, ptr %1041, align 4, !tbaa !9
  %1221 = extractelement <2 x i1> %1214, i64 0
  %1222 = extractelement <2 x float> %1213, i64 0
  %1223 = fpext float %1222 to double
  %1224 = select i1 %1221, double 0.000000e+00, double %1223
  %sqrt1450 = call double @llvm.sqrt.f64(double %1224)
  %1225 = load float, ptr %24, align 4, !tbaa !9
  %1226 = fpext float %1225 to double
  %1227 = fmul double %sqrt1450, %1226
  %1228 = fptrunc double %1227 to float
  store float %1228, ptr %24, align 4, !tbaa !9
  %1229 = fcmp oge float %1204, 0.000000e+00
  %1230 = select i1 %1229, float %1204, float %1207
  %1231 = fcmp oge float %.1212561735, %1230
  %1232 = select i1 %1231, float %.1212561735, float %1230
  br label %1304

1233:                                             ; preds = %1153
  %1234 = load float, ptr @c_b41, align 4
  %1235 = fcmp oge float %1234, 0.000000e+00
  %1236 = fneg float %1234
  br i1 %1141, label %1237, label %1239

1237:                                             ; preds = %1233
  %1238 = select i1 %1235, float %1234, float %1236
  br label %1241

1239:                                             ; preds = %1233
  %1240 = select i1 %1235, float %1236, float %1234
  br label %1241

1241:                                             ; preds = %1239, %1237
  %1242 = phi float [ %1238, %1237 ], [ %1240, %1239 ]
  %1243 = fneg float %1242
  %.01262 = select i1 %1168, float %1242, float %1243
  %1244 = fpext float %.01206 to double
  %1245 = fpext float %.01262 to double
  %1246 = call float @llvm.fmuladd.f32(float %.01206, float %.01206, float 1.000000e+00)
  %1247 = fpext float %1246 to double
  %sqrt1455 = call double @llvm.sqrt.f64(double %1247)
  %1248 = call double @llvm.fmuladd.f64(double %1245, double %sqrt1455, double %1244)
  %1249 = fdiv double 1.000000e+00, %1248
  %1250 = fptrunc double %1249 to float
  store float %1250, ptr %31, align 4, !tbaa !9
  %1251 = call float @llvm.fmuladd.f32(float %1250, float %1250, float 1.000000e+00)
  %1252 = fdiv float 1.000000e+00, %1251
  %sqrt1454 = call float @llvm.sqrt.f32(float %1252)
  store float %sqrt1454, ptr %36, align 4, !tbaa !9
  %1253 = fmul float %sqrt1454, %1250
  %1254 = fcmp oge float %1253, 0.000000e+00
  %1255 = fneg float %1253
  %1256 = select i1 %1254, float %1253, float %1255
  %1257 = fcmp oge float %.1212561735, %1256
  %1258 = select i1 %1257, float %.1212561735, float %1256
  %1259 = fpext float %1154 to double
  %1260 = fneg float %1250
  %1261 = insertelement <2 x float> poison, float %1260, i64 0
  %1262 = insertelement <2 x float> %1261, float %1250, i64 1
  %1263 = fmul <2 x float> %1160, %1262
  %1264 = insertelement <2 x float> poison, float %1138, i64 0
  %1265 = shufflevector <2 x float> %1264, <2 x float> poison, <2 x i32> zeroinitializer
  %1266 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1263, <2 x float> %1265, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %1267 = fcmp ole <2 x float> %1266, zeroinitializer
  %1268 = extractelement <2 x i1> %1267, i64 1
  %1269 = extractelement <2 x float> %1266, i64 1
  %1270 = fpext float %1269 to double
  %1271 = select i1 %1268, double 0.000000e+00, double %1270
  %sqrt1453 = call double @llvm.sqrt.f64(double %1271)
  %1272 = fmul double %sqrt1453, %1259
  %1273 = fptrunc double %1272 to float
  store float %1273, ptr %1041, align 4, !tbaa !9
  %1274 = extractelement <2 x i1> %1267, i64 0
  %1275 = extractelement <2 x float> %1266, i64 0
  %1276 = fpext float %1275 to double
  %1277 = select i1 %1274, double 0.000000e+00, double %1276
  %sqrt1452 = call double @llvm.sqrt.f64(double %1277)
  %1278 = fpext float %1155 to double
  %1279 = fmul double %sqrt1452, %1278
  %1280 = fptrunc double %1279 to float
  store float %1280, ptr %24, align 4, !tbaa !9
  %1281 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.027.0.vec.extract = extractelement <2 x float> %1281, i64 0
  %.sroa.027.4.vec.extract = extractelement <2 x float> %1281, i64 1
  %1282 = fneg float %.sroa.027.4.vec.extract
  %1283 = call ptr @_pCf(ptr noundef nonnull %22)
  %1284 = getelementptr inbounds i8, ptr %1283, i64 4
  store float %.sroa.027.0.vec.extract, ptr %1283, align 4
  store float %1282, ptr %1284, align 4
  %1285 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %1286 = insertelement <2 x float> poison, float %1253, i64 0
  %1287 = shufflevector <2 x float> %1286, <2 x float> poison, <2 x i32> zeroinitializer
  %1288 = fmul <2 x float> %1287, %1285
  store <2 x float> %1288, ptr %21, align 8, !tbaa !9
  %1289 = load i32, ptr %30, align 4, !tbaa !5
  %1290 = mul nsw i32 %1289, %41
  %1291 = sext i32 %1290 to i64
  %gep1710 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1291
  %1292 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1712 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1292
  call void @crot_(ptr noundef nonnull %3, ptr noundef %gep1710, ptr noundef nonnull @c__1, ptr noundef %gep1712, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br i1 %or.cond5, label %1293, label %1304

1293:                                             ; preds = %1241
  %1294 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.026.0.vec.extract = extractelement <2 x float> %1294, i64 0
  %.sroa.026.4.vec.extract = extractelement <2 x float> %1294, i64 1
  %1295 = fneg float %.sroa.026.4.vec.extract
  %1296 = call ptr @_pCf(ptr noundef nonnull %22)
  %1297 = getelementptr inbounds i8, ptr %1296, i64 4
  store float %.sroa.026.0.vec.extract, ptr %1296, align 4
  store float %1295, ptr %1297, align 4
  %1298 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %1299 = fmul <2 x float> %1287, %1298
  store <2 x float> %1299, ptr %21, align 8, !tbaa !9
  %1300 = load i32, ptr %30, align 4, !tbaa !5
  %1301 = mul nsw i32 %1300, %44
  %1302 = sext i32 %1301 to i64
  %gep1714 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1302
  %1303 = mul nsw i64 %indvars.iv.next1914, %579
  %gep1716 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1303
  call void @crot_(ptr noundef nonnull %39, ptr noundef %gep1714, ptr noundef nonnull @c__1, ptr noundef %gep1716, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %21) #10
  br label %1304

1304:                                             ; preds = %1241, %1293, %1203
  %.131257 = phi float [ %1232, %1203 ], [ %1258, %1293 ], [ %1258, %1241 ]
  %1305 = load i32, ptr %30, align 4, !tbaa !5
  %1306 = getelementptr %struct.complex, ptr %11, i64 %indvars.iv1913
  %1307 = load <2 x float>, ptr %1306, align 4, !tbaa !9
  %1308 = fneg <2 x float> %1307
  store <2 x float> %1308, ptr %22, align 8, !tbaa !9
  %1309 = load <2 x float>, ptr %28, align 8, !tbaa !9
  %1310 = shufflevector <2 x float> %1308, <2 x float> %1307, <2 x i32> <i32 1, i32 3>
  %1311 = fmul <2 x float> %1310, %1309
  %1312 = shufflevector <2 x float> %1311, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1313 = shufflevector <2 x float> %1308, <2 x float> poison, <2 x i32> zeroinitializer
  %1314 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1313, <2 x float> %1309, <2 x float> %1312)
  store <2 x float> %1314, ptr %21, align 8, !tbaa !9
  %1315 = sext i32 %1305 to i64
  %1316 = getelementptr inbounds %struct.complex, ptr %47, i64 %1315
  store <2 x float> %1314, ptr %1316, align 4, !tbaa !9
  br label %1382

1317:                                             ; preds = %1145
  %1318 = load float, ptr %24, align 4, !tbaa !9
  %1319 = load float, ptr %26, align 4, !tbaa !9
  %1320 = fcmp ogt float %1318, %1319
  br i1 %1320, label %1321, label %1345

1321:                                             ; preds = %1317
  %1322 = load i32, ptr %30, align 4, !tbaa !5
  %1323 = mul nsw i32 %1322, %41
  %1324 = sext i32 %1323 to i64
  %gep1700 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1324
  %1325 = load i32, ptr %4, align 4, !tbaa !5
  %1326 = sext i32 %1325 to i64
  %gep1702 = getelementptr %struct.complex, ptr %11, i64 %1326
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep1700, ptr noundef nonnull @c__1, ptr noundef %gep1702, ptr noundef nonnull @c__1) #10
  %1327 = load i32, ptr %4, align 4, !tbaa !5
  %1328 = sext i32 %1327 to i64
  %gep1704 = getelementptr %struct.complex, ptr %11, i64 %1328
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1704, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1329 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1706 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1329
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1706, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1330 = load <2 x float>, ptr %25, align 8, !tbaa !9
  %1331 = fneg <2 x float> %1330
  store <2 x float> %1331, ptr %21, align 8, !tbaa !9
  %1332 = load i32, ptr %4, align 4, !tbaa !5
  %1333 = sext i32 %1332 to i64
  %gep1708 = getelementptr %struct.complex, ptr %11, i64 %1333
  call void @caxpy_(ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef %gep1708, ptr noundef nonnull @c__1, ptr noundef %gep1706, ptr noundef nonnull @c__1) #10
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b41, ptr noundef nonnull %26, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1706, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1334 = call float @llvm.fmuladd.f32(float %1137, float %1138, float 1.000000e+00)
  %1335 = load float, ptr %26, align 4, !tbaa !9
  %1336 = fpext float %1335 to double
  %1337 = fcmp ole float %1334, 0.000000e+00
  %1338 = select i1 %1337, float 0.000000e+00, float %1334
  %1339 = fpext float %1338 to double
  %sqrt1456 = call double @llvm.sqrt.f64(double %1339)
  %1340 = fmul double %sqrt1456, %1336
  %1341 = fptrunc double %1340 to float
  store float %1341, ptr %1041, align 4, !tbaa !9
  %1342 = load float, ptr %32, align 4
  %1343 = fcmp oge float %.1212561735, %1342
  %1344 = select i1 %1343, float %.1212561735, float %1342
  br label %1382

1345:                                             ; preds = %1317
  %1346 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1686 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1346
  %1347 = load i32, ptr %4, align 4, !tbaa !5
  %1348 = sext i32 %1347 to i64
  %gep1688 = getelementptr %struct.complex, ptr %11, i64 %1348
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep1686, ptr noundef nonnull @c__1, ptr noundef %gep1688, ptr noundef nonnull @c__1) #10
  %1349 = load i32, ptr %4, align 4, !tbaa !5
  %1350 = sext i32 %1349 to i64
  %gep1690 = getelementptr %struct.complex, ptr %11, i64 %1350
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1690, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1351 = load i32, ptr %30, align 4, !tbaa !5
  %1352 = mul nsw i32 %1351, %41
  %1353 = sext i32 %1352 to i64
  %gep1692 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1353
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1692, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1354 = call <2 x float> @Cf(ptr noundef nonnull %25)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %1354, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1354, i64 1
  %1355 = fneg float %.sroa.0.4.vec.extract
  %1356 = call ptr @_pCf(ptr noundef nonnull %22)
  %1357 = getelementptr inbounds i8, ptr %1356, i64 4
  store float %.sroa.0.0.vec.extract, ptr %1356, align 4
  store float %1355, ptr %1357, align 4
  %1358 = load <2 x float>, ptr %22, align 8, !tbaa !9
  %1359 = fneg <2 x float> %1358
  store <2 x float> %1359, ptr %21, align 8, !tbaa !9
  %1360 = load i32, ptr %4, align 4, !tbaa !5
  %1361 = sext i32 %1360 to i64
  %gep1694 = getelementptr %struct.complex, ptr %11, i64 %1361
  %1362 = load i32, ptr %30, align 4, !tbaa !5
  %1363 = mul nsw i32 %1362, %41
  %1364 = sext i32 %1363 to i64
  %gep1696 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1364
  call void @caxpy_(ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef %gep1694, ptr noundef nonnull @c__1, ptr noundef %gep1696, ptr noundef nonnull @c__1) #10
  %1365 = load i32, ptr %30, align 4, !tbaa !5
  %1366 = mul nsw i32 %1365, %41
  %1367 = sext i32 %1366 to i64
  %gep1698 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1367
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b41, ptr noundef nonnull %24, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1698, ptr noundef nonnull %6, ptr noundef nonnull %27) #10
  %1368 = call float @llvm.fmuladd.f32(float %1137, float %1138, float 1.000000e+00)
  %1369 = load float, ptr %24, align 4, !tbaa !9
  %1370 = fpext float %1369 to double
  %1371 = fcmp ole float %1368, 0.000000e+00
  %1372 = select i1 %1371, float 0.000000e+00, float %1368
  %1373 = fpext float %1372 to double
  %sqrt1457 = call double @llvm.sqrt.f64(double %1373)
  %1374 = fmul double %sqrt1457, %1370
  %1375 = fptrunc double %1374 to float
  %1376 = load i32, ptr %30, align 4, !tbaa !5
  %1377 = sext i32 %1376 to i64
  %1378 = getelementptr inbounds float, ptr %40, i64 %1377
  store float %1375, ptr %1378, align 4, !tbaa !9
  %1379 = load float, ptr %32, align 4
  %1380 = fcmp oge float %.1212561735, %1379
  %1381 = select i1 %1380, float %.1212561735, float %1379
  br label %1382

1382:                                             ; preds = %1321, %1345, %1304
  %.141258 = phi float [ %.131257, %1304 ], [ %1344, %1321 ], [ %1381, %1345 ]
  %1383 = load float, ptr %1041, align 4, !tbaa !9
  %1384 = load float, ptr %26, align 4, !tbaa !9
  %1385 = fdiv float %1383, %1384
  %1386 = fmul float %1385, %1385
  %1387 = fcmp ugt float %1386, %sqrtf1349
  br i1 %1387, label %1403, label %1388

1388:                                             ; preds = %1382
  %1389 = fcmp olt float %1384, %141
  %1390 = fcmp ogt float %1384, %sqrtf1350
  %or.cond1429 = and i1 %1389, %1390
  br i1 %or.cond1429, label %1391, label %1394

1391:                                             ; preds = %1388
  %1392 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1728 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1392
  %1393 = call float @scnrm2_(ptr noundef nonnull %3, ptr noundef %gep1728, ptr noundef nonnull @c__1) #10
  br label %.sink.split1976

1394:                                             ; preds = %1388
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  %1395 = mul nsw i64 %indvars.iv.next1914, %578
  %gep1726 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1395
  call void @classq_(ptr noundef nonnull %3, ptr noundef %gep1726, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %26) #10
  %1396 = load float, ptr %31, align 4, !tbaa !9
  %1397 = fpext float %1396 to double
  %1398 = load float, ptr %26, align 4, !tbaa !9
  %1399 = fpext float %1398 to double
  %1400 = call double @sqrt(double noundef %1399) #10
  %1401 = fmul double %1400, %1397
  %1402 = fptrunc double %1401 to float
  br label %.sink.split1976

.sink.split1976:                                  ; preds = %1394, %1391
  %.sink1977 = phi float [ %1393, %1391 ], [ %1402, %1394 ]
  store float %.sink1977, ptr %1041, align 4, !tbaa !9
  br label %1403

1403:                                             ; preds = %.sink.split1976, %1382
  %1404 = load float, ptr %24, align 4, !tbaa !9
  %1405 = fdiv float %1404, %1045
  %1406 = fmul float %1405, %1405
  %1407 = fcmp ugt float %1406, %sqrtf1349
  br i1 %1407, label %1439, label %1408

1408:                                             ; preds = %1403
  %1409 = fcmp olt float %1404, %141
  %1410 = fcmp ogt float %1404, %sqrtf1350
  %or.cond1430 = and i1 %1409, %1410
  br i1 %or.cond1430, label %1411, label %1416

1411:                                             ; preds = %1408
  %1412 = load i32, ptr %30, align 4, !tbaa !5
  %1413 = mul nsw i32 %1412, %41
  %1414 = sext i32 %1413 to i64
  %gep1732 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1414
  %1415 = call float @scnrm2_(ptr noundef nonnull %3, ptr noundef %gep1732, ptr noundef nonnull @c__1) #10
  br label %1427

1416:                                             ; preds = %1408
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %1417 = load i32, ptr %30, align 4, !tbaa !5
  %1418 = mul nsw i32 %1417, %41
  %1419 = sext i32 %1418 to i64
  %gep1730 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1419
  call void @classq_(ptr noundef nonnull %3, ptr noundef %gep1730, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %24) #10
  %1420 = load float, ptr %31, align 4, !tbaa !9
  %1421 = fpext float %1420 to double
  %1422 = load float, ptr %24, align 4, !tbaa !9
  %1423 = fpext float %1422 to double
  %1424 = call double @sqrt(double noundef %1423) #10
  %1425 = fmul double %1424, %1421
  %1426 = fptrunc double %1425 to float
  br label %1427

1427:                                             ; preds = %1416, %1411
  %storemerge1394 = phi float [ %1426, %1416 ], [ %1415, %1411 ]
  store float %storemerge1394, ptr %24, align 4, !tbaa !9
  %1428 = load i32, ptr %30, align 4, !tbaa !5
  %1429 = sext i32 %1428 to i64
  %1430 = getelementptr inbounds float, ptr %40, i64 %1429
  store float %storemerge1394, ptr %1430, align 4, !tbaa !9
  br label %1439

1431:                                             ; preds = %1135
  %1432 = add nsw i32 %.1212331737, 1
  %1433 = add nsw i32 %.31743, 1
  %1434 = add nsw i32 %.112371736, 1
  br label %1439

1435:                                             ; preds = %.lr.ph1747
  %1436 = add nsw i32 %.1212331737, 1
  %1437 = add nsw i32 %.31743, 1
  %1438 = add nsw i32 %.112371736, 1
  br label %1439

1439:                                             ; preds = %1431, %1427, %1403, %1435
  %.111274 = phi float [ %1140, %1427 ], [ %1140, %1403 ], [ %1140, %1431 ], [ %.1012731734, %1435 ]
  %.151259 = phi float [ %.141258, %1427 ], [ %.141258, %1403 ], [ %.1212561735, %1431 ], [ %.1212561735, %1435 ]
  %.21238 = phi i32 [ %.112371736, %1427 ], [ %.112371736, %1403 ], [ %1434, %1431 ], [ %1438, %1435 ]
  %.131234 = phi i32 [ 0, %1427 ], [ 0, %1403 ], [ %1432, %1431 ], [ %1436, %1435 ]
  %.11 = phi i32 [ %1152, %1427 ], [ %1152, %1403 ], [ %.101738, %1431 ], [ %.101738, %1435 ]
  %.4 = phi i32 [ 0, %1427 ], [ 0, %1403 ], [ %1433, %1431 ], [ %1437, %1435 ]
  %.not1396 = icmp slt i32 %.21238, %409
  %or.cond1431 = select i1 %.not1395, i1 true, i1 %.not1396
  br i1 %or.cond1431, label %1445, label %1440

1440:                                             ; preds = %1439
  %1441 = load float, ptr %24, align 4, !tbaa !9
  %1442 = load i32, ptr %30, align 4, !tbaa !5
  %1443 = sext i32 %1442 to i64
  %1444 = getelementptr inbounds float, ptr %40, i64 %1443
  store float %1441, ptr %1444, align 4, !tbaa !9
  br label %.loopexit1463

1445:                                             ; preds = %1439
  %1446 = icmp sle i32 %.4, %410
  %or.cond1432.not = select i1 %.not1395, i1 true, i1 %1446
  br i1 %or.cond1432.not, label %1038, label %1447

1447:                                             ; preds = %1445
  %1448 = load float, ptr %24, align 4, !tbaa !9
  %1449 = fneg float %1448
  store float %1449, ptr %24, align 4, !tbaa !9
  br label %.loopexit1460

.loopexit1460.loopexit:                           ; preds = %1038
  %.pre1936 = load float, ptr %24, align 4, !tbaa !9
  br label %.loopexit1460

.loopexit1460:                                    ; preds = %.loopexit1460.loopexit, %1036, %1447
  %1450 = phi float [ %1449, %1447 ], [ %1034, %1036 ], [ %.pre1936, %.loopexit1460.loopexit ]
  %.121275 = phi float [ %.111274, %1447 ], [ %.912721757, %1036 ], [ %.111274, %.loopexit1460.loopexit ]
  %.161260 = phi float [ %.151259, %1447 ], [ %.1112551758, %1036 ], [ %.151259, %.loopexit1460.loopexit ]
  %.31239 = phi i32 [ %.21238, %1447 ], [ %.012361759, %1036 ], [ %.21238, %.loopexit1460.loopexit ]
  %.141235 = phi i32 [ 0, %1447 ], [ %.1112321760, %1036 ], [ %.131234, %.loopexit1460.loopexit ]
  %.12 = phi i32 [ %.11, %1447 ], [ %.91761, %1036 ], [ %.11, %.loopexit1460.loopexit ]
  %1451 = load i32, ptr %30, align 4, !tbaa !5
  %1452 = sext i32 %1451 to i64
  %1453 = getelementptr inbounds float, ptr %40, i64 %1452
  store float %1450, ptr %1453, align 4, !tbaa !9
  %.pre1937 = load i32, ptr %19, align 4, !tbaa !5
  br label %1463

1454:                                             ; preds = %1030
  %1455 = fcmp oeq float %1034, 0.000000e+00
  br i1 %1455, label %1456, label %1460

1456:                                             ; preds = %1454
  store i32 %1029, ptr %20, align 4, !tbaa !5
  %1457 = load i32, ptr %4, align 4, !tbaa !5
  %.1433 = call i32 @llvm.smin.i32(i32 %1029, i32 %1457)
  %1458 = sub i32 %.1112321760, %1027
  %1459 = add i32 %1458, %.1433
  br label %1460

1460:                                             ; preds = %1456, %1454
  %.15 = phi i32 [ %1459, %1456 ], [ %.1112321760, %1454 ]
  %1461 = fcmp olt float %1034, 0.000000e+00
  br i1 %1461, label %1462, label %1463

1462:                                             ; preds = %1460
  br label %1463

1463:                                             ; preds = %.loopexit1460, %1462, %1460
  %1464 = phi i32 [ %.pre1937, %.loopexit1460 ], [ %1031, %1462 ], [ %1031, %1460 ]
  %1465 = phi i32 [ %1451, %.loopexit1460 ], [ %storemerge13881756, %1462 ], [ %storemerge13881756, %1460 ]
  %.131276 = phi float [ %.121275, %.loopexit1460 ], [ %.912721757, %1462 ], [ %.912721757, %1460 ]
  %.171261 = phi float [ %.161260, %.loopexit1460 ], [ %.1112551758, %1462 ], [ %.1112551758, %1460 ]
  %.41240 = phi i32 [ %.31239, %.loopexit1460 ], [ %.012361759, %1462 ], [ %.012361759, %1460 ]
  %.16 = phi i32 [ %.141235, %.loopexit1460 ], [ 0, %1462 ], [ %.15, %1460 ]
  %.13 = phi i32 [ %.12, %.loopexit1460 ], [ %.91761, %1462 ], [ %.91761, %1460 ]
  %1466 = add nsw i32 %1465, 1
  store i32 %1466, ptr %30, align 4, !tbaa !5
  %.not1389.not = icmp slt i32 %1465, %1464
  br i1 %.not1389.not, label %1030, label %._crit_edge1766.loopexit, !llvm.loop !34

._crit_edge1766.loopexit:                         ; preds = %1463
  %.pre1938 = load i32, ptr %18, align 4, !tbaa !5
  br label %._crit_edge1766

._crit_edge1766:                                  ; preds = %._crit_edge1766.loopexit, %.lr.ph1782
  %1467 = phi i32 [ %1024, %.lr.ph1782 ], [ %.pre1938, %._crit_edge1766.loopexit ]
  %.91272.lcssa = phi float [ %.812711774, %.lr.ph1782 ], [ %.131276, %._crit_edge1766.loopexit ]
  %.111255.lcssa = phi float [ %.1012541775, %.lr.ph1782 ], [ %.171261, %._crit_edge1766.loopexit ]
  %.111232.lcssa = phi i32 [ %.1012311776, %.lr.ph1782 ], [ %.16, %._crit_edge1766.loopexit ]
  %.9.lcssa = phi i32 [ %.81777, %.lr.ph1782 ], [ %.13, %._crit_edge1766.loopexit ]
  %1468 = add nuw nsw i32 %.012131778, 1
  %.not1386.not = icmp slt i32 %.012131778, %1467
  %indvars.iv.next1912 = add i32 %indvars.iv1911, %spec.select1418
  br i1 %.not1386.not, label %.lr.ph1782, label %.loopexit1463, !llvm.loop !35

.loopexit1463:                                    ; preds = %._crit_edge1766, %._crit_edge1650, %1440
  %.141277 = phi float [ %.111274, %1440 ], [ %.21265.lcssa, %._crit_edge1650 ], [ %.91272.lcssa, %._crit_edge1766 ]
  %.18 = phi float [ %.151259, %1440 ], [ %.21246.lcssa, %._crit_edge1650 ], [ %.111255.lcssa, %._crit_edge1766 ]
  %.17 = phi i32 [ 0, %1440 ], [ %.11222.lcssa, %._crit_edge1650 ], [ %.111232.lcssa, %._crit_edge1766 ]
  %.14 = phi i32 [ %.11, %1440 ], [ %.11215.lcssa, %._crit_edge1650 ], [ %.9.lcssa, %._crit_edge1766 ]
  store i32 %1023, ptr %19, align 4, !tbaa !5
  %1469 = load i32, ptr %4, align 4, !tbaa !5
  %.1434 = call i32 @llvm.smin.i32(i32 %1023, i32 %1469)
  store i32 %.1434, ptr %18, align 4, !tbaa !5
  %.not13991789.not = icmp slt i32 %589, %.1434
  br i1 %.not13991789.not, label %.lr.ph1792.preheader, label %.loopexit1462

.lr.ph1792.preheader:                             ; preds = %.loopexit1463
  %1470 = sext i32 %.1434 to i64
  %smax = call i64 @llvm.smax.i64(i64 %1470, i64 %586)
  %1471 = add i64 %smax, 1
  %1472 = sub i64 %1471, %586
  %min.iters.check2051 = icmp ult i64 %1472, 8
  br i1 %min.iters.check2051, label %.lr.ph1792.preheader2083, label %vector.ph2052

vector.ph2052:                                    ; preds = %.lr.ph1792.preheader
  %n.vec2054 = and i64 %1472, -8
  %ind.end2055 = add i64 %n.vec2054, %587
  %invariant.gep = getelementptr float, ptr %40, i64 %587
  br label %vector.body2057

vector.body2057:                                  ; preds = %vector.body2057, %vector.ph2052
  %index2058 = phi i64 [ 0, %vector.ph2052 ], [ %index.next2062, %vector.body2057 ]
  %gep2122 = getelementptr float, ptr %invariant.gep, i64 %index2058
  %1473 = getelementptr inbounds i8, ptr %gep2122, i64 16
  %wide.load2060 = load <4 x float>, ptr %gep2122, align 4, !tbaa !9
  %wide.load2061 = load <4 x float>, ptr %1473, align 4, !tbaa !9
  %1474 = fcmp oge <4 x float> %wide.load2060, zeroinitializer
  %1475 = fcmp oge <4 x float> %wide.load2061, zeroinitializer
  %1476 = fneg <4 x float> %wide.load2060
  %1477 = fneg <4 x float> %wide.load2061
  %1478 = select <4 x i1> %1474, <4 x float> %wide.load2060, <4 x float> %1476
  %1479 = select <4 x i1> %1475, <4 x float> %wide.load2061, <4 x float> %1477
  store <4 x float> %1478, ptr %gep2122, align 4, !tbaa !9
  store <4 x float> %1479, ptr %1473, align 4, !tbaa !9
  %index.next2062 = add nuw i64 %index2058, 8
  %1480 = icmp eq i64 %index.next2062, %n.vec2054
  br i1 %1480, label %middle.block2049, label %vector.body2057, !llvm.loop !36

middle.block2049:                                 ; preds = %vector.body2057
  %cmp.n2063 = icmp eq i64 %1472, %n.vec2054
  br i1 %cmp.n2063, label %.loopexit1462.loopexit, label %.lr.ph1792.preheader2083

.lr.ph1792.preheader2083:                         ; preds = %middle.block2049, %.lr.ph1792.preheader
  %indvars.iv1918.ph = phi i64 [ %587, %.lr.ph1792.preheader ], [ %ind.end2055, %middle.block2049 ]
  br label %.lr.ph1792

.lr.ph1792:                                       ; preds = %.lr.ph1792.preheader2083, %.lr.ph1792
  %indvars.iv1918 = phi i64 [ %indvars.iv.next1919, %.lr.ph1792 ], [ %indvars.iv1918.ph, %.lr.ph1792.preheader2083 ]
  %1481 = getelementptr inbounds float, ptr %40, i64 %indvars.iv1918
  %1482 = load float, ptr %1481, align 4, !tbaa !9
  %1483 = fcmp oge float %1482, 0.000000e+00
  %1484 = fneg float %1482
  %1485 = select i1 %1483, float %1482, float %1484
  store float %1485, ptr %1481, align 4, !tbaa !9
  %indvars.iv.next1919 = add nsw i64 %indvars.iv1918, 1
  %.not1399.not = icmp slt i64 %indvars.iv1918, %1470
  br i1 %.not1399.not, label %.lr.ph1792, label %.loopexit1462.loopexit, !llvm.loop !37

._crit_edge1806:                                  ; preds = %.loopexit1462, %.._crit_edge1806_crit_edge
  %1486 = phi i32 [ %.pre1939, %.._crit_edge1806_crit_edge ], [ %1469, %.loopexit1462 ]
  %.11264.lcssa = phi float [ 0.000000e+00, %.._crit_edge1806_crit_edge ], [ %.141277, %.loopexit1462 ]
  %.11245.lcssa = phi float [ 0.000000e+00, %.._crit_edge1806_crit_edge ], [ %.18, %.loopexit1462 ]
  %.01221.lcssa = phi i32 [ 0, %.._crit_edge1806_crit_edge ], [ %.17, %.loopexit1462 ]
  %.01214.lcssa = phi i32 [ 0, %.._crit_edge1806_crit_edge ], [ %.14, %.loopexit1462 ]
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds float, ptr %40, i64 %1487
  %1489 = load float, ptr %1488, align 4, !tbaa !9
  %1490 = fcmp olt float %1489, %141
  %1491 = fcmp ogt float %1489, %sqrtf1350
  %or.cond1435 = and i1 %1490, %1491
  br i1 %or.cond1435, label %1492, label %1496

1492:                                             ; preds = %._crit_edge1806
  %1493 = mul nsw i32 %1486, %41
  %1494 = sext i32 %1493 to i64
  %gep1818 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1494
  %1495 = call float @scnrm2_(ptr noundef nonnull %3, ptr noundef %gep1818, ptr noundef nonnull @c__1) #10
  br label %1506

1496:                                             ; preds = %._crit_edge1806
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %1497 = mul nsw i32 %1486, %41
  %1498 = sext i32 %1497 to i64
  %gep1816 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1498
  call void @classq_(ptr noundef nonnull %3, ptr noundef %gep1816, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %24) #10
  %1499 = load float, ptr %31, align 4, !tbaa !9
  %1500 = fpext float %1499 to double
  %1501 = load float, ptr %24, align 4, !tbaa !9
  %1502 = fpext float %1501 to double
  %1503 = call double @sqrt(double noundef %1502) #10
  %1504 = fmul double %1503, %1500
  %1505 = fptrunc double %1504 to float
  br label %1506

1506:                                             ; preds = %1496, %1492
  %.sink1978 = phi float [ %1505, %1496 ], [ %1495, %1492 ]
  %1507 = load i32, ptr %4, align 4, !tbaa !5
  %1508 = sext i32 %1507 to i64
  %1509 = getelementptr inbounds float, ptr %40, i64 %1508
  store float %.sink1978, ptr %1509, align 4, !tbaa !9
  %1510 = icmp slt i32 %.011861820, %.012411819
  %1511 = fcmp ugt float %.11264.lcssa, %sqrtf1351
  %.not1374 = icmp sgt i32 %.01214.lcssa, %1507
  %or.cond1982 = select i1 %1511, i1 %.not1374, i1 false
  %spec.select1983 = select i1 %or.cond1982, i32 %.012411819, i32 %.011861820
  %.11242 = select i1 %1510, i32 %spec.select1983, i32 %.012411819
  %1512 = add nsw i32 %.11242, 1
  %1513 = icmp sgt i32 %.011861820, %1512
  br i1 %1513, label %1514, label %1529

1514:                                             ; preds = %1506
  %1515 = fpext float %.11264.lcssa to double
  %1516 = sitofp i32 %1507 to float
  %1517 = fpext float %1516 to double
  %1518 = call double @sqrt(double noundef %1517) #10
  %1519 = load float, ptr %38, align 4, !tbaa !9
  %1520 = fpext float %1519 to double
  %1521 = fmul double %1518, %1520
  %1522 = fcmp ogt double %1521, %1515
  br i1 %1522, label %1523, label %1529

1523:                                             ; preds = %1514
  %1524 = load i32, ptr %4, align 4, !tbaa !5
  %1525 = sitofp i32 %1524 to float
  %1526 = fmul float %.11264.lcssa, %1525
  %1527 = fmul float %.11245.lcssa, %1526
  %1528 = fcmp uge float %1527, %1519
  %.not1375 = icmp slt i32 %.01221.lcssa, %398
  %or.cond1436 = select i1 %1528, i1 %.not1375, i1 false
  br i1 %or.cond1436, label %1530, label %1532

1529:                                             ; preds = %1514, %1506
  %.not1375.old = icmp slt i32 %.01221.lcssa, %398
  br i1 %.not1375.old, label %1530, label %1532

1530:                                             ; preds = %1523, %1529
  %1531 = add nuw nsw i32 %.011861820, 1
  %exitcond1921.not = icmp eq i32 %1531, 31
  br i1 %exitcond1921.not, label %1532, label %582, !llvm.loop !38

1532:                                             ; preds = %1523, %1529, %1530
  %.01186.lcssa = phi i32 [ %.011861820, %1523 ], [ %.011861820, %1529 ], [ 31, %1530 ]
  %storemerge1372 = phi i32 [ 0, %1523 ], [ 0, %1529 ], [ 29, %1530 ]
  store i32 %storemerge1372, ptr %15, align 4, !tbaa !5
  store i32 0, ptr %34, align 4, !tbaa !5
  store i32 0, ptr %35, align 4, !tbaa !5
  %1533 = load i32, ptr %4, align 4, !tbaa !5
  %1534 = add nsw i32 %1533, -1
  store i32 %1534, ptr %17, align 4, !tbaa !5
  store i32 1, ptr %30, align 4, !tbaa !5
  %.not13771833 = icmp slt i32 %1533, 2
  br i1 %.not13771833, label %._crit_edge1837, label %.lr.ph1836

.lr.ph1836:                                       ; preds = %1532, %1575
  %storemerge13761834 = phi i32 [ %1576, %1575 ], [ 1, %1532 ]
  %1535 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub1859 = sub i32 %1535, %storemerge13761834
  %1536 = add i32 %reass.sub1859, 1
  store i32 %1536, ptr %18, align 4, !tbaa !5
  %1537 = sext i32 %storemerge13761834 to i64
  %1538 = getelementptr inbounds float, ptr %40, i64 %1537
  %1539 = call i32 @isamax_(ptr noundef nonnull %18, ptr noundef nonnull %1538, ptr noundef nonnull @c__1) #10
  %1540 = load i32, ptr %30, align 4, !tbaa !5
  %1541 = add i32 %1539, -1
  %1542 = add i32 %1541, %1540
  %.not1384 = icmp eq i32 %1541, 0
  br i1 %.not1384, label %1559, label %1543

1543:                                             ; preds = %.lr.ph1836
  %1544 = sext i32 %1540 to i64
  %1545 = getelementptr inbounds float, ptr %40, i64 %1544
  %1546 = load float, ptr %1545, align 4, !tbaa !9
  store float %1546, ptr %29, align 4, !tbaa !9
  %1547 = sext i32 %1542 to i64
  %1548 = getelementptr inbounds float, ptr %40, i64 %1547
  %1549 = load float, ptr %1548, align 4, !tbaa !9
  store float %1549, ptr %1545, align 4, !tbaa !9
  store float %1546, ptr %1548, align 4, !tbaa !9
  %1550 = mul nsw i32 %1540, %41
  %1551 = sext i32 %1550 to i64
  %gep1826 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1551
  %1552 = mul nsw i32 %1542, %41
  %1553 = sext i32 %1552 to i64
  %gep1828 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1553
  call void @cswap_(ptr noundef nonnull %3, ptr noundef %gep1826, ptr noundef nonnull @c__1, ptr noundef %gep1828, ptr noundef nonnull @c__1) #10
  %.pre1941 = load i32, ptr %30, align 4, !tbaa !5
  br i1 %or.cond5, label %1554, label %1559

1554:                                             ; preds = %1543
  %1555 = mul nsw i32 %.pre1941, %44
  %1556 = sext i32 %1555 to i64
  %gep1830 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1556
  %1557 = mul nsw i32 %1542, %44
  %1558 = sext i32 %1557 to i64
  %gep1832 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1558
  call void @cswap_(ptr noundef nonnull %39, ptr noundef %gep1830, ptr noundef nonnull @c__1, ptr noundef %gep1832, ptr noundef nonnull @c__1) #10
  %.pre1940 = load i32, ptr %30, align 4, !tbaa !5
  br label %1559

1559:                                             ; preds = %1543, %1554, %.lr.ph1836
  %1560 = phi i32 [ %.pre1941, %1543 ], [ %.pre1940, %1554 ], [ %1540, %.lr.ph1836 ]
  %1561 = sext i32 %1560 to i64
  %1562 = getelementptr inbounds float, ptr %40, i64 %1561
  %1563 = load float, ptr %1562, align 4, !tbaa !9
  %1564 = fcmp une float %1563, 0.000000e+00
  br i1 %1564, label %1565, label %1575

1565:                                             ; preds = %1559
  %1566 = load i32, ptr %35, align 4, !tbaa !5
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr %35, align 4, !tbaa !5
  %1568 = load float, ptr %37, align 4, !tbaa !9
  %1569 = fmul float %1563, %1568
  %1570 = load float, ptr %32, align 4, !tbaa !9
  %1571 = fcmp ogt float %1569, %1570
  br i1 %1571, label %1572, label %1575

1572:                                             ; preds = %1565
  %1573 = load i32, ptr %34, align 4, !tbaa !5
  %1574 = add nsw i32 %1573, 1
  store i32 %1574, ptr %34, align 4, !tbaa !5
  br label %1575

1575:                                             ; preds = %1559, %1572, %1565
  %1576 = add nsw i32 %1560, 1
  store i32 %1576, ptr %30, align 4, !tbaa !5
  %1577 = load i32, ptr %17, align 4, !tbaa !5
  %.not1377.not = icmp slt i32 %1560, %1577
  br i1 %.not1377.not, label %.lr.ph1836, label %._crit_edge1837.loopexit, !llvm.loop !39

._crit_edge1837.loopexit:                         ; preds = %1575
  %.pre1942 = load i32, ptr %4, align 4, !tbaa !5
  br label %._crit_edge1837

._crit_edge1837:                                  ; preds = %._crit_edge1837.loopexit, %1532
  %1578 = phi i32 [ %.pre1942, %._crit_edge1837.loopexit ], [ %1533, %1532 ]
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds float, ptr %40, i64 %1579
  %1581 = load float, ptr %1580, align 4, !tbaa !9
  %1582 = fcmp une float %1581, 0.000000e+00
  br i1 %1582, label %1583, label %1593

1583:                                             ; preds = %._crit_edge1837
  %1584 = load i32, ptr %35, align 4, !tbaa !5
  %1585 = add nsw i32 %1584, 1
  store i32 %1585, ptr %35, align 4, !tbaa !5
  %1586 = load float, ptr %37, align 4, !tbaa !9
  %1587 = fmul float %1581, %1586
  %1588 = load float, ptr %32, align 4, !tbaa !9
  %1589 = fcmp ogt float %1587, %1588
  br i1 %1589, label %1590, label %1593

1590:                                             ; preds = %1583
  %1591 = load i32, ptr %34, align 4, !tbaa !5
  %1592 = add nsw i32 %1591, 1
  store i32 %1592, ptr %34, align 4, !tbaa !5
  br label %1593

1593:                                             ; preds = %1583, %1590, %._crit_edge1837
  %or.cond25 = or i1 %53, %76
  br i1 %or.cond25, label %1594, label %.loopexit1459

1594:                                             ; preds = %1593
  %1595 = load i32, ptr %35, align 4, !tbaa !5
  store i32 %1595, ptr %17, align 4, !tbaa !5
  store i32 1, ptr %30, align 4, !tbaa !5
  %.not13791840 = icmp slt i32 %1595, 1
  br i1 %.not13791840, label %.loopexit1459, label %.lr.ph1843

.lr.ph1843:                                       ; preds = %1594, %.lr.ph1843
  %storemerge13781841 = phi i32 [ %1601, %.lr.ph1843 ], [ 1, %1594 ]
  %1596 = sext i32 %storemerge13781841 to i64
  %1597 = getelementptr inbounds float, ptr %40, i64 %1596
  %1598 = mul nsw i32 %storemerge13781841, %41
  %1599 = sext i32 %1598 to i64
  %gep1839 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %1599
  call void @clascl_(ptr noundef nonnull @.str.7, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %1597, ptr noundef nonnull @c_b41, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1839, ptr noundef nonnull %3, ptr noundef nonnull %27) #10
  %1600 = load i32, ptr %30, align 4, !tbaa !5
  %1601 = add nsw i32 %1600, 1
  store i32 %1601, ptr %30, align 4, !tbaa !5
  %1602 = load i32, ptr %17, align 4, !tbaa !5
  %.not1379.not = icmp slt i32 %1600, %1602
  br i1 %.not1379.not, label %.lr.ph1843, label %.loopexit1459, !llvm.loop !40

.loopexit1459:                                    ; preds = %.lr.ph1843, %1594, %1593
  br i1 %or.cond5, label %1603, label %.loopexit

1603:                                             ; preds = %.loopexit1459
  %1604 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %1604, ptr %17, align 4, !tbaa !5
  store i32 1, ptr %30, align 4, !tbaa !5
  %.not13811848 = icmp slt i32 %1604, 1
  br i1 %.not13811848, label %.loopexit, label %.lr.ph1851

.lr.ph1851:                                       ; preds = %1603, %.lr.ph1851
  %storemerge13801849 = phi i32 [ %1613, %.lr.ph1851 ], [ 1, %1603 ]
  %1605 = mul nsw i32 %storemerge13801849, %44
  %1606 = sext i32 %1605 to i64
  %gep1845 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1606
  %1607 = call float @scnrm2_(ptr noundef nonnull %39, ptr noundef %gep1845, ptr noundef nonnull @c__1) #10
  %1608 = fdiv float 1.000000e+00, %1607
  store float %1608, ptr %29, align 4, !tbaa !9
  %1609 = load i32, ptr %30, align 4, !tbaa !5
  %1610 = mul nsw i32 %1609, %44
  %1611 = sext i32 %1610 to i64
  %gep1847 = getelementptr %struct.complex, ptr %invariant.gep1614, i64 %1611
  call void @csscal_(ptr noundef nonnull %39, ptr noundef nonnull %29, ptr noundef %gep1847, ptr noundef nonnull @c__1) #10
  %1612 = load i32, ptr %30, align 4, !tbaa !5
  %1613 = add nsw i32 %1612, 1
  store i32 %1613, ptr %30, align 4, !tbaa !5
  %1614 = load i32, ptr %17, align 4, !tbaa !5
  %.not1381.not = icmp slt i32 %1612, %1614
  br i1 %.not1381.not, label %.lr.ph1851, label %.loopexit, !llvm.loop !41

.loopexit:                                        ; preds = %.lr.ph1851, %1603, %.loopexit1459
  %1615 = load float, ptr %37, align 4, !tbaa !9
  %1616 = fcmp ogt float %1615, 1.000000e+00
  br i1 %1616, label %1617, label %1621

1617:                                             ; preds = %.loopexit
  %1618 = load float, ptr %7, align 4, !tbaa !9
  %1619 = fdiv float %140, %1615
  %1620 = fcmp olt float %1618, %1619
  br i1 %1620, label %1631, label %1621

1621:                                             ; preds = %1617, %.loopexit
  %1622 = fcmp olt float %1615, 1.000000e+00
  %.pre1944 = load i32, ptr %34, align 4
  br i1 %1622, label %1623, label %1643

1623:                                             ; preds = %1621
  %1624 = call i32 @llvm.smax.i32(i32 %.pre1944, i32 1)
  %1625 = zext nneg i32 %1624 to i64
  %1626 = getelementptr inbounds float, ptr %40, i64 %1625
  %1627 = load float, ptr %1626, align 4, !tbaa !9
  %1628 = load float, ptr %32, align 4, !tbaa !9
  %1629 = fdiv float %1628, %1615
  %1630 = fcmp ogt float %1627, %1629
  br i1 %1630, label %1631, label %1643

1631:                                             ; preds = %1623, %1617
  %1632 = load i32, ptr %4, align 4, !tbaa !5
  %.not13831852 = icmp slt i32 %1632, 1
  br i1 %.not13831852, label %._crit_edge1856, label %.lr.ph1855.preheader

.lr.ph1855.preheader:                             ; preds = %1631
  %1633 = add nuw i32 %1632, 1
  %wide.trip.count1925 = zext i32 %1633 to i64
  %1634 = zext nneg i32 %1632 to i64
  %min.iters.check2066 = icmp ult i32 %1632, 8
  br i1 %min.iters.check2066, label %.lr.ph1855.preheader2082, label %vector.ph2067

vector.ph2067:                                    ; preds = %.lr.ph1855.preheader
  %n.vec2069 = and i64 %1634, 2147483640
  %ind.end2070 = or disjoint i64 %n.vec2069, 1
  %broadcast.splatinsert2077 = insertelement <4 x float> poison, float %1615, i64 0
  %broadcast.splat2078 = shufflevector <4 x float> %broadcast.splatinsert2077, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2072

vector.body2072:                                  ; preds = %vector.body2072, %vector.ph2067
  %index2073 = phi i64 [ 0, %vector.ph2067 ], [ %index.next2079, %vector.body2072 ]
  %1635 = getelementptr float, ptr %7, i64 %index2073
  %1636 = getelementptr inbounds i8, ptr %1635, i64 16
  %wide.load2075 = load <4 x float>, ptr %1635, align 4, !tbaa !9
  %wide.load2076 = load <4 x float>, ptr %1636, align 4, !tbaa !9
  %1637 = fmul <4 x float> %broadcast.splat2078, %wide.load2075
  %1638 = fmul <4 x float> %broadcast.splat2078, %wide.load2076
  store <4 x float> %1637, ptr %1635, align 4, !tbaa !9
  store <4 x float> %1638, ptr %1636, align 4, !tbaa !9
  %index.next2079 = add nuw i64 %index2073, 8
  %1639 = icmp eq i64 %index.next2079, %n.vec2069
  br i1 %1639, label %middle.block2064, label %vector.body2072, !llvm.loop !42

middle.block2064:                                 ; preds = %vector.body2072
  %cmp.n2080 = icmp eq i64 %n.vec2069, %1634
  br i1 %cmp.n2080, label %._crit_edge1856, label %.lr.ph1855.preheader2082

.lr.ph1855.preheader2082:                         ; preds = %middle.block2064, %.lr.ph1855.preheader
  %indvars.iv1922.ph = phi i64 [ 1, %.lr.ph1855.preheader ], [ %ind.end2070, %middle.block2064 ]
  br label %.lr.ph1855

.lr.ph1855:                                       ; preds = %.lr.ph1855.preheader2082, %.lr.ph1855
  %indvars.iv1922 = phi i64 [ %indvars.iv.next1923, %.lr.ph1855 ], [ %indvars.iv1922.ph, %.lr.ph1855.preheader2082 ]
  %1640 = getelementptr inbounds float, ptr %40, i64 %indvars.iv1922
  %1641 = load float, ptr %1640, align 4, !tbaa !9
  %1642 = fmul float %1615, %1641
  store float %1642, ptr %1640, align 4, !tbaa !9
  %indvars.iv.next1923 = add nuw nsw i64 %indvars.iv1922, 1
  %exitcond1926.not = icmp eq i64 %indvars.iv.next1923, %wide.trip.count1925
  br i1 %exitcond1926.not, label %._crit_edge1856, label %.lr.ph1855, !llvm.loop !43

._crit_edge1856:                                  ; preds = %.lr.ph1855, %middle.block2064, %1631
  %.pre1943 = load i32, ptr %34, align 4, !tbaa !5
  br label %1643

1643:                                             ; preds = %._crit_edge1856, %1623, %1621
  %1644 = phi i32 [ %.pre1943, %._crit_edge1856 ], [ %.pre1944, %1623 ], [ %.pre1944, %1621 ]
  %1645 = phi float [ 1.000000e+00, %._crit_edge1856 ], [ %1615, %1623 ], [ %1615, %1621 ]
  store float %1645, ptr %13, align 4, !tbaa !9
  %1646 = load i32, ptr %35, align 4, !tbaa !5
  %1647 = getelementptr inbounds i8, ptr %13, i64 4
  %1648 = insertelement <2 x i32> poison, i32 %1646, i64 0
  %1649 = insertelement <2 x i32> %1648, i32 %1644, i64 1
  %1650 = sitofp <2 x i32> %1649 to <2 x float>
  store <2 x float> %1650, ptr %1647, align 4, !tbaa !9
  %1651 = uitofp nneg i32 %.01186.lcssa to float
  %1652 = getelementptr inbounds i8, ptr %13, i64 12
  store float %1651, ptr %1652, align 4, !tbaa !9
  %1653 = getelementptr inbounds i8, ptr %13, i64 16
  store float %.11264.lcssa, ptr %1653, align 4, !tbaa !9
  %1654 = getelementptr inbounds i8, ptr %13, i64 20
  store float %.11245.lcssa, ptr %1654, align 4, !tbaa !9
  br label %1655

1655:                                             ; preds = %125, %127, %1643, %313, %307, %254, %215, %175, %148, %117, %113
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

declare void @claset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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 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

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

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

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

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

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

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

; 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

; 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 void @csscal_(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 i32 @llvm.smax.i32(i32, i32) #8

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.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 nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

; 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { 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 = !{!12, !10, i64 0}
!12 = !{!"", !10, i64 0, !10, i64 4}
!13 = !{!12, !10, i64 4}
!14 = distinct !{!14, !15, !16, !17}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !15, !17, !16}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15, !16, !17}
!21 = distinct !{!21, !15, !17, !16}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15, !16, !17}
!24 = distinct !{!24, !15, !17, !16}
!25 = distinct !{!25, !15}
!26 = distinct !{!26, !15}
!27 = distinct !{!27, !15, !16, !17}
!28 = distinct !{!28, !15, !17, !16}
!29 = distinct !{!29, !15}
!30 = distinct !{!30, !15}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = distinct !{!33, !15}
!34 = distinct !{!34, !15}
!35 = distinct !{!35, !15}
!36 = distinct !{!36, !15, !16, !17}
!37 = distinct !{!37, !15, !17, !16}
!38 = distinct !{!38, !15}
!39 = distinct !{!39, !15}
!40 = distinct !{!40, !15}
!41 = distinct !{!41, !15}
!42 = distinct !{!42, !15, !16, !17}
!43 = distinct !{!43, !15, !17, !16}


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