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

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

%struct.complex = type { float, float }

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

; Function Attrs: nounwind uwtable
define dso_local float @clantb_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca float, align 4
  %30 = alloca [2 x float], align 4
  %31 = alloca float, align 4
  %32 = alloca [2 x float], align 4
  %33 = alloca { float, float }, align 4
  %34 = alloca { float, float }, align 4
  %35 = alloca { float, float }, align 4
  %36 = alloca { float, float }, align 4
  %37 = alloca { float, float }, align 4
  %38 = alloca { float, float }, align 4
  %39 = alloca { float, float }, align 4
  %40 = alloca { float, float }, align 4
  %41 = alloca { float, float }, align 4
  %42 = alloca { float, float }, align 4
  %43 = alloca { float, float }, align 4
  %44 = alloca { float, float }, align 4
  %45 = alloca { float, float }, align 4
  %46 = alloca { float, float }, align 4
  %47 = alloca { float, float }, align 4
  %48 = alloca { float, float }, align 4
  %49 = alloca { float, float }, align 4
  %50 = alloca { float, float }, align 4
  %51 = alloca { float, float }, align 4
  %52 = alloca { float, float }, align 4
  %53 = alloca { float, float }, align 4
  %54 = alloca { float, float }, align 4
  %55 = alloca { float, float }, align 4
  %56 = alloca { float, float }, align 4
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  store ptr %7, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %57 = load ptr, ptr %15, align 8, !tbaa !5
  %58 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %58, ptr %17, align 4, !tbaa !9
  %59 = load i32, ptr %17, align 4, !tbaa !9
  %60 = mul nsw i32 %59, 1
  %61 = add nsw i32 1, %60
  store i32 %61, ptr %18, align 4, !tbaa !9
  %62 = load i32, ptr %18, align 4, !tbaa !9
  %63 = load ptr, ptr %14, align 8, !tbaa !5
  %64 = sext i32 %62 to i64
  %65 = sub i64 0, %64
  %66 = getelementptr inbounds %struct.complex, ptr %63, i64 %65
  store ptr %66, ptr %14, align 8, !tbaa !5
  %67 = load ptr, ptr %16, align 8, !tbaa !5
  %68 = getelementptr inbounds float, ptr %67, i32 -1
  store ptr %68, ptr %16, align 8, !tbaa !5
  %69 = load ptr, ptr %12, align 8, !tbaa !5
  %70 = load i32, ptr %69, align 4, !tbaa !9
  %71 = icmp eq i32 %70, 0
  br i1 %71, label %72, label %73

72:                                               ; preds = %8
  store float 0.000000e+00, ptr %29, align 4, !tbaa !11
  br label %1193

73:                                               ; preds = %8
  %74 = load ptr, ptr %9, align 8, !tbaa !5
  %75 = call i32 @lsame_(ptr noundef %74, ptr noundef @.str)
  %76 = icmp ne i32 %75, 0
  br i1 %76, label %77, label %343

77:                                               ; preds = %73
  %78 = load ptr, ptr %11, align 8, !tbaa !5
  %79 = call i32 @lsame_(ptr noundef %78, ptr noundef @.str.1)
  %80 = icmp ne i32 %79, 0
  br i1 %80, label %81, label %211

81:                                               ; preds = %77
  store float 1.000000e+00, ptr %29, align 4, !tbaa !11
  %82 = load ptr, ptr %10, align 8, !tbaa !5
  %83 = call i32 @lsame_(ptr noundef %82, ptr noundef @.str.1)
  %84 = icmp ne i32 %83, 0
  br i1 %84, label %85, label %146

85:                                               ; preds = %81
  %86 = load ptr, ptr %12, align 8, !tbaa !5
  %87 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %87, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %88

88:                                               ; preds = %142, %85
  %89 = load i32, ptr %26, align 4, !tbaa !9
  %90 = load i32, ptr %19, align 4, !tbaa !9
  %91 = icmp sle i32 %89, %90
  br i1 %91, label %92, label %145

92:                                               ; preds = %88
  %93 = load ptr, ptr %13, align 8, !tbaa !5
  %94 = load i32, ptr %93, align 4, !tbaa !9
  %95 = add nsw i32 %94, 2
  %96 = load i32, ptr %26, align 4, !tbaa !9
  %97 = sub nsw i32 %95, %96
  store i32 %97, ptr %20, align 4, !tbaa !9
  %98 = load ptr, ptr %13, align 8, !tbaa !5
  %99 = load i32, ptr %98, align 4, !tbaa !9
  store i32 %99, ptr %21, align 4, !tbaa !9
  %100 = load i32, ptr %20, align 4, !tbaa !9
  %101 = icmp sge i32 %100, 1
  br i1 %101, label %102, label %104

102:                                              ; preds = %92
  %103 = load i32, ptr %20, align 4, !tbaa !9
  br label %105

104:                                              ; preds = %92
  br label %105

105:                                              ; preds = %104, %102
  %106 = phi i32 [ %103, %102 ], [ 1, %104 ]
  store i32 %106, ptr %25, align 4, !tbaa !9
  br label %107

107:                                              ; preds = %138, %105
  %108 = load i32, ptr %25, align 4, !tbaa !9
  %109 = load i32, ptr %21, align 4, !tbaa !9
  %110 = icmp sle i32 %108, %109
  br i1 %110, label %111, label %141

111:                                              ; preds = %107
  %112 = load ptr, ptr %14, align 8, !tbaa !5
  %113 = load i32, ptr %25, align 4, !tbaa !9
  %114 = load i32, ptr %26, align 4, !tbaa !9
  %115 = load i32, ptr %17, align 4, !tbaa !9
  %116 = mul nsw i32 %114, %115
  %117 = add nsw i32 %113, %116
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds %struct.complex, ptr %112, i64 %118
  %120 = call <2 x float> @Cf(ptr noundef %119)
  store <2 x float> %120, ptr %33, align 4
  %121 = getelementptr inbounds { float, float }, ptr %33, i32 0, i32 0
  %122 = load float, ptr %121, align 4
  %123 = getelementptr inbounds { float, float }, ptr %33, i32 0, i32 1
  %124 = load float, ptr %123, align 4
  %125 = getelementptr inbounds { float, float }, ptr %34, i32 0, i32 0
  %126 = getelementptr inbounds { float, float }, ptr %34, i32 0, i32 1
  store float %122, ptr %125, align 4
  store float %124, ptr %126, align 4
  %127 = load <2 x float>, ptr %34, align 4
  %128 = call float @cabsf(<2 x float> noundef %127) #5
  store float %128, ptr %31, align 4, !tbaa !11
  %129 = load float, ptr %29, align 4, !tbaa !11
  %130 = load float, ptr %31, align 4, !tbaa !11
  %131 = fcmp olt float %129, %130
  br i1 %131, label %135, label %132

132:                                              ; preds = %111
  %133 = call i32 @sisnan_(ptr noundef %31)
  %134 = icmp ne i32 %133, 0
  br i1 %134, label %135, label %137

135:                                              ; preds = %132, %111
  %136 = load float, ptr %31, align 4, !tbaa !11
  store float %136, ptr %29, align 4, !tbaa !11
  br label %137

137:                                              ; preds = %135, %132
  br label %138

138:                                              ; preds = %137
  %139 = load i32, ptr %25, align 4, !tbaa !9
  %140 = add nsw i32 %139, 1
  store i32 %140, ptr %25, align 4, !tbaa !9
  br label %107, !llvm.loop !13

141:                                              ; preds = %107
  br label %142

142:                                              ; preds = %141
  %143 = load i32, ptr %26, align 4, !tbaa !9
  %144 = add nsw i32 %143, 1
  store i32 %144, ptr %26, align 4, !tbaa !9
  br label %88, !llvm.loop !15

145:                                              ; preds = %88
  br label %210

146:                                              ; preds = %81
  %147 = load ptr, ptr %12, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  store i32 %148, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %149

149:                                              ; preds = %206, %146
  %150 = load i32, ptr %26, align 4, !tbaa !9
  %151 = load i32, ptr %19, align 4, !tbaa !9
  %152 = icmp sle i32 %150, %151
  br i1 %152, label %153, label %209

153:                                              ; preds = %149
  %154 = load ptr, ptr %12, align 8, !tbaa !5
  %155 = load i32, ptr %154, align 4, !tbaa !9
  %156 = add nsw i32 %155, 1
  %157 = load i32, ptr %26, align 4, !tbaa !9
  %158 = sub nsw i32 %156, %157
  store i32 %158, ptr %20, align 4, !tbaa !9
  %159 = load ptr, ptr %13, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  %161 = add nsw i32 %160, 1
  store i32 %161, ptr %22, align 4, !tbaa !9
  %162 = load i32, ptr %20, align 4, !tbaa !9
  %163 = load i32, ptr %22, align 4, !tbaa !9
  %164 = icmp sle i32 %162, %163
  br i1 %164, label %165, label %167

165:                                              ; preds = %153
  %166 = load i32, ptr %20, align 4, !tbaa !9
  br label %169

167:                                              ; preds = %153
  %168 = load i32, ptr %22, align 4, !tbaa !9
  br label %169

169:                                              ; preds = %167, %165
  %170 = phi i32 [ %166, %165 ], [ %168, %167 ]
  store i32 %170, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %25, align 4, !tbaa !9
  br label %171

171:                                              ; preds = %202, %169
  %172 = load i32, ptr %25, align 4, !tbaa !9
  %173 = load i32, ptr %21, align 4, !tbaa !9
  %174 = icmp sle i32 %172, %173
  br i1 %174, label %175, label %205

175:                                              ; preds = %171
  %176 = load ptr, ptr %14, align 8, !tbaa !5
  %177 = load i32, ptr %25, align 4, !tbaa !9
  %178 = load i32, ptr %26, align 4, !tbaa !9
  %179 = load i32, ptr %17, align 4, !tbaa !9
  %180 = mul nsw i32 %178, %179
  %181 = add nsw i32 %177, %180
  %182 = sext i32 %181 to i64
  %183 = getelementptr inbounds %struct.complex, ptr %176, i64 %182
  %184 = call <2 x float> @Cf(ptr noundef %183)
  store <2 x float> %184, ptr %35, align 4
  %185 = getelementptr inbounds { float, float }, ptr %35, i32 0, i32 0
  %186 = load float, ptr %185, align 4
  %187 = getelementptr inbounds { float, float }, ptr %35, i32 0, i32 1
  %188 = load float, ptr %187, align 4
  %189 = getelementptr inbounds { float, float }, ptr %36, i32 0, i32 0
  %190 = getelementptr inbounds { float, float }, ptr %36, i32 0, i32 1
  store float %186, ptr %189, align 4
  store float %188, ptr %190, align 4
  %191 = load <2 x float>, ptr %36, align 4
  %192 = call float @cabsf(<2 x float> noundef %191) #5
  store float %192, ptr %31, align 4, !tbaa !11
  %193 = load float, ptr %29, align 4, !tbaa !11
  %194 = load float, ptr %31, align 4, !tbaa !11
  %195 = fcmp olt float %193, %194
  br i1 %195, label %199, label %196

196:                                              ; preds = %175
  %197 = call i32 @sisnan_(ptr noundef %31)
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %199, label %201

199:                                              ; preds = %196, %175
  %200 = load float, ptr %31, align 4, !tbaa !11
  store float %200, ptr %29, align 4, !tbaa !11
  br label %201

201:                                              ; preds = %199, %196
  br label %202

202:                                              ; preds = %201
  %203 = load i32, ptr %25, align 4, !tbaa !9
  %204 = add nsw i32 %203, 1
  store i32 %204, ptr %25, align 4, !tbaa !9
  br label %171, !llvm.loop !16

205:                                              ; preds = %171
  br label %206

206:                                              ; preds = %205
  %207 = load i32, ptr %26, align 4, !tbaa !9
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr %26, align 4, !tbaa !9
  br label %149, !llvm.loop !17

209:                                              ; preds = %149
  br label %210

210:                                              ; preds = %209, %145
  br label %342

211:                                              ; preds = %77
  store float 0.000000e+00, ptr %29, align 4, !tbaa !11
  %212 = load ptr, ptr %10, align 8, !tbaa !5
  %213 = call i32 @lsame_(ptr noundef %212, ptr noundef @.str.1)
  %214 = icmp ne i32 %213, 0
  br i1 %214, label %215, label %277

215:                                              ; preds = %211
  %216 = load ptr, ptr %12, align 8, !tbaa !5
  %217 = load i32, ptr %216, align 4, !tbaa !9
  store i32 %217, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %218

218:                                              ; preds = %273, %215
  %219 = load i32, ptr %26, align 4, !tbaa !9
  %220 = load i32, ptr %19, align 4, !tbaa !9
  %221 = icmp sle i32 %219, %220
  br i1 %221, label %222, label %276

222:                                              ; preds = %218
  %223 = load ptr, ptr %13, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = add nsw i32 %224, 2
  %226 = load i32, ptr %26, align 4, !tbaa !9
  %227 = sub nsw i32 %225, %226
  store i32 %227, ptr %21, align 4, !tbaa !9
  %228 = load ptr, ptr %13, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr %20, align 4, !tbaa !9
  %231 = load i32, ptr %21, align 4, !tbaa !9
  %232 = icmp sge i32 %231, 1
  br i1 %232, label %233, label %235

233:                                              ; preds = %222
  %234 = load i32, ptr %21, align 4, !tbaa !9
  br label %236

235:                                              ; preds = %222
  br label %236

236:                                              ; preds = %235, %233
  %237 = phi i32 [ %234, %233 ], [ 1, %235 ]
  store i32 %237, ptr %25, align 4, !tbaa !9
  br label %238

238:                                              ; preds = %269, %236
  %239 = load i32, ptr %25, align 4, !tbaa !9
  %240 = load i32, ptr %20, align 4, !tbaa !9
  %241 = icmp sle i32 %239, %240
  br i1 %241, label %242, label %272

242:                                              ; preds = %238
  %243 = load ptr, ptr %14, align 8, !tbaa !5
  %244 = load i32, ptr %25, align 4, !tbaa !9
  %245 = load i32, ptr %26, align 4, !tbaa !9
  %246 = load i32, ptr %17, align 4, !tbaa !9
  %247 = mul nsw i32 %245, %246
  %248 = add nsw i32 %244, %247
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds %struct.complex, ptr %243, i64 %249
  %251 = call <2 x float> @Cf(ptr noundef %250)
  store <2 x float> %251, ptr %37, align 4
  %252 = getelementptr inbounds { float, float }, ptr %37, i32 0, i32 0
  %253 = load float, ptr %252, align 4
  %254 = getelementptr inbounds { float, float }, ptr %37, i32 0, i32 1
  %255 = load float, ptr %254, align 4
  %256 = getelementptr inbounds { float, float }, ptr %38, i32 0, i32 0
  %257 = getelementptr inbounds { float, float }, ptr %38, i32 0, i32 1
  store float %253, ptr %256, align 4
  store float %255, ptr %257, align 4
  %258 = load <2 x float>, ptr %38, align 4
  %259 = call float @cabsf(<2 x float> noundef %258) #5
  store float %259, ptr %31, align 4, !tbaa !11
  %260 = load float, ptr %29, align 4, !tbaa !11
  %261 = load float, ptr %31, align 4, !tbaa !11
  %262 = fcmp olt float %260, %261
  br i1 %262, label %266, label %263

263:                                              ; preds = %242
  %264 = call i32 @sisnan_(ptr noundef %31)
  %265 = icmp ne i32 %264, 0
  br i1 %265, label %266, label %268

266:                                              ; preds = %263, %242
  %267 = load float, ptr %31, align 4, !tbaa !11
  store float %267, ptr %29, align 4, !tbaa !11
  br label %268

268:                                              ; preds = %266, %263
  br label %269

269:                                              ; preds = %268
  %270 = load i32, ptr %25, align 4, !tbaa !9
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr %25, align 4, !tbaa !9
  br label %238, !llvm.loop !18

272:                                              ; preds = %238
  br label %273

273:                                              ; preds = %272
  %274 = load i32, ptr %26, align 4, !tbaa !9
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr %26, align 4, !tbaa !9
  br label %218, !llvm.loop !19

276:                                              ; preds = %218
  br label %341

277:                                              ; preds = %211
  %278 = load ptr, ptr %12, align 8, !tbaa !5
  %279 = load i32, ptr %278, align 4, !tbaa !9
  store i32 %279, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %337, %277
  %281 = load i32, ptr %26, align 4, !tbaa !9
  %282 = load i32, ptr %19, align 4, !tbaa !9
  %283 = icmp sle i32 %281, %282
  br i1 %283, label %284, label %340

