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

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

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

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

145:                                              ; preds = %141
  %146 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %146, align 4, !tbaa !9
  br label %234

147:                                              ; preds = %141, %17
  %148 = load i32, ptr %63, align 4, !tbaa !9
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %160, label %150

150:                                              ; preds = %147
  %151 = load ptr, ptr %19, align 8, !tbaa !5
  %152 = call i32 @lsame_(ptr noundef %151, ptr noundef @.str.3)
  %153 = icmp ne i32 %152, 0
  br i1 %153, label %160, label %154

154:                                              ; preds = %150
  %155 = load ptr, ptr %19, align 8, !tbaa !5
  %156 = call i32 @lsame_(ptr noundef %155, ptr noundef @.str.4)
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %160, label %158

158:                                              ; preds = %154
  %159 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %159, align 4, !tbaa !9
  br label %233

160:                                              ; preds = %154, %150, %147
  %161 = load i32, ptr %66, align 4, !tbaa !9
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %169, label %163

163:                                              ; preds = %160
  %164 = load ptr, ptr %20, align 8, !tbaa !5
  %165 = call i32 @lsame_(ptr noundef %164, ptr noundef @.str)
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %169, label %167

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

169:                                              ; preds = %163, %160
  %170 = load ptr, ptr %21, align 8, !tbaa !5
  %171 = load i32, ptr %170, align 4, !tbaa !9
  %172 = icmp slt i32 %171, 0
  br i1 %172, label %173, label %175

173:                                              ; preds = %169
  %174 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -4, ptr %174, align 4, !tbaa !9
  br label %231

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

179:                                              ; preds = %175
  %180 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %180, align 4, !tbaa !9
  br label %230

181:                                              ; preds = %175
  %182 = load ptr, ptr %23, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  %184 = icmp slt i32 %183, 0
  br i1 %184, label %185, label %187

185:                                              ; preds = %181
  %186 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -6, ptr %186, align 4, !tbaa !9
  br label %229

187:                                              ; preds = %181
  %188 = load ptr, ptr %25, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = load ptr, ptr %22, align 8, !tbaa !5
  %191 = load i32, ptr %190, align 4, !tbaa !9
  %192 = add nsw i32 %191, 1
  %193 = icmp slt i32 %189, %192
  br i1 %193, label %194, label %196

194:                                              ; preds = %187
  %195 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -8, ptr %195, align 4, !tbaa !9
  br label %228

196:                                              ; preds = %187
  %197 = load ptr, ptr %27, align 8, !tbaa !5
  %198 = load i32, ptr %197, align 4, !tbaa !9
  %199 = load ptr, ptr %21, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = icmp sge i32 1, %200
  br i1 %201, label %202, label %203

202:                                              ; preds = %196
  br label %206

203:                                              ; preds = %196
  %204 = load ptr, ptr %21, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  br label %206

206:                                              ; preds = %203, %202
  %207 = phi i32 [ 1, %202 ], [ %205, %203 ]
  %208 = icmp slt i32 %198, %207
  br i1 %208, label %209, label %211

209:                                              ; preds = %206
  %210 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -10, ptr %210, align 4, !tbaa !9
  br label %227

211:                                              ; preds = %206
  %212 = load ptr, ptr %29, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = load ptr, ptr %21, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = icmp sge i32 1, %215
  br i1 %216, label %217, label %218

217:                                              ; preds = %211
  br label %221

218:                                              ; preds = %211
  %219 = load ptr, ptr %21, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  br label %221

221:                                              ; preds = %218, %217
  %222 = phi i32 [ 1, %217 ], [ %220, %218 ]
  %223 = icmp slt i32 %213, %222
  br i1 %223, label %224, label %226

224:                                              ; preds = %221
  %225 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -12, ptr %225, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %224, %221
  br label %227

227:                                              ; preds = %226, %209
  br label %228

228:                                              ; preds = %227, %194
  br label %229

229:                                              ; preds = %228, %185
  br label %230

230:                                              ; preds = %229, %179
  br label %231

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

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

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

234:                                              ; preds = %233, %145
  %235 = load ptr, ptr %34, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  %237 = icmp ne i32 %236, 0
  br i1 %237, label %238, label %243

238:                                              ; preds = %234
  %239 = load ptr, ptr %34, align 8, !tbaa !5
  %240 = load i32, ptr %239, align 4, !tbaa !9
  %241 = sub nsw i32 0, %240
  store i32 %241, ptr %41, align 4, !tbaa !9
  %242 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %41, i32 noundef 6)
  store i32 1, ptr %69, align 4
  br label %2123

243:                                              ; preds = %234
  %244 = load ptr, ptr %21, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %251, label %247

247:                                              ; preds = %243
  %248 = load ptr, ptr %23, align 8, !tbaa !5
  %249 = load i32, ptr %248, align 4, !tbaa !9
  %250 = icmp eq i32 %249, 0
  br i1 %250, label %251, label %271

251:                                              ; preds = %247, %243
  %252 = load ptr, ptr %23, align 8, !tbaa !5
  %253 = load i32, ptr %252, align 4, !tbaa !9
  store i32 %253, ptr %41, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %254

254:                                              ; preds = %267, %251
  %255 = load i32, ptr %55, align 4, !tbaa !9
  %256 = load i32, ptr %41, align 4, !tbaa !9
  %257 = icmp sle i32 %255, %256
  br i1 %257, label %258, label %270

258:                                              ; preds = %254
  %259 = load ptr, ptr %30, align 8, !tbaa !5
  %260 = load i32, ptr %55, align 4, !tbaa !9
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds float, ptr %259, i64 %261
  store float 0.000000e+00, ptr %262, align 4, !tbaa !11
  %263 = load ptr, ptr %31, align 8, !tbaa !5
  %264 = load i32, ptr %55, align 4, !tbaa !9
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds float, ptr %263, i64 %265
  store float 0.000000e+00, ptr %266, align 4, !tbaa !11
  br label %267

267:                                              ; preds = %258
  %268 = load i32, ptr %55, align 4, !tbaa !9
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr %55, align 4, !tbaa !9
  br label %254, !llvm.loop !13

270:                                              ; preds = %254
  store i32 1, ptr %69, align 4
  br label %2123

271:                                              ; preds = %247
  %272 = load i32, ptr %63, align 4, !tbaa !9
  %273 = icmp ne i32 %272, 0
  br i1 %273, label %274, label %277

274:                                              ; preds = %271
  %275 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  store i8 78, ptr %275, align 1, !tbaa !15
  %276 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  store i8 67, ptr %276, align 1, !tbaa !15
  br label %280

277:                                              ; preds = %271
  %278 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  store i8 67, ptr %278, align 1, !tbaa !15
  %279 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  store i8 78, ptr %279, align 1, !tbaa !15
  br label %280

280:                                              ; preds = %277, %274
  %281 = load ptr, ptr %22, align 8, !tbaa !5
  %282 = load i32, ptr %281, align 4, !tbaa !9
  %283 = add nsw i32 %282, 2
  store i32 %283, ptr %61, align 4, !tbaa !9
  %284 = call float @slamch_(ptr noundef @.str.6)
  store float %284, ptr %68, align 4, !tbaa !11
  %285 = call float @slamch_(ptr noundef @.str.7)
  store float %285, ptr %62, align 4, !tbaa !11
  %286 = load i32, ptr %61, align 4, !tbaa !9
  %287 = sitofp i32 %286 to float
  %288 = load float, ptr %62, align 4, !tbaa !11
  %289 = fmul float %287, %288
  store float %289, ptr %52, align 4, !tbaa !11
  %290 = load float, ptr %52, align 4, !tbaa !11
  %291 = load float, ptr %68, align 4, !tbaa !11
  %292 = fdiv float %290, %291
  store float %292, ptr %53, align 4, !tbaa !11
  %293 = load ptr, ptr %23, align 8, !tbaa !5
  %294 = load i32, ptr %293, align 4, !tbaa !9
  store i32 %294, ptr %41, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %295

295:                                              ; preds = %2119, %280
  %296 = load i32, ptr %55, align 4, !tbaa !9
  %297 = load i32, ptr %41, align 4, !tbaa !9
  %298 = icmp sle i32 %296, %297
  br i1 %298, label %299, label %2122

299:                                              ; preds = %295
  %300 = load ptr, ptr %21, align 8, !tbaa !5
  %301 = load ptr, ptr %28, align 8, !tbaa !5
  %302 = load i32, ptr %55, align 4, !tbaa !9
  %303 = load i32, ptr %39, align 4, !tbaa !9
  %304 = mul nsw i32 %302, %303
  %305 = add nsw i32 %304, 1
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds %struct.complex, ptr %301, i64 %306
  %308 = load ptr, ptr %32, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.complex, ptr %308, i64 1
  call void @ccopy_(ptr noundef %300, ptr noundef %307, ptr noundef @c__1, ptr noundef %309, ptr noundef @c__1)
  %310 = load ptr, ptr %18, align 8, !tbaa !5
  %311 = load ptr, ptr %19, align 8, !tbaa !5
  %312 = load ptr, ptr %20, align 8, !tbaa !5
  %313 = load ptr, ptr %21, align 8, !tbaa !5
  %314 = load ptr, ptr %22, align 8, !tbaa !5
  %315 = load ptr, ptr %24, align 8, !tbaa !5
  %316 = load i32, ptr %36, align 4, !tbaa !9
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds %struct.complex, ptr %315, i64 %317
  %319 = load ptr, ptr %25, align 8, !tbaa !5
  %320 = load ptr, ptr %32, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.complex, ptr %320, i64 1
  call void @ctbmv_(ptr noundef %310, ptr noundef %311, ptr noundef %312, ptr noundef %313, ptr noundef %314, ptr noundef %318, ptr noundef %319, ptr noundef %321, ptr noundef @c__1)
  %322 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float -1.000000e+00, ptr %322, align 4, !tbaa !16
  %323 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float 0.000000e+00, ptr %323, align 4, !tbaa !18
  %324 = load ptr, ptr %21, align 8, !tbaa !5
  %325 = load ptr, ptr %26, align 8, !tbaa !5
  %326 = load i32, ptr %55, align 4, !tbaa !9
  %327 = load i32, ptr %37, align 4, !tbaa !9
  %328 = mul nsw i32 %326, %327
  %329 = add nsw i32 %328, 1
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds %struct.complex, ptr %325, i64 %330
  %332 = load ptr, ptr %32, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.complex, ptr %332, i64 1
  call void @caxpy_(ptr noundef %324, ptr noundef %50, ptr noundef %331, ptr noundef @c__1, ptr noundef %333, ptr noundef @c__1)
  %334 = load ptr, ptr %21, align 8, !tbaa !5
  %335 = load i32, ptr %334, align 4, !tbaa !9
  store i32 %335, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %336

336:                                              ; preds = %388, %299
  %337 = load i32, ptr %54, align 4, !tbaa !9
  %338 = load i32, ptr %42, align 4, !tbaa !9
  %339 = icmp sle i32 %337, %338
  br i1 %339, label %340, label %391

340:                                              ; preds = %336
  %341 = load i32, ptr %54, align 4, !tbaa !9
  %342 = load i32, ptr %55, align 4, !tbaa !9
  %343 = load i32, ptr %37, align 4, !tbaa !9
  %344 = mul nsw i32 %342, %343
  %345 = add nsw i32 %341, %344
  store i32 %345, ptr %43, align 4, !tbaa !9
  %346 = load ptr, ptr %26, align 8, !tbaa !5
  %347 = load i32, ptr %43, align 4, !tbaa !9
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds %struct.complex, ptr %346, i64 %348
  %350 = getelementptr inbounds %struct.complex, ptr %349, i32 0, i32 0
  %351 = load float, ptr %350, align 4, !tbaa !16
  store float %351, ptr %46, align 4, !tbaa !11
  %352 = load float, ptr %46, align 4, !tbaa !11
  %353 = fcmp oge float %352, 0.000000e+00
  br i1 %353, label %354, label %356

354:                                              ; preds = %340
  %355 = load float, ptr %46, align 4, !tbaa !11
  br label %359

356:                                              ; preds = %340
  %357 = load float, ptr %46, align 4, !tbaa !11
  %358 = fneg float %357
  br label %359

359:                                              ; preds = %356, %354
  %360 = phi float [ %355, %354 ], [ %358, %356 ]
  %361 = load ptr, ptr %26, align 8, !tbaa !5
  %362 = load i32, ptr %54, align 4, !tbaa !9
  %363 = load i32, ptr %55, align 4, !tbaa !9
  %364 = load i32, ptr %37, align 4, !tbaa !9
  %365 = mul nsw i32 %363, %364
  %366 = add nsw i32 %362, %365
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds %struct.complex, ptr %361, i64 %367
  %369 = call <2 x float> @Cf(ptr noundef %368)
  store <2 x float> %369, ptr %70, align 4
  %370 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 0
  %371 = load float, ptr %370, align 4
  %372 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 1
  %373 = load float, ptr %372, align 4
  store float %373, ptr %47, align 4, !tbaa !11
  %374 = load float, ptr %47, align 4, !tbaa !11
  %375 = fcmp oge float %374, 0.000000e+00
  br i1 %375, label %376, label %378

376:                                              ; preds = %359
  %377 = load float, ptr %47, align 4, !tbaa !11
  br label %381

378:                                              ; preds = %359
  %379 = load float, ptr %47, align 4, !tbaa !11
  %380 = fneg float %379
  br label %381

381:                                              ; preds = %378, %376
  %382 = phi float [ %377, %376 ], [ %380, %378 ]
  %383 = fadd float %360, %382
  %384 = load ptr, ptr %33, align 8, !tbaa !5
  %385 = load i32, ptr %54, align 4, !tbaa !9
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds float, ptr %384, i64 %386
  store float %383, ptr %387, align 4, !tbaa !11
  br label %388

388:                                              ; preds = %381
  %389 = load i32, ptr %54, align 4, !tbaa !9
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %54, align 4, !tbaa !9
  br label %336, !llvm.loop !19

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

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

397:                                              ; preds = %394
  %398 = load i32, ptr %66, align 4, !tbaa !9
  %399 = icmp ne i32 %398, 0
  br i1 %399, label %400, label %540

400:                                              ; preds = %397
  %401 = load ptr, ptr %21, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  store i32 %402, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %403

403:                                              ; preds = %536, %400
  %404 = load i32, ptr %56, align 4, !tbaa !9
  %405 = load i32, ptr %42, align 4, !tbaa !9
  %406 = icmp sle i32 %404, %405
  br i1 %406, label %407, label %539

407:                                              ; preds = %403
  %408 = load i32, ptr %56, align 4, !tbaa !9
  %409 = load i32, ptr %55, align 4, !tbaa !9
  %410 = load i32, ptr %39, align 4, !tbaa !9
  %411 = mul nsw i32 %409, %410
  %412 = add nsw i32 %408, %411
  store i32 %412, ptr %43, align 4, !tbaa !9
  %413 = load ptr, ptr %28, align 8, !tbaa !5
  %414 = load i32, ptr %43, align 4, !tbaa !9
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds %struct.complex, ptr %413, i64 %415
  %417 = getelementptr inbounds %struct.complex, ptr %416, i32 0, i32 0
  %418 = load float, ptr %417, align 4, !tbaa !16
  store float %418, ptr %46, align 4, !tbaa !11
  %419 = load float, ptr %46, align 4, !tbaa !11
  %420 = fcmp oge float %419, 0.000000e+00
  br i1 %420, label %421, label %423

421:                                              ; preds = %407
  %422 = load float, ptr %46, align 4, !tbaa !11
  br label %426

423:                                              ; preds = %407
  %424 = load float, ptr %46, align 4, !tbaa !11
  %425 = fneg float %424
  br label %426

426:                                              ; preds = %423, %421
  %427 = phi float [ %422, %421 ], [ %425, %423 ]
  %428 = load ptr, ptr %28, align 8, !tbaa !5
  %429 = load i32, ptr %56, align 4, !tbaa !9
  %430 = load i32, ptr %55, align 4, !tbaa !9
  %431 = load i32, ptr %39, align 4, !tbaa !9
  %432 = mul nsw i32 %430, %431
  %433 = add nsw i32 %429, %432
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds %struct.complex, ptr %428, i64 %434
  %436 = call <2 x float> @Cf(ptr noundef %435)
  store <2 x float> %436, ptr %71, align 4
  %437 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %438 = load float, ptr %437, align 4
  %439 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %440 = load float, ptr %439, align 4
  store float %440, ptr %47, align 4, !tbaa !11
  %441 = load float, ptr %47, align 4, !tbaa !11
  %442 = fcmp oge float %441, 0.000000e+00
  br i1 %442, label %443, label %445

443:                                              ; preds = %426
  %444 = load float, ptr %47, align 4, !tbaa !11
  br label %448

445:                                              ; preds = %426
  %446 = load float, ptr %47, align 4, !tbaa !11
  %447 = fneg float %446
  br label %448

448:                                              ; preds = %445, %443
  %449 = phi float [ %444, %443 ], [ %447, %445 ]
  %450 = fadd float %427, %449
  store float %450, ptr %60, align 4, !tbaa !11
  store i32 1, ptr %43, align 4, !tbaa !9
  %451 = load i32, ptr %56, align 4, !tbaa !9
  %452 = load ptr, ptr %22, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = sub nsw i32 %451, %453
  store i32 %454, ptr %44, align 4, !tbaa !9
  %455 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %455, ptr %45, align 4, !tbaa !9
  %456 = load i32, ptr %43, align 4, !tbaa !9
  %457 = load i32, ptr %44, align 4, !tbaa !9
  %458 = icmp sge i32 %456, %457
  br i1 %458, label %459, label %461

459:                                              ; preds = %448
  %460 = load i32, ptr %43, align 4, !tbaa !9
  br label %463

461:                                              ; preds = %448
  %462 = load i32, ptr %44, align 4, !tbaa !9
  br label %463

463:                                              ; preds = %461, %459
  %464 = phi i32 [ %460, %459 ], [ %462, %461 ]
  store i32 %464, ptr %54, align 4, !tbaa !9
  br label %465

465:                                              ; preds = %532, %463
  %466 = load i32, ptr %54, align 4, !tbaa !9
  %467 = load i32, ptr %45, align 4, !tbaa !9
  %468 = icmp sle i32 %466, %467
  br i1 %468, label %469, label %535

469:                                              ; preds = %465
  %470 = load ptr, ptr %22, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = add nsw i32 %471, 1
  %473 = load i32, ptr %54, align 4, !tbaa !9
  %474 = add nsw i32 %472, %473
  %475 = load i32, ptr %56, align 4, !tbaa !9
  %476 = sub nsw i32 %474, %475
  %477 = load i32, ptr %56, align 4, !tbaa !9
  %478 = load i32, ptr %35, align 4, !tbaa !9
  %479 = mul nsw i32 %477, %478
  %480 = add nsw i32 %476, %479
  store i32 %480, ptr %43, align 4, !tbaa !9
  %481 = load ptr, ptr %24, align 8, !tbaa !5
  %482 = load i32, ptr %43, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds %struct.complex, ptr %481, i64 %483
  %485 = getelementptr inbounds %struct.complex, ptr %484, i32 0, i32 0
  %486 = load float, ptr %485, align 4, !tbaa !16
  store float %486, ptr %46, align 4, !tbaa !11
  %487 = load float, ptr %46, align 4, !tbaa !11
  %488 = fcmp oge float %487, 0.000000e+00
  br i1 %488, label %489, label %491

489:                                              ; preds = %469
  %490 = load float, ptr %46, align 4, !tbaa !11
  br label %494

491:                                              ; preds = %469
  %492 = load float, ptr %46, align 4, !tbaa !11
  %493 = fneg float %492
  br label %494

494:                                              ; preds = %491, %489
  %495 = phi float [ %490, %489 ], [ %493, %491 ]
  %496 = load ptr, ptr %24, align 8, !tbaa !5
  %497 = load ptr, ptr %22, align 8, !tbaa !5
  %498 = load i32, ptr %497, align 4, !tbaa !9
  %499 = add nsw i32 %498, 1
  %500 = load i32, ptr %54, align 4, !tbaa !9
  %501 = add nsw i32 %499, %500
  %502 = load i32, ptr %56, align 4, !tbaa !9
  %503 = sub nsw i32 %501, %502
  %504 = load i32, ptr %56, align 4, !tbaa !9
  %505 = load i32, ptr %35, 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 %496, i64 %508
  %510 = call <2 x float> @Cf(ptr noundef %509)
  store <2 x float> %510, ptr %72, align 4
  %511 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %512 = load float, ptr %511, align 4
  %513 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %514 = load float, ptr %513, align 4
  store float %514, ptr %47, align 4, !tbaa !11
  %515 = load float, ptr %47, align 4, !tbaa !11
  %516 = fcmp oge float %515, 0.000000e+00
  br i1 %516, label %517, label %519

517:                                              ; preds = %494
  %518 = load float, ptr %47, align 4, !tbaa !11
  br label %522

519:                                              ; preds = %494
  %520 = load float, ptr %47, align 4, !tbaa !11
  %521 = fneg float %520
  br label %522

522:                                              ; preds = %519, %517
  %523 = phi float [ %518, %517 ], [ %521, %519 ]
  %524 = fadd float %495, %523
  %525 = load float, ptr %60, align 4, !tbaa !11
  %526 = load ptr, ptr %33, align 8, !tbaa !5
  %527 = load i32, ptr %54, align 4, !tbaa !9
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds float, ptr %526, i64 %528
  %530 = load float, ptr %529, align 4, !tbaa !11
  %531 = call float @llvm.fmuladd.f32(float %524, float %525, float %530)
  store float %531, ptr %529, align 4, !tbaa !11
  br label %532

532:                                              ; preds = %522
  %533 = load i32, ptr %54, align 4, !tbaa !9
  %534 = add nsw i32 %533, 1
  store i32 %534, ptr %54, align 4, !tbaa !9
  br label %465, !llvm.loop !20

535:                                              ; preds = %465
  br label %536

536:                                              ; preds = %535
  %537 = load i32, ptr %56, align 4, !tbaa !9
  %538 = add nsw i32 %537, 1
  store i32 %538, ptr %56, align 4, !tbaa !9
  br label %403, !llvm.loop !21

539:                                              ; preds = %403
  br label %688

540:                                              ; preds = %397
  %541 = load ptr, ptr %21, align 8, !tbaa !5
  %542 = load i32, ptr %541, align 4, !tbaa !9
  store i32 %542, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %543

543:                                              ; preds = %684, %540
  %544 = load i32, ptr %56, align 4, !tbaa !9
  %545 = load i32, ptr %42, align 4, !tbaa !9
  %546 = icmp sle i32 %544, %545
  br i1 %546, label %547, label %687

547:                                              ; preds = %543
  %548 = load i32, ptr %56, align 4, !tbaa !9
  %549 = load i32, ptr %55, align 4, !tbaa !9
  %550 = load i32, ptr %39, align 4, !tbaa !9
  %551 = mul nsw i32 %549, %550
  %552 = add nsw i32 %548, %551
  store i32 %552, ptr %45, align 4, !tbaa !9
  %553 = load ptr, ptr %28, align 8, !tbaa !5
  %554 = load i32, ptr %45, align 4, !tbaa !9
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds %struct.complex, ptr %553, i64 %555
  %557 = getelementptr inbounds %struct.complex, ptr %556, i32 0, i32 0
  %558 = load float, ptr %557, align 4, !tbaa !16
  store float %558, ptr %46, align 4, !tbaa !11
  %559 = load float, ptr %46, align 4, !tbaa !11
  %560 = fcmp oge float %559, 0.000000e+00
  br i1 %560, label %561, label %563

561:                                              ; preds = %547
  %562 = load float, ptr %46, align 4, !tbaa !11
  br label %566

563:                                              ; preds = %547
  %564 = load float, ptr %46, align 4, !tbaa !11
  %565 = fneg float %564
  br label %566

566:                                              ; preds = %563, %561
  %567 = phi float [ %562, %561 ], [ %565, %563 ]
  %568 = load ptr, ptr %28, align 8, !tbaa !5
  %569 = load i32, ptr %56, align 4, !tbaa !9
  %570 = load i32, ptr %55, align 4, !tbaa !9
  %571 = load i32, ptr %39, align 4, !tbaa !9
  %572 = mul nsw i32 %570, %571
  %573 = add nsw i32 %569, %572
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds %struct.complex, ptr %568, i64 %574
  %576 = call <2 x float> @Cf(ptr noundef %575)
  store <2 x float> %576, ptr %73, align 4
  %577 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %578 = load float, ptr %577, align 4
  %579 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %580 = load float, ptr %579, align 4
  store float %580, ptr %47, align 4, !tbaa !11
  %581 = load float, ptr %47, align 4, !tbaa !11
  %582 = fcmp oge float %581, 0.000000e+00
  br i1 %582, label %583, label %585