284:                                              ; preds = %280
  %285 = load ptr, ptr %12, align 8, !tbaa !5
  %286 = load i32, ptr %285, align 4, !tbaa !9
  %287 = add nsw i32 %286, 1
  %288 = load i32, ptr %26, align 4, !tbaa !9
  %289 = sub nsw i32 %287, %288
  store i32 %289, ptr %21, align 4, !tbaa !9
  %290 = load ptr, ptr %13, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr %22, align 4, !tbaa !9
  %293 = load i32, ptr %21, align 4, !tbaa !9
  %294 = load i32, ptr %22, align 4, !tbaa !9
  %295 = icmp sle i32 %293, %294
  br i1 %295, label %296, label %298

296:                                              ; preds = %284
  %297 = load i32, ptr %21, align 4, !tbaa !9
  br label %300

298:                                              ; preds = %284
  %299 = load i32, ptr %22, align 4, !tbaa !9
  br label %300

300:                                              ; preds = %298, %296
  %301 = phi i32 [ %297, %296 ], [ %299, %298 ]
  store i32 %301, ptr %20, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %302

302:                                              ; preds = %333, %300
  %303 = load i32, ptr %25, align 4, !tbaa !9
  %304 = load i32, ptr %20, align 4, !tbaa !9
  %305 = icmp sle i32 %303, %304
  br i1 %305, label %306, label %336

306:                                              ; preds = %302
  %307 = load ptr, ptr %14, align 8, !tbaa !5
  %308 = load i32, ptr %25, align 4, !tbaa !9
  %309 = load i32, ptr %26, align 4, !tbaa !9
  %310 = load i32, ptr %17, align 4, !tbaa !9
  %311 = mul nsw i32 %309, %310
  %312 = add nsw i32 %308, %311
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds %struct.complex, ptr %307, i64 %313
  %315 = call <2 x float> @Cf(ptr noundef %314)
  store <2 x float> %315, ptr %39, align 4
  %316 = getelementptr inbounds { float, float }, ptr %39, i32 0, i32 0
  %317 = load float, ptr %316, align 4
  %318 = getelementptr inbounds { float, float }, ptr %39, i32 0, i32 1
  %319 = load float, ptr %318, align 4
  %320 = getelementptr inbounds { float, float }, ptr %40, i32 0, i32 0
  %321 = getelementptr inbounds { float, float }, ptr %40, i32 0, i32 1
  store float %317, ptr %320, align 4
  store float %319, ptr %321, align 4
  %322 = load <2 x float>, ptr %40, align 4
  %323 = call float @cabsf(<2 x float> noundef %322) #5
  store float %323, ptr %31, align 4, !tbaa !11
  %324 = load float, ptr %29, align 4, !tbaa !11
  %325 = load float, ptr %31, align 4, !tbaa !11
  %326 = fcmp olt float %324, %325
  br i1 %326, label %330, label %327

327:                                              ; preds = %306
  %328 = call i32 @sisnan_(ptr noundef %31)
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %330, label %332

330:                                              ; preds = %327, %306
  %331 = load float, ptr %31, align 4, !tbaa !11
  store float %331, ptr %29, align 4, !tbaa !11
  br label %332

332:                                              ; preds = %330, %327
  br label %333

333:                                              ; preds = %332
  %334 = load i32, ptr %25, align 4, !tbaa !9
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr %25, align 4, !tbaa !9
  br label %302, !llvm.loop !20

336:                                              ; preds = %302
  br label %337

337:                                              ; preds = %336
  %338 = load i32, ptr %26, align 4, !tbaa !9
  %339 = add nsw i32 %338, 1
  store i32 %339, ptr %26, align 4, !tbaa !9
  br label %280, !llvm.loop !21

340:                                              ; preds = %280
  br label %341

341:                                              ; preds = %340, %276
  br label %342

342:                                              ; preds = %341, %210
  br label %1192

343:                                              ; preds = %73
  %344 = load ptr, ptr %9, align 8, !tbaa !5
  %345 = call i32 @lsame_(ptr noundef %344, ptr noundef @.str.2)
  %346 = icmp ne i32 %345, 0
  br i1 %346, label %352, label %347

347:                                              ; preds = %343
  %348 = load ptr, ptr %9, align 8, !tbaa !5
  %349 = load i8, ptr %348, align 1, !tbaa !22
  %350 = zext i8 %349 to i32
  %351 = icmp eq i32 %350, 49
  br i1 %351, label %352, label %586

352:                                              ; preds = %347, %343
  store float 0.000000e+00, ptr %29, align 4, !tbaa !11
  %353 = load ptr, ptr %11, align 8, !tbaa !5
  %354 = call i32 @lsame_(ptr noundef %353, ptr noundef @.str.1)
  store i32 %354, ptr %28, align 4, !tbaa !9
  %355 = load ptr, ptr %10, align 8, !tbaa !5
  %356 = call i32 @lsame_(ptr noundef %355, ptr noundef @.str.1)
  %357 = icmp ne i32 %356, 0
  br i1 %357, label %358, label %469

358:                                              ; preds = %352
  %359 = load ptr, ptr %12, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  store i32 %360, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %465, %358
  %362 = load i32, ptr %26, align 4, !tbaa !9
  %363 = load i32, ptr %19, align 4, !tbaa !9
  %364 = icmp sle i32 %362, %363
  br i1 %364, label %365, label %468

365:                                              ; preds = %361
  %366 = load i32, ptr %28, align 4, !tbaa !9
  %367 = icmp ne i32 %366, 0
  br i1 %367, label %368, label %411

368:                                              ; preds = %365
  store float 1.000000e+00, ptr %31, align 4, !tbaa !11
  %369 = load ptr, ptr %13, align 8, !tbaa !5
  %370 = load i32, ptr %369, align 4, !tbaa !9
  %371 = add nsw i32 %370, 2
  %372 = load i32, ptr %26, align 4, !tbaa !9
  %373 = sub nsw i32 %371, %372
  store i32 %373, ptr %20, align 4, !tbaa !9
  %374 = load ptr, ptr %13, align 8, !tbaa !5
  %375 = load i32, ptr %374, align 4, !tbaa !9
  store i32 %375, ptr %21, align 4, !tbaa !9
  %376 = load i32, ptr %20, align 4, !tbaa !9
  %377 = icmp sge i32 %376, 1
  br i1 %377, label %378, label %380

378:                                              ; preds = %368
  %379 = load i32, ptr %20, align 4, !tbaa !9
  br label %381

380:                                              ; preds = %368
  br label %381

381:                                              ; preds = %380, %378
  %382 = phi i32 [ %379, %378 ], [ 1, %380 ]
  store i32 %382, ptr %25, align 4, !tbaa !9
  br label %383

383:                                              ; preds = %407, %381
  %384 = load i32, ptr %25, align 4, !tbaa !9
  %385 = load i32, ptr %21, align 4, !tbaa !9
  %386 = icmp sle i32 %384, %385
  br i1 %386, label %387, label %410

387:                                              ; preds = %383
  %388 = load ptr, ptr %14, align 8, !tbaa !5
  %389 = load i32, ptr %25, align 4, !tbaa !9
  %390 = load i32, ptr %26, align 4, !tbaa !9
  %391 = load i32, ptr %17, align 4, !tbaa !9
  %392 = mul nsw i32 %390, %391
  %393 = add nsw i32 %389, %392
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds %struct.complex, ptr %388, i64 %394
  %396 = call <2 x float> @Cf(ptr noundef %395)
  store <2 x float> %396, ptr %41, align 4
  %397 = getelementptr inbounds { float, float }, ptr %41, i32 0, i32 0
  %398 = load float, ptr %397, align 4
  %399 = getelementptr inbounds { float, float }, ptr %41, i32 0, i32 1
  %400 = load float, ptr %399, align 4
  %401 = getelementptr inbounds { float, float }, ptr %42, i32 0, i32 0
  %402 = getelementptr inbounds { float, float }, ptr %42, i32 0, i32 1
  store float %398, ptr %401, align 4
  store float %400, ptr %402, align 4
  %403 = load <2 x float>, ptr %42, align 4
  %404 = call float @cabsf(<2 x float> noundef %403) #5
  %405 = load float, ptr %31, align 4, !tbaa !11
  %406 = fadd float %405, %404
  store float %406, ptr %31, align 4, !tbaa !11
  br label %407

407:                                              ; preds = %387
  %408 = load i32, ptr %25, align 4, !tbaa !9
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %25, align 4, !tbaa !9
  br label %383, !llvm.loop !23

410:                                              ; preds = %383
  br label %455

411:                                              ; preds = %365
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  %412 = load ptr, ptr %13, align 8, !tbaa !5
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = add nsw i32 %413, 2
  %415 = load i32, ptr %26, align 4, !tbaa !9
  %416 = sub nsw i32 %414, %415
  store i32 %416, ptr %21, align 4, !tbaa !9
  %417 = load ptr, ptr %13, align 8, !tbaa !5
  %418 = load i32, ptr %417, align 4, !tbaa !9
  %419 = add nsw i32 %418, 1
  store i32 %419, ptr %20, align 4, !tbaa !9
  %420 = load i32, ptr %21, align 4, !tbaa !9
  %421 = icmp sge i32 %420, 1
  br i1 %421, label %422, label %424

422:                                              ; preds = %411
  %423 = load i32, ptr %21, align 4, !tbaa !9
  br label %425

424:                                              ; preds = %411
  br label %425

425:                                              ; preds = %424, %422
  %426 = phi i32 [ %423, %422 ], [ 1, %424 ]
  store i32 %426, ptr %25, align 4, !tbaa !9
  br label %427

427:                                              ; preds = %451, %425
  %428 = load i32, ptr %25, align 4, !tbaa !9
  %429 = load i32, ptr %20, align 4, !tbaa !9
  %430 = icmp sle i32 %428, %429
  br i1 %430, label %431, label %454

431:                                              ; preds = %427
  %432 = load ptr, ptr %14, align 8, !tbaa !5
  %433 = load i32, ptr %25, align 4, !tbaa !9
  %434 = load i32, ptr %26, align 4, !tbaa !9
  %435 = load i32, ptr %17, align 4, !tbaa !9
  %436 = mul nsw i32 %434, %435
  %437 = add nsw i32 %433, %436
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds %struct.complex, ptr %432, i64 %438
  %440 = call <2 x float> @Cf(ptr noundef %439)
  store <2 x float> %440, ptr %43, align 4
  %441 = getelementptr inbounds { float, float }, ptr %43, i32 0, i32 0
  %442 = load float, ptr %441, align 4
  %443 = getelementptr inbounds { float, float }, ptr %43, i32 0, i32 1
  %444 = load float, ptr %443, align 4
  %445 = getelementptr inbounds { float, float }, ptr %44, i32 0, i32 0
  %446 = getelementptr inbounds { float, float }, ptr %44, i32 0, i32 1
  store float %442, ptr %445, align 4
  store float %444, ptr %446, align 4
  %447 = load <2 x float>, ptr %44, align 4
  %448 = call float @cabsf(<2 x float> noundef %447) #5
  %449 = load float, ptr %31, align 4, !tbaa !11
  %450 = fadd float %449, %448
  store float %450, ptr %31, align 4, !tbaa !11
  br label %451

451:                                              ; preds = %431
  %452 = load i32, ptr %25, align 4, !tbaa !9
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr %25, align 4, !tbaa !9
  br label %427, !llvm.loop !24

454:                                              ; preds = %427
  br label %455

455:                                              ; preds = %454, %410
  %456 = load float, ptr %29, align 4, !tbaa !11
  %457 = load float, ptr %31, align 4, !tbaa !11
  %458 = fcmp olt float %456, %457
  br i1 %458, label %462, label %459

459:                                              ; preds = %455
  %460 = call i32 @sisnan_(ptr noundef %31)
  %461 = icmp ne i32 %460, 0
  br i1 %461, label %462, label %464

462:                                              ; preds = %459, %455
  %463 = load float, ptr %31, align 4, !tbaa !11
  store float %463, ptr %29, align 4, !tbaa !11
  br label %464

464:                                              ; preds = %462, %459
  br label %465

465:                                              ; preds = %464
  %466 = load i32, ptr %26, align 4, !tbaa !9
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr %26, align 4, !tbaa !9
  br label %361, !llvm.loop !25

468:                                              ; preds = %361
  br label %585

469:                                              ; preds = %352
  %470 = load ptr, ptr %12, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  store i32 %471, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %472

472:                                              ; preds = %581, %469
  %473 = load i32, ptr %26, align 4, !tbaa !9
  %474 = load i32, ptr %19, align 4, !tbaa !9
  %475 = icmp sle i32 %473, %474
  br i1 %475, label %476, label %584

476:                                              ; preds = %472
  %477 = load i32, ptr %28, align 4, !tbaa !9
  %478 = icmp ne i32 %477, 0
  br i1 %478, label %479, label %525

479:                                              ; preds = %476
  store float 1.000000e+00, ptr %31, align 4, !tbaa !11
  %480 = load ptr, ptr %12, align 8, !tbaa !5
  %481 = load i32, ptr %480, align 4, !tbaa !9
  %482 = add nsw i32 %481, 1
  %483 = load i32, ptr %26, align 4, !tbaa !9
  %484 = sub nsw i32 %482, %483
  store i32 %484, ptr %21, align 4, !tbaa !9
  %485 = load ptr, ptr %13, align 8, !tbaa !5
  %486 = load i32, ptr %485, align 4, !tbaa !9
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr %22, align 4, !tbaa !9
  %488 = load i32, ptr %21, align 4, !tbaa !9
  %489 = load i32, ptr %22, align 4, !tbaa !9
  %490 = icmp sle i32 %488, %489
  br i1 %490, label %491, label %493

491:                                              ; preds = %479
  %492 = load i32, ptr %21, align 4, !tbaa !9
  br label %495

493:                                              ; preds = %479
  %494 = load i32, ptr %22, align 4, !tbaa !9
  br label %495

495:                                              ; preds = %493, %491
  %496 = phi i32 [ %492, %491 ], [ %494, %493 ]
  store i32 %496, ptr %20, align 4, !tbaa !9
  store i32 2, ptr %25, align 4, !tbaa !9
  br label %497

497:                                              ; preds = %521, %495
  %498 = load i32, ptr %25, align 4, !tbaa !9
  %499 = load i32, ptr %20, align 4, !tbaa !9
  %500 = icmp sle i32 %498, %499
  br i1 %500, label %501, label %524

501:                                              ; preds = %497
  %502 = load ptr, ptr %14, align 8, !tbaa !5
  %503 = load i32, ptr %25, align 4, !tbaa !9
  %504 = load i32, ptr %26, align 4, !tbaa !9
  %505 = load i32, ptr %17, align 4, !tbaa !9
  %506 = mul nsw i32 %504, %505
  %507 = add nsw i32 %503, %506
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds %struct.complex, ptr %502, i64 %508
  %510 = call <2 x float> @Cf(ptr noundef %509)
  store <2 x float> %510, ptr %45, align 4
  %511 = getelementptr inbounds { float, float }, ptr %45, i32 0, i32 0
  %512 = load float, ptr %511, align 4
  %513 = getelementptr inbounds { float, float }, ptr %45, i32 0, i32 1
  %514 = load float, ptr %513, align 4
  %515 = getelementptr inbounds { float, float }, ptr %46, i32 0, i32 0
  %516 = getelementptr inbounds { float, float }, ptr %46, i32 0, i32 1
  store float %512, ptr %515, align 4
  store float %514, ptr %516, align 4
  %517 = load <2 x float>, ptr %46, align 4
  %518 = call float @cabsf(<2 x float> noundef %517) #5
  %519 = load float, ptr %31, align 4, !tbaa !11
  %520 = fadd float %519, %518
  store float %520, ptr %31, align 4, !tbaa !11
  br label %521

521:                                              ; preds = %501
  %522 = load i32, ptr %25, align 4, !tbaa !9
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr %25, align 4, !tbaa !9
  br label %497, !llvm.loop !26

524:                                              ; preds = %497
  br label %571

525:                                              ; preds = %476
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  %526 = load ptr, ptr %12, align 8, !tbaa !5
  %527 = load i32, ptr %526, align 4, !tbaa !9
  %528 = add nsw i32 %527, 1
  %529 = load i32, ptr %26, align 4, !tbaa !9
  %530 = sub nsw i32 %528, %529
  store i32 %530, ptr %21, align 4, !tbaa !9
  %531 = load ptr, ptr %13, align 8, !tbaa !5
  %532 = load i32, ptr %531, align 4, !tbaa !9
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr %22, align 4, !tbaa !9
  %534 = load i32, ptr %21, align 4, !tbaa !9
  %535 = load i32, ptr %22, align 4, !tbaa !9
  %536 = icmp sle i32 %534, %535
  br i1 %536, label %537, label %539

537:                                              ; preds = %525
  %538 = load i32, ptr %21, align 4, !tbaa !9
  br label %541

539:                                              ; preds = %525
  %540 = load i32, ptr %22, align 4, !tbaa !9
  br label %541

541:                                              ; preds = %539, %537
  %542 = phi i32 [ %538, %537 ], [ %540, %539 ]
  store i32 %542, ptr %20, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %543

543:                                              ; preds = %567, %541
  %544 = load i32, ptr %25, align 4, !tbaa !9
  %545 = load i32, ptr %20, align 4, !tbaa !9
  %546 = icmp sle i32 %544, %545
  br i1 %546, label %547, label %570

547:                                              ; preds = %543
  %548 = load ptr, ptr %14, align 8, !tbaa !5
  %549 = load i32, ptr %25, align 4, !tbaa !9
  %550 = load i32, ptr %26, align 4, !tbaa !9
  %551 = load i32, ptr %17, align 4, !tbaa !9
  %552 = mul nsw i32 %550, %551
  %553 = add nsw i32 %549, %552
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds %struct.complex, ptr %548, i64 %554
  %556 = call <2 x float> @Cf(ptr noundef %555)
  store <2 x float> %556, ptr %47, align 4
  %557 = getelementptr inbounds { float, float }, ptr %47, i32 0, i32 0
  %558 = load float, ptr %557, align 4
  %559 = getelementptr inbounds { float, float }, ptr %47, i32 0, i32 1
  %560 = load float, ptr %559, align 4
  %561 = getelementptr inbounds { float, float }, ptr %48, i32 0, i32 0
  %562 = getelementptr inbounds { float, float }, ptr %48, i32 0, i32 1
  store float %558, ptr %561, align 4
  store float %560, ptr %562, align 4
  %563 = load <2 x float>, ptr %48, align 4
  %564 = call float @cabsf(<2 x float> noundef %563) #5
  %565 = load float, ptr %31, align 4, !tbaa !11
  %566 = fadd float %565, %564
  store float %566, ptr %31, align 4, !tbaa !11
  br label %567

567:                                              ; preds = %547
  %568 = load i32, ptr %25, align 4, !tbaa !9
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr %25, align 4, !tbaa !9
  br label %543, !llvm.loop !27

570:                                              ; preds = %543
  br label %571

571:                                              ; preds = %570, %524
  %572 = load float, ptr %29, align 4, !tbaa !11
  %573 = load float, ptr %31, align 4, !tbaa !11
  %574 = fcmp olt float %572, %573
  br i1 %574, label %578, label %575

575:                                              ; preds = %571
  %576 = call i32 @sisnan_(ptr noundef %31)
  %577 = icmp ne i32 %576, 0
  br i1 %577, label %578, label %580

578:                                              ; preds = %575, %571
  %579 = load float, ptr %31, align 4, !tbaa !11
  store float %579, ptr %29, align 4, !tbaa !11
  br label %580

580:                                              ; preds = %578, %575
  br label %581

581:                                              ; preds = %580
  %582 = load i32, ptr %26, align 4, !tbaa !9
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr %26, align 4, !tbaa !9
  br label %472, !llvm.loop !28

584:                                              ; preds = %472
  br label %585

585:                                              ; preds = %584, %468
  br label %1191

586:                                              ; preds = %347
  %587 = load ptr, ptr %9, align 8, !tbaa !5
  %588 = call i32 @lsame_(ptr noundef %587, ptr noundef @.str.3)
  %589 = icmp ne i32 %588, 0
  br i1 %589, label %590, label %950

590:                                              ; preds = %586
  store float 0.000000e+00, ptr %29, align 4, !tbaa !11
  %591 = load ptr, ptr %10, align 8, !tbaa !5
  %592 = call i32 @lsame_(ptr noundef %591, ptr noundef @.str.1)
  %593 = icmp ne i32 %592, 0
  br i1 %593, label %594, label %760

594:                                              ; preds = %590
  %595 = load ptr, ptr %11, align 8, !tbaa !5
  %596 = call i32 @lsame_(ptr noundef %595, ptr noundef @.str.1)
  %597 = icmp ne i32 %596, 0
  br i1 %597, label %598, label %679

598:                                              ; preds = %594
  %599 = load ptr, ptr %12, align 8, !tbaa !5
  %600 = load i32, ptr %599, align 4, !tbaa !9
  store i32 %600, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %601

601:                                              ; preds = %610, %598
  %602 = load i32, ptr %25, align 4, !tbaa !9
  %603 = load i32, ptr %19, align 4, !tbaa !9
  %604 = icmp sle i32 %602, %603
  br i1 %604, label %605, label %613

605:                                              ; preds = %601
  %606 = load ptr, ptr %16, align 8, !tbaa !5
  %607 = load i32, ptr %25, align 4, !tbaa !9
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds float, ptr %606, i64 %608
  store float 1.000000e+00, ptr %609, align 4, !tbaa !11
  br label %610

610:                                              ; preds = %605
  %611 = load i32, ptr %25, align 4, !tbaa !9
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr %25, align 4, !tbaa !9
  br label %601, !llvm.loop !29

613:                                              ; preds = %601
  %614 = load ptr, ptr %12, align 8, !tbaa !5
  %615 = load i32, ptr %614, align 4, !tbaa !9
  store i32 %615, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %616

616:                                              ; preds = %675, %613
  %617 = load i32, ptr %26, align 4, !tbaa !9
  %618 = load i32, ptr %19, align 4, !tbaa !9
  %619 = icmp sle i32 %617, %618
  br i1 %619, label %620, label %678

620:                                              ; preds = %616
  %621 = load ptr, ptr %13, align 8, !tbaa !5
  %622 = load i32, ptr %621, align 4, !tbaa !9
  %623 = add nsw i32 %622, 1
  %624 = load i32, ptr %26, align 4, !tbaa !9
  %625 = sub nsw i32 %623, %624
  store i32 %625, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  %626 = load i32, ptr %26, align 4, !tbaa !9
  %627 = load ptr, ptr %13, align 8, !tbaa !5
  %628 = load i32, ptr %627, align 4, !tbaa !9
  %629 = sub nsw i32 %626, %628
  store i32 %629, ptr %21, align 4, !tbaa !9
  %630 = load i32, ptr %26, align 4, !tbaa !9
  %631 = sub nsw i32 %630, 1
  store i32 %631, ptr %22, align 4, !tbaa !9
  %632 = load i32, ptr %20, align 4, !tbaa !9
  %633 = load i32, ptr %21, align 4, !tbaa !9
  %634 = icmp sge i32 %632, %633
  br i1 %634, label %635, label %637

635:                                              ; preds = %620
  %636 = load i32, ptr %20, align 4, !tbaa !9
  br label %639

637:                                              ; preds = %620
  %638 = load i32, ptr %21, align 4, !tbaa !9
  br label %639

639:                                              ; preds = %637, %635
  %640 = phi i32 [ %636, %635 ], [ %638, %637 ]
  store i32 %640, ptr %25, align 4, !tbaa !9
  br label %641

641:                                              ; preds = %671, %639
  %642 = load i32, ptr %25, align 4, !tbaa !9
  %643 = load i32, ptr %22, align 4, !tbaa !9
  %644 = icmp sle i32 %642, %643
  br i1 %644, label %645, label %674

645:                                              ; preds = %641
  %646 = load ptr, ptr %14, align 8, !tbaa !5
  %647 = load i32, ptr %27, align 4, !tbaa !9
  %648 = load i32, ptr %25, align 4, !tbaa !9
  %649 = add nsw i32 %647, %648
  %650 = load i32, ptr %26, align 4, !tbaa !9
  %651 = load i32, ptr %17, align 4, !tbaa !9
  %652 = mul nsw i32 %650, %651
  %653 = add nsw i32 %649, %652
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds %struct.complex, ptr %646, i64 %654
  %656 = call <2 x float> @Cf(ptr noundef %655)
  store <2 x float> %656, ptr %49, align 4
  %657 = getelementptr inbounds { float, float }, ptr %49, i32 0, i32 0
  %658 = load float, ptr %657, align 4
  %659 = getelementptr inbounds { float, float }, ptr %49, i32 0, i32 1
  %660 = load float, ptr %659, align 4
  %661 = getelementptr inbounds { float, float }, ptr %50, i32 0, i32 0
  %662 = getelementptr inbounds { float, float }, ptr %50, i32 0, i32 1
  store float %658, ptr %661, align 4
  store float %660, ptr %662, align 4
  %663 = load <2 x float>, ptr %50, align 4
  %664 = call float @cabsf(<2 x float> noundef %663) #5
  %665 = load ptr, ptr %16, align 8, !tbaa !5
  %666 = load i32, ptr %25, align 4, !tbaa !9
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds float, ptr %665, i64 %667
  %669 = load float, ptr %668, align 4, !tbaa !11
  %670 = fadd float %669, %664
  store float %670, ptr %668, align 4, !tbaa !11
  br label %671

671:                                              ; preds = %645
  %672 = load i32, ptr %25, align 4, !tbaa !9
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr %25, align 4, !tbaa !9
  br label %641, !llvm.loop !30

674:                                              ; preds = %641
  br label %675

675:                                              ; preds = %674
  %676 = load i32, ptr %26, align 4, !tbaa !9
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr %26, align 4, !tbaa !9
  br label %616, !llvm.loop !31

678:                                              ; preds = %616
  br label %759

679:                                              ; preds = %594
  %680 = load ptr, ptr %12, align 8, !tbaa !5
  %681 = load i32, ptr %680, align 4, !tbaa !9
  store i32 %681, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %682

682:                                              ; preds = %691, %679
  %683 = load i32, ptr %25, align 4, !tbaa !9
  %684 = load i32, ptr %19, align 4, !tbaa !9
  %685 = icmp sle i32 %683, %684
  br i1 %685, label %686, label %694

686:                                              ; preds = %682
  %687 = load ptr, ptr %16, align 8, !tbaa !5
  %688 = load i32, ptr %25, align 4, !tbaa !9
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds float, ptr %687, i64 %689
  store float 0.000000e+00, ptr %690, align 4, !tbaa !11
  br label %691

691:                                              ; preds = %686
  %692 = load i32, ptr %25, align 4, !tbaa !9
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr %25, align 4, !tbaa !9
  br label %682, !llvm.loop !32

694:                                              ; preds = %682
  %695 = load ptr, ptr %12, align 8, !tbaa !5
  %696 = load i32, ptr %695, align 4, !tbaa !9
  store i32 %696, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %697

697:                                              ; preds = %755, %694
  %698 = load i32, ptr %26, align 4, !tbaa !9
  %699 = load i32, ptr %19, align 4, !tbaa !9
  %700 = icmp sle i32 %698, %699
  br i1 %700, label %701, label %758

701:                                              ; preds = %697
  %702 = load ptr, ptr %13, align 8, !tbaa !5
  %703 = load i32, ptr %702, align 4, !tbaa !9
  %704 = add nsw i32 %703, 1
  %705 = load i32, ptr %26, align 4, !tbaa !9
  %706 = sub nsw i32 %704, %705
  store i32 %706, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %707 = load i32, ptr %26, align 4, !tbaa !9
  %708 = load ptr, ptr %13, align 8, !tbaa !5
  %709 = load i32, ptr %708, align 4, !tbaa !9
  %710 = sub nsw i32 %707, %709
  store i32 %710, ptr %20, align 4, !tbaa !9
  %711 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %711, ptr %21, align 4, !tbaa !9
  %712 = load i32, ptr %22, align 4, !tbaa !9
  %713 = load i32, ptr %20, align 4, !tbaa !9
  %714 = icmp sge i32 %712, %713
  br i1 %714, label %715, label %717

715:                                              ; preds = %701
  %716 = load i32, ptr %22, align 4, !tbaa !9
  br label %719

717:                                              ; preds = %701
  %718 = load i32, ptr %20, align 4, !tbaa !9
  br label %719

719:                                              ; preds = %717, %715
  %720 = phi i32 [ %716, %715 ], [ %718, %717 ]
  store i32 %720, ptr %25, align 4, !tbaa !9
  br label %721

721:                                              ; preds = %751, %719
  %722 = load i32, ptr %25, align 4, !tbaa !9
  %723 = load i32, ptr %21, align 4, !tbaa !9
  %724 = icmp sle i32 %722, %723
  br i1 %724, label %725, label %754

725:                                              ; preds = %721
  %726 = load ptr, ptr %14, align 8, !tbaa !5
  %727 = load i32, ptr %27, align 4, !tbaa !9
  %728 = load i32, ptr %25, align 4, !tbaa !9
  %729 = add nsw i32 %727, %728
  %730 = load i32, ptr %26, align 4, !tbaa !9
  %731 = load i32, ptr %17, align 4, !tbaa !9
  %732 = mul nsw i32 %730, %731
  %733 = add nsw i32 %729, %732
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds %struct.complex, ptr %726, i64 %734
  %736 = call <2 x float> @Cf(ptr noundef %735)
  store <2 x float> %736, ptr %51, align 4
  %737 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 0
  %738 = load float, ptr %737, align 4
  %739 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 1
  %740 = load float, ptr %739, align 4
  %741 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 0
  %742 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 1
  store float %738, ptr %741, align 4
  store float %740, ptr %742, align 4
  %743 = load <2 x float>, ptr %52, align 4
  %744 = call float @cabsf(<2 x float> noundef %743) #5
  %745 = load ptr, ptr %16, align 8, !tbaa !5
  %746 = load i32, ptr %25, align 4, !tbaa !9
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds float, ptr %745, i64 %747
  %749 = load float, ptr %748, align 4, !tbaa !11
  %750 = fadd float %749, %744
  store float %750, ptr %748, align 4, !tbaa !11
  br label %751

751:                                              ; preds = %725
  %752 = load i32, ptr %25, align 4, !tbaa !9
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr %25, align 4, !tbaa !9
  br label %721, !llvm.loop !33

754:                                              ; preds = %721
  br label %755

755:                                              ; preds = %754
  %756 = load i32, ptr %26, align 4, !tbaa !9
  %757 = add nsw i32 %756, 1
  store i32 %757, ptr %26, align 4, !tbaa !9
  br label %697, !llvm.loop !34

758:                                              ; preds = %697
  br label %759

759:                                              ; preds = %758, %678
  br label %924

760:                                              ; preds = %590
  %761 = load ptr, ptr %11, align 8, !tbaa !5
  %762 = call i32 @lsame_(ptr noundef %761, ptr noundef @.str.1)
  %763 = icmp ne i32 %762, 0
  br i1 %763, label %764, label %844

764:                                              ; preds = %760
  %765 = load ptr, ptr %12, align 8, !tbaa !5
  %766 = load i32, ptr %765, align 4, !tbaa !9
  store i32 %766, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %767

767:                                              ; preds = %776, %764
  %768 = load i32, ptr %25, align 4, !tbaa !9
  %769 = load i32, ptr %19, align 4, !tbaa !9
  %770 = icmp sle i32 %768, %769
  br i1 %770, label %771, label %779

771:                                              ; preds = %767
  %772 = load ptr, ptr %16, align 8, !tbaa !5
  %773 = load i32, ptr %25, align 4, !tbaa !9
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds float, ptr %772, i64 %774
  store float 1.000000e+00, ptr %775, align 4, !tbaa !11
  br label %776

776:                                              ; preds = %771
  %777 = load i32, ptr %25, align 4, !tbaa !9
  %778 = add nsw i32 %777, 1
  store i32 %778, ptr %25, align 4, !tbaa !9
  br label %767, !llvm.loop !35

779:                                              ; preds = %767
  %780 = load ptr, ptr %12, align 8, !tbaa !5
  %781 = load i32, ptr %780, align 4, !tbaa !9
  store i32 %781, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %782

782:                                              ; preds = %840, %779
  %783 = load i32, ptr %26, align 4, !tbaa !9
  %784 = load i32, ptr %19, align 4, !tbaa !9
  %785 = icmp sle i32 %783, %784
  br i1 %785, label %786, label %843