583:                                              ; preds = %566
  %584 = load float, ptr %47, align 4, !tbaa !11
  br label %588

585:                                              ; preds = %566
  %586 = load float, ptr %47, align 4, !tbaa !11
  %587 = fneg float %586
  br label %588

588:                                              ; preds = %585, %583
  %589 = phi float [ %584, %583 ], [ %587, %585 ]
  %590 = fadd float %567, %589
  store float %590, ptr %60, align 4, !tbaa !11
  store i32 1, ptr %45, align 4, !tbaa !9
  %591 = load i32, ptr %56, align 4, !tbaa !9
  %592 = load ptr, ptr %22, align 8, !tbaa !5
  %593 = load i32, ptr %592, align 4, !tbaa !9
  %594 = sub nsw i32 %591, %593
  store i32 %594, ptr %43, align 4, !tbaa !9
  %595 = load i32, ptr %56, align 4, !tbaa !9
  %596 = sub nsw i32 %595, 1
  store i32 %596, ptr %44, align 4, !tbaa !9
  %597 = load i32, ptr %45, align 4, !tbaa !9
  %598 = load i32, ptr %43, align 4, !tbaa !9
  %599 = icmp sge i32 %597, %598
  br i1 %599, label %600, label %602

600:                                              ; preds = %588
  %601 = load i32, ptr %45, align 4, !tbaa !9
  br label %604

602:                                              ; preds = %588
  %603 = load i32, ptr %43, align 4, !tbaa !9
  br label %604

604:                                              ; preds = %602, %600
  %605 = phi i32 [ %601, %600 ], [ %603, %602 ]
  store i32 %605, ptr %54, align 4, !tbaa !9
  br label %606

606:                                              ; preds = %673, %604
  %607 = load i32, ptr %54, align 4, !tbaa !9
  %608 = load i32, ptr %44, align 4, !tbaa !9
  %609 = icmp sle i32 %607, %608
  br i1 %609, label %610, label %676

610:                                              ; preds = %606
  %611 = load ptr, ptr %22, align 8, !tbaa !5
  %612 = load i32, ptr %611, align 4, !tbaa !9
  %613 = add nsw i32 %612, 1
  %614 = load i32, ptr %54, align 4, !tbaa !9
  %615 = add nsw i32 %613, %614
  %616 = load i32, ptr %56, align 4, !tbaa !9
  %617 = sub nsw i32 %615, %616
  %618 = load i32, ptr %56, align 4, !tbaa !9
  %619 = load i32, ptr %35, align 4, !tbaa !9
  %620 = mul nsw i32 %618, %619
  %621 = add nsw i32 %617, %620
  store i32 %621, ptr %45, align 4, !tbaa !9
  %622 = load ptr, ptr %24, align 8, !tbaa !5
  %623 = load i32, ptr %45, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds %struct.complex, ptr %622, i64 %624
  %626 = getelementptr inbounds %struct.complex, ptr %625, i32 0, i32 0
  %627 = load float, ptr %626, align 4, !tbaa !16
  store float %627, ptr %46, align 4, !tbaa !11
  %628 = load float, ptr %46, align 4, !tbaa !11
  %629 = fcmp oge float %628, 0.000000e+00
  br i1 %629, label %630, label %632

630:                                              ; preds = %610
  %631 = load float, ptr %46, align 4, !tbaa !11
  br label %635

632:                                              ; preds = %610
  %633 = load float, ptr %46, align 4, !tbaa !11
  %634 = fneg float %633
  br label %635

635:                                              ; preds = %632, %630
  %636 = phi float [ %631, %630 ], [ %634, %632 ]
  %637 = load ptr, ptr %24, align 8, !tbaa !5
  %638 = load ptr, ptr %22, align 8, !tbaa !5
  %639 = load i32, ptr %638, align 4, !tbaa !9
  %640 = add nsw i32 %639, 1
  %641 = load i32, ptr %54, align 4, !tbaa !9
  %642 = add nsw i32 %640, %641
  %643 = load i32, ptr %56, align 4, !tbaa !9
  %644 = sub nsw i32 %642, %643
  %645 = load i32, ptr %56, align 4, !tbaa !9
  %646 = load i32, ptr %35, align 4, !tbaa !9
  %647 = mul nsw i32 %645, %646
  %648 = add nsw i32 %644, %647
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds %struct.complex, ptr %637, i64 %649
  %651 = call <2 x float> @Cf(ptr noundef %650)
  store <2 x float> %651, ptr %74, align 4
  %652 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %653 = load float, ptr %652, align 4
  %654 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %655 = load float, ptr %654, align 4
  store float %655, ptr %47, align 4, !tbaa !11
  %656 = load float, ptr %47, align 4, !tbaa !11
  %657 = fcmp oge float %656, 0.000000e+00
  br i1 %657, label %658, label %660

658:                                              ; preds = %635
  %659 = load float, ptr %47, align 4, !tbaa !11
  br label %663

660:                                              ; preds = %635
  %661 = load float, ptr %47, align 4, !tbaa !11
  %662 = fneg float %661
  br label %663

663:                                              ; preds = %660, %658
  %664 = phi float [ %659, %658 ], [ %662, %660 ]
  %665 = fadd float %636, %664
  %666 = load float, ptr %60, align 4, !tbaa !11
  %667 = load ptr, ptr %33, align 8, !tbaa !5
  %668 = load i32, ptr %54, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %667, i64 %669
  %671 = load float, ptr %670, align 4, !tbaa !11
  %672 = call float @llvm.fmuladd.f32(float %665, float %666, float %671)
  store float %672, ptr %670, align 4, !tbaa !11
  br label %673

673:                                              ; preds = %663
  %674 = load i32, ptr %54, align 4, !tbaa !9
  %675 = add nsw i32 %674, 1
  store i32 %675, ptr %54, align 4, !tbaa !9
  br label %606, !llvm.loop !22

676:                                              ; preds = %606
  %677 = load float, ptr %60, align 4, !tbaa !11
  %678 = load ptr, ptr %33, align 8, !tbaa !5
  %679 = load i32, ptr %56, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds float, ptr %678, i64 %680
  %682 = load float, ptr %681, align 4, !tbaa !11
  %683 = fadd float %682, %677
  store float %683, ptr %681, align 4, !tbaa !11
  br label %684

684:                                              ; preds = %676
  %685 = load i32, ptr %56, align 4, !tbaa !9
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr %56, align 4, !tbaa !9
  br label %543, !llvm.loop !23

687:                                              ; preds = %543
  br label %688

688:                                              ; preds = %687, %539
  br label %973

689:                                              ; preds = %394
  %690 = load i32, ptr %66, align 4, !tbaa !9
  %691 = icmp ne i32 %690, 0
  br i1 %691, label %692, label %828

692:                                              ; preds = %689
  %693 = load ptr, ptr %21, align 8, !tbaa !5
  %694 = load i32, ptr %693, align 4, !tbaa !9
  store i32 %694, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %695

695:                                              ; preds = %824, %692
  %696 = load i32, ptr %56, align 4, !tbaa !9
  %697 = load i32, ptr %42, align 4, !tbaa !9
  %698 = icmp sle i32 %696, %697
  br i1 %698, label %699, label %827

699:                                              ; preds = %695
  %700 = load i32, ptr %56, align 4, !tbaa !9
  %701 = load i32, ptr %55, align 4, !tbaa !9
  %702 = load i32, ptr %39, align 4, !tbaa !9
  %703 = mul nsw i32 %701, %702
  %704 = add nsw i32 %700, %703
  store i32 %704, ptr %44, align 4, !tbaa !9
  %705 = load ptr, ptr %28, align 8, !tbaa !5
  %706 = load i32, ptr %44, align 4, !tbaa !9
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds %struct.complex, ptr %705, i64 %707
  %709 = getelementptr inbounds %struct.complex, ptr %708, i32 0, i32 0
  %710 = load float, ptr %709, align 4, !tbaa !16
  store float %710, ptr %46, align 4, !tbaa !11
  %711 = load float, ptr %46, align 4, !tbaa !11
  %712 = fcmp oge float %711, 0.000000e+00
  br i1 %712, label %713, label %715

713:                                              ; preds = %699
  %714 = load float, ptr %46, align 4, !tbaa !11
  br label %718

715:                                              ; preds = %699
  %716 = load float, ptr %46, align 4, !tbaa !11
  %717 = fneg float %716
  br label %718

718:                                              ; preds = %715, %713
  %719 = phi float [ %714, %713 ], [ %717, %715 ]
  %720 = load ptr, ptr %28, align 8, !tbaa !5
  %721 = load i32, ptr %56, align 4, !tbaa !9
  %722 = load i32, ptr %55, align 4, !tbaa !9
  %723 = load i32, ptr %39, align 4, !tbaa !9
  %724 = mul nsw i32 %722, %723
  %725 = add nsw i32 %721, %724
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds %struct.complex, ptr %720, i64 %726
  %728 = call <2 x float> @Cf(ptr noundef %727)
  store <2 x float> %728, ptr %75, align 4
  %729 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %730 = load float, ptr %729, align 4
  %731 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %732 = load float, ptr %731, align 4
  store float %732, ptr %47, align 4, !tbaa !11
  %733 = load float, ptr %47, align 4, !tbaa !11
  %734 = fcmp oge float %733, 0.000000e+00
  br i1 %734, label %735, label %737

735:                                              ; preds = %718
  %736 = load float, ptr %47, align 4, !tbaa !11
  br label %740

737:                                              ; preds = %718
  %738 = load float, ptr %47, align 4, !tbaa !11
  %739 = fneg float %738
  br label %740

740:                                              ; preds = %737, %735
  %741 = phi float [ %736, %735 ], [ %739, %737 ]
  %742 = fadd float %719, %741
  store float %742, ptr %60, align 4, !tbaa !11
  %743 = load ptr, ptr %21, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  store i32 %744, ptr %45, align 4, !tbaa !9
  %745 = load i32, ptr %56, align 4, !tbaa !9
  %746 = load ptr, ptr %22, align 8, !tbaa !5
  %747 = load i32, ptr %746, align 4, !tbaa !9
  %748 = add nsw i32 %745, %747
  store i32 %748, ptr %43, align 4, !tbaa !9
  %749 = load i32, ptr %45, align 4, !tbaa !9
  %750 = load i32, ptr %43, align 4, !tbaa !9
  %751 = icmp sle i32 %749, %750
  br i1 %751, label %752, label %754

752:                                              ; preds = %740
  %753 = load i32, ptr %45, align 4, !tbaa !9
  br label %756

754:                                              ; preds = %740
  %755 = load i32, ptr %43, align 4, !tbaa !9
  br label %756

756:                                              ; preds = %754, %752
  %757 = phi i32 [ %753, %752 ], [ %755, %754 ]
  store i32 %757, ptr %44, align 4, !tbaa !9
  %758 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %758, ptr %54, align 4, !tbaa !9
  br label %759

759:                                              ; preds = %820, %756
  %760 = load i32, ptr %54, align 4, !tbaa !9
  %761 = load i32, ptr %44, align 4, !tbaa !9
  %762 = icmp sle i32 %760, %761
  br i1 %762, label %763, label %823

763:                                              ; preds = %759
  %764 = load i32, ptr %54, align 4, !tbaa !9
  %765 = add nsw i32 %764, 1
  %766 = load i32, ptr %56, align 4, !tbaa !9
  %767 = sub nsw i32 %765, %766
  %768 = load i32, ptr %56, align 4, !tbaa !9
  %769 = load i32, ptr %35, align 4, !tbaa !9
  %770 = mul nsw i32 %768, %769
  %771 = add nsw i32 %767, %770
  store i32 %771, ptr %45, align 4, !tbaa !9
  %772 = load ptr, ptr %24, align 8, !tbaa !5
  %773 = load i32, ptr %45, align 4, !tbaa !9
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds %struct.complex, ptr %772, i64 %774
  %776 = getelementptr inbounds %struct.complex, ptr %775, i32 0, i32 0
  %777 = load float, ptr %776, align 4, !tbaa !16
  store float %777, ptr %46, align 4, !tbaa !11
  %778 = load float, ptr %46, align 4, !tbaa !11
  %779 = fcmp oge float %778, 0.000000e+00
  br i1 %779, label %780, label %782

780:                                              ; preds = %763
  %781 = load float, ptr %46, align 4, !tbaa !11
  br label %785

782:                                              ; preds = %763
  %783 = load float, ptr %46, align 4, !tbaa !11
  %784 = fneg float %783
  br label %785

785:                                              ; preds = %782, %780
  %786 = phi float [ %781, %780 ], [ %784, %782 ]
  %787 = load ptr, ptr %24, align 8, !tbaa !5
  %788 = load i32, ptr %54, align 4, !tbaa !9
  %789 = add nsw i32 %788, 1
  %790 = load i32, ptr %56, align 4, !tbaa !9
  %791 = sub nsw i32 %789, %790
  %792 = load i32, ptr %56, align 4, !tbaa !9
  %793 = load i32, ptr %35, align 4, !tbaa !9
  %794 = mul nsw i32 %792, %793
  %795 = add nsw i32 %791, %794
  %796 = sext i32 %795 to i64
  %797 = getelementptr inbounds %struct.complex, ptr %787, i64 %796
  %798 = call <2 x float> @Cf(ptr noundef %797)
  store <2 x float> %798, ptr %76, align 4
  %799 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 0
  %800 = load float, ptr %799, align 4
  %801 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 1
  %802 = load float, ptr %801, align 4
  store float %802, ptr %47, align 4, !tbaa !11
  %803 = load float, ptr %47, align 4, !tbaa !11
  %804 = fcmp oge float %803, 0.000000e+00
  br i1 %804, label %805, label %807

805:                                              ; preds = %785
  %806 = load float, ptr %47, align 4, !tbaa !11
  br label %810

807:                                              ; preds = %785
  %808 = load float, ptr %47, align 4, !tbaa !11
  %809 = fneg float %808
  br label %810

810:                                              ; preds = %807, %805
  %811 = phi float [ %806, %805 ], [ %809, %807 ]
  %812 = fadd float %786, %811
  %813 = load float, ptr %60, align 4, !tbaa !11
  %814 = load ptr, ptr %33, align 8, !tbaa !5
  %815 = load i32, ptr %54, align 4, !tbaa !9
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds float, ptr %814, i64 %816
  %818 = load float, ptr %817, align 4, !tbaa !11
  %819 = call float @llvm.fmuladd.f32(float %812, float %813, float %818)
  store float %819, ptr %817, align 4, !tbaa !11
  br label %820

820:                                              ; preds = %810
  %821 = load i32, ptr %54, align 4, !tbaa !9
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr %54, align 4, !tbaa !9
  br label %759, !llvm.loop !24

823:                                              ; preds = %759
  br label %824

824:                                              ; preds = %823
  %825 = load i32, ptr %56, align 4, !tbaa !9
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr %56, align 4, !tbaa !9
  br label %695, !llvm.loop !25

827:                                              ; preds = %695
  br label %972

828:                                              ; preds = %689
  %829 = load ptr, ptr %21, align 8, !tbaa !5
  %830 = load i32, ptr %829, align 4, !tbaa !9
  store i32 %830, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %831

831:                                              ; preds = %968, %828
  %832 = load i32, ptr %56, align 4, !tbaa !9
  %833 = load i32, ptr %42, align 4, !tbaa !9
  %834 = icmp sle i32 %832, %833
  br i1 %834, label %835, label %971

835:                                              ; preds = %831
  %836 = load i32, ptr %56, align 4, !tbaa !9
  %837 = load i32, ptr %55, align 4, !tbaa !9
  %838 = load i32, ptr %39, align 4, !tbaa !9
  %839 = mul nsw i32 %837, %838
  %840 = add nsw i32 %836, %839
  store i32 %840, ptr %44, align 4, !tbaa !9
  %841 = load ptr, ptr %28, align 8, !tbaa !5
  %842 = load i32, ptr %44, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds %struct.complex, ptr %841, i64 %843
  %845 = getelementptr inbounds %struct.complex, ptr %844, i32 0, i32 0
  %846 = load float, ptr %845, align 4, !tbaa !16
  store float %846, ptr %46, align 4, !tbaa !11
  %847 = load float, ptr %46, align 4, !tbaa !11
  %848 = fcmp oge float %847, 0.000000e+00
  br i1 %848, label %849, label %851

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

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

854:                                              ; preds = %851, %849
  %855 = phi float [ %850, %849 ], [ %853, %851 ]
  %856 = load ptr, ptr %28, align 8, !tbaa !5
  %857 = load i32, ptr %56, align 4, !tbaa !9
  %858 = load i32, ptr %55, align 4, !tbaa !9
  %859 = load i32, ptr %39, align 4, !tbaa !9
  %860 = mul nsw i32 %858, %859
  %861 = add nsw i32 %857, %860
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds %struct.complex, ptr %856, i64 %862
  %864 = call <2 x float> @Cf(ptr noundef %863)
  store <2 x float> %864, ptr %77, align 4
  %865 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 0
  %866 = load float, ptr %865, align 4
  %867 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 1
  %868 = load float, ptr %867, align 4
  store float %868, ptr %47, align 4, !tbaa !11
  %869 = load float, ptr %47, align 4, !tbaa !11
  %870 = fcmp oge float %869, 0.000000e+00
  br i1 %870, label %871, label %873

871:                                              ; preds = %854
  %872 = load float, ptr %47, align 4, !tbaa !11
  br label %876

873:                                              ; preds = %854
  %874 = load float, ptr %47, align 4, !tbaa !11
  %875 = fneg float %874
  br label %876

876:                                              ; preds = %873, %871
  %877 = phi float [ %872, %871 ], [ %875, %873 ]
  %878 = fadd float %855, %877
  store float %878, ptr %60, align 4, !tbaa !11
  %879 = load ptr, ptr %21, align 8, !tbaa !5
  %880 = load i32, ptr %879, align 4, !tbaa !9
  store i32 %880, ptr %45, align 4, !tbaa !9
  %881 = load i32, ptr %56, align 4, !tbaa !9
  %882 = load ptr, ptr %22, align 8, !tbaa !5
  %883 = load i32, ptr %882, align 4, !tbaa !9
  %884 = add nsw i32 %881, %883
  store i32 %884, ptr %43, align 4, !tbaa !9
  %885 = load i32, ptr %45, align 4, !tbaa !9
  %886 = load i32, ptr %43, align 4, !tbaa !9
  %887 = icmp sle i32 %885, %886
  br i1 %887, label %888, label %890

888:                                              ; preds = %876
  %889 = load i32, ptr %45, align 4, !tbaa !9
  br label %892

890:                                              ; preds = %876
  %891 = load i32, ptr %43, align 4, !tbaa !9
  br label %892

892:                                              ; preds = %890, %888
  %893 = phi i32 [ %889, %888 ], [ %891, %890 ]
  store i32 %893, ptr %44, align 4, !tbaa !9
  %894 = load i32, ptr %56, align 4, !tbaa !9
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr %54, align 4, !tbaa !9
  br label %896

896:                                              ; preds = %957, %892
  %897 = load i32, ptr %54, align 4, !tbaa !9
  %898 = load i32, ptr %44, align 4, !tbaa !9
  %899 = icmp sle i32 %897, %898
  br i1 %899, label %900, label %960

900:                                              ; preds = %896
  %901 = load i32, ptr %54, align 4, !tbaa !9
  %902 = add nsw i32 %901, 1
  %903 = load i32, ptr %56, align 4, !tbaa !9
  %904 = sub nsw i32 %902, %903
  %905 = load i32, ptr %56, align 4, !tbaa !9
  %906 = load i32, ptr %35, align 4, !tbaa !9
  %907 = mul nsw i32 %905, %906
  %908 = add nsw i32 %904, %907
  store i32 %908, ptr %45, align 4, !tbaa !9
  %909 = load ptr, ptr %24, align 8, !tbaa !5
  %910 = load i32, ptr %45, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds %struct.complex, ptr %909, i64 %911
  %913 = getelementptr inbounds %struct.complex, ptr %912, i32 0, i32 0
  %914 = load float, ptr %913, align 4, !tbaa !16
  store float %914, ptr %46, align 4, !tbaa !11
  %915 = load float, ptr %46, align 4, !tbaa !11
  %916 = fcmp oge float %915, 0.000000e+00
  br i1 %916, label %917, label %919

917:                                              ; preds = %900
  %918 = load float, ptr %46, align 4, !tbaa !11
  br label %922

919:                                              ; preds = %900
  %920 = load float, ptr %46, align 4, !tbaa !11
  %921 = fneg float %920
  br label %922

922:                                              ; preds = %919, %917
  %923 = phi float [ %918, %917 ], [ %921, %919 ]
  %924 = load ptr, ptr %24, align 8, !tbaa !5
  %925 = load i32, ptr %54, align 4, !tbaa !9
  %926 = add nsw i32 %925, 1
  %927 = load i32, ptr %56, align 4, !tbaa !9
  %928 = sub nsw i32 %926, %927
  %929 = load i32, ptr %56, align 4, !tbaa !9
  %930 = load i32, ptr %35, align 4, !tbaa !9
  %931 = mul nsw i32 %929, %930
  %932 = add nsw i32 %928, %931
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds %struct.complex, ptr %924, i64 %933
  %935 = call <2 x float> @Cf(ptr noundef %934)
  store <2 x float> %935, ptr %78, align 4
  %936 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 0
  %937 = load float, ptr %936, align 4
  %938 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 1
  %939 = load float, ptr %938, align 4
  store float %939, ptr %47, align 4, !tbaa !11
  %940 = load float, ptr %47, align 4, !tbaa !11
  %941 = fcmp oge float %940, 0.000000e+00
  br i1 %941, label %942, label %944

942:                                              ; preds = %922
  %943 = load float, ptr %47, align 4, !tbaa !11
  br label %947

944:                                              ; preds = %922
  %945 = load float, ptr %47, align 4, !tbaa !11
  %946 = fneg float %945
  br label %947

947:                                              ; preds = %944, %942
  %948 = phi float [ %943, %942 ], [ %946, %944 ]
  %949 = fadd float %923, %948
  %950 = load float, ptr %60, align 4, !tbaa !11
  %951 = load ptr, ptr %33, align 8, !tbaa !5
  %952 = load i32, ptr %54, align 4, !tbaa !9
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds float, ptr %951, i64 %953
  %955 = load float, ptr %954, align 4, !tbaa !11
  %956 = call float @llvm.fmuladd.f32(float %949, float %950, float %955)
  store float %956, ptr %954, align 4, !tbaa !11
  br label %957

957:                                              ; preds = %947
  %958 = load i32, ptr %54, align 4, !tbaa !9
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr %54, align 4, !tbaa !9
  br label %896, !llvm.loop !26

960:                                              ; preds = %896
  %961 = load float, ptr %60, align 4, !tbaa !11
  %962 = load ptr, ptr %33, align 8, !tbaa !5
  %963 = load i32, ptr %56, align 4, !tbaa !9
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds float, ptr %962, i64 %964
  %966 = load float, ptr %965, align 4, !tbaa !11
  %967 = fadd float %966, %961
  store float %967, ptr %965, align 4, !tbaa !11
  br label %968

968:                                              ; preds = %960
  %969 = load i32, ptr %56, align 4, !tbaa !9
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr %56, align 4, !tbaa !9
  br label %831, !llvm.loop !27

971:                                              ; preds = %831
  br label %972

972:                                              ; preds = %971, %827
  br label %973

973:                                              ; preds = %972, %688
  br label %1634

974:                                              ; preds = %391
  %975 = load i32, ptr %59, align 4, !tbaa !9
  %976 = icmp ne i32 %975, 0
  br i1 %976, label %977, label %1309

977:                                              ; preds = %974
  %978 = load i32, ptr %66, align 4, !tbaa !9
  %979 = icmp ne i32 %978, 0
  br i1 %979, label %980, label %1122

980:                                              ; preds = %977
  %981 = load ptr, ptr %21, align 8, !tbaa !5
  %982 = load i32, ptr %981, align 4, !tbaa !9
  store i32 %982, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %983

983:                                              ; preds = %1118, %980
  %984 = load i32, ptr %56, align 4, !tbaa !9
  %985 = load i32, ptr %42, align 4, !tbaa !9
  %986 = icmp sle i32 %984, %985
  br i1 %986, label %987, label %1121