786:                                              ; preds = %782
  %787 = load i32, ptr %26, align 4, !tbaa !9
  %788 = sub nsw i32 1, %787
  store i32 %788, ptr %27, align 4, !tbaa !9
  %789 = load ptr, ptr %12, align 8, !tbaa !5
  %790 = load i32, ptr %789, align 4, !tbaa !9
  store i32 %790, ptr %22, align 4, !tbaa !9
  %791 = load i32, ptr %26, align 4, !tbaa !9
  %792 = load ptr, ptr %13, align 8, !tbaa !5
  %793 = load i32, ptr %792, align 4, !tbaa !9
  %794 = add nsw i32 %791, %793
  store i32 %794, ptr %20, align 4, !tbaa !9
  %795 = load i32, ptr %22, align 4, !tbaa !9
  %796 = load i32, ptr %20, align 4, !tbaa !9
  %797 = icmp sle i32 %795, %796
  br i1 %797, label %798, label %800

798:                                              ; preds = %786
  %799 = load i32, ptr %22, align 4, !tbaa !9
  br label %802

800:                                              ; preds = %786
  %801 = load i32, ptr %20, align 4, !tbaa !9
  br label %802

802:                                              ; preds = %800, %798
  %803 = phi i32 [ %799, %798 ], [ %801, %800 ]
  store i32 %803, ptr %21, align 4, !tbaa !9
  %804 = load i32, ptr %26, align 4, !tbaa !9
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr %25, align 4, !tbaa !9
  br label %806

806:                                              ; preds = %836, %802
  %807 = load i32, ptr %25, align 4, !tbaa !9
  %808 = load i32, ptr %21, align 4, !tbaa !9
  %809 = icmp sle i32 %807, %808
  br i1 %809, label %810, label %839

810:                                              ; preds = %806
  %811 = load ptr, ptr %14, align 8, !tbaa !5
  %812 = load i32, ptr %27, align 4, !tbaa !9
  %813 = load i32, ptr %25, align 4, !tbaa !9
  %814 = add nsw i32 %812, %813
  %815 = load i32, ptr %26, align 4, !tbaa !9
  %816 = load i32, ptr %17, align 4, !tbaa !9
  %817 = mul nsw i32 %815, %816
  %818 = add nsw i32 %814, %817
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds %struct.complex, ptr %811, i64 %819
  %821 = call <2 x float> @Cf(ptr noundef %820)
  store <2 x float> %821, ptr %53, align 4
  %822 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 0
  %823 = load float, ptr %822, align 4
  %824 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 1
  %825 = load float, ptr %824, align 4
  %826 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 0
  %827 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 1
  store float %823, ptr %826, align 4
  store float %825, ptr %827, align 4
  %828 = load <2 x float>, ptr %54, align 4
  %829 = call float @cabsf(<2 x float> noundef %828) #5
  %830 = load ptr, ptr %16, align 8, !tbaa !5
  %831 = load i32, ptr %25, align 4, !tbaa !9
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds float, ptr %830, i64 %832
  %834 = load float, ptr %833, align 4, !tbaa !11
  %835 = fadd float %834, %829
  store float %835, ptr %833, align 4, !tbaa !11
  br label %836

836:                                              ; preds = %810
  %837 = load i32, ptr %25, align 4, !tbaa !9
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr %25, align 4, !tbaa !9
  br label %806, !llvm.loop !36

839:                                              ; preds = %806
  br label %840

840:                                              ; preds = %839
  %841 = load i32, ptr %26, align 4, !tbaa !9
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr %26, align 4, !tbaa !9
  br label %782, !llvm.loop !37

843:                                              ; preds = %782
  br label %923

844:                                              ; preds = %760
  %845 = load ptr, ptr %12, align 8, !tbaa !5
  %846 = load i32, ptr %845, align 4, !tbaa !9
  store i32 %846, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %847

847:                                              ; preds = %856, %844
  %848 = load i32, ptr %25, align 4, !tbaa !9
  %849 = load i32, ptr %19, align 4, !tbaa !9
  %850 = icmp sle i32 %848, %849
  br i1 %850, label %851, label %859

851:                                              ; preds = %847
  %852 = load ptr, ptr %16, align 8, !tbaa !5
  %853 = load i32, ptr %25, align 4, !tbaa !9
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds float, ptr %852, i64 %854
  store float 0.000000e+00, ptr %855, align 4, !tbaa !11
  br label %856

856:                                              ; preds = %851
  %857 = load i32, ptr %25, align 4, !tbaa !9
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr %25, align 4, !tbaa !9
  br label %847, !llvm.loop !38

859:                                              ; preds = %847
  %860 = load ptr, ptr %12, align 8, !tbaa !5
  %861 = load i32, ptr %860, align 4, !tbaa !9
  store i32 %861, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %862

862:                                              ; preds = %919, %859
  %863 = load i32, ptr %26, align 4, !tbaa !9
  %864 = load i32, ptr %19, align 4, !tbaa !9
  %865 = icmp sle i32 %863, %864
  br i1 %865, label %866, label %922

866:                                              ; preds = %862
  %867 = load i32, ptr %26, align 4, !tbaa !9
  %868 = sub nsw i32 1, %867
  store i32 %868, ptr %27, align 4, !tbaa !9
  %869 = load ptr, ptr %12, align 8, !tbaa !5
  %870 = load i32, ptr %869, align 4, !tbaa !9
  store i32 %870, ptr %22, align 4, !tbaa !9
  %871 = load i32, ptr %26, align 4, !tbaa !9
  %872 = load ptr, ptr %13, align 8, !tbaa !5
  %873 = load i32, ptr %872, align 4, !tbaa !9
  %874 = add nsw i32 %871, %873
  store i32 %874, ptr %20, align 4, !tbaa !9
  %875 = load i32, ptr %22, align 4, !tbaa !9
  %876 = load i32, ptr %20, align 4, !tbaa !9
  %877 = icmp sle i32 %875, %876
  br i1 %877, label %878, label %880

878:                                              ; preds = %866
  %879 = load i32, ptr %22, align 4, !tbaa !9
  br label %882

880:                                              ; preds = %866
  %881 = load i32, ptr %20, align 4, !tbaa !9
  br label %882

882:                                              ; preds = %880, %878
  %883 = phi i32 [ %879, %878 ], [ %881, %880 ]
  store i32 %883, ptr %21, align 4, !tbaa !9
  %884 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %884, ptr %25, align 4, !tbaa !9
  br label %885

885:                                              ; preds = %915, %882
  %886 = load i32, ptr %25, align 4, !tbaa !9
  %887 = load i32, ptr %21, align 4, !tbaa !9
  %888 = icmp sle i32 %886, %887
  br i1 %888, label %889, label %918

889:                                              ; preds = %885
  %890 = load ptr, ptr %14, align 8, !tbaa !5
  %891 = load i32, ptr %27, align 4, !tbaa !9
  %892 = load i32, ptr %25, align 4, !tbaa !9
  %893 = add nsw i32 %891, %892
  %894 = load i32, ptr %26, align 4, !tbaa !9
  %895 = load i32, ptr %17, align 4, !tbaa !9
  %896 = mul nsw i32 %894, %895
  %897 = add nsw i32 %893, %896
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds %struct.complex, ptr %890, i64 %898
  %900 = call <2 x float> @Cf(ptr noundef %899)
  store <2 x float> %900, ptr %55, align 4
  %901 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 0
  %902 = load float, ptr %901, align 4
  %903 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 1
  %904 = load float, ptr %903, align 4
  %905 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 0
  %906 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 1
  store float %902, ptr %905, align 4
  store float %904, ptr %906, align 4
  %907 = load <2 x float>, ptr %56, align 4
  %908 = call float @cabsf(<2 x float> noundef %907) #5
  %909 = load ptr, ptr %16, align 8, !tbaa !5
  %910 = load i32, ptr %25, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds float, ptr %909, i64 %911
  %913 = load float, ptr %912, align 4, !tbaa !11
  %914 = fadd float %913, %908
  store float %914, ptr %912, align 4, !tbaa !11
  br label %915

915:                                              ; preds = %889
  %916 = load i32, ptr %25, align 4, !tbaa !9
  %917 = add nsw i32 %916, 1
  store i32 %917, ptr %25, align 4, !tbaa !9
  br label %885, !llvm.loop !39

918:                                              ; preds = %885
  br label %919

919:                                              ; preds = %918
  %920 = load i32, ptr %26, align 4, !tbaa !9
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr %26, align 4, !tbaa !9
  br label %862, !llvm.loop !40

922:                                              ; preds = %862
  br label %923

923:                                              ; preds = %922, %843
  br label %924

924:                                              ; preds = %923, %759
  %925 = load ptr, ptr %12, align 8, !tbaa !5
  %926 = load i32, ptr %925, align 4, !tbaa !9
  store i32 %926, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %927

927:                                              ; preds = %946, %924
  %928 = load i32, ptr %25, align 4, !tbaa !9
  %929 = load i32, ptr %19, align 4, !tbaa !9
  %930 = icmp sle i32 %928, %929
  br i1 %930, label %931, label %949

931:                                              ; preds = %927
  %932 = load ptr, ptr %16, align 8, !tbaa !5
  %933 = load i32, ptr %25, align 4, !tbaa !9
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds float, ptr %932, i64 %934
  %936 = load float, ptr %935, align 4, !tbaa !11
  store float %936, ptr %31, align 4, !tbaa !11
  %937 = load float, ptr %29, align 4, !tbaa !11
  %938 = load float, ptr %31, align 4, !tbaa !11
  %939 = fcmp olt float %937, %938
  br i1 %939, label %943, label %940

940:                                              ; preds = %931
  %941 = call i32 @sisnan_(ptr noundef %31)
  %942 = icmp ne i32 %941, 0
  br i1 %942, label %943, label %945

943:                                              ; preds = %940, %931
  %944 = load float, ptr %31, align 4, !tbaa !11
  store float %944, ptr %29, align 4, !tbaa !11
  br label %945

945:                                              ; preds = %943, %940
  br label %946

946:                                              ; preds = %945
  %947 = load i32, ptr %25, align 4, !tbaa !9
  %948 = add nsw i32 %947, 1
  store i32 %948, ptr %25, align 4, !tbaa !9
  br label %927, !llvm.loop !41

949:                                              ; preds = %927
  br label %1190

950:                                              ; preds = %586
  %951 = load ptr, ptr %9, align 8, !tbaa !5
  %952 = call i32 @lsame_(ptr noundef %951, ptr noundef @.str.4)
  %953 = icmp ne i32 %952, 0
  br i1 %953, label %958, label %954

954:                                              ; preds = %950
  %955 = load ptr, ptr %9, align 8, !tbaa !5
  %956 = call i32 @lsame_(ptr noundef %955, ptr noundef @.str.5)
  %957 = icmp ne i32 %956, 0
  br i1 %957, label %958, label %1189

958:                                              ; preds = %954, %950
  %959 = load ptr, ptr %10, align 8, !tbaa !5
  %960 = call i32 @lsame_(ptr noundef %959, ptr noundef @.str.1)
  %961 = icmp ne i32 %960, 0
  br i1 %961, label %962, label %1079

962:                                              ; preds = %958
  %963 = load ptr, ptr %11, align 8, !tbaa !5
  %964 = call i32 @lsame_(ptr noundef %963, ptr noundef @.str.1)
  %965 = icmp ne i32 %964, 0
  br i1 %965, label %966, label %1026

966:                                              ; preds = %962
  %967 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  store float 1.000000e+00, ptr %967, align 4, !tbaa !11
  %968 = load ptr, ptr %12, align 8, !tbaa !5
  %969 = load i32, ptr %968, align 4, !tbaa !9
  %970 = sitofp i32 %969 to float
  %971 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 1
  store float %970, ptr %971, align 4, !tbaa !11
  %972 = load ptr, ptr %13, align 8, !tbaa !5
  %973 = load i32, ptr %972, align 4, !tbaa !9
  %974 = icmp sgt i32 %973, 0
  br i1 %974, label %975, label %1025

975:                                              ; preds = %966
  %976 = load ptr, ptr %12, align 8, !tbaa !5
  %977 = load i32, ptr %976, align 4, !tbaa !9
  store i32 %977, ptr %19, align 4, !tbaa !9
  store i32 2, ptr %26, align 4, !tbaa !9
  br label %978

978:                                              ; preds = %1021, %975
  %979 = load i32, ptr %26, align 4, !tbaa !9
  %980 = load i32, ptr %19, align 4, !tbaa !9
  %981 = icmp sle i32 %979, %980
  br i1 %981, label %982, label %1024

982:                                              ; preds = %978
  %983 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  store float 0.000000e+00, ptr %983, align 4, !tbaa !11
  %984 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  store float 1.000000e+00, ptr %984, align 4, !tbaa !11
  %985 = load i32, ptr %26, align 4, !tbaa !9
  %986 = sub nsw i32 %985, 1
  store i32 %986, ptr %22, align 4, !tbaa !9
  %987 = load i32, ptr %22, align 4, !tbaa !9
  %988 = load ptr, ptr %13, align 8, !tbaa !5
  %989 = load i32, ptr %988, align 4, !tbaa !9
  %990 = icmp sle i32 %987, %989
  br i1 %990, label %991, label %993

991:                                              ; preds = %982
  %992 = load i32, ptr %22, align 4, !tbaa !9
  br label %996

993:                                              ; preds = %982
  %994 = load ptr, ptr %13, align 8, !tbaa !5
  %995 = load i32, ptr %994, align 4, !tbaa !9
  br label %996

996:                                              ; preds = %993, %991
  %997 = phi i32 [ %992, %991 ], [ %995, %993 ]
  store i32 %997, ptr %21, align 4, !tbaa !9
  %998 = load ptr, ptr %13, align 8, !tbaa !5
  %999 = load i32, ptr %998, align 4, !tbaa !9
  %1000 = add nsw i32 %999, 2
  %1001 = load i32, ptr %26, align 4, !tbaa !9
  %1002 = sub nsw i32 %1000, %1001
  store i32 %1002, ptr %20, align 4, !tbaa !9
  %1003 = load ptr, ptr %14, align 8, !tbaa !5
  %1004 = load i32, ptr %20, align 4, !tbaa !9
  %1005 = icmp sge i32 %1004, 1
  br i1 %1005, label %1006, label %1008

1006:                                             ; preds = %996
  %1007 = load i32, ptr %20, align 4, !tbaa !9
  br label %1009

1008:                                             ; preds = %996
  br label %1009

1009:                                             ; preds = %1008, %1006
  %1010 = phi i32 [ %1007, %1006 ], [ 1, %1008 ]
  %1011 = load i32, ptr %26, align 4, !tbaa !9
  %1012 = load i32, ptr %17, align 4, !tbaa !9
  %1013 = mul nsw i32 %1011, %1012
  %1014 = add nsw i32 %1010, %1013
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds %struct.complex, ptr %1003, i64 %1015
  %1017 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  %1018 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  call void @classq_(ptr noundef %21, ptr noundef %1016, ptr noundef @c__1, ptr noundef %1017, ptr noundef %1018)
  %1019 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  %1020 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  call void @scombssq_(ptr noundef %1019, ptr noundef %1020)
  br label %1021

1021:                                             ; preds = %1009
  %1022 = load i32, ptr %26, align 4, !tbaa !9
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr %26, align 4, !tbaa !9
  br label %978, !llvm.loop !42

1024:                                             ; preds = %978
  br label %1025

1025:                                             ; preds = %1024, %966
  br label %1078

1026:                                             ; preds = %962
  %1027 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  store float 0.000000e+00, ptr %1027, align 4, !tbaa !11
  %1028 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 1
  store float 1.000000e+00, ptr %1028, align 4, !tbaa !11
  %1029 = load ptr, ptr %12, align 8, !tbaa !5
  %1030 = load i32, ptr %1029, align 4, !tbaa !9
  store i32 %1030, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %1031

1031:                                             ; preds = %1074, %1026
  %1032 = load i32, ptr %26, align 4, !tbaa !9
  %1033 = load i32, ptr %19, align 4, !tbaa !9
  %1034 = icmp sle i32 %1032, %1033
  br i1 %1034, label %1035, label %1077

1035:                                             ; preds = %1031
  %1036 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  store float 0.000000e+00, ptr %1036, align 4, !tbaa !11
  %1037 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  store float 1.000000e+00, ptr %1037, align 4, !tbaa !11
  %1038 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1038, ptr %22, align 4, !tbaa !9
  %1039 = load ptr, ptr %13, align 8, !tbaa !5
  %1040 = load i32, ptr %1039, align 4, !tbaa !9
  %1041 = add nsw i32 %1040, 1
  store i32 %1041, ptr %20, align 4, !tbaa !9
  %1042 = load i32, ptr %22, align 4, !tbaa !9
  %1043 = load i32, ptr %20, align 4, !tbaa !9
  %1044 = icmp sle i32 %1042, %1043
  br i1 %1044, label %1045, label %1047

1045:                                             ; preds = %1035
  %1046 = load i32, ptr %22, align 4, !tbaa !9
  br label %1049

1047:                                             ; preds = %1035
  %1048 = load i32, ptr %20, align 4, !tbaa !9
  br label %1049

1049:                                             ; preds = %1047, %1045
  %1050 = phi i32 [ %1046, %1045 ], [ %1048, %1047 ]
  store i32 %1050, ptr %21, align 4, !tbaa !9
  %1051 = load ptr, ptr %13, align 8, !tbaa !5
  %1052 = load i32, ptr %1051, align 4, !tbaa !9
  %1053 = add nsw i32 %1052, 2
  %1054 = load i32, ptr %26, align 4, !tbaa !9
  %1055 = sub nsw i32 %1053, %1054
  store i32 %1055, ptr %23, align 4, !tbaa !9
  %1056 = load ptr, ptr %14, align 8, !tbaa !5
  %1057 = load i32, ptr %23, align 4, !tbaa !9
  %1058 = icmp sge i32 %1057, 1
  br i1 %1058, label %1059, label %1061

1059:                                             ; preds = %1049
  %1060 = load i32, ptr %23, align 4, !tbaa !9
  br label %1062

1061:                                             ; preds = %1049
  br label %1062

1062:                                             ; preds = %1061, %1059
  %1063 = phi i32 [ %1060, %1059 ], [ 1, %1061 ]
  %1064 = load i32, ptr %26, align 4, !tbaa !9
  %1065 = load i32, ptr %17, align 4, !tbaa !9
  %1066 = mul nsw i32 %1064, %1065
  %1067 = add nsw i32 %1063, %1066
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds %struct.complex, ptr %1056, i64 %1068
  %1070 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  %1071 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  call void @classq_(ptr noundef %21, ptr noundef %1069, ptr noundef @c__1, ptr noundef %1070, ptr noundef %1071)
  %1072 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  %1073 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  call void @scombssq_(ptr noundef %1072, ptr noundef %1073)
  br label %1074

1074:                                             ; preds = %1062
  %1075 = load i32, ptr %26, align 4, !tbaa !9
  %1076 = add nsw i32 %1075, 1
  store i32 %1076, ptr %26, align 4, !tbaa !9
  br label %1031, !llvm.loop !43

1077:                                             ; preds = %1031
  br label %1078

1078:                                             ; preds = %1077, %1025
  br label %1179

1079:                                             ; preds = %958
  %1080 = load ptr, ptr %11, align 8, !tbaa !5
  %1081 = call i32 @lsame_(ptr noundef %1080, ptr noundef @.str.1)
  %1082 = icmp ne i32 %1081, 0
  br i1 %1082, label %1083, label %1134

1083:                                             ; preds = %1079
  %1084 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  store float 1.000000e+00, ptr %1084, align 4, !tbaa !11
  %1085 = load ptr, ptr %12, align 8, !tbaa !5
  %1086 = load i32, ptr %1085, align 4, !tbaa !9
  %1087 = sitofp i32 %1086 to float
  %1088 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 1
  store float %1087, ptr %1088, align 4, !tbaa !11
  %1089 = load ptr, ptr %13, align 8, !tbaa !5
  %1090 = load i32, ptr %1089, align 4, !tbaa !9
  %1091 = icmp sgt i32 %1090, 0
  br i1 %1091, label %1092, label %1133

1092:                                             ; preds = %1083
  %1093 = load ptr, ptr %12, align 8, !tbaa !5
  %1094 = load i32, ptr %1093, align 4, !tbaa !9
  %1095 = sub nsw i32 %1094, 1
  store i32 %1095, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %1096

1096:                                             ; preds = %1129, %1092
  %1097 = load i32, ptr %26, align 4, !tbaa !9
  %1098 = load i32, ptr %19, align 4, !tbaa !9
  %1099 = icmp sle i32 %1097, %1098
  br i1 %1099, label %1100, label %1132

1100:                                             ; preds = %1096
  %1101 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  store float 0.000000e+00, ptr %1101, align 4, !tbaa !11
  %1102 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  store float 1.000000e+00, ptr %1102, align 4, !tbaa !11
  %1103 = load ptr, ptr %12, align 8, !tbaa !5
  %1104 = load i32, ptr %1103, align 4, !tbaa !9
  %1105 = load i32, ptr %26, align 4, !tbaa !9
  %1106 = sub nsw i32 %1104, %1105
  store i32 %1106, ptr %22, align 4, !tbaa !9
  %1107 = load i32, ptr %22, align 4, !tbaa !9
  %1108 = load ptr, ptr %13, align 8, !tbaa !5
  %1109 = load i32, ptr %1108, align 4, !tbaa !9
  %1110 = icmp sle i32 %1107, %1109
  br i1 %1110, label %1111, label %1113

1111:                                             ; preds = %1100
  %1112 = load i32, ptr %22, align 4, !tbaa !9
  br label %1116

1113:                                             ; preds = %1100
  %1114 = load ptr, ptr %13, align 8, !tbaa !5
  %1115 = load i32, ptr %1114, align 4, !tbaa !9
  br label %1116

1116:                                             ; preds = %1113, %1111
  %1117 = phi i32 [ %1112, %1111 ], [ %1115, %1113 ]
  store i32 %1117, ptr %21, align 4, !tbaa !9
  %1118 = load ptr, ptr %14, align 8, !tbaa !5
  %1119 = load i32, ptr %26, align 4, !tbaa !9
  %1120 = load i32, ptr %17, align 4, !tbaa !9
  %1121 = mul nsw i32 %1119, %1120
  %1122 = add nsw i32 %1121, 2
  %1123 = sext i32 %1122 to i64
  %1124 = getelementptr inbounds %struct.complex, ptr %1118, i64 %1123
  %1125 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  %1126 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  call void @classq_(ptr noundef %21, ptr noundef %1124, ptr noundef @c__1, ptr noundef %1125, ptr noundef %1126)
  %1127 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  %1128 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  call void @scombssq_(ptr noundef %1127, ptr noundef %1128)
  br label %1129

1129:                                             ; preds = %1116
  %1130 = load i32, ptr %26, align 4, !tbaa !9
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr %26, align 4, !tbaa !9
  br label %1096, !llvm.loop !44

1132:                                             ; preds = %1096
  br label %1133

1133:                                             ; preds = %1132, %1083
  br label %1178

1134:                                             ; preds = %1079
  %1135 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  store float 0.000000e+00, ptr %1135, align 4, !tbaa !11
  %1136 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 1
  store float 1.000000e+00, ptr %1136, align 4, !tbaa !11
  %1137 = load ptr, ptr %12, align 8, !tbaa !5
  %1138 = load i32, ptr %1137, align 4, !tbaa !9
  store i32 %1138, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %1139

1139:                                             ; preds = %1174, %1134
  %1140 = load i32, ptr %26, align 4, !tbaa !9
  %1141 = load i32, ptr %19, align 4, !tbaa !9
  %1142 = icmp sle i32 %1140, %1141
  br i1 %1142, label %1143, label %1177

1143:                                             ; preds = %1139
  %1144 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  store float 0.000000e+00, ptr %1144, align 4, !tbaa !11
  %1145 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  store float 1.000000e+00, ptr %1145, align 4, !tbaa !11
  %1146 = load ptr, ptr %12, align 8, !tbaa !5
  %1147 = load i32, ptr %1146, align 4, !tbaa !9
  %1148 = load i32, ptr %26, align 4, !tbaa !9
  %1149 = sub nsw i32 %1147, %1148
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr %22, align 4, !tbaa !9
  %1151 = load ptr, ptr %13, align 8, !tbaa !5
  %1152 = load i32, ptr %1151, align 4, !tbaa !9
  %1153 = add nsw i32 %1152, 1
  store i32 %1153, ptr %20, align 4, !tbaa !9
  %1154 = load i32, ptr %22, align 4, !tbaa !9
  %1155 = load i32, ptr %20, align 4, !tbaa !9
  %1156 = icmp sle i32 %1154, %1155
  br i1 %1156, label %1157, label %1159

1157:                                             ; preds = %1143
  %1158 = load i32, ptr %22, align 4, !tbaa !9
  br label %1161

1159:                                             ; preds = %1143
  %1160 = load i32, ptr %20, align 4, !tbaa !9
  br label %1161

1161:                                             ; preds = %1159, %1157
  %1162 = phi i32 [ %1158, %1157 ], [ %1160, %1159 ]
  store i32 %1162, ptr %21, align 4, !tbaa !9
  %1163 = load ptr, ptr %14, align 8, !tbaa !5
  %1164 = load i32, ptr %26, align 4, !tbaa !9
  %1165 = load i32, ptr %17, align 4, !tbaa !9
  %1166 = mul nsw i32 %1164, %1165
  %1167 = add nsw i32 %1166, 1
  %1168 = sext i32 %1167 to i64
  %1169 = getelementptr inbounds %struct.complex, ptr %1163, i64 %1168
  %1170 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  %1171 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 1
  call void @classq_(ptr noundef %21, ptr noundef %1169, ptr noundef @c__1, ptr noundef %1170, ptr noundef %1171)
  %1172 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  %1173 = getelementptr inbounds [2 x float], ptr %30, i64 0, i64 0
  call void @scombssq_(ptr noundef %1172, ptr noundef %1173)
  br label %1174

1174:                                             ; preds = %1161
  %1175 = load i32, ptr %26, align 4, !tbaa !9
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr %26, align 4, !tbaa !9
  br label %1139, !llvm.loop !45

1177:                                             ; preds = %1139
  br label %1178

1178:                                             ; preds = %1177, %1133
  br label %1179

1179:                                             ; preds = %1178, %1078
  %1180 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 0
  %1181 = load float, ptr %1180, align 4, !tbaa !11
  %1182 = fpext float %1181 to double
  %1183 = getelementptr inbounds [2 x float], ptr %32, i64 0, i64 1
  %1184 = load float, ptr %1183, align 4, !tbaa !11
  %1185 = fpext float %1184 to double
  %1186 = call double @sqrt(double noundef %1185) #5
  %1187 = fmul double %1182, %1186
  %1188 = fptrunc double %1187 to float
  store float %1188, ptr %29, align 4, !tbaa !11
  br label %1189

1189:                                             ; preds = %1179, %954
  br label %1190

1190:                                             ; preds = %1189, %949
  br label %1191

1191:                                             ; preds = %1190, %585
  br label %1192

1192:                                             ; preds = %1191, %342
  br label %1193

1193:                                             ; preds = %1192, %72
  %1194 = load float, ptr %29, align 4, !tbaa !11
  store float %1194, ptr %24, align 4, !tbaa !11
  %1195 = load float, ptr %24, align 4, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  ret float %1195
}

; 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

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

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

declare i32 @sisnan_(ptr noundef) #2

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = !{!7, !7, i64 0}
!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}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !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 [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local float @clantb_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr noundef %5, ptr nocapture noundef readonly %6, ptr nocapture noundef %7) local_unnamed_addr #0 {
  %9 = alloca i32, align 4
  %10 = alloca [2 x float], align 8
  %11 = alloca float, align 4
  %12 = alloca [2 x float], align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %13 = load i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %13, -1
  %14 = sext i32 %narrow to i64
  %15 = getelementptr inbounds %struct.complex, ptr %5, i64 %14
  %16 = getelementptr inbounds i8, ptr %7, i64 -4
  %17 = load i32, ptr %3, align 4, !tbaa !5
  %18 = icmp eq i32 %17, 0
  br i1 %18, label %.loopexit466, label %19

19:                                               ; preds = %8
  %20 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #8
  %.not = icmp eq i32 %20, 0
  br i1 %.not, label %100, label %21

21:                                               ; preds = %19
  %22 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #8
  %.not447 = icmp eq i32 %22, 0
  %23 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #8
  %.not448 = icmp eq i32 %23, 0
  %24 = load i32, ptr %3, align 4, !tbaa !5
  %.not449531 = icmp slt i32 %24, 1
  br i1 %.not447, label %62, label %25

25:                                               ; preds = %21
  br i1 %.not448, label %44, label %26

26:                                               ; preds = %25
  br i1 %.not449531, label %.loopexit466, label %.lr.ph496.preheader

.lr.ph496.preheader:                              ; preds = %26
  %27 = sext i32 %13 to i64
  %28 = add nuw i32 %24, 1
  %wide.trip.count = zext i32 %28 to i64
  br label %.lr.ph496

.lr.ph496:                                        ; preds = %.lr.ph496.preheader, %._crit_edge
  %indvars.iv691 = phi i64 [ 1, %.lr.ph496.preheader ], [ %indvars.iv.next692, %._crit_edge ]
  %indvars.iv = phi i32 [ 1, %.lr.ph496.preheader ], [ %indvars.iv.next, %._crit_edge ]
  %.0378493 = phi float [ 1.000000e+00, %.lr.ph496.preheader ], [ %.1379.lcssa, %._crit_edge ]
  %29 = load i32, ptr %4, align 4, !tbaa !5
  %30 = trunc nuw nsw i64 %indvars.iv691 to i32
  %reass.sub656 = sub i32 %29, %30
  %31 = add i32 %reass.sub656, 2
  %32 = call i32 @llvm.smax.i32(i32 %31, i32 1)
  %.not462489 = icmp sgt i32 %32, %29
  br i1 %.not462489, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph496
  %33 = mul nsw i64 %indvars.iv691, %27
  %34 = add i32 %29, %indvars.iv
  %smax = call i32 @llvm.smax.i32(i32 %34, i32 1)
  %35 = zext nneg i32 %smax to i64
  %invariant.gep841 = getelementptr %struct.complex, ptr %15, i64 %33
  %36 = sext i32 %29 to i64
  br label %37

37:                                               ; preds = %.lr.ph, %43
  %indvars.iv688 = phi i64 [ %35, %.lr.ph ], [ %indvars.iv.next689, %43 ]
  %.1379490 = phi float [ %.0378493, %.lr.ph ], [ %.2380, %43 ]
  %gep842 = getelementptr %struct.complex, ptr %invariant.gep841, i64 %indvars.iv688
  %38 = call <2 x float> @Cf(ptr noundef %gep842)
  %39 = call float @cabsf(<2 x float> noundef %38) #8
  store float %39, ptr %11, align 4, !tbaa !9
  %40 = fcmp olt float %.1379490, %39
  br i1 %40, label %43, label %41

41:                                               ; preds = %37
  %42 = call i32 @sisnan_(ptr noundef nonnull %11) #8
  %.not463 = icmp eq i32 %42, 0
  br i1 %.not463, label %43, label %._crit_edge814

._crit_edge814:                                   ; preds = %41
  %.pre = load float, ptr %11, align 4, !tbaa !9
  br label %43

43:                                               ; preds = %37, %._crit_edge814, %41
  %.2380 = phi float [ %.1379490, %41 ], [ %.pre, %._crit_edge814 ], [ %39, %37 ]
  %indvars.iv.next689 = add nuw nsw i64 %indvars.iv688, 1
  %.not462.not = icmp slt i64 %indvars.iv688, %36
  br i1 %.not462.not, label %37, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %43, %.lr.ph496
  %.1379.lcssa = phi float [ %.0378493, %.lr.ph496 ], [ %.2380, %43 ]
  %indvars.iv.next692 = add nuw nsw i64 %indvars.iv691, 1
  %indvars.iv.next = add nsw i32 %indvars.iv, -1
  %exitcond.not = icmp eq i64 %indvars.iv.next692, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit466, label %.lr.ph496, !llvm.loop !13

44:                                               ; preds = %25
  br i1 %.not449531, label %.loopexit466, label %.lr.ph509.preheader

.lr.ph509.preheader:                              ; preds = %44
  %45 = sext i32 %13 to i64
  %46 = add nuw i32 %24, 1
  %wide.trip.count700 = zext i32 %46 to i64
  br label %.lr.ph509

.lr.ph509:                                        ; preds = %.lr.ph509.preheader, %._crit_edge503
  %indvars.iv697 = phi i64 [ 1, %.lr.ph509.preheader ], [ %indvars.iv.next698, %._crit_edge503 ]
  %.3381506 = phi float [ 1.000000e+00, %.lr.ph509.preheader ], [ %.4382.lcssa, %._crit_edge503 ]
  %47 = load i32, ptr %3, align 4, !tbaa !5
  %48 = trunc nuw nsw i64 %indvars.iv697 to i32
  %reass.sub657 = sub i32 %47, %48
  %49 = add i32 %reass.sub657, 1
  %50 = load i32, ptr %4, align 4, !tbaa !5
  %51 = add nsw i32 %50, 1
  %52 = call i32 @llvm.smin.i32(i32 %49, i32 %51)
  %.not459498 = icmp slt i32 %52, 2
  br i1 %.not459498, label %._crit_edge503, label %.lr.ph502