987:                                              ; preds = %983
  store float 0.000000e+00, ptr %57, align 4, !tbaa !11
  store i32 1, ptr %44, align 4, !tbaa !9
  %988 = load i32, ptr %56, align 4, !tbaa !9
  %989 = load ptr, ptr %22, align 8, !tbaa !5
  %990 = load i32, ptr %989, align 4, !tbaa !9
  %991 = sub nsw i32 %988, %990
  store i32 %991, ptr %45, align 4, !tbaa !9
  %992 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %992, ptr %43, align 4, !tbaa !9
  %993 = load i32, ptr %44, align 4, !tbaa !9
  %994 = load i32, ptr %45, align 4, !tbaa !9
  %995 = icmp sge i32 %993, %994
  br i1 %995, label %996, label %998

996:                                              ; preds = %987
  %997 = load i32, ptr %44, align 4, !tbaa !9
  br label %1000

998:                                              ; preds = %987
  %999 = load i32, ptr %45, align 4, !tbaa !9
  br label %1000

1000:                                             ; preds = %998, %996
  %1001 = phi i32 [ %997, %996 ], [ %999, %998 ]
  store i32 %1001, ptr %54, align 4, !tbaa !9
  br label %1002

1002:                                             ; preds = %1107, %1000
  %1003 = load i32, ptr %54, align 4, !tbaa !9
  %1004 = load i32, ptr %43, align 4, !tbaa !9
  %1005 = icmp sle i32 %1003, %1004
  br i1 %1005, label %1006, label %1110

1006:                                             ; preds = %1002
  %1007 = load ptr, ptr %22, align 8, !tbaa !5
  %1008 = load i32, ptr %1007, align 4, !tbaa !9
  %1009 = add nsw i32 %1008, 1
  %1010 = load i32, ptr %54, align 4, !tbaa !9
  %1011 = add nsw i32 %1009, %1010
  %1012 = load i32, ptr %56, align 4, !tbaa !9
  %1013 = sub nsw i32 %1011, %1012
  %1014 = load i32, ptr %56, align 4, !tbaa !9
  %1015 = load i32, ptr %35, align 4, !tbaa !9
  %1016 = mul nsw i32 %1014, %1015
  %1017 = add nsw i32 %1013, %1016
  store i32 %1017, ptr %44, align 4, !tbaa !9
  %1018 = load i32, ptr %54, align 4, !tbaa !9
  %1019 = load i32, ptr %55, align 4, !tbaa !9
  %1020 = load i32, ptr %39, align 4, !tbaa !9
  %1021 = mul nsw i32 %1019, %1020
  %1022 = add nsw i32 %1018, %1021
  store i32 %1022, ptr %45, align 4, !tbaa !9
  %1023 = load ptr, ptr %24, align 8, !tbaa !5
  %1024 = load i32, ptr %44, align 4, !tbaa !9
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds %struct.complex, ptr %1023, i64 %1025
  %1027 = getelementptr inbounds %struct.complex, ptr %1026, i32 0, i32 0
  %1028 = load float, ptr %1027, align 4, !tbaa !16
  store float %1028, ptr %46, align 4, !tbaa !11
  %1029 = load float, ptr %46, align 4, !tbaa !11
  %1030 = fcmp oge float %1029, 0.000000e+00
  br i1 %1030, label %1031, label %1033

1031:                                             ; preds = %1006
  %1032 = load float, ptr %46, align 4, !tbaa !11
  br label %1036

1033:                                             ; preds = %1006
  %1034 = load float, ptr %46, align 4, !tbaa !11
  %1035 = fneg float %1034
  br label %1036

1036:                                             ; preds = %1033, %1031
  %1037 = phi float [ %1032, %1031 ], [ %1035, %1033 ]
  %1038 = load ptr, ptr %24, align 8, !tbaa !5
  %1039 = load ptr, ptr %22, align 8, !tbaa !5
  %1040 = load i32, ptr %1039, align 4, !tbaa !9
  %1041 = add nsw i32 %1040, 1
  %1042 = load i32, ptr %54, align 4, !tbaa !9
  %1043 = add nsw i32 %1041, %1042
  %1044 = load i32, ptr %56, align 4, !tbaa !9
  %1045 = sub nsw i32 %1043, %1044
  %1046 = load i32, ptr %56, align 4, !tbaa !9
  %1047 = load i32, ptr %35, align 4, !tbaa !9
  %1048 = mul nsw i32 %1046, %1047
  %1049 = add nsw i32 %1045, %1048
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds %struct.complex, ptr %1038, i64 %1050
  %1052 = call <2 x float> @Cf(ptr noundef %1051)
  store <2 x float> %1052, ptr %79, align 4
  %1053 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 0
  %1054 = load float, ptr %1053, align 4
  %1055 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 1
  %1056 = load float, ptr %1055, align 4
  store float %1056, ptr %47, align 4, !tbaa !11
  %1057 = load float, ptr %47, align 4, !tbaa !11
  %1058 = fcmp oge float %1057, 0.000000e+00
  br i1 %1058, label %1059, label %1061

1059:                                             ; preds = %1036
  %1060 = load float, ptr %47, align 4, !tbaa !11
  br label %1064

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

1064:                                             ; preds = %1061, %1059
  %1065 = phi float [ %1060, %1059 ], [ %1063, %1061 ]
  %1066 = fadd float %1037, %1065
  %1067 = load ptr, ptr %28, align 8, !tbaa !5
  %1068 = load i32, ptr %45, align 4, !tbaa !9
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds %struct.complex, ptr %1067, i64 %1069
  %1071 = getelementptr inbounds %struct.complex, ptr %1070, i32 0, i32 0
  %1072 = load float, ptr %1071, align 4, !tbaa !16
  store float %1072, ptr %48, align 4, !tbaa !11
  %1073 = load float, ptr %48, align 4, !tbaa !11
  %1074 = fcmp oge float %1073, 0.000000e+00
  br i1 %1074, label %1075, label %1077

1075:                                             ; preds = %1064
  %1076 = load float, ptr %48, align 4, !tbaa !11
  br label %1080

1077:                                             ; preds = %1064
  %1078 = load float, ptr %48, align 4, !tbaa !11
  %1079 = fneg float %1078
  br label %1080

1080:                                             ; preds = %1077, %1075
  %1081 = phi float [ %1076, %1075 ], [ %1079, %1077 ]
  %1082 = load ptr, ptr %28, align 8, !tbaa !5
  %1083 = load i32, ptr %54, align 4, !tbaa !9
  %1084 = load i32, ptr %55, align 4, !tbaa !9
  %1085 = load i32, ptr %39, align 4, !tbaa !9
  %1086 = mul nsw i32 %1084, %1085
  %1087 = add nsw i32 %1083, %1086
  %1088 = sext i32 %1087 to i64
  %1089 = getelementptr inbounds %struct.complex, ptr %1082, i64 %1088
  %1090 = call <2 x float> @Cf(ptr noundef %1089)
  store <2 x float> %1090, ptr %80, align 4
  %1091 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 0
  %1092 = load float, ptr %1091, align 4
  %1093 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 1
  %1094 = load float, ptr %1093, align 4
  store float %1094, ptr %49, align 4, !tbaa !11
  %1095 = load float, ptr %49, align 4, !tbaa !11
  %1096 = fcmp oge float %1095, 0.000000e+00
  br i1 %1096, label %1097, label %1099

1097:                                             ; preds = %1080
  %1098 = load float, ptr %49, align 4, !tbaa !11
  br label %1102

1099:                                             ; preds = %1080
  %1100 = load float, ptr %49, align 4, !tbaa !11
  %1101 = fneg float %1100
  br label %1102

1102:                                             ; preds = %1099, %1097
  %1103 = phi float [ %1098, %1097 ], [ %1101, %1099 ]
  %1104 = fadd float %1081, %1103
  %1105 = load float, ptr %57, align 4, !tbaa !11
  %1106 = call float @llvm.fmuladd.f32(float %1066, float %1104, float %1105)
  store float %1106, ptr %57, align 4, !tbaa !11
  br label %1107

1107:                                             ; preds = %1102
  %1108 = load i32, ptr %54, align 4, !tbaa !9
  %1109 = add nsw i32 %1108, 1
  store i32 %1109, ptr %54, align 4, !tbaa !9
  br label %1002, !llvm.loop !28

1110:                                             ; preds = %1002
  %1111 = load float, ptr %57, align 4, !tbaa !11
  %1112 = load ptr, ptr %33, align 8, !tbaa !5
  %1113 = load i32, ptr %56, align 4, !tbaa !9
  %1114 = sext i32 %1113 to i64
  %1115 = getelementptr inbounds float, ptr %1112, i64 %1114
  %1116 = load float, ptr %1115, align 4, !tbaa !11
  %1117 = fadd float %1116, %1111
  store float %1117, ptr %1115, align 4, !tbaa !11
  br label %1118

1118:                                             ; preds = %1110
  %1119 = load i32, ptr %56, align 4, !tbaa !9
  %1120 = add nsw i32 %1119, 1
  store i32 %1120, ptr %56, align 4, !tbaa !9
  br label %983, !llvm.loop !29

1121:                                             ; preds = %983
  br label %1308

1122:                                             ; preds = %977
  %1123 = load ptr, ptr %21, align 8, !tbaa !5
  %1124 = load i32, ptr %1123, align 4, !tbaa !9
  store i32 %1124, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %1125

1125:                                             ; preds = %1304, %1122
  %1126 = load i32, ptr %56, align 4, !tbaa !9
  %1127 = load i32, ptr %42, align 4, !tbaa !9
  %1128 = icmp sle i32 %1126, %1127
  br i1 %1128, label %1129, label %1307

1129:                                             ; preds = %1125
  %1130 = load i32, ptr %56, align 4, !tbaa !9
  %1131 = load i32, ptr %55, align 4, !tbaa !9
  %1132 = load i32, ptr %39, align 4, !tbaa !9
  %1133 = mul nsw i32 %1131, %1132
  %1134 = add nsw i32 %1130, %1133
  store i32 %1134, ptr %43, align 4, !tbaa !9
  %1135 = load ptr, ptr %28, align 8, !tbaa !5
  %1136 = load i32, ptr %43, align 4, !tbaa !9
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds %struct.complex, ptr %1135, i64 %1137
  %1139 = getelementptr inbounds %struct.complex, ptr %1138, i32 0, i32 0
  %1140 = load float, ptr %1139, align 4, !tbaa !16
  store float %1140, ptr %46, align 4, !tbaa !11
  %1141 = load float, ptr %46, align 4, !tbaa !11
  %1142 = fcmp oge float %1141, 0.000000e+00
  br i1 %1142, label %1143, label %1145

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

1145:                                             ; preds = %1129
  %1146 = load float, ptr %46, align 4, !tbaa !11
  %1147 = fneg float %1146
  br label %1148

1148:                                             ; preds = %1145, %1143
  %1149 = phi float [ %1144, %1143 ], [ %1147, %1145 ]
  %1150 = load ptr, ptr %28, align 8, !tbaa !5
  %1151 = load i32, ptr %56, align 4, !tbaa !9
  %1152 = load i32, ptr %55, align 4, !tbaa !9
  %1153 = load i32, ptr %39, align 4, !tbaa !9
  %1154 = mul nsw i32 %1152, %1153
  %1155 = add nsw i32 %1151, %1154
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds %struct.complex, ptr %1150, i64 %1156
  %1158 = call <2 x float> @Cf(ptr noundef %1157)
  store <2 x float> %1158, ptr %81, align 4
  %1159 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 0
  %1160 = load float, ptr %1159, align 4
  %1161 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 1
  %1162 = load float, ptr %1161, align 4
  store float %1162, ptr %47, align 4, !tbaa !11
  %1163 = load float, ptr %47, align 4, !tbaa !11
  %1164 = fcmp oge float %1163, 0.000000e+00
  br i1 %1164, label %1165, label %1167

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

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

1170:                                             ; preds = %1167, %1165
  %1171 = phi float [ %1166, %1165 ], [ %1169, %1167 ]
  %1172 = fadd float %1149, %1171
  store float %1172, ptr %57, align 4, !tbaa !11
  store i32 1, ptr %43, align 4, !tbaa !9
  %1173 = load i32, ptr %56, align 4, !tbaa !9
  %1174 = load ptr, ptr %22, align 8, !tbaa !5
  %1175 = load i32, ptr %1174, align 4, !tbaa !9
  %1176 = sub nsw i32 %1173, %1175
  store i32 %1176, ptr %44, align 4, !tbaa !9
  %1177 = load i32, ptr %56, align 4, !tbaa !9
  %1178 = sub nsw i32 %1177, 1
  store i32 %1178, ptr %45, align 4, !tbaa !9
  %1179 = load i32, ptr %43, align 4, !tbaa !9
  %1180 = load i32, ptr %44, align 4, !tbaa !9
  %1181 = icmp sge i32 %1179, %1180
  br i1 %1181, label %1182, label %1184

1182:                                             ; preds = %1170
  %1183 = load i32, ptr %43, align 4, !tbaa !9
  br label %1186

1184:                                             ; preds = %1170
  %1185 = load i32, ptr %44, align 4, !tbaa !9
  br label %1186

1186:                                             ; preds = %1184, %1182
  %1187 = phi i32 [ %1183, %1182 ], [ %1185, %1184 ]
  store i32 %1187, ptr %54, align 4, !tbaa !9
  br label %1188

1188:                                             ; preds = %1293, %1186
  %1189 = load i32, ptr %54, align 4, !tbaa !9
  %1190 = load i32, ptr %45, align 4, !tbaa !9
  %1191 = icmp sle i32 %1189, %1190
  br i1 %1191, label %1192, label %1296

1192:                                             ; preds = %1188
  %1193 = load ptr, ptr %22, align 8, !tbaa !5
  %1194 = load i32, ptr %1193, align 4, !tbaa !9
  %1195 = add nsw i32 %1194, 1
  %1196 = load i32, ptr %54, align 4, !tbaa !9
  %1197 = add nsw i32 %1195, %1196
  %1198 = load i32, ptr %56, align 4, !tbaa !9
  %1199 = sub nsw i32 %1197, %1198
  %1200 = load i32, ptr %56, align 4, !tbaa !9
  %1201 = load i32, ptr %35, align 4, !tbaa !9
  %1202 = mul nsw i32 %1200, %1201
  %1203 = add nsw i32 %1199, %1202
  store i32 %1203, ptr %43, align 4, !tbaa !9
  %1204 = load i32, ptr %54, align 4, !tbaa !9
  %1205 = load i32, ptr %55, align 4, !tbaa !9
  %1206 = load i32, ptr %39, align 4, !tbaa !9
  %1207 = mul nsw i32 %1205, %1206
  %1208 = add nsw i32 %1204, %1207
  store i32 %1208, ptr %44, align 4, !tbaa !9
  %1209 = load ptr, ptr %24, align 8, !tbaa !5
  %1210 = load i32, ptr %43, align 4, !tbaa !9
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds %struct.complex, ptr %1209, i64 %1211
  %1213 = getelementptr inbounds %struct.complex, ptr %1212, i32 0, i32 0
  %1214 = load float, ptr %1213, align 4, !tbaa !16
  store float %1214, ptr %46, align 4, !tbaa !11
  %1215 = load float, ptr %46, align 4, !tbaa !11
  %1216 = fcmp oge float %1215, 0.000000e+00
  br i1 %1216, label %1217, label %1219

1217:                                             ; preds = %1192
  %1218 = load float, ptr %46, align 4, !tbaa !11
  br label %1222

1219:                                             ; preds = %1192
  %1220 = load float, ptr %46, align 4, !tbaa !11
  %1221 = fneg float %1220
  br label %1222

1222:                                             ; preds = %1219, %1217
  %1223 = phi float [ %1218, %1217 ], [ %1221, %1219 ]
  %1224 = load ptr, ptr %24, align 8, !tbaa !5
  %1225 = load ptr, ptr %22, align 8, !tbaa !5
  %1226 = load i32, ptr %1225, align 4, !tbaa !9
  %1227 = add nsw i32 %1226, 1
  %1228 = load i32, ptr %54, align 4, !tbaa !9
  %1229 = add nsw i32 %1227, %1228
  %1230 = load i32, ptr %56, align 4, !tbaa !9
  %1231 = sub nsw i32 %1229, %1230
  %1232 = load i32, ptr %56, align 4, !tbaa !9
  %1233 = load i32, ptr %35, align 4, !tbaa !9
  %1234 = mul nsw i32 %1232, %1233
  %1235 = add nsw i32 %1231, %1234
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds %struct.complex, ptr %1224, i64 %1236
  %1238 = call <2 x float> @Cf(ptr noundef %1237)
  store <2 x float> %1238, ptr %82, align 4
  %1239 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 0
  %1240 = load float, ptr %1239, align 4
  %1241 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 1
  %1242 = load float, ptr %1241, align 4
  store float %1242, ptr %47, align 4, !tbaa !11
  %1243 = load float, ptr %47, align 4, !tbaa !11
  %1244 = fcmp oge float %1243, 0.000000e+00
  br i1 %1244, label %1245, label %1247

1245:                                             ; preds = %1222
  %1246 = load float, ptr %47, align 4, !tbaa !11
  br label %1250

1247:                                             ; preds = %1222
  %1248 = load float, ptr %47, align 4, !tbaa !11
  %1249 = fneg float %1248
  br label %1250

1250:                                             ; preds = %1247, %1245
  %1251 = phi float [ %1246, %1245 ], [ %1249, %1247 ]
  %1252 = fadd float %1223, %1251
  %1253 = load ptr, ptr %28, align 8, !tbaa !5
  %1254 = load i32, ptr %44, align 4, !tbaa !9
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds %struct.complex, ptr %1253, i64 %1255
  %1257 = getelementptr inbounds %struct.complex, ptr %1256, i32 0, i32 0
  %1258 = load float, ptr %1257, align 4, !tbaa !16
  store float %1258, ptr %48, align 4, !tbaa !11
  %1259 = load float, ptr %48, align 4, !tbaa !11
  %1260 = fcmp oge float %1259, 0.000000e+00
  br i1 %1260, label %1261, label %1263

1261:                                             ; preds = %1250
  %1262 = load float, ptr %48, align 4, !tbaa !11
  br label %1266

1263:                                             ; preds = %1250
  %1264 = load float, ptr %48, align 4, !tbaa !11
  %1265 = fneg float %1264
  br label %1266

1266:                                             ; preds = %1263, %1261
  %1267 = phi float [ %1262, %1261 ], [ %1265, %1263 ]
  %1268 = load ptr, ptr %28, align 8, !tbaa !5
  %1269 = load i32, ptr %54, align 4, !tbaa !9
  %1270 = load i32, ptr %55, align 4, !tbaa !9
  %1271 = load i32, ptr %39, align 4, !tbaa !9
  %1272 = mul nsw i32 %1270, %1271
  %1273 = add nsw i32 %1269, %1272
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds %struct.complex, ptr %1268, i64 %1274
  %1276 = call <2 x float> @Cf(ptr noundef %1275)
  store <2 x float> %1276, ptr %83, align 4
  %1277 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 0
  %1278 = load float, ptr %1277, align 4
  %1279 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 1
  %1280 = load float, ptr %1279, align 4
  store float %1280, ptr %49, align 4, !tbaa !11
  %1281 = load float, ptr %49, align 4, !tbaa !11
  %1282 = fcmp oge float %1281, 0.000000e+00
  br i1 %1282, label %1283, label %1285

1283:                                             ; preds = %1266
  %1284 = load float, ptr %49, align 4, !tbaa !11
  br label %1288

1285:                                             ; preds = %1266
  %1286 = load float, ptr %49, align 4, !tbaa !11
  %1287 = fneg float %1286
  br label %1288

1288:                                             ; preds = %1285, %1283
  %1289 = phi float [ %1284, %1283 ], [ %1287, %1285 ]
  %1290 = fadd float %1267, %1289
  %1291 = load float, ptr %57, align 4, !tbaa !11
  %1292 = call float @llvm.fmuladd.f32(float %1252, float %1290, float %1291)
  store float %1292, ptr %57, align 4, !tbaa !11
  br label %1293

1293:                                             ; preds = %1288
  %1294 = load i32, ptr %54, align 4, !tbaa !9
  %1295 = add nsw i32 %1294, 1
  store i32 %1295, ptr %54, align 4, !tbaa !9
  br label %1188, !llvm.loop !30

1296:                                             ; preds = %1188
  %1297 = load float, ptr %57, align 4, !tbaa !11
  %1298 = load ptr, ptr %33, align 8, !tbaa !5
  %1299 = load i32, ptr %56, align 4, !tbaa !9
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds float, ptr %1298, i64 %1300
  %1302 = load float, ptr %1301, align 4, !tbaa !11
  %1303 = fadd float %1302, %1297
  store float %1303, ptr %1301, align 4, !tbaa !11
  br label %1304

1304:                                             ; preds = %1296
  %1305 = load i32, ptr %56, align 4, !tbaa !9
  %1306 = add nsw i32 %1305, 1
  store i32 %1306, ptr %56, align 4, !tbaa !9
  br label %1125, !llvm.loop !31

1307:                                             ; preds = %1125
  br label %1308

1308:                                             ; preds = %1307, %1121
  br label %1633

1309:                                             ; preds = %974
  %1310 = load i32, ptr %66, align 4, !tbaa !9
  %1311 = icmp ne i32 %1310, 0
  br i1 %1311, label %1312, label %1450

1312:                                             ; preds = %1309
  %1313 = load ptr, ptr %21, align 8, !tbaa !5
  %1314 = load i32, ptr %1313, align 4, !tbaa !9
  store i32 %1314, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %1315

1315:                                             ; preds = %1446, %1312
  %1316 = load i32, ptr %56, align 4, !tbaa !9
  %1317 = load i32, ptr %42, align 4, !tbaa !9
  %1318 = icmp sle i32 %1316, %1317
  br i1 %1318, label %1319, label %1449

1319:                                             ; preds = %1315
  store float 0.000000e+00, ptr %57, align 4, !tbaa !11
  %1320 = load ptr, ptr %21, align 8, !tbaa !5
  %1321 = load i32, ptr %1320, align 4, !tbaa !9
  store i32 %1321, ptr %43, align 4, !tbaa !9
  %1322 = load i32, ptr %56, align 4, !tbaa !9
  %1323 = load ptr, ptr %22, align 8, !tbaa !5
  %1324 = load i32, ptr %1323, align 4, !tbaa !9
  %1325 = add nsw i32 %1322, %1324
  store i32 %1325, ptr %44, align 4, !tbaa !9
  %1326 = load i32, ptr %43, align 4, !tbaa !9
  %1327 = load i32, ptr %44, align 4, !tbaa !9
  %1328 = icmp sle i32 %1326, %1327
  br i1 %1328, label %1329, label %1331

1329:                                             ; preds = %1319
  %1330 = load i32, ptr %43, align 4, !tbaa !9
  br label %1333

1331:                                             ; preds = %1319
  %1332 = load i32, ptr %44, align 4, !tbaa !9
  br label %1333

1333:                                             ; preds = %1331, %1329
  %1334 = phi i32 [ %1330, %1329 ], [ %1332, %1331 ]
  store i32 %1334, ptr %45, align 4, !tbaa !9
  %1335 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %1335, ptr %54, align 4, !tbaa !9
  br label %1336

1336:                                             ; preds = %1435, %1333
  %1337 = load i32, ptr %54, align 4, !tbaa !9
  %1338 = load i32, ptr %45, align 4, !tbaa !9
  %1339 = icmp sle i32 %1337, %1338
  br i1 %1339, label %1340, label %1438

1340:                                             ; preds = %1336
  %1341 = load i32, ptr %54, align 4, !tbaa !9
  %1342 = add nsw i32 %1341, 1
  %1343 = load i32, ptr %56, align 4, !tbaa !9
  %1344 = sub nsw i32 %1342, %1343
  %1345 = load i32, ptr %56, align 4, !tbaa !9
  %1346 = load i32, ptr %35, align 4, !tbaa !9
  %1347 = mul nsw i32 %1345, %1346
  %1348 = add nsw i32 %1344, %1347
  store i32 %1348, ptr %43, align 4, !tbaa !9
  %1349 = load i32, ptr %54, align 4, !tbaa !9
  %1350 = load i32, ptr %55, align 4, !tbaa !9
  %1351 = load i32, ptr %39, align 4, !tbaa !9
  %1352 = mul nsw i32 %1350, %1351
  %1353 = add nsw i32 %1349, %1352
  store i32 %1353, ptr %44, align 4, !tbaa !9
  %1354 = load ptr, ptr %24, align 8, !tbaa !5
  %1355 = load i32, ptr %43, align 4, !tbaa !9
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds %struct.complex, ptr %1354, i64 %1356
  %1358 = getelementptr inbounds %struct.complex, ptr %1357, i32 0, i32 0
  %1359 = load float, ptr %1358, align 4, !tbaa !16
  store float %1359, ptr %46, align 4, !tbaa !11
  %1360 = load float, ptr %46, align 4, !tbaa !11
  %1361 = fcmp oge float %1360, 0.000000e+00
  br i1 %1361, label %1362, label %1364