.lr.ph502:                                        ; preds = %.lr.ph509
  %53 = mul nsw i64 %indvars.iv697, %45
  %invariant.gep843 = getelementptr %struct.complex, ptr %15, i64 %53
  %54 = zext nneg i32 %52 to i64
  br label %55

55:                                               ; preds = %.lr.ph502, %61
  %indvars.iv694 = phi i64 [ 2, %.lr.ph502 ], [ %indvars.iv.next695, %61 ]
  %.4382499 = phi float [ %.3381506, %.lr.ph502 ], [ %.5383, %61 ]
  %gep844 = getelementptr %struct.complex, ptr %invariant.gep843, i64 %indvars.iv694
  %56 = call <2 x float> @Cf(ptr noundef %gep844)
  %57 = call float @cabsf(<2 x float> noundef %56) #8
  store float %57, ptr %11, align 4, !tbaa !9
  %58 = fcmp olt float %.4382499, %57
  br i1 %58, label %61, label %59

59:                                               ; preds = %55
  %60 = call i32 @sisnan_(ptr noundef nonnull %11) #8
  %.not460 = icmp eq i32 %60, 0
  br i1 %.not460, label %61, label %._crit_edge815

._crit_edge815:                                   ; preds = %59
  %.pre816 = load float, ptr %11, align 4, !tbaa !9
  br label %61

61:                                               ; preds = %55, %._crit_edge815, %59
  %.5383 = phi float [ %.4382499, %59 ], [ %.pre816, %._crit_edge815 ], [ %57, %55 ]
  %indvars.iv.next695 = add nuw nsw i64 %indvars.iv694, 1
  %.not459.not = icmp ult i64 %indvars.iv694, %54
  br i1 %.not459.not, label %55, label %._crit_edge503, !llvm.loop !14

._crit_edge503:                                   ; preds = %61, %.lr.ph509
  %.4382.lcssa = phi float [ %.3381506, %.lr.ph509 ], [ %.5383, %61 ]
  %indvars.iv.next698 = add nuw nsw i64 %indvars.iv697, 1
  %exitcond701.not = icmp eq i64 %indvars.iv.next698, %wide.trip.count700
  br i1 %exitcond701.not, label %.loopexit466, label %.lr.ph509, !llvm.loop !15

62:                                               ; preds = %21
  br i1 %.not448, label %82, label %63

63:                                               ; preds = %62
  br i1 %.not449531, label %.loopexit466, label %.lr.ph522.preheader

.lr.ph522.preheader:                              ; preds = %63
  %64 = sext i32 %13 to i64
  %65 = add nuw i32 %24, 1
  %wide.trip.count711 = zext i32 %65 to i64
  br label %.lr.ph522

.lr.ph522:                                        ; preds = %.lr.ph522.preheader, %._crit_edge516
  %indvars.iv708 = phi i64 [ 1, %.lr.ph522.preheader ], [ %indvars.iv.next709, %._crit_edge516 ]
  %indvars.iv702 = phi i32 [ 1, %.lr.ph522.preheader ], [ %indvars.iv.next703, %._crit_edge516 ]
  %.6384519 = phi float [ 0.000000e+00, %.lr.ph522.preheader ], [ %.7385.lcssa, %._crit_edge516 ]
  %66 = load i32, ptr %4, align 4, !tbaa !5
  %67 = trunc nuw nsw i64 %indvars.iv708 to i32
  %reass.sub658 = sub i32 %66, %67
  %68 = add i32 %reass.sub658, 2
  %69 = add nsw i32 %66, 1
  %70 = call i32 @llvm.smax.i32(i32 %68, i32 1)
  %.not454511 = icmp sgt i32 %70, %69
  br i1 %.not454511, label %._crit_edge516, label %.lr.ph515

.lr.ph515:                                        ; preds = %.lr.ph522
  %71 = mul nsw i64 %indvars.iv708, %64
  %72 = add i32 %66, %indvars.iv702
  %smax704 = call i32 @llvm.smax.i32(i32 %72, i32 1)
  %73 = zext nneg i32 %smax704 to i64
  %74 = zext nneg i32 %66 to i64
  %invariant.gep845 = getelementptr %struct.complex, ptr %15, i64 %71
  br label %75

75:                                               ; preds = %.lr.ph515, %81
  %indvars.iv705 = phi i64 [ %73, %.lr.ph515 ], [ %indvars.iv.next706, %81 ]
  %.7385512 = phi float [ %.6384519, %.lr.ph515 ], [ %.8386, %81 ]
  %gep846 = getelementptr %struct.complex, ptr %invariant.gep845, i64 %indvars.iv705
  %76 = call <2 x float> @Cf(ptr noundef %gep846)
  %77 = call float @cabsf(<2 x float> noundef %76) #8
  store float %77, ptr %11, align 4, !tbaa !9
  %78 = fcmp olt float %.7385512, %77
  br i1 %78, label %81, label %79

79:                                               ; preds = %75
  %80 = call i32 @sisnan_(ptr noundef nonnull %11) #8
  %.not455 = icmp eq i32 %80, 0
  br i1 %.not455, label %81, label %._crit_edge817

._crit_edge817:                                   ; preds = %79
  %.pre818 = load float, ptr %11, align 4, !tbaa !9
  br label %81

81:                                               ; preds = %75, %._crit_edge817, %79
  %.8386 = phi float [ %.7385512, %79 ], [ %.pre818, %._crit_edge817 ], [ %77, %75 ]
  %indvars.iv.next706 = add nuw nsw i64 %indvars.iv705, 1
  %.not454 = icmp ugt i64 %indvars.iv705, %74
  br i1 %.not454, label %._crit_edge516, label %75, !llvm.loop !16

._crit_edge516:                                   ; preds = %81, %.lr.ph522
  %.7385.lcssa = phi float [ %.6384519, %.lr.ph522 ], [ %.8386, %81 ]
  %indvars.iv.next709 = add nuw nsw i64 %indvars.iv708, 1
  %indvars.iv.next703 = add nsw i32 %indvars.iv702, -1
  %exitcond712.not = icmp eq i64 %indvars.iv.next709, %wide.trip.count711
  br i1 %exitcond712.not, label %.loopexit466, label %.lr.ph522, !llvm.loop !17

82:                                               ; preds = %62
  br i1 %.not449531, label %.loopexit466, label %.lr.ph535.preheader

.lr.ph535.preheader:                              ; preds = %82
  %83 = sext i32 %13 to i64
  %84 = add nuw i32 %24, 1
  %wide.trip.count719 = zext i32 %84 to i64
  br label %.lr.ph535

.lr.ph535:                                        ; preds = %.lr.ph535.preheader, %._crit_edge529
  %indvars.iv716 = phi i64 [ 1, %.lr.ph535.preheader ], [ %indvars.iv.next717, %._crit_edge529 ]
  %.9387532 = phi float [ 0.000000e+00, %.lr.ph535.preheader ], [ %.10388.lcssa, %._crit_edge529 ]
  %85 = load i32, ptr %3, align 4, !tbaa !5
  %86 = trunc nuw nsw i64 %indvars.iv716 to i32
  %reass.sub659 = sub i32 %85, %86
  %87 = add i32 %reass.sub659, 1
  %88 = load i32, ptr %4, align 4, !tbaa !5
  %89 = add nsw i32 %88, 1
  %90 = call i32 @llvm.smin.i32(i32 %87, i32 %89)
  %.not451524 = icmp slt i32 %90, 1
  br i1 %.not451524, label %._crit_edge529, label %.lr.ph528

.lr.ph528:                                        ; preds = %.lr.ph535
  %91 = mul nsw i64 %indvars.iv716, %83
  %92 = zext nneg i32 %90 to i64
  %invariant.gep847 = getelementptr %struct.complex, ptr %15, i64 %91
  br label %93

93:                                               ; preds = %.lr.ph528, %99
  %indvars.iv713 = phi i64 [ 1, %.lr.ph528 ], [ %indvars.iv.next714, %99 ]
  %.10388525 = phi float [ %.9387532, %.lr.ph528 ], [ %.11389, %99 ]
  %gep848 = getelementptr %struct.complex, ptr %invariant.gep847, i64 %indvars.iv713
  %94 = call <2 x float> @Cf(ptr noundef %gep848)
  %95 = call float @cabsf(<2 x float> noundef %94) #8
  store float %95, ptr %11, align 4, !tbaa !9
  %96 = fcmp olt float %.10388525, %95
  br i1 %96, label %99, label %97

97:                                               ; preds = %93
  %98 = call i32 @sisnan_(ptr noundef nonnull %11) #8
  %.not452 = icmp eq i32 %98, 0
  br i1 %.not452, label %99, label %._crit_edge819

._crit_edge819:                                   ; preds = %97
  %.pre820 = load float, ptr %11, align 4, !tbaa !9
  br label %99

99:                                               ; preds = %93, %._crit_edge819, %97
  %.11389 = phi float [ %.10388525, %97 ], [ %.pre820, %._crit_edge819 ], [ %95, %93 ]
  %indvars.iv.next714 = add nuw nsw i64 %indvars.iv713, 1
  %.not451.not = icmp ult i64 %indvars.iv713, %92
  br i1 %.not451.not, label %93, label %._crit_edge529, !llvm.loop !18

._crit_edge529:                                   ; preds = %99, %.lr.ph535
  %.10388.lcssa = phi float [ %.9387532, %.lr.ph535 ], [ %.11389, %99 ]
  %indvars.iv.next717 = add nuw nsw i64 %indvars.iv716, 1
  %exitcond720.not = icmp eq i64 %indvars.iv.next717, %wide.trip.count719
  br i1 %exitcond720.not, label %.loopexit466, label %.lr.ph535, !llvm.loop !19

100:                                              ; preds = %19
  %101 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #8
  %.not399 = icmp eq i32 %101, 0
  br i1 %.not399, label %102, label %105

102:                                              ; preds = %100
  %103 = load i8, ptr %0, align 1, !tbaa !20
  %104 = icmp eq i8 %103, 49
  br i1 %104, label %105, label %186

105:                                              ; preds = %102, %100
  %106 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #8
  %107 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #8
  %.not434 = icmp eq i32 %107, 0
  %108 = load i32, ptr %3, align 4, !tbaa !5
  %.not435646 = icmp slt i32 %108, 1
  br i1 %.not434, label %148, label %109

109:                                              ; preds = %105
  br i1 %.not435646, label %.loopexit466, label %.lr.ph634

.lr.ph634:                                        ; preds = %109
  %.not443 = icmp eq i32 %106, 0
  %110 = sext i32 %13 to i64
  %111 = add nuw i32 %108, 1
  %wide.trip.count800 = zext i32 %111 to i64
  br label %112

112:                                              ; preds = %.lr.ph634, %145
  %indvars.iv796 = phi i64 [ 1, %.lr.ph634 ], [ %indvars.iv.next797, %145 ]
  %indvars.iv786 = phi i32 [ 1, %.lr.ph634 ], [ %indvars.iv.next787, %145 ]
  %.4368.neg632 = phi i32 [ -1, %.lr.ph634 ], [ %147, %145 ]
  %.12390627 = phi float [ 0.000000e+00, %.lr.ph634 ], [ %.13391, %145 ]
  %113 = add nsw i32 %.4368.neg632, 2
  br i1 %.not443, label %127, label %114

114:                                              ; preds = %112
  store float 1.000000e+00, ptr %11, align 4, !tbaa !9
  %115 = load i32, ptr %4, align 4, !tbaa !5
  %116 = add i32 %113, %115
  %117 = call i32 @llvm.smax.i32(i32 %116, i32 1)
  %.not445616 = icmp sgt i32 %117, %115
  br i1 %.not445616, label %.loopexit467, label %.lr.ph619

.lr.ph619:                                        ; preds = %114
  %118 = mul nsw i64 %indvars.iv796, %110
  %119 = add i32 %115, %indvars.iv786
  %smax788 = call i32 @llvm.smax.i32(i32 %119, i32 1)
  %120 = zext nneg i32 %smax788 to i64
  %invariant.gep849 = getelementptr %struct.complex, ptr %15, i64 %118
  %121 = sext i32 %115 to i64
  br label %122

122:                                              ; preds = %.lr.ph619, %122
  %indvars.iv789 = phi i64 [ %120, %.lr.ph619 ], [ %indvars.iv.next790, %122 ]
  %gep850 = getelementptr %struct.complex, ptr %invariant.gep849, i64 %indvars.iv789
  %123 = call <2 x float> @Cf(ptr noundef %gep850)
  %124 = call float @cabsf(<2 x float> noundef %123) #8
  %125 = load float, ptr %11, align 4, !tbaa !9
  %126 = fadd float %124, %125
  store float %126, ptr %11, align 4, !tbaa !9
  %indvars.iv.next790 = add nuw nsw i64 %indvars.iv789, 1
  %.not445.not = icmp slt i64 %indvars.iv789, %121
  br i1 %.not445.not, label %122, label %.loopexit467, !llvm.loop !21

127:                                              ; preds = %112
  store float 0.000000e+00, ptr %11, align 4, !tbaa !9
  %128 = load i32, ptr %4, align 4, !tbaa !5
  %129 = add i32 %113, %128
  %130 = add nsw i32 %128, 1
  %131 = call i32 @llvm.smax.i32(i32 %129, i32 1)
  %.not444621 = icmp sgt i32 %131, %130
  br i1 %.not444621, label %.loopexit467, label %.lr.ph624

.lr.ph624:                                        ; preds = %127
  %132 = mul nsw i64 %indvars.iv796, %110
  %133 = add i32 %128, %indvars.iv786
  %smax792 = call i32 @llvm.smax.i32(i32 %133, i32 1)
  %134 = zext nneg i32 %smax792 to i64
  %135 = zext nneg i32 %128 to i64
  %invariant.gep851 = getelementptr %struct.complex, ptr %15, i64 %132
  br label %136

136:                                              ; preds = %.lr.ph624, %136
  %indvars.iv793 = phi i64 [ %134, %.lr.ph624 ], [ %indvars.iv.next794, %136 ]
  %gep852 = getelementptr %struct.complex, ptr %invariant.gep851, i64 %indvars.iv793
  %137 = call <2 x float> @Cf(ptr noundef %gep852)
  %138 = call float @cabsf(<2 x float> noundef %137) #8
  %139 = load float, ptr %11, align 4, !tbaa !9
  %140 = fadd float %138, %139
  store float %140, ptr %11, align 4, !tbaa !9
  %indvars.iv.next794 = add nuw nsw i64 %indvars.iv793, 1
  %.not444 = icmp ugt i64 %indvars.iv793, %135
  br i1 %.not444, label %.loopexit467, label %136, !llvm.loop !22

.loopexit467:                                     ; preds = %122, %136, %114, %127
  %141 = phi float [ 1.000000e+00, %114 ], [ 0.000000e+00, %127 ], [ %140, %136 ], [ %126, %122 ]
  %142 = fcmp olt float %.12390627, %141
  br i1 %142, label %145, label %143

143:                                              ; preds = %.loopexit467
  %144 = call i32 @sisnan_(ptr noundef nonnull %11) #8
  %.not446 = icmp eq i32 %144, 0
  br i1 %.not446, label %145, label %._crit_edge823

._crit_edge823:                                   ; preds = %143
  %.pre824 = load float, ptr %11, align 4, !tbaa !9
  br label %145

145:                                              ; preds = %.loopexit467, %._crit_edge823, %143
  %.13391 = phi float [ %.12390627, %143 ], [ %.pre824, %._crit_edge823 ], [ %141, %.loopexit467 ]
  %indvars.iv.next797 = add nuw nsw i64 %indvars.iv796, 1
  %indvars.iv.next787 = add nsw i32 %indvars.iv786, -1
  %146 = trunc i64 %indvars.iv796 to i32
  %147 = xor i32 %146, -1
  %exitcond801.not = icmp eq i64 %indvars.iv.next797, %wide.trip.count800
  br i1 %exitcond801.not, label %.loopexit466, label %112, !llvm.loop !23

148:                                              ; preds = %105
  br i1 %.not435646, label %.loopexit466, label %.lr.ph654

.lr.ph654:                                        ; preds = %148
  %.not436 = icmp eq i32 %106, 0
  %149 = sext i32 %13 to i64
  %150 = add nuw i32 %108, 1
  %wide.trip.count812 = zext i32 %150 to i64
  br label %151

151:                                              ; preds = %.lr.ph654, %183
  %indvars.iv808 = phi i64 [ 1, %.lr.ph654 ], [ %indvars.iv.next809, %183 ]
  %.5369.neg652 = phi i32 [ -1, %.lr.ph654 ], [ %185, %183 ]
  %.14392647 = phi float [ 0.000000e+00, %.lr.ph654 ], [ %.15393, %183 ]
  %152 = add nsw i32 %.5369.neg652, 1
  br i1 %.not436, label %166, label %153

153:                                              ; preds = %151
  store float 1.000000e+00, ptr %11, align 4, !tbaa !9
  %154 = load i32, ptr %3, align 4, !tbaa !5
  %155 = add i32 %152, %154
  %156 = load i32, ptr %4, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  %158 = call i32 @llvm.smin.i32(i32 %155, i32 %157)
  %.not440636 = icmp slt i32 %158, 2
  br i1 %.not440636, label %.loopexit, label %.lr.ph639

.lr.ph639:                                        ; preds = %153
  %159 = mul nsw i64 %indvars.iv808, %149
  %160 = zext nneg i32 %158 to i64
  %invariant.gep853 = getelementptr %struct.complex, ptr %15, i64 %159
  br label %161

161:                                              ; preds = %.lr.ph639, %161
  %indvars.iv802 = phi i64 [ 2, %.lr.ph639 ], [ %indvars.iv.next803, %161 ]
  %gep854 = getelementptr %struct.complex, ptr %invariant.gep853, i64 %indvars.iv802
  %162 = call <2 x float> @Cf(ptr noundef %gep854)
  %163 = call float @cabsf(<2 x float> noundef %162) #8
  %164 = load float, ptr %11, align 4, !tbaa !9
  %165 = fadd float %163, %164
  store float %165, ptr %11, align 4, !tbaa !9
  %indvars.iv.next803 = add nuw nsw i64 %indvars.iv802, 1
  %.not440.not = icmp ult i64 %indvars.iv802, %160
  br i1 %.not440.not, label %161, label %.loopexit, !llvm.loop !24

166:                                              ; preds = %151
  store float 0.000000e+00, ptr %11, align 4, !tbaa !9
  %167 = load i32, ptr %3, align 4, !tbaa !5
  %168 = add i32 %152, %167
  %169 = load i32, ptr %4, align 4, !tbaa !5
  %170 = add nsw i32 %169, 1
  %171 = call i32 @llvm.smin.i32(i32 %168, i32 %170)
  %.not438641 = icmp slt i32 %171, 1
  br i1 %.not438641, label %.loopexit, label %.lr.ph644

.lr.ph644:                                        ; preds = %166
  %172 = mul nsw i64 %indvars.iv808, %149
  %173 = zext nneg i32 %171 to i64
  %invariant.gep855 = getelementptr %struct.complex, ptr %15, i64 %172
  br label %174

174:                                              ; preds = %.lr.ph644, %174
  %indvars.iv805 = phi i64 [ 1, %.lr.ph644 ], [ %indvars.iv.next806, %174 ]
  %gep856 = getelementptr %struct.complex, ptr %invariant.gep855, i64 %indvars.iv805
  %175 = call <2 x float> @Cf(ptr noundef %gep856)
  %176 = call float @cabsf(<2 x float> noundef %175) #8
  %177 = load float, ptr %11, align 4, !tbaa !9
  %178 = fadd float %176, %177
  store float %178, ptr %11, align 4, !tbaa !9
  %indvars.iv.next806 = add nuw nsw i64 %indvars.iv805, 1
  %.not438.not = icmp ult i64 %indvars.iv805, %173
  br i1 %.not438.not, label %174, label %.loopexit, !llvm.loop !25

.loopexit:                                        ; preds = %161, %174, %153, %166
  %179 = phi float [ 1.000000e+00, %153 ], [ 0.000000e+00, %166 ], [ %178, %174 ], [ %165, %161 ]
  %180 = fcmp olt float %.14392647, %179
  br i1 %180, label %183, label %181

181:                                              ; preds = %.loopexit
  %182 = call i32 @sisnan_(ptr noundef nonnull %11) #8
  %.not441 = icmp eq i32 %182, 0
  br i1 %.not441, label %183, label %._crit_edge825

._crit_edge825:                                   ; preds = %181
  %.pre826 = load float, ptr %11, align 4, !tbaa !9
  br label %183

183:                                              ; preds = %.loopexit, %._crit_edge825, %181
  %.15393 = phi float [ %.14392647, %181 ], [ %.pre826, %._crit_edge825 ], [ %179, %.loopexit ]
  %indvars.iv.next809 = add nuw nsw i64 %indvars.iv808, 1
  %184 = trunc i64 %indvars.iv808 to i32
  %185 = xor i32 %184, -1
  %exitcond813.not = icmp eq i64 %indvars.iv.next809, %wide.trip.count812
  br i1 %exitcond813.not, label %.loopexit466, label %151, !llvm.loop !26

186:                                              ; preds = %102
  %187 = tail call i32 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.3) #8
  %.not400 = icmp eq i32 %187, 0
  br i1 %.not400, label %294, label %188

188:                                              ; preds = %186
  %189 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #8
  %.not414 = icmp eq i32 %189, 0
  %190 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #8
  %.not415 = icmp eq i32 %190, 0
  %191 = load i32, ptr %3, align 4, !tbaa !5
  %.not416579 = icmp slt i32 %191, 1
  br i1 %.not414, label %239, label %192

192:                                              ; preds = %188
  br i1 %.not415, label %219, label %193

193:                                              ; preds = %192
  br i1 %.not416579, label %.loopexit477, label %.lr.ph540.preheader

.lr.ph540.preheader:                              ; preds = %193
  %194 = add nuw i32 %191, 1
  %wide.trip.count724 = zext i32 %194 to i64
  %195 = zext nneg i32 %191 to i64
  %min.iters.check = icmp ult i32 %191, 8
  br i1 %min.iters.check, label %.lr.ph540.preheader901, label %vector.ph

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

vector.ph:                                        ; preds = %.lr.ph540.preheader
  %n.vec = and i64 %195, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %196 = getelementptr float, ptr %7, i64 %index
  %197 = getelementptr inbounds i8, ptr %196, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %196, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %197, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %198 = icmp eq i64 %index.next, %n.vec
  br i1 %198, label %middle.block, label %vector.body, !llvm.loop !27

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %195
  br i1 %cmp.n, label %.preheader483, label %.lr.ph540.preheader901

.preheader483:                                    ; preds = %.lr.ph540, %middle.block
  br i1 %.not416579, label %.loopexit477, label %.lr.ph548.preheader

.lr.ph548.preheader:                              ; preds = %.preheader483
  %199 = add nuw i32 %191, 1
  %wide.trip.count733 = zext i32 %199 to i64
  %.6370547661 = add i32 %13, -1
  br label %.lr.ph548

.lr.ph540:                                        ; preds = %.lr.ph540.preheader901, %.lr.ph540
  %indvars.iv721 = phi i64 [ %indvars.iv.next722, %.lr.ph540 ], [ %indvars.iv721.ph, %.lr.ph540.preheader901 ]
  %200 = getelementptr inbounds float, ptr %16, i64 %indvars.iv721
  store float 1.000000e+00, ptr %200, align 4, !tbaa !9
  %indvars.iv.next722 = add nuw nsw i64 %indvars.iv721, 1
  %exitcond725.not = icmp eq i64 %indvars.iv.next722, %wide.trip.count724
  br i1 %exitcond725.not, label %.preheader483, label %.lr.ph540, !llvm.loop !30

.lr.ph548:                                        ; preds = %.lr.ph548.preheader, %._crit_edge545
  %indvars.iv730 = phi i64 [ 1, %.lr.ph548.preheader ], [ %indvars.iv.next731, %._crit_edge545 ]
  %201 = load i32, ptr %4, align 4, !tbaa !5
  %202 = trunc nuw nsw i64 %indvars.iv730 to i32
  %203 = sub i32 %202, %201
  %204 = tail call i32 @llvm.smax.i32(i32 %203, i32 1)
  %205 = zext nneg i32 %204 to i64
  %.not433.not541 = icmp ugt i64 %indvars.iv730, %205
  br i1 %.not433.not541, label %.lr.ph544, label %._crit_edge545

.lr.ph544:                                        ; preds = %.lr.ph548
  %reass.sub660 = mul i32 %.6370547661, %202
  %206 = add i32 %reass.sub660, 1
  %207 = add i32 %206, %201
  br label %208

208:                                              ; preds = %.lr.ph544, %208
  %indvars.iv727 = phi i64 [ %205, %.lr.ph544 ], [ %indvars.iv.next728, %208 ]
  %209 = trunc nuw nsw i64 %indvars.iv727 to i32
  %210 = add i32 %207, %209
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds %struct.complex, ptr %15, i64 %211
  %213 = tail call <2 x float> @Cf(ptr noundef %212)
  %214 = tail call float @cabsf(<2 x float> noundef %213) #8
  %215 = getelementptr inbounds float, ptr %16, i64 %indvars.iv727
  %216 = load float, ptr %215, align 4, !tbaa !9
  %217 = fadd float %214, %216
  store float %217, ptr %215, align 4, !tbaa !9
  %indvars.iv.next728 = add nuw nsw i64 %indvars.iv727, 1
  %218 = icmp ult i64 %indvars.iv.next728, %indvars.iv730
  br i1 %218, label %208, label %._crit_edge545, !llvm.loop !31

._crit_edge545:                                   ; preds = %208, %.lr.ph548
  %indvars.iv.next731 = add nuw nsw i64 %indvars.iv730, 1
  %exitcond734.not = icmp eq i64 %indvars.iv.next731, %wide.trip.count733
  br i1 %exitcond734.not, label %.loopexit477, label %.lr.ph548, !llvm.loop !32

219:                                              ; preds = %192
  br i1 %.not416579, label %.loopexit477, label %.lr.ph563.preheader

.lr.ph563.preheader:                              ; preds = %219
  %220 = zext nneg i32 %191 to i64
  %221 = shl nuw nsw i64 %220, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %7, i8 0, i64 %221, i1 false), !tbaa !9
  %222 = add nuw i32 %191, 1
  %wide.trip.count745 = zext i32 %222 to i64
  %.7371562663 = add i32 %13, -1
  br label %.lr.ph563

.lr.ph563:                                        ; preds = %.lr.ph563.preheader, %._crit_edge558
  %indvars.iv742 = phi i64 [ 1, %.lr.ph563.preheader ], [ %indvars.iv.next743, %._crit_edge558 ]
  %223 = load i32, ptr %4, align 4, !tbaa !5
  %.not428554 = icmp slt i32 %223, 0
  br i1 %.not428554, label %._crit_edge558, label %.lr.ph557

.lr.ph557:                                        ; preds = %.lr.ph563
  %224 = trunc nuw nsw i64 %indvars.iv742 to i32
  %reass.sub662 = mul i32 %.7371562663, %224
  %225 = add i32 %reass.sub662, 1
  %226 = add i32 %225, %223
  %227 = sub i32 %224, %223
  %smax738 = tail call i32 @llvm.smax.i32(i32 %227, i32 1)
  %228 = zext nneg i32 %smax738 to i64
  br label %229

229:                                              ; preds = %.lr.ph557, %229
  %indvars.iv739 = phi i64 [ %228, %.lr.ph557 ], [ %indvars.iv.next740, %229 ]
  %230 = trunc nuw nsw i64 %indvars.iv739 to i32
  %231 = add i32 %226, %230
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds %struct.complex, ptr %15, i64 %232
  %234 = tail call <2 x float> @Cf(ptr noundef %233)
  %235 = tail call float @cabsf(<2 x float> noundef %234) #8
  %236 = getelementptr inbounds float, ptr %16, i64 %indvars.iv739
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = fadd float %235, %237
  store float %238, ptr %236, align 4, !tbaa !9
  %indvars.iv.next740 = add nuw nsw i64 %indvars.iv739, 1
  %.not428.not = icmp ult i64 %indvars.iv739, %indvars.iv742
  br i1 %.not428.not, label %229, label %._crit_edge558, !llvm.loop !33

._crit_edge558:                                   ; preds = %229, %.lr.ph563
  %indvars.iv.next743 = add nuw nsw i64 %indvars.iv742, 1
  %exitcond746.not = icmp eq i64 %indvars.iv.next743, %wide.trip.count745
  br i1 %exitcond746.not, label %.loopexit477, label %.lr.ph563, !llvm.loop !34

239:                                              ; preds = %188
  br i1 %.not415, label %266, label %240

240:                                              ; preds = %239
  br i1 %.not416579, label %.loopexit477, label %.lr.ph568.preheader

.lr.ph568.preheader:                              ; preds = %240
  %241 = add nuw i32 %191, 1
  %wide.trip.count750 = zext i32 %241 to i64
  %242 = zext nneg i32 %191 to i64
  %min.iters.check876 = icmp ult i32 %191, 8
  br i1 %min.iters.check876, label %.lr.ph568.preheader898, label %vector.ph877

.lr.ph568.preheader898:                           ; preds = %middle.block874, %.lr.ph568.preheader
  %indvars.iv747.ph = phi i64 [ 1, %.lr.ph568.preheader ], [ %ind.end880, %middle.block874 ]
  br label %.lr.ph568

vector.ph877:                                     ; preds = %.lr.ph568.preheader
  %n.vec879 = and i64 %242, 2147483640
  %ind.end880 = or disjoint i64 %n.vec879, 1
  br label %vector.body882

vector.body882:                                   ; preds = %vector.body882, %vector.ph877
  %index883 = phi i64 [ 0, %vector.ph877 ], [ %index.next885, %vector.body882 ]
  %243 = getelementptr float, ptr %7, i64 %index883
  %244 = getelementptr inbounds i8, ptr %243, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %243, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %244, align 4, !tbaa !9
  %index.next885 = add nuw i64 %index883, 8
  %245 = icmp eq i64 %index.next885, %n.vec879
  br i1 %245, label %middle.block874, label %vector.body882, !llvm.loop !35

middle.block874:                                  ; preds = %vector.body882
  %cmp.n886 = icmp eq i64 %n.vec879, %242
  br i1 %cmp.n886, label %.preheader479, label %.lr.ph568.preheader898

.preheader479:                                    ; preds = %.lr.ph568, %middle.block874
  br i1 %.not416579, label %.loopexit477, label %.lr.ph577.preheader

.lr.ph577.preheader:                              ; preds = %.preheader479
  %.8372576665 = add i32 %13, -1
  %246 = add nuw i32 %191, 1
  br label %.lr.ph577

.lr.ph568:                                        ; preds = %.lr.ph568.preheader898, %.lr.ph568
  %indvars.iv747 = phi i64 [ %indvars.iv.next748, %.lr.ph568 ], [ %indvars.iv747.ph, %.lr.ph568.preheader898 ]
  %247 = getelementptr inbounds float, ptr %16, i64 %indvars.iv747
  store float 1.000000e+00, ptr %247, align 4, !tbaa !9
  %indvars.iv.next748 = add nuw nsw i64 %indvars.iv747, 1
  %exitcond751.not = icmp eq i64 %indvars.iv.next748, %wide.trip.count750
  br i1 %exitcond751.not, label %.preheader479, label %.lr.ph568, !llvm.loop !36

.loopexit478:                                     ; preds = %256, %.lr.ph577
  %indvars.iv.next753 = add nuw i32 %indvars.iv752, 1
  %exitcond757.not = icmp eq i32 %indvars.iv752, %246
  br i1 %exitcond757.not, label %.loopexit477, label %.lr.ph577, !llvm.loop !37

.lr.ph577:                                        ; preds = %.lr.ph577.preheader, %.loopexit478
  %indvars.iv752 = phi i32 [ 2, %.lr.ph577.preheader ], [ %indvars.iv.next753, %.loopexit478 ]
  %.8372576 = phi i32 [ 1, %.lr.ph577.preheader ], [ %252, %.loopexit478 ]
  %248 = load i32, ptr %3, align 4, !tbaa !5
  %249 = load i32, ptr %4, align 4, !tbaa !5
  %250 = add nsw i32 %249, %.8372576
  %251 = tail call i32 @llvm.smin.i32(i32 %248, i32 %250)
  %252 = add nuw nsw i32 %.8372576, 1
  %.not423569.not = icmp slt i32 %.8372576, %251
  br i1 %.not423569.not, label %.lr.ph572, label %.loopexit478

.lr.ph572:                                        ; preds = %.lr.ph577
  %253 = sext i32 %indvars.iv752 to i64
  %reass.sub664 = mul i32 %.8372576, %.8372576665
  %254 = add i32 %reass.sub664, 1
  %255 = sext i32 %251 to i64
  br label %256