1362:                                             ; preds = %1340
  %1363 = load float, ptr %46, align 4, !tbaa !11
  br label %1367

1364:                                             ; preds = %1340
  %1365 = load float, ptr %46, align 4, !tbaa !11
  %1366 = fneg float %1365
  br label %1367

1367:                                             ; preds = %1364, %1362
  %1368 = phi float [ %1363, %1362 ], [ %1366, %1364 ]
  %1369 = load ptr, ptr %24, align 8, !tbaa !5
  %1370 = load i32, ptr %54, align 4, !tbaa !9
  %1371 = add nsw i32 %1370, 1
  %1372 = load i32, ptr %56, align 4, !tbaa !9
  %1373 = sub nsw i32 %1371, %1372
  %1374 = load i32, ptr %56, align 4, !tbaa !9
  %1375 = load i32, ptr %35, align 4, !tbaa !9
  %1376 = mul nsw i32 %1374, %1375
  %1377 = add nsw i32 %1373, %1376
  %1378 = sext i32 %1377 to i64
  %1379 = getelementptr inbounds %struct.complex, ptr %1369, i64 %1378
  %1380 = call <2 x float> @Cf(ptr noundef %1379)
  store <2 x float> %1380, ptr %84, align 4
  %1381 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 0
  %1382 = load float, ptr %1381, align 4
  %1383 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 1
  %1384 = load float, ptr %1383, align 4
  store float %1384, ptr %47, align 4, !tbaa !11
  %1385 = load float, ptr %47, align 4, !tbaa !11
  %1386 = fcmp oge float %1385, 0.000000e+00
  br i1 %1386, label %1387, label %1389

1387:                                             ; preds = %1367
  %1388 = load float, ptr %47, align 4, !tbaa !11
  br label %1392

1389:                                             ; preds = %1367
  %1390 = load float, ptr %47, align 4, !tbaa !11
  %1391 = fneg float %1390
  br label %1392

1392:                                             ; preds = %1389, %1387
  %1393 = phi float [ %1388, %1387 ], [ %1391, %1389 ]
  %1394 = fadd float %1368, %1393
  %1395 = load ptr, ptr %28, align 8, !tbaa !5
  %1396 = load i32, ptr %44, align 4, !tbaa !9
  %1397 = sext i32 %1396 to i64
  %1398 = getelementptr inbounds %struct.complex, ptr %1395, i64 %1397
  %1399 = getelementptr inbounds %struct.complex, ptr %1398, i32 0, i32 0
  %1400 = load float, ptr %1399, align 4, !tbaa !16
  store float %1400, ptr %48, align 4, !tbaa !11
  %1401 = load float, ptr %48, align 4, !tbaa !11
  %1402 = fcmp oge float %1401, 0.000000e+00
  br i1 %1402, label %1403, label %1405

1403:                                             ; preds = %1392
  %1404 = load float, ptr %48, align 4, !tbaa !11
  br label %1408

1405:                                             ; preds = %1392
  %1406 = load float, ptr %48, align 4, !tbaa !11
  %1407 = fneg float %1406
  br label %1408

1408:                                             ; preds = %1405, %1403
  %1409 = phi float [ %1404, %1403 ], [ %1407, %1405 ]
  %1410 = load ptr, ptr %28, align 8, !tbaa !5
  %1411 = load i32, ptr %54, align 4, !tbaa !9
  %1412 = load i32, ptr %55, align 4, !tbaa !9
  %1413 = load i32, ptr %39, align 4, !tbaa !9
  %1414 = mul nsw i32 %1412, %1413
  %1415 = add nsw i32 %1411, %1414
  %1416 = sext i32 %1415 to i64
  %1417 = getelementptr inbounds %struct.complex, ptr %1410, i64 %1416
  %1418 = call <2 x float> @Cf(ptr noundef %1417)
  store <2 x float> %1418, ptr %85, align 4
  %1419 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 0
  %1420 = load float, ptr %1419, align 4
  %1421 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 1
  %1422 = load float, ptr %1421, align 4
  store float %1422, ptr %49, align 4, !tbaa !11
  %1423 = load float, ptr %49, align 4, !tbaa !11
  %1424 = fcmp oge float %1423, 0.000000e+00
  br i1 %1424, label %1425, label %1427

1425:                                             ; preds = %1408
  %1426 = load float, ptr %49, align 4, !tbaa !11
  br label %1430

1427:                                             ; preds = %1408
  %1428 = load float, ptr %49, align 4, !tbaa !11
  %1429 = fneg float %1428
  br label %1430

1430:                                             ; preds = %1427, %1425
  %1431 = phi float [ %1426, %1425 ], [ %1429, %1427 ]
  %1432 = fadd float %1409, %1431
  %1433 = load float, ptr %57, align 4, !tbaa !11
  %1434 = call float @llvm.fmuladd.f32(float %1394, float %1432, float %1433)
  store float %1434, ptr %57, align 4, !tbaa !11
  br label %1435

1435:                                             ; preds = %1430
  %1436 = load i32, ptr %54, align 4, !tbaa !9
  %1437 = add nsw i32 %1436, 1
  store i32 %1437, ptr %54, align 4, !tbaa !9
  br label %1336, !llvm.loop !32

1438:                                             ; preds = %1336
  %1439 = load float, ptr %57, align 4, !tbaa !11
  %1440 = load ptr, ptr %33, align 8, !tbaa !5
  %1441 = load i32, ptr %56, align 4, !tbaa !9
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds float, ptr %1440, i64 %1442
  %1444 = load float, ptr %1443, align 4, !tbaa !11
  %1445 = fadd float %1444, %1439
  store float %1445, ptr %1443, align 4, !tbaa !11
  br label %1446

1446:                                             ; preds = %1438
  %1447 = load i32, ptr %56, align 4, !tbaa !9
  %1448 = add nsw i32 %1447, 1
  store i32 %1448, ptr %56, align 4, !tbaa !9
  br label %1315, !llvm.loop !33

1449:                                             ; preds = %1315
  br label %1632

1450:                                             ; preds = %1309
  %1451 = load ptr, ptr %21, align 8, !tbaa !5
  %1452 = load i32, ptr %1451, align 4, !tbaa !9
  store i32 %1452, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %1453

1453:                                             ; preds = %1628, %1450
  %1454 = load i32, ptr %56, align 4, !tbaa !9
  %1455 = load i32, ptr %42, align 4, !tbaa !9
  %1456 = icmp sle i32 %1454, %1455
  br i1 %1456, label %1457, label %1631

1457:                                             ; preds = %1453
  %1458 = load i32, ptr %56, align 4, !tbaa !9
  %1459 = load i32, ptr %55, align 4, !tbaa !9
  %1460 = load i32, ptr %39, align 4, !tbaa !9
  %1461 = mul nsw i32 %1459, %1460
  %1462 = add nsw i32 %1458, %1461
  store i32 %1462, ptr %45, align 4, !tbaa !9
  %1463 = load ptr, ptr %28, align 8, !tbaa !5
  %1464 = load i32, ptr %45, align 4, !tbaa !9
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds %struct.complex, ptr %1463, i64 %1465
  %1467 = getelementptr inbounds %struct.complex, ptr %1466, i32 0, i32 0
  %1468 = load float, ptr %1467, align 4, !tbaa !16
  store float %1468, ptr %46, align 4, !tbaa !11
  %1469 = load float, ptr %46, align 4, !tbaa !11
  %1470 = fcmp oge float %1469, 0.000000e+00
  br i1 %1470, label %1471, label %1473

1471:                                             ; preds = %1457
  %1472 = load float, ptr %46, align 4, !tbaa !11
  br label %1476

1473:                                             ; preds = %1457
  %1474 = load float, ptr %46, align 4, !tbaa !11
  %1475 = fneg float %1474
  br label %1476

1476:                                             ; preds = %1473, %1471
  %1477 = phi float [ %1472, %1471 ], [ %1475, %1473 ]
  %1478 = load ptr, ptr %28, align 8, !tbaa !5
  %1479 = load i32, ptr %56, align 4, !tbaa !9
  %1480 = load i32, ptr %55, align 4, !tbaa !9
  %1481 = load i32, ptr %39, align 4, !tbaa !9
  %1482 = mul nsw i32 %1480, %1481
  %1483 = add nsw i32 %1479, %1482
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds %struct.complex, ptr %1478, i64 %1484
  %1486 = call <2 x float> @Cf(ptr noundef %1485)
  store <2 x float> %1486, ptr %86, align 4
  %1487 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 0
  %1488 = load float, ptr %1487, align 4
  %1489 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 1
  %1490 = load float, ptr %1489, align 4
  store float %1490, ptr %47, align 4, !tbaa !11
  %1491 = load float, ptr %47, align 4, !tbaa !11
  %1492 = fcmp oge float %1491, 0.000000e+00
  br i1 %1492, label %1493, label %1495

1493:                                             ; preds = %1476
  %1494 = load float, ptr %47, align 4, !tbaa !11
  br label %1498

1495:                                             ; preds = %1476
  %1496 = load float, ptr %47, align 4, !tbaa !11
  %1497 = fneg float %1496
  br label %1498

1498:                                             ; preds = %1495, %1493
  %1499 = phi float [ %1494, %1493 ], [ %1497, %1495 ]
  %1500 = fadd float %1477, %1499
  store float %1500, ptr %57, align 4, !tbaa !11
  %1501 = load ptr, ptr %21, align 8, !tbaa !5
  %1502 = load i32, ptr %1501, align 4, !tbaa !9
  store i32 %1502, ptr %43, align 4, !tbaa !9
  %1503 = load i32, ptr %56, align 4, !tbaa !9
  %1504 = load ptr, ptr %22, align 8, !tbaa !5
  %1505 = load i32, ptr %1504, align 4, !tbaa !9
  %1506 = add nsw i32 %1503, %1505
  store i32 %1506, ptr %44, align 4, !tbaa !9
  %1507 = load i32, ptr %43, align 4, !tbaa !9
  %1508 = load i32, ptr %44, align 4, !tbaa !9
  %1509 = icmp sle i32 %1507, %1508
  br i1 %1509, label %1510, label %1512

1510:                                             ; preds = %1498
  %1511 = load i32, ptr %43, align 4, !tbaa !9
  br label %1514

1512:                                             ; preds = %1498
  %1513 = load i32, ptr %44, align 4, !tbaa !9
  br label %1514

1514:                                             ; preds = %1512, %1510
  %1515 = phi i32 [ %1511, %1510 ], [ %1513, %1512 ]
  store i32 %1515, ptr %45, align 4, !tbaa !9
  %1516 = load i32, ptr %56, align 4, !tbaa !9
  %1517 = add nsw i32 %1516, 1
  store i32 %1517, ptr %54, align 4, !tbaa !9
  br label %1518

1518:                                             ; preds = %1617, %1514
  %1519 = load i32, ptr %54, align 4, !tbaa !9
  %1520 = load i32, ptr %45, align 4, !tbaa !9
  %1521 = icmp sle i32 %1519, %1520
  br i1 %1521, label %1522, label %1620

1522:                                             ; preds = %1518
  %1523 = load i32, ptr %54, align 4, !tbaa !9
  %1524 = add nsw i32 %1523, 1
  %1525 = load i32, ptr %56, align 4, !tbaa !9
  %1526 = sub nsw i32 %1524, %1525
  %1527 = load i32, ptr %56, align 4, !tbaa !9
  %1528 = load i32, ptr %35, align 4, !tbaa !9
  %1529 = mul nsw i32 %1527, %1528
  %1530 = add nsw i32 %1526, %1529
  store i32 %1530, ptr %43, align 4, !tbaa !9
  %1531 = load i32, ptr %54, align 4, !tbaa !9
  %1532 = load i32, ptr %55, align 4, !tbaa !9
  %1533 = load i32, ptr %39, align 4, !tbaa !9
  %1534 = mul nsw i32 %1532, %1533
  %1535 = add nsw i32 %1531, %1534
  store i32 %1535, ptr %44, align 4, !tbaa !9
  %1536 = load ptr, ptr %24, align 8, !tbaa !5
  %1537 = load i32, ptr %43, align 4, !tbaa !9
  %1538 = sext i32 %1537 to i64
  %1539 = getelementptr inbounds %struct.complex, ptr %1536, i64 %1538
  %1540 = getelementptr inbounds %struct.complex, ptr %1539, i32 0, i32 0
  %1541 = load float, ptr %1540, align 4, !tbaa !16
  store float %1541, ptr %46, align 4, !tbaa !11
  %1542 = load float, ptr %46, align 4, !tbaa !11
  %1543 = fcmp oge float %1542, 0.000000e+00
  br i1 %1543, label %1544, label %1546

1544:                                             ; preds = %1522
  %1545 = load float, ptr %46, align 4, !tbaa !11
  br label %1549

1546:                                             ; preds = %1522
  %1547 = load float, ptr %46, align 4, !tbaa !11
  %1548 = fneg float %1547
  br label %1549

1549:                                             ; preds = %1546, %1544
  %1550 = phi float [ %1545, %1544 ], [ %1548, %1546 ]
  %1551 = load ptr, ptr %24, align 8, !tbaa !5
  %1552 = load i32, ptr %54, align 4, !tbaa !9
  %1553 = add nsw i32 %1552, 1
  %1554 = load i32, ptr %56, align 4, !tbaa !9
  %1555 = sub nsw i32 %1553, %1554
  %1556 = load i32, ptr %56, align 4, !tbaa !9
  %1557 = load i32, ptr %35, align 4, !tbaa !9
  %1558 = mul nsw i32 %1556, %1557
  %1559 = add nsw i32 %1555, %1558
  %1560 = sext i32 %1559 to i64
  %1561 = getelementptr inbounds %struct.complex, ptr %1551, i64 %1560
  %1562 = call <2 x float> @Cf(ptr noundef %1561)
  store <2 x float> %1562, ptr %87, align 4
  %1563 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 0
  %1564 = load float, ptr %1563, align 4
  %1565 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 1
  %1566 = load float, ptr %1565, align 4
  store float %1566, ptr %47, align 4, !tbaa !11
  %1567 = load float, ptr %47, align 4, !tbaa !11
  %1568 = fcmp oge float %1567, 0.000000e+00
  br i1 %1568, label %1569, label %1571

1569:                                             ; preds = %1549
  %1570 = load float, ptr %47, align 4, !tbaa !11
  br label %1574

1571:                                             ; preds = %1549
  %1572 = load float, ptr %47, align 4, !tbaa !11
  %1573 = fneg float %1572
  br label %1574

1574:                                             ; preds = %1571, %1569
  %1575 = phi float [ %1570, %1569 ], [ %1573, %1571 ]
  %1576 = fadd float %1550, %1575
  %1577 = load ptr, ptr %28, align 8, !tbaa !5
  %1578 = load i32, ptr %44, align 4, !tbaa !9
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds %struct.complex, ptr %1577, i64 %1579
  %1581 = getelementptr inbounds %struct.complex, ptr %1580, i32 0, i32 0
  %1582 = load float, ptr %1581, align 4, !tbaa !16
  store float %1582, ptr %48, align 4, !tbaa !11
  %1583 = load float, ptr %48, align 4, !tbaa !11
  %1584 = fcmp oge float %1583, 0.000000e+00
  br i1 %1584, label %1585, label %1587

1585:                                             ; preds = %1574
  %1586 = load float, ptr %48, align 4, !tbaa !11
  br label %1590

1587:                                             ; preds = %1574
  %1588 = load float, ptr %48, align 4, !tbaa !11
  %1589 = fneg float %1588
  br label %1590

1590:                                             ; preds = %1587, %1585
  %1591 = phi float [ %1586, %1585 ], [ %1589, %1587 ]
  %1592 = load ptr, ptr %28, align 8, !tbaa !5
  %1593 = load i32, ptr %54, align 4, !tbaa !9
  %1594 = load i32, ptr %55, align 4, !tbaa !9
  %1595 = load i32, ptr %39, align 4, !tbaa !9
  %1596 = mul nsw i32 %1594, %1595
  %1597 = add nsw i32 %1593, %1596
  %1598 = sext i32 %1597 to i64
  %1599 = getelementptr inbounds %struct.complex, ptr %1592, i64 %1598
  %1600 = call <2 x float> @Cf(ptr noundef %1599)
  store <2 x float> %1600, ptr %88, align 4
  %1601 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 0
  %1602 = load float, ptr %1601, align 4
  %1603 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 1
  %1604 = load float, ptr %1603, align 4
  store float %1604, ptr %49, align 4, !tbaa !11
  %1605 = load float, ptr %49, align 4, !tbaa !11
  %1606 = fcmp oge float %1605, 0.000000e+00
  br i1 %1606, label %1607, label %1609

1607:                                             ; preds = %1590
  %1608 = load float, ptr %49, align 4, !tbaa !11
  br label %1612

1609:                                             ; preds = %1590
  %1610 = load float, ptr %49, align 4, !tbaa !11
  %1611 = fneg float %1610
  br label %1612

1612:                                             ; preds = %1609, %1607
  %1613 = phi float [ %1608, %1607 ], [ %1611, %1609 ]
  %1614 = fadd float %1591, %1613
  %1615 = load float, ptr %57, align 4, !tbaa !11
  %1616 = call float @llvm.fmuladd.f32(float %1576, float %1614, float %1615)
  store float %1616, ptr %57, align 4, !tbaa !11
  br label %1617

1617:                                             ; preds = %1612
  %1618 = load i32, ptr %54, align 4, !tbaa !9
  %1619 = add nsw i32 %1618, 1
  store i32 %1619, ptr %54, align 4, !tbaa !9
  br label %1518, !llvm.loop !34

1620:                                             ; preds = %1518
  %1621 = load float, ptr %57, align 4, !tbaa !11
  %1622 = load ptr, ptr %33, align 8, !tbaa !5
  %1623 = load i32, ptr %56, align 4, !tbaa !9
  %1624 = sext i32 %1623 to i64
  %1625 = getelementptr inbounds float, ptr %1622, i64 %1624
  %1626 = load float, ptr %1625, align 4, !tbaa !11
  %1627 = fadd float %1626, %1621
  store float %1627, ptr %1625, align 4, !tbaa !11
  br label %1628

1628:                                             ; preds = %1620
  %1629 = load i32, ptr %56, align 4, !tbaa !9
  %1630 = add nsw i32 %1629, 1
  store i32 %1630, ptr %56, align 4, !tbaa !9
  br label %1453, !llvm.loop !35

1631:                                             ; preds = %1453
  br label %1632

1632:                                             ; preds = %1631, %1449
  br label %1633

1633:                                             ; preds = %1632, %1308
  br label %1634

1634:                                             ; preds = %1633, %973
  store float 0.000000e+00, ptr %57, align 4, !tbaa !11
  %1635 = load ptr, ptr %21, align 8, !tbaa !5
  %1636 = load i32, ptr %1635, align 4, !tbaa !9
  store i32 %1636, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1637

1637:                                             ; preds = %1758, %1634
  %1638 = load i32, ptr %54, align 4, !tbaa !9
  %1639 = load i32, ptr %42, align 4, !tbaa !9
  %1640 = icmp sle i32 %1638, %1639
  br i1 %1640, label %1641, label %1761

1641:                                             ; preds = %1637
  %1642 = load ptr, ptr %33, align 8, !tbaa !5
  %1643 = load i32, ptr %54, align 4, !tbaa !9
  %1644 = sext i32 %1643 to i64
  %1645 = getelementptr inbounds float, ptr %1642, i64 %1644
  %1646 = load float, ptr %1645, align 4, !tbaa !11
  %1647 = load float, ptr %53, align 4, !tbaa !11
  %1648 = fcmp ogt float %1646, %1647
  br i1 %1648, label %1649, label %1701

1649:                                             ; preds = %1641
  %1650 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1650, ptr %45, align 4, !tbaa !9
  %1651 = load float, ptr %57, align 4, !tbaa !11
  store float %1651, ptr %48, align 4, !tbaa !11
  %1652 = load ptr, ptr %32, align 8, !tbaa !5
  %1653 = load i32, ptr %45, align 4, !tbaa !9
  %1654 = sext i32 %1653 to i64
  %1655 = getelementptr inbounds %struct.complex, ptr %1652, i64 %1654
  %1656 = getelementptr inbounds %struct.complex, ptr %1655, i32 0, i32 0
  %1657 = load float, ptr %1656, align 4, !tbaa !16
  store float %1657, ptr %46, align 4, !tbaa !11
  %1658 = load float, ptr %46, align 4, !tbaa !11
  %1659 = fcmp oge float %1658, 0.000000e+00
  br i1 %1659, label %1660, label %1662

1660:                                             ; preds = %1649
  %1661 = load float, ptr %46, align 4, !tbaa !11
  br label %1665

1662:                                             ; preds = %1649
  %1663 = load float, ptr %46, align 4, !tbaa !11
  %1664 = fneg float %1663
  br label %1665

1665:                                             ; preds = %1662, %1660
  %1666 = phi float [ %1661, %1660 ], [ %1664, %1662 ]
  %1667 = load ptr, ptr %32, align 8, !tbaa !5
  %1668 = load i32, ptr %54, align 4, !tbaa !9
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds %struct.complex, ptr %1667, i64 %1669
  %1671 = call <2 x float> @Cf(ptr noundef %1670)
  store <2 x float> %1671, ptr %89, align 4
  %1672 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 0
  %1673 = load float, ptr %1672, align 4
  %1674 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 1
  %1675 = load float, ptr %1674, align 4
  store float %1675, ptr %47, align 4, !tbaa !11
  %1676 = load float, ptr %47, align 4, !tbaa !11
  %1677 = fcmp oge float %1676, 0.000000e+00
  br i1 %1677, label %1678, label %1680

1678:                                             ; preds = %1665
  %1679 = load float, ptr %47, align 4, !tbaa !11
  br label %1683

1680:                                             ; preds = %1665
  %1681 = load float, ptr %47, align 4, !tbaa !11
  %1682 = fneg float %1681
  br label %1683

1683:                                             ; preds = %1680, %1678
  %1684 = phi float [ %1679, %1678 ], [ %1682, %1680 ]
  %1685 = fadd float %1666, %1684
  %1686 = load ptr, ptr %33, align 8, !tbaa !5
  %1687 = load i32, ptr %54, align 4, !tbaa !9
  %1688 = sext i32 %1687 to i64
  %1689 = getelementptr inbounds float, ptr %1686, i64 %1688
  %1690 = load float, ptr %1689, align 4, !tbaa !11
  %1691 = fdiv float %1685, %1690
  store float %1691, ptr %49, align 4, !tbaa !11
  %1692 = load float, ptr %48, align 4, !tbaa !11
  %1693 = load float, ptr %49, align 4, !tbaa !11
  %1694 = fcmp oge float %1692, %1693
  br i1 %1694, label %1695, label %1697

1695:                                             ; preds = %1683
  %1696 = load float, ptr %48, align 4, !tbaa !11
  br label %1699

1697:                                             ; preds = %1683
  %1698 = load float, ptr %49, align 4, !tbaa !11
  br label %1699

1699:                                             ; preds = %1697, %1695
  %1700 = phi float [ %1696, %1695 ], [ %1698, %1697 ]
  store float %1700, ptr %57, align 4, !tbaa !11
  br label %1757

1701:                                             ; preds = %1641
  %1702 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1702, ptr %45, align 4, !tbaa !9
  %1703 = load float, ptr %57, align 4, !tbaa !11
  store float %1703, ptr %48, align 4, !tbaa !11
  %1704 = load ptr, ptr %32, align 8, !tbaa !5
  %1705 = load i32, ptr %45, align 4, !tbaa !9
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds %struct.complex, ptr %1704, i64 %1706
  %1708 = getelementptr inbounds %struct.complex, ptr %1707, i32 0, i32 0
  %1709 = load float, ptr %1708, align 4, !tbaa !16
  store float %1709, ptr %46, align 4, !tbaa !11
  %1710 = load float, ptr %46, align 4, !tbaa !11
  %1711 = fcmp oge float %1710, 0.000000e+00
  br i1 %1711, label %1712, label %1714

1712:                                             ; preds = %1701
  %1713 = load float, ptr %46, align 4, !tbaa !11
  br label %1717

1714:                                             ; preds = %1701
  %1715 = load float, ptr %46, align 4, !tbaa !11
  %1716 = fneg float %1715
  br label %1717

1717:                                             ; preds = %1714, %1712
  %1718 = phi float [ %1713, %1712 ], [ %1716, %1714 ]
  %1719 = load ptr, ptr %32, align 8, !tbaa !5
  %1720 = load i32, ptr %54, align 4, !tbaa !9
  %1721 = sext i32 %1720 to i64
  %1722 = getelementptr inbounds %struct.complex, ptr %1719, i64 %1721
  %1723 = call <2 x float> @Cf(ptr noundef %1722)
  store <2 x float> %1723, ptr %90, align 4
  %1724 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 0
  %1725 = load float, ptr %1724, align 4
  %1726 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 1
  %1727 = load float, ptr %1726, align 4
  store float %1727, ptr %47, align 4, !tbaa !11
  %1728 = load float, ptr %47, align 4, !tbaa !11
  %1729 = fcmp oge float %1728, 0.000000e+00
  br i1 %1729, label %1730, label %1732

1730:                                             ; preds = %1717
  %1731 = load float, ptr %47, align 4, !tbaa !11
  br label %1735

1732:                                             ; preds = %1717
  %1733 = load float, ptr %47, align 4, !tbaa !11
  %1734 = fneg float %1733
  br label %1735

1735:                                             ; preds = %1732, %1730
  %1736 = phi float [ %1731, %1730 ], [ %1734, %1732 ]
  %1737 = fadd float %1718, %1736
  %1738 = load float, ptr %52, align 4, !tbaa !11
  %1739 = fadd float %1737, %1738
  %1740 = load ptr, ptr %33, align 8, !tbaa !5
  %1741 = load i32, ptr %54, align 4, !tbaa !9
  %1742 = sext i32 %1741 to i64
  %1743 = getelementptr inbounds float, ptr %1740, i64 %1742
  %1744 = load float, ptr %1743, align 4, !tbaa !11
  %1745 = load float, ptr %52, align 4, !tbaa !11
  %1746 = fadd float %1744, %1745
  %1747 = fdiv float %1739, %1746
  store float %1747, ptr %49, align 4, !tbaa !11
  %1748 = load float, ptr %48, align 4, !tbaa !11
  %1749 = load float, ptr %49, align 4, !tbaa !11
  %1750 = fcmp oge float %1748, %1749
  br i1 %1750, label %1751, label %1753

1751:                                             ; preds = %1735
  %1752 = load float, ptr %48, align 4, !tbaa !11
  br label %1755

1753:                                             ; preds = %1735
  %1754 = load float, ptr %49, align 4, !tbaa !11
  br label %1755

1755:                                             ; preds = %1753, %1751
  %1756 = phi float [ %1752, %1751 ], [ %1754, %1753 ]
  store float %1756, ptr %57, align 4, !tbaa !11
  br label %1757

1757:                                             ; preds = %1755, %1699
  br label %1758

1758:                                             ; preds = %1757
  %1759 = load i32, ptr %54, align 4, !tbaa !9
  %1760 = add nsw i32 %1759, 1
  store i32 %1760, ptr %54, align 4, !tbaa !9
  br label %1637, !llvm.loop !36

1761:                                             ; preds = %1637
  %1762 = load float, ptr %57, align 4, !tbaa !11
  %1763 = load ptr, ptr %31, align 8, !tbaa !5
  %1764 = load i32, ptr %55, 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
  %1767 = load ptr, ptr %21, align 8, !tbaa !5
  %1768 = load i32, ptr %1767, align 4, !tbaa !9
  store i32 %1768, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1769

1769:                                             ; preds = %1884, %1761
  %1770 = load i32, ptr %54, align 4, !tbaa !9
  %1771 = load i32, ptr %42, align 4, !tbaa !9
  %1772 = icmp sle i32 %1770, %1771
  br i1 %1772, label %1773, label %1887

1773:                                             ; preds = %1769
  %1774 = load ptr, ptr %33, align 8, !tbaa !5
  %1775 = load i32, ptr %54, align 4, !tbaa !9
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds float, ptr %1774, i64 %1776
  %1778 = load float, ptr %1777, align 4, !tbaa !11
  %1779 = load float, ptr %53, align 4, !tbaa !11
  %1780 = fcmp ogt float %1778, %1779
  br i1 %1780, label %1781, label %1831

1781:                                             ; preds = %1773
  %1782 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1782, ptr %45, align 4, !tbaa !9
  %1783 = load ptr, ptr %32, align 8, !tbaa !5
  %1784 = load i32, ptr %45, align 4, !tbaa !9
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds %struct.complex, ptr %1783, i64 %1785
  %1787 = getelementptr inbounds %struct.complex, ptr %1786, i32 0, i32 0
  %1788 = load float, ptr %1787, align 4, !tbaa !16
  store float %1788, ptr %46, align 4, !tbaa !11
  %1789 = load float, ptr %46, align 4, !tbaa !11
  %1790 = fcmp oge float %1789, 0.000000e+00
  br i1 %1790, label %1791, label %1793

1791:                                             ; preds = %1781
  %1792 = load float, ptr %46, align 4, !tbaa !11
  br label %1796

1793:                                             ; preds = %1781
  %1794 = load float, ptr %46, align 4, !tbaa !11
  %1795 = fneg float %1794
  br label %1796

1796:                                             ; preds = %1793, %1791
  %1797 = phi float [ %1792, %1791 ], [ %1795, %1793 ]
  %1798 = load ptr, ptr %32, align 8, !tbaa !5
  %1799 = load i32, ptr %54, align 4, !tbaa !9
  %1800 = sext i32 %1799 to i64
  %1801 = getelementptr inbounds %struct.complex, ptr %1798, i64 %1800
  %1802 = call <2 x float> @Cf(ptr noundef %1801)
  store <2 x float> %1802, ptr %91, align 4
  %1803 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 0
  %1804 = load float, ptr %1803, align 4
  %1805 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 1
  %1806 = load float, ptr %1805, align 4
  store float %1806, ptr %47, align 4, !tbaa !11
  %1807 = load float, ptr %47, align 4, !tbaa !11
  %1808 = fcmp oge float %1807, 0.000000e+00
  br i1 %1808, label %1809, label %1811

1809:                                             ; preds = %1796
  %1810 = load float, ptr %47, align 4, !tbaa !11
  br label %1814

1811:                                             ; preds = %1796
  %1812 = load float, ptr %47, align 4, !tbaa !11
  %1813 = fneg float %1812
  br label %1814

1814:                                             ; preds = %1811, %1809
  %1815 = phi float [ %1810, %1809 ], [ %1813, %1811 ]
  %1816 = fadd float %1797, %1815
  %1817 = load i32, ptr %61, align 4, !tbaa !9
  %1818 = sitofp i32 %1817 to float
  %1819 = load float, ptr %68, align 4, !tbaa !11
  %1820 = fmul float %1818, %1819
  %1821 = load ptr, ptr %33, align 8, !tbaa !5
  %1822 = load i32, ptr %54, align 4, !tbaa !9
  %1823 = sext i32 %1822 to i64
  %1824 = getelementptr inbounds float, ptr %1821, i64 %1823
  %1825 = load float, ptr %1824, align 4, !tbaa !11
  %1826 = call float @llvm.fmuladd.f32(float %1820, float %1825, float %1816)
  %1827 = load ptr, ptr %33, align 8, !tbaa !5
  %1828 = load i32, ptr %54, align 4, !tbaa !9
  %1829 = sext i32 %1828 to i64
  %1830 = getelementptr inbounds float, ptr %1827, i64 %1829
  store float %1826, ptr %1830, align 4, !tbaa !11
  br label %1883

1831:                                             ; preds = %1773
  %1832 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1832, ptr %45, align 4, !tbaa !9
  %1833 = load ptr, ptr %32, align 8, !tbaa !5
  %1834 = load i32, ptr %45, align 4, !tbaa !9
  %1835 = sext i32 %1834 to i64
  %1836 = getelementptr inbounds %struct.complex, ptr %1833, i64 %1835
  %1837 = getelementptr inbounds %struct.complex, ptr %1836, i32 0, i32 0
  %1838 = load float, ptr %1837, align 4, !tbaa !16
  store float %1838, ptr %46, align 4, !tbaa !11
  %1839 = load float, ptr %46, align 4, !tbaa !11
  %1840 = fcmp oge float %1839, 0.000000e+00
  br i1 %1840, label %1841, label %1843

1841:                                             ; preds = %1831
  %1842 = load float, ptr %46, align 4, !tbaa !11
  br label %1846

1843:                                             ; preds = %1831
  %1844 = load float, ptr %46, align 4, !tbaa !11
  %1845 = fneg float %1844
  br label %1846

1846:                                             ; preds = %1843, %1841
  %1847 = phi float [ %1842, %1841 ], [ %1845, %1843 ]
  %1848 = load ptr, ptr %32, align 8, !tbaa !5
  %1849 = load i32, ptr %54, align 4, !tbaa !9
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds %struct.complex, ptr %1848, i64 %1850
  %1852 = call <2 x float> @Cf(ptr noundef %1851)
  store <2 x float> %1852, ptr %92, align 4
  %1853 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 0
  %1854 = load float, ptr %1853, align 4
  %1855 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 1
  %1856 = load float, ptr %1855, align 4
  store float %1856, ptr %47, align 4, !tbaa !11
  %1857 = load float, ptr %47, align 4, !tbaa !11
  %1858 = fcmp oge float %1857, 0.000000e+00
  br i1 %1858, label %1859, label %1861

1859:                                             ; preds = %1846
  %1860 = load float, ptr %47, align 4, !tbaa !11
  br label %1864

1861:                                             ; preds = %1846
  %1862 = load float, ptr %47, align 4, !tbaa !11
  %1863 = fneg float %1862
  br label %1864

1864:                                             ; preds = %1861, %1859
  %1865 = phi float [ %1860, %1859 ], [ %1863, %1861 ]
  %1866 = fadd float %1847, %1865
  %1867 = load i32, ptr %61, align 4, !tbaa !9
  %1868 = sitofp i32 %1867 to float
  %1869 = load float, ptr %68, align 4, !tbaa !11
  %1870 = fmul float %1868, %1869
  %1871 = load ptr, ptr %33, align 8, !tbaa !5
  %1872 = load i32, ptr %54, align 4, !tbaa !9
  %1873 = sext i32 %1872 to i64
  %1874 = getelementptr inbounds float, ptr %1871, i64 %1873
  %1875 = load float, ptr %1874, align 4, !tbaa !11
  %1876 = call float @llvm.fmuladd.f32(float %1870, float %1875, float %1866)
  %1877 = load float, ptr %52, align 4, !tbaa !11
  %1878 = fadd float %1876, %1877
  %1879 = load ptr, ptr %33, align 8, !tbaa !5
  %1880 = load i32, ptr %54, align 4, !tbaa !9
  %1881 = sext i32 %1880 to i64
  %1882 = getelementptr inbounds float, ptr %1879, i64 %1881
  store float %1878, ptr %1882, align 4, !tbaa !11
  br label %1883

1883:                                             ; preds = %1864, %1814
  br label %1884

1884:                                             ; preds = %1883
  %1885 = load i32, ptr %54, align 4, !tbaa !9
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr %54, align 4, !tbaa !9
  br label %1769, !llvm.loop !37

1887:                                             ; preds = %1769
  store i32 0, ptr %51, align 4, !tbaa !9
  br label %1888

1888:                                             ; preds = %2042, %1887
  %1889 = load ptr, ptr %21, align 8, !tbaa !5
  %1890 = load ptr, ptr %32, align 8, !tbaa !5
  %1891 = load ptr, ptr %21, align 8, !tbaa !5
  %1892 = load i32, ptr %1891, align 4, !tbaa !9
  %1893 = add nsw i32 %1892, 1
  %1894 = sext i32 %1893 to i64
  %1895 = getelementptr inbounds %struct.complex, ptr %1890, i64 %1894
  %1896 = load ptr, ptr %32, align 8, !tbaa !5
  %1897 = getelementptr inbounds %struct.complex, ptr %1896, i64 1
  %1898 = load ptr, ptr %30, align 8, !tbaa !5
  %1899 = load i32, ptr %55, align 4, !tbaa !9
  %1900 = sext i32 %1899 to i64
  %1901 = getelementptr inbounds float, ptr %1898, i64 %1900
  %1902 = getelementptr inbounds [3 x i32], ptr %58, i64 0, i64 0
  call void @clacn2_(ptr noundef %1889, ptr noundef %1895, ptr noundef %1897, ptr noundef %1901, ptr noundef %51, ptr noundef %1902)
  %1903 = load i32, ptr %51, align 4, !tbaa !9
  %1904 = icmp ne i32 %1903, 0
  br i1 %1904, label %1905, label %2043

1905:                                             ; preds = %1888
  %1906 = load i32, ptr %51, align 4, !tbaa !9
  %1907 = icmp eq i32 %1906, 1
  br i1 %1907, label %1908, label %1975

1908:                                             ; preds = %1905
  %1909 = load ptr, ptr %18, align 8, !tbaa !5
  %1910 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  %1911 = load ptr, ptr %20, align 8, !tbaa !5
  %1912 = load ptr, ptr %21, align 8, !tbaa !5
  %1913 = load ptr, ptr %22, align 8, !tbaa !5
  %1914 = load ptr, ptr %24, align 8, !tbaa !5
  %1915 = load i32, ptr %36, align 4, !tbaa !9
  %1916 = sext i32 %1915 to i64
  %1917 = getelementptr inbounds %struct.complex, ptr %1914, i64 %1916
  %1918 = load ptr, ptr %25, align 8, !tbaa !5
  %1919 = load ptr, ptr %32, align 8, !tbaa !5
  %1920 = getelementptr inbounds %struct.complex, ptr %1919, i64 1
  call void @ctbsv_(ptr noundef %1909, ptr noundef %1910, ptr noundef %1911, ptr noundef %1912, ptr noundef %1913, ptr noundef %1917, ptr noundef %1918, ptr noundef %1920, ptr noundef @c__1)
  %1921 = load ptr, ptr %21, align 8, !tbaa !5
  %1922 = load i32, ptr %1921, align 4, !tbaa !9
  store i32 %1922, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1923

1923:                                             ; preds = %1971, %1908
  %1924 = load i32, ptr %54, align 4, !tbaa !9
  %1925 = load i32, ptr %42, align 4, !tbaa !9
  %1926 = icmp sle i32 %1924, %1925
  br i1 %1926, label %1927, label %1974

1927:                                             ; preds = %1923
  %1928 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1928, ptr %45, align 4, !tbaa !9
  %1929 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1929, ptr %43, align 4, !tbaa !9
  %1930 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1930, ptr %44, align 4, !tbaa !9
  %1931 = load ptr, ptr %33, align 8, !tbaa !5
  %1932 = load i32, ptr %43, align 4, !tbaa !9
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds float, ptr %1931, i64 %1933
  %1935 = load float, ptr %1934, align 4, !tbaa !11
  %1936 = load ptr, ptr %32, align 8, !tbaa !5
  %1937 = load i32, ptr %44, align 4, !tbaa !9
  %1938 = sext i32 %1937 to i64
  %1939 = getelementptr inbounds %struct.complex, ptr %1936, i64 %1938
  %1940 = getelementptr inbounds %struct.complex, ptr %1939, i32 0, i32 0
  %1941 = load float, ptr %1940, align 4, !tbaa !16
  %1942 = fmul float %1935, %1941
  %1943 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1942, ptr %1943, align 4, !tbaa !16
  %1944 = load ptr, ptr %33, align 8, !tbaa !5
  %1945 = load i32, ptr %43, align 4, !tbaa !9
  %1946 = sext i32 %1945 to i64
  %1947 = getelementptr inbounds float, ptr %1944, i64 %1946
  %1948 = load float, ptr %1947, align 4, !tbaa !11
  %1949 = load ptr, ptr %32, align 8, !tbaa !5
  %1950 = load i32, ptr %44, align 4, !tbaa !9
  %1951 = sext i32 %1950 to i64
  %1952 = getelementptr inbounds %struct.complex, ptr %1949, i64 %1951
  %1953 = getelementptr inbounds %struct.complex, ptr %1952, i32 0, i32 1
  %1954 = load float, ptr %1953, align 4, !tbaa !18
  %1955 = fmul float %1948, %1954
  %1956 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1955, ptr %1956, align 4, !tbaa !18
  %1957 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1958 = load float, ptr %1957, align 4, !tbaa !16
  %1959 = load ptr, ptr %32, align 8, !tbaa !5
  %1960 = load i32, ptr %45, align 4, !tbaa !9
  %1961 = sext i32 %1960 to i64
  %1962 = getelementptr inbounds %struct.complex, ptr %1959, i64 %1961
  %1963 = getelementptr inbounds %struct.complex, ptr %1962, i32 0, i32 0
  store float %1958, ptr %1963, align 4, !tbaa !16
  %1964 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1965 = load float, ptr %1964, align 4, !tbaa !18
  %1966 = load ptr, ptr %32, align 8, !tbaa !5
  %1967 = load i32, ptr %45, align 4, !tbaa !9
  %1968 = sext i32 %1967 to i64
  %1969 = getelementptr inbounds %struct.complex, ptr %1966, i64 %1968
  %1970 = getelementptr inbounds %struct.complex, ptr %1969, i32 0, i32 1
  store float %1965, ptr %1970, align 4, !tbaa !18
  br label %1971

1971:                                             ; preds = %1927
  %1972 = load i32, ptr %54, align 4, !tbaa !9
  %1973 = add nsw i32 %1972, 1
  store i32 %1973, ptr %54, align 4, !tbaa !9
  br label %1923, !llvm.loop !38

1974:                                             ; preds = %1923
  br label %2042

1975:                                             ; preds = %1905
  %1976 = load ptr, ptr %21, align 8, !tbaa !5
  %1977 = load i32, ptr %1976, align 4, !tbaa !9
  store i32 %1977, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1978

1978:                                             ; preds = %2026, %1975
  %1979 = load i32, ptr %54, align 4, !tbaa !9
  %1980 = load i32, ptr %42, align 4, !tbaa !9
  %1981 = icmp sle i32 %1979, %1980
  br i1 %1981, label %1982, label %2029

1982:                                             ; preds = %1978
  %1983 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1983, ptr %45, align 4, !tbaa !9
  %1984 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1984, ptr %43, align 4, !tbaa !9
  %1985 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1985, ptr %44, align 4, !tbaa !9
  %1986 = load ptr, ptr %33, align 8, !tbaa !5
  %1987 = load i32, ptr %43, align 4, !tbaa !9
  %1988 = sext i32 %1987 to i64
  %1989 = getelementptr inbounds float, ptr %1986, i64 %1988
  %1990 = load float, ptr %1989, align 4, !tbaa !11
  %1991 = load ptr, ptr %32, align 8, !tbaa !5
  %1992 = load i32, ptr %44, align 4, !tbaa !9
  %1993 = sext i32 %1992 to i64
  %1994 = getelementptr inbounds %struct.complex, ptr %1991, i64 %1993
  %1995 = getelementptr inbounds %struct.complex, ptr %1994, i32 0, i32 0
  %1996 = load float, ptr %1995, align 4, !tbaa !16
  %1997 = fmul float %1990, %1996
  %1998 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1997, ptr %1998, align 4, !tbaa !16
  %1999 = load ptr, ptr %33, align 8, !tbaa !5
  %2000 = load i32, ptr %43, align 4, !tbaa !9
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds float, ptr %1999, i64 %2001
  %2003 = load float, ptr %2002, align 4, !tbaa !11
  %2004 = load ptr, ptr %32, align 8, !tbaa !5
  %2005 = load i32, ptr %44, align 4, !tbaa !9
  %2006 = sext i32 %2005 to i64
  %2007 = getelementptr inbounds %struct.complex, ptr %2004, i64 %2006
  %2008 = getelementptr inbounds %struct.complex, ptr %2007, i32 0, i32 1
  %2009 = load float, ptr %2008, align 4, !tbaa !18
  %2010 = fmul float %2003, %2009
  %2011 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %2010, ptr %2011, align 4, !tbaa !18
  %2012 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2013 = load float, ptr %2012, align 4, !tbaa !16
  %2014 = load ptr, ptr %32, align 8, !tbaa !5
  %2015 = load i32, ptr %45, align 4, !tbaa !9
  %2016 = sext i32 %2015 to i64
  %2017 = getelementptr inbounds %struct.complex, ptr %2014, i64 %2016
  %2018 = getelementptr inbounds %struct.complex, ptr %2017, i32 0, i32 0
  store float %2013, ptr %2018, align 4, !tbaa !16
  %2019 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2020 = load float, ptr %2019, align 4, !tbaa !18
  %2021 = load ptr, ptr %32, align 8, !tbaa !5
  %2022 = load i32, ptr %45, align 4, !tbaa !9
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds %struct.complex, ptr %2021, i64 %2023
  %2025 = getelementptr inbounds %struct.complex, ptr %2024, i32 0, i32 1
  store float %2020, ptr %2025, align 4, !tbaa !18
  br label %2026

2026:                                             ; preds = %1982
  %2027 = load i32, ptr %54, align 4, !tbaa !9
  %2028 = add nsw i32 %2027, 1
  store i32 %2028, ptr %54, align 4, !tbaa !9
  br label %1978, !llvm.loop !39

2029:                                             ; preds = %1978
  %2030 = load ptr, ptr %18, align 8, !tbaa !5
  %2031 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  %2032 = load ptr, ptr %20, align 8, !tbaa !5
  %2033 = load ptr, ptr %21, align 8, !tbaa !5
  %2034 = load ptr, ptr %22, align 8, !tbaa !5
  %2035 = load ptr, ptr %24, align 8, !tbaa !5
  %2036 = load i32, ptr %36, align 4, !tbaa !9
  %2037 = sext i32 %2036 to i64
  %2038 = getelementptr inbounds %struct.complex, ptr %2035, i64 %2037
  %2039 = load ptr, ptr %25, align 8, !tbaa !5
  %2040 = load ptr, ptr %32, align 8, !tbaa !5
  %2041 = getelementptr inbounds %struct.complex, ptr %2040, i64 1
  call void @ctbsv_(ptr noundef %2030, ptr noundef %2031, ptr noundef %2032, ptr noundef %2033, ptr noundef %2034, ptr noundef %2038, ptr noundef %2039, ptr noundef %2041, ptr noundef @c__1)
  br label %2042

2042:                                             ; preds = %2029, %1974
  br label %1888

2043:                                             ; preds = %1888
  store float 0.000000e+00, ptr %67, align 4, !tbaa !11
  %2044 = load ptr, ptr %21, align 8, !tbaa !5
  %2045 = load i32, ptr %2044, align 4, !tbaa !9
  store i32 %2045, ptr %42, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %2046

2046:                                             ; preds = %2104, %2043
  %2047 = load i32, ptr %54, align 4, !tbaa !9
  %2048 = load i32, ptr %42, align 4, !tbaa !9
  %2049 = icmp sle i32 %2047, %2048
  br i1 %2049, label %2050, label %2107

2050:                                             ; preds = %2046
  %2051 = load i32, ptr %54, align 4, !tbaa !9
  %2052 = load i32, ptr %55, align 4, !tbaa !9
  %2053 = load i32, ptr %39, align 4, !tbaa !9
  %2054 = mul nsw i32 %2052, %2053
  %2055 = add nsw i32 %2051, %2054
  store i32 %2055, ptr %45, align 4, !tbaa !9
  %2056 = load float, ptr %67, align 4, !tbaa !11
  store float %2056, ptr %48, align 4, !tbaa !11
  %2057 = load ptr, ptr %28, align 8, !tbaa !5
  %2058 = load i32, ptr %45, align 4, !tbaa !9
  %2059 = sext i32 %2058 to i64
  %2060 = getelementptr inbounds %struct.complex, ptr %2057, i64 %2059
  %2061 = getelementptr inbounds %struct.complex, ptr %2060, i32 0, i32 0
  %2062 = load float, ptr %2061, align 4, !tbaa !16
  store float %2062, ptr %46, align 4, !tbaa !11
  %2063 = load float, ptr %46, align 4, !tbaa !11
  %2064 = fcmp oge float %2063, 0.000000e+00
  br i1 %2064, label %2065, label %2067

2065:                                             ; preds = %2050
  %2066 = load float, ptr %46, align 4, !tbaa !11
  br label %2070

2067:                                             ; preds = %2050
  %2068 = load float, ptr %46, align 4, !tbaa !11
  %2069 = fneg float %2068
  br label %2070

2070:                                             ; preds = %2067, %2065
  %2071 = phi float [ %2066, %2065 ], [ %2069, %2067 ]
  %2072 = load ptr, ptr %28, align 8, !tbaa !5
  %2073 = load i32, ptr %54, align 4, !tbaa !9
  %2074 = load i32, ptr %55, align 4, !tbaa !9
  %2075 = load i32, ptr %39, align 4, !tbaa !9
  %2076 = mul nsw i32 %2074, %2075
  %2077 = add nsw i32 %2073, %2076
  %2078 = sext i32 %2077 to i64
  %2079 = getelementptr inbounds %struct.complex, ptr %2072, i64 %2078
  %2080 = call <2 x float> @Cf(ptr noundef %2079)
  store <2 x float> %2080, ptr %93, align 4
  %2081 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 0
  %2082 = load float, ptr %2081, align 4
  %2083 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 1
  %2084 = load float, ptr %2083, align 4
  store float %2084, ptr %47, align 4, !tbaa !11
  %2085 = load float, ptr %47, align 4, !tbaa !11
  %2086 = fcmp oge float %2085, 0.000000e+00
  br i1 %2086, label %2087, label %2089