256:                                              ; preds = %.lr.ph572, %256
  %indvars.iv754 = phi i64 [ %253, %.lr.ph572 ], [ %indvars.iv.next755, %256 ]
  %257 = trunc nsw i64 %indvars.iv754 to i32
  %258 = add i32 %254, %257
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds %struct.complex, ptr %15, i64 %259
  %261 = tail call <2 x float> @Cf(ptr noundef %260)
  %262 = tail call float @cabsf(<2 x float> noundef %261) #8
  %263 = getelementptr inbounds float, ptr %16, i64 %indvars.iv754
  %264 = load float, ptr %263, align 4, !tbaa !9
  %265 = fadd float %262, %264
  store float %265, ptr %263, align 4, !tbaa !9
  %indvars.iv.next755 = add nuw nsw i64 %indvars.iv754, 1
  %.not423.not = icmp slt i64 %indvars.iv754, %255
  br i1 %.not423.not, label %256, label %.loopexit478, !llvm.loop !38

266:                                              ; preds = %239
  br i1 %.not416579, label %.loopexit477, label %.lr.ph592.preheader

.lr.ph592.preheader:                              ; preds = %266
  %267 = zext nneg i32 %191 to i64
  %268 = shl nuw nsw i64 %267, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %7, i8 0, i64 %268, i1 false), !tbaa !9
  %269 = add nuw i32 %191, 1
  %wide.trip.count767 = zext i32 %269 to i64
  %.9373591667 = add i32 %13, -1
  br label %.lr.ph592

.lr.ph592:                                        ; preds = %.lr.ph592.preheader, %._crit_edge587
  %indvars.iv761 = phi i64 [ 1, %.lr.ph592.preheader ], [ %indvars.iv.next762, %._crit_edge587 ]
  %indvars766 = trunc i64 %indvars.iv761 to i32
  %270 = load i32, ptr %3, align 4, !tbaa !5
  %271 = load i32, ptr %4, align 4, !tbaa !5
  %272 = add nsw i32 %271, %indvars766
  %273 = tail call i32 @llvm.smin.i32(i32 %270, i32 %272)
  %.not419583 = icmp slt i32 %273, %indvars766
  br i1 %.not419583, label %._crit_edge587, label %.lr.ph586

.lr.ph586:                                        ; preds = %.lr.ph592
  %reass.sub666 = mul i32 %.9373591667, %indvars766
  %274 = add i32 %reass.sub666, 1
  %275 = sext i32 %273 to i64
  br label %276

276:                                              ; preds = %.lr.ph586, %276
  %indvars.iv763 = phi i64 [ %indvars.iv761, %.lr.ph586 ], [ %indvars.iv.next764, %276 ]
  %277 = trunc nuw nsw i64 %indvars.iv763 to i32
  %278 = add i32 %274, %277
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds %struct.complex, ptr %15, i64 %279
  %281 = tail call <2 x float> @Cf(ptr noundef %280)
  %282 = tail call float @cabsf(<2 x float> noundef %281) #8
  %283 = getelementptr inbounds float, ptr %16, i64 %indvars.iv763
  %284 = load float, ptr %283, align 4, !tbaa !9
  %285 = fadd float %282, %284
  store float %285, ptr %283, align 4, !tbaa !9
  %indvars.iv.next764 = add nuw nsw i64 %indvars.iv763, 1
  %.not419.not = icmp slt i64 %indvars.iv763, %275
  br i1 %.not419.not, label %276, label %._crit_edge587, !llvm.loop !39

._crit_edge587:                                   ; preds = %276, %.lr.ph592
  %indvars.iv.next762 = add nuw nsw i64 %indvars.iv761, 1
  %exitcond768.not = icmp eq i64 %indvars.iv.next762, %wide.trip.count767
  br i1 %exitcond768.not, label %.loopexit477, label %.lr.ph592, !llvm.loop !40

.loopexit477:                                     ; preds = %._crit_edge545, %._crit_edge558, %.loopexit478, %._crit_edge587, %.preheader483, %193, %219, %.preheader479, %240, %266
  %286 = load i32, ptr %3, align 4, !tbaa !5
  %.not431594 = icmp slt i32 %286, 1
  br i1 %.not431594, label %.loopexit466, label %.lr.ph598.preheader

.lr.ph598.preheader:                              ; preds = %.loopexit477
  %287 = add nuw i32 %286, 1
  %wide.trip.count772 = zext i32 %287 to i64
  br label %.lr.ph598

.lr.ph598:                                        ; preds = %.lr.ph598.preheader, %293
  %indvars.iv769 = phi i64 [ 1, %.lr.ph598.preheader ], [ %indvars.iv.next770, %293 ]
  %.16394595 = phi float [ 0.000000e+00, %.lr.ph598.preheader ], [ %.17, %293 ]
  %288 = getelementptr inbounds float, ptr %16, i64 %indvars.iv769
  %289 = load float, ptr %288, align 4, !tbaa !9
  store float %289, ptr %11, align 4, !tbaa !9
  %290 = fcmp olt float %.16394595, %289
  br i1 %290, label %293, label %291

291:                                              ; preds = %.lr.ph598
  %292 = call i32 @sisnan_(ptr noundef nonnull %11) #8
  %.not432 = icmp eq i32 %292, 0
  br i1 %.not432, label %293, label %._crit_edge821

._crit_edge821:                                   ; preds = %291
  %.pre822 = load float, ptr %11, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %.lr.ph598, %._crit_edge821, %291
  %.17 = phi float [ %.16394595, %291 ], [ %.pre822, %._crit_edge821 ], [ %289, %.lr.ph598 ]
  %indvars.iv.next770 = add nuw nsw i64 %indvars.iv769, 1
  %exitcond773.not = icmp eq i64 %indvars.iv.next770, %wide.trip.count772
  br i1 %exitcond773.not, label %.loopexit466, label %.lr.ph598, !llvm.loop !41

294:                                              ; preds = %186
  %295 = tail call i32 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.4) #8
  %.not401 = icmp eq i32 %295, 0
  br i1 %.not401, label %296, label %298

296:                                              ; preds = %294
  %297 = tail call i32 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.5) #8
  %.not402 = icmp eq i32 %297, 0
  br i1 %.not402, label %.loopexit466, label %298

298:                                              ; preds = %296, %294
  %299 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #8
  %.not403 = icmp eq i32 %299, 0
  %300 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #8
  %.not404 = icmp eq i32 %300, 0
  br i1 %.not403, label %333, label %301

301:                                              ; preds = %298
  br i1 %.not404, label %319, label %302

302:                                              ; preds = %301
  store float 1.000000e+00, ptr %12, align 8, !tbaa !9
  %303 = load i32, ptr %3, align 4, !tbaa !5
  %304 = sitofp i32 %303 to float
  %305 = getelementptr inbounds i8, ptr %12, i64 4
  store float %304, ptr %305, align 4, !tbaa !9
  %306 = load i32, ptr %4, align 4, !tbaa !5
  %307 = icmp slt i32 %306, 1
  %.not412600 = icmp slt i32 %303, 2
  %or.cond = select i1 %307, i1 true, i1 %.not412600
  br i1 %or.cond, label %.loopexit470, label %.lr.ph602

.lr.ph602:                                        ; preds = %302
  %308 = getelementptr inbounds i8, ptr %10, i64 4
  br label %309

309:                                              ; preds = %.lr.ph602, %309
  %.10374601 = phi i32 [ 2, %.lr.ph602 ], [ %318, %309 ]
  store <2 x float> <float 0.000000e+00, float 1.000000e+00>, ptr %10, align 8, !tbaa !9
  %310 = add nsw i32 %.10374601, -1
  %311 = load i32, ptr %4, align 4, !tbaa !5
  %. = call i32 @llvm.smin.i32(i32 %310, i32 %311)
  store i32 %., ptr %9, align 4, !tbaa !5
  %reass.sub = sub i32 %311, %.10374601
  %312 = add i32 %reass.sub, 2
  %313 = call i32 @llvm.smax.i32(i32 %312, i32 1)
  %314 = mul nsw i32 %.10374601, %13
  %315 = add nsw i32 %313, %314
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds %struct.complex, ptr %15, i64 %316
  call void @classq_(ptr noundef nonnull %9, ptr noundef %317, ptr noundef nonnull @c__1, ptr noundef nonnull %10, ptr noundef nonnull %308) #8
  call void @scombssq_(ptr noundef nonnull %12, ptr noundef nonnull %10) #8
  %318 = add nuw i32 %.10374601, 1
  %exitcond774.not = icmp eq i32 %.10374601, %303
  br i1 %exitcond774.not, label %.loopexit470, label %309, !llvm.loop !42

319:                                              ; preds = %301
  store <2 x float> <float 0.000000e+00, float 1.000000e+00>, ptr %12, align 8, !tbaa !9
  %320 = load i32, ptr %3, align 4, !tbaa !5
  %.not410603 = icmp slt i32 %320, 1
  br i1 %.not410603, label %.loopexit470, label %.lr.ph606

.lr.ph606:                                        ; preds = %319
  %321 = getelementptr inbounds i8, ptr %10, i64 4
  br label %322

322:                                              ; preds = %.lr.ph606, %322
  %.11375604 = phi i32 [ 1, %.lr.ph606 ], [ %332, %322 ]
  store <2 x float> <float 0.000000e+00, float 1.000000e+00>, ptr %10, align 8, !tbaa !9
  %323 = load i32, ptr %4, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  %325 = call i32 @llvm.smin.i32(i32 %.11375604, i32 %324)
  store i32 %325, ptr %9, align 4, !tbaa !5
  %reass.sub668 = sub i32 %323, %.11375604
  %326 = add i32 %reass.sub668, 2
  %327 = call i32 @llvm.smax.i32(i32 %326, i32 1)
  %328 = mul nsw i32 %.11375604, %13
  %329 = add nsw i32 %327, %328
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds %struct.complex, ptr %15, i64 %330
  call void @classq_(ptr noundef nonnull %9, ptr noundef %331, ptr noundef nonnull @c__1, ptr noundef nonnull %10, ptr noundef nonnull %321) #8
  call void @scombssq_(ptr noundef nonnull %12, ptr noundef nonnull %10) #8
  %332 = add nuw i32 %.11375604, 1
  %exitcond775.not = icmp eq i32 %.11375604, %320
  br i1 %exitcond775.not, label %.loopexit470, label %322, !llvm.loop !43

333:                                              ; preds = %298
  br i1 %.not404, label %348, label %334

334:                                              ; preds = %333
  store float 1.000000e+00, ptr %12, align 8, !tbaa !9
  %335 = load i32, ptr %3, align 4, !tbaa !5
  %336 = sitofp i32 %335 to float
  %337 = getelementptr inbounds i8, ptr %12, i64 4
  store float %336, ptr %337, align 4, !tbaa !9
  %338 = load i32, ptr %4, align 4, !tbaa !5
  %339 = icmp sgt i32 %338, 0
  br i1 %339, label %.preheader, label %.loopexit470

.preheader:                                       ; preds = %334
  %invariant.gep = getelementptr i8, ptr %15, i64 16
  %.not407.not607 = icmp sgt i32 %335, 1
  br i1 %.not407.not607, label %.lr.ph609, label %.loopexit470

.lr.ph609:                                        ; preds = %.preheader
  %340 = getelementptr inbounds i8, ptr %10, i64 4
  %341 = sext i32 %13 to i64
  %wide.trip.count779 = zext nneg i32 %335 to i64
  br label %342

342:                                              ; preds = %.lr.ph609, %342
  %indvars.iv776 = phi i64 [ 1, %.lr.ph609 ], [ %indvars.iv.next777, %342 ]
  store <2 x float> <float 0.000000e+00, float 1.000000e+00>, ptr %10, align 8, !tbaa !9
  %343 = load i32, ptr %3, align 4, !tbaa !5
  %344 = trunc nuw nsw i64 %indvars.iv776 to i32
  %345 = sub nsw i32 %343, %344
  %346 = load i32, ptr %4, align 4, !tbaa !5
  %.464 = call i32 @llvm.smin.i32(i32 %345, i32 %346)
  store i32 %.464, ptr %9, align 4, !tbaa !5
  %347 = mul nsw i64 %indvars.iv776, %341
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %347
  call void @classq_(ptr noundef nonnull %9, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %10, ptr noundef nonnull %340) #8
  call void @scombssq_(ptr noundef nonnull %12, ptr noundef nonnull %10) #8
  %indvars.iv.next777 = add nuw nsw i64 %indvars.iv776, 1
  %exitcond780.not = icmp eq i64 %indvars.iv.next777, %wide.trip.count779
  br i1 %exitcond780.not, label %.loopexit470, label %342, !llvm.loop !44

348:                                              ; preds = %333
  store <2 x float> <float 0.000000e+00, float 1.000000e+00>, ptr %12, align 8, !tbaa !9
  %349 = load i32, ptr %3, align 4, !tbaa !5
  %invariant.gep610 = getelementptr i8, ptr %15, i64 8
  %.not405612 = icmp slt i32 %349, 1
  br i1 %.not405612, label %.loopexit470, label %.lr.ph615

.lr.ph615:                                        ; preds = %348
  %350 = getelementptr inbounds i8, ptr %10, i64 4
  %351 = sext i32 %13 to i64
  %352 = add nuw i32 %349, 1
  %wide.trip.count784 = zext i32 %352 to i64
  br label %353

353:                                              ; preds = %.lr.ph615, %353
  %indvars.iv781 = phi i64 [ 1, %.lr.ph615 ], [ %indvars.iv.next782, %353 ]
  store <2 x float> <float 0.000000e+00, float 1.000000e+00>, ptr %10, align 8, !tbaa !9
  %354 = load i32, ptr %3, align 4, !tbaa !5
  %355 = trunc nuw nsw i64 %indvars.iv781 to i32
  %reass.sub669 = sub i32 %354, %355
  %356 = add i32 %reass.sub669, 1
  %357 = load i32, ptr %4, align 4, !tbaa !5
  %358 = add nsw i32 %357, 1
  %359 = call i32 @llvm.smin.i32(i32 %356, i32 %358)
  store i32 %359, ptr %9, align 4, !tbaa !5
  %360 = mul nsw i64 %indvars.iv781, %351
  %gep611 = getelementptr %struct.complex, ptr %invariant.gep610, i64 %360
  call void @classq_(ptr noundef nonnull %9, ptr noundef %gep611, ptr noundef nonnull @c__1, ptr noundef nonnull %10, ptr noundef nonnull %350) #8
  call void @scombssq_(ptr noundef nonnull %12, ptr noundef nonnull %10) #8
  %indvars.iv.next782 = add nuw nsw i64 %indvars.iv781, 1
  %exitcond785.not = icmp eq i64 %indvars.iv.next782, %wide.trip.count784
  br i1 %exitcond785.not, label %.loopexit470, label %353, !llvm.loop !45

.loopexit470:                                     ; preds = %309, %322, %342, %353, %319, %.preheader, %348, %334, %302
  %361 = load float, ptr %12, align 8, !tbaa !9
  %362 = fpext float %361 to double
  %363 = getelementptr inbounds i8, ptr %12, i64 4
  %364 = load float, ptr %363, align 4, !tbaa !9
  %365 = fpext float %364 to double
  %366 = call double @sqrt(double noundef %365) #8
  %367 = fmul double %366, %362
  %368 = fptrunc double %367 to float
  br label %.loopexit466

.loopexit466:                                     ; preds = %._crit_edge, %._crit_edge503, %._crit_edge516, %._crit_edge529, %293, %145, %183, %26, %44, %63, %82, %.loopexit477, %109, %148, %8, %.loopexit470, %296
  %.18 = phi float [ %368, %.loopexit470 ], [ undef, %296 ], [ 0.000000e+00, %8 ], [ 0.000000e+00, %148 ], [ 0.000000e+00, %109 ], [ 0.000000e+00, %.loopexit477 ], [ 0.000000e+00, %82 ], [ 0.000000e+00, %63 ], [ 1.000000e+00, %44 ], [ 1.000000e+00, %26 ], [ %.15393, %183 ], [ %.13391, %145 ], [ %.17, %293 ], [ %.10388.lcssa, %._crit_edge529 ], [ %.7385.lcssa, %._crit_edge516 ], [ %.4382.lcssa, %._crit_edge503 ], [ %.1379.lcssa, %._crit_edge ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  ret float %.18
}

; 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

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

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

declare i32 @sisnan_(ptr noundef) local_unnamed_addr #2

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

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

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

; 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) #6

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

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

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

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


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