2087:                                             ; preds = %2070
  %2088 = load float, ptr %47, align 4, !tbaa !11
  br label %2092

2089:                                             ; preds = %2070
  %2090 = load float, ptr %47, align 4, !tbaa !11
  %2091 = fneg float %2090
  br label %2092

2092:                                             ; preds = %2089, %2087
  %2093 = phi float [ %2088, %2087 ], [ %2091, %2089 ]
  %2094 = fadd float %2071, %2093
  store float %2094, ptr %49, align 4, !tbaa !11
  %2095 = load float, ptr %48, align 4, !tbaa !11
  %2096 = load float, ptr %49, align 4, !tbaa !11
  %2097 = fcmp oge float %2095, %2096
  br i1 %2097, label %2098, label %2100

2098:                                             ; preds = %2092
  %2099 = load float, ptr %48, align 4, !tbaa !11
  br label %2102

2100:                                             ; preds = %2092
  %2101 = load float, ptr %49, align 4, !tbaa !11
  br label %2102

2102:                                             ; preds = %2100, %2098
  %2103 = phi float [ %2099, %2098 ], [ %2101, %2100 ]
  store float %2103, ptr %67, align 4, !tbaa !11
  br label %2104

2104:                                             ; preds = %2102
  %2105 = load i32, ptr %54, align 4, !tbaa !9
  %2106 = add nsw i32 %2105, 1
  store i32 %2106, ptr %54, align 4, !tbaa !9
  br label %2046, !llvm.loop !40

2107:                                             ; preds = %2046
  %2108 = load float, ptr %67, align 4, !tbaa !11
  %2109 = fcmp une float %2108, 0.000000e+00
  br i1 %2109, label %2110, label %2118

2110:                                             ; preds = %2107
  %2111 = load float, ptr %67, align 4, !tbaa !11
  %2112 = load ptr, ptr %30, align 8, !tbaa !5
  %2113 = load i32, ptr %55, align 4, !tbaa !9
  %2114 = sext i32 %2113 to i64
  %2115 = getelementptr inbounds float, ptr %2112, i64 %2114
  %2116 = load float, ptr %2115, align 4, !tbaa !11
  %2117 = fdiv float %2116, %2111
  store float %2117, ptr %2115, align 4, !tbaa !11
  br label %2118

2118:                                             ; preds = %2110, %2107
  br label %2119

2119:                                             ; preds = %2118
  %2120 = load i32, ptr %55, align 4, !tbaa !9
  %2121 = add nsw i32 %2120, 1
  store i32 %2121, ptr %55, align 4, !tbaa !9
  br label %295, !llvm.loop !41

2122:                                             ; preds = %295
  store i32 1, ptr %69, align 4
  br label %2123

2123:                                             ; preds = %2122, %270, %238
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !12, i64 0}
!17 = !{!"", !12, i64 0, !12, i64 4}
!18 = !{!17, !12, i64 4}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}


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

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

42:                                               ; preds = %17
  %43 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not781 = icmp eq i32 %43, 0
  br i1 %.not781, label %.thread.sink.split, label %44

44:                                               ; preds = %42, %17
  %.not782 = icmp eq i32 %40, 0
  br i1 %.not782, label %45, label %49

45:                                               ; preds = %44
  %46 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %.not783 = icmp eq i32 %46, 0
  br i1 %.not783, label %47, label %49

47:                                               ; preds = %45
  %48 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not784 = icmp eq i32 %48, 0
  br i1 %.not784, label %.thread.sink.split, label %49

49:                                               ; preds = %47, %45, %44
  %.not785 = icmp eq i32 %41, 0
  br i1 %.not785, label %50, label %52

50:                                               ; preds = %49
  %51 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %.not786 = icmp eq i32 %51, 0
  br i1 %.not786, label %.thread.sink.split, label %52

52:                                               ; preds = %50, %49
  %53 = load i32, ptr %3, align 4, !tbaa !5
  %54 = icmp slt i32 %53, 0
  br i1 %54, label %.thread.sink.split, label %55

55:                                               ; preds = %52
  %56 = load i32, ptr %4, align 4, !tbaa !5
  %57 = icmp slt i32 %56, 0
  br i1 %57, label %.thread.sink.split, label %58

58:                                               ; preds = %55
  %59 = load i32, ptr %5, align 4, !tbaa !5
  %60 = icmp slt i32 %59, 0
  br i1 %60, label %.thread.sink.split, label %61

61:                                               ; preds = %58
  %62 = load i32, ptr %7, align 4, !tbaa !5
  %.not787 = icmp sgt i32 %62, %56
  br i1 %.not787, label %63, label %.thread.sink.split

63:                                               ; preds = %61
  %64 = load i32, ptr %9, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %53, i32 1)
  %65 = icmp slt i32 %64, %spec.select
  br i1 %65, label %.thread.sink.split, label %66

66:                                               ; preds = %63
  %67 = load i32, ptr %11, align 4, !tbaa !5
  %68 = icmp slt i32 %67, %spec.select
  br i1 %68, label %.thread.sink.split, label %69

69:                                               ; preds = %66
  %.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not788 = icmp eq i32 %.pr, 0
  br i1 %.not788, label %73, label %.thread

.thread.sink.split:                               ; preds = %66, %63, %61, %58, %55, %52, %50, %47, %42
  %.sink = phi i32 [ -1, %42 ], [ -2, %47 ], [ -3, %50 ], [ -4, %52 ], [ -5, %55 ], [ -6, %58 ], [ -8, %61 ], [ -10, %63 ], [ -12, %66 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %69
  %70 = phi i32 [ %.pr, %69 ], [ %.sink, %.thread.sink.split ]
  %71 = sub nsw i32 0, %70
  store i32 %71, ptr %20, align 4, !tbaa !5
  %72 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %20, i32 noundef 6) #6
  br label %.loopexit

73:                                               ; preds = %69
  %74 = icmp eq i32 %53, 0
  %.not825960 = icmp eq i32 %59, 0
  br i1 %74, label %76, label %75

75:                                               ; preds = %73
  br i1 %.not825960, label %.loopexit, label %99

76:                                               ; preds = %73
  br i1 %.not825960, label %.loopexit, label %.lr.ph963.preheader

.lr.ph963.preheader:                              ; preds = %76
  %77 = add nuw i32 %59, 1
  %wide.trip.count1094 = zext i32 %77 to i64
  %78 = zext nneg i32 %59 to i64
  %min.iters.check1196 = icmp ult i32 %59, 8
  %79 = sub i64 %19, %18
  %diff.check = icmp ult i64 %79, 32
  %or.cond = or i1 %min.iters.check1196, %diff.check
  br i1 %or.cond, label %.lr.ph963.preheader1207, label %vector.ph1197

vector.ph1197:                                    ; preds = %.lr.ph963.preheader
  %n.vec1199 = and i64 %78, 2147483640
  %ind.end1200 = or disjoint i64 %n.vec1199, 1
  br label %vector.body1202

vector.body1202:                                  ; preds = %vector.body1202, %vector.ph1197
  %index1203 = phi i64 [ 0, %vector.ph1197 ], [ %index.next1205, %vector.body1202 ]
  %80 = getelementptr float, ptr %12, i64 %index1203
  %81 = getelementptr inbounds i8, ptr %80, i64 16
  store <4 x float> zeroinitializer, ptr %80, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %81, align 4, !tbaa !9
  %82 = getelementptr float, ptr %13, i64 %index1203
  %83 = getelementptr inbounds i8, ptr %82, i64 16
  store <4 x float> zeroinitializer, ptr %82, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %83, align 4, !tbaa !9
  %index.next1205 = add nuw i64 %index1203, 8
  %84 = icmp eq i64 %index.next1205, %n.vec1199
  br i1 %84, label %middle.block1194, label %vector.body1202, !llvm.loop !11

middle.block1194:                                 ; preds = %vector.body1202
  %cmp.n1206 = icmp eq i64 %n.vec1199, %78
  br i1 %cmp.n1206, label %.loopexit, label %.lr.ph963.preheader1207

.lr.ph963.preheader1207:                          ; preds = %middle.block1194, %.lr.ph963.preheader
  %indvars.iv1091.ph = phi i64 [ 1, %.lr.ph963.preheader ], [ %ind.end1200, %middle.block1194 ]
  %85 = sub nsw i64 %wide.trip.count1094, %indvars.iv1091.ph
  %86 = zext nneg i32 %59 to i64
  %87 = sub nsw i64 %86, %indvars.iv1091.ph
  %xtraiter1231 = and i64 %85, 3
  %lcmp.mod1232.not = icmp eq i64 %xtraiter1231, 0
  br i1 %lcmp.mod1232.not, label %.lr.ph963.prol.loopexit, label %.lr.ph963.prol

.lr.ph963.prol:                                   ; preds = %.lr.ph963.preheader1207, %.lr.ph963.prol
  %indvars.iv1091.prol = phi i64 [ %indvars.iv.next1092.prol, %.lr.ph963.prol ], [ %indvars.iv1091.ph, %.lr.ph963.preheader1207 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph963.prol ], [ 0, %.lr.ph963.preheader1207 ]
  %88 = getelementptr inbounds float, ptr %35, i64 %indvars.iv1091.prol
  store float 0.000000e+00, ptr %88, align 4, !tbaa !9
  %89 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1091.prol
  store float 0.000000e+00, ptr %89, align 4, !tbaa !9
  %indvars.iv.next1092.prol = add nuw nsw i64 %indvars.iv1091.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1231
  br i1 %prol.iter.cmp.not, label %.lr.ph963.prol.loopexit, label %.lr.ph963.prol, !llvm.loop !15

.lr.ph963.prol.loopexit:                          ; preds = %.lr.ph963.prol, %.lr.ph963.preheader1207
  %indvars.iv1091.unr = phi i64 [ %indvars.iv1091.ph, %.lr.ph963.preheader1207 ], [ %indvars.iv.next1092.prol, %.lr.ph963.prol ]
  %90 = icmp ult i64 %87, 3
  br i1 %90, label %.loopexit, label %.lr.ph963

.lr.ph963:                                        ; preds = %.lr.ph963.prol.loopexit, %.lr.ph963
  %indvars.iv1091 = phi i64 [ %indvars.iv.next1092.3, %.lr.ph963 ], [ %indvars.iv1091.unr, %.lr.ph963.prol.loopexit ]
  %91 = getelementptr inbounds float, ptr %35, i64 %indvars.iv1091
  store float 0.000000e+00, ptr %91, align 4, !tbaa !9
  %92 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1091
  store float 0.000000e+00, ptr %92, align 4, !tbaa !9
  %93 = getelementptr float, ptr %12, i64 %indvars.iv1091
  store float 0.000000e+00, ptr %93, align 4, !tbaa !9
  %94 = getelementptr float, ptr %13, i64 %indvars.iv1091
  store float 0.000000e+00, ptr %94, align 4, !tbaa !9
  %indvars.iv.next1092.1 = add nuw nsw i64 %indvars.iv1091, 2
  %95 = getelementptr inbounds float, ptr %35, i64 %indvars.iv.next1092.1
  store float 0.000000e+00, ptr %95, align 4, !tbaa !9
  %96 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1092.1
  store float 0.000000e+00, ptr %96, align 4, !tbaa !9
  %indvars.iv.next1092.2 = add nuw nsw i64 %indvars.iv1091, 3
  %97 = getelementptr inbounds float, ptr %35, i64 %indvars.iv.next1092.2
  store float 0.000000e+00, ptr %97, align 4, !tbaa !9
  %98 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1092.2
  store float 0.000000e+00, ptr %98, align 4, !tbaa !9
  %indvars.iv.next1092.3 = add nuw nsw i64 %indvars.iv1091, 4
  %exitcond1095.not.3 = icmp eq i64 %indvars.iv.next1092.3, %wide.trip.count1094
  br i1 %exitcond1095.not.3, label %.loopexit, label %.lr.ph963, !llvm.loop !17

99:                                               ; preds = %75
  %. = select i1 %.not782, i8 67, i8 78
  %.827 = select i1 %.not782, i8 78, i8 67
  store i8 %., ptr %24, align 1, !tbaa !18
  store i8 %.827, ptr %25, align 1, !tbaa !18
  %100 = add nuw nsw i32 %56, 2
  %101 = tail call float @slamch_(ptr noundef nonnull @.str.6) #6
  %102 = tail call float @slamch_(ptr noundef nonnull @.str.7) #6
  %103 = uitofp nneg i32 %100 to float
  %104 = fmul float %102, %103
  %105 = fdiv float %104, %101
  %106 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %106, ptr %20, align 4, !tbaa !5
  %invariant.gep952 = getelementptr i8, ptr %34, i64 8
  %invariant.gep954 = getelementptr i8, ptr %31, i64 8
  %.not791956 = icmp slt i32 %106, 1
  br i1 %.not791956, label %.loopexit, label %.lr.ph959

.lr.ph959:                                        ; preds = %99
  %107 = fmul float %101, %103
  %108 = sext i32 %32 to i64
  %109 = sext i32 %29 to i64
  %.0760847964 = add i32 %26, -1
  %.1761856966 = add i32 %26, -1
  %.2762865967 = add i32 %26, -1
  %.3763874968 = add i32 %26, -1
  %.4764884970 = add i32 %26, -1
  %.5765895972 = add i32 %26, -1
  %.6766906973 = add i32 %26, -1
  %.7767917974 = add i32 %26, -1
  %110 = zext nneg i32 %106 to i64
  %scevgep = getelementptr i8, ptr %14, i64 -8
  %scevgep1164 = getelementptr i8, ptr %15, i64 -4
  %scevgep1168 = getelementptr i8, ptr %14, i64 -8
  %scevgep1170 = getelementptr i8, ptr %15, i64 -4
  br label %111

111:                                              ; preds = %.lr.ph959, %._crit_edge950.thread
  %indvars.iv1088 = phi i64 [ 1, %.lr.ph959 ], [ %indvars.iv.next1089, %._crit_edge950.thread ]
  %112 = mul nsw i64 %indvars.iv1088, %108
  %gep953 = getelementptr %struct.complex, ptr %invariant.gep952, i64 %112
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep953, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  call void @ctbmv_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %14, ptr noundef nonnull @c__1) #6
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %21, align 8, !tbaa !9
  %113 = mul nsw i64 %indvars.iv1088, %109
  %gep955 = getelementptr %struct.complex, ptr %invariant.gep954, i64 %113
  call void @caxpy_(ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef %gep955, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  %114 = load i32, ptr %3, align 4, !tbaa !5
  %.not793839 = icmp slt i32 %114, 1
  br i1 %.not793839, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %111
  %115 = add nuw i32 %114, 1
  %wide.trip.count = zext i32 %115 to i64
  %invariant.gep = getelementptr %struct.complex, ptr %31, i64 %113
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %gep1120 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv
  %116 = load float, ptr %gep1120, align 4, !tbaa !19
  %117 = fcmp oge float %116, 0.000000e+00
  %118 = fneg float %116
  %119 = select i1 %117, float %116, float %118
  %120 = call <2 x float> @Cf(ptr noundef nonnull %gep1120)
  %.sroa.023.4.vec.extract = extractelement <2 x float> %120, i64 1
  %121 = fcmp oge float %.sroa.023.4.vec.extract, 0.000000e+00
  %122 = fneg float %.sroa.023.4.vec.extract
  %123 = select i1 %121, float %.sroa.023.4.vec.extract, float %122
  %124 = fadd float %119, %123
  %125 = getelementptr inbounds float, ptr %38, i64 %indvars.iv
  store float %124, ptr %125, 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 %._crit_edge, label %.lr.ph, !llvm.loop !21

._crit_edge:                                      ; preds = %.lr.ph, %111
  %126 = load i32, ptr %3, align 4, !tbaa !5
  %.not795916 = icmp slt i32 %126, 1
  br i1 %.not782, label %278, label %127

127:                                              ; preds = %._crit_edge
  br i1 %.not, label %203, label %128

128:                                              ; preds = %127
  br i1 %.not785, label %164, label %129

129:                                              ; preds = %128
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph849.preheader

.lr.ph849.preheader:                              ; preds = %129
  %130 = add nuw i32 %126, 1
  %wide.trip.count998 = zext i32 %130 to i64
  %invariant.gep1121 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph849

.lr.ph849:                                        ; preds = %.lr.ph849.preheader, %._crit_edge845
  %indvars.iv995 = phi i64 [ 1, %.lr.ph849.preheader ], [ %indvars.iv.next996, %._crit_edge845 ]
  %gep1122 = getelementptr %struct.complex, ptr %invariant.gep1121, i64 %indvars.iv995
  %131 = load float, ptr %gep1122, align 4, !tbaa !19
  %132 = fcmp oge float %131, 0.000000e+00
  %133 = fneg float %131
  %134 = select i1 %132, float %131, float %133
  %135 = call <2 x float> @Cf(ptr noundef nonnull %gep1122)
  %.sroa.022.4.vec.extract = extractelement <2 x float> %135, i64 1
  %136 = fcmp oge float %.sroa.022.4.vec.extract, 0.000000e+00
  %137 = fneg float %.sroa.022.4.vec.extract
  %138 = select i1 %136, float %.sroa.022.4.vec.extract, float %137
  %139 = fadd float %134, %138
  %140 = load i32, ptr %4, align 4, !tbaa !5
  %.not824841 = icmp slt i32 %140, 0
  br i1 %.not824841, label %._crit_edge845, label %.lr.ph844

.lr.ph844:                                        ; preds = %.lr.ph849
  %141 = trunc nuw nsw i64 %indvars.iv995 to i32
  %reass.sub = mul i32 %.0760847964, %141
  %142 = add i32 %reass.sub, 1
  %143 = sub i32 %141, %140
  %smax = call i32 @llvm.smax.i32(i32 %143, i32 1)
  %144 = zext nneg i32 %smax to i64
  br label %145

145:                                              ; preds = %.lr.ph844, %145
  %indvars.iv992 = phi i64 [ %144, %.lr.ph844 ], [ %indvars.iv.next993, %145 ]
  %146 = load i32, ptr %4, align 4, !tbaa !5
  %147 = trunc nuw nsw i64 %indvars.iv992 to i32
  %148 = add i32 %142, %147
  %149 = add i32 %148, %146
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds %struct.complex, ptr %28, i64 %150
  %152 = load float, ptr %151, align 4, !tbaa !19
  %153 = fcmp oge float %152, 0.000000e+00
  %154 = fneg float %152
  %155 = select i1 %153, float %152, float %154
  %156 = call <2 x float> @Cf(ptr noundef nonnull %151)
  %.sroa.021.4.vec.extract = extractelement <2 x float> %156, i64 1
  %157 = fcmp oge float %.sroa.021.4.vec.extract, 0.000000e+00
  %158 = fneg float %.sroa.021.4.vec.extract
  %159 = select i1 %157, float %.sroa.021.4.vec.extract, float %158
  %160 = fadd float %155, %159
  %161 = getelementptr inbounds float, ptr %38, i64 %indvars.iv992
  %162 = load float, ptr %161, align 4, !tbaa !9
  %163 = call float @llvm.fmuladd.f32(float %160, float %139, float %162)
  store float %163, ptr %161, align 4, !tbaa !9
  %indvars.iv.next993 = add nuw nsw i64 %indvars.iv992, 1
  %.not824.not = icmp ult i64 %indvars.iv992, %indvars.iv995
  br i1 %.not824.not, label %145, label %._crit_edge845, !llvm.loop !22

._crit_edge845:                                   ; preds = %145, %.lr.ph849
  %indvars.iv.next996 = add nuw nsw i64 %indvars.iv995, 1
  %exitcond999.not = icmp eq i64 %indvars.iv.next996, %wide.trip.count998
  br i1 %exitcond999.not, label %.loopexit830, label %.lr.ph849, !llvm.loop !23

164:                                              ; preds = %128
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph858.preheader

.lr.ph858.preheader:                              ; preds = %164
  %165 = add nuw i32 %126, 1
  %wide.trip.count1007 = zext i32 %165 to i64
  %invariant.gep1123 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph858

.lr.ph858:                                        ; preds = %.lr.ph858.preheader, %._crit_edge854
  %indvars.iv1004 = phi i64 [ 1, %.lr.ph858.preheader ], [ %indvars.iv.next1005, %._crit_edge854 ]
  %gep1124 = getelementptr %struct.complex, ptr %invariant.gep1123, i64 %indvars.iv1004
  %166 = load float, ptr %gep1124, align 4, !tbaa !19
  %167 = fcmp oge float %166, 0.000000e+00
  %168 = fneg float %166
  %169 = select i1 %167, float %166, float %168
  %170 = call <2 x float> @Cf(ptr noundef nonnull %gep1124)
  %.sroa.020.4.vec.extract = extractelement <2 x float> %170, i64 1
  %171 = fcmp oge float %.sroa.020.4.vec.extract, 0.000000e+00
  %172 = fneg float %.sroa.020.4.vec.extract
  %173 = select i1 %171, float %.sroa.020.4.vec.extract, float %172
  %174 = fadd float %169, %173
  %175 = load i32, ptr %4, align 4, !tbaa !5
  %176 = trunc nuw nsw i64 %indvars.iv1004 to i32
  %177 = sub i32 %176, %175
  %178 = call i32 @llvm.smax.i32(i32 %177, i32 1)
  %179 = zext nneg i32 %178 to i64
  %.not815.not850 = icmp ugt i64 %indvars.iv1004, %179
  br i1 %.not815.not850, label %.lr.ph853, label %._crit_edge854

.lr.ph853:                                        ; preds = %.lr.ph858
  %reass.sub965 = mul i32 %.1761856966, %176
  %180 = add i32 %reass.sub965, 1
  br label %181

181:                                              ; preds = %.lr.ph853, %181
  %indvars.iv1001 = phi i64 [ %179, %.lr.ph853 ], [ %indvars.iv.next1002, %181 ]
  %182 = load i32, ptr %4, align 4, !tbaa !5
  %183 = trunc nuw nsw i64 %indvars.iv1001 to i32
  %184 = add i32 %180, %183
  %185 = add i32 %184, %182
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds %struct.complex, ptr %28, i64 %186
  %188 = load float, ptr %187, align 4, !tbaa !19
  %189 = fcmp oge float %188, 0.000000e+00
  %190 = fneg float %188
  %191 = select i1 %189, float %188, float %190
  %192 = call <2 x float> @Cf(ptr noundef nonnull %187)
  %.sroa.019.4.vec.extract = extractelement <2 x float> %192, i64 1
  %193 = fcmp oge float %.sroa.019.4.vec.extract, 0.000000e+00
  %194 = fneg float %.sroa.019.4.vec.extract
  %195 = select i1 %193, float %.sroa.019.4.vec.extract, float %194
  %196 = fadd float %191, %195
  %197 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1001
  %198 = load float, ptr %197, align 4, !tbaa !9
  %199 = call float @llvm.fmuladd.f32(float %196, float %174, float %198)
  store float %199, ptr %197, align 4, !tbaa !9
  %indvars.iv.next1002 = add nuw nsw i64 %indvars.iv1001, 1
  %.not815.not = icmp ult i64 %indvars.iv.next1002, %indvars.iv1004
  br i1 %.not815.not, label %181, label %._crit_edge854, !llvm.loop !24

._crit_edge854:                                   ; preds = %181, %.lr.ph858
  %200 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1004
  %201 = load float, ptr %200, align 4, !tbaa !9
  %202 = fadd float %174, %201
  store float %202, ptr %200, align 4, !tbaa !9
  %indvars.iv.next1005 = add nuw nsw i64 %indvars.iv1004, 1
  %exitcond1008.not = icmp eq i64 %indvars.iv.next1005, %wide.trip.count1007
  br i1 %exitcond1008.not, label %.loopexit830, label %.lr.ph858, !llvm.loop !25

203:                                              ; preds = %127
  br i1 %.not785, label %239, label %204

204:                                              ; preds = %203
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph867.preheader

.lr.ph867.preheader:                              ; preds = %204
  %205 = add nuw i32 %126, 1
  %wide.trip.count1015 = zext i32 %205 to i64
  %invariant.gep1125 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph867

.lr.ph867:                                        ; preds = %.lr.ph867.preheader, %._crit_edge863
  %indvars.iv1009 = phi i64 [ 1, %.lr.ph867.preheader ], [ %indvars.iv.next1010, %._crit_edge863 ]
  %gep1126 = getelementptr %struct.complex, ptr %invariant.gep1125, i64 %indvars.iv1009
  %206 = load float, ptr %gep1126, align 4, !tbaa !19
  %207 = fcmp oge float %206, 0.000000e+00
  %208 = fneg float %206
  %209 = select i1 %207, float %206, float %208
  %210 = call <2 x float> @Cf(ptr noundef nonnull %gep1126)
  %.sroa.018.4.vec.extract = extractelement <2 x float> %210, i64 1
  %211 = fcmp oge float %.sroa.018.4.vec.extract, 0.000000e+00
  %212 = fneg float %.sroa.018.4.vec.extract
  %213 = select i1 %211, float %.sroa.018.4.vec.extract, float %212
  %214 = fadd float %209, %213
  %215 = load i32, ptr %3, align 4, !tbaa !5
  %216 = load i32, ptr %4, align 4, !tbaa !5
  %217 = trunc nuw nsw i64 %indvars.iv1009 to i32
  %218 = add nsw i32 %216, %217
  %219 = call i32 @llvm.smin.i32(i32 %215, i32 %218)
  %220 = sext i32 %219 to i64
  %.not812859 = icmp sgt i64 %indvars.iv1009, %220
  br i1 %.not812859, label %._crit_edge863, label %.lr.ph862

.lr.ph862:                                        ; preds = %.lr.ph867
  %221 = mul i32 %.2762865967, %217
  br label %222

222:                                              ; preds = %.lr.ph862, %222
  %indvars.iv1011 = phi i64 [ %indvars.iv1009, %.lr.ph862 ], [ %indvars.iv.next1012, %222 ]
  %indvars.iv.next1012 = add nuw nsw i64 %indvars.iv1011, 1
  %223 = trunc nsw i64 %indvars.iv.next1012 to i32
  %224 = add i32 %221, %223
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds %struct.complex, ptr %28, i64 %225
  %227 = load float, ptr %226, align 4, !tbaa !19
  %228 = fcmp oge float %227, 0.000000e+00
  %229 = fneg float %227
  %230 = select i1 %228, float %227, float %229
  %231 = call <2 x float> @Cf(ptr noundef nonnull %226)
  %.sroa.017.4.vec.extract = extractelement <2 x float> %231, i64 1
  %232 = fcmp oge float %.sroa.017.4.vec.extract, 0.000000e+00
  %233 = fneg float %.sroa.017.4.vec.extract
  %234 = select i1 %232, float %.sroa.017.4.vec.extract, float %233
  %235 = fadd float %230, %234
  %236 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1011
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = call float @llvm.fmuladd.f32(float %235, float %214, float %237)
  store float %238, ptr %236, align 4, !tbaa !9
  %.not812.not = icmp slt i64 %indvars.iv1011, %220
  br i1 %.not812.not, label %222, label %._crit_edge863, !llvm.loop !26

._crit_edge863:                                   ; preds = %222, %.lr.ph867
  %indvars.iv.next1010 = add nuw nsw i64 %indvars.iv1009, 1
  %exitcond1016.not = icmp eq i64 %indvars.iv.next1010, %wide.trip.count1015
  br i1 %exitcond1016.not, label %.loopexit830, label %.lr.ph867, !llvm.loop !27

239:                                              ; preds = %203
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph876.preheader

.lr.ph876.preheader:                              ; preds = %239
  %240 = add nuw i32 %126, 1
  %wide.trip.count1025 = zext i32 %240 to i64
  %invariant.gep1127 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph876

.lr.ph876:                                        ; preds = %.lr.ph876.preheader, %._crit_edge872
  %indvars.iv1022 = phi i64 [ 1, %.lr.ph876.preheader ], [ %indvars.iv.next1023, %._crit_edge872 ]
  %indvars.iv1017 = phi i32 [ 2, %.lr.ph876.preheader ], [ %indvars.iv.next1018, %._crit_edge872 ]
  %gep1128 = getelementptr %struct.complex, ptr %invariant.gep1127, i64 %indvars.iv1022
  %241 = load float, ptr %gep1128, align 4, !tbaa !19
  %242 = fcmp oge float %241, 0.000000e+00
  %243 = fneg float %241
  %244 = select i1 %242, float %241, float %243
  %245 = call <2 x float> @Cf(ptr noundef nonnull %gep1128)
  %.sroa.016.4.vec.extract = extractelement <2 x float> %245, i64 1
  %246 = fcmp oge float %.sroa.016.4.vec.extract, 0.000000e+00
  %247 = fneg float %.sroa.016.4.vec.extract
  %248 = select i1 %246, float %.sroa.016.4.vec.extract, float %247
  %249 = fadd float %244, %248
  %250 = load i32, ptr %3, align 4, !tbaa !5
  %251 = load i32, ptr %4, align 4, !tbaa !5
  %252 = trunc nuw nsw i64 %indvars.iv1022 to i32
  %253 = add nsw i32 %251, %252
  %254 = call i32 @llvm.smin.i32(i32 %250, i32 %253)
  %indvars.iv.next1023 = add nuw nsw i64 %indvars.iv1022, 1
  %255 = sext i32 %254 to i64
  %.not809868.not = icmp slt i64 %indvars.iv1022, %255
  br i1 %.not809868.not, label %.lr.ph871, label %._crit_edge872

.lr.ph871:                                        ; preds = %.lr.ph876
  %256 = sext i32 %indvars.iv1017 to i64
  %257 = mul i32 %.3763874968, %252
  br label %258

258:                                              ; preds = %.lr.ph871, %258
  %indvars.iv1019 = phi i64 [ %256, %.lr.ph871 ], [ %indvars.iv.next1020, %258 ]
  %indvars.iv.next1020 = add nuw nsw i64 %indvars.iv1019, 1
  %259 = trunc nsw i64 %indvars.iv.next1020 to i32
  %260 = add i32 %257, %259
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds %struct.complex, ptr %28, i64 %261
  %263 = load float, ptr %262, align 4, !tbaa !19
  %264 = fcmp oge float %263, 0.000000e+00
  %265 = fneg float %263
  %266 = select i1 %264, float %263, float %265
  %267 = call <2 x float> @Cf(ptr noundef nonnull %262)
  %.sroa.015.4.vec.extract = extractelement <2 x float> %267, i64 1
  %268 = fcmp oge float %.sroa.015.4.vec.extract, 0.000000e+00
  %269 = fneg float %.sroa.015.4.vec.extract
  %270 = select i1 %268, float %.sroa.015.4.vec.extract, float %269
  %271 = fadd float %266, %270
  %272 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1019
  %273 = load float, ptr %272, align 4, !tbaa !9
  %274 = call float @llvm.fmuladd.f32(float %271, float %249, float %273)
  store float %274, ptr %272, align 4, !tbaa !9
  %.not809.not = icmp slt i64 %indvars.iv1019, %255
  br i1 %.not809.not, label %258, label %._crit_edge872, !llvm.loop !28

._crit_edge872:                                   ; preds = %258, %.lr.ph876
  %275 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1022
  %276 = load float, ptr %275, align 4, !tbaa !9
  %277 = fadd float %249, %276
  store float %277, ptr %275, align 4, !tbaa !9
  %indvars.iv.next1018 = add nuw i32 %indvars.iv1017, 1
  %exitcond1026.not = icmp eq i64 %indvars.iv.next1023, %wide.trip.count1025
  br i1 %exitcond1026.not, label %.loopexit830, label %.lr.ph876, !llvm.loop !29

278:                                              ; preds = %._crit_edge
  br i1 %.not, label %363, label %279

279:                                              ; preds = %278
  br i1 %.not785, label %316, label %280

280:                                              ; preds = %279
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph886.preheader

.lr.ph886.preheader:                              ; preds = %280
  %281 = add nuw i32 %126, 1
  %wide.trip.count1034 = zext i32 %281 to i64
  %invariant.gep1129 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph886

.lr.ph886:                                        ; preds = %.lr.ph886.preheader, %._crit_edge882
  %indvars.iv1031 = phi i64 [ 1, %.lr.ph886.preheader ], [ %indvars.iv.next1032, %._crit_edge882 ]
  %282 = load i32, ptr %4, align 4, !tbaa !5
  %.not805877 = icmp slt i32 %282, 0
  br i1 %.not805877, label %._crit_edge882, label %.lr.ph881

.lr.ph881:                                        ; preds = %.lr.ph886
  %283 = trunc nuw nsw i64 %indvars.iv1031 to i32
  %reass.sub969 = mul i32 %.4764884970, %283
  %284 = add i32 %reass.sub969, 1
  %285 = sub i32 %283, %282
  %smax1027 = call i32 @llvm.smax.i32(i32 %285, i32 1)
  %286 = zext nneg i32 %smax1027 to i64
  br label %287

287:                                              ; preds = %.lr.ph881, %287
  %indvars.iv1028 = phi i64 [ %286, %.lr.ph881 ], [ %indvars.iv.next1029, %287 ]
  %.0768878 = phi float [ 0.000000e+00, %.lr.ph881 ], [ %312, %287 ]
  %288 = load i32, ptr %4, align 4, !tbaa !5
  %289 = trunc nuw nsw i64 %indvars.iv1028 to i32
  %290 = add i32 %284, %289
  %291 = add i32 %290, %288
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds %struct.complex, ptr %28, i64 %292
  %294 = load float, ptr %293, align 4, !tbaa !19
  %295 = fcmp oge float %294, 0.000000e+00
  %296 = fneg float %294
  %297 = select i1 %295, float %294, float %296
  %298 = call <2 x float> @Cf(ptr noundef nonnull %293)
  %.sroa.014.4.vec.extract = extractelement <2 x float> %298, i64 1
  %299 = fcmp oge float %.sroa.014.4.vec.extract, 0.000000e+00
  %300 = fneg float %.sroa.014.4.vec.extract
  %301 = select i1 %299, float %.sroa.014.4.vec.extract, float %300
  %302 = fadd float %297, %301
  %gep1130 = getelementptr %struct.complex, ptr %invariant.gep1129, i64 %indvars.iv1028
  %303 = load float, ptr %gep1130, align 4, !tbaa !19
  %304 = fcmp oge float %303, 0.000000e+00
  %305 = fneg float %303
  %306 = select i1 %304, float %303, float %305
  %307 = call <2 x float> @Cf(ptr noundef nonnull %gep1130)
  %.sroa.013.4.vec.extract = extractelement <2 x float> %307, i64 1
  %308 = fcmp oge float %.sroa.013.4.vec.extract, 0.000000e+00
  %309 = fneg float %.sroa.013.4.vec.extract
  %310 = select i1 %308, float %.sroa.013.4.vec.extract, float %309
  %311 = fadd float %306, %310
  %312 = call float @llvm.fmuladd.f32(float %302, float %311, float %.0768878)
  %indvars.iv.next1029 = add nuw nsw i64 %indvars.iv1028, 1
  %.not805.not = icmp ult i64 %indvars.iv1028, %indvars.iv1031
  br i1 %.not805.not, label %287, label %._crit_edge882, !llvm.loop !30

._crit_edge882:                                   ; preds = %287, %.lr.ph886
  %.0768.lcssa = phi float [ 0.000000e+00, %.lr.ph886 ], [ %312, %287 ]
  %313 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1031
  %314 = load float, ptr %313, align 4, !tbaa !9
  %315 = fadd float %.0768.lcssa, %314
  store float %315, ptr %313, align 4, !tbaa !9
  %indvars.iv.next1032 = add nuw nsw i64 %indvars.iv1031, 1
  %exitcond1035.not = icmp eq i64 %indvars.iv.next1032, %wide.trip.count1034
  br i1 %exitcond1035.not, label %.loopexit830, label %.lr.ph886, !llvm.loop !31

316:                                              ; preds = %279
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph897.preheader

.lr.ph897.preheader:                              ; preds = %316
  %317 = add nuw i32 %126, 1
  %wide.trip.count1043 = zext i32 %317 to i64
  %invariant.gep1133 = getelementptr %struct.complex, ptr %34, i64 %112
  %invariant.gep1131 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph897

.lr.ph897:                                        ; preds = %.lr.ph897.preheader, %._crit_edge892
  %indvars.iv1040 = phi i64 [ 1, %.lr.ph897.preheader ], [ %indvars.iv.next1041, %._crit_edge892 ]
  %gep1134 = getelementptr %struct.complex, ptr %invariant.gep1133, i64 %indvars.iv1040
  %318 = load float, ptr %gep1134, align 4, !tbaa !19
  %319 = fcmp oge float %318, 0.000000e+00
  %320 = fneg float %318
  %321 = select i1 %319, float %318, float %320
  %322 = call <2 x float> @Cf(ptr noundef nonnull %gep1134)
  %.sroa.012.4.vec.extract = extractelement <2 x float> %322, i64 1
  %323 = fcmp oge float %.sroa.012.4.vec.extract, 0.000000e+00
  %324 = fneg float %.sroa.012.4.vec.extract
  %325 = select i1 %323, float %.sroa.012.4.vec.extract, float %324
  %326 = fadd float %321, %325
  %327 = load i32, ptr %4, align 4, !tbaa !5
  %328 = trunc nuw nsw i64 %indvars.iv1040 to i32
  %329 = sub i32 %328, %327
  %330 = call i32 @llvm.smax.i32(i32 %329, i32 1)
  %331 = zext nneg i32 %330 to i64
  %.not803.not887 = icmp ugt i64 %indvars.iv1040, %331
  br i1 %.not803.not887, label %.lr.ph891, label %._crit_edge892

.lr.ph891:                                        ; preds = %.lr.ph897
  %reass.sub971 = mul i32 %.5765895972, %328
  %332 = add i32 %reass.sub971, 1
  br label %333

333:                                              ; preds = %.lr.ph891, %333
  %indvars.iv1037 = phi i64 [ %331, %.lr.ph891 ], [ %indvars.iv.next1038, %333 ]
  %.1769888 = phi float [ %326, %.lr.ph891 ], [ %358, %333 ]
  %334 = load i32, ptr %4, align 4, !tbaa !5
  %335 = trunc nuw nsw i64 %indvars.iv1037 to i32
  %336 = add i32 %332, %335
  %337 = add i32 %336, %334
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds %struct.complex, ptr %28, i64 %338
  %340 = load float, ptr %339, align 4, !tbaa !19
  %341 = fcmp oge float %340, 0.000000e+00
  %342 = fneg float %340
  %343 = select i1 %341, float %340, float %342
  %344 = call <2 x float> @Cf(ptr noundef nonnull %339)
  %.sroa.011.4.vec.extract = extractelement <2 x float> %344, i64 1
  %345 = fcmp oge float %.sroa.011.4.vec.extract, 0.000000e+00
  %346 = fneg float %.sroa.011.4.vec.extract
  %347 = select i1 %345, float %.sroa.011.4.vec.extract, float %346
  %348 = fadd float %343, %347
  %gep1132 = getelementptr %struct.complex, ptr %invariant.gep1131, i64 %indvars.iv1037
  %349 = load float, ptr %gep1132, align 4, !tbaa !19
  %350 = fcmp oge float %349, 0.000000e+00
  %351 = fneg float %349
  %352 = select i1 %350, float %349, float %351
  %353 = call <2 x float> @Cf(ptr noundef nonnull %gep1132)
  %.sroa.010.4.vec.extract = extractelement <2 x float> %353, i64 1
  %354 = fcmp oge float %.sroa.010.4.vec.extract, 0.000000e+00
  %355 = fneg float %.sroa.010.4.vec.extract
  %356 = select i1 %354, float %.sroa.010.4.vec.extract, float %355
  %357 = fadd float %352, %356
  %358 = call float @llvm.fmuladd.f32(float %348, float %357, float %.1769888)
  %indvars.iv.next1038 = add nuw nsw i64 %indvars.iv1037, 1
  %359 = icmp ult i64 %indvars.iv.next1038, %indvars.iv1040
  br i1 %359, label %333, label %._crit_edge892, !llvm.loop !32

._crit_edge892:                                   ; preds = %333, %.lr.ph897
  %.1769.lcssa = phi float [ %326, %.lr.ph897 ], [ %358, %333 ]
  %360 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1040
  %361 = load float, ptr %360, align 4, !tbaa !9
  %362 = fadd float %.1769.lcssa, %361
  store float %362, ptr %360, align 4, !tbaa !9
  %indvars.iv.next1041 = add nuw nsw i64 %indvars.iv1040, 1
  %exitcond1044.not = icmp eq i64 %indvars.iv.next1041, %wide.trip.count1043
  br i1 %exitcond1044.not, label %.loopexit830, label %.lr.ph897, !llvm.loop !33

363:                                              ; preds = %278
  br i1 %.not785, label %400, label %364

364:                                              ; preds = %363
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph908.preheader

.lr.ph908.preheader:                              ; preds = %364
  %365 = add nuw i32 %126, 1
  %wide.trip.count1051 = zext i32 %365 to i64
  %invariant.gep1135 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph908

.lr.ph908:                                        ; preds = %.lr.ph908.preheader, %._crit_edge903
  %indvars.iv1045 = phi i64 [ 1, %.lr.ph908.preheader ], [ %indvars.iv.next1046, %._crit_edge903 ]
  %366 = load i32, ptr %3, align 4, !tbaa !5
  %367 = load i32, ptr %4, align 4, !tbaa !5
  %368 = trunc nuw nsw i64 %indvars.iv1045 to i32
  %369 = add nsw i32 %367, %368
  %370 = call i32 @llvm.smin.i32(i32 %366, i32 %369)
  %371 = sext i32 %370 to i64
  %.not800898 = icmp sgt i64 %indvars.iv1045, %371
  br i1 %.not800898, label %._crit_edge903, label %.lr.ph902

.lr.ph902:                                        ; preds = %.lr.ph908
  %372 = mul i32 %.6766906973, %368
  br label %373

373:                                              ; preds = %.lr.ph902, %373
  %indvars.iv1047 = phi i64 [ %indvars.iv1045, %.lr.ph902 ], [ %indvars.iv.next1048, %373 ]
  %.2770899 = phi float [ 0.000000e+00, %.lr.ph902 ], [ %396, %373 ]
  %indvars.iv.next1048 = add nuw nsw i64 %indvars.iv1047, 1
  %374 = trunc nsw i64 %indvars.iv.next1048 to i32
  %375 = add i32 %372, %374
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds %struct.complex, ptr %28, i64 %376
  %378 = load float, ptr %377, align 4, !tbaa !19
  %379 = fcmp oge float %378, 0.000000e+00
  %380 = fneg float %378
  %381 = select i1 %379, float %378, float %380
  %382 = call <2 x float> @Cf(ptr noundef nonnull %377)
  %.sroa.09.4.vec.extract = extractelement <2 x float> %382, i64 1
  %383 = fcmp oge float %.sroa.09.4.vec.extract, 0.000000e+00
  %384 = fneg float %.sroa.09.4.vec.extract
  %385 = select i1 %383, float %.sroa.09.4.vec.extract, float %384
  %386 = fadd float %381, %385
  %gep1136 = getelementptr %struct.complex, ptr %invariant.gep1135, i64 %indvars.iv1047
  %387 = load float, ptr %gep1136, align 4, !tbaa !19
  %388 = fcmp oge float %387, 0.000000e+00
  %389 = fneg float %387
  %390 = select i1 %388, float %387, float %389
  %391 = call <2 x float> @Cf(ptr noundef nonnull %gep1136)
  %.sroa.08.4.vec.extract = extractelement <2 x float> %391, i64 1
  %392 = fcmp oge float %.sroa.08.4.vec.extract, 0.000000e+00
  %393 = fneg float %.sroa.08.4.vec.extract
  %394 = select i1 %392, float %.sroa.08.4.vec.extract, float %393
  %395 = fadd float %390, %394
  %396 = call float @llvm.fmuladd.f32(float %386, float %395, float %.2770899)
  %.not800.not = icmp slt i64 %indvars.iv1047, %371
  br i1 %.not800.not, label %373, label %._crit_edge903, !llvm.loop !34

._crit_edge903:                                   ; preds = %373, %.lr.ph908
  %.2770.lcssa = phi float [ 0.000000e+00, %.lr.ph908 ], [ %396, %373 ]
  %397 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1045
  %398 = load float, ptr %397, align 4, !tbaa !9
  %399 = fadd float %.2770.lcssa, %398
  store float %399, ptr %397, align 4, !tbaa !9
  %indvars.iv.next1046 = add nuw nsw i64 %indvars.iv1045, 1
  %exitcond1052.not = icmp eq i64 %indvars.iv.next1046, %wide.trip.count1051
  br i1 %exitcond1052.not, label %.loopexit830, label %.lr.ph908, !llvm.loop !35

400:                                              ; preds = %363
  br i1 %.not795916, label %._crit_edge925.thread, label %.lr.ph919.preheader

.lr.ph919.preheader:                              ; preds = %400
  %401 = add nuw i32 %126, 1
  %wide.trip.count1061 = zext i32 %401 to i64
  %invariant.gep1139 = getelementptr %struct.complex, ptr %34, i64 %112
  %invariant.gep1137 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph919

.lr.ph919:                                        ; preds = %.lr.ph919.preheader, %._crit_edge914
  %indvars.iv1058 = phi i64 [ 1, %.lr.ph919.preheader ], [ %indvars.iv.next1059, %._crit_edge914 ]
  %indvars.iv1053 = phi i32 [ 2, %.lr.ph919.preheader ], [ %indvars.iv.next1054, %._crit_edge914 ]
  %gep1140 = getelementptr %struct.complex, ptr %invariant.gep1139, i64 %indvars.iv1058
  %402 = load float, ptr %gep1140, align 4, !tbaa !19
  %403 = fcmp oge float %402, 0.000000e+00
  %404 = fneg float %402
  %405 = select i1 %403, float %402, float %404
  %406 = call <2 x float> @Cf(ptr noundef nonnull %gep1140)
  %.sroa.07.4.vec.extract = extractelement <2 x float> %406, i64 1
  %407 = fcmp oge float %.sroa.07.4.vec.extract, 0.000000e+00
  %408 = fneg float %.sroa.07.4.vec.extract
  %409 = select i1 %407, float %.sroa.07.4.vec.extract, float %408
  %410 = fadd float %405, %409
  %411 = load i32, ptr %3, align 4, !tbaa !5
  %412 = load i32, ptr %4, align 4, !tbaa !5
  %413 = trunc nuw nsw i64 %indvars.iv1058 to i32
  %414 = add nsw i32 %412, %413
  %415 = call i32 @llvm.smin.i32(i32 %411, i32 %414)
  %indvars.iv.next1059 = add nuw nsw i64 %indvars.iv1058, 1
  %416 = sext i32 %415 to i64
  %.not797909.not = icmp slt i64 %indvars.iv1058, %416
  br i1 %.not797909.not, label %.lr.ph913, label %._crit_edge914

.lr.ph913:                                        ; preds = %.lr.ph919
  %417 = sext i32 %indvars.iv1053 to i64
  %418 = mul i32 %.7767917974, %413
  br label %419

419:                                              ; preds = %.lr.ph913, %419
  %indvars.iv1055 = phi i64 [ %417, %.lr.ph913 ], [ %indvars.iv.next1056, %419 ]
  %.3771910 = phi float [ %410, %.lr.ph913 ], [ %442, %419 ]
  %indvars.iv.next1056 = add nuw nsw i64 %indvars.iv1055, 1
  %420 = trunc nsw i64 %indvars.iv.next1056 to i32
  %421 = add i32 %418, %420
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds %struct.complex, ptr %28, i64 %422
  %424 = load float, ptr %423, align 4, !tbaa !19
  %425 = fcmp oge float %424, 0.000000e+00
  %426 = fneg float %424
  %427 = select i1 %425, float %424, float %426
  %428 = call <2 x float> @Cf(ptr noundef nonnull %423)
  %.sroa.06.4.vec.extract = extractelement <2 x float> %428, i64 1
  %429 = fcmp oge float %.sroa.06.4.vec.extract, 0.000000e+00
  %430 = fneg float %.sroa.06.4.vec.extract
  %431 = select i1 %429, float %.sroa.06.4.vec.extract, float %430
  %432 = fadd float %427, %431
  %gep1138 = getelementptr %struct.complex, ptr %invariant.gep1137, i64 %indvars.iv1055
  %433 = load float, ptr %gep1138, align 4, !tbaa !19
  %434 = fcmp oge float %433, 0.000000e+00
  %435 = fneg float %433
  %436 = select i1 %434, float %433, float %435
  %437 = call <2 x float> @Cf(ptr noundef nonnull %gep1138)
  %.sroa.05.4.vec.extract = extractelement <2 x float> %437, i64 1
  %438 = fcmp oge float %.sroa.05.4.vec.extract, 0.000000e+00
  %439 = fneg float %.sroa.05.4.vec.extract
  %440 = select i1 %438, float %.sroa.05.4.vec.extract, float %439
  %441 = fadd float %436, %440
  %442 = call float @llvm.fmuladd.f32(float %432, float %441, float %.3771910)
  %.not797.not = icmp slt i64 %indvars.iv1055, %416
  br i1 %.not797.not, label %419, label %._crit_edge914, !llvm.loop !36

._crit_edge914:                                   ; preds = %419, %.lr.ph919
  %.3771.lcssa = phi float [ %410, %.lr.ph919 ], [ %442, %419 ]
  %443 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1058
  %444 = load float, ptr %443, align 4, !tbaa !9
  %445 = fadd float %.3771.lcssa, %444
  store float %445, ptr %443, align 4, !tbaa !9
  %indvars.iv.next1054 = add nuw i32 %indvars.iv1053, 1
  %exitcond1062.not = icmp eq i64 %indvars.iv.next1059, %wide.trip.count1061
  br i1 %exitcond1062.not, label %.loopexit830, label %.lr.ph919, !llvm.loop !37

.loopexit830:                                     ; preds = %._crit_edge845, %._crit_edge854, %._crit_edge863, %._crit_edge872, %._crit_edge882, %._crit_edge892, %._crit_edge903, %._crit_edge914
  %.pr1098 = load i32, ptr %3, align 4, !tbaa !5
  %.not817920 = icmp slt i32 %.pr1098, 1
  br i1 %.not817920, label %._crit_edge925.thread, label %.lr.ph924.preheader

.lr.ph924.preheader:                              ; preds = %.loopexit830
  %446 = add nuw i32 %.pr1098, 1
  %wide.trip.count1066 = zext i32 %446 to i64
  br label %.lr.ph924

.lr.ph924:                                        ; preds = %.lr.ph924.preheader, %468
  %indvars.iv1063 = phi i64 [ 1, %.lr.ph924.preheader ], [ %indvars.iv.next1064, %468 ]
  %.4772921 = phi float [ 0.000000e+00, %.lr.ph924.preheader ], [ %470, %468 ]
  %447 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1063
  %448 = load float, ptr %447, align 4, !tbaa !9
  %449 = fcmp ogt float %448, %105
  %450 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv1063
  %451 = load float, ptr %450, align 4, !tbaa !19
  %452 = fcmp oge float %451, 0.000000e+00
  %453 = fneg float %451
  %454 = select i1 %452, float %451, float %453
  %455 = call <2 x float> @Cf(ptr noundef nonnull %450)
  %.sroa.04.4.vec.extract = extractelement <2 x float> %455, i64 1
  %456 = fcmp oge float %.sroa.04.4.vec.extract, 0.000000e+00
  %457 = fneg float %.sroa.04.4.vec.extract
  %458 = select i1 %456, float %.sroa.04.4.vec.extract, float %457
  %459 = fadd float %454, %458
  br i1 %449, label %460, label %463

460:                                              ; preds = %.lr.ph924
  %461 = load float, ptr %447, align 4, !tbaa !9
  %462 = fdiv float %459, %461
  br label %468

463:                                              ; preds = %.lr.ph924
  %464 = fadd float %104, %459
  %465 = load float, ptr %447, align 4, !tbaa !9
  %466 = fadd float %104, %465
  %467 = fdiv float %464, %466
  br label %468

468:                                              ; preds = %460, %463
  %.sink1145 = phi float [ %462, %460 ], [ %467, %463 ]
  %469 = fcmp oge float %.4772921, %.sink1145
  %470 = select i1 %469, float %.4772921, float %.sink1145
  %indvars.iv.next1064 = add nuw nsw i64 %indvars.iv1063, 1
  %exitcond1067.not = icmp eq i64 %indvars.iv.next1064, %wide.trip.count1066
  br i1 %exitcond1067.not, label %._crit_edge925, label %.lr.ph924, !llvm.loop !38

._crit_edge925.thread:                            ; preds = %.loopexit830, %129, %164, %204, %239, %280, %316, %364, %400
  %471 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1088
  store float 0.000000e+00, ptr %471, align 4, !tbaa !9
  br label %._crit_edge931

._crit_edge925:                                   ; preds = %468
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %472 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1088
  store float %470, ptr %472, align 4, !tbaa !9
  %.not818927 = icmp slt i32 %.pre, 1
  br i1 %.not818927, label %._crit_edge931, label %.lr.ph930.preheader

.lr.ph930.preheader:                              ; preds = %._crit_edge925
  %473 = add nuw i32 %.pre, 1
  %wide.trip.count1071 = zext i32 %473 to i64
  br label %.lr.ph930

.lr.ph930:                                        ; preds = %.lr.ph930.preheader, %.lr.ph930
  %indvars.iv1068 = phi i64 [ 1, %.lr.ph930.preheader ], [ %indvars.iv.next1069, %.lr.ph930 ]
  %474 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1068
  %475 = load float, ptr %474, align 4, !tbaa !9
  %476 = fcmp ogt float %475, %105
  %477 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv1068
  %478 = load float, ptr %477, align 4, !tbaa !19
  %479 = fcmp oge float %478, 0.000000e+00
  %480 = fneg float %478
  %481 = select i1 %479, float %478, float %480
  %482 = call <2 x float> @Cf(ptr noundef nonnull %477)
  %.sroa.02.4.vec.extract = extractelement <2 x float> %482, i64 1
  %483 = fcmp oge float %.sroa.02.4.vec.extract, 0.000000e+00
  %484 = fneg float %.sroa.02.4.vec.extract
  %485 = select i1 %483, float %.sroa.02.4.vec.extract, float %484
  %486 = fadd float %481, %485
  %487 = load float, ptr %474, align 4, !tbaa !9
  %488 = call float @llvm.fmuladd.f32(float %107, float %487, float %486)
  %489 = fadd float %104, %488
  %storemerge823 = select i1 %476, float %488, float %489
  store float %storemerge823, ptr %474, align 4, !tbaa !9
  %indvars.iv.next1069 = add nuw nsw i64 %indvars.iv1068, 1
  %exitcond1072.not = icmp eq i64 %indvars.iv.next1069, %wide.trip.count1071
  br i1 %exitcond1072.not, label %._crit_edge931, label %.lr.ph930, !llvm.loop !39

._crit_edge931:                                   ; preds = %.lr.ph930, %._crit_edge925.thread, %._crit_edge925
  store i32 0, ptr %22, align 4, !tbaa !5
  %490 = getelementptr inbounds float, ptr %35, i64 %indvars.iv1088
  br label %.loopexit829

.loopexit829:                                     ; preds = %.loopexit829.backedge, %._crit_edge931
  %491 = load i32, ptr %3, align 4, !tbaa !5
  %492 = sext i32 %491 to i64
  %gep = getelementptr %struct.complex, ptr %14, i64 %492
  call void @clacn2_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef %14, ptr noundef nonnull %490, ptr noundef nonnull %22, ptr noundef nonnull %23) #6
  %493 = load i32, ptr %22, align 4, !tbaa !5
  switch i32 %493, label %530 [
    i32 0, label %569
    i32 1, label %494
  ]

494:                                              ; preds = %.loopexit829
  call void @ctbsv_(ptr noundef %0, ptr noundef nonnull %25, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %14, ptr noundef nonnull @c__1) #6
  %495 = load i32, ptr %3, align 4, !tbaa !5
  %.not822932 = icmp slt i32 %495, 1
  br i1 %.not822932, label %.loopexit829.backedge, label %.lr.ph935.preheader

.loopexit829.backedge:                            ; preds = %494, %..loopexit829_crit_edge, %567
  br label %.loopexit829

.lr.ph935.preheader:                              ; preds = %494
  %496 = add nuw i32 %495, 1
  %wide.trip.count1076 = zext i32 %496 to i64
  %497 = zext nneg i32 %495 to i64
  %min.iters.check1177 = icmp eq i32 %495, 1
  br i1 %min.iters.check1177, label %.lr.ph935.preheader1209, label %vector.memcheck1167

vector.memcheck1167:                              ; preds = %.lr.ph935.preheader
  %498 = shl nuw nsw i64 %wide.trip.count1076, 3
  %scevgep1169 = getelementptr i8, ptr %scevgep1168, i64 %498
  %499 = shl nuw nsw i64 %wide.trip.count1076, 2
  %scevgep1171 = getelementptr i8, ptr %scevgep1170, i64 %499
  %bound01172 = icmp ugt ptr %scevgep1171, %14
  %bound11173 = icmp ugt ptr %scevgep1169, %15
  %found.conflict1174 = and i1 %bound01172, %bound11173
  br i1 %found.conflict1174, label %.lr.ph935.preheader1209, label %vector.ph1178

vector.ph1178:                                    ; preds = %vector.memcheck1167
  %n.vec1180 = and i64 %497, 2147483646
  %ind.end1181 = or i64 %497, 1
  br label %vector.body1183

vector.body1183:                                  ; preds = %vector.body1183, %vector.ph1178
  %index1184 = phi i64 [ 0, %vector.ph1178 ], [ %index.next1191, %vector.body1183 ]
  %500 = getelementptr float, ptr %15, i64 %index1184
  %wide.load1186 = load <2 x float>, ptr %500, align 4, !tbaa !9, !alias.scope !40
  %501 = getelementptr %struct.complex, ptr %14, i64 %index1184
  %wide.vec1187 = load <4 x float>, ptr %501, align 4, !tbaa !9
  %strided.vec1188 = shufflevector <4 x float> %wide.vec1187, <4 x float> poison, <2 x i32> <i32 0, i32 2>
  %strided.vec1189 = shufflevector <4 x float> %wide.vec1187, <4 x float> poison, <2 x i32> <i32 1, i32 3>
  %502 = fmul <2 x float> %wide.load1186, %strided.vec1188
  %503 = fmul <2 x float> %wide.load1186, %strided.vec1189
  %interleaved.vec1190 = shufflevector <2 x float> %502, <2 x float> %503, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1190, ptr %501, align 4, !tbaa !9
  %index.next1191 = add nuw i64 %index1184, 2
  %504 = icmp eq i64 %index.next1191, %n.vec1180
  br i1 %504, label %middle.block1175, label %vector.body1183, !llvm.loop !43

middle.block1175:                                 ; preds = %vector.body1183
  %cmp.n1192 = icmp eq i64 %n.vec1180, %497
  %505 = shufflevector <2 x float> %502, <2 x float> %503, <2 x i32> <i32 1, i32 3>
  br i1 %cmp.n1192, label %..loopexit829_crit_edge, label %.lr.ph935.preheader1209

.lr.ph935.preheader1209:                          ; preds = %middle.block1175, %vector.memcheck1167, %.lr.ph935.preheader
  %indvars.iv1073.ph = phi i64 [ 1, %vector.memcheck1167 ], [ 1, %.lr.ph935.preheader ], [ %ind.end1181, %middle.block1175 ]
  %506 = zext nneg i32 %495 to i64
  %507 = and i32 %495, 1
  %lcmp.mod.not = icmp eq i32 %507, 0
  br i1 %lcmp.mod.not, label %.lr.ph935.prol.loopexit, label %.lr.ph935.prol

.lr.ph935.prol:                                   ; preds = %.lr.ph935.preheader1209
  %508 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1073.ph
  %509 = load float, ptr %508, align 4, !tbaa !9
  %510 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv1073.ph
  %511 = load <2 x float>, ptr %510, align 4, !tbaa !9
  %512 = insertelement <2 x float> poison, float %509, i64 0
  %513 = shufflevector <2 x float> %512, <2 x float> poison, <2 x i32> zeroinitializer
  %514 = fmul <2 x float> %513, %511
  store <2 x float> %514, ptr %510, align 4, !tbaa !9
  %indvars.iv.next1074.prol = add nuw nsw i64 %indvars.iv1073.ph, 1
  br label %.lr.ph935.prol.loopexit

.lr.ph935.prol.loopexit:                          ; preds = %.lr.ph935.prol, %.lr.ph935.preheader1209
  %.lcssa1224.unr = phi <2 x float> [ poison, %.lr.ph935.preheader1209 ], [ %514, %.lr.ph935.prol ]
  %indvars.iv1073.unr = phi i64 [ %indvars.iv1073.ph, %.lr.ph935.preheader1209 ], [ %indvars.iv.next1074.prol, %.lr.ph935.prol ]
  %515 = icmp eq i64 %indvars.iv1073.ph, %506
  br i1 %515, label %..loopexit829_crit_edge, label %.lr.ph935

.lr.ph935:                                        ; preds = %.lr.ph935.prol.loopexit, %.lr.ph935
  %indvars.iv1073 = phi i64 [ %indvars.iv.next1074.1, %.lr.ph935 ], [ %indvars.iv1073.unr, %.lr.ph935.prol.loopexit ]
  %516 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1073
  %517 = load float, ptr %516, align 4, !tbaa !9
  %518 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv1073
  %519 = load <2 x float>, ptr %518, align 4, !tbaa !9
  %520 = insertelement <2 x float> poison, float %517, i64 0
  %521 = shufflevector <2 x float> %520, <2 x float> poison, <2 x i32> zeroinitializer
  %522 = fmul <2 x float> %521, %519
  store <2 x float> %522, ptr %518, align 4, !tbaa !9
  %523 = getelementptr float, ptr %15, i64 %indvars.iv1073
  %524 = load float, ptr %523, align 4, !tbaa !9
  %525 = getelementptr %struct.complex, ptr %14, i64 %indvars.iv1073
  %526 = load <2 x float>, ptr %525, align 4, !tbaa !9
  %527 = insertelement <2 x float> poison, float %524, i64 0
  %528 = shufflevector <2 x float> %527, <2 x float> poison, <2 x i32> zeroinitializer
  %529 = fmul <2 x float> %528, %526
  store <2 x float> %529, ptr %525, align 4, !tbaa !9
  %indvars.iv.next1074.1 = add nuw nsw i64 %indvars.iv1073, 2
  %exitcond1077.not.1 = icmp eq i64 %indvars.iv.next1074.1, %wide.trip.count1076
  br i1 %exitcond1077.not.1, label %..loopexit829_crit_edge, label %.lr.ph935, !llvm.loop !44

530:                                              ; preds = %.loopexit829
  %531 = load i32, ptr %3, align 4, !tbaa !5
  %.not821938 = icmp slt i32 %531, 1
  br i1 %.not821938, label %567, label %.lr.ph941.preheader

.lr.ph941.preheader:                              ; preds = %530
  %532 = add nuw i32 %531, 1
  %wide.trip.count1081 = zext i32 %532 to i64
  %533 = zext nneg i32 %531 to i64
  %min.iters.check = icmp eq i32 %531, 1
  br i1 %min.iters.check, label %.lr.ph941.preheader1208, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph941.preheader
  %534 = shl nuw nsw i64 %wide.trip.count1081, 3
  %scevgep1163 = getelementptr i8, ptr %scevgep, i64 %534
  %535 = shl nuw nsw i64 %wide.trip.count1081, 2
  %scevgep1165 = getelementptr i8, ptr %scevgep1164, i64 %535
  %bound0 = icmp ugt ptr %scevgep1165, %14
  %bound1 = icmp ugt ptr %scevgep1163, %15
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph941.preheader1208, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %533, 2147483646
  %ind.end = or i64 %533, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %536 = getelementptr float, ptr %15, i64 %index
  %wide.load = load <2 x float>, ptr %536, align 4, !tbaa !9, !alias.scope !45
  %537 = getelementptr %struct.complex, ptr %14, i64 %index
  %wide.vec = load <4 x float>, ptr %537, align 4, !tbaa !9
  %strided.vec = shufflevector <4 x float> %wide.vec, <4 x float> poison, <2 x i32> <i32 0, i32 2>
  %strided.vec1166 = shufflevector <4 x float> %wide.vec, <4 x float> poison, <2 x i32> <i32 1, i32 3>
  %538 = fmul <2 x float> %wide.load, %strided.vec
  %539 = fmul <2 x float> %wide.load, %strided.vec1166
  %interleaved.vec = shufflevector <2 x float> %538, <2 x float> %539, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec, ptr %537, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 2
  %540 = icmp eq i64 %index.next, %n.vec
  br i1 %540, label %middle.block, label %vector.body, !llvm.loop !48

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %533
  %541 = shufflevector <2 x float> %538, <2 x float> %539, <2 x i32> <i32 1, i32 3>
  br i1 %cmp.n, label %._crit_edge942, label %.lr.ph941.preheader1208

.lr.ph941.preheader1208:                          ; preds = %middle.block, %vector.memcheck, %.lr.ph941.preheader
  %indvars.iv1078.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph941.preheader ], [ %ind.end, %middle.block ]
  %542 = zext nneg i32 %531 to i64
  %543 = and i32 %531, 1
  %lcmp.mod1230.not = icmp eq i32 %543, 0
  br i1 %lcmp.mod1230.not, label %.lr.ph941.prol.loopexit, label %.lr.ph941.prol

.lr.ph941.prol:                                   ; preds = %.lr.ph941.preheader1208
  %544 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1078.ph
  %545 = load float, ptr %544, align 4, !tbaa !9
  %546 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv1078.ph
  %547 = load <2 x float>, ptr %546, align 4, !tbaa !9
  %548 = insertelement <2 x float> poison, float %545, i64 0
  %549 = shufflevector <2 x float> %548, <2 x float> poison, <2 x i32> zeroinitializer
  %550 = fmul <2 x float> %549, %547
  store <2 x float> %550, ptr %546, align 4, !tbaa !9
  %indvars.iv.next1079.prol = add nuw nsw i64 %indvars.iv1078.ph, 1
  br label %.lr.ph941.prol.loopexit

.lr.ph941.prol.loopexit:                          ; preds = %.lr.ph941.prol, %.lr.ph941.preheader1208
  %.lcssa1227.unr = phi <2 x float> [ poison, %.lr.ph941.preheader1208 ], [ %550, %.lr.ph941.prol ]
  %indvars.iv1078.unr = phi i64 [ %indvars.iv1078.ph, %.lr.ph941.preheader1208 ], [ %indvars.iv.next1079.prol, %.lr.ph941.prol ]
  %551 = icmp eq i64 %indvars.iv1078.ph, %542
  br i1 %551, label %._crit_edge942, label %.lr.ph941

.lr.ph941:                                        ; preds = %.lr.ph941.prol.loopexit, %.lr.ph941
  %indvars.iv1078 = phi i64 [ %indvars.iv.next1079.1, %.lr.ph941 ], [ %indvars.iv1078.unr, %.lr.ph941.prol.loopexit ]
  %552 = getelementptr inbounds float, ptr %38, i64 %indvars.iv1078
  %553 = load float, ptr %552, align 4, !tbaa !9
  %554 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv1078
  %555 = load <2 x float>, ptr %554, align 4, !tbaa !9
  %556 = insertelement <2 x float> poison, float %553, i64 0
  %557 = shufflevector <2 x float> %556, <2 x float> poison, <2 x i32> zeroinitializer
  %558 = fmul <2 x float> %557, %555
  store <2 x float> %558, ptr %554, align 4, !tbaa !9
  %559 = getelementptr float, ptr %15, i64 %indvars.iv1078
  %560 = load float, ptr %559, align 4, !tbaa !9
  %561 = getelementptr %struct.complex, ptr %14, i64 %indvars.iv1078
  %562 = load <2 x float>, ptr %561, align 4, !tbaa !9
  %563 = insertelement <2 x float> poison, float %560, i64 0
  %564 = shufflevector <2 x float> %563, <2 x float> poison, <2 x i32> zeroinitializer
  %565 = fmul <2 x float> %564, %562
  store <2 x float> %565, ptr %561, align 4, !tbaa !9
  %indvars.iv.next1079.1 = add nuw nsw i64 %indvars.iv1078, 2
  %exitcond1082.not.1 = icmp eq i64 %indvars.iv.next1079.1, %wide.trip.count1081
  br i1 %exitcond1082.not.1, label %._crit_edge942, label %.lr.ph941, !llvm.loop !49

._crit_edge942:                                   ; preds = %.lr.ph941.prol.loopexit, %.lr.ph941, %middle.block
  %566 = phi <2 x float> [ %541, %middle.block ], [ %.lcssa1227.unr, %.lr.ph941.prol.loopexit ], [ %565, %.lr.ph941 ]
  store <2 x float> %566, ptr %21, align 8, !tbaa !9
  br label %567

567:                                              ; preds = %._crit_edge942, %530
  call void @ctbsv_(ptr noundef %0, ptr noundef nonnull %24, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %14, ptr noundef nonnull @c__1) #6
  br label %.loopexit829.backedge

..loopexit829_crit_edge:                          ; preds = %.lr.ph935.prol.loopexit, %.lr.ph935, %middle.block1175
  %568 = phi <2 x float> [ %505, %middle.block1175 ], [ %.lcssa1224.unr, %.lr.ph935.prol.loopexit ], [ %529, %.lr.ph935 ]
  store <2 x float> %568, ptr %21, align 8, !tbaa !9
  br label %.loopexit829.backedge

569:                                              ; preds = %.loopexit829
  %570 = load i32, ptr %3, align 4, !tbaa !5
  %.not820945 = icmp slt i32 %570, 1
  br i1 %.not820945, label %._crit_edge950.thread, label %.lr.ph949.preheader

.lr.ph949.preheader:                              ; preds = %569
  %571 = add nuw i32 %570, 1
  %wide.trip.count1086 = zext i32 %571 to i64
  %invariant.gep1141 = getelementptr %struct.complex, ptr %34, i64 %112
  br label %.lr.ph949

.lr.ph949:                                        ; preds = %.lr.ph949.preheader, %.lr.ph949
  %indvars.iv1083 = phi i64 [ 1, %.lr.ph949.preheader ], [ %indvars.iv.next1084, %.lr.ph949 ]
  %.0774946 = phi float [ 0.000000e+00, %.lr.ph949.preheader ], [ %582, %.lr.ph949 ]
  %gep1142 = getelementptr %struct.complex, ptr %invariant.gep1141, i64 %indvars.iv1083
  %572 = load float, ptr %gep1142, align 4, !tbaa !19
  %573 = fcmp oge float %572, 0.000000e+00
  %574 = fneg float %572
  %575 = select i1 %573, float %572, float %574
  %576 = call <2 x float> @Cf(ptr noundef nonnull %gep1142)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %576, i64 1
  %577 = fcmp oge float %.sroa.0.4.vec.extract, 0.000000e+00
  %578 = fneg float %.sroa.0.4.vec.extract
  %579 = select i1 %577, float %.sroa.0.4.vec.extract, float %578
  %580 = fadd float %575, %579
  %581 = fcmp oge float %.0774946, %580
  %582 = select i1 %581, float %.0774946, float %580
  %indvars.iv.next1084 = add nuw nsw i64 %indvars.iv1083, 1
  %exitcond1087.not = icmp eq i64 %indvars.iv.next1084, %wide.trip.count1086
  br i1 %exitcond1087.not, label %._crit_edge950, label %.lr.ph949, !llvm.loop !50

._crit_edge950:                                   ; preds = %.lr.ph949
  %583 = fcmp une float %582, 0.000000e+00
  br i1 %583, label %584, label %._crit_edge950.thread

584:                                              ; preds = %._crit_edge950
  %585 = load float, ptr %490, align 4, !tbaa !9
  %586 = fdiv float %585, %582
  store float %586, ptr %490, align 4, !tbaa !9
  br label %._crit_edge950.thread

._crit_edge950.thread:                            ; preds = %569, %._crit_edge950, %584
  %indvars.iv.next1089 = add nuw nsw i64 %indvars.iv1088, 1
  %.not791.not = icmp ult i64 %indvars.iv1088, %110
  br i1 %.not791.not, label %111, label %.loopexit, !llvm.loop !51

.loopexit:                                        ; preds = %._crit_edge950.thread, %.lr.ph963.prol.loopexit, %.lr.ph963, %middle.block1194, %75, %99, %76, %.thread
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare void @ctbsv_(ptr noundef, ptr noundef, 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 willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

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

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

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

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 = { 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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12, !13, !14}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.unroll.disable"}
!17 = distinct !{!17, !12, !13}
!18 = !{!7, !7, i64 0}
!19 = !{!20, !10, i64 0}
!20 = !{!"", !10, i64 0, !10, i64 4}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}
!40 = !{!41}
!41 = distinct !{!41, !42}
!42 = distinct !{!42, !"LVerDomain"}
!43 = distinct !{!43, !12, !13, !14}
!44 = distinct !{!44, !12, !13}
!45 = !{!46}
!46 = distinct !{!46, !47}
!47 = distinct !{!47, !"LVerDomain"}
!48 = distinct !{!48, !12, !13, !14}
!49 = distinct !{!49, !12, !13}
!50 = distinct !{!50, !12}
!51 = distinct !{!51, !12}


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