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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b36 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local void @clatrs_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10) #0 {
  %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 ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca %struct.complex, align 4
  %35 = alloca %struct.complex, align 4
  %36 = alloca %struct.complex, align 4
  %37 = alloca %struct.complex, align 4
  %38 = alloca i32, align 4
  %39 = alloca float, align 4
  %40 = alloca i32, align 4
  %41 = alloca float, align 4
  %42 = alloca %struct.complex, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca float, align 4
  %48 = alloca %struct.complex, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.complex, align 4
  %51 = alloca i32, align 4
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca float, align 4
  %57 = alloca i32, align 4
  %58 = alloca float, align 4
  %59 = alloca float, align 4
  %60 = alloca i32, align 4
  %61 = alloca { float, float }, align 4
  %62 = alloca { float, float }, align 4
  %63 = alloca { float, float }, align 4
  %64 = alloca { float, float }, align 4
  %65 = alloca { float, float }, align 4
  %66 = alloca { float, float }, align 4
  %67 = alloca { float, float }, align 4
  %68 = alloca { float, float }, align 4
  %69 = alloca { float, float }, align 4
  %70 = alloca { float, float }, align 4
  %71 = alloca { float, float }, align 4
  %72 = alloca { float, float }, align 4
  %73 = alloca { float, float }, align 4
  %74 = alloca { float, float }, align 4
  %75 = alloca { float, float }, align 4
  %76 = alloca { float, float }, align 4
  %77 = alloca { float, float }, align 4
  %78 = alloca { float, float }, align 4
  %79 = alloca { float, float }, align 4
  %80 = alloca { float, float }, align 4
  %81 = alloca { float, float }, align 4
  %82 = alloca { float, float }, align 4
  %83 = alloca { float, float }, align 4
  store ptr %0, ptr %12, align 8, !tbaa !5
  store ptr %1, ptr %13, align 8, !tbaa !5
  store ptr %2, ptr %14, align 8, !tbaa !5
  store ptr %3, ptr %15, align 8, !tbaa !5
  store ptr %4, ptr %16, align 8, !tbaa !5
  store ptr %5, ptr %17, align 8, !tbaa !5
  store ptr %6, ptr %18, align 8, !tbaa !5
  store ptr %7, ptr %19, align 8, !tbaa !5
  store ptr %8, ptr %20, align 8, !tbaa !5
  store ptr %9, ptr %21, align 8, !tbaa !5
  store ptr %10, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  %84 = load ptr, ptr %18, align 8, !tbaa !5
  %85 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %85, ptr %23, align 4, !tbaa !9
  %86 = load i32, ptr %23, align 4, !tbaa !9
  %87 = mul nsw i32 %86, 1
  %88 = add nsw i32 1, %87
  store i32 %88, ptr %24, align 4, !tbaa !9
  %89 = load i32, ptr %24, align 4, !tbaa !9
  %90 = load ptr, ptr %17, align 8, !tbaa !5
  %91 = sext i32 %89 to i64
  %92 = sub i64 0, %91
  %93 = getelementptr inbounds %struct.complex, ptr %90, i64 %92
  store ptr %93, ptr %17, align 8, !tbaa !5
  %94 = load ptr, ptr %19, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.complex, ptr %94, i32 -1
  store ptr %95, ptr %19, align 8, !tbaa !5
  %96 = load ptr, ptr %21, align 8, !tbaa !5
  %97 = getelementptr inbounds float, ptr %96, i32 -1
  store ptr %97, ptr %21, align 8, !tbaa !5
  %98 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 0, ptr %98, align 4, !tbaa !9
  %99 = load ptr, ptr %12, align 8, !tbaa !5
  %100 = call i32 @lsame_(ptr noundef %99, ptr noundef @.str)
  store i32 %100, ptr %51, align 4, !tbaa !9
  %101 = load ptr, ptr %13, align 8, !tbaa !5
  %102 = call i32 @lsame_(ptr noundef %101, ptr noundef @.str.1)
  store i32 %102, ptr %54, align 4, !tbaa !9
  %103 = load ptr, ptr %14, align 8, !tbaa !5
  %104 = call i32 @lsame_(ptr noundef %103, ptr noundef @.str.1)
  store i32 %104, ptr %57, align 4, !tbaa !9
  %105 = load i32, ptr %51, align 4, !tbaa !9
  %106 = icmp ne i32 %105, 0
  br i1 %106, label %113, label %107

107:                                              ; preds = %11
  %108 = load ptr, ptr %12, align 8, !tbaa !5
  %109 = call i32 @lsame_(ptr noundef %108, ptr noundef @.str.2)
  %110 = icmp ne i32 %109, 0
  br i1 %110, label %113, label %111

111:                                              ; preds = %107
  %112 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 -1, ptr %112, align 4, !tbaa !9
  br label %171

113:                                              ; preds = %107, %11
  %114 = load i32, ptr %54, align 4, !tbaa !9
  %115 = icmp ne i32 %114, 0
  br i1 %115, label %126, label %116

116:                                              ; preds = %113
  %117 = load ptr, ptr %13, align 8, !tbaa !5
  %118 = call i32 @lsame_(ptr noundef %117, ptr noundef @.str.3)
  %119 = icmp ne i32 %118, 0
  br i1 %119, label %126, label %120

120:                                              ; preds = %116
  %121 = load ptr, ptr %13, align 8, !tbaa !5
  %122 = call i32 @lsame_(ptr noundef %121, ptr noundef @.str.4)
  %123 = icmp ne i32 %122, 0
  br i1 %123, label %126, label %124

124:                                              ; preds = %120
  %125 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 -2, ptr %125, align 4, !tbaa !9
  br label %170

126:                                              ; preds = %120, %116, %113
  %127 = load i32, ptr %57, align 4, !tbaa !9
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %135, label %129

129:                                              ; preds = %126
  %130 = load ptr, ptr %14, align 8, !tbaa !5
  %131 = call i32 @lsame_(ptr noundef %130, ptr noundef @.str)
  %132 = icmp ne i32 %131, 0
  br i1 %132, label %135, label %133

133:                                              ; preds = %129
  %134 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 -3, ptr %134, align 4, !tbaa !9
  br label %169

135:                                              ; preds = %129, %126
  %136 = load ptr, ptr %15, align 8, !tbaa !5
  %137 = call i32 @lsame_(ptr noundef %136, ptr noundef @.str.5)
  %138 = icmp ne i32 %137, 0
  br i1 %138, label %145, label %139

139:                                              ; preds = %135
  %140 = load ptr, ptr %15, align 8, !tbaa !5
  %141 = call i32 @lsame_(ptr noundef %140, ptr noundef @.str.1)
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %145, label %143

143:                                              ; preds = %139
  %144 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 -4, ptr %144, align 4, !tbaa !9
  br label %168

145:                                              ; preds = %139, %135
  %146 = load ptr, ptr %16, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = icmp slt i32 %147, 0
  br i1 %148, label %149, label %151

149:                                              ; preds = %145
  %150 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 -5, ptr %150, align 4, !tbaa !9
  br label %167

151:                                              ; preds = %145
  %152 = load ptr, ptr %18, align 8, !tbaa !5
  %153 = load i32, ptr %152, align 4, !tbaa !9
  %154 = load ptr, ptr %16, align 8, !tbaa !5
  %155 = load i32, ptr %154, align 4, !tbaa !9
  %156 = icmp sge i32 1, %155
  br i1 %156, label %157, label %158

157:                                              ; preds = %151
  br label %161

158:                                              ; preds = %151
  %159 = load ptr, ptr %16, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  br label %161

161:                                              ; preds = %158, %157
  %162 = phi i32 [ 1, %157 ], [ %160, %158 ]
  %163 = icmp slt i32 %153, %162
  br i1 %163, label %164, label %166

164:                                              ; preds = %161
  %165 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 -7, ptr %165, align 4, !tbaa !9
  br label %166

166:                                              ; preds = %164, %161
  br label %167

167:                                              ; preds = %166, %149
  br label %168

168:                                              ; preds = %167, %143
  br label %169

169:                                              ; preds = %168, %133
  br label %170

170:                                              ; preds = %169, %124
  br label %171

171:                                              ; preds = %170, %111
  %172 = load ptr, ptr %22, align 8, !tbaa !5
  %173 = load i32, ptr %172, align 4, !tbaa !9
  %174 = icmp ne i32 %173, 0
  br i1 %174, label %175, label %180

175:                                              ; preds = %171
  %176 = load ptr, ptr %22, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = sub nsw i32 0, %177
  store i32 %178, ptr %25, align 4, !tbaa !9
  %179 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %25, i32 noundef 6)
  store i32 1, ptr %60, align 4
  br label %3103

180:                                              ; preds = %171
  %181 = load ptr, ptr %16, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = icmp eq i32 %182, 0
  br i1 %183, label %184, label %185

184:                                              ; preds = %180
  store i32 1, ptr %60, align 4
  br label %3103

185:                                              ; preds = %180
  %186 = call float @slamch_(ptr noundef @.str.7)
  store float %186, ptr %56, align 4, !tbaa !11
  %187 = load float, ptr %56, align 4, !tbaa !11
  %188 = fdiv float 1.000000e+00, %187
  store float %188, ptr %53, align 4, !tbaa !11
  call void @slabad_(ptr noundef %56, ptr noundef %53)
  %189 = call float @slamch_(ptr noundef @.str.8)
  %190 = load float, ptr %56, align 4, !tbaa !11
  %191 = fdiv float %190, %189
  store float %191, ptr %56, align 4, !tbaa !11
  %192 = load float, ptr %56, align 4, !tbaa !11
  %193 = fdiv float 1.000000e+00, %192
  store float %193, ptr %53, align 4, !tbaa !11
  %194 = load ptr, ptr %20, align 8, !tbaa !5
  store float 1.000000e+00, ptr %194, align 4, !tbaa !11
  %195 = load ptr, ptr %15, align 8, !tbaa !5
  %196 = call i32 @lsame_(ptr noundef %195, ptr noundef @.str.1)
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %264

198:                                              ; preds = %185
  %199 = load i32, ptr %51, align 4, !tbaa !9
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %227

201:                                              ; preds = %198
  %202 = load ptr, ptr %16, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  store i32 %203, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %46, align 4, !tbaa !9
  br label %204

204:                                              ; preds = %223, %201
  %205 = load i32, ptr %46, align 4, !tbaa !9
  %206 = load i32, ptr %25, align 4, !tbaa !9
  %207 = icmp sle i32 %205, %206
  br i1 %207, label %208, label %226

208:                                              ; preds = %204
  %209 = load i32, ptr %46, align 4, !tbaa !9
  %210 = sub nsw i32 %209, 1
  store i32 %210, ptr %26, align 4, !tbaa !9
  %211 = load ptr, ptr %17, align 8, !tbaa !5
  %212 = load i32, ptr %46, align 4, !tbaa !9
  %213 = load i32, ptr %23, align 4, !tbaa !9
  %214 = mul nsw i32 %212, %213
  %215 = add nsw i32 %214, 1
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds %struct.complex, ptr %211, i64 %216
  %218 = call float @scasum_(ptr noundef %26, ptr noundef %217, ptr noundef @c__1)
  %219 = load ptr, ptr %21, align 8, !tbaa !5
  %220 = load i32, ptr %46, align 4, !tbaa !9
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds float, ptr %219, i64 %221
  store float %218, ptr %222, align 4, !tbaa !11
  br label %223

223:                                              ; preds = %208
  %224 = load i32, ptr %46, align 4, !tbaa !9
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr %46, align 4, !tbaa !9
  br label %204, !llvm.loop !13

226:                                              ; preds = %204
  br label %263

227:                                              ; preds = %198
  %228 = load ptr, ptr %16, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = sub nsw i32 %229, 1
  store i32 %230, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %46, align 4, !tbaa !9
  br label %231

231:                                              ; preds = %254, %227
  %232 = load i32, ptr %46, align 4, !tbaa !9
  %233 = load i32, ptr %25, align 4, !tbaa !9
  %234 = icmp sle i32 %232, %233
  br i1 %234, label %235, label %257

235:                                              ; preds = %231
  %236 = load ptr, ptr %16, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = load i32, ptr %46, align 4, !tbaa !9
  %239 = sub nsw i32 %237, %238
  store i32 %239, ptr %26, align 4, !tbaa !9
  %240 = load ptr, ptr %17, align 8, !tbaa !5
  %241 = load i32, ptr %46, align 4, !tbaa !9
  %242 = add nsw i32 %241, 1
  %243 = load i32, ptr %46, align 4, !tbaa !9
  %244 = load i32, ptr %23, align 4, !tbaa !9
  %245 = mul nsw i32 %243, %244
  %246 = add nsw i32 %242, %245
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds %struct.complex, ptr %240, i64 %247
  %249 = call float @scasum_(ptr noundef %26, ptr noundef %248, ptr noundef @c__1)
  %250 = load ptr, ptr %21, align 8, !tbaa !5
  %251 = load i32, ptr %46, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds float, ptr %250, i64 %252
  store float %249, ptr %253, align 4, !tbaa !11
  br label %254

254:                                              ; preds = %235
  %255 = load i32, ptr %46, align 4, !tbaa !9
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr %46, align 4, !tbaa !9
  br label %231, !llvm.loop !15

257:                                              ; preds = %231
  %258 = load ptr, ptr %21, align 8, !tbaa !5
  %259 = load ptr, ptr %16, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds float, ptr %258, i64 %261
  store float 0.000000e+00, ptr %262, align 4, !tbaa !11
  br label %263

263:                                              ; preds = %257, %226
  br label %264

264:                                              ; preds = %263, %185
  %265 = load ptr, ptr %16, align 8, !tbaa !5
  %266 = load ptr, ptr %21, align 8, !tbaa !5
  %267 = getelementptr inbounds float, ptr %266, i64 1
  %268 = call i32 @isamax_(ptr noundef %265, ptr noundef %267, ptr noundef @c__1)
  store i32 %268, ptr %40, align 4, !tbaa !9
  %269 = load ptr, ptr %21, align 8, !tbaa !5
  %270 = load i32, ptr %40, align 4, !tbaa !9
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds float, ptr %269, i64 %271
  %273 = load float, ptr %272, align 4, !tbaa !11
  store float %273, ptr %41, align 4, !tbaa !11
  %274 = load float, ptr %41, align 4, !tbaa !11
  %275 = load float, ptr %53, align 4, !tbaa !11
  %276 = fmul float %275, 5.000000e-01
  %277 = fcmp ole float %274, %276
  br i1 %277, label %278, label %279

278:                                              ; preds = %264
  store float 1.000000e+00, ptr %47, align 4, !tbaa !11
  br label %287

279:                                              ; preds = %264
  %280 = load float, ptr %56, align 4, !tbaa !11
  %281 = load float, ptr %41, align 4, !tbaa !11
  %282 = fmul float %280, %281
  %283 = fdiv float 5.000000e-01, %282
  store float %283, ptr %47, align 4, !tbaa !11
  %284 = load ptr, ptr %16, align 8, !tbaa !5
  %285 = load ptr, ptr %21, align 8, !tbaa !5
  %286 = getelementptr inbounds float, ptr %285, i64 1
  call void @sscal_(ptr noundef %284, ptr noundef %47, ptr noundef %286, ptr noundef @c__1)
  br label %287

287:                                              ; preds = %279, %278
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %288 = load ptr, ptr %16, align 8, !tbaa !5
  %289 = load i32, ptr %288, align 4, !tbaa !9
  store i32 %289, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %46, align 4, !tbaa !9
  br label %290

290:                                              ; preds = %342, %287
  %291 = load i32, ptr %46, align 4, !tbaa !9
  %292 = load i32, ptr %25, align 4, !tbaa !9
  %293 = icmp sle i32 %291, %292
  br i1 %293, label %294, label %345

294:                                              ; preds = %290
  %295 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %295, ptr %26, align 4, !tbaa !9
  %296 = load float, ptr %43, align 4, !tbaa !11
  store float %296, ptr %32, align 4, !tbaa !11
  %297 = load ptr, ptr %19, align 8, !tbaa !5
  %298 = load i32, ptr %26, align 4, !tbaa !9
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds %struct.complex, ptr %297, i64 %299
  %301 = getelementptr inbounds %struct.complex, ptr %300, i32 0, i32 0
  %302 = load float, ptr %301, align 4, !tbaa !16
  %303 = fdiv float %302, 2.000000e+00
  store float %303, ptr %30, align 4, !tbaa !11
  %304 = load float, ptr %30, align 4, !tbaa !11
  %305 = fcmp oge float %304, 0.000000e+00
  br i1 %305, label %306, label %308

306:                                              ; preds = %294
  %307 = load float, ptr %30, align 4, !tbaa !11
  br label %311

308:                                              ; preds = %294
  %309 = load float, ptr %30, align 4, !tbaa !11
  %310 = fneg float %309
  br label %311

311:                                              ; preds = %308, %306
  %312 = phi float [ %307, %306 ], [ %310, %308 ]
  %313 = load ptr, ptr %19, align 8, !tbaa !5
  %314 = load i32, ptr %46, align 4, !tbaa !9
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds %struct.complex, ptr %313, i64 %315
  %317 = call <2 x float> @Cf(ptr noundef %316)
  store <2 x float> %317, ptr %61, align 4
  %318 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 0
  %319 = load float, ptr %318, align 4
  %320 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 1
  %321 = load float, ptr %320, align 4
  %322 = fdiv float %321, 2.000000e+00
  store float %322, ptr %31, align 4, !tbaa !11
  %323 = load float, ptr %31, align 4, !tbaa !11
  %324 = fcmp oge float %323, 0.000000e+00
  br i1 %324, label %325, label %327

325:                                              ; preds = %311
  %326 = load float, ptr %31, align 4, !tbaa !11
  br label %330

327:                                              ; preds = %311
  %328 = load float, ptr %31, align 4, !tbaa !11
  %329 = fneg float %328
  br label %330

330:                                              ; preds = %327, %325
  %331 = phi float [ %326, %325 ], [ %329, %327 ]
  %332 = fadd float %312, %331
  store float %332, ptr %33, align 4, !tbaa !11
  %333 = load float, ptr %32, align 4, !tbaa !11
  %334 = load float, ptr %33, align 4, !tbaa !11
  %335 = fcmp oge float %333, %334
  br i1 %335, label %336, label %338

336:                                              ; preds = %330
  %337 = load float, ptr %32, align 4, !tbaa !11
  br label %340

338:                                              ; preds = %330
  %339 = load float, ptr %33, align 4, !tbaa !11
  br label %340

340:                                              ; preds = %338, %336
  %341 = phi float [ %337, %336 ], [ %339, %338 ]
  store float %341, ptr %43, align 4, !tbaa !11
  br label %342

342:                                              ; preds = %340
  %343 = load i32, ptr %46, align 4, !tbaa !9
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr %46, align 4, !tbaa !9
  br label %290, !llvm.loop !18

345:                                              ; preds = %290
  %346 = load float, ptr %43, align 4, !tbaa !11
  store float %346, ptr %39, align 4, !tbaa !11
  %347 = load i32, ptr %54, align 4, !tbaa !9
  %348 = icmp ne i32 %347, 0
  br i1 %348, label %349, label %562

349:                                              ; preds = %345
  %350 = load i32, ptr %51, align 4, !tbaa !9
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %355

352:                                              ; preds = %349
  %353 = load ptr, ptr %16, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  store i32 %354, ptr %55, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  store i32 -1, ptr %38, align 4, !tbaa !9
  br label %358

355:                                              ; preds = %349
  store i32 1, ptr %55, align 4, !tbaa !9
  %356 = load ptr, ptr %16, align 8, !tbaa !5
  %357 = load i32, ptr %356, align 4, !tbaa !9
  store i32 %357, ptr %49, align 4, !tbaa !9
  store i32 1, ptr %38, align 4, !tbaa !9
  br label %358

358:                                              ; preds = %355, %352
  %359 = load float, ptr %47, align 4, !tbaa !11
  %360 = fcmp une float %359, 1.000000e+00
  br i1 %360, label %361, label %362

361:                                              ; preds = %358
  store float 0.000000e+00, ptr %44, align 4, !tbaa !11
  br label %561

362:                                              ; preds = %358
  %363 = load i32, ptr %57, align 4, !tbaa !9
  %364 = icmp ne i32 %363, 0
  br i1 %364, label %365, label %501

365:                                              ; preds = %362
  %366 = load float, ptr %39, align 4, !tbaa !11
  %367 = load float, ptr %56, align 4, !tbaa !11
  %368 = fcmp oge float %366, %367
  br i1 %368, label %369, label %371

369:                                              ; preds = %365
  %370 = load float, ptr %39, align 4, !tbaa !11
  br label %373

371:                                              ; preds = %365
  %372 = load float, ptr %56, align 4, !tbaa !11
  br label %373

373:                                              ; preds = %371, %369
  %374 = phi float [ %370, %369 ], [ %372, %371 ]
  %375 = fdiv float 5.000000e-01, %374
  store float %375, ptr %44, align 4, !tbaa !11
  %376 = load float, ptr %44, align 4, !tbaa !11
  store float %376, ptr %39, align 4, !tbaa !11
  %377 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %377, ptr %25, align 4, !tbaa !9
  %378 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %378, ptr %26, align 4, !tbaa !9
  %379 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %379, ptr %46, align 4, !tbaa !9
  br label %380

380:                                              ; preds = %495, %373
  %381 = load i32, ptr %26, align 4, !tbaa !9
  %382 = icmp slt i32 %381, 0
  br i1 %382, label %383, label %388

383:                                              ; preds = %380
  %384 = load i32, ptr %46, align 4, !tbaa !9
  %385 = load i32, ptr %25, align 4, !tbaa !9
  %386 = icmp sge i32 %384, %385
  %387 = zext i1 %386 to i32
  br label %393

388:                                              ; preds = %380
  %389 = load i32, ptr %46, align 4, !tbaa !9
  %390 = load i32, ptr %25, align 4, !tbaa !9
  %391 = icmp sle i32 %389, %390
  %392 = zext i1 %391 to i32
  br label %393

393:                                              ; preds = %388, %383
  %394 = phi i32 [ %387, %383 ], [ %392, %388 ]
  %395 = icmp ne i32 %394, 0
  br i1 %395, label %396, label %499

396:                                              ; preds = %393
  %397 = load float, ptr %44, align 4, !tbaa !11
  %398 = load float, ptr %56, align 4, !tbaa !11
  %399 = fcmp ole float %397, %398
  br i1 %399, label %400, label %401

400:                                              ; preds = %396
  br label %561

401:                                              ; preds = %396
  %402 = load i32, ptr %46, align 4, !tbaa !9
  %403 = load i32, ptr %46, align 4, !tbaa !9
  %404 = load i32, ptr %23, align 4, !tbaa !9
  %405 = mul nsw i32 %403, %404
  %406 = add nsw i32 %402, %405
  store i32 %406, ptr %27, align 4, !tbaa !9
  %407 = load ptr, ptr %17, align 8, !tbaa !5
  %408 = load i32, ptr %27, align 4, !tbaa !9
  %409 = sext i32 %408 to i64
  %410 = getelementptr inbounds %struct.complex, ptr %407, i64 %409
  %411 = getelementptr inbounds %struct.complex, ptr %410, i32 0, i32 0
  %412 = load float, ptr %411, align 4, !tbaa !16
  %413 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %412, ptr %413, align 4, !tbaa !16
  %414 = load ptr, ptr %17, align 8, !tbaa !5
  %415 = load i32, ptr %27, align 4, !tbaa !9
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds %struct.complex, ptr %414, i64 %416
  %418 = getelementptr inbounds %struct.complex, ptr %417, i32 0, i32 1
  %419 = load float, ptr %418, align 4, !tbaa !19
  %420 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %419, ptr %420, align 4, !tbaa !19
  %421 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %422 = load float, ptr %421, align 4, !tbaa !16
  store float %422, ptr %30, align 4, !tbaa !11
  %423 = load float, ptr %30, align 4, !tbaa !11
  %424 = fcmp oge float %423, 0.000000e+00
  br i1 %424, label %425, label %427

425:                                              ; preds = %401
  %426 = load float, ptr %30, align 4, !tbaa !11
  br label %430

427:                                              ; preds = %401
  %428 = load float, ptr %30, align 4, !tbaa !11
  %429 = fneg float %428
  br label %430

430:                                              ; preds = %427, %425
  %431 = phi float [ %426, %425 ], [ %429, %427 ]
  %432 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %432, ptr %62, align 4
  %433 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 0
  %434 = load float, ptr %433, align 4
  %435 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 1
  %436 = load float, ptr %435, align 4
  store float %436, ptr %31, align 4, !tbaa !11
  %437 = load float, ptr %31, align 4, !tbaa !11
  %438 = fcmp oge float %437, 0.000000e+00
  br i1 %438, label %439, label %441

439:                                              ; preds = %430
  %440 = load float, ptr %31, align 4, !tbaa !11
  br label %444

441:                                              ; preds = %430
  %442 = load float, ptr %31, align 4, !tbaa !11
  %443 = fneg float %442
  br label %444

444:                                              ; preds = %441, %439
  %445 = phi float [ %440, %439 ], [ %443, %441 ]
  %446 = fadd float %431, %445
  store float %446, ptr %59, align 4, !tbaa !11
  %447 = load float, ptr %59, align 4, !tbaa !11
  %448 = load float, ptr %56, align 4, !tbaa !11
  %449 = fcmp oge float %447, %448
  br i1 %449, label %450, label %470

450:                                              ; preds = %444
  %451 = load float, ptr %39, align 4, !tbaa !11
  store float %451, ptr %30, align 4, !tbaa !11
  %452 = load float, ptr %59, align 4, !tbaa !11
  %453 = fcmp ole float 1.000000e+00, %452
  br i1 %453, label %454, label %455

454:                                              ; preds = %450
  br label %457

455:                                              ; preds = %450
  %456 = load float, ptr %59, align 4, !tbaa !11
  br label %457

457:                                              ; preds = %455, %454
  %458 = phi float [ 1.000000e+00, %454 ], [ %456, %455 ]
  %459 = load float, ptr %44, align 4, !tbaa !11
  %460 = fmul float %458, %459
  store float %460, ptr %31, align 4, !tbaa !11
  %461 = load float, ptr %30, align 4, !tbaa !11
  %462 = load float, ptr %31, align 4, !tbaa !11
  %463 = fcmp ole float %461, %462
  br i1 %463, label %464, label %466

464:                                              ; preds = %457
  %465 = load float, ptr %30, align 4, !tbaa !11
  br label %468

466:                                              ; preds = %457
  %467 = load float, ptr %31, align 4, !tbaa !11
  br label %468

468:                                              ; preds = %466, %464
  %469 = phi float [ %465, %464 ], [ %467, %466 ]
  store float %469, ptr %39, align 4, !tbaa !11
  br label %471

470:                                              ; preds = %444
  store float 0.000000e+00, ptr %39, align 4, !tbaa !11
  br label %471

471:                                              ; preds = %470, %468
  %472 = load float, ptr %59, align 4, !tbaa !11
  %473 = load ptr, ptr %21, align 8, !tbaa !5
  %474 = load i32, ptr %46, align 4, !tbaa !9
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %473, i64 %475
  %477 = load float, ptr %476, align 4, !tbaa !11
  %478 = fadd float %472, %477
  %479 = load float, ptr %56, align 4, !tbaa !11
  %480 = fcmp oge float %478, %479
  br i1 %480, label %481, label %493

481:                                              ; preds = %471
  %482 = load float, ptr %59, align 4, !tbaa !11
  %483 = load float, ptr %59, align 4, !tbaa !11
  %484 = load ptr, ptr %21, align 8, !tbaa !5
  %485 = load i32, ptr %46, align 4, !tbaa !9
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds float, ptr %484, i64 %486
  %488 = load float, ptr %487, align 4, !tbaa !11
  %489 = fadd float %483, %488
  %490 = fdiv float %482, %489
  %491 = load float, ptr %44, align 4, !tbaa !11
  %492 = fmul float %491, %490
  store float %492, ptr %44, align 4, !tbaa !11
  br label %494

493:                                              ; preds = %471
  store float 0.000000e+00, ptr %44, align 4, !tbaa !11
  br label %494

494:                                              ; preds = %493, %481
  br label %495

495:                                              ; preds = %494
  %496 = load i32, ptr %26, align 4, !tbaa !9
  %497 = load i32, ptr %46, align 4, !tbaa !9
  %498 = add nsw i32 %497, %496
  store i32 %498, ptr %46, align 4, !tbaa !9
  br label %380, !llvm.loop !20

499:                                              ; preds = %393
  %500 = load float, ptr %39, align 4, !tbaa !11
  store float %500, ptr %44, align 4, !tbaa !11
  br label %560

501:                                              ; preds = %362
  store float 1.000000e+00, ptr %30, align 4, !tbaa !11
  %502 = load float, ptr %39, align 4, !tbaa !11
  %503 = load float, ptr %56, align 4, !tbaa !11
  %504 = fcmp oge float %502, %503
  br i1 %504, label %505, label %507

505:                                              ; preds = %501
  %506 = load float, ptr %39, align 4, !tbaa !11
  br label %509

507:                                              ; preds = %501
  %508 = load float, ptr %56, align 4, !tbaa !11
  br label %509

509:                                              ; preds = %507, %505
  %510 = phi float [ %506, %505 ], [ %508, %507 ]
  %511 = fdiv float 5.000000e-01, %510
  store float %511, ptr %31, align 4, !tbaa !11
  %512 = load float, ptr %30, align 4, !tbaa !11
  %513 = load float, ptr %31, align 4, !tbaa !11
  %514 = fcmp ole float %512, %513
  br i1 %514, label %515, label %517

515:                                              ; preds = %509
  %516 = load float, ptr %30, align 4, !tbaa !11
  br label %519

517:                                              ; preds = %509
  %518 = load float, ptr %31, align 4, !tbaa !11
  br label %519

519:                                              ; preds = %517, %515
  %520 = phi float [ %516, %515 ], [ %518, %517 ]
  store float %520, ptr %44, align 4, !tbaa !11
  %521 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %521, ptr %26, align 4, !tbaa !9
  %522 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %522, ptr %25, align 4, !tbaa !9
  %523 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %523, ptr %46, align 4, !tbaa !9
  br label %524

524:                                              ; preds = %555, %519
  %525 = load i32, ptr %25, align 4, !tbaa !9
  %526 = icmp slt i32 %525, 0
  br i1 %526, label %527, label %532

527:                                              ; preds = %524
  %528 = load i32, ptr %46, align 4, !tbaa !9
  %529 = load i32, ptr %26, align 4, !tbaa !9
  %530 = icmp sge i32 %528, %529
  %531 = zext i1 %530 to i32
  br label %537

532:                                              ; preds = %524
  %533 = load i32, ptr %46, align 4, !tbaa !9
  %534 = load i32, ptr %26, align 4, !tbaa !9
  %535 = icmp sle i32 %533, %534
  %536 = zext i1 %535 to i32
  br label %537

537:                                              ; preds = %532, %527
  %538 = phi i32 [ %531, %527 ], [ %536, %532 ]
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %540, label %559

540:                                              ; preds = %537
  %541 = load float, ptr %44, align 4, !tbaa !11
  %542 = load float, ptr %56, align 4, !tbaa !11
  %543 = fcmp ole float %541, %542
  br i1 %543, label %544, label %545

544:                                              ; preds = %540
  br label %561

545:                                              ; preds = %540
  %546 = load ptr, ptr %21, align 8, !tbaa !5
  %547 = load i32, ptr %46, align 4, !tbaa !9
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds float, ptr %546, i64 %548
  %550 = load float, ptr %549, align 4, !tbaa !11
  %551 = fadd float %550, 1.000000e+00
  %552 = fdiv float 1.000000e+00, %551
  %553 = load float, ptr %44, align 4, !tbaa !11
  %554 = fmul float %553, %552
  store float %554, ptr %44, align 4, !tbaa !11
  br label %555

555:                                              ; preds = %545
  %556 = load i32, ptr %25, align 4, !tbaa !9
  %557 = load i32, ptr %46, align 4, !tbaa !9
  %558 = add nsw i32 %557, %556
  store i32 %558, ptr %46, align 4, !tbaa !9
  br label %524, !llvm.loop !21

559:                                              ; preds = %537
  br label %560

560:                                              ; preds = %559, %499
  br label %561

561:                                              ; preds = %560, %544, %400, %361
  br label %770

562:                                              ; preds = %345
  %563 = load i32, ptr %51, align 4, !tbaa !9
  %564 = icmp ne i32 %563, 0
  br i1 %564, label %565, label %568

565:                                              ; preds = %562
  store i32 1, ptr %55, align 4, !tbaa !9
  %566 = load ptr, ptr %16, align 8, !tbaa !5
  %567 = load i32, ptr %566, align 4, !tbaa !9
  store i32 %567, ptr %49, align 4, !tbaa !9
  store i32 1, ptr %38, align 4, !tbaa !9
  br label %571

568:                                              ; preds = %562
  %569 = load ptr, ptr %16, align 8, !tbaa !5
  %570 = load i32, ptr %569, align 4, !tbaa !9
  store i32 %570, ptr %55, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  store i32 -1, ptr %38, align 4, !tbaa !9
  br label %571

571:                                              ; preds = %568, %565
  %572 = load float, ptr %47, align 4, !tbaa !11
  %573 = fcmp une float %572, 1.000000e+00
  br i1 %573, label %574, label %575

574:                                              ; preds = %571
  store float 0.000000e+00, ptr %44, align 4, !tbaa !11
  br label %769

575:                                              ; preds = %571
  %576 = load i32, ptr %57, align 4, !tbaa !9
  %577 = icmp ne i32 %576, 0
  br i1 %577, label %578, label %709

578:                                              ; preds = %575
  %579 = load float, ptr %39, align 4, !tbaa !11
  %580 = load float, ptr %56, align 4, !tbaa !11
  %581 = fcmp oge float %579, %580
  br i1 %581, label %582, label %584

582:                                              ; preds = %578
  %583 = load float, ptr %39, align 4, !tbaa !11
  br label %586

584:                                              ; preds = %578
  %585 = load float, ptr %56, align 4, !tbaa !11
  br label %586

586:                                              ; preds = %584, %582
  %587 = phi float [ %583, %582 ], [ %585, %584 ]
  %588 = fdiv float 5.000000e-01, %587
  store float %588, ptr %44, align 4, !tbaa !11
  %589 = load float, ptr %44, align 4, !tbaa !11
  store float %589, ptr %39, align 4, !tbaa !11
  %590 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %590, ptr %25, align 4, !tbaa !9
  %591 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %591, ptr %26, align 4, !tbaa !9
  %592 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %592, ptr %46, align 4, !tbaa !9
  br label %593

593:                                              ; preds = %695, %586
  %594 = load i32, ptr %26, align 4, !tbaa !9
  %595 = icmp slt i32 %594, 0
  br i1 %595, label %596, label %601

596:                                              ; preds = %593
  %597 = load i32, ptr %46, align 4, !tbaa !9
  %598 = load i32, ptr %25, align 4, !tbaa !9
  %599 = icmp sge i32 %597, %598
  %600 = zext i1 %599 to i32
  br label %606

601:                                              ; preds = %593
  %602 = load i32, ptr %46, align 4, !tbaa !9
  %603 = load i32, ptr %25, align 4, !tbaa !9
  %604 = icmp sle i32 %602, %603
  %605 = zext i1 %604 to i32
  br label %606

606:                                              ; preds = %601, %596
  %607 = phi i32 [ %600, %596 ], [ %605, %601 ]
  %608 = icmp ne i32 %607, 0
  br i1 %608, label %609, label %699

609:                                              ; preds = %606
  %610 = load float, ptr %44, align 4, !tbaa !11
  %611 = load float, ptr %56, align 4, !tbaa !11
  %612 = fcmp ole float %610, %611
  br i1 %612, label %613, label %614

613:                                              ; preds = %609
  br label %769

614:                                              ; preds = %609
  %615 = load ptr, ptr %21, align 8, !tbaa !5
  %616 = load i32, ptr %46, align 4, !tbaa !9
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds float, ptr %615, i64 %617
  %619 = load float, ptr %618, align 4, !tbaa !11
  %620 = fadd float %619, 1.000000e+00
  store float %620, ptr %52, align 4, !tbaa !11
  %621 = load float, ptr %44, align 4, !tbaa !11
  store float %621, ptr %30, align 4, !tbaa !11
  %622 = load float, ptr %39, align 4, !tbaa !11
  %623 = load float, ptr %52, align 4, !tbaa !11
  %624 = fdiv float %622, %623
  store float %624, ptr %31, align 4, !tbaa !11
  %625 = load float, ptr %30, align 4, !tbaa !11
  %626 = load float, ptr %31, align 4, !tbaa !11
  %627 = fcmp ole float %625, %626
  br i1 %627, label %628, label %630

628:                                              ; preds = %614
  %629 = load float, ptr %30, align 4, !tbaa !11
  br label %632

630:                                              ; preds = %614
  %631 = load float, ptr %31, align 4, !tbaa !11
  br label %632

632:                                              ; preds = %630, %628
  %633 = phi float [ %629, %628 ], [ %631, %630 ]
  store float %633, ptr %44, align 4, !tbaa !11
  %634 = load i32, ptr %46, align 4, !tbaa !9
  %635 = load i32, ptr %46, align 4, !tbaa !9
  %636 = load i32, ptr %23, align 4, !tbaa !9
  %637 = mul nsw i32 %635, %636
  %638 = add nsw i32 %634, %637
  store i32 %638, ptr %27, align 4, !tbaa !9
  %639 = load ptr, ptr %17, align 8, !tbaa !5
  %640 = load i32, ptr %27, align 4, !tbaa !9
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds %struct.complex, ptr %639, i64 %641
  %643 = getelementptr inbounds %struct.complex, ptr %642, i32 0, i32 0
  %644 = load float, ptr %643, align 4, !tbaa !16
  %645 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %644, ptr %645, align 4, !tbaa !16
  %646 = load ptr, ptr %17, align 8, !tbaa !5
  %647 = load i32, ptr %27, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds %struct.complex, ptr %646, i64 %648
  %650 = getelementptr inbounds %struct.complex, ptr %649, i32 0, i32 1
  %651 = load float, ptr %650, align 4, !tbaa !19
  %652 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %651, ptr %652, align 4, !tbaa !19
  %653 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %654 = load float, ptr %653, align 4, !tbaa !16
  store float %654, ptr %30, align 4, !tbaa !11
  %655 = load float, ptr %30, align 4, !tbaa !11
  %656 = fcmp oge float %655, 0.000000e+00
  br i1 %656, label %657, label %659

657:                                              ; preds = %632
  %658 = load float, ptr %30, align 4, !tbaa !11
  br label %662

659:                                              ; preds = %632
  %660 = load float, ptr %30, align 4, !tbaa !11
  %661 = fneg float %660
  br label %662

662:                                              ; preds = %659, %657
  %663 = phi float [ %658, %657 ], [ %661, %659 ]
  %664 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %664, ptr %63, align 4
  %665 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 0
  %666 = load float, ptr %665, align 4
  %667 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 1
  %668 = load float, ptr %667, align 4
  store float %668, ptr %31, align 4, !tbaa !11
  %669 = load float, ptr %31, align 4, !tbaa !11
  %670 = fcmp oge float %669, 0.000000e+00
  br i1 %670, label %671, label %673

671:                                              ; preds = %662
  %672 = load float, ptr %31, align 4, !tbaa !11
  br label %676

673:                                              ; preds = %662
  %674 = load float, ptr %31, align 4, !tbaa !11
  %675 = fneg float %674
  br label %676

676:                                              ; preds = %673, %671
  %677 = phi float [ %672, %671 ], [ %675, %673 ]
  %678 = fadd float %663, %677
  store float %678, ptr %59, align 4, !tbaa !11
  %679 = load float, ptr %59, align 4, !tbaa !11
  %680 = load float, ptr %56, align 4, !tbaa !11
  %681 = fcmp oge float %679, %680
  br i1 %681, label %682, label %693

682:                                              ; preds = %676
  %683 = load float, ptr %52, align 4, !tbaa !11
  %684 = load float, ptr %59, align 4, !tbaa !11
  %685 = fcmp ogt float %683, %684
  br i1 %685, label %686, label %692

686:                                              ; preds = %682
  %687 = load float, ptr %59, align 4, !tbaa !11
  %688 = load float, ptr %52, align 4, !tbaa !11
  %689 = fdiv float %687, %688
  %690 = load float, ptr %39, align 4, !tbaa !11
  %691 = fmul float %690, %689
  store float %691, ptr %39, align 4, !tbaa !11
  br label %692

692:                                              ; preds = %686, %682
  br label %694

693:                                              ; preds = %676
  store float 0.000000e+00, ptr %39, align 4, !tbaa !11
  br label %694

694:                                              ; preds = %693, %692
  br label %695

695:                                              ; preds = %694
  %696 = load i32, ptr %26, align 4, !tbaa !9
  %697 = load i32, ptr %46, align 4, !tbaa !9
  %698 = add nsw i32 %697, %696
  store i32 %698, ptr %46, align 4, !tbaa !9
  br label %593, !llvm.loop !22

699:                                              ; preds = %606
  %700 = load float, ptr %44, align 4, !tbaa !11
  %701 = load float, ptr %39, align 4, !tbaa !11
  %702 = fcmp ole float %700, %701
  br i1 %702, label %703, label %705

703:                                              ; preds = %699
  %704 = load float, ptr %44, align 4, !tbaa !11
  br label %707

705:                                              ; preds = %699
  %706 = load float, ptr %39, align 4, !tbaa !11
  br label %707

707:                                              ; preds = %705, %703
  %708 = phi float [ %704, %703 ], [ %706, %705 ]
  store float %708, ptr %44, align 4, !tbaa !11
  br label %768

709:                                              ; preds = %575
  store float 1.000000e+00, ptr %30, align 4, !tbaa !11
  %710 = load float, ptr %39, align 4, !tbaa !11
  %711 = load float, ptr %56, align 4, !tbaa !11
  %712 = fcmp oge float %710, %711
  br i1 %712, label %713, label %715

713:                                              ; preds = %709
  %714 = load float, ptr %39, align 4, !tbaa !11
  br label %717

715:                                              ; preds = %709
  %716 = load float, ptr %56, align 4, !tbaa !11
  br label %717

717:                                              ; preds = %715, %713
  %718 = phi float [ %714, %713 ], [ %716, %715 ]
  %719 = fdiv float 5.000000e-01, %718
  store float %719, ptr %31, align 4, !tbaa !11
  %720 = load float, ptr %30, align 4, !tbaa !11
  %721 = load float, ptr %31, align 4, !tbaa !11
  %722 = fcmp ole float %720, %721
  br i1 %722, label %723, label %725

723:                                              ; preds = %717
  %724 = load float, ptr %30, align 4, !tbaa !11
  br label %727

725:                                              ; preds = %717
  %726 = load float, ptr %31, align 4, !tbaa !11
  br label %727

727:                                              ; preds = %725, %723
  %728 = phi float [ %724, %723 ], [ %726, %725 ]
  store float %728, ptr %44, align 4, !tbaa !11
  %729 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %729, ptr %26, align 4, !tbaa !9
  %730 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %730, ptr %25, align 4, !tbaa !9
  %731 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %731, ptr %46, align 4, !tbaa !9
  br label %732

732:                                              ; preds = %763, %727
  %733 = load i32, ptr %25, align 4, !tbaa !9
  %734 = icmp slt i32 %733, 0
  br i1 %734, label %735, label %740

735:                                              ; preds = %732
  %736 = load i32, ptr %46, align 4, !tbaa !9
  %737 = load i32, ptr %26, align 4, !tbaa !9
  %738 = icmp sge i32 %736, %737
  %739 = zext i1 %738 to i32
  br label %745

740:                                              ; preds = %732
  %741 = load i32, ptr %46, align 4, !tbaa !9
  %742 = load i32, ptr %26, align 4, !tbaa !9
  %743 = icmp sle i32 %741, %742
  %744 = zext i1 %743 to i32
  br label %745

745:                                              ; preds = %740, %735
  %746 = phi i32 [ %739, %735 ], [ %744, %740 ]
  %747 = icmp ne i32 %746, 0
  br i1 %747, label %748, label %767

748:                                              ; preds = %745
  %749 = load float, ptr %44, align 4, !tbaa !11
  %750 = load float, ptr %56, align 4, !tbaa !11
  %751 = fcmp ole float %749, %750
  br i1 %751, label %752, label %753

752:                                              ; preds = %748
  br label %769

753:                                              ; preds = %748
  %754 = load ptr, ptr %21, align 8, !tbaa !5
  %755 = load i32, ptr %46, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds float, ptr %754, i64 %756
  %758 = load float, ptr %757, align 4, !tbaa !11
  %759 = fadd float %758, 1.000000e+00
  store float %759, ptr %52, align 4, !tbaa !11
  %760 = load float, ptr %52, align 4, !tbaa !11
  %761 = load float, ptr %44, align 4, !tbaa !11
  %762 = fdiv float %761, %760
  store float %762, ptr %44, align 4, !tbaa !11
  br label %763

763:                                              ; preds = %753
  %764 = load i32, ptr %25, align 4, !tbaa !9
  %765 = load i32, ptr %46, align 4, !tbaa !9
  %766 = add nsw i32 %765, %764
  store i32 %766, ptr %46, align 4, !tbaa !9
  br label %732, !llvm.loop !23

767:                                              ; preds = %745
  br label %768

768:                                              ; preds = %767, %707
  br label %769

769:                                              ; preds = %768, %752, %613, %574
  br label %770

770:                                              ; preds = %769, %561
  %771 = load float, ptr %44, align 4, !tbaa !11
  %772 = load float, ptr %47, align 4, !tbaa !11
  %773 = fmul float %771, %772
  %774 = load float, ptr %56, align 4, !tbaa !11
  %775 = fcmp ogt float %773, %774
  br i1 %775, label %776, label %788

776:                                              ; preds = %770
  %777 = load ptr, ptr %12, align 8, !tbaa !5
  %778 = load ptr, ptr %13, align 8, !tbaa !5
  %779 = load ptr, ptr %14, align 8, !tbaa !5
  %780 = load ptr, ptr %16, align 8, !tbaa !5
  %781 = load ptr, ptr %17, align 8, !tbaa !5
  %782 = load i32, ptr %24, align 4, !tbaa !9
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds %struct.complex, ptr %781, i64 %783
  %785 = load ptr, ptr %18, align 8, !tbaa !5
  %786 = load ptr, ptr %19, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.complex, ptr %786, i64 1
  call void @ctrsv_(ptr noundef %777, ptr noundef %778, ptr noundef %779, ptr noundef %780, ptr noundef %784, ptr noundef %785, ptr noundef %787, ptr noundef @c__1)
  br label %3093

788:                                              ; preds = %770
  %789 = load float, ptr %43, align 4, !tbaa !11
  %790 = load float, ptr %53, align 4, !tbaa !11
  %791 = fmul float %790, 5.000000e-01
  %792 = fcmp ogt float %789, %791
  br i1 %792, label %793, label %804

793:                                              ; preds = %788
  %794 = load float, ptr %53, align 4, !tbaa !11
  %795 = fmul float %794, 5.000000e-01
  %796 = load float, ptr %43, align 4, !tbaa !11
  %797 = fdiv float %795, %796
  %798 = load ptr, ptr %20, align 8, !tbaa !5
  store float %797, ptr %798, align 4, !tbaa !11
  %799 = load ptr, ptr %16, align 8, !tbaa !5
  %800 = load ptr, ptr %20, align 8, !tbaa !5
  %801 = load ptr, ptr %19, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.complex, ptr %801, i64 1
  call void @csscal_(ptr noundef %799, ptr noundef %800, ptr noundef %802, ptr noundef @c__1)
  %803 = load float, ptr %53, align 4, !tbaa !11
  store float %803, ptr %43, align 4, !tbaa !11
  br label %807

804:                                              ; preds = %788
  %805 = load float, ptr %43, align 4, !tbaa !11
  %806 = fmul float %805, 2.000000e+00
  store float %806, ptr %43, align 4, !tbaa !11
  br label %807

807:                                              ; preds = %804, %793
  %808 = load i32, ptr %54, align 4, !tbaa !9
  %809 = icmp ne i32 %808, 0
  br i1 %809, label %810, label %1385

810:                                              ; preds = %807
  %811 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %811, ptr %25, align 4, !tbaa !9
  %812 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %812, ptr %26, align 4, !tbaa !9
  %813 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %813, ptr %46, align 4, !tbaa !9
  br label %814

814:                                              ; preds = %1380, %810
  %815 = load i32, ptr %26, align 4, !tbaa !9
  %816 = icmp slt i32 %815, 0
  br i1 %816, label %817, label %822

817:                                              ; preds = %814
  %818 = load i32, ptr %46, align 4, !tbaa !9
  %819 = load i32, ptr %25, align 4, !tbaa !9
  %820 = icmp sge i32 %818, %819
  %821 = zext i1 %820 to i32
  br label %827

822:                                              ; preds = %814
  %823 = load i32, ptr %46, align 4, !tbaa !9
  %824 = load i32, ptr %25, align 4, !tbaa !9
  %825 = icmp sle i32 %823, %824
  %826 = zext i1 %825 to i32
  br label %827

827:                                              ; preds = %822, %817
  %828 = phi i32 [ %821, %817 ], [ %826, %822 ]
  %829 = icmp ne i32 %828, 0
  br i1 %829, label %830, label %1384

830:                                              ; preds = %827
  %831 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %831, ptr %27, align 4, !tbaa !9
  %832 = load ptr, ptr %19, align 8, !tbaa !5
  %833 = load i32, ptr %27, align 4, !tbaa !9
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds %struct.complex, ptr %832, i64 %834
  %836 = getelementptr inbounds %struct.complex, ptr %835, i32 0, i32 0
  %837 = load float, ptr %836, align 4, !tbaa !16
  store float %837, ptr %30, align 4, !tbaa !11
  %838 = load float, ptr %30, align 4, !tbaa !11
  %839 = fcmp oge float %838, 0.000000e+00
  br i1 %839, label %840, label %842

840:                                              ; preds = %830
  %841 = load float, ptr %30, align 4, !tbaa !11
  br label %845

842:                                              ; preds = %830
  %843 = load float, ptr %30, align 4, !tbaa !11
  %844 = fneg float %843
  br label %845

845:                                              ; preds = %842, %840
  %846 = phi float [ %841, %840 ], [ %844, %842 ]
  %847 = load ptr, ptr %19, align 8, !tbaa !5
  %848 = load i32, ptr %46, align 4, !tbaa !9
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds %struct.complex, ptr %847, i64 %849
  %851 = call <2 x float> @Cf(ptr noundef %850)
  store <2 x float> %851, ptr %64, align 4
  %852 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 0
  %853 = load float, ptr %852, align 4
  %854 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 1
  %855 = load float, ptr %854, align 4
  store float %855, ptr %31, align 4, !tbaa !11
  %856 = load float, ptr %31, align 4, !tbaa !11
  %857 = fcmp oge float %856, 0.000000e+00
  br i1 %857, label %858, label %860

858:                                              ; preds = %845
  %859 = load float, ptr %31, align 4, !tbaa !11
  br label %863

860:                                              ; preds = %845
  %861 = load float, ptr %31, align 4, !tbaa !11
  %862 = fneg float %861
  br label %863

863:                                              ; preds = %860, %858
  %864 = phi float [ %859, %858 ], [ %862, %860 ]
  %865 = fadd float %846, %864
  store float %865, ptr %52, align 4, !tbaa !11
  %866 = load i32, ptr %57, align 4, !tbaa !9
  %867 = icmp ne i32 %866, 0
  br i1 %867, label %868, label %898

868:                                              ; preds = %863
  %869 = load i32, ptr %46, align 4, !tbaa !9
  %870 = load i32, ptr %46, align 4, !tbaa !9
  %871 = load i32, ptr %23, align 4, !tbaa !9
  %872 = mul nsw i32 %870, %871
  %873 = add nsw i32 %869, %872
  store i32 %873, ptr %27, align 4, !tbaa !9
  %874 = load float, ptr %47, align 4, !tbaa !11
  %875 = load ptr, ptr %17, align 8, !tbaa !5
  %876 = load i32, ptr %27, align 4, !tbaa !9
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds %struct.complex, ptr %875, i64 %877
  %879 = getelementptr inbounds %struct.complex, ptr %878, i32 0, i32 0
  %880 = load float, ptr %879, align 4, !tbaa !16
  %881 = fmul float %874, %880
  %882 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %881, ptr %882, align 4, !tbaa !16
  %883 = load float, ptr %47, align 4, !tbaa !11
  %884 = load ptr, ptr %17, align 8, !tbaa !5
  %885 = load i32, ptr %27, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds %struct.complex, ptr %884, i64 %886
  %888 = getelementptr inbounds %struct.complex, ptr %887, i32 0, i32 1
  %889 = load float, ptr %888, align 4, !tbaa !19
  %890 = fmul float %883, %889
  %891 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %890, ptr %891, align 4, !tbaa !19
  %892 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %893 = load float, ptr %892, align 4, !tbaa !16
  %894 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %893, ptr %894, align 4, !tbaa !16
  %895 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %896 = load float, ptr %895, align 4, !tbaa !19
  %897 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %896, ptr %897, align 4, !tbaa !19
  br label %906

898:                                              ; preds = %863
  %899 = load float, ptr %47, align 4, !tbaa !11
  %900 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %899, ptr %900, align 4, !tbaa !16
  %901 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float 0.000000e+00, ptr %901, align 4, !tbaa !19
  %902 = load float, ptr %47, align 4, !tbaa !11
  %903 = fcmp oeq float %902, 1.000000e+00
  br i1 %903, label %904, label %905

904:                                              ; preds = %898
  br label %1146

905:                                              ; preds = %898
  br label %906

906:                                              ; preds = %905, %868
  %907 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %908 = load float, ptr %907, align 4, !tbaa !16
  store float %908, ptr %30, align 4, !tbaa !11
  %909 = load float, ptr %30, align 4, !tbaa !11
  %910 = fcmp oge float %909, 0.000000e+00
  br i1 %910, label %911, label %913

911:                                              ; preds = %906
  %912 = load float, ptr %30, align 4, !tbaa !11
  br label %916

913:                                              ; preds = %906
  %914 = load float, ptr %30, align 4, !tbaa !11
  %915 = fneg float %914
  br label %916

916:                                              ; preds = %913, %911
  %917 = phi float [ %912, %911 ], [ %915, %913 ]
  %918 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %918, ptr %65, align 4
  %919 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %920 = load float, ptr %919, align 4
  %921 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %922 = load float, ptr %921, align 4
  store float %922, ptr %31, align 4, !tbaa !11
  %923 = load float, ptr %31, align 4, !tbaa !11
  %924 = fcmp oge float %923, 0.000000e+00
  br i1 %924, label %925, label %927

925:                                              ; preds = %916
  %926 = load float, ptr %31, align 4, !tbaa !11
  br label %930

927:                                              ; preds = %916
  %928 = load float, ptr %31, align 4, !tbaa !11
  %929 = fneg float %928
  br label %930

930:                                              ; preds = %927, %925
  %931 = phi float [ %926, %925 ], [ %929, %927 ]
  %932 = fadd float %917, %931
  store float %932, ptr %59, align 4, !tbaa !11
  %933 = load float, ptr %59, align 4, !tbaa !11
  %934 = load float, ptr %56, align 4, !tbaa !11
  %935 = fcmp ogt float %933, %934
  br i1 %935, label %936, label %1014

936:                                              ; preds = %930
  %937 = load float, ptr %59, align 4, !tbaa !11
  %938 = fcmp olt float %937, 1.000000e+00
  br i1 %938, label %939, label %959

939:                                              ; preds = %936
  %940 = load float, ptr %52, align 4, !tbaa !11
  %941 = load float, ptr %59, align 4, !tbaa !11
  %942 = load float, ptr %53, align 4, !tbaa !11
  %943 = fmul float %941, %942
  %944 = fcmp ogt float %940, %943
  br i1 %944, label %945, label %958

945:                                              ; preds = %939
  %946 = load float, ptr %52, align 4, !tbaa !11
  %947 = fdiv float 1.000000e+00, %946
  store float %947, ptr %58, align 4, !tbaa !11
  %948 = load ptr, ptr %16, align 8, !tbaa !5
  %949 = load ptr, ptr %19, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.complex, ptr %949, i64 1
  call void @csscal_(ptr noundef %948, ptr noundef %58, ptr noundef %950, ptr noundef @c__1)
  %951 = load float, ptr %58, align 4, !tbaa !11
  %952 = load ptr, ptr %20, align 8, !tbaa !5
  %953 = load float, ptr %952, align 4, !tbaa !11
  %954 = fmul float %953, %951
  store float %954, ptr %952, align 4, !tbaa !11
  %955 = load float, ptr %58, align 4, !tbaa !11
  %956 = load float, ptr %43, align 4, !tbaa !11
  %957 = fmul float %956, %955
  store float %957, ptr %43, align 4, !tbaa !11
  br label %958

958:                                              ; preds = %945, %939
  br label %959

959:                                              ; preds = %958, %936
  %960 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %960, ptr %27, align 4, !tbaa !9
  %961 = load ptr, ptr %19, align 8, !tbaa !5
  %962 = load i32, ptr %46, align 4, !tbaa !9
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds %struct.complex, ptr %961, i64 %963
  call void @cladiv_(ptr noundef %34, ptr noundef %964, ptr noundef %42)
  %965 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %966 = load float, ptr %965, align 4, !tbaa !16
  %967 = load ptr, ptr %19, align 8, !tbaa !5
  %968 = load i32, ptr %27, align 4, !tbaa !9
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds %struct.complex, ptr %967, i64 %969
  %971 = getelementptr inbounds %struct.complex, ptr %970, i32 0, i32 0
  store float %966, ptr %971, align 4, !tbaa !16
  %972 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %973 = load float, ptr %972, align 4, !tbaa !19
  %974 = load ptr, ptr %19, align 8, !tbaa !5
  %975 = load i32, ptr %27, align 4, !tbaa !9
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds %struct.complex, ptr %974, i64 %976
  %978 = getelementptr inbounds %struct.complex, ptr %977, i32 0, i32 1
  store float %973, ptr %978, align 4, !tbaa !19
  %979 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %979, ptr %27, align 4, !tbaa !9
  %980 = load ptr, ptr %19, align 8, !tbaa !5
  %981 = load i32, ptr %27, align 4, !tbaa !9
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds %struct.complex, ptr %980, i64 %982
  %984 = getelementptr inbounds %struct.complex, ptr %983, i32 0, i32 0
  %985 = load float, ptr %984, align 4, !tbaa !16
  store float %985, ptr %30, align 4, !tbaa !11
  %986 = load float, ptr %30, align 4, !tbaa !11
  %987 = fcmp oge float %986, 0.000000e+00
  br i1 %987, label %988, label %990

988:                                              ; preds = %959
  %989 = load float, ptr %30, align 4, !tbaa !11
  br label %993

990:                                              ; preds = %959
  %991 = load float, ptr %30, align 4, !tbaa !11
  %992 = fneg float %991
  br label %993

993:                                              ; preds = %990, %988
  %994 = phi float [ %989, %988 ], [ %992, %990 ]
  %995 = load ptr, ptr %19, align 8, !tbaa !5
  %996 = load i32, ptr %46, align 4, !tbaa !9
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds %struct.complex, ptr %995, i64 %997
  %999 = call <2 x float> @Cf(ptr noundef %998)
  store <2 x float> %999, ptr %66, align 4
  %1000 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %1001 = load float, ptr %1000, align 4
  %1002 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  %1003 = load float, ptr %1002, align 4
  store float %1003, ptr %31, align 4, !tbaa !11
  %1004 = load float, ptr %31, align 4, !tbaa !11
  %1005 = fcmp oge float %1004, 0.000000e+00
  br i1 %1005, label %1006, label %1008

1006:                                             ; preds = %993
  %1007 = load float, ptr %31, align 4, !tbaa !11
  br label %1011

1008:                                             ; preds = %993
  %1009 = load float, ptr %31, align 4, !tbaa !11
  %1010 = fneg float %1009
  br label %1011

1011:                                             ; preds = %1008, %1006
  %1012 = phi float [ %1007, %1006 ], [ %1010, %1008 ]
  %1013 = fadd float %994, %1012
  store float %1013, ptr %52, align 4, !tbaa !11
  br label %1145

1014:                                             ; preds = %930
  %1015 = load float, ptr %59, align 4, !tbaa !11
  %1016 = fcmp ogt float %1015, 0.000000e+00
  br i1 %1016, label %1017, label %1109

1017:                                             ; preds = %1014
  %1018 = load float, ptr %52, align 4, !tbaa !11
  %1019 = load float, ptr %59, align 4, !tbaa !11
  %1020 = load float, ptr %53, align 4, !tbaa !11
  %1021 = fmul float %1019, %1020
  %1022 = fcmp ogt float %1018, %1021
  br i1 %1022, label %1023, label %1054

1023:                                             ; preds = %1017
  %1024 = load float, ptr %59, align 4, !tbaa !11
  %1025 = load float, ptr %53, align 4, !tbaa !11
  %1026 = fmul float %1024, %1025
  %1027 = load float, ptr %52, align 4, !tbaa !11
  %1028 = fdiv float %1026, %1027
  store float %1028, ptr %58, align 4, !tbaa !11
  %1029 = load ptr, ptr %21, align 8, !tbaa !5
  %1030 = load i32, ptr %46, align 4, !tbaa !9
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds float, ptr %1029, i64 %1031
  %1033 = load float, ptr %1032, align 4, !tbaa !11
  %1034 = fcmp ogt float %1033, 1.000000e+00
  br i1 %1034, label %1035, label %1043

1035:                                             ; preds = %1023
  %1036 = load ptr, ptr %21, align 8, !tbaa !5
  %1037 = load i32, ptr %46, align 4, !tbaa !9
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds float, ptr %1036, i64 %1038
  %1040 = load float, ptr %1039, align 4, !tbaa !11
  %1041 = load float, ptr %58, align 4, !tbaa !11
  %1042 = fdiv float %1041, %1040
  store float %1042, ptr %58, align 4, !tbaa !11
  br label %1043

1043:                                             ; preds = %1035, %1023
  %1044 = load ptr, ptr %16, align 8, !tbaa !5
  %1045 = load ptr, ptr %19, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.complex, ptr %1045, i64 1
  call void @csscal_(ptr noundef %1044, ptr noundef %58, ptr noundef %1046, ptr noundef @c__1)
  %1047 = load float, ptr %58, align 4, !tbaa !11
  %1048 = load ptr, ptr %20, align 8, !tbaa !5
  %1049 = load float, ptr %1048, align 4, !tbaa !11
  %1050 = fmul float %1049, %1047
  store float %1050, ptr %1048, align 4, !tbaa !11
  %1051 = load float, ptr %58, align 4, !tbaa !11
  %1052 = load float, ptr %43, align 4, !tbaa !11
  %1053 = fmul float %1052, %1051
  store float %1053, ptr %43, align 4, !tbaa !11
  br label %1054

1054:                                             ; preds = %1043, %1017
  %1055 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1055, ptr %27, align 4, !tbaa !9
  %1056 = load ptr, ptr %19, align 8, !tbaa !5
  %1057 = load i32, ptr %46, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds %struct.complex, ptr %1056, i64 %1058
  call void @cladiv_(ptr noundef %34, ptr noundef %1059, ptr noundef %42)
  %1060 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1061 = load float, ptr %1060, align 4, !tbaa !16
  %1062 = load ptr, ptr %19, align 8, !tbaa !5
  %1063 = load i32, ptr %27, align 4, !tbaa !9
  %1064 = sext i32 %1063 to i64
  %1065 = getelementptr inbounds %struct.complex, ptr %1062, i64 %1064
  %1066 = getelementptr inbounds %struct.complex, ptr %1065, i32 0, i32 0
  store float %1061, ptr %1066, align 4, !tbaa !16
  %1067 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1068 = load float, ptr %1067, align 4, !tbaa !19
  %1069 = load ptr, ptr %19, align 8, !tbaa !5
  %1070 = load i32, ptr %27, align 4, !tbaa !9
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds %struct.complex, ptr %1069, i64 %1071
  %1073 = getelementptr inbounds %struct.complex, ptr %1072, i32 0, i32 1
  store float %1068, ptr %1073, align 4, !tbaa !19
  %1074 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1074, ptr %27, align 4, !tbaa !9
  %1075 = load ptr, ptr %19, align 8, !tbaa !5
  %1076 = load i32, ptr %27, align 4, !tbaa !9
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds %struct.complex, ptr %1075, i64 %1077
  %1079 = getelementptr inbounds %struct.complex, ptr %1078, i32 0, i32 0
  %1080 = load float, ptr %1079, align 4, !tbaa !16
  store float %1080, ptr %30, align 4, !tbaa !11
  %1081 = load float, ptr %30, align 4, !tbaa !11
  %1082 = fcmp oge float %1081, 0.000000e+00
  br i1 %1082, label %1083, label %1085

1083:                                             ; preds = %1054
  %1084 = load float, ptr %30, align 4, !tbaa !11
  br label %1088

1085:                                             ; preds = %1054
  %1086 = load float, ptr %30, align 4, !tbaa !11
  %1087 = fneg float %1086
  br label %1088

1088:                                             ; preds = %1085, %1083
  %1089 = phi float [ %1084, %1083 ], [ %1087, %1085 ]
  %1090 = load ptr, ptr %19, align 8, !tbaa !5
  %1091 = load i32, ptr %46, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1092
  %1094 = call <2 x float> @Cf(ptr noundef %1093)
  store <2 x float> %1094, ptr %67, align 4
  %1095 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 0
  %1096 = load float, ptr %1095, align 4
  %1097 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 1
  %1098 = load float, ptr %1097, align 4
  store float %1098, ptr %31, align 4, !tbaa !11
  %1099 = load float, ptr %31, align 4, !tbaa !11
  %1100 = fcmp oge float %1099, 0.000000e+00
  br i1 %1100, label %1101, label %1103

1101:                                             ; preds = %1088
  %1102 = load float, ptr %31, align 4, !tbaa !11
  br label %1106

1103:                                             ; preds = %1088
  %1104 = load float, ptr %31, align 4, !tbaa !11
  %1105 = fneg float %1104
  br label %1106

1106:                                             ; preds = %1103, %1101
  %1107 = phi float [ %1102, %1101 ], [ %1105, %1103 ]
  %1108 = fadd float %1089, %1107
  store float %1108, ptr %52, align 4, !tbaa !11
  br label %1144

1109:                                             ; preds = %1014
  %1110 = load ptr, ptr %16, align 8, !tbaa !5
  %1111 = load i32, ptr %1110, align 4, !tbaa !9
  store i32 %1111, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %1112

1112:                                             ; preds = %1128, %1109
  %1113 = load i32, ptr %45, align 4, !tbaa !9
  %1114 = load i32, ptr %27, align 4, !tbaa !9
  %1115 = icmp sle i32 %1113, %1114
  br i1 %1115, label %1116, label %1131

1116:                                             ; preds = %1112
  %1117 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %1117, ptr %28, align 4, !tbaa !9
  %1118 = load ptr, ptr %19, align 8, !tbaa !5
  %1119 = load i32, ptr %28, align 4, !tbaa !9
  %1120 = sext i32 %1119 to i64
  %1121 = getelementptr inbounds %struct.complex, ptr %1118, i64 %1120
  %1122 = getelementptr inbounds %struct.complex, ptr %1121, i32 0, i32 0
  store float 0.000000e+00, ptr %1122, align 4, !tbaa !16
  %1123 = load ptr, ptr %19, align 8, !tbaa !5
  %1124 = load i32, ptr %28, align 4, !tbaa !9
  %1125 = sext i32 %1124 to i64
  %1126 = getelementptr inbounds %struct.complex, ptr %1123, i64 %1125
  %1127 = getelementptr inbounds %struct.complex, ptr %1126, i32 0, i32 1
  store float 0.000000e+00, ptr %1127, align 4, !tbaa !19
  br label %1128

1128:                                             ; preds = %1116
  %1129 = load i32, ptr %45, align 4, !tbaa !9
  %1130 = add nsw i32 %1129, 1
  store i32 %1130, ptr %45, align 4, !tbaa !9
  br label %1112, !llvm.loop !24

1131:                                             ; preds = %1112
  %1132 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1132, ptr %27, align 4, !tbaa !9
  %1133 = load ptr, ptr %19, align 8, !tbaa !5
  %1134 = load i32, ptr %27, align 4, !tbaa !9
  %1135 = sext i32 %1134 to i64
  %1136 = getelementptr inbounds %struct.complex, ptr %1133, i64 %1135
  %1137 = getelementptr inbounds %struct.complex, ptr %1136, i32 0, i32 0
  store float 1.000000e+00, ptr %1137, align 4, !tbaa !16
  %1138 = load ptr, ptr %19, align 8, !tbaa !5
  %1139 = load i32, ptr %27, align 4, !tbaa !9
  %1140 = sext i32 %1139 to i64
  %1141 = getelementptr inbounds %struct.complex, ptr %1138, i64 %1140
  %1142 = getelementptr inbounds %struct.complex, ptr %1141, i32 0, i32 1
  store float 0.000000e+00, ptr %1142, align 4, !tbaa !19
  store float 1.000000e+00, ptr %52, align 4, !tbaa !11
  %1143 = load ptr, ptr %20, align 8, !tbaa !5
  store float 0.000000e+00, ptr %1143, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %1144

1144:                                             ; preds = %1131, %1106
  br label %1145

1145:                                             ; preds = %1144, %1011
  br label %1146

1146:                                             ; preds = %1145, %904
  %1147 = load float, ptr %52, align 4, !tbaa !11
  %1148 = fcmp ogt float %1147, 1.000000e+00
  br i1 %1148, label %1149, label %1174

1149:                                             ; preds = %1146
  %1150 = load float, ptr %52, align 4, !tbaa !11
  %1151 = fdiv float 1.000000e+00, %1150
  store float %1151, ptr %58, align 4, !tbaa !11
  %1152 = load ptr, ptr %21, align 8, !tbaa !5
  %1153 = load i32, ptr %46, align 4, !tbaa !9
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds float, ptr %1152, i64 %1154
  %1156 = load float, ptr %1155, align 4, !tbaa !11
  %1157 = load float, ptr %53, align 4, !tbaa !11
  %1158 = load float, ptr %43, align 4, !tbaa !11
  %1159 = fsub float %1157, %1158
  %1160 = load float, ptr %58, align 4, !tbaa !11
  %1161 = fmul float %1159, %1160
  %1162 = fcmp ogt float %1156, %1161
  br i1 %1162, label %1163, label %1173

1163:                                             ; preds = %1149
  %1164 = load float, ptr %58, align 4, !tbaa !11
  %1165 = fmul float %1164, 5.000000e-01
  store float %1165, ptr %58, align 4, !tbaa !11
  %1166 = load ptr, ptr %16, align 8, !tbaa !5
  %1167 = load ptr, ptr %19, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.complex, ptr %1167, i64 1
  call void @csscal_(ptr noundef %1166, ptr noundef %58, ptr noundef %1168, ptr noundef @c__1)
  %1169 = load float, ptr %58, align 4, !tbaa !11
  %1170 = load ptr, ptr %20, align 8, !tbaa !5
  %1171 = load float, ptr %1170, align 4, !tbaa !11
  %1172 = fmul float %1171, %1169
  store float %1172, ptr %1170, align 4, !tbaa !11
  br label %1173

1173:                                             ; preds = %1163, %1149
  br label %1194

1174:                                             ; preds = %1146
  %1175 = load float, ptr %52, align 4, !tbaa !11
  %1176 = load ptr, ptr %21, align 8, !tbaa !5
  %1177 = load i32, ptr %46, align 4, !tbaa !9
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds float, ptr %1176, i64 %1178
  %1180 = load float, ptr %1179, align 4, !tbaa !11
  %1181 = fmul float %1175, %1180
  %1182 = load float, ptr %53, align 4, !tbaa !11
  %1183 = load float, ptr %43, align 4, !tbaa !11
  %1184 = fsub float %1182, %1183
  %1185 = fcmp ogt float %1181, %1184
  br i1 %1185, label %1186, label %1193

1186:                                             ; preds = %1174
  %1187 = load ptr, ptr %16, align 8, !tbaa !5
  %1188 = load ptr, ptr %19, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.complex, ptr %1188, i64 1
  call void @csscal_(ptr noundef %1187, ptr noundef @c_b36, ptr noundef %1189, ptr noundef @c__1)
  %1190 = load ptr, ptr %20, align 8, !tbaa !5
  %1191 = load float, ptr %1190, align 4, !tbaa !11
  %1192 = fmul float %1191, 5.000000e-01
  store float %1192, ptr %1190, align 4, !tbaa !11
  br label %1193

1193:                                             ; preds = %1186, %1174
  br label %1194

1194:                                             ; preds = %1193, %1173
  %1195 = load i32, ptr %51, align 4, !tbaa !9
  %1196 = icmp ne i32 %1195, 0
  br i1 %1196, label %1197, label %1280

1197:                                             ; preds = %1194
  %1198 = load i32, ptr %46, align 4, !tbaa !9
  %1199 = icmp sgt i32 %1198, 1
  br i1 %1199, label %1200, label %1279

1200:                                             ; preds = %1197
  %1201 = load i32, ptr %46, align 4, !tbaa !9
  %1202 = sub nsw i32 %1201, 1
  store i32 %1202, ptr %27, align 4, !tbaa !9
  %1203 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1203, ptr %28, align 4, !tbaa !9
  %1204 = load ptr, ptr %19, align 8, !tbaa !5
  %1205 = load i32, ptr %28, align 4, !tbaa !9
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds %struct.complex, ptr %1204, i64 %1206
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i32 0, i32 0
  %1209 = load float, ptr %1208, align 4, !tbaa !16
  %1210 = fneg float %1209
  %1211 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %1210, ptr %1211, align 4, !tbaa !16
  %1212 = load ptr, ptr %19, align 8, !tbaa !5
  %1213 = load i32, ptr %28, align 4, !tbaa !9
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds %struct.complex, ptr %1212, i64 %1214
  %1216 = getelementptr inbounds %struct.complex, ptr %1215, i32 0, i32 1
  %1217 = load float, ptr %1216, align 4, !tbaa !19
  %1218 = fneg float %1217
  %1219 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %1218, ptr %1219, align 4, !tbaa !19
  %1220 = load float, ptr %47, align 4, !tbaa !11
  %1221 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %1222 = load float, ptr %1221, align 4, !tbaa !16
  %1223 = fmul float %1220, %1222
  %1224 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1223, ptr %1224, align 4, !tbaa !16
  %1225 = load float, ptr %47, align 4, !tbaa !11
  %1226 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %1227 = load float, ptr %1226, align 4, !tbaa !19
  %1228 = fmul float %1225, %1227
  %1229 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1228, ptr %1229, align 4, !tbaa !19
  %1230 = load ptr, ptr %17, align 8, !tbaa !5
  %1231 = load i32, ptr %46, align 4, !tbaa !9
  %1232 = load i32, ptr %23, align 4, !tbaa !9
  %1233 = mul nsw i32 %1231, %1232
  %1234 = add nsw i32 %1233, 1
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds %struct.complex, ptr %1230, i64 %1235
  %1237 = load ptr, ptr %19, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.complex, ptr %1237, i64 1
  call void @caxpy_(ptr noundef %27, ptr noundef %34, ptr noundef %1236, ptr noundef @c__1, ptr noundef %1238, ptr noundef @c__1)
  %1239 = load i32, ptr %46, align 4, !tbaa !9
  %1240 = sub nsw i32 %1239, 1
  store i32 %1240, ptr %27, align 4, !tbaa !9
  %1241 = load ptr, ptr %19, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.complex, ptr %1241, i64 1
  %1243 = call i32 @icamax_(ptr noundef %27, ptr noundef %1242, ptr noundef @c__1)
  store i32 %1243, ptr %45, align 4, !tbaa !9
  %1244 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %1244, ptr %27, align 4, !tbaa !9
  %1245 = load ptr, ptr %19, align 8, !tbaa !5
  %1246 = load i32, ptr %27, align 4, !tbaa !9
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds %struct.complex, ptr %1245, i64 %1247
  %1249 = getelementptr inbounds %struct.complex, ptr %1248, i32 0, i32 0
  %1250 = load float, ptr %1249, align 4, !tbaa !16
  store float %1250, ptr %30, align 4, !tbaa !11
  %1251 = load float, ptr %30, align 4, !tbaa !11
  %1252 = fcmp oge float %1251, 0.000000e+00
  br i1 %1252, label %1253, label %1255

1253:                                             ; preds = %1200
  %1254 = load float, ptr %30, align 4, !tbaa !11
  br label %1258

1255:                                             ; preds = %1200
  %1256 = load float, ptr %30, align 4, !tbaa !11
  %1257 = fneg float %1256
  br label %1258

1258:                                             ; preds = %1255, %1253
  %1259 = phi float [ %1254, %1253 ], [ %1257, %1255 ]
  %1260 = load ptr, ptr %19, align 8, !tbaa !5
  %1261 = load i32, ptr %45, align 4, !tbaa !9
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds %struct.complex, ptr %1260, i64 %1262
  %1264 = call <2 x float> @Cf(ptr noundef %1263)
  store <2 x float> %1264, ptr %68, align 4
  %1265 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 0
  %1266 = load float, ptr %1265, align 4
  %1267 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 1
  %1268 = load float, ptr %1267, align 4
  store float %1268, ptr %31, align 4, !tbaa !11
  %1269 = load float, ptr %31, align 4, !tbaa !11
  %1270 = fcmp oge float %1269, 0.000000e+00
  br i1 %1270, label %1271, label %1273

1271:                                             ; preds = %1258
  %1272 = load float, ptr %31, align 4, !tbaa !11
  br label %1276

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

1276:                                             ; preds = %1273, %1271
  %1277 = phi float [ %1272, %1271 ], [ %1275, %1273 ]
  %1278 = fadd float %1259, %1277
  store float %1278, ptr %43, align 4, !tbaa !11
  br label %1279

1279:                                             ; preds = %1276, %1197
  br label %1379

1280:                                             ; preds = %1194
  %1281 = load i32, ptr %46, align 4, !tbaa !9
  %1282 = load ptr, ptr %16, align 8, !tbaa !5
  %1283 = load i32, ptr %1282, align 4, !tbaa !9
  %1284 = icmp slt i32 %1281, %1283
  br i1 %1284, label %1285, label %1378

1285:                                             ; preds = %1280
  %1286 = load ptr, ptr %16, align 8, !tbaa !5
  %1287 = load i32, ptr %1286, align 4, !tbaa !9
  %1288 = load i32, ptr %46, align 4, !tbaa !9
  %1289 = sub nsw i32 %1287, %1288
  store i32 %1289, ptr %27, align 4, !tbaa !9
  %1290 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1290, ptr %28, align 4, !tbaa !9
  %1291 = load ptr, ptr %19, align 8, !tbaa !5
  %1292 = load i32, ptr %28, align 4, !tbaa !9
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds %struct.complex, ptr %1291, i64 %1293
  %1295 = getelementptr inbounds %struct.complex, ptr %1294, i32 0, i32 0
  %1296 = load float, ptr %1295, align 4, !tbaa !16
  %1297 = fneg float %1296
  %1298 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %1297, ptr %1298, align 4, !tbaa !16
  %1299 = load ptr, ptr %19, align 8, !tbaa !5
  %1300 = load i32, ptr %28, align 4, !tbaa !9
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds %struct.complex, ptr %1299, i64 %1301
  %1303 = getelementptr inbounds %struct.complex, ptr %1302, i32 0, i32 1
  %1304 = load float, ptr %1303, align 4, !tbaa !19
  %1305 = fneg float %1304
  %1306 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %1305, ptr %1306, align 4, !tbaa !19
  %1307 = load float, ptr %47, align 4, !tbaa !11
  %1308 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %1309 = load float, ptr %1308, align 4, !tbaa !16
  %1310 = fmul float %1307, %1309
  %1311 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1310, ptr %1311, align 4, !tbaa !16
  %1312 = load float, ptr %47, align 4, !tbaa !11
  %1313 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %1314 = load float, ptr %1313, align 4, !tbaa !19
  %1315 = fmul float %1312, %1314
  %1316 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1315, ptr %1316, align 4, !tbaa !19
  %1317 = load ptr, ptr %17, align 8, !tbaa !5
  %1318 = load i32, ptr %46, align 4, !tbaa !9
  %1319 = add nsw i32 %1318, 1
  %1320 = load i32, ptr %46, align 4, !tbaa !9
  %1321 = load i32, ptr %23, align 4, !tbaa !9
  %1322 = mul nsw i32 %1320, %1321
  %1323 = add nsw i32 %1319, %1322
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds %struct.complex, ptr %1317, i64 %1324
  %1326 = load ptr, ptr %19, align 8, !tbaa !5
  %1327 = load i32, ptr %46, align 4, !tbaa !9
  %1328 = add nsw i32 %1327, 1
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds %struct.complex, ptr %1326, i64 %1329
  call void @caxpy_(ptr noundef %27, ptr noundef %34, ptr noundef %1325, ptr noundef @c__1, ptr noundef %1330, ptr noundef @c__1)
  %1331 = load ptr, ptr %16, align 8, !tbaa !5
  %1332 = load i32, ptr %1331, align 4, !tbaa !9
  %1333 = load i32, ptr %46, align 4, !tbaa !9
  %1334 = sub nsw i32 %1332, %1333
  store i32 %1334, ptr %27, align 4, !tbaa !9
  %1335 = load i32, ptr %46, align 4, !tbaa !9
  %1336 = load ptr, ptr %19, align 8, !tbaa !5
  %1337 = load i32, ptr %46, align 4, !tbaa !9
  %1338 = add nsw i32 %1337, 1
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds %struct.complex, ptr %1336, i64 %1339
  %1341 = call i32 @icamax_(ptr noundef %27, ptr noundef %1340, ptr noundef @c__1)
  %1342 = add nsw i32 %1335, %1341
  store i32 %1342, ptr %45, align 4, !tbaa !9
  %1343 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %1343, ptr %27, align 4, !tbaa !9
  %1344 = load ptr, ptr %19, align 8, !tbaa !5
  %1345 = load i32, ptr %27, align 4, !tbaa !9
  %1346 = sext i32 %1345 to i64
  %1347 = getelementptr inbounds %struct.complex, ptr %1344, i64 %1346
  %1348 = getelementptr inbounds %struct.complex, ptr %1347, i32 0, i32 0
  %1349 = load float, ptr %1348, align 4, !tbaa !16
  store float %1349, ptr %30, align 4, !tbaa !11
  %1350 = load float, ptr %30, align 4, !tbaa !11
  %1351 = fcmp oge float %1350, 0.000000e+00
  br i1 %1351, label %1352, label %1354

1352:                                             ; preds = %1285
  %1353 = load float, ptr %30, align 4, !tbaa !11
  br label %1357

1354:                                             ; preds = %1285
  %1355 = load float, ptr %30, align 4, !tbaa !11
  %1356 = fneg float %1355
  br label %1357

1357:                                             ; preds = %1354, %1352
  %1358 = phi float [ %1353, %1352 ], [ %1356, %1354 ]
  %1359 = load ptr, ptr %19, align 8, !tbaa !5
  %1360 = load i32, ptr %45, align 4, !tbaa !9
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds %struct.complex, ptr %1359, i64 %1361
  %1363 = call <2 x float> @Cf(ptr noundef %1362)
  store <2 x float> %1363, ptr %69, align 4
  %1364 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 0
  %1365 = load float, ptr %1364, align 4
  %1366 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 1
  %1367 = load float, ptr %1366, align 4
  store float %1367, ptr %31, align 4, !tbaa !11
  %1368 = load float, ptr %31, align 4, !tbaa !11
  %1369 = fcmp oge float %1368, 0.000000e+00
  br i1 %1369, label %1370, label %1372

1370:                                             ; preds = %1357
  %1371 = load float, ptr %31, align 4, !tbaa !11
  br label %1375

1372:                                             ; preds = %1357
  %1373 = load float, ptr %31, align 4, !tbaa !11
  %1374 = fneg float %1373
  br label %1375

1375:                                             ; preds = %1372, %1370
  %1376 = phi float [ %1371, %1370 ], [ %1374, %1372 ]
  %1377 = fadd float %1358, %1376
  store float %1377, ptr %43, align 4, !tbaa !11
  br label %1378

1378:                                             ; preds = %1375, %1280
  br label %1379

1379:                                             ; preds = %1378, %1279
  br label %1380

1380:                                             ; preds = %1379
  %1381 = load i32, ptr %26, align 4, !tbaa !9
  %1382 = load i32, ptr %46, align 4, !tbaa !9
  %1383 = add nsw i32 %1382, %1381
  store i32 %1383, ptr %46, align 4, !tbaa !9
  br label %814, !llvm.loop !25

1384:                                             ; preds = %827
  br label %3088

1385:                                             ; preds = %807
  %1386 = load ptr, ptr %13, align 8, !tbaa !5
  %1387 = call i32 @lsame_(ptr noundef %1386, ptr noundef @.str.3)
  %1388 = icmp ne i32 %1387, 0
  br i1 %1388, label %1389, label %2238

1389:                                             ; preds = %1385
  %1390 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %1390, ptr %26, align 4, !tbaa !9
  %1391 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %1391, ptr %25, align 4, !tbaa !9
  %1392 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1392, ptr %46, align 4, !tbaa !9
  br label %1393

1393:                                             ; preds = %2233, %1389
  %1394 = load i32, ptr %25, align 4, !tbaa !9
  %1395 = icmp slt i32 %1394, 0
  br i1 %1395, label %1396, label %1401

1396:                                             ; preds = %1393
  %1397 = load i32, ptr %46, align 4, !tbaa !9
  %1398 = load i32, ptr %26, align 4, !tbaa !9
  %1399 = icmp sge i32 %1397, %1398
  %1400 = zext i1 %1399 to i32
  br label %1406

1401:                                             ; preds = %1393
  %1402 = load i32, ptr %46, align 4, !tbaa !9
  %1403 = load i32, ptr %26, align 4, !tbaa !9
  %1404 = icmp sle i32 %1402, %1403
  %1405 = zext i1 %1404 to i32
  br label %1406

1406:                                             ; preds = %1401, %1396
  %1407 = phi i32 [ %1400, %1396 ], [ %1405, %1401 ]
  %1408 = icmp ne i32 %1407, 0
  br i1 %1408, label %1409, label %2237

1409:                                             ; preds = %1406
  %1410 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1410, ptr %27, align 4, !tbaa !9
  %1411 = load ptr, ptr %19, align 8, !tbaa !5
  %1412 = load i32, ptr %27, align 4, !tbaa !9
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds %struct.complex, ptr %1411, i64 %1413
  %1415 = getelementptr inbounds %struct.complex, ptr %1414, i32 0, i32 0
  %1416 = load float, ptr %1415, align 4, !tbaa !16
  store float %1416, ptr %30, align 4, !tbaa !11
  %1417 = load float, ptr %30, align 4, !tbaa !11
  %1418 = fcmp oge float %1417, 0.000000e+00
  br i1 %1418, label %1419, label %1421

1419:                                             ; preds = %1409
  %1420 = load float, ptr %30, align 4, !tbaa !11
  br label %1424

1421:                                             ; preds = %1409
  %1422 = load float, ptr %30, align 4, !tbaa !11
  %1423 = fneg float %1422
  br label %1424

1424:                                             ; preds = %1421, %1419
  %1425 = phi float [ %1420, %1419 ], [ %1423, %1421 ]
  %1426 = load ptr, ptr %19, align 8, !tbaa !5
  %1427 = load i32, ptr %46, align 4, !tbaa !9
  %1428 = sext i32 %1427 to i64
  %1429 = getelementptr inbounds %struct.complex, ptr %1426, i64 %1428
  %1430 = call <2 x float> @Cf(ptr noundef %1429)
  store <2 x float> %1430, ptr %70, align 4
  %1431 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 0
  %1432 = load float, ptr %1431, align 4
  %1433 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 1
  %1434 = load float, ptr %1433, align 4
  store float %1434, ptr %31, align 4, !tbaa !11
  %1435 = load float, ptr %31, align 4, !tbaa !11
  %1436 = fcmp oge float %1435, 0.000000e+00
  br i1 %1436, label %1437, label %1439

1437:                                             ; preds = %1424
  %1438 = load float, ptr %31, align 4, !tbaa !11
  br label %1442

1439:                                             ; preds = %1424
  %1440 = load float, ptr %31, align 4, !tbaa !11
  %1441 = fneg float %1440
  br label %1442

1442:                                             ; preds = %1439, %1437
  %1443 = phi float [ %1438, %1437 ], [ %1441, %1439 ]
  %1444 = fadd float %1425, %1443
  store float %1444, ptr %52, align 4, !tbaa !11
  %1445 = load float, ptr %47, align 4, !tbaa !11
  %1446 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1445, ptr %1446, align 4, !tbaa !16
  %1447 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float 0.000000e+00, ptr %1447, align 4, !tbaa !19
  %1448 = load float, ptr %43, align 4, !tbaa !11
  %1449 = fcmp oge float %1448, 1.000000e+00
  br i1 %1449, label %1450, label %1452

1450:                                             ; preds = %1442
  %1451 = load float, ptr %43, align 4, !tbaa !11
  br label %1453

1452:                                             ; preds = %1442
  br label %1453

1453:                                             ; preds = %1452, %1450
  %1454 = phi float [ %1451, %1450 ], [ 1.000000e+00, %1452 ]
  %1455 = fdiv float 1.000000e+00, %1454
  store float %1455, ptr %58, align 4, !tbaa !11
  %1456 = load ptr, ptr %21, align 8, !tbaa !5
  %1457 = load i32, ptr %46, align 4, !tbaa !9
  %1458 = sext i32 %1457 to i64
  %1459 = getelementptr inbounds float, ptr %1456, i64 %1458
  %1460 = load float, ptr %1459, align 4, !tbaa !11
  %1461 = load float, ptr %53, align 4, !tbaa !11
  %1462 = load float, ptr %52, align 4, !tbaa !11
  %1463 = fsub float %1461, %1462
  %1464 = load float, ptr %58, align 4, !tbaa !11
  %1465 = fmul float %1463, %1464
  %1466 = fcmp ogt float %1460, %1465
  br i1 %1466, label %1467, label %1569

1467:                                             ; preds = %1453
  %1468 = load float, ptr %58, align 4, !tbaa !11
  %1469 = fmul float %1468, 5.000000e-01
  store float %1469, ptr %58, align 4, !tbaa !11
  %1470 = load i32, ptr %57, align 4, !tbaa !9
  %1471 = icmp ne i32 %1470, 0
  br i1 %1471, label %1472, label %1502

1472:                                             ; preds = %1467
  %1473 = load i32, ptr %46, align 4, !tbaa !9
  %1474 = load i32, ptr %46, align 4, !tbaa !9
  %1475 = load i32, ptr %23, align 4, !tbaa !9
  %1476 = mul nsw i32 %1474, %1475
  %1477 = add nsw i32 %1473, %1476
  store i32 %1477, ptr %27, align 4, !tbaa !9
  %1478 = load float, ptr %47, align 4, !tbaa !11
  %1479 = load ptr, ptr %17, align 8, !tbaa !5
  %1480 = load i32, ptr %27, align 4, !tbaa !9
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds %struct.complex, ptr %1479, i64 %1481
  %1483 = getelementptr inbounds %struct.complex, ptr %1482, i32 0, i32 0
  %1484 = load float, ptr %1483, align 4, !tbaa !16
  %1485 = fmul float %1478, %1484
  %1486 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1485, ptr %1486, align 4, !tbaa !16
  %1487 = load float, ptr %47, align 4, !tbaa !11
  %1488 = load ptr, ptr %17, align 8, !tbaa !5
  %1489 = load i32, ptr %27, align 4, !tbaa !9
  %1490 = sext i32 %1489 to i64
  %1491 = getelementptr inbounds %struct.complex, ptr %1488, i64 %1490
  %1492 = getelementptr inbounds %struct.complex, ptr %1491, i32 0, i32 1
  %1493 = load float, ptr %1492, align 4, !tbaa !19
  %1494 = fmul float %1487, %1493
  %1495 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1494, ptr %1495, align 4, !tbaa !19
  %1496 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1497 = load float, ptr %1496, align 4, !tbaa !16
  %1498 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1497, ptr %1498, align 4, !tbaa !16
  %1499 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1500 = load float, ptr %1499, align 4, !tbaa !19
  %1501 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1500, ptr %1501, align 4, !tbaa !19
  br label %1506

1502:                                             ; preds = %1467
  %1503 = load float, ptr %47, align 4, !tbaa !11
  %1504 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1503, ptr %1504, align 4, !tbaa !16
  %1505 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float 0.000000e+00, ptr %1505, align 4, !tbaa !19
  br label %1506

1506:                                             ; preds = %1502, %1472
  %1507 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1508 = load float, ptr %1507, align 4, !tbaa !16
  store float %1508, ptr %30, align 4, !tbaa !11
  %1509 = load float, ptr %30, align 4, !tbaa !11
  %1510 = fcmp oge float %1509, 0.000000e+00
  br i1 %1510, label %1511, label %1513

1511:                                             ; preds = %1506
  %1512 = load float, ptr %30, align 4, !tbaa !11
  br label %1516

1513:                                             ; preds = %1506
  %1514 = load float, ptr %30, align 4, !tbaa !11
  %1515 = fneg float %1514
  br label %1516

1516:                                             ; preds = %1513, %1511
  %1517 = phi float [ %1512, %1511 ], [ %1515, %1513 ]
  %1518 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1518, ptr %71, align 4
  %1519 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %1520 = load float, ptr %1519, align 4
  %1521 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %1522 = load float, ptr %1521, align 4
  store float %1522, ptr %31, align 4, !tbaa !11
  %1523 = load float, ptr %31, align 4, !tbaa !11
  %1524 = fcmp oge float %1523, 0.000000e+00
  br i1 %1524, label %1525, label %1527

1525:                                             ; preds = %1516
  %1526 = load float, ptr %31, align 4, !tbaa !11
  br label %1530

1527:                                             ; preds = %1516
  %1528 = load float, ptr %31, align 4, !tbaa !11
  %1529 = fneg float %1528
  br label %1530

1530:                                             ; preds = %1527, %1525
  %1531 = phi float [ %1526, %1525 ], [ %1529, %1527 ]
  %1532 = fadd float %1517, %1531
  store float %1532, ptr %59, align 4, !tbaa !11
  %1533 = load float, ptr %59, align 4, !tbaa !11
  %1534 = fcmp ogt float %1533, 1.000000e+00
  br i1 %1534, label %1535, label %1554

1535:                                             ; preds = %1530
  store float 1.000000e+00, ptr %30, align 4, !tbaa !11
  %1536 = load float, ptr %58, align 4, !tbaa !11
  %1537 = load float, ptr %59, align 4, !tbaa !11
  %1538 = fmul float %1536, %1537
  store float %1538, ptr %31, align 4, !tbaa !11
  %1539 = load float, ptr %30, align 4, !tbaa !11
  %1540 = load float, ptr %31, align 4, !tbaa !11
  %1541 = fcmp ole float %1539, %1540
  br i1 %1541, label %1542, label %1544

1542:                                             ; preds = %1535
  %1543 = load float, ptr %30, align 4, !tbaa !11
  br label %1546

1544:                                             ; preds = %1535
  %1545 = load float, ptr %31, align 4, !tbaa !11
  br label %1546

1546:                                             ; preds = %1544, %1542
  %1547 = phi float [ %1543, %1542 ], [ %1545, %1544 ]
  store float %1547, ptr %58, align 4, !tbaa !11
  call void @cladiv_(ptr noundef %34, ptr noundef %48, ptr noundef %42)
  %1548 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1549 = load float, ptr %1548, align 4, !tbaa !16
  %1550 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1549, ptr %1550, align 4, !tbaa !16
  %1551 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1552 = load float, ptr %1551, align 4, !tbaa !19
  %1553 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1552, ptr %1553, align 4, !tbaa !19
  br label %1554

1554:                                             ; preds = %1546, %1530
  %1555 = load float, ptr %58, align 4, !tbaa !11
  %1556 = fcmp olt float %1555, 1.000000e+00
  br i1 %1556, label %1557, label %1568

1557:                                             ; preds = %1554
  %1558 = load ptr, ptr %16, align 8, !tbaa !5
  %1559 = load ptr, ptr %19, align 8, !tbaa !5
  %1560 = getelementptr inbounds %struct.complex, ptr %1559, i64 1
  call void @csscal_(ptr noundef %1558, ptr noundef %58, ptr noundef %1560, ptr noundef @c__1)
  %1561 = load float, ptr %58, align 4, !tbaa !11
  %1562 = load ptr, ptr %20, align 8, !tbaa !5
  %1563 = load float, ptr %1562, align 4, !tbaa !11
  %1564 = fmul float %1563, %1561
  store float %1564, ptr %1562, align 4, !tbaa !11
  %1565 = load float, ptr %58, align 4, !tbaa !11
  %1566 = load float, ptr %43, align 4, !tbaa !11
  %1567 = fmul float %1566, %1565
  store float %1567, ptr %43, align 4, !tbaa !11
  br label %1568

1568:                                             ; preds = %1557, %1554
  br label %1569

1569:                                             ; preds = %1568, %1453
  %1570 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float 0.000000e+00, ptr %1570, align 4, !tbaa !16
  %1571 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float 0.000000e+00, ptr %1571, align 4, !tbaa !19
  %1572 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1573 = load float, ptr %1572, align 4, !tbaa !16
  %1574 = fcmp oeq float %1573, 1.000000e+00
  br i1 %1574, label %1575, label %1632

1575:                                             ; preds = %1569
  %1576 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1577 = load float, ptr %1576, align 4, !tbaa !19
  %1578 = fcmp oeq float %1577, 0.000000e+00
  br i1 %1578, label %1579, label %1632

1579:                                             ; preds = %1575
  %1580 = load i32, ptr %51, align 4, !tbaa !9
  %1581 = icmp ne i32 %1580, 0
  br i1 %1581, label %1582, label %1600

1582:                                             ; preds = %1579
  %1583 = load i32, ptr %46, align 4, !tbaa !9
  %1584 = sub nsw i32 %1583, 1
  store i32 %1584, ptr %27, align 4, !tbaa !9
  %1585 = load ptr, ptr %17, align 8, !tbaa !5
  %1586 = load i32, ptr %46, align 4, !tbaa !9
  %1587 = load i32, ptr %23, align 4, !tbaa !9
  %1588 = mul nsw i32 %1586, %1587
  %1589 = add nsw i32 %1588, 1
  %1590 = sext i32 %1589 to i64
  %1591 = getelementptr inbounds %struct.complex, ptr %1585, i64 %1590
  %1592 = load ptr, ptr %19, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.complex, ptr %1592, i64 1
  call void @cdotu_(ptr noundef %34, ptr noundef %27, ptr noundef %1591, ptr noundef @c__1, ptr noundef %1593, ptr noundef @c__1)
  %1594 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1595 = load float, ptr %1594, align 4, !tbaa !16
  %1596 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1595, ptr %1596, align 4, !tbaa !16
  %1597 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1598 = load float, ptr %1597, align 4, !tbaa !19
  %1599 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1598, ptr %1599, align 4, !tbaa !19
  br label %1631

1600:                                             ; preds = %1579
  %1601 = load i32, ptr %46, align 4, !tbaa !9
  %1602 = load ptr, ptr %16, align 8, !tbaa !5
  %1603 = load i32, ptr %1602, align 4, !tbaa !9
  %1604 = icmp slt i32 %1601, %1603
  br i1 %1604, label %1605, label %1630

1605:                                             ; preds = %1600
  %1606 = load ptr, ptr %16, align 8, !tbaa !5
  %1607 = load i32, ptr %1606, align 4, !tbaa !9
  %1608 = load i32, ptr %46, align 4, !tbaa !9
  %1609 = sub nsw i32 %1607, %1608
  store i32 %1609, ptr %27, align 4, !tbaa !9
  %1610 = load ptr, ptr %17, align 8, !tbaa !5
  %1611 = load i32, ptr %46, align 4, !tbaa !9
  %1612 = add nsw i32 %1611, 1
  %1613 = load i32, ptr %46, align 4, !tbaa !9
  %1614 = load i32, ptr %23, align 4, !tbaa !9
  %1615 = mul nsw i32 %1613, %1614
  %1616 = add nsw i32 %1612, %1615
  %1617 = sext i32 %1616 to i64
  %1618 = getelementptr inbounds %struct.complex, ptr %1610, i64 %1617
  %1619 = load ptr, ptr %19, align 8, !tbaa !5
  %1620 = load i32, ptr %46, align 4, !tbaa !9
  %1621 = add nsw i32 %1620, 1
  %1622 = sext i32 %1621 to i64
  %1623 = getelementptr inbounds %struct.complex, ptr %1619, i64 %1622
  call void @cdotu_(ptr noundef %34, ptr noundef %27, ptr noundef %1618, ptr noundef @c__1, ptr noundef %1623, ptr noundef @c__1)
  %1624 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1625 = load float, ptr %1624, align 4, !tbaa !16
  %1626 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1625, ptr %1626, align 4, !tbaa !16
  %1627 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1628 = load float, ptr %1627, align 4, !tbaa !19
  %1629 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1628, ptr %1629, align 4, !tbaa !19
  br label %1630

1630:                                             ; preds = %1605, %1600
  br label %1631

1631:                                             ; preds = %1630, %1582
  br label %1872

1632:                                             ; preds = %1575, %1569
  %1633 = load i32, ptr %51, align 4, !tbaa !9
  %1634 = icmp ne i32 %1633, 0
  br i1 %1634, label %1635, label %1749

1635:                                             ; preds = %1632
  %1636 = load i32, ptr %46, align 4, !tbaa !9
  %1637 = sub nsw i32 %1636, 1
  store i32 %1637, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %1638

1638:                                             ; preds = %1745, %1635
  %1639 = load i32, ptr %45, align 4, !tbaa !9
  %1640 = load i32, ptr %27, align 4, !tbaa !9
  %1641 = icmp sle i32 %1639, %1640
  br i1 %1641, label %1642, label %1748

1642:                                             ; preds = %1638
  %1643 = load i32, ptr %45, align 4, !tbaa !9
  %1644 = load i32, ptr %46, align 4, !tbaa !9
  %1645 = load i32, ptr %23, align 4, !tbaa !9
  %1646 = mul nsw i32 %1644, %1645
  %1647 = add nsw i32 %1643, %1646
  store i32 %1647, ptr %28, align 4, !tbaa !9
  %1648 = load ptr, ptr %17, align 8, !tbaa !5
  %1649 = load i32, ptr %28, align 4, !tbaa !9
  %1650 = sext i32 %1649 to i64
  %1651 = getelementptr inbounds %struct.complex, ptr %1648, i64 %1650
  %1652 = getelementptr inbounds %struct.complex, ptr %1651, i32 0, i32 0
  %1653 = load float, ptr %1652, align 4, !tbaa !16
  %1654 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1655 = load float, ptr %1654, align 4, !tbaa !16
  %1656 = load ptr, ptr %17, align 8, !tbaa !5
  %1657 = load i32, ptr %28, align 4, !tbaa !9
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds %struct.complex, ptr %1656, i64 %1658
  %1660 = getelementptr inbounds %struct.complex, ptr %1659, i32 0, i32 1
  %1661 = load float, ptr %1660, align 4, !tbaa !19
  %1662 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1663 = load float, ptr %1662, align 4, !tbaa !19
  %1664 = fmul float %1661, %1663
  %1665 = fneg float %1664
  %1666 = call float @llvm.fmuladd.f32(float %1653, float %1655, float %1665)
  %1667 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  store float %1666, ptr %1667, align 4, !tbaa !16
  %1668 = load ptr, ptr %17, align 8, !tbaa !5
  %1669 = load i32, ptr %28, align 4, !tbaa !9
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds %struct.complex, ptr %1668, i64 %1670
  %1672 = getelementptr inbounds %struct.complex, ptr %1671, i32 0, i32 0
  %1673 = load float, ptr %1672, align 4, !tbaa !16
  %1674 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1675 = load float, ptr %1674, align 4, !tbaa !19
  %1676 = load ptr, ptr %17, align 8, !tbaa !5
  %1677 = load i32, ptr %28, align 4, !tbaa !9
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds %struct.complex, ptr %1676, i64 %1678
  %1680 = getelementptr inbounds %struct.complex, ptr %1679, i32 0, i32 1
  %1681 = load float, ptr %1680, align 4, !tbaa !19
  %1682 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1683 = load float, ptr %1682, align 4, !tbaa !16
  %1684 = fmul float %1681, %1683
  %1685 = call float @llvm.fmuladd.f32(float %1673, float %1675, float %1684)
  %1686 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  store float %1685, ptr %1686, align 4, !tbaa !19
  %1687 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %1687, ptr %29, align 4, !tbaa !9
  %1688 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %1689 = load float, ptr %1688, align 4, !tbaa !16
  %1690 = load ptr, ptr %19, align 8, !tbaa !5
  %1691 = load i32, ptr %29, align 4, !tbaa !9
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds %struct.complex, ptr %1690, i64 %1692
  %1694 = getelementptr inbounds %struct.complex, ptr %1693, i32 0, i32 0
  %1695 = load float, ptr %1694, align 4, !tbaa !16
  %1696 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %1697 = load float, ptr %1696, align 4, !tbaa !19
  %1698 = load ptr, ptr %19, align 8, !tbaa !5
  %1699 = load i32, ptr %29, align 4, !tbaa !9
  %1700 = sext i32 %1699 to i64
  %1701 = getelementptr inbounds %struct.complex, ptr %1698, i64 %1700
  %1702 = getelementptr inbounds %struct.complex, ptr %1701, i32 0, i32 1
  %1703 = load float, ptr %1702, align 4, !tbaa !19
  %1704 = fmul float %1697, %1703
  %1705 = fneg float %1704
  %1706 = call float @llvm.fmuladd.f32(float %1689, float %1695, float %1705)
  %1707 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %1706, ptr %1707, align 4, !tbaa !16
  %1708 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %1709 = load float, ptr %1708, align 4, !tbaa !16
  %1710 = load ptr, ptr %19, align 8, !tbaa !5
  %1711 = load i32, ptr %29, align 4, !tbaa !9
  %1712 = sext i32 %1711 to i64
  %1713 = getelementptr inbounds %struct.complex, ptr %1710, i64 %1712
  %1714 = getelementptr inbounds %struct.complex, ptr %1713, i32 0, i32 1
  %1715 = load float, ptr %1714, align 4, !tbaa !19
  %1716 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %1717 = load float, ptr %1716, align 4, !tbaa !19
  %1718 = load ptr, ptr %19, align 8, !tbaa !5
  %1719 = load i32, ptr %29, align 4, !tbaa !9
  %1720 = sext i32 %1719 to i64
  %1721 = getelementptr inbounds %struct.complex, ptr %1718, i64 %1720
  %1722 = getelementptr inbounds %struct.complex, ptr %1721, i32 0, i32 0
  %1723 = load float, ptr %1722, align 4, !tbaa !16
  %1724 = fmul float %1717, %1723
  %1725 = call float @llvm.fmuladd.f32(float %1709, float %1715, float %1724)
  %1726 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %1725, ptr %1726, align 4, !tbaa !19
  %1727 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1728 = load float, ptr %1727, align 4, !tbaa !16
  %1729 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %1730 = load float, ptr %1729, align 4, !tbaa !16
  %1731 = fadd float %1728, %1730
  %1732 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1731, ptr %1732, align 4, !tbaa !16
  %1733 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1734 = load float, ptr %1733, align 4, !tbaa !19
  %1735 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %1736 = load float, ptr %1735, align 4, !tbaa !19
  %1737 = fadd float %1734, %1736
  %1738 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1737, ptr %1738, align 4, !tbaa !19
  %1739 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1740 = load float, ptr %1739, align 4, !tbaa !16
  %1741 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1740, ptr %1741, align 4, !tbaa !16
  %1742 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1743 = load float, ptr %1742, align 4, !tbaa !19
  %1744 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1743, ptr %1744, align 4, !tbaa !19
  br label %1745

1745:                                             ; preds = %1642
  %1746 = load i32, ptr %45, align 4, !tbaa !9
  %1747 = add nsw i32 %1746, 1
  store i32 %1747, ptr %45, align 4, !tbaa !9
  br label %1638, !llvm.loop !26

1748:                                             ; preds = %1638
  br label %1871

1749:                                             ; preds = %1632
  %1750 = load i32, ptr %46, align 4, !tbaa !9
  %1751 = load ptr, ptr %16, align 8, !tbaa !5
  %1752 = load i32, ptr %1751, align 4, !tbaa !9
  %1753 = icmp slt i32 %1750, %1752
  br i1 %1753, label %1754, label %1870

1754:                                             ; preds = %1749
  %1755 = load ptr, ptr %16, align 8, !tbaa !5
  %1756 = load i32, ptr %1755, align 4, !tbaa !9
  store i32 %1756, ptr %27, align 4, !tbaa !9
  %1757 = load i32, ptr %46, align 4, !tbaa !9
  %1758 = add nsw i32 %1757, 1
  store i32 %1758, ptr %45, align 4, !tbaa !9
  br label %1759

1759:                                             ; preds = %1866, %1754
  %1760 = load i32, ptr %45, align 4, !tbaa !9
  %1761 = load i32, ptr %27, align 4, !tbaa !9
  %1762 = icmp sle i32 %1760, %1761
  br i1 %1762, label %1763, label %1869

1763:                                             ; preds = %1759
  %1764 = load i32, ptr %45, align 4, !tbaa !9
  %1765 = load i32, ptr %46, align 4, !tbaa !9
  %1766 = load i32, ptr %23, align 4, !tbaa !9
  %1767 = mul nsw i32 %1765, %1766
  %1768 = add nsw i32 %1764, %1767
  store i32 %1768, ptr %28, align 4, !tbaa !9
  %1769 = load ptr, ptr %17, align 8, !tbaa !5
  %1770 = load i32, ptr %28, align 4, !tbaa !9
  %1771 = sext i32 %1770 to i64
  %1772 = getelementptr inbounds %struct.complex, ptr %1769, i64 %1771
  %1773 = getelementptr inbounds %struct.complex, ptr %1772, i32 0, i32 0
  %1774 = load float, ptr %1773, align 4, !tbaa !16
  %1775 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1776 = load float, ptr %1775, align 4, !tbaa !16
  %1777 = load ptr, ptr %17, align 8, !tbaa !5
  %1778 = load i32, ptr %28, align 4, !tbaa !9
  %1779 = sext i32 %1778 to i64
  %1780 = getelementptr inbounds %struct.complex, ptr %1777, i64 %1779
  %1781 = getelementptr inbounds %struct.complex, ptr %1780, i32 0, i32 1
  %1782 = load float, ptr %1781, align 4, !tbaa !19
  %1783 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1784 = load float, ptr %1783, align 4, !tbaa !19
  %1785 = fmul float %1782, %1784
  %1786 = fneg float %1785
  %1787 = call float @llvm.fmuladd.f32(float %1774, float %1776, float %1786)
  %1788 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  store float %1787, ptr %1788, align 4, !tbaa !16
  %1789 = load ptr, ptr %17, align 8, !tbaa !5
  %1790 = load i32, ptr %28, align 4, !tbaa !9
  %1791 = sext i32 %1790 to i64
  %1792 = getelementptr inbounds %struct.complex, ptr %1789, i64 %1791
  %1793 = getelementptr inbounds %struct.complex, ptr %1792, i32 0, i32 0
  %1794 = load float, ptr %1793, align 4, !tbaa !16
  %1795 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1796 = load float, ptr %1795, align 4, !tbaa !19
  %1797 = load ptr, ptr %17, align 8, !tbaa !5
  %1798 = load i32, ptr %28, align 4, !tbaa !9
  %1799 = sext i32 %1798 to i64
  %1800 = getelementptr inbounds %struct.complex, ptr %1797, i64 %1799
  %1801 = getelementptr inbounds %struct.complex, ptr %1800, i32 0, i32 1
  %1802 = load float, ptr %1801, align 4, !tbaa !19
  %1803 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1804 = load float, ptr %1803, align 4, !tbaa !16
  %1805 = fmul float %1802, %1804
  %1806 = call float @llvm.fmuladd.f32(float %1794, float %1796, float %1805)
  %1807 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  store float %1806, ptr %1807, align 4, !tbaa !19
  %1808 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %1808, ptr %29, align 4, !tbaa !9
  %1809 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %1810 = load float, ptr %1809, align 4, !tbaa !16
  %1811 = load ptr, ptr %19, align 8, !tbaa !5
  %1812 = load i32, ptr %29, align 4, !tbaa !9
  %1813 = sext i32 %1812 to i64
  %1814 = getelementptr inbounds %struct.complex, ptr %1811, i64 %1813
  %1815 = getelementptr inbounds %struct.complex, ptr %1814, i32 0, i32 0
  %1816 = load float, ptr %1815, align 4, !tbaa !16
  %1817 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %1818 = load float, ptr %1817, align 4, !tbaa !19
  %1819 = load ptr, ptr %19, align 8, !tbaa !5
  %1820 = load i32, ptr %29, align 4, !tbaa !9
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds %struct.complex, ptr %1819, i64 %1821
  %1823 = getelementptr inbounds %struct.complex, ptr %1822, i32 0, i32 1
  %1824 = load float, ptr %1823, align 4, !tbaa !19
  %1825 = fmul float %1818, %1824
  %1826 = fneg float %1825
  %1827 = call float @llvm.fmuladd.f32(float %1810, float %1816, float %1826)
  %1828 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %1827, ptr %1828, align 4, !tbaa !16
  %1829 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %1830 = load float, ptr %1829, align 4, !tbaa !16
  %1831 = load ptr, ptr %19, align 8, !tbaa !5
  %1832 = load i32, ptr %29, align 4, !tbaa !9
  %1833 = sext i32 %1832 to i64
  %1834 = getelementptr inbounds %struct.complex, ptr %1831, i64 %1833
  %1835 = getelementptr inbounds %struct.complex, ptr %1834, i32 0, i32 1
  %1836 = load float, ptr %1835, align 4, !tbaa !19
  %1837 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %1838 = load float, ptr %1837, align 4, !tbaa !19
  %1839 = load ptr, ptr %19, align 8, !tbaa !5
  %1840 = load i32, ptr %29, align 4, !tbaa !9
  %1841 = sext i32 %1840 to i64
  %1842 = getelementptr inbounds %struct.complex, ptr %1839, i64 %1841
  %1843 = getelementptr inbounds %struct.complex, ptr %1842, i32 0, i32 0
  %1844 = load float, ptr %1843, align 4, !tbaa !16
  %1845 = fmul float %1838, %1844
  %1846 = call float @llvm.fmuladd.f32(float %1830, float %1836, float %1845)
  %1847 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %1846, ptr %1847, align 4, !tbaa !19
  %1848 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1849 = load float, ptr %1848, align 4, !tbaa !16
  %1850 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %1851 = load float, ptr %1850, align 4, !tbaa !16
  %1852 = fadd float %1849, %1851
  %1853 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1852, ptr %1853, align 4, !tbaa !16
  %1854 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1855 = load float, ptr %1854, align 4, !tbaa !19
  %1856 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %1857 = load float, ptr %1856, align 4, !tbaa !19
  %1858 = fadd float %1855, %1857
  %1859 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1858, ptr %1859, align 4, !tbaa !19
  %1860 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1861 = load float, ptr %1860, align 4, !tbaa !16
  %1862 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1861, ptr %1862, align 4, !tbaa !16
  %1863 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1864 = load float, ptr %1863, align 4, !tbaa !19
  %1865 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1864, ptr %1865, align 4, !tbaa !19
  br label %1866

1866:                                             ; preds = %1763
  %1867 = load i32, ptr %45, align 4, !tbaa !9
  %1868 = add nsw i32 %1867, 1
  store i32 %1868, ptr %45, align 4, !tbaa !9
  br label %1759, !llvm.loop !27

1869:                                             ; preds = %1759
  br label %1870

1870:                                             ; preds = %1869, %1749
  br label %1871

1871:                                             ; preds = %1870, %1748
  br label %1872

1872:                                             ; preds = %1871, %1631
  %1873 = load float, ptr %47, align 4, !tbaa !11
  %1874 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1873, ptr %1874, align 4, !tbaa !16
  %1875 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float 0.000000e+00, ptr %1875, align 4, !tbaa !19
  %1876 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1877 = load float, ptr %1876, align 4, !tbaa !16
  %1878 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1879 = load float, ptr %1878, align 4, !tbaa !16
  %1880 = fcmp oeq float %1877, %1879
  br i1 %1880, label %1881, label %2155

1881:                                             ; preds = %1872
  %1882 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1883 = load float, ptr %1882, align 4, !tbaa !19
  %1884 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1885 = load float, ptr %1884, align 4, !tbaa !19
  %1886 = fcmp oeq float %1883, %1885
  br i1 %1886, label %1887, label %2155

1887:                                             ; preds = %1881
  %1888 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1888, ptr %27, align 4, !tbaa !9
  %1889 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1889, ptr %28, align 4, !tbaa !9
  %1890 = load ptr, ptr %19, align 8, !tbaa !5
  %1891 = load i32, ptr %28, align 4, !tbaa !9
  %1892 = sext i32 %1891 to i64
  %1893 = getelementptr inbounds %struct.complex, ptr %1890, i64 %1892
  %1894 = getelementptr inbounds %struct.complex, ptr %1893, i32 0, i32 0
  %1895 = load float, ptr %1894, align 4, !tbaa !16
  %1896 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1897 = load float, ptr %1896, align 4, !tbaa !16
  %1898 = fsub float %1895, %1897
  %1899 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1898, ptr %1899, align 4, !tbaa !16
  %1900 = load ptr, ptr %19, align 8, !tbaa !5
  %1901 = load i32, ptr %28, align 4, !tbaa !9
  %1902 = sext i32 %1901 to i64
  %1903 = getelementptr inbounds %struct.complex, ptr %1900, i64 %1902
  %1904 = getelementptr inbounds %struct.complex, ptr %1903, i32 0, i32 1
  %1905 = load float, ptr %1904, align 4, !tbaa !19
  %1906 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1907 = load float, ptr %1906, align 4, !tbaa !19
  %1908 = fsub float %1905, %1907
  %1909 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1908, ptr %1909, align 4, !tbaa !19
  %1910 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1911 = load float, ptr %1910, align 4, !tbaa !16
  %1912 = load ptr, ptr %19, align 8, !tbaa !5
  %1913 = load i32, ptr %27, align 4, !tbaa !9
  %1914 = sext i32 %1913 to i64
  %1915 = getelementptr inbounds %struct.complex, ptr %1912, i64 %1914
  %1916 = getelementptr inbounds %struct.complex, ptr %1915, i32 0, i32 0
  store float %1911, ptr %1916, align 4, !tbaa !16
  %1917 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1918 = load float, ptr %1917, align 4, !tbaa !19
  %1919 = load ptr, ptr %19, align 8, !tbaa !5
  %1920 = load i32, ptr %27, align 4, !tbaa !9
  %1921 = sext i32 %1920 to i64
  %1922 = getelementptr inbounds %struct.complex, ptr %1919, i64 %1921
  %1923 = getelementptr inbounds %struct.complex, ptr %1922, i32 0, i32 1
  store float %1918, ptr %1923, align 4, !tbaa !19
  %1924 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1924, ptr %27, align 4, !tbaa !9
  %1925 = load ptr, ptr %19, align 8, !tbaa !5
  %1926 = load i32, ptr %27, align 4, !tbaa !9
  %1927 = sext i32 %1926 to i64
  %1928 = getelementptr inbounds %struct.complex, ptr %1925, i64 %1927
  %1929 = getelementptr inbounds %struct.complex, ptr %1928, i32 0, i32 0
  %1930 = load float, ptr %1929, align 4, !tbaa !16
  store float %1930, ptr %30, align 4, !tbaa !11
  %1931 = load float, ptr %30, align 4, !tbaa !11
  %1932 = fcmp oge float %1931, 0.000000e+00
  br i1 %1932, label %1933, label %1935

1933:                                             ; preds = %1887
  %1934 = load float, ptr %30, align 4, !tbaa !11
  br label %1938

1935:                                             ; preds = %1887
  %1936 = load float, ptr %30, align 4, !tbaa !11
  %1937 = fneg float %1936
  br label %1938

1938:                                             ; preds = %1935, %1933
  %1939 = phi float [ %1934, %1933 ], [ %1937, %1935 ]
  %1940 = load ptr, ptr %19, align 8, !tbaa !5
  %1941 = load i32, ptr %46, align 4, !tbaa !9
  %1942 = sext i32 %1941 to i64
  %1943 = getelementptr inbounds %struct.complex, ptr %1940, i64 %1942
  %1944 = call <2 x float> @Cf(ptr noundef %1943)
  store <2 x float> %1944, ptr %72, align 4
  %1945 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %1946 = load float, ptr %1945, align 4
  %1947 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %1948 = load float, ptr %1947, align 4
  store float %1948, ptr %31, align 4, !tbaa !11
  %1949 = load float, ptr %31, align 4, !tbaa !11
  %1950 = fcmp oge float %1949, 0.000000e+00
  br i1 %1950, label %1951, label %1953

1951:                                             ; preds = %1938
  %1952 = load float, ptr %31, align 4, !tbaa !11
  br label %1956

1953:                                             ; preds = %1938
  %1954 = load float, ptr %31, align 4, !tbaa !11
  %1955 = fneg float %1954
  br label %1956

1956:                                             ; preds = %1953, %1951
  %1957 = phi float [ %1952, %1951 ], [ %1955, %1953 ]
  %1958 = fadd float %1939, %1957
  store float %1958, ptr %52, align 4, !tbaa !11
  %1959 = load i32, ptr %57, align 4, !tbaa !9
  %1960 = icmp ne i32 %1959, 0
  br i1 %1960, label %1961, label %1991

1961:                                             ; preds = %1956
  %1962 = load i32, ptr %46, align 4, !tbaa !9
  %1963 = load i32, ptr %46, align 4, !tbaa !9
  %1964 = load i32, ptr %23, align 4, !tbaa !9
  %1965 = mul nsw i32 %1963, %1964
  %1966 = add nsw i32 %1962, %1965
  store i32 %1966, ptr %27, align 4, !tbaa !9
  %1967 = load float, ptr %47, align 4, !tbaa !11
  %1968 = load ptr, ptr %17, align 8, !tbaa !5
  %1969 = load i32, ptr %27, align 4, !tbaa !9
  %1970 = sext i32 %1969 to i64
  %1971 = getelementptr inbounds %struct.complex, ptr %1968, i64 %1970
  %1972 = getelementptr inbounds %struct.complex, ptr %1971, i32 0, i32 0
  %1973 = load float, ptr %1972, align 4, !tbaa !16
  %1974 = fmul float %1967, %1973
  %1975 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1974, ptr %1975, align 4, !tbaa !16
  %1976 = load float, ptr %47, align 4, !tbaa !11
  %1977 = load ptr, ptr %17, align 8, !tbaa !5
  %1978 = load i32, ptr %27, align 4, !tbaa !9
  %1979 = sext i32 %1978 to i64
  %1980 = getelementptr inbounds %struct.complex, ptr %1977, i64 %1979
  %1981 = getelementptr inbounds %struct.complex, ptr %1980, i32 0, i32 1
  %1982 = load float, ptr %1981, align 4, !tbaa !19
  %1983 = fmul float %1976, %1982
  %1984 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1983, ptr %1984, align 4, !tbaa !19
  %1985 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1986 = load float, ptr %1985, align 4, !tbaa !16
  %1987 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1986, ptr %1987, align 4, !tbaa !16
  %1988 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1989 = load float, ptr %1988, align 4, !tbaa !19
  %1990 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1989, ptr %1990, align 4, !tbaa !19
  br label %1999

1991:                                             ; preds = %1956
  %1992 = load float, ptr %47, align 4, !tbaa !11
  %1993 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1992, ptr %1993, align 4, !tbaa !16
  %1994 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float 0.000000e+00, ptr %1994, align 4, !tbaa !19
  %1995 = load float, ptr %47, align 4, !tbaa !11
  %1996 = fcmp oeq float %1995, 1.000000e+00
  br i1 %1996, label %1997, label %1998

1997:                                             ; preds = %1991
  br label %2154

1998:                                             ; preds = %1991
  br label %1999

1999:                                             ; preds = %1998, %1961
  %2000 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2001 = load float, ptr %2000, align 4, !tbaa !16
  store float %2001, ptr %30, align 4, !tbaa !11
  %2002 = load float, ptr %30, align 4, !tbaa !11
  %2003 = fcmp oge float %2002, 0.000000e+00
  br i1 %2003, label %2004, label %2006

2004:                                             ; preds = %1999
  %2005 = load float, ptr %30, align 4, !tbaa !11
  br label %2009

2006:                                             ; preds = %1999
  %2007 = load float, ptr %30, align 4, !tbaa !11
  %2008 = fneg float %2007
  br label %2009

2009:                                             ; preds = %2006, %2004
  %2010 = phi float [ %2005, %2004 ], [ %2008, %2006 ]
  %2011 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %2011, ptr %73, align 4
  %2012 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %2013 = load float, ptr %2012, align 4
  %2014 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %2015 = load float, ptr %2014, align 4
  store float %2015, ptr %31, align 4, !tbaa !11
  %2016 = load float, ptr %31, align 4, !tbaa !11
  %2017 = fcmp oge float %2016, 0.000000e+00
  br i1 %2017, label %2018, label %2020

2018:                                             ; preds = %2009
  %2019 = load float, ptr %31, align 4, !tbaa !11
  br label %2023

2020:                                             ; preds = %2009
  %2021 = load float, ptr %31, align 4, !tbaa !11
  %2022 = fneg float %2021
  br label %2023

2023:                                             ; preds = %2020, %2018
  %2024 = phi float [ %2019, %2018 ], [ %2022, %2020 ]
  %2025 = fadd float %2010, %2024
  store float %2025, ptr %59, align 4, !tbaa !11
  %2026 = load float, ptr %59, align 4, !tbaa !11
  %2027 = load float, ptr %56, align 4, !tbaa !11
  %2028 = fcmp ogt float %2026, %2027
  br i1 %2028, label %2029, label %2072

2029:                                             ; preds = %2023
  %2030 = load float, ptr %59, align 4, !tbaa !11
  %2031 = fcmp olt float %2030, 1.000000e+00
  br i1 %2031, label %2032, label %2052

2032:                                             ; preds = %2029
  %2033 = load float, ptr %52, align 4, !tbaa !11
  %2034 = load float, ptr %59, align 4, !tbaa !11
  %2035 = load float, ptr %53, align 4, !tbaa !11
  %2036 = fmul float %2034, %2035
  %2037 = fcmp ogt float %2033, %2036
  br i1 %2037, label %2038, label %2051

2038:                                             ; preds = %2032
  %2039 = load float, ptr %52, align 4, !tbaa !11
  %2040 = fdiv float 1.000000e+00, %2039
  store float %2040, ptr %58, align 4, !tbaa !11
  %2041 = load ptr, ptr %16, align 8, !tbaa !5
  %2042 = load ptr, ptr %19, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.complex, ptr %2042, i64 1
  call void @csscal_(ptr noundef %2041, ptr noundef %58, ptr noundef %2043, ptr noundef @c__1)
  %2044 = load float, ptr %58, align 4, !tbaa !11
  %2045 = load ptr, ptr %20, align 8, !tbaa !5
  %2046 = load float, ptr %2045, align 4, !tbaa !11
  %2047 = fmul float %2046, %2044
  store float %2047, ptr %2045, align 4, !tbaa !11
  %2048 = load float, ptr %58, align 4, !tbaa !11
  %2049 = load float, ptr %43, align 4, !tbaa !11
  %2050 = fmul float %2049, %2048
  store float %2050, ptr %43, align 4, !tbaa !11
  br label %2051

2051:                                             ; preds = %2038, %2032
  br label %2052

2052:                                             ; preds = %2051, %2029
  %2053 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2053, ptr %27, align 4, !tbaa !9
  %2054 = load ptr, ptr %19, align 8, !tbaa !5
  %2055 = load i32, ptr %46, align 4, !tbaa !9
  %2056 = sext i32 %2055 to i64
  %2057 = getelementptr inbounds %struct.complex, ptr %2054, i64 %2056
  call void @cladiv_(ptr noundef %34, ptr noundef %2057, ptr noundef %42)
  %2058 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2059 = load float, ptr %2058, align 4, !tbaa !16
  %2060 = load ptr, ptr %19, align 8, !tbaa !5
  %2061 = load i32, ptr %27, align 4, !tbaa !9
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds %struct.complex, ptr %2060, i64 %2062
  %2064 = getelementptr inbounds %struct.complex, ptr %2063, i32 0, i32 0
  store float %2059, ptr %2064, align 4, !tbaa !16
  %2065 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2066 = load float, ptr %2065, align 4, !tbaa !19
  %2067 = load ptr, ptr %19, align 8, !tbaa !5
  %2068 = load i32, ptr %27, align 4, !tbaa !9
  %2069 = sext i32 %2068 to i64
  %2070 = getelementptr inbounds %struct.complex, ptr %2067, i64 %2069
  %2071 = getelementptr inbounds %struct.complex, ptr %2070, i32 0, i32 1
  store float %2066, ptr %2071, align 4, !tbaa !19
  br label %2153

2072:                                             ; preds = %2023
  %2073 = load float, ptr %59, align 4, !tbaa !11
  %2074 = fcmp ogt float %2073, 0.000000e+00
  br i1 %2074, label %2075, label %2117

2075:                                             ; preds = %2072
  %2076 = load float, ptr %52, align 4, !tbaa !11
  %2077 = load float, ptr %59, align 4, !tbaa !11
  %2078 = load float, ptr %53, align 4, !tbaa !11
  %2079 = fmul float %2077, %2078
  %2080 = fcmp ogt float %2076, %2079
  br i1 %2080, label %2081, label %2097

2081:                                             ; preds = %2075
  %2082 = load float, ptr %59, align 4, !tbaa !11
  %2083 = load float, ptr %53, align 4, !tbaa !11
  %2084 = fmul float %2082, %2083
  %2085 = load float, ptr %52, align 4, !tbaa !11
  %2086 = fdiv float %2084, %2085
  store float %2086, ptr %58, align 4, !tbaa !11
  %2087 = load ptr, ptr %16, align 8, !tbaa !5
  %2088 = load ptr, ptr %19, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.complex, ptr %2088, i64 1
  call void @csscal_(ptr noundef %2087, ptr noundef %58, ptr noundef %2089, ptr noundef @c__1)
  %2090 = load float, ptr %58, align 4, !tbaa !11
  %2091 = load ptr, ptr %20, align 8, !tbaa !5
  %2092 = load float, ptr %2091, align 4, !tbaa !11
  %2093 = fmul float %2092, %2090
  store float %2093, ptr %2091, align 4, !tbaa !11
  %2094 = load float, ptr %58, align 4, !tbaa !11
  %2095 = load float, ptr %43, align 4, !tbaa !11
  %2096 = fmul float %2095, %2094
  store float %2096, ptr %43, align 4, !tbaa !11
  br label %2097

2097:                                             ; preds = %2081, %2075
  %2098 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2098, ptr %27, align 4, !tbaa !9
  %2099 = load ptr, ptr %19, align 8, !tbaa !5
  %2100 = load i32, ptr %46, align 4, !tbaa !9
  %2101 = sext i32 %2100 to i64
  %2102 = getelementptr inbounds %struct.complex, ptr %2099, i64 %2101
  call void @cladiv_(ptr noundef %34, ptr noundef %2102, ptr noundef %42)
  %2103 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2104 = load float, ptr %2103, align 4, !tbaa !16
  %2105 = load ptr, ptr %19, align 8, !tbaa !5
  %2106 = load i32, ptr %27, align 4, !tbaa !9
  %2107 = sext i32 %2106 to i64
  %2108 = getelementptr inbounds %struct.complex, ptr %2105, i64 %2107
  %2109 = getelementptr inbounds %struct.complex, ptr %2108, i32 0, i32 0
  store float %2104, ptr %2109, align 4, !tbaa !16
  %2110 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2111 = load float, ptr %2110, align 4, !tbaa !19
  %2112 = load ptr, ptr %19, align 8, !tbaa !5
  %2113 = load i32, ptr %27, align 4, !tbaa !9
  %2114 = sext i32 %2113 to i64
  %2115 = getelementptr inbounds %struct.complex, ptr %2112, i64 %2114
  %2116 = getelementptr inbounds %struct.complex, ptr %2115, i32 0, i32 1
  store float %2111, ptr %2116, align 4, !tbaa !19
  br label %2152

2117:                                             ; preds = %2072
  %2118 = load ptr, ptr %16, align 8, !tbaa !5
  %2119 = load i32, ptr %2118, align 4, !tbaa !9
  store i32 %2119, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %2120

2120:                                             ; preds = %2136, %2117
  %2121 = load i32, ptr %45, align 4, !tbaa !9
  %2122 = load i32, ptr %27, align 4, !tbaa !9
  %2123 = icmp sle i32 %2121, %2122
  br i1 %2123, label %2124, label %2139

2124:                                             ; preds = %2120
  %2125 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %2125, ptr %28, align 4, !tbaa !9
  %2126 = load ptr, ptr %19, align 8, !tbaa !5
  %2127 = load i32, ptr %28, align 4, !tbaa !9
  %2128 = sext i32 %2127 to i64
  %2129 = getelementptr inbounds %struct.complex, ptr %2126, i64 %2128
  %2130 = getelementptr inbounds %struct.complex, ptr %2129, i32 0, i32 0
  store float 0.000000e+00, ptr %2130, align 4, !tbaa !16
  %2131 = load ptr, ptr %19, align 8, !tbaa !5
  %2132 = load i32, ptr %28, align 4, !tbaa !9
  %2133 = sext i32 %2132 to i64
  %2134 = getelementptr inbounds %struct.complex, ptr %2131, i64 %2133
  %2135 = getelementptr inbounds %struct.complex, ptr %2134, i32 0, i32 1
  store float 0.000000e+00, ptr %2135, align 4, !tbaa !19
  br label %2136

2136:                                             ; preds = %2124
  %2137 = load i32, ptr %45, align 4, !tbaa !9
  %2138 = add nsw i32 %2137, 1
  store i32 %2138, ptr %45, align 4, !tbaa !9
  br label %2120, !llvm.loop !28

2139:                                             ; preds = %2120
  %2140 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2140, ptr %27, align 4, !tbaa !9
  %2141 = load ptr, ptr %19, align 8, !tbaa !5
  %2142 = load i32, ptr %27, align 4, !tbaa !9
  %2143 = sext i32 %2142 to i64
  %2144 = getelementptr inbounds %struct.complex, ptr %2141, i64 %2143
  %2145 = getelementptr inbounds %struct.complex, ptr %2144, i32 0, i32 0
  store float 1.000000e+00, ptr %2145, align 4, !tbaa !16
  %2146 = load ptr, ptr %19, align 8, !tbaa !5
  %2147 = load i32, ptr %27, align 4, !tbaa !9
  %2148 = sext i32 %2147 to i64
  %2149 = getelementptr inbounds %struct.complex, ptr %2146, i64 %2148
  %2150 = getelementptr inbounds %struct.complex, ptr %2149, i32 0, i32 1
  store float 0.000000e+00, ptr %2150, align 4, !tbaa !19
  %2151 = load ptr, ptr %20, align 8, !tbaa !5
  store float 0.000000e+00, ptr %2151, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %2152

2152:                                             ; preds = %2139, %2097
  br label %2153

2153:                                             ; preds = %2152, %2052
  br label %2154

2154:                                             ; preds = %2153, %1997
  br label %2187

2155:                                             ; preds = %1881, %1872
  %2156 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2156, ptr %27, align 4, !tbaa !9
  %2157 = load ptr, ptr %19, align 8, !tbaa !5
  %2158 = load i32, ptr %46, align 4, !tbaa !9
  %2159 = sext i32 %2158 to i64
  %2160 = getelementptr inbounds %struct.complex, ptr %2157, i64 %2159
  call void @cladiv_(ptr noundef %35, ptr noundef %2160, ptr noundef %42)
  %2161 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %2162 = load float, ptr %2161, align 4, !tbaa !16
  %2163 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2164 = load float, ptr %2163, align 4, !tbaa !16
  %2165 = fsub float %2162, %2164
  %2166 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2165, ptr %2166, align 4, !tbaa !16
  %2167 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %2168 = load float, ptr %2167, align 4, !tbaa !19
  %2169 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2170 = load float, ptr %2169, align 4, !tbaa !19
  %2171 = fsub float %2168, %2170
  %2172 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2171, ptr %2172, align 4, !tbaa !19
  %2173 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2174 = load float, ptr %2173, align 4, !tbaa !16
  %2175 = load ptr, ptr %19, align 8, !tbaa !5
  %2176 = load i32, ptr %27, align 4, !tbaa !9
  %2177 = sext i32 %2176 to i64
  %2178 = getelementptr inbounds %struct.complex, ptr %2175, i64 %2177
  %2179 = getelementptr inbounds %struct.complex, ptr %2178, i32 0, i32 0
  store float %2174, ptr %2179, align 4, !tbaa !16
  %2180 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2181 = load float, ptr %2180, align 4, !tbaa !19
  %2182 = load ptr, ptr %19, align 8, !tbaa !5
  %2183 = load i32, ptr %27, align 4, !tbaa !9
  %2184 = sext i32 %2183 to i64
  %2185 = getelementptr inbounds %struct.complex, ptr %2182, i64 %2184
  %2186 = getelementptr inbounds %struct.complex, ptr %2185, i32 0, i32 1
  store float %2181, ptr %2186, align 4, !tbaa !19
  br label %2187

2187:                                             ; preds = %2155, %2154
  %2188 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2188, ptr %27, align 4, !tbaa !9
  %2189 = load float, ptr %43, align 4, !tbaa !11
  store float %2189, ptr %32, align 4, !tbaa !11
  %2190 = load ptr, ptr %19, align 8, !tbaa !5
  %2191 = load i32, ptr %27, align 4, !tbaa !9
  %2192 = sext i32 %2191 to i64
  %2193 = getelementptr inbounds %struct.complex, ptr %2190, i64 %2192
  %2194 = getelementptr inbounds %struct.complex, ptr %2193, i32 0, i32 0
  %2195 = load float, ptr %2194, align 4, !tbaa !16
  store float %2195, ptr %30, align 4, !tbaa !11
  %2196 = load float, ptr %30, align 4, !tbaa !11
  %2197 = fcmp oge float %2196, 0.000000e+00
  br i1 %2197, label %2198, label %2200

2198:                                             ; preds = %2187
  %2199 = load float, ptr %30, align 4, !tbaa !11
  br label %2203

2200:                                             ; preds = %2187
  %2201 = load float, ptr %30, align 4, !tbaa !11
  %2202 = fneg float %2201
  br label %2203

2203:                                             ; preds = %2200, %2198
  %2204 = phi float [ %2199, %2198 ], [ %2202, %2200 ]
  %2205 = load ptr, ptr %19, align 8, !tbaa !5
  %2206 = load i32, ptr %46, align 4, !tbaa !9
  %2207 = sext i32 %2206 to i64
  %2208 = getelementptr inbounds %struct.complex, ptr %2205, i64 %2207
  %2209 = call <2 x float> @Cf(ptr noundef %2208)
  store <2 x float> %2209, ptr %74, align 4
  %2210 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %2211 = load float, ptr %2210, align 4
  %2212 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %2213 = load float, ptr %2212, align 4
  store float %2213, ptr %31, align 4, !tbaa !11
  %2214 = load float, ptr %31, align 4, !tbaa !11
  %2215 = fcmp oge float %2214, 0.000000e+00
  br i1 %2215, label %2216, label %2218

2216:                                             ; preds = %2203
  %2217 = load float, ptr %31, align 4, !tbaa !11
  br label %2221

2218:                                             ; preds = %2203
  %2219 = load float, ptr %31, align 4, !tbaa !11
  %2220 = fneg float %2219
  br label %2221

2221:                                             ; preds = %2218, %2216
  %2222 = phi float [ %2217, %2216 ], [ %2220, %2218 ]
  %2223 = fadd float %2204, %2222
  store float %2223, ptr %33, align 4, !tbaa !11
  %2224 = load float, ptr %32, align 4, !tbaa !11
  %2225 = load float, ptr %33, align 4, !tbaa !11
  %2226 = fcmp oge float %2224, %2225
  br i1 %2226, label %2227, label %2229

2227:                                             ; preds = %2221
  %2228 = load float, ptr %32, align 4, !tbaa !11
  br label %2231

2229:                                             ; preds = %2221
  %2230 = load float, ptr %33, align 4, !tbaa !11
  br label %2231

2231:                                             ; preds = %2229, %2227
  %2232 = phi float [ %2228, %2227 ], [ %2230, %2229 ]
  store float %2232, ptr %43, align 4, !tbaa !11
  br label %2233

2233:                                             ; preds = %2231
  %2234 = load i32, ptr %25, align 4, !tbaa !9
  %2235 = load i32, ptr %46, align 4, !tbaa !9
  %2236 = add nsw i32 %2235, %2234
  store i32 %2236, ptr %46, align 4, !tbaa !9
  br label %1393, !llvm.loop !29

2237:                                             ; preds = %1406
  br label %3087

2238:                                             ; preds = %1385
  %2239 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %2239, ptr %25, align 4, !tbaa !9
  %2240 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %2240, ptr %26, align 4, !tbaa !9
  %2241 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %2241, ptr %46, align 4, !tbaa !9
  br label %2242

2242:                                             ; preds = %3082, %2238
  %2243 = load i32, ptr %26, align 4, !tbaa !9
  %2244 = icmp slt i32 %2243, 0
  br i1 %2244, label %2245, label %2250

2245:                                             ; preds = %2242
  %2246 = load i32, ptr %46, align 4, !tbaa !9
  %2247 = load i32, ptr %25, align 4, !tbaa !9
  %2248 = icmp sge i32 %2246, %2247
  %2249 = zext i1 %2248 to i32
  br label %2255

2250:                                             ; preds = %2242
  %2251 = load i32, ptr %46, align 4, !tbaa !9
  %2252 = load i32, ptr %25, align 4, !tbaa !9
  %2253 = icmp sle i32 %2251, %2252
  %2254 = zext i1 %2253 to i32
  br label %2255

2255:                                             ; preds = %2250, %2245
  %2256 = phi i32 [ %2249, %2245 ], [ %2254, %2250 ]
  %2257 = icmp ne i32 %2256, 0
  br i1 %2257, label %2258, label %3086

2258:                                             ; preds = %2255
  %2259 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2259, ptr %27, align 4, !tbaa !9
  %2260 = load ptr, ptr %19, align 8, !tbaa !5
  %2261 = load i32, ptr %27, align 4, !tbaa !9
  %2262 = sext i32 %2261 to i64
  %2263 = getelementptr inbounds %struct.complex, ptr %2260, i64 %2262
  %2264 = getelementptr inbounds %struct.complex, ptr %2263, i32 0, i32 0
  %2265 = load float, ptr %2264, align 4, !tbaa !16
  store float %2265, ptr %30, align 4, !tbaa !11
  %2266 = load float, ptr %30, align 4, !tbaa !11
  %2267 = fcmp oge float %2266, 0.000000e+00
  br i1 %2267, label %2268, label %2270

2268:                                             ; preds = %2258
  %2269 = load float, ptr %30, align 4, !tbaa !11
  br label %2273

2270:                                             ; preds = %2258
  %2271 = load float, ptr %30, align 4, !tbaa !11
  %2272 = fneg float %2271
  br label %2273

2273:                                             ; preds = %2270, %2268
  %2274 = phi float [ %2269, %2268 ], [ %2272, %2270 ]
  %2275 = load ptr, ptr %19, align 8, !tbaa !5
  %2276 = load i32, ptr %46, align 4, !tbaa !9
  %2277 = sext i32 %2276 to i64
  %2278 = getelementptr inbounds %struct.complex, ptr %2275, i64 %2277
  %2279 = call <2 x float> @Cf(ptr noundef %2278)
  store <2 x float> %2279, ptr %75, align 4
  %2280 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %2281 = load float, ptr %2280, align 4
  %2282 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %2283 = load float, ptr %2282, align 4
  store float %2283, ptr %31, align 4, !tbaa !11
  %2284 = load float, ptr %31, align 4, !tbaa !11
  %2285 = fcmp oge float %2284, 0.000000e+00
  br i1 %2285, label %2286, label %2288

2286:                                             ; preds = %2273
  %2287 = load float, ptr %31, align 4, !tbaa !11
  br label %2291

2288:                                             ; preds = %2273
  %2289 = load float, ptr %31, align 4, !tbaa !11
  %2290 = fneg float %2289
  br label %2291

2291:                                             ; preds = %2288, %2286
  %2292 = phi float [ %2287, %2286 ], [ %2290, %2288 ]
  %2293 = fadd float %2274, %2292
  store float %2293, ptr %52, align 4, !tbaa !11
  %2294 = load float, ptr %47, align 4, !tbaa !11
  %2295 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2294, ptr %2295, align 4, !tbaa !16
  %2296 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float 0.000000e+00, ptr %2296, align 4, !tbaa !19
  %2297 = load float, ptr %43, align 4, !tbaa !11
  %2298 = fcmp oge float %2297, 1.000000e+00
  br i1 %2298, label %2299, label %2301

2299:                                             ; preds = %2291
  %2300 = load float, ptr %43, align 4, !tbaa !11
  br label %2302

2301:                                             ; preds = %2291
  br label %2302

2302:                                             ; preds = %2301, %2299
  %2303 = phi float [ %2300, %2299 ], [ 1.000000e+00, %2301 ]
  %2304 = fdiv float 1.000000e+00, %2303
  store float %2304, ptr %58, align 4, !tbaa !11
  %2305 = load ptr, ptr %21, align 8, !tbaa !5
  %2306 = load i32, ptr %46, align 4, !tbaa !9
  %2307 = sext i32 %2306 to i64
  %2308 = getelementptr inbounds float, ptr %2305, i64 %2307
  %2309 = load float, ptr %2308, align 4, !tbaa !11
  %2310 = load float, ptr %53, align 4, !tbaa !11
  %2311 = load float, ptr %52, align 4, !tbaa !11
  %2312 = fsub float %2310, %2311
  %2313 = load float, ptr %58, align 4, !tbaa !11
  %2314 = fmul float %2312, %2313
  %2315 = fcmp ogt float %2309, %2314
  br i1 %2315, label %2316, label %2422

2316:                                             ; preds = %2302
  %2317 = load float, ptr %58, align 4, !tbaa !11
  %2318 = fmul float %2317, 5.000000e-01
  store float %2318, ptr %58, align 4, !tbaa !11
  %2319 = load i32, ptr %57, align 4, !tbaa !9
  %2320 = icmp ne i32 %2319, 0
  br i1 %2320, label %2321, label %2355

2321:                                             ; preds = %2316
  %2322 = load ptr, ptr %17, align 8, !tbaa !5
  %2323 = load i32, ptr %46, align 4, !tbaa !9
  %2324 = load i32, ptr %46, align 4, !tbaa !9
  %2325 = load i32, ptr %23, align 4, !tbaa !9
  %2326 = mul nsw i32 %2324, %2325
  %2327 = add nsw i32 %2323, %2326
  %2328 = sext i32 %2327 to i64
  %2329 = getelementptr inbounds %struct.complex, ptr %2322, i64 %2328
  %2330 = call <2 x float> @Cf(ptr noundef %2329)
  store <2 x float> %2330, ptr %76, align 4
  %2331 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 0
  %2332 = load float, ptr %2331, align 4
  %2333 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 1
  %2334 = load float, ptr %2333, align 4
  %2335 = fneg float %2334
  %2336 = call ptr @_pCf(ptr noundef %35)
  %2337 = getelementptr inbounds { float, float }, ptr %2336, i32 0, i32 0
  %2338 = getelementptr inbounds { float, float }, ptr %2336, i32 0, i32 1
  store float %2332, ptr %2337, align 4
  store float %2335, ptr %2338, align 4
  %2339 = load float, ptr %47, align 4, !tbaa !11
  %2340 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %2341 = load float, ptr %2340, align 4, !tbaa !16
  %2342 = fmul float %2339, %2341
  %2343 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2342, ptr %2343, align 4, !tbaa !16
  %2344 = load float, ptr %47, align 4, !tbaa !11
  %2345 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %2346 = load float, ptr %2345, align 4, !tbaa !19
  %2347 = fmul float %2344, %2346
  %2348 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2347, ptr %2348, align 4, !tbaa !19
  %2349 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2350 = load float, ptr %2349, align 4, !tbaa !16
  %2351 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2350, ptr %2351, align 4, !tbaa !16
  %2352 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2353 = load float, ptr %2352, align 4, !tbaa !19
  %2354 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2353, ptr %2354, align 4, !tbaa !19
  br label %2359

2355:                                             ; preds = %2316
  %2356 = load float, ptr %47, align 4, !tbaa !11
  %2357 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2356, ptr %2357, align 4, !tbaa !16
  %2358 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float 0.000000e+00, ptr %2358, align 4, !tbaa !19
  br label %2359

2359:                                             ; preds = %2355, %2321
  %2360 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2361 = load float, ptr %2360, align 4, !tbaa !16
  store float %2361, ptr %30, align 4, !tbaa !11
  %2362 = load float, ptr %30, align 4, !tbaa !11
  %2363 = fcmp oge float %2362, 0.000000e+00
  br i1 %2363, label %2364, label %2366

2364:                                             ; preds = %2359
  %2365 = load float, ptr %30, align 4, !tbaa !11
  br label %2369

2366:                                             ; preds = %2359
  %2367 = load float, ptr %30, align 4, !tbaa !11
  %2368 = fneg float %2367
  br label %2369

2369:                                             ; preds = %2366, %2364
  %2370 = phi float [ %2365, %2364 ], [ %2368, %2366 ]
  %2371 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %2371, ptr %77, align 4
  %2372 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 0
  %2373 = load float, ptr %2372, align 4
  %2374 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 1
  %2375 = load float, ptr %2374, align 4
  store float %2375, ptr %31, align 4, !tbaa !11
  %2376 = load float, ptr %31, align 4, !tbaa !11
  %2377 = fcmp oge float %2376, 0.000000e+00
  br i1 %2377, label %2378, label %2380

2378:                                             ; preds = %2369
  %2379 = load float, ptr %31, align 4, !tbaa !11
  br label %2383

2380:                                             ; preds = %2369
  %2381 = load float, ptr %31, align 4, !tbaa !11
  %2382 = fneg float %2381
  br label %2383

2383:                                             ; preds = %2380, %2378
  %2384 = phi float [ %2379, %2378 ], [ %2382, %2380 ]
  %2385 = fadd float %2370, %2384
  store float %2385, ptr %59, align 4, !tbaa !11
  %2386 = load float, ptr %59, align 4, !tbaa !11
  %2387 = fcmp ogt float %2386, 1.000000e+00
  br i1 %2387, label %2388, label %2407

2388:                                             ; preds = %2383
  store float 1.000000e+00, ptr %30, align 4, !tbaa !11
  %2389 = load float, ptr %58, align 4, !tbaa !11
  %2390 = load float, ptr %59, align 4, !tbaa !11
  %2391 = fmul float %2389, %2390
  store float %2391, ptr %31, align 4, !tbaa !11
  %2392 = load float, ptr %30, align 4, !tbaa !11
  %2393 = load float, ptr %31, align 4, !tbaa !11
  %2394 = fcmp ole float %2392, %2393
  br i1 %2394, label %2395, label %2397

2395:                                             ; preds = %2388
  %2396 = load float, ptr %30, align 4, !tbaa !11
  br label %2399

2397:                                             ; preds = %2388
  %2398 = load float, ptr %31, align 4, !tbaa !11
  br label %2399

2399:                                             ; preds = %2397, %2395
  %2400 = phi float [ %2396, %2395 ], [ %2398, %2397 ]
  store float %2400, ptr %58, align 4, !tbaa !11
  call void @cladiv_(ptr noundef %34, ptr noundef %48, ptr noundef %42)
  %2401 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2402 = load float, ptr %2401, align 4, !tbaa !16
  %2403 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2402, ptr %2403, align 4, !tbaa !16
  %2404 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2405 = load float, ptr %2404, align 4, !tbaa !19
  %2406 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %2405, ptr %2406, align 4, !tbaa !19
  br label %2407

2407:                                             ; preds = %2399, %2383
  %2408 = load float, ptr %58, align 4, !tbaa !11
  %2409 = fcmp olt float %2408, 1.000000e+00
  br i1 %2409, label %2410, label %2421

2410:                                             ; preds = %2407
  %2411 = load ptr, ptr %16, align 8, !tbaa !5
  %2412 = load ptr, ptr %19, align 8, !tbaa !5
  %2413 = getelementptr inbounds %struct.complex, ptr %2412, i64 1
  call void @csscal_(ptr noundef %2411, ptr noundef %58, ptr noundef %2413, ptr noundef @c__1)
  %2414 = load float, ptr %58, align 4, !tbaa !11
  %2415 = load ptr, ptr %20, align 8, !tbaa !5
  %2416 = load float, ptr %2415, align 4, !tbaa !11
  %2417 = fmul float %2416, %2414
  store float %2417, ptr %2415, align 4, !tbaa !11
  %2418 = load float, ptr %58, align 4, !tbaa !11
  %2419 = load float, ptr %43, align 4, !tbaa !11
  %2420 = fmul float %2419, %2418
  store float %2420, ptr %43, align 4, !tbaa !11
  br label %2421

2421:                                             ; preds = %2410, %2407
  br label %2422

2422:                                             ; preds = %2421, %2302
  %2423 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float 0.000000e+00, ptr %2423, align 4, !tbaa !16
  %2424 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float 0.000000e+00, ptr %2424, align 4, !tbaa !19
  %2425 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2426 = load float, ptr %2425, align 4, !tbaa !16
  %2427 = fcmp oeq float %2426, 1.000000e+00
  br i1 %2427, label %2428, label %2485

2428:                                             ; preds = %2422
  %2429 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2430 = load float, ptr %2429, align 4, !tbaa !19
  %2431 = fcmp oeq float %2430, 0.000000e+00
  br i1 %2431, label %2432, label %2485

2432:                                             ; preds = %2428
  %2433 = load i32, ptr %51, align 4, !tbaa !9
  %2434 = icmp ne i32 %2433, 0
  br i1 %2434, label %2435, label %2453

2435:                                             ; preds = %2432
  %2436 = load i32, ptr %46, align 4, !tbaa !9
  %2437 = sub nsw i32 %2436, 1
  store i32 %2437, ptr %27, align 4, !tbaa !9
  %2438 = load ptr, ptr %17, align 8, !tbaa !5
  %2439 = load i32, ptr %46, align 4, !tbaa !9
  %2440 = load i32, ptr %23, align 4, !tbaa !9
  %2441 = mul nsw i32 %2439, %2440
  %2442 = add nsw i32 %2441, 1
  %2443 = sext i32 %2442 to i64
  %2444 = getelementptr inbounds %struct.complex, ptr %2438, i64 %2443
  %2445 = load ptr, ptr %19, align 8, !tbaa !5
  %2446 = getelementptr inbounds %struct.complex, ptr %2445, i64 1
  call void @cdotc_(ptr noundef %34, ptr noundef %27, ptr noundef %2444, ptr noundef @c__1, ptr noundef %2446, ptr noundef @c__1)
  %2447 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2448 = load float, ptr %2447, align 4, !tbaa !16
  %2449 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %2448, ptr %2449, align 4, !tbaa !16
  %2450 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2451 = load float, ptr %2450, align 4, !tbaa !19
  %2452 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %2451, ptr %2452, align 4, !tbaa !19
  br label %2484

2453:                                             ; preds = %2432
  %2454 = load i32, ptr %46, align 4, !tbaa !9
  %2455 = load ptr, ptr %16, align 8, !tbaa !5
  %2456 = load i32, ptr %2455, align 4, !tbaa !9
  %2457 = icmp slt i32 %2454, %2456
  br i1 %2457, label %2458, label %2483

2458:                                             ; preds = %2453
  %2459 = load ptr, ptr %16, align 8, !tbaa !5
  %2460 = load i32, ptr %2459, align 4, !tbaa !9
  %2461 = load i32, ptr %46, align 4, !tbaa !9
  %2462 = sub nsw i32 %2460, %2461
  store i32 %2462, ptr %27, align 4, !tbaa !9
  %2463 = load ptr, ptr %17, align 8, !tbaa !5
  %2464 = load i32, ptr %46, align 4, !tbaa !9
  %2465 = add nsw i32 %2464, 1
  %2466 = load i32, ptr %46, align 4, !tbaa !9
  %2467 = load i32, ptr %23, align 4, !tbaa !9
  %2468 = mul nsw i32 %2466, %2467
  %2469 = add nsw i32 %2465, %2468
  %2470 = sext i32 %2469 to i64
  %2471 = getelementptr inbounds %struct.complex, ptr %2463, i64 %2470
  %2472 = load ptr, ptr %19, align 8, !tbaa !5
  %2473 = load i32, ptr %46, align 4, !tbaa !9
  %2474 = add nsw i32 %2473, 1
  %2475 = sext i32 %2474 to i64
  %2476 = getelementptr inbounds %struct.complex, ptr %2472, i64 %2475
  call void @cdotc_(ptr noundef %34, ptr noundef %27, ptr noundef %2471, ptr noundef @c__1, ptr noundef %2476, ptr noundef @c__1)
  %2477 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2478 = load float, ptr %2477, align 4, !tbaa !16
  %2479 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %2478, ptr %2479, align 4, !tbaa !16
  %2480 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2481 = load float, ptr %2480, align 4, !tbaa !19
  %2482 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %2481, ptr %2482, align 4, !tbaa !19
  br label %2483

2483:                                             ; preds = %2458, %2453
  br label %2484

2484:                                             ; preds = %2483, %2435
  br label %2717

2485:                                             ; preds = %2428, %2422
  %2486 = load i32, ptr %51, align 4, !tbaa !9
  %2487 = icmp ne i32 %2486, 0
  br i1 %2487, label %2488, label %2598

2488:                                             ; preds = %2485
  %2489 = load i32, ptr %46, align 4, !tbaa !9
  %2490 = sub nsw i32 %2489, 1
  store i32 %2490, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %2491

2491:                                             ; preds = %2594, %2488
  %2492 = load i32, ptr %45, align 4, !tbaa !9
  %2493 = load i32, ptr %27, align 4, !tbaa !9
  %2494 = icmp sle i32 %2492, %2493
  br i1 %2494, label %2495, label %2597

2495:                                             ; preds = %2491
  %2496 = load ptr, ptr %17, align 8, !tbaa !5
  %2497 = load i32, ptr %45, align 4, !tbaa !9
  %2498 = load i32, ptr %46, align 4, !tbaa !9
  %2499 = load i32, ptr %23, align 4, !tbaa !9
  %2500 = mul nsw i32 %2498, %2499
  %2501 = add nsw i32 %2497, %2500
  %2502 = sext i32 %2501 to i64
  %2503 = getelementptr inbounds %struct.complex, ptr %2496, i64 %2502
  %2504 = call <2 x float> @Cf(ptr noundef %2503)
  store <2 x float> %2504, ptr %78, align 4
  %2505 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 0
  %2506 = load float, ptr %2505, align 4
  %2507 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 1
  %2508 = load float, ptr %2507, align 4
  %2509 = fneg float %2508
  %2510 = call ptr @_pCf(ptr noundef %37)
  %2511 = getelementptr inbounds { float, float }, ptr %2510, i32 0, i32 0
  %2512 = getelementptr inbounds { float, float }, ptr %2510, i32 0, i32 1
  store float %2506, ptr %2511, align 4
  store float %2509, ptr %2512, align 4
  %2513 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %2514 = load float, ptr %2513, align 4, !tbaa !16
  %2515 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2516 = load float, ptr %2515, align 4, !tbaa !16
  %2517 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %2518 = load float, ptr %2517, align 4, !tbaa !19
  %2519 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2520 = load float, ptr %2519, align 4, !tbaa !19
  %2521 = fmul float %2518, %2520
  %2522 = fneg float %2521
  %2523 = call float @llvm.fmuladd.f32(float %2514, float %2516, float %2522)
  %2524 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  store float %2523, ptr %2524, align 4, !tbaa !16
  %2525 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %2526 = load float, ptr %2525, align 4, !tbaa !16
  %2527 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2528 = load float, ptr %2527, align 4, !tbaa !19
  %2529 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %2530 = load float, ptr %2529, align 4, !tbaa !19
  %2531 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2532 = load float, ptr %2531, align 4, !tbaa !16
  %2533 = fmul float %2530, %2532
  %2534 = call float @llvm.fmuladd.f32(float %2526, float %2528, float %2533)
  %2535 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  store float %2534, ptr %2535, align 4, !tbaa !19
  %2536 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %2536, ptr %28, align 4, !tbaa !9
  %2537 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %2538 = load float, ptr %2537, align 4, !tbaa !16
  %2539 = load ptr, ptr %19, align 8, !tbaa !5
  %2540 = load i32, ptr %28, align 4, !tbaa !9
  %2541 = sext i32 %2540 to i64
  %2542 = getelementptr inbounds %struct.complex, ptr %2539, i64 %2541
  %2543 = getelementptr inbounds %struct.complex, ptr %2542, i32 0, i32 0
  %2544 = load float, ptr %2543, align 4, !tbaa !16
  %2545 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %2546 = load float, ptr %2545, align 4, !tbaa !19
  %2547 = load ptr, ptr %19, align 8, !tbaa !5
  %2548 = load i32, ptr %28, align 4, !tbaa !9
  %2549 = sext i32 %2548 to i64
  %2550 = getelementptr inbounds %struct.complex, ptr %2547, i64 %2549
  %2551 = getelementptr inbounds %struct.complex, ptr %2550, i32 0, i32 1
  %2552 = load float, ptr %2551, align 4, !tbaa !19
  %2553 = fmul float %2546, %2552
  %2554 = fneg float %2553
  %2555 = call float @llvm.fmuladd.f32(float %2538, float %2544, float %2554)
  %2556 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %2555, ptr %2556, align 4, !tbaa !16
  %2557 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %2558 = load float, ptr %2557, align 4, !tbaa !16
  %2559 = load ptr, ptr %19, align 8, !tbaa !5
  %2560 = load i32, ptr %28, align 4, !tbaa !9
  %2561 = sext i32 %2560 to i64
  %2562 = getelementptr inbounds %struct.complex, ptr %2559, i64 %2561
  %2563 = getelementptr inbounds %struct.complex, ptr %2562, i32 0, i32 1
  %2564 = load float, ptr %2563, align 4, !tbaa !19
  %2565 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %2566 = load float, ptr %2565, align 4, !tbaa !19
  %2567 = load ptr, ptr %19, align 8, !tbaa !5
  %2568 = load i32, ptr %28, align 4, !tbaa !9
  %2569 = sext i32 %2568 to i64
  %2570 = getelementptr inbounds %struct.complex, ptr %2567, i64 %2569
  %2571 = getelementptr inbounds %struct.complex, ptr %2570, i32 0, i32 0
  %2572 = load float, ptr %2571, align 4, !tbaa !16
  %2573 = fmul float %2566, %2572
  %2574 = call float @llvm.fmuladd.f32(float %2558, float %2564, float %2573)
  %2575 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %2574, ptr %2575, align 4, !tbaa !19
  %2576 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2577 = load float, ptr %2576, align 4, !tbaa !16
  %2578 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %2579 = load float, ptr %2578, align 4, !tbaa !16
  %2580 = fadd float %2577, %2579
  %2581 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2580, ptr %2581, align 4, !tbaa !16
  %2582 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2583 = load float, ptr %2582, align 4, !tbaa !19
  %2584 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %2585 = load float, ptr %2584, align 4, !tbaa !19
  %2586 = fadd float %2583, %2585
  %2587 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2586, ptr %2587, align 4, !tbaa !19
  %2588 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2589 = load float, ptr %2588, align 4, !tbaa !16
  %2590 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %2589, ptr %2590, align 4, !tbaa !16
  %2591 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2592 = load float, ptr %2591, align 4, !tbaa !19
  %2593 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %2592, ptr %2593, align 4, !tbaa !19
  br label %2594

2594:                                             ; preds = %2495
  %2595 = load i32, ptr %45, align 4, !tbaa !9
  %2596 = add nsw i32 %2595, 1
  store i32 %2596, ptr %45, align 4, !tbaa !9
  br label %2491, !llvm.loop !30

2597:                                             ; preds = %2491
  br label %2716

2598:                                             ; preds = %2485
  %2599 = load i32, ptr %46, align 4, !tbaa !9
  %2600 = load ptr, ptr %16, align 8, !tbaa !5
  %2601 = load i32, ptr %2600, align 4, !tbaa !9
  %2602 = icmp slt i32 %2599, %2601
  br i1 %2602, label %2603, label %2715

2603:                                             ; preds = %2598
  %2604 = load ptr, ptr %16, align 8, !tbaa !5
  %2605 = load i32, ptr %2604, align 4, !tbaa !9
  store i32 %2605, ptr %27, align 4, !tbaa !9
  %2606 = load i32, ptr %46, align 4, !tbaa !9
  %2607 = add nsw i32 %2606, 1
  store i32 %2607, ptr %45, align 4, !tbaa !9
  br label %2608

2608:                                             ; preds = %2711, %2603
  %2609 = load i32, ptr %45, align 4, !tbaa !9
  %2610 = load i32, ptr %27, align 4, !tbaa !9
  %2611 = icmp sle i32 %2609, %2610
  br i1 %2611, label %2612, label %2714

2612:                                             ; preds = %2608
  %2613 = load ptr, ptr %17, align 8, !tbaa !5
  %2614 = load i32, ptr %45, align 4, !tbaa !9
  %2615 = load i32, ptr %46, align 4, !tbaa !9
  %2616 = load i32, ptr %23, align 4, !tbaa !9
  %2617 = mul nsw i32 %2615, %2616
  %2618 = add nsw i32 %2614, %2617
  %2619 = sext i32 %2618 to i64
  %2620 = getelementptr inbounds %struct.complex, ptr %2613, i64 %2619
  %2621 = call <2 x float> @Cf(ptr noundef %2620)
  store <2 x float> %2621, ptr %79, align 4
  %2622 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 0
  %2623 = load float, ptr %2622, align 4
  %2624 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 1
  %2625 = load float, ptr %2624, align 4
  %2626 = fneg float %2625
  %2627 = call ptr @_pCf(ptr noundef %37)
  %2628 = getelementptr inbounds { float, float }, ptr %2627, i32 0, i32 0
  %2629 = getelementptr inbounds { float, float }, ptr %2627, i32 0, i32 1
  store float %2623, ptr %2628, align 4
  store float %2626, ptr %2629, align 4
  %2630 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %2631 = load float, ptr %2630, align 4, !tbaa !16
  %2632 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2633 = load float, ptr %2632, align 4, !tbaa !16
  %2634 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %2635 = load float, ptr %2634, align 4, !tbaa !19
  %2636 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2637 = load float, ptr %2636, align 4, !tbaa !19
  %2638 = fmul float %2635, %2637
  %2639 = fneg float %2638
  %2640 = call float @llvm.fmuladd.f32(float %2631, float %2633, float %2639)
  %2641 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  store float %2640, ptr %2641, align 4, !tbaa !16
  %2642 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %2643 = load float, ptr %2642, align 4, !tbaa !16
  %2644 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2645 = load float, ptr %2644, align 4, !tbaa !19
  %2646 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %2647 = load float, ptr %2646, align 4, !tbaa !19
  %2648 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2649 = load float, ptr %2648, align 4, !tbaa !16
  %2650 = fmul float %2647, %2649
  %2651 = call float @llvm.fmuladd.f32(float %2643, float %2645, float %2650)
  %2652 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  store float %2651, ptr %2652, align 4, !tbaa !19
  %2653 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %2653, ptr %28, align 4, !tbaa !9
  %2654 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %2655 = load float, ptr %2654, align 4, !tbaa !16
  %2656 = load ptr, ptr %19, align 8, !tbaa !5
  %2657 = load i32, ptr %28, align 4, !tbaa !9
  %2658 = sext i32 %2657 to i64
  %2659 = getelementptr inbounds %struct.complex, ptr %2656, i64 %2658
  %2660 = getelementptr inbounds %struct.complex, ptr %2659, i32 0, i32 0
  %2661 = load float, ptr %2660, align 4, !tbaa !16
  %2662 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %2663 = load float, ptr %2662, align 4, !tbaa !19
  %2664 = load ptr, ptr %19, align 8, !tbaa !5
  %2665 = load i32, ptr %28, align 4, !tbaa !9
  %2666 = sext i32 %2665 to i64
  %2667 = getelementptr inbounds %struct.complex, ptr %2664, i64 %2666
  %2668 = getelementptr inbounds %struct.complex, ptr %2667, i32 0, i32 1
  %2669 = load float, ptr %2668, align 4, !tbaa !19
  %2670 = fmul float %2663, %2669
  %2671 = fneg float %2670
  %2672 = call float @llvm.fmuladd.f32(float %2655, float %2661, float %2671)
  %2673 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %2672, ptr %2673, align 4, !tbaa !16
  %2674 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  %2675 = load float, ptr %2674, align 4, !tbaa !16
  %2676 = load ptr, ptr %19, align 8, !tbaa !5
  %2677 = load i32, ptr %28, align 4, !tbaa !9
  %2678 = sext i32 %2677 to i64
  %2679 = getelementptr inbounds %struct.complex, ptr %2676, i64 %2678
  %2680 = getelementptr inbounds %struct.complex, ptr %2679, i32 0, i32 1
  %2681 = load float, ptr %2680, align 4, !tbaa !19
  %2682 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  %2683 = load float, ptr %2682, align 4, !tbaa !19
  %2684 = load ptr, ptr %19, align 8, !tbaa !5
  %2685 = load i32, ptr %28, align 4, !tbaa !9
  %2686 = sext i32 %2685 to i64
  %2687 = getelementptr inbounds %struct.complex, ptr %2684, i64 %2686
  %2688 = getelementptr inbounds %struct.complex, ptr %2687, i32 0, i32 0
  %2689 = load float, ptr %2688, align 4, !tbaa !16
  %2690 = fmul float %2683, %2689
  %2691 = call float @llvm.fmuladd.f32(float %2675, float %2681, float %2690)
  %2692 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %2691, ptr %2692, align 4, !tbaa !19
  %2693 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2694 = load float, ptr %2693, align 4, !tbaa !16
  %2695 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %2696 = load float, ptr %2695, align 4, !tbaa !16
  %2697 = fadd float %2694, %2696
  %2698 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2697, ptr %2698, align 4, !tbaa !16
  %2699 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2700 = load float, ptr %2699, align 4, !tbaa !19
  %2701 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %2702 = load float, ptr %2701, align 4, !tbaa !19
  %2703 = fadd float %2700, %2702
  %2704 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2703, ptr %2704, align 4, !tbaa !19
  %2705 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2706 = load float, ptr %2705, align 4, !tbaa !16
  %2707 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %2706, ptr %2707, align 4, !tbaa !16
  %2708 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2709 = load float, ptr %2708, align 4, !tbaa !19
  %2710 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %2709, ptr %2710, align 4, !tbaa !19
  br label %2711

2711:                                             ; preds = %2612
  %2712 = load i32, ptr %45, align 4, !tbaa !9
  %2713 = add nsw i32 %2712, 1
  store i32 %2713, ptr %45, align 4, !tbaa !9
  br label %2608, !llvm.loop !31

2714:                                             ; preds = %2608
  br label %2715

2715:                                             ; preds = %2714, %2598
  br label %2716

2716:                                             ; preds = %2715, %2597
  br label %2717

2717:                                             ; preds = %2716, %2484
  %2718 = load float, ptr %47, align 4, !tbaa !11
  %2719 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2718, ptr %2719, align 4, !tbaa !16
  %2720 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float 0.000000e+00, ptr %2720, align 4, !tbaa !19
  %2721 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2722 = load float, ptr %2721, align 4, !tbaa !16
  %2723 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2724 = load float, ptr %2723, align 4, !tbaa !16
  %2725 = fcmp oeq float %2722, %2724
  br i1 %2725, label %2726, label %3004

2726:                                             ; preds = %2717
  %2727 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2728 = load float, ptr %2727, align 4, !tbaa !19
  %2729 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2730 = load float, ptr %2729, align 4, !tbaa !19
  %2731 = fcmp oeq float %2728, %2730
  br i1 %2731, label %2732, label %3004

2732:                                             ; preds = %2726
  %2733 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2733, ptr %27, align 4, !tbaa !9
  %2734 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2734, ptr %28, align 4, !tbaa !9
  %2735 = load ptr, ptr %19, align 8, !tbaa !5
  %2736 = load i32, ptr %28, align 4, !tbaa !9
  %2737 = sext i32 %2736 to i64
  %2738 = getelementptr inbounds %struct.complex, ptr %2735, i64 %2737
  %2739 = getelementptr inbounds %struct.complex, ptr %2738, i32 0, i32 0
  %2740 = load float, ptr %2739, align 4, !tbaa !16
  %2741 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %2742 = load float, ptr %2741, align 4, !tbaa !16
  %2743 = fsub float %2740, %2742
  %2744 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2743, ptr %2744, align 4, !tbaa !16
  %2745 = load ptr, ptr %19, align 8, !tbaa !5
  %2746 = load i32, ptr %28, align 4, !tbaa !9
  %2747 = sext i32 %2746 to i64
  %2748 = getelementptr inbounds %struct.complex, ptr %2745, i64 %2747
  %2749 = getelementptr inbounds %struct.complex, ptr %2748, i32 0, i32 1
  %2750 = load float, ptr %2749, align 4, !tbaa !19
  %2751 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %2752 = load float, ptr %2751, align 4, !tbaa !19
  %2753 = fsub float %2750, %2752
  %2754 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2753, ptr %2754, align 4, !tbaa !19
  %2755 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2756 = load float, ptr %2755, align 4, !tbaa !16
  %2757 = load ptr, ptr %19, align 8, !tbaa !5
  %2758 = load i32, ptr %27, align 4, !tbaa !9
  %2759 = sext i32 %2758 to i64
  %2760 = getelementptr inbounds %struct.complex, ptr %2757, i64 %2759
  %2761 = getelementptr inbounds %struct.complex, ptr %2760, i32 0, i32 0
  store float %2756, ptr %2761, align 4, !tbaa !16
  %2762 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2763 = load float, ptr %2762, align 4, !tbaa !19
  %2764 = load ptr, ptr %19, align 8, !tbaa !5
  %2765 = load i32, ptr %27, align 4, !tbaa !9
  %2766 = sext i32 %2765 to i64
  %2767 = getelementptr inbounds %struct.complex, ptr %2764, i64 %2766
  %2768 = getelementptr inbounds %struct.complex, ptr %2767, i32 0, i32 1
  store float %2763, ptr %2768, align 4, !tbaa !19
  %2769 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2769, ptr %27, align 4, !tbaa !9
  %2770 = load ptr, ptr %19, align 8, !tbaa !5
  %2771 = load i32, ptr %27, align 4, !tbaa !9
  %2772 = sext i32 %2771 to i64
  %2773 = getelementptr inbounds %struct.complex, ptr %2770, i64 %2772
  %2774 = getelementptr inbounds %struct.complex, ptr %2773, i32 0, i32 0
  %2775 = load float, ptr %2774, align 4, !tbaa !16
  store float %2775, ptr %30, align 4, !tbaa !11
  %2776 = load float, ptr %30, align 4, !tbaa !11
  %2777 = fcmp oge float %2776, 0.000000e+00
  br i1 %2777, label %2778, label %2780

2778:                                             ; preds = %2732
  %2779 = load float, ptr %30, align 4, !tbaa !11
  br label %2783

2780:                                             ; preds = %2732
  %2781 = load float, ptr %30, align 4, !tbaa !11
  %2782 = fneg float %2781
  br label %2783

2783:                                             ; preds = %2780, %2778
  %2784 = phi float [ %2779, %2778 ], [ %2782, %2780 ]
  %2785 = load ptr, ptr %19, align 8, !tbaa !5
  %2786 = load i32, ptr %46, align 4, !tbaa !9
  %2787 = sext i32 %2786 to i64
  %2788 = getelementptr inbounds %struct.complex, ptr %2785, i64 %2787
  %2789 = call <2 x float> @Cf(ptr noundef %2788)
  store <2 x float> %2789, ptr %80, align 4
  %2790 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 0
  %2791 = load float, ptr %2790, align 4
  %2792 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 1
  %2793 = load float, ptr %2792, align 4
  store float %2793, ptr %31, align 4, !tbaa !11
  %2794 = load float, ptr %31, align 4, !tbaa !11
  %2795 = fcmp oge float %2794, 0.000000e+00
  br i1 %2795, label %2796, label %2798

2796:                                             ; preds = %2783
  %2797 = load float, ptr %31, align 4, !tbaa !11
  br label %2801

2798:                                             ; preds = %2783
  %2799 = load float, ptr %31, align 4, !tbaa !11
  %2800 = fneg float %2799
  br label %2801

2801:                                             ; preds = %2798, %2796
  %2802 = phi float [ %2797, %2796 ], [ %2800, %2798 ]
  %2803 = fadd float %2784, %2802
  store float %2803, ptr %52, align 4, !tbaa !11
  %2804 = load i32, ptr %57, align 4, !tbaa !9
  %2805 = icmp ne i32 %2804, 0
  br i1 %2805, label %2806, label %2840

2806:                                             ; preds = %2801
  %2807 = load ptr, ptr %17, align 8, !tbaa !5
  %2808 = load i32, ptr %46, align 4, !tbaa !9
  %2809 = load i32, ptr %46, align 4, !tbaa !9
  %2810 = load i32, ptr %23, align 4, !tbaa !9
  %2811 = mul nsw i32 %2809, %2810
  %2812 = add nsw i32 %2808, %2811
  %2813 = sext i32 %2812 to i64
  %2814 = getelementptr inbounds %struct.complex, ptr %2807, i64 %2813
  %2815 = call <2 x float> @Cf(ptr noundef %2814)
  store <2 x float> %2815, ptr %81, align 4
  %2816 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 0
  %2817 = load float, ptr %2816, align 4
  %2818 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 1
  %2819 = load float, ptr %2818, align 4
  %2820 = fneg float %2819
  %2821 = call ptr @_pCf(ptr noundef %35)
  %2822 = getelementptr inbounds { float, float }, ptr %2821, i32 0, i32 0
  %2823 = getelementptr inbounds { float, float }, ptr %2821, i32 0, i32 1
  store float %2817, ptr %2822, align 4
  store float %2820, ptr %2823, align 4
  %2824 = load float, ptr %47, align 4, !tbaa !11
  %2825 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %2826 = load float, ptr %2825, align 4, !tbaa !16
  %2827 = fmul float %2824, %2826
  %2828 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2827, ptr %2828, align 4, !tbaa !16
  %2829 = load float, ptr %47, align 4, !tbaa !11
  %2830 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %2831 = load float, ptr %2830, align 4, !tbaa !19
  %2832 = fmul float %2829, %2831
  %2833 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2832, ptr %2833, align 4, !tbaa !19
  %2834 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2835 = load float, ptr %2834, align 4, !tbaa !16
  %2836 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2835, ptr %2836, align 4, !tbaa !16
  %2837 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2838 = load float, ptr %2837, align 4, !tbaa !19
  %2839 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2838, ptr %2839, align 4, !tbaa !19
  br label %2848

2840:                                             ; preds = %2801
  %2841 = load float, ptr %47, align 4, !tbaa !11
  %2842 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2841, ptr %2842, align 4, !tbaa !16
  %2843 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float 0.000000e+00, ptr %2843, align 4, !tbaa !19
  %2844 = load float, ptr %47, align 4, !tbaa !11
  %2845 = fcmp oeq float %2844, 1.000000e+00
  br i1 %2845, label %2846, label %2847

2846:                                             ; preds = %2840
  br label %3003

2847:                                             ; preds = %2840
  br label %2848

2848:                                             ; preds = %2847, %2806
  %2849 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2850 = load float, ptr %2849, align 4, !tbaa !16
  store float %2850, ptr %30, align 4, !tbaa !11
  %2851 = load float, ptr %30, align 4, !tbaa !11
  %2852 = fcmp oge float %2851, 0.000000e+00
  br i1 %2852, label %2853, label %2855

2853:                                             ; preds = %2848
  %2854 = load float, ptr %30, align 4, !tbaa !11
  br label %2858

2855:                                             ; preds = %2848
  %2856 = load float, ptr %30, align 4, !tbaa !11
  %2857 = fneg float %2856
  br label %2858

2858:                                             ; preds = %2855, %2853
  %2859 = phi float [ %2854, %2853 ], [ %2857, %2855 ]
  %2860 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %2860, ptr %82, align 4
  %2861 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 0
  %2862 = load float, ptr %2861, align 4
  %2863 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 1
  %2864 = load float, ptr %2863, align 4
  store float %2864, ptr %31, align 4, !tbaa !11
  %2865 = load float, ptr %31, align 4, !tbaa !11
  %2866 = fcmp oge float %2865, 0.000000e+00
  br i1 %2866, label %2867, label %2869

2867:                                             ; preds = %2858
  %2868 = load float, ptr %31, align 4, !tbaa !11
  br label %2872

2869:                                             ; preds = %2858
  %2870 = load float, ptr %31, align 4, !tbaa !11
  %2871 = fneg float %2870
  br label %2872

2872:                                             ; preds = %2869, %2867
  %2873 = phi float [ %2868, %2867 ], [ %2871, %2869 ]
  %2874 = fadd float %2859, %2873
  store float %2874, ptr %59, align 4, !tbaa !11
  %2875 = load float, ptr %59, align 4, !tbaa !11
  %2876 = load float, ptr %56, align 4, !tbaa !11
  %2877 = fcmp ogt float %2875, %2876
  br i1 %2877, label %2878, label %2921

2878:                                             ; preds = %2872
  %2879 = load float, ptr %59, align 4, !tbaa !11
  %2880 = fcmp olt float %2879, 1.000000e+00
  br i1 %2880, label %2881, label %2901

2881:                                             ; preds = %2878
  %2882 = load float, ptr %52, align 4, !tbaa !11
  %2883 = load float, ptr %59, align 4, !tbaa !11
  %2884 = load float, ptr %53, align 4, !tbaa !11
  %2885 = fmul float %2883, %2884
  %2886 = fcmp ogt float %2882, %2885
  br i1 %2886, label %2887, label %2900

2887:                                             ; preds = %2881
  %2888 = load float, ptr %52, align 4, !tbaa !11
  %2889 = fdiv float 1.000000e+00, %2888
  store float %2889, ptr %58, align 4, !tbaa !11
  %2890 = load ptr, ptr %16, align 8, !tbaa !5
  %2891 = load ptr, ptr %19, align 8, !tbaa !5
  %2892 = getelementptr inbounds %struct.complex, ptr %2891, i64 1
  call void @csscal_(ptr noundef %2890, ptr noundef %58, ptr noundef %2892, ptr noundef @c__1)
  %2893 = load float, ptr %58, align 4, !tbaa !11
  %2894 = load ptr, ptr %20, align 8, !tbaa !5
  %2895 = load float, ptr %2894, align 4, !tbaa !11
  %2896 = fmul float %2895, %2893
  store float %2896, ptr %2894, align 4, !tbaa !11
  %2897 = load float, ptr %58, align 4, !tbaa !11
  %2898 = load float, ptr %43, align 4, !tbaa !11
  %2899 = fmul float %2898, %2897
  store float %2899, ptr %43, align 4, !tbaa !11
  br label %2900

2900:                                             ; preds = %2887, %2881
  br label %2901

2901:                                             ; preds = %2900, %2878
  %2902 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2902, ptr %27, align 4, !tbaa !9
  %2903 = load ptr, ptr %19, align 8, !tbaa !5
  %2904 = load i32, ptr %46, align 4, !tbaa !9
  %2905 = sext i32 %2904 to i64
  %2906 = getelementptr inbounds %struct.complex, ptr %2903, i64 %2905
  call void @cladiv_(ptr noundef %34, ptr noundef %2906, ptr noundef %42)
  %2907 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2908 = load float, ptr %2907, align 4, !tbaa !16
  %2909 = load ptr, ptr %19, align 8, !tbaa !5
  %2910 = load i32, ptr %27, align 4, !tbaa !9
  %2911 = sext i32 %2910 to i64
  %2912 = getelementptr inbounds %struct.complex, ptr %2909, i64 %2911
  %2913 = getelementptr inbounds %struct.complex, ptr %2912, i32 0, i32 0
  store float %2908, ptr %2913, align 4, !tbaa !16
  %2914 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2915 = load float, ptr %2914, align 4, !tbaa !19
  %2916 = load ptr, ptr %19, align 8, !tbaa !5
  %2917 = load i32, ptr %27, align 4, !tbaa !9
  %2918 = sext i32 %2917 to i64
  %2919 = getelementptr inbounds %struct.complex, ptr %2916, i64 %2918
  %2920 = getelementptr inbounds %struct.complex, ptr %2919, i32 0, i32 1
  store float %2915, ptr %2920, align 4, !tbaa !19
  br label %3002

2921:                                             ; preds = %2872
  %2922 = load float, ptr %59, align 4, !tbaa !11
  %2923 = fcmp ogt float %2922, 0.000000e+00
  br i1 %2923, label %2924, label %2966

2924:                                             ; preds = %2921
  %2925 = load float, ptr %52, align 4, !tbaa !11
  %2926 = load float, ptr %59, align 4, !tbaa !11
  %2927 = load float, ptr %53, align 4, !tbaa !11
  %2928 = fmul float %2926, %2927
  %2929 = fcmp ogt float %2925, %2928
  br i1 %2929, label %2930, label %2946

2930:                                             ; preds = %2924
  %2931 = load float, ptr %59, align 4, !tbaa !11
  %2932 = load float, ptr %53, align 4, !tbaa !11
  %2933 = fmul float %2931, %2932
  %2934 = load float, ptr %52, align 4, !tbaa !11
  %2935 = fdiv float %2933, %2934
  store float %2935, ptr %58, align 4, !tbaa !11
  %2936 = load ptr, ptr %16, align 8, !tbaa !5
  %2937 = load ptr, ptr %19, align 8, !tbaa !5
  %2938 = getelementptr inbounds %struct.complex, ptr %2937, i64 1
  call void @csscal_(ptr noundef %2936, ptr noundef %58, ptr noundef %2938, ptr noundef @c__1)
  %2939 = load float, ptr %58, align 4, !tbaa !11
  %2940 = load ptr, ptr %20, align 8, !tbaa !5
  %2941 = load float, ptr %2940, align 4, !tbaa !11
  %2942 = fmul float %2941, %2939
  store float %2942, ptr %2940, align 4, !tbaa !11
  %2943 = load float, ptr %58, align 4, !tbaa !11
  %2944 = load float, ptr %43, align 4, !tbaa !11
  %2945 = fmul float %2944, %2943
  store float %2945, ptr %43, align 4, !tbaa !11
  br label %2946

2946:                                             ; preds = %2930, %2924
  %2947 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2947, ptr %27, align 4, !tbaa !9
  %2948 = load ptr, ptr %19, align 8, !tbaa !5
  %2949 = load i32, ptr %46, align 4, !tbaa !9
  %2950 = sext i32 %2949 to i64
  %2951 = getelementptr inbounds %struct.complex, ptr %2948, i64 %2950
  call void @cladiv_(ptr noundef %34, ptr noundef %2951, ptr noundef %42)
  %2952 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2953 = load float, ptr %2952, align 4, !tbaa !16
  %2954 = load ptr, ptr %19, align 8, !tbaa !5
  %2955 = load i32, ptr %27, align 4, !tbaa !9
  %2956 = sext i32 %2955 to i64
  %2957 = getelementptr inbounds %struct.complex, ptr %2954, i64 %2956
  %2958 = getelementptr inbounds %struct.complex, ptr %2957, i32 0, i32 0
  store float %2953, ptr %2958, align 4, !tbaa !16
  %2959 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2960 = load float, ptr %2959, align 4, !tbaa !19
  %2961 = load ptr, ptr %19, align 8, !tbaa !5
  %2962 = load i32, ptr %27, align 4, !tbaa !9
  %2963 = sext i32 %2962 to i64
  %2964 = getelementptr inbounds %struct.complex, ptr %2961, i64 %2963
  %2965 = getelementptr inbounds %struct.complex, ptr %2964, i32 0, i32 1
  store float %2960, ptr %2965, align 4, !tbaa !19
  br label %3001

2966:                                             ; preds = %2921
  %2967 = load ptr, ptr %16, align 8, !tbaa !5
  %2968 = load i32, ptr %2967, align 4, !tbaa !9
  store i32 %2968, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %2969

2969:                                             ; preds = %2985, %2966
  %2970 = load i32, ptr %45, align 4, !tbaa !9
  %2971 = load i32, ptr %27, align 4, !tbaa !9
  %2972 = icmp sle i32 %2970, %2971
  br i1 %2972, label %2973, label %2988

2973:                                             ; preds = %2969
  %2974 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %2974, ptr %28, align 4, !tbaa !9
  %2975 = load ptr, ptr %19, align 8, !tbaa !5
  %2976 = load i32, ptr %28, align 4, !tbaa !9
  %2977 = sext i32 %2976 to i64
  %2978 = getelementptr inbounds %struct.complex, ptr %2975, i64 %2977
  %2979 = getelementptr inbounds %struct.complex, ptr %2978, i32 0, i32 0
  store float 0.000000e+00, ptr %2979, align 4, !tbaa !16
  %2980 = load ptr, ptr %19, align 8, !tbaa !5
  %2981 = load i32, ptr %28, align 4, !tbaa !9
  %2982 = sext i32 %2981 to i64
  %2983 = getelementptr inbounds %struct.complex, ptr %2980, i64 %2982
  %2984 = getelementptr inbounds %struct.complex, ptr %2983, i32 0, i32 1
  store float 0.000000e+00, ptr %2984, align 4, !tbaa !19
  br label %2985

2985:                                             ; preds = %2973
  %2986 = load i32, ptr %45, align 4, !tbaa !9
  %2987 = add nsw i32 %2986, 1
  store i32 %2987, ptr %45, align 4, !tbaa !9
  br label %2969, !llvm.loop !32

2988:                                             ; preds = %2969
  %2989 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2989, ptr %27, align 4, !tbaa !9
  %2990 = load ptr, ptr %19, align 8, !tbaa !5
  %2991 = load i32, ptr %27, align 4, !tbaa !9
  %2992 = sext i32 %2991 to i64
  %2993 = getelementptr inbounds %struct.complex, ptr %2990, i64 %2992
  %2994 = getelementptr inbounds %struct.complex, ptr %2993, i32 0, i32 0
  store float 1.000000e+00, ptr %2994, align 4, !tbaa !16
  %2995 = load ptr, ptr %19, align 8, !tbaa !5
  %2996 = load i32, ptr %27, align 4, !tbaa !9
  %2997 = sext i32 %2996 to i64
  %2998 = getelementptr inbounds %struct.complex, ptr %2995, i64 %2997
  %2999 = getelementptr inbounds %struct.complex, ptr %2998, i32 0, i32 1
  store float 0.000000e+00, ptr %2999, align 4, !tbaa !19
  %3000 = load ptr, ptr %20, align 8, !tbaa !5
  store float 0.000000e+00, ptr %3000, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %3001

3001:                                             ; preds = %2988, %2946
  br label %3002

3002:                                             ; preds = %3001, %2901
  br label %3003

3003:                                             ; preds = %3002, %2846
  br label %3036

3004:                                             ; preds = %2726, %2717
  %3005 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %3005, ptr %27, align 4, !tbaa !9
  %3006 = load ptr, ptr %19, align 8, !tbaa !5
  %3007 = load i32, ptr %46, align 4, !tbaa !9
  %3008 = sext i32 %3007 to i64
  %3009 = getelementptr inbounds %struct.complex, ptr %3006, i64 %3008
  call void @cladiv_(ptr noundef %35, ptr noundef %3009, ptr noundef %42)
  %3010 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %3011 = load float, ptr %3010, align 4, !tbaa !16
  %3012 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3013 = load float, ptr %3012, align 4, !tbaa !16
  %3014 = fsub float %3011, %3013
  %3015 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %3014, ptr %3015, align 4, !tbaa !16
  %3016 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %3017 = load float, ptr %3016, align 4, !tbaa !19
  %3018 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3019 = load float, ptr %3018, align 4, !tbaa !19
  %3020 = fsub float %3017, %3019
  %3021 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %3020, ptr %3021, align 4, !tbaa !19
  %3022 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %3023 = load float, ptr %3022, align 4, !tbaa !16
  %3024 = load ptr, ptr %19, align 8, !tbaa !5
  %3025 = load i32, ptr %27, align 4, !tbaa !9
  %3026 = sext i32 %3025 to i64
  %3027 = getelementptr inbounds %struct.complex, ptr %3024, i64 %3026
  %3028 = getelementptr inbounds %struct.complex, ptr %3027, i32 0, i32 0
  store float %3023, ptr %3028, align 4, !tbaa !16
  %3029 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %3030 = load float, ptr %3029, align 4, !tbaa !19
  %3031 = load ptr, ptr %19, align 8, !tbaa !5
  %3032 = load i32, ptr %27, align 4, !tbaa !9
  %3033 = sext i32 %3032 to i64
  %3034 = getelementptr inbounds %struct.complex, ptr %3031, i64 %3033
  %3035 = getelementptr inbounds %struct.complex, ptr %3034, i32 0, i32 1
  store float %3030, ptr %3035, align 4, !tbaa !19
  br label %3036

3036:                                             ; preds = %3004, %3003
  %3037 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %3037, ptr %27, align 4, !tbaa !9
  %3038 = load float, ptr %43, align 4, !tbaa !11
  store float %3038, ptr %32, align 4, !tbaa !11
  %3039 = load ptr, ptr %19, align 8, !tbaa !5
  %3040 = load i32, ptr %27, align 4, !tbaa !9
  %3041 = sext i32 %3040 to i64
  %3042 = getelementptr inbounds %struct.complex, ptr %3039, i64 %3041
  %3043 = getelementptr inbounds %struct.complex, ptr %3042, i32 0, i32 0
  %3044 = load float, ptr %3043, align 4, !tbaa !16
  store float %3044, ptr %30, align 4, !tbaa !11
  %3045 = load float, ptr %30, align 4, !tbaa !11
  %3046 = fcmp oge float %3045, 0.000000e+00
  br i1 %3046, label %3047, label %3049

3047:                                             ; preds = %3036
  %3048 = load float, ptr %30, align 4, !tbaa !11
  br label %3052

3049:                                             ; preds = %3036
  %3050 = load float, ptr %30, align 4, !tbaa !11
  %3051 = fneg float %3050
  br label %3052

3052:                                             ; preds = %3049, %3047
  %3053 = phi float [ %3048, %3047 ], [ %3051, %3049 ]
  %3054 = load ptr, ptr %19, align 8, !tbaa !5
  %3055 = load i32, ptr %46, align 4, !tbaa !9
  %3056 = sext i32 %3055 to i64
  %3057 = getelementptr inbounds %struct.complex, ptr %3054, i64 %3056
  %3058 = call <2 x float> @Cf(ptr noundef %3057)
  store <2 x float> %3058, ptr %83, align 4
  %3059 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 0
  %3060 = load float, ptr %3059, align 4
  %3061 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 1
  %3062 = load float, ptr %3061, align 4
  store float %3062, ptr %31, align 4, !tbaa !11
  %3063 = load float, ptr %31, align 4, !tbaa !11
  %3064 = fcmp oge float %3063, 0.000000e+00
  br i1 %3064, label %3065, label %3067

3065:                                             ; preds = %3052
  %3066 = load float, ptr %31, align 4, !tbaa !11
  br label %3070

3067:                                             ; preds = %3052
  %3068 = load float, ptr %31, align 4, !tbaa !11
  %3069 = fneg float %3068
  br label %3070

3070:                                             ; preds = %3067, %3065
  %3071 = phi float [ %3066, %3065 ], [ %3069, %3067 ]
  %3072 = fadd float %3053, %3071
  store float %3072, ptr %33, align 4, !tbaa !11
  %3073 = load float, ptr %32, align 4, !tbaa !11
  %3074 = load float, ptr %33, align 4, !tbaa !11
  %3075 = fcmp oge float %3073, %3074
  br i1 %3075, label %3076, label %3078

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

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

3080:                                             ; preds = %3078, %3076
  %3081 = phi float [ %3077, %3076 ], [ %3079, %3078 ]
  store float %3081, ptr %43, align 4, !tbaa !11
  br label %3082

3082:                                             ; preds = %3080
  %3083 = load i32, ptr %26, align 4, !tbaa !9
  %3084 = load i32, ptr %46, align 4, !tbaa !9
  %3085 = add nsw i32 %3084, %3083
  store i32 %3085, ptr %46, align 4, !tbaa !9
  br label %2242, !llvm.loop !33

3086:                                             ; preds = %2255
  br label %3087

3087:                                             ; preds = %3086, %2237
  br label %3088

3088:                                             ; preds = %3087, %1384
  %3089 = load float, ptr %47, align 4, !tbaa !11
  %3090 = load ptr, ptr %20, align 8, !tbaa !5
  %3091 = load float, ptr %3090, align 4, !tbaa !11
  %3092 = fdiv float %3091, %3089
  store float %3092, ptr %3090, align 4, !tbaa !11
  br label %3093

3093:                                             ; preds = %3088, %776
  %3094 = load float, ptr %47, align 4, !tbaa !11
  %3095 = fcmp une float %3094, 1.000000e+00
  br i1 %3095, label %3096, label %3102

3096:                                             ; preds = %3093
  %3097 = load float, ptr %47, align 4, !tbaa !11
  %3098 = fdiv float 1.000000e+00, %3097
  store float %3098, ptr %30, align 4, !tbaa !11
  %3099 = load ptr, ptr %16, align 8, !tbaa !5
  %3100 = load ptr, ptr %21, align 8, !tbaa !5
  %3101 = getelementptr inbounds float, ptr %3100, i64 1
  call void @sscal_(ptr noundef %3099, ptr noundef %30, ptr noundef %3101, ptr noundef @c__1)
  br label %3102

3102:                                             ; preds = %3096, %3093
  store i32 1, ptr %60, align 4
  br label %3103

3103:                                             ; preds = %3102, %184, %175
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  ret void
}

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @cdotc_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr 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 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!17, !12, i64 0}
!17 = !{!"", !12, i64 0, !12, i64 4}
!18 = distinct !{!18, !14}
!19 = !{!17, !12, i64 4}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b36 = external hidden global float, align 4

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

33:                                               ; preds = %11
  %34 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #8
  %.not825 = icmp eq i32 %34, 0
  br i1 %.not825, label %.thread.sink.split, label %35

35:                                               ; preds = %33, %11
  %.not826 = icmp eq i32 %31, 0
  br i1 %.not826, label %36, label %40

36:                                               ; preds = %35
  %37 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #8
  %.not827 = icmp eq i32 %37, 0
  br i1 %.not827, label %38, label %40

38:                                               ; preds = %36
  %39 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #8
  %.not828 = icmp eq i32 %39, 0
  br i1 %.not828, label %.thread.sink.split, label %40

40:                                               ; preds = %38, %36, %35
  %.not829 = icmp eq i32 %32, 0
  br i1 %.not829, label %41, label %43

41:                                               ; preds = %40
  %42 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #8
  %.not830 = icmp eq i32 %42, 0
  br i1 %.not830, label %.thread.sink.split, label %43

43:                                               ; preds = %41, %40
  %44 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #8
  %.not831 = icmp eq i32 %44, 0
  br i1 %.not831, label %45, label %47

45:                                               ; preds = %43
  %46 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #8
  %.not832 = icmp eq i32 %46, 0
  br i1 %.not832, label %.thread.sink.split, label %47

47:                                               ; preds = %45, %43
  %48 = load i32, ptr %4, align 4, !tbaa !5
  %49 = icmp slt i32 %48, 0
  br i1 %49, label %.thread.sink.split, label %50

50:                                               ; preds = %47
  %51 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %48, i32 1)
  %52 = icmp slt i32 %51, %spec.select
  br i1 %52, label %.thread.sink.split, label %53

53:                                               ; preds = %50
  %.pr = load i32, ptr %10, align 4, !tbaa !5
  %.not833 = icmp eq i32 %.pr, 0
  br i1 %.not833, label %57, label %.thread

.thread.sink.split:                               ; preds = %50, %47, %45, %41, %38, %33
  %.sink = phi i32 [ -1, %33 ], [ -2, %38 ], [ -3, %41 ], [ -4, %45 ], [ -5, %47 ], [ -7, %50 ]
  store i32 %.sink, ptr %10, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %53
  %54 = phi i32 [ %.pr, %53 ], [ %.sink, %.thread.sink.split ]
  %55 = sub nsw i32 0, %54
  store i32 %55, ptr %12, align 4, !tbaa !5
  %56 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %12, i32 noundef 6) #8
  br label %956

57:                                               ; preds = %53
  %58 = icmp eq i32 %48, 0
  br i1 %58, label %956, label %59

59:                                               ; preds = %57
  %60 = tail call float @slamch_(ptr noundef nonnull @.str.7) #8
  store float %60, ptr %23, align 4, !tbaa !9
  %61 = fdiv float 1.000000e+00, %60
  store float %61, ptr %22, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %23, ptr noundef nonnull %22) #8
  %62 = call float @slamch_(ptr noundef nonnull @.str.8) #8
  %63 = load float, ptr %23, align 4, !tbaa !9
  %64 = fdiv float %63, %62
  store float %64, ptr %23, align 4, !tbaa !9
  %65 = fdiv float 1.000000e+00, %64
  store float %65, ptr %22, align 4, !tbaa !9
  store float 1.000000e+00, ptr %8, align 4, !tbaa !9
  %66 = call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #8
  %.not834 = icmp eq i32 %66, 0
  br i1 %.not834, label %.loopexit886, label %67

67:                                               ; preds = %59
  %68 = load i32, ptr %4, align 4, !tbaa !5
  br i1 %.not.not.not, label %77, label %69

69:                                               ; preds = %67
  store i32 %68, ptr %12, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %27, i64 8
  %.not836889 = icmp slt i32 %68, 1
  br i1 %.not836889, label %.loopexit886, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %69
  %70 = sext i32 %25 to i64
  %71 = zext nneg i32 %68 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %72 = trunc i64 %indvars.iv to i32
  %73 = add i32 %72, -1
  store i32 %73, ptr %13, align 4, !tbaa !5
  %74 = mul nsw i64 %indvars.iv, %70
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %74
  %75 = call float @scasum_(ptr noundef nonnull %13, ptr noundef %gep, ptr noundef nonnull @c__1) #8
  %76 = getelementptr inbounds float, ptr %29, i64 %indvars.iv
  store float %75, ptr %76, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not836.not = icmp ult i64 %indvars.iv, %71
  br i1 %.not836.not, label %.lr.ph, label %.loopexit886, !llvm.loop !11

77:                                               ; preds = %67
  %78 = add nsw i32 %68, -1
  store i32 %78, ptr %12, align 4, !tbaa !5
  %.not835891 = icmp slt i32 %68, 2
  br i1 %.not835891, label %._crit_edge, label %.lr.ph893.preheader

.lr.ph893.preheader:                              ; preds = %77
  %79 = sext i32 %25 to i64
  %80 = sext i32 %78 to i64
  br label %.lr.ph893

.lr.ph893:                                        ; preds = %.lr.ph893.preheader, %.lr.ph893
  %indvars.iv1026 = phi i64 [ 1, %.lr.ph893.preheader ], [ %indvars.iv.next1027, %.lr.ph893 ]
  %81 = load i32, ptr %4, align 4, !tbaa !5
  %82 = trunc nuw nsw i64 %indvars.iv1026 to i32
  %83 = sub nsw i32 %81, %82
  store i32 %83, ptr %13, align 4, !tbaa !5
  %indvars.iv.next1027 = add nuw nsw i64 %indvars.iv1026, 1
  %84 = mul nsw i64 %indvars.iv1026, %79
  %85 = getelementptr %struct.complex, ptr %27, i64 %indvars.iv.next1027
  %86 = getelementptr %struct.complex, ptr %85, i64 %84
  %87 = call float @scasum_(ptr noundef nonnull %13, ptr noundef %86, ptr noundef nonnull @c__1) #8
  %88 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1026
  store float %87, ptr %88, align 4, !tbaa !9
  %.not835.not = icmp slt i64 %indvars.iv1026, %80
  br i1 %.not835.not, label %.lr.ph893, label %._crit_edge.loopexit, !llvm.loop !13

._crit_edge.loopexit:                             ; preds = %.lr.ph893
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %77
  %89 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ %68, %77 ]
  %90 = sext i32 %89 to i64
  %91 = getelementptr inbounds float, ptr %29, i64 %90
  store float 0.000000e+00, ptr %91, align 4, !tbaa !9
  br label %.loopexit886

.loopexit886:                                     ; preds = %.lr.ph, %69, %._crit_edge, %59
  %92 = call i32 @isamax_(ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull @c__1) #8
  %93 = sext i32 %92 to i64
  %94 = getelementptr inbounds float, ptr %29, i64 %93
  %95 = load float, ptr %94, align 4, !tbaa !9
  %96 = load float, ptr %22, align 4, !tbaa !9
  %97 = fmul float %96, 5.000000e-01
  %98 = fcmp ugt float %95, %97
  br i1 %98, label %100, label %99

99:                                               ; preds = %.loopexit886
  store float 1.000000e+00, ptr %20, align 4, !tbaa !9
  br label %104

100:                                              ; preds = %.loopexit886
  %101 = load float, ptr %23, align 4, !tbaa !9
  %102 = fmul float %95, %101
  %103 = fdiv float 5.000000e-01, %102
  store float %103, ptr %20, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %20, ptr noundef nonnull %9, ptr noundef nonnull @c__1) #8
  br label %104

104:                                              ; preds = %100, %99
  %105 = load i32, ptr %4, align 4, !tbaa !5
  %.not837894 = icmp slt i32 %105, 1
  br i1 %.not837894, label %._crit_edge899, label %.lr.ph898.preheader

.lr.ph898.preheader:                              ; preds = %104
  %106 = zext nneg i32 %105 to i64
  br label %.lr.ph898

.lr.ph898:                                        ; preds = %.lr.ph898.preheader, %.lr.ph898
  %indvars.iv1029 = phi i64 [ 1, %.lr.ph898.preheader ], [ %indvars.iv.next1030, %.lr.ph898 ]
  %.0759896 = phi float [ 0.000000e+00, %.lr.ph898.preheader ], [ %121, %.lr.ph898 ]
  %107 = trunc nuw nsw i64 %indvars.iv1029 to i32
  store i32 %107, ptr %13, align 4, !tbaa !5
  %108 = getelementptr inbounds %struct.complex, ptr %28, i64 %indvars.iv1029
  %109 = load float, ptr %108, align 4, !tbaa !14
  %110 = fmul float %109, 5.000000e-01
  store float %110, ptr %15, align 4, !tbaa !9
  %111 = call <2 x float> @Cf(ptr noundef nonnull %108)
  %.sroa.027.4.vec.extract = extractelement <2 x float> %111, i64 1
  %112 = fmul float %.sroa.027.4.vec.extract, 5.000000e-01
  %113 = insertelement <2 x float> poison, float %110, i64 0
  %114 = insertelement <2 x float> %113, float %112, i64 1
  %115 = fcmp oge <2 x float> %114, zeroinitializer
  %116 = fneg <2 x float> %114
  %117 = select <2 x i1> %115, <2 x float> %114, <2 x float> %116
  %shift = shufflevector <2 x float> %117, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %118 = fadd <2 x float> %117, %shift
  %119 = extractelement <2 x float> %118, i64 0
  %120 = fcmp oge float %.0759896, %119
  %121 = select i1 %120, float %.0759896, float %119
  %indvars.iv.next1030 = add nuw nsw i64 %indvars.iv1029, 1
  %.not837.not = icmp ult i64 %indvars.iv1029, %106
  br i1 %.not837.not, label %.lr.ph898, label %._crit_edge899, !llvm.loop !16

._crit_edge899:                                   ; preds = %.lr.ph898, %104
  %.0759.lcssa = phi float [ 0.000000e+00, %104 ], [ %121, %.lr.ph898 ]
  %122 = load i32, ptr %4, align 4, !tbaa !5
  %123 = load float, ptr %20, align 4, !tbaa !9
  %124 = fcmp une float %123, 1.000000e+00
  br i1 %.not826, label %189, label %125

125:                                              ; preds = %._crit_edge899
  %. = select i1 %.not.not.not, i32 1, i32 %122
  %.1094 = select i1 %.not.not.not, i32 %122, i32 1
  %.1095 = select i1 %.not.not.not, i32 1, i32 -1
  br i1 %124, label %.loopexit882, label %126

126:                                              ; preds = %125
  %127 = load float, ptr %23, align 4
  %128 = fcmp oge float %.0759.lcssa, %127
  %129 = select i1 %128, float %.0759.lcssa, float %127
  %130 = fdiv float 5.000000e-01, %129
  br i1 %.not829, label %172, label %131

131:                                              ; preds = %126
  store i32 %.1095, ptr %13, align 4, !tbaa !5
  %132 = icmp sge i32 %., %.1094
  %133 = icmp sle i32 %., %.1094
  %.in843900 = select i1 %.not.not.not, i1 %133, i1 %132
  br i1 %.in843900, label %.lr.ph905, label %.loopexit882

.lr.ph905:                                        ; preds = %131
  %134 = add i32 %25, 1
  br label %135

135:                                              ; preds = %.lr.ph905, %159
  %136 = phi float [ %127, %.lr.ph905 ], [ %151, %159 ]
  %.0756903 = phi float [ %130, %.lr.ph905 ], [ %.1757, %159 ]
  %.0763902 = phi float [ %130, %.lr.ph905 ], [ %.1764, %159 ]
  %.3779901 = phi i32 [ %., %.lr.ph905 ], [ %168, %159 ]
  %137 = fcmp ugt float %.0763902, %136
  br i1 %137, label %138, label %.loopexit882

138:                                              ; preds = %135
  %139 = mul i32 %.3779901, %134
  store i32 %139, ptr %14, align 4, !tbaa !5
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds %struct.complex, ptr %27, i64 %140
  %142 = load <2 x float>, ptr %141, align 4, !tbaa !9
  store <2 x float> %142, ptr %19, align 8, !tbaa !9
  %143 = extractelement <2 x float> %142, i64 0
  store float %143, ptr %15, align 4, !tbaa !9
  %144 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %145 = shufflevector <2 x float> %142, <2 x float> %144, <2 x i32> <i32 0, i32 3>
  %146 = fcmp oge <2 x float> %145, zeroinitializer
  %147 = fneg <2 x float> %145
  %148 = select <2 x i1> %146, <2 x float> %145, <2 x float> %147
  %shift1159 = shufflevector <2 x float> %148, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %149 = fadd <2 x float> %148, %shift1159
  %150 = extractelement <2 x float> %149, i64 0
  %151 = load float, ptr %23, align 4, !tbaa !9
  %152 = fcmp ult float %150, %151
  br i1 %152, label %159, label %153

153:                                              ; preds = %138
  store float %.0756903, ptr %15, align 4, !tbaa !9
  %154 = fcmp oge float %150, 1.000000e+00
  %155 = select i1 %154, float 1.000000e+00, float %150
  %156 = fmul float %.0763902, %155
  %157 = fcmp ole float %.0756903, %156
  %158 = select i1 %157, float %.0756903, float %156
  br label %159

159:                                              ; preds = %138, %153
  %.1757 = phi float [ %158, %153 ], [ 0.000000e+00, %138 ]
  %160 = sext i32 %.3779901 to i64
  %161 = getelementptr inbounds float, ptr %29, i64 %160
  %162 = load float, ptr %161, align 4, !tbaa !9
  %163 = fadd float %150, %162
  %164 = fcmp ult float %163, %151
  %165 = fdiv float %150, %163
  %166 = fmul float %.0763902, %165
  %.1764 = select i1 %164, float 0.000000e+00, float %166
  %167 = load i32, ptr %13, align 4, !tbaa !5
  %168 = add nsw i32 %167, %.3779901
  %169 = icmp slt i32 %167, 0
  %170 = icmp sge i32 %168, %.1094
  %171 = icmp sle i32 %168, %.1094
  %.in843 = select i1 %169, i1 %170, i1 %171
  br i1 %.in843, label %135, label %.loopexit882, !llvm.loop !17

172:                                              ; preds = %126
  %173 = fcmp oge float %130, 1.000000e+00
  %174 = select i1 %173, float 1.000000e+00, float %130
  store i32 %.1094, ptr %13, align 4, !tbaa !5
  %175 = icmp sge i32 %., %.1094
  %176 = icmp sle i32 %., %.1094
  %.in842909 = select i1 %.not.not.not, i1 %176, i1 %175
  %177 = fcmp ugt float %174, %127
  %or.cond861910 = select i1 %.in842909, i1 %177, i1 false
  br i1 %or.cond861910, label %.lr.ph914.preheader, label %.loopexit882

.lr.ph914.preheader:                              ; preds = %172
  %178 = sext i32 %. to i64
  %179 = sext i32 %.1095 to i64
  %180 = sext i32 %.1094 to i64
  br label %.lr.ph914

.lr.ph914:                                        ; preds = %.lr.ph914.preheader, %.lr.ph914
  %indvars.iv1032 = phi i64 [ %178, %.lr.ph914.preheader ], [ %indvars.iv.next1033, %.lr.ph914 ]
  %.2765912 = phi float [ %174, %.lr.ph914.preheader ], [ %185, %.lr.ph914 ]
  %181 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1032
  %182 = load float, ptr %181, align 4, !tbaa !9
  %183 = fadd float %182, 1.000000e+00
  %184 = fdiv float 1.000000e+00, %183
  %185 = fmul float %.2765912, %184
  %indvars.iv.next1033 = add nsw i64 %indvars.iv1032, %179
  %186 = icmp sge i64 %indvars.iv.next1033, %180
  %187 = icmp sle i64 %indvars.iv.next1033, %180
  %.in842 = select i1 %.not.not.not, i1 %187, i1 %186
  %188 = fcmp ugt float %185, %127
  %or.cond861 = select i1 %.in842, i1 %188, i1 false
  br i1 %or.cond861, label %.lr.ph914, label %.loopexit882, !llvm.loop !18

189:                                              ; preds = %._crit_edge899
  %.1096 = select i1 %.not.not.not, i32 %122, i32 1
  %.1097 = select i1 %.not.not.not, i32 1, i32 %122
  %.1098 = select i1 %.not.not.not, i32 -1, i32 1
  br i1 %124, label %.loopexit882, label %190

190:                                              ; preds = %189
  %191 = load float, ptr %23, align 4
  %192 = fcmp oge float %.0759.lcssa, %191
  %193 = select i1 %192, float %.0759.lcssa, float %191
  %194 = fdiv float 5.000000e-01, %193
  br i1 %.not829, label %237, label %195

195:                                              ; preds = %190
  store i32 %.1097, ptr %12, align 4, !tbaa !5
  store i32 %.1098, ptr %13, align 4, !tbaa !5
  %196 = icmp sge i32 %.1096, %.1097
  %197 = icmp sle i32 %.1096, %.1097
  %.in840916 = select i1 %.not.not.not, i1 %196, i1 %197
  br i1 %.in840916, label %.lr.ph921, label %._crit_edge922

.lr.ph921:                                        ; preds = %195
  %198 = add i32 %25, 1
  br label %199

199:                                              ; preds = %.lr.ph921, %229
  %200 = phi float [ %191, %.lr.ph921 ], [ %222, %229 ]
  %.2758919 = phi float [ %194, %.lr.ph921 ], [ %.3, %229 ]
  %.3766918 = phi float [ %194, %.lr.ph921 ], [ %209, %229 ]
  %.5781917 = phi i32 [ %.1096, %.lr.ph921 ], [ %231, %229 ]
  %201 = fcmp ugt float %.3766918, %200
  br i1 %201, label %202, label %.loopexit882

202:                                              ; preds = %199
  %203 = sext i32 %.5781917 to i64
  %204 = getelementptr inbounds float, ptr %29, i64 %203
  %205 = load float, ptr %204, align 4, !tbaa !9
  %206 = fadd float %205, 1.000000e+00
  %207 = fdiv float %.2758919, %206
  %208 = fcmp ole float %.3766918, %207
  %209 = select i1 %208, float %.3766918, float %207
  %210 = mul i32 %.5781917, %198
  store i32 %210, ptr %14, align 4, !tbaa !5
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds %struct.complex, ptr %27, i64 %211
  %213 = load <2 x float>, ptr %212, align 4, !tbaa !9
  store <2 x float> %213, ptr %19, align 8, !tbaa !9
  %214 = extractelement <2 x float> %213, i64 0
  store float %214, ptr %15, align 4, !tbaa !9
  %215 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %216 = shufflevector <2 x float> %213, <2 x float> %215, <2 x i32> <i32 0, i32 3>
  %217 = fcmp oge <2 x float> %216, zeroinitializer
  %218 = fneg <2 x float> %216
  %219 = select <2 x i1> %217, <2 x float> %216, <2 x float> %218
  %shift1160 = shufflevector <2 x float> %219, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %220 = fadd <2 x float> %219, %shift1160
  %221 = extractelement <2 x float> %220, i64 0
  %222 = load float, ptr %23, align 4, !tbaa !9
  %223 = fcmp ult float %221, %222
  br i1 %223, label %229, label %224

224:                                              ; preds = %202
  %225 = fcmp ogt float %206, %221
  br i1 %225, label %226, label %229

226:                                              ; preds = %224
  %227 = fdiv float %221, %206
  %228 = fmul float %.2758919, %227
  br label %229

229:                                              ; preds = %202, %226, %224
  %.3 = phi float [ %228, %226 ], [ %.2758919, %224 ], [ 0.000000e+00, %202 ]
  %230 = load i32, ptr %13, align 4, !tbaa !5
  %231 = add nsw i32 %230, %.5781917
  %232 = icmp slt i32 %230, 0
  %233 = icmp sge i32 %231, %.1097
  %234 = icmp sle i32 %231, %.1097
  %.in840 = select i1 %232, i1 %233, i1 %234
  br i1 %.in840, label %199, label %._crit_edge922, !llvm.loop !19

._crit_edge922:                                   ; preds = %229, %195
  %.3766.lcssa = phi float [ %194, %195 ], [ %209, %229 ]
  %.2758.lcssa = phi float [ %194, %195 ], [ %.3, %229 ]
  %235 = fcmp ole float %.3766.lcssa, %.2758.lcssa
  %236 = select i1 %235, float %.3766.lcssa, float %.2758.lcssa
  br label %.loopexit882

237:                                              ; preds = %190
  %238 = fcmp oge float %194, 1.000000e+00
  %239 = select i1 %238, float 1.000000e+00, float %194
  store i32 %.1097, ptr %13, align 4, !tbaa !5
  %240 = icmp sge i32 %.1096, %.1097
  %241 = icmp sle i32 %.1096, %.1097
  %.in925 = select i1 %.not.not.not, i1 %240, i1 %241
  %242 = fcmp ugt float %239, %191
  %or.cond863926 = select i1 %.in925, i1 %242, i1 false
  br i1 %or.cond863926, label %.lr.ph930.preheader, label %.loopexit882

.lr.ph930.preheader:                              ; preds = %237
  %243 = sext i32 %.1096 to i64
  %244 = sext i32 %.1098 to i64
  %245 = sext i32 %.1097 to i64
  br label %.lr.ph930

.lr.ph930:                                        ; preds = %.lr.ph930.preheader, %.lr.ph930
  %indvars.iv1035 = phi i64 [ %243, %.lr.ph930.preheader ], [ %indvars.iv.next1036, %.lr.ph930 ]
  %.4767928 = phi float [ %239, %.lr.ph930.preheader ], [ %249, %.lr.ph930 ]
  %246 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1035
  %247 = load float, ptr %246, align 4, !tbaa !9
  %248 = fadd float %247, 1.000000e+00
  %249 = fdiv float %.4767928, %248
  %indvars.iv.next1036 = add nsw i64 %indvars.iv1035, %244
  %250 = icmp sge i64 %indvars.iv.next1036, %245
  %251 = icmp sle i64 %indvars.iv.next1036, %245
  %.in = select i1 %.not.not.not, i1 %250, i1 %251
  %252 = fcmp ugt float %249, %191
  %or.cond863 = select i1 %.in, i1 %252, i1 false
  br i1 %or.cond863, label %.lr.ph930, label %.loopexit882, !llvm.loop !20

.loopexit882:                                     ; preds = %135, %159, %.lr.ph914, %199, %.lr.ph930, %131, %172, %237, %189, %125, %._crit_edge922
  %.2792 = phi i32 [ %.1096, %._crit_edge922 ], [ %., %125 ], [ %.1096, %189 ], [ %.1096, %237 ], [ %., %172 ], [ %., %131 ], [ %.1096, %.lr.ph930 ], [ %.1096, %199 ], [ %., %.lr.ph914 ], [ %., %159 ], [ %., %135 ]
  %253 = phi i32 [ %.1097, %._crit_edge922 ], [ %.1094, %125 ], [ %.1097, %189 ], [ %.1097, %237 ], [ %.1094, %172 ], [ %.1094, %131 ], [ %.1097, %.lr.ph930 ], [ %.1097, %199 ], [ %.1094, %.lr.ph914 ], [ %.1094, %159 ], [ %.1094, %135 ]
  %.5768 = phi float [ %236, %._crit_edge922 ], [ 0.000000e+00, %125 ], [ 0.000000e+00, %189 ], [ %239, %237 ], [ %174, %172 ], [ %130, %131 ], [ %249, %.lr.ph930 ], [ %.3766918, %199 ], [ %185, %.lr.ph914 ], [ %.0763902, %135 ], [ %.1757, %159 ]
  %254 = phi i32 [ %.1098, %._crit_edge922 ], [ %.1095, %125 ], [ %.1098, %189 ], [ %.1098, %237 ], [ %.1095, %172 ], [ %.1095, %131 ], [ %.1098, %.lr.ph930 ], [ %.1098, %199 ], [ %.1095, %.lr.ph914 ], [ %.1095, %159 ], [ %.1095, %135 ]
  %255 = load float, ptr %20, align 4, !tbaa !9
  %256 = fmul float %.5768, %255
  %257 = load float, ptr %23, align 4, !tbaa !9
  %258 = fcmp ogt float %256, %257
  br i1 %258, label %259, label %260

259:                                              ; preds = %.loopexit882
  call void @ctrsv_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull @c__1) #8
  %.pr875 = load float, ptr %20, align 4, !tbaa !9
  br label %951

260:                                              ; preds = %.loopexit882
  %261 = load float, ptr %22, align 4, !tbaa !9
  %262 = fmul float %261, 5.000000e-01
  %263 = fcmp ogt float %.0759.lcssa, %262
  br i1 %263, label %264, label %267

264:                                              ; preds = %260
  %265 = fdiv float %262, %.0759.lcssa
  store float %265, ptr %8, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull @c__1) #8
  %266 = load float, ptr %22, align 4, !tbaa !9
  br label %269

267:                                              ; preds = %260
  %268 = fmul float %.0759.lcssa, 2.000000e+00
  br label %269

269:                                              ; preds = %267, %264
  %.1760 = phi float [ %266, %264 ], [ %268, %267 ]
  br i1 %.not826, label %437, label %270

270:                                              ; preds = %269
  store i32 %254, ptr %13, align 4, !tbaa !5
  %invariant.gep936 = getelementptr i8, ptr %27, i64 8
  %271 = icmp slt i32 %254, 0
  %272 = icmp sge i32 %.2792, %253
  %273 = icmp sle i32 %.2792, %253
  %.in857938 = select i1 %271, i1 %272, i1 %273
  br i1 %.in857938, label %.lr.ph942, label %.loopexit877

.lr.ph942:                                        ; preds = %270
  %274 = add i32 %25, 1
  %275 = getelementptr inbounds i8, ptr %16, i64 4
  %276 = getelementptr inbounds i8, ptr %19, i64 4
  br label %277

277:                                              ; preds = %.lr.ph942, %431
  %.2761940 = phi float [ %.1760, %.lr.ph942 ], [ %.6, %431 ]
  %.7783939 = phi i32 [ %.2792, %.lr.ph942 ], [ %433, %431 ]
  store i32 %.7783939, ptr %14, align 4, !tbaa !5
  %278 = sext i32 %.7783939 to i64
  %279 = getelementptr inbounds %struct.complex, ptr %28, i64 %278
  %280 = load float, ptr %279, align 4, !tbaa !14
  %281 = fcmp oge float %280, 0.000000e+00
  %282 = fneg float %280
  %283 = select i1 %281, float %280, float %282
  %284 = call <2 x float> @Cf(ptr noundef nonnull %279)
  %.sroa.024.4.vec.extract = extractelement <2 x float> %284, i64 1
  %285 = fcmp oge float %.sroa.024.4.vec.extract, 0.000000e+00
  %286 = fneg float %.sroa.024.4.vec.extract
  %287 = select i1 %285, float %.sroa.024.4.vec.extract, float %286
  %288 = fadd float %283, %287
  br i1 %.not829, label %299, label %289

289:                                              ; preds = %277
  %290 = mul i32 %.7783939, %274
  store i32 %290, ptr %14, align 4, !tbaa !5
  %291 = load float, ptr %20, align 4, !tbaa !9
  %292 = sext i32 %290 to i64
  %293 = getelementptr inbounds %struct.complex, ptr %27, i64 %292
  %294 = load <2 x float>, ptr %293, align 4, !tbaa !9
  %295 = insertelement <2 x float> poison, float %291, i64 0
  %296 = shufflevector <2 x float> %295, <2 x float> poison, <2 x i32> zeroinitializer
  %297 = fmul <2 x float> %296, %294
  store <2 x float> %297, ptr %16, align 8, !tbaa !9
  store <2 x float> %297, ptr %19, align 8, !tbaa !9
  %298 = extractelement <2 x float> %297, i64 0
  br label %302

299:                                              ; preds = %277
  %300 = load float, ptr %20, align 4, !tbaa !9
  store float %300, ptr %19, align 8, !tbaa !14
  store float 0.000000e+00, ptr %276, align 4, !tbaa !21
  %301 = fcmp oeq float %300, 1.000000e+00
  br i1 %301, label %362, label %302

302:                                              ; preds = %299, %289
  %303 = phi float [ %300, %299 ], [ %298, %289 ]
  %304 = fcmp oge float %303, 0.000000e+00
  %305 = fneg float %303
  %306 = select i1 %304, float %303, float %305
  %307 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %.sroa.023.4.vec.extract = extractelement <2 x float> %307, i64 1
  %308 = fcmp oge float %.sroa.023.4.vec.extract, 0.000000e+00
  %309 = fneg float %.sroa.023.4.vec.extract
  %310 = select i1 %308, float %.sroa.023.4.vec.extract, float %309
  %311 = fadd float %306, %310
  %312 = load float, ptr %23, align 4, !tbaa !9
  %313 = fcmp ogt float %311, %312
  br i1 %313, label %314, label %327

314:                                              ; preds = %302
  %315 = fcmp olt float %311, 1.000000e+00
  br i1 %315, label %316, label %326

316:                                              ; preds = %314
  %317 = load float, ptr %22, align 4, !tbaa !9
  %318 = fmul float %311, %317
  %319 = fcmp ogt float %288, %318
  br i1 %319, label %320, label %326

320:                                              ; preds = %316
  %321 = fdiv float 1.000000e+00, %288
  store float %321, ptr %24, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %322 = load float, ptr %24, align 4, !tbaa !9
  %323 = load float, ptr %8, align 4, !tbaa !9
  %324 = fmul float %322, %323
  store float %324, ptr %8, align 4, !tbaa !9
  %325 = fmul float %.2761940, %322
  br label %326

326:                                              ; preds = %316, %320, %314
  %.3762 = phi float [ %325, %320 ], [ %.2761940, %316 ], [ %.2761940, %314 ]
  store i32 %.7783939, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %279, ptr noundef nonnull %19) #8
  br label %.sink.split

327:                                              ; preds = %302
  %328 = fcmp ogt float %311, 0.000000e+00
  br i1 %328, label %329, label %346

329:                                              ; preds = %327
  %330 = load float, ptr %22, align 4, !tbaa !9
  %331 = fmul float %311, %330
  %332 = fcmp ogt float %288, %331
  br i1 %332, label %333, label %345

333:                                              ; preds = %329
  %334 = fdiv float %331, %288
  store float %334, ptr %24, align 4, !tbaa !9
  %335 = getelementptr inbounds float, ptr %29, i64 %278
  %336 = load float, ptr %335, align 4, !tbaa !9
  %337 = fcmp ogt float %336, 1.000000e+00
  br i1 %337, label %338, label %340

338:                                              ; preds = %333
  %339 = fdiv float %334, %336
  store float %339, ptr %24, align 4, !tbaa !9
  br label %340

340:                                              ; preds = %338, %333
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %341 = load float, ptr %24, align 4, !tbaa !9
  %342 = load float, ptr %8, align 4, !tbaa !9
  %343 = fmul float %341, %342
  store float %343, ptr %8, align 4, !tbaa !9
  %344 = fmul float %.2761940, %341
  br label %345

345:                                              ; preds = %340, %329
  %.4 = phi float [ %344, %340 ], [ %.2761940, %329 ]
  store i32 %.7783939, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %279, ptr noundef nonnull %19) #8
  br label %.sink.split

346:                                              ; preds = %327
  %347 = load i32, ptr %4, align 4, !tbaa !5
  %.not859932 = icmp slt i32 %347, 1
  br i1 %.not859932, label %.thread869, label %.lr.ph935.preheader

.lr.ph935.preheader:                              ; preds = %346
  %348 = zext nneg i32 %347 to i64
  %349 = shl nuw nsw i64 %348, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %7, i8 0, i64 %349, i1 false), !tbaa !9
  br label %.thread869

.thread869:                                       ; preds = %.lr.ph935.preheader, %346
  store i32 %.7783939, ptr %14, align 4, !tbaa !5
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %279, align 4, !tbaa !9
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  br label %377

.sink.split:                                      ; preds = %345, %326
  %.5.ph = phi float [ %.4, %345 ], [ %.3762, %326 ]
  %.sink1155 = load float, ptr %16, align 8, !tbaa !14
  %.sink1158 = load i32, ptr %14, align 4, !tbaa !5
  %350 = sext i32 %.sink1158 to i64
  %351 = getelementptr inbounds %struct.complex, ptr %28, i64 %350
  store float %.sink1155, ptr %351, align 4, !tbaa !14
  %352 = load float, ptr %275, align 4, !tbaa !21
  %353 = getelementptr inbounds %struct.complex, ptr %28, i64 %350, i32 1
  store float %352, ptr %353, align 4, !tbaa !21
  store i32 %.7783939, ptr %14, align 4, !tbaa !5
  %storemerge1127 = load float, ptr %279, align 4, !tbaa !14
  store float %storemerge1127, ptr %15, align 4, !tbaa !9
  %354 = fcmp oge float %storemerge1127, 0.000000e+00
  %355 = fneg float %storemerge1127
  %356 = select i1 %354, float %storemerge1127, float %355
  %357 = call <2 x float> @Cf(ptr noundef nonnull %279)
  %.sroa.022.4.vec.extract = extractelement <2 x float> %357, i64 1
  %358 = fcmp oge float %.sroa.022.4.vec.extract, 0.000000e+00
  %359 = fneg float %.sroa.022.4.vec.extract
  %360 = select i1 %358, float %.sroa.022.4.vec.extract, float %359
  %361 = fadd float %356, %360
  br label %362

362:                                              ; preds = %.sink.split, %299
  %.0789 = phi float [ %288, %299 ], [ %361, %.sink.split ]
  %.5 = phi float [ %.2761940, %299 ], [ %.5.ph, %.sink.split ]
  %363 = fcmp ogt float %.0789, 1.000000e+00
  br i1 %363, label %364, label %377

364:                                              ; preds = %362
  %365 = fdiv float 1.000000e+00, %.0789
  store float %365, ptr %24, align 4, !tbaa !9
  %366 = getelementptr inbounds float, ptr %29, i64 %278
  %367 = load float, ptr %366, align 4, !tbaa !9
  %368 = load float, ptr %22, align 4, !tbaa !9
  %369 = fsub float %368, %.5
  %370 = fmul float %365, %369
  %371 = fcmp ogt float %367, %370
  br i1 %371, label %372, label %387

372:                                              ; preds = %364
  %373 = fmul float %365, 5.000000e-01
  store float %373, ptr %24, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %374 = load float, ptr %24, align 4, !tbaa !9
  %375 = load float, ptr %8, align 4, !tbaa !9
  %376 = fmul float %374, %375
  br label %.sink.split1111

377:                                              ; preds = %.thread869, %362
  %.5874 = phi float [ 0.000000e+00, %.thread869 ], [ %.5, %362 ]
  %.0789872 = phi float [ 1.000000e+00, %.thread869 ], [ %.0789, %362 ]
  %378 = getelementptr inbounds float, ptr %29, i64 %278
  %379 = load float, ptr %378, align 4, !tbaa !9
  %380 = fmul float %.0789872, %379
  %381 = load float, ptr %22, align 4, !tbaa !9
  %382 = fsub float %381, %.5874
  %383 = fcmp ogt float %380, %382
  br i1 %383, label %384, label %387

384:                                              ; preds = %377
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull @c_b36, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %385 = load float, ptr %8, align 4, !tbaa !9
  %386 = fmul float %385, 5.000000e-01
  br label %.sink.split1111

.sink.split1111:                                  ; preds = %372, %384
  %.sink1112 = phi float [ %386, %384 ], [ %376, %372 ]
  %.5873.ph = phi float [ %.5874, %384 ], [ %.5, %372 ]
  store float %.sink1112, ptr %8, align 4, !tbaa !9
  br label %387

387:                                              ; preds = %.sink.split1111, %377, %364
  %.5873 = phi float [ %.5874, %377 ], [ %.5, %364 ], [ %.5873.ph, %.sink.split1111 ]
  br i1 %.not.not.not, label %401, label %388

388:                                              ; preds = %387
  %389 = icmp sgt i32 %.7783939, 1
  br i1 %389, label %390, label %431

390:                                              ; preds = %388
  %391 = add nsw i32 %.7783939, -1
  store i32 %391, ptr %14, align 4, !tbaa !5
  %392 = load <2 x float>, ptr %279, align 4, !tbaa !9
  %393 = fneg <2 x float> %392
  store <2 x float> %393, ptr %17, align 8, !tbaa !9
  %394 = load float, ptr %20, align 4, !tbaa !9
  %395 = insertelement <2 x float> poison, float %394, i64 0
  %396 = shufflevector <2 x float> %395, <2 x float> poison, <2 x i32> zeroinitializer
  %397 = fmul <2 x float> %396, %393
  store <2 x float> %397, ptr %16, align 8, !tbaa !9
  %398 = mul nsw i32 %.7783939, %25
  %399 = sext i32 %398 to i64
  %gep937 = getelementptr %struct.complex, ptr %invariant.gep936, i64 %399
  call void @caxpy_(ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef %gep937, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  store i32 %391, ptr %14, align 4, !tbaa !5
  %400 = call i32 @icamax_(ptr noundef nonnull %14, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  br label %.sink.split1113

401:                                              ; preds = %387
  %402 = load i32, ptr %4, align 4, !tbaa !5
  %403 = icmp slt i32 %.7783939, %402
  br i1 %403, label %404, label %431

404:                                              ; preds = %401
  %405 = sub nsw i32 %402, %.7783939
  store i32 %405, ptr %14, align 4, !tbaa !5
  %406 = load <2 x float>, ptr %279, align 4, !tbaa !9
  %407 = fneg <2 x float> %406
  store <2 x float> %407, ptr %17, align 8, !tbaa !9
  %408 = load float, ptr %20, align 4, !tbaa !9
  %409 = insertelement <2 x float> poison, float %408, i64 0
  %410 = shufflevector <2 x float> %409, <2 x float> poison, <2 x i32> zeroinitializer
  %411 = fmul <2 x float> %410, %407
  store <2 x float> %411, ptr %16, align 8, !tbaa !9
  %412 = add nsw i32 %.7783939, 1
  %413 = mul nsw i32 %.7783939, %25
  %414 = add nsw i32 %412, %413
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds %struct.complex, ptr %27, i64 %415
  %417 = sext i32 %412 to i64
  %418 = getelementptr inbounds %struct.complex, ptr %28, i64 %417
  call void @caxpy_(ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef %416, ptr noundef nonnull @c__1, ptr noundef nonnull %418, ptr noundef nonnull @c__1) #8
  %419 = load i32, ptr %4, align 4, !tbaa !5
  %420 = sub nsw i32 %419, %.7783939
  store i32 %420, ptr %14, align 4, !tbaa !5
  %421 = call i32 @icamax_(ptr noundef nonnull %14, ptr noundef nonnull %418, ptr noundef nonnull @c__1) #8
  %422 = add nsw i32 %421, %.7783939
  br label %.sink.split1113

.sink.split1113:                                  ; preds = %404, %390
  %.pn.in = phi i32 [ %400, %390 ], [ %422, %404 ]
  store i32 %.pn.in, ptr %14, align 4, !tbaa !5
  %.pn = sext i32 %.pn.in to i64
  %.sink1121 = getelementptr inbounds %struct.complex, ptr %28, i64 %.pn
  %.sink1126 = load float, ptr %.sink1121, align 4, !tbaa !14
  store float %.sink1126, ptr %15, align 4, !tbaa !9
  %423 = fcmp oge float %.sink1126, 0.000000e+00
  %424 = fneg float %.sink1126
  %425 = select i1 %423, float %.sink1126, float %424
  %426 = call <2 x float> @Cf(ptr noundef nonnull %.sink1121)
  %.sroa.020.4.vec.extract = extractelement <2 x float> %426, i64 1
  %427 = fcmp oge float %.sroa.020.4.vec.extract, 0.000000e+00
  %428 = fneg float %.sroa.020.4.vec.extract
  %429 = select i1 %427, float %.sroa.020.4.vec.extract, float %428
  %430 = fadd float %425, %429
  br label %431

431:                                              ; preds = %.sink.split1113, %388, %401
  %.6 = phi float [ %.5873, %388 ], [ %.5873, %401 ], [ %430, %.sink.split1113 ]
  %432 = load i32, ptr %13, align 4, !tbaa !5
  %433 = add nsw i32 %432, %.7783939
  %434 = icmp slt i32 %432, 0
  %435 = icmp sge i32 %433, %253
  %436 = icmp sle i32 %433, %253
  %.in857 = select i1 %434, i1 %435, i1 %436
  br i1 %.in857, label %277, label %.loopexit877, !llvm.loop !22

437:                                              ; preds = %269
  %438 = call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #8
  %.not844 = icmp eq i32 %438, 0
  %invariant.gep995 = getelementptr i8, ptr %27, i64 8
  %439 = icmp slt i32 %254, 0
  %440 = icmp sge i32 %.2792, %253
  %441 = icmp sle i32 %.2792, %253
  %.in845997 = select i1 %439, i1 %440, i1 %441
  br i1 %.not844, label %682, label %442

442:                                              ; preds = %437
  store i32 %253, ptr %13, align 4, !tbaa !5
  store i32 %254, ptr %12, align 4, !tbaa !5
  br i1 %.in845997, label %.lr.ph973, label %.loopexit877

.lr.ph973:                                        ; preds = %442
  %443 = getelementptr inbounds i8, ptr %21, i64 4
  %444 = add i32 %25, 1
  %445 = getelementptr inbounds i8, ptr %16, i64 4
  %446 = getelementptr inbounds i8, ptr %19, i64 4
  br label %447

447:                                              ; preds = %.lr.ph973, %666
  %.7971 = phi float [ %.1760, %.lr.ph973 ], [ %677, %666 ]
  %.8784969 = phi i32 [ %.2792, %.lr.ph973 ], [ %678, %666 ]
  store i32 %.8784969, ptr %14, align 4, !tbaa !5
  %448 = sext i32 %.8784969 to i64
  %449 = getelementptr inbounds %struct.complex, ptr %28, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !14
  store float %450, ptr %15, align 4, !tbaa !9
  %451 = fcmp oge float %450, 0.000000e+00
  %452 = fneg float %450
  %453 = select i1 %451, float %450, float %452
  %454 = call <2 x float> @Cf(ptr noundef nonnull %449)
  %.sroa.018.4.vec.extract = extractelement <2 x float> %454, i64 1
  %455 = fcmp oge float %.sroa.018.4.vec.extract, 0.000000e+00
  %456 = fneg float %.sroa.018.4.vec.extract
  %457 = select i1 %455, float %.sroa.018.4.vec.extract, float %456
  %458 = fadd float %453, %457
  %459 = load float, ptr %20, align 4, !tbaa !9
  store float %459, ptr %21, align 8, !tbaa !14
  store float 0.000000e+00, ptr %443, align 4, !tbaa !21
  %460 = fcmp oge float %.7971, 1.000000e+00
  %461 = select i1 %460, float %.7971, float 1.000000e+00
  %462 = fdiv float 1.000000e+00, %461
  store float %462, ptr %24, align 4, !tbaa !9
  %463 = getelementptr inbounds float, ptr %29, i64 %448
  %464 = load float, ptr %463, align 4, !tbaa !9
  %465 = load float, ptr %22, align 4, !tbaa !9
  %466 = fsub float %465, %458
  %467 = fmul float %462, %466
  %468 = fcmp ogt float %464, %467
  br i1 %468, label %469, label %503

469:                                              ; preds = %447
  %470 = fmul float %462, 5.000000e-01
  store float %470, ptr %24, align 4, !tbaa !9
  %471 = insertelement <2 x float> <float poison, float 0.000000e+00>, float %459, i64 0
  br i1 %.not829, label %479, label %472

472:                                              ; preds = %469
  %473 = mul i32 %.8784969, %444
  store i32 %473, ptr %14, align 4, !tbaa !5
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds %struct.complex, ptr %27, i64 %474
  %476 = load <2 x float>, ptr %475, align 4, !tbaa !9
  %477 = shufflevector <2 x float> %471, <2 x float> poison, <2 x i32> zeroinitializer
  %478 = fmul <2 x float> %477, %476
  store <2 x float> %478, ptr %16, align 8, !tbaa !9
  br label %479

479:                                              ; preds = %469, %472
  %480 = phi <2 x float> [ %478, %472 ], [ %471, %469 ]
  store <2 x float> %480, ptr %19, align 8, !tbaa !9
  %481 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %482 = shufflevector <2 x float> %480, <2 x float> %481, <2 x i32> <i32 0, i32 3>
  %483 = fcmp oge <2 x float> %482, zeroinitializer
  %484 = fneg <2 x float> %482
  %485 = select <2 x i1> %483, <2 x float> %482, <2 x float> %484
  %shift1161 = shufflevector <2 x float> %485, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %486 = fadd <2 x float> %485, %shift1161
  %487 = extractelement <2 x float> %486, i64 0
  %488 = fcmp ogt float %487, 1.000000e+00
  br i1 %488, label %489, label %495

489:                                              ; preds = %479
  store float 1.000000e+00, ptr %15, align 4, !tbaa !9
  %490 = load float, ptr %24, align 4, !tbaa !9
  %491 = fmul float %487, %490
  %492 = fcmp oge float %491, 1.000000e+00
  %493 = select i1 %492, float 1.000000e+00, float %491
  store float %493, ptr %24, align 4, !tbaa !9
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %21, ptr noundef nonnull %19) #8
  %494 = load <2 x float>, ptr %16, align 8, !tbaa !9
  store <2 x float> %494, ptr %21, align 8, !tbaa !9
  br label %495

495:                                              ; preds = %489, %479
  %496 = load float, ptr %24, align 4, !tbaa !9
  %497 = fcmp olt float %496, 1.000000e+00
  br i1 %497, label %498, label %503

498:                                              ; preds = %495
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %499 = load float, ptr %24, align 4, !tbaa !9
  %500 = load float, ptr %8, align 4, !tbaa !9
  %501 = fmul float %499, %500
  store float %501, ptr %8, align 4, !tbaa !9
  %502 = fmul float %.7971, %499
  br label %503

503:                                              ; preds = %495, %498, %447
  %.8 = phi float [ %502, %498 ], [ %.7971, %495 ], [ %.7971, %447 ]
  %504 = load float, ptr %21, align 8, !tbaa !14
  %505 = fcmp oeq float %504, 1.000000e+00
  %506 = load float, ptr %443, align 4
  %507 = fcmp oeq float %506, 0.000000e+00
  %or.cond = select i1 %505, i1 %507, i1 false
  br i1 %or.cond, label %508, label %527

508:                                              ; preds = %503
  br i1 %.not.not.not, label %514, label %509

509:                                              ; preds = %508
  %510 = add nsw i32 %.8784969, -1
  store i32 %510, ptr %14, align 4, !tbaa !5
  %511 = mul nsw i32 %.8784969, %25
  %512 = sext i32 %511 to i64
  %gep967 = getelementptr %struct.complex, ptr %invariant.gep995, i64 %512
  call void @cdotu_(ptr noundef nonnull %16, ptr noundef nonnull %14, ptr noundef %gep967, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull @c__1)
  %513 = load <2 x float>, ptr %16, align 8, !tbaa !9
  br label %.loopexit879

514:                                              ; preds = %508
  %515 = load i32, ptr %4, align 4, !tbaa !5
  %516 = icmp slt i32 %.8784969, %515
  br i1 %516, label %517, label %.loopexit879

517:                                              ; preds = %514
  %518 = sub nsw i32 %515, %.8784969
  store i32 %518, ptr %14, align 4, !tbaa !5
  %519 = add nsw i32 %.8784969, 1
  %520 = mul nsw i32 %.8784969, %25
  %521 = add nsw i32 %519, %520
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds %struct.complex, ptr %27, i64 %522
  %524 = sext i32 %519 to i64
  %525 = getelementptr inbounds %struct.complex, ptr %28, i64 %524
  call void @cdotu_(ptr noundef nonnull %16, ptr noundef nonnull %14, ptr noundef %523, ptr noundef nonnull @c__1, ptr noundef nonnull %525, ptr noundef nonnull @c__1)
  %526 = load <2 x float>, ptr %16, align 8, !tbaa !9
  br label %.loopexit879

527:                                              ; preds = %503
  br i1 %.not.not.not, label %552, label %528

528:                                              ; preds = %527
  %.not854.not943 = icmp sgt i32 %.8784969, 1
  br i1 %.not854.not943, label %.lr.ph948, label %.loopexit879

.lr.ph948:                                        ; preds = %528
  %529 = mul nsw i32 %.8784969, %25
  %530 = sext i32 %529 to i64
  %wide.trip.count = zext nneg i32 %.8784969 to i64
  %invariant.gep1086 = getelementptr %struct.complex, ptr %27, i64 %530
  br label %531

531:                                              ; preds = %.lr.ph948, %531
  %indvars.iv1041 = phi i64 [ 1, %.lr.ph948 ], [ %indvars.iv.next1042, %531 ]
  %532 = phi <2 x float> [ zeroinitializer, %.lr.ph948 ], [ %551, %531 ]
  %gep1087 = getelementptr %struct.complex, ptr %invariant.gep1086, i64 %indvars.iv1041
  %533 = load float, ptr %gep1087, align 4, !tbaa !14
  %534 = getelementptr inbounds i8, ptr %gep1087, i64 4
  %535 = load float, ptr %534, align 4, !tbaa !21
  %536 = fneg float %535
  %537 = fmul float %506, %536
  %538 = call float @llvm.fmuladd.f32(float %533, float %504, float %537)
  %539 = fmul float %504, %535
  %540 = call float @llvm.fmuladd.f32(float %533, float %506, float %539)
  %541 = getelementptr inbounds %struct.complex, ptr %28, i64 %indvars.iv1041
  %542 = fneg float %540
  %543 = load <2 x float>, ptr %541, align 4, !tbaa !9
  %544 = insertelement <2 x float> poison, float %540, i64 0
  %545 = insertelement <2 x float> %544, float %542, i64 1
  %546 = fmul <2 x float> %543, %545
  %547 = shufflevector <2 x float> %546, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %548 = insertelement <2 x float> poison, float %538, i64 0
  %549 = shufflevector <2 x float> %548, <2 x float> poison, <2 x i32> zeroinitializer
  %550 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %549, <2 x float> %543, <2 x float> %547)
  %551 = fadd <2 x float> %532, %550
  %indvars.iv.next1042 = add nuw nsw i64 %indvars.iv1041, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next1042, %wide.trip.count
  br i1 %exitcond.not, label %..loopexit879_crit_edge, label %531, !llvm.loop !23

552:                                              ; preds = %527
  %553 = load i32, ptr %4, align 4, !tbaa !5
  %554 = icmp slt i32 %.8784969, %553
  br i1 %554, label %555, label %.loopexit879

555:                                              ; preds = %552
  %556 = mul nsw i32 %.8784969, %25
  %557 = sext i32 %556 to i64
  %wide.trip.count1047 = sext i32 %553 to i64
  %invariant.gep1088 = getelementptr %struct.complex, ptr %27, i64 %557
  br label %558

558:                                              ; preds = %555, %558
  %indvars.iv1044 = phi i64 [ %448, %555 ], [ %indvars.iv.next1045, %558 ]
  %559 = phi <2 x float> [ zeroinitializer, %555 ], [ %578, %558 ]
  %indvars.iv.next1045 = add nsw i64 %indvars.iv1044, 1
  %gep1089 = getelementptr %struct.complex, ptr %invariant.gep1088, i64 %indvars.iv.next1045
  %560 = load float, ptr %gep1089, align 4, !tbaa !14
  %561 = getelementptr inbounds i8, ptr %gep1089, i64 4
  %562 = load float, ptr %561, align 4, !tbaa !21
  %563 = fneg float %562
  %564 = fmul float %506, %563
  %565 = call float @llvm.fmuladd.f32(float %560, float %504, float %564)
  %566 = fmul float %504, %562
  %567 = call float @llvm.fmuladd.f32(float %560, float %506, float %566)
  %568 = getelementptr %struct.complex, ptr %7, i64 %indvars.iv1044
  %569 = fneg float %567
  %570 = load <2 x float>, ptr %568, align 4, !tbaa !9
  %571 = insertelement <2 x float> poison, float %567, i64 0
  %572 = insertelement <2 x float> %571, float %569, i64 1
  %573 = fmul <2 x float> %570, %572
  %574 = shufflevector <2 x float> %573, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %575 = insertelement <2 x float> poison, float %565, i64 0
  %576 = shufflevector <2 x float> %575, <2 x float> poison, <2 x i32> zeroinitializer
  %577 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %576, <2 x float> %570, <2 x float> %574)
  %578 = fadd <2 x float> %559, %577
  %exitcond1048.not = icmp eq i64 %indvars.iv.next1045, %wide.trip.count1047
  br i1 %exitcond1048.not, label %.loopexit878, label %558, !llvm.loop !24

.loopexit878:                                     ; preds = %558
  store <2 x float> %577, ptr %17, align 8, !tbaa !9
  br label %.loopexit879

..loopexit879_crit_edge:                          ; preds = %531
  store <2 x float> %550, ptr %17, align 8, !tbaa !9
  br label %.loopexit879

.loopexit879:                                     ; preds = %528, %..loopexit879_crit_edge, %.loopexit878, %552, %509, %517, %514
  %579 = phi <2 x float> [ %513, %509 ], [ %526, %517 ], [ zeroinitializer, %514 ], [ zeroinitializer, %552 ], [ %578, %.loopexit878 ], [ %551, %..loopexit879_crit_edge ], [ zeroinitializer, %528 ]
  %580 = load float, ptr %20, align 4, !tbaa !9
  store float %580, ptr %16, align 8, !tbaa !14
  store float 0.000000e+00, ptr %445, align 4, !tbaa !21
  %581 = load float, ptr %21, align 8, !tbaa !14
  %582 = fcmp oeq float %581, %580
  %583 = load float, ptr %443, align 4
  %584 = fcmp oeq float %583, 0.000000e+00
  %or.cond865 = select i1 %582, i1 %584, i1 false
  br i1 %or.cond865, label %585, label %660

585:                                              ; preds = %.loopexit879
  %586 = load <2 x float>, ptr %449, align 4, !tbaa !9
  %587 = fsub <2 x float> %586, %579
  store <2 x float> %587, ptr %16, align 8, !tbaa !9
  store <2 x float> %587, ptr %449, align 4, !tbaa !9
  store i32 %.8784969, ptr %14, align 4, !tbaa !5
  %588 = extractelement <2 x float> %587, i64 0
  %589 = fcmp oge float %588, 0.000000e+00
  %590 = fneg float %588
  %591 = select i1 %589, float %588, float %590
  %592 = call <2 x float> @Cf(ptr noundef nonnull %449)
  %.sroa.016.4.vec.extract = extractelement <2 x float> %592, i64 1
  %593 = fcmp oge float %.sroa.016.4.vec.extract, 0.000000e+00
  %594 = fneg float %.sroa.016.4.vec.extract
  %595 = select i1 %593, float %.sroa.016.4.vec.extract, float %594
  %596 = fadd float %591, %595
  br i1 %.not829, label %607, label %597

597:                                              ; preds = %585
  %598 = mul i32 %.8784969, %444
  store i32 %598, ptr %14, align 4, !tbaa !5
  %599 = load float, ptr %20, align 4, !tbaa !9
  %600 = sext i32 %598 to i64
  %601 = getelementptr inbounds %struct.complex, ptr %27, i64 %600
  %602 = load <2 x float>, ptr %601, align 4, !tbaa !9
  %603 = insertelement <2 x float> poison, float %599, i64 0
  %604 = shufflevector <2 x float> %603, <2 x float> poison, <2 x i32> zeroinitializer
  %605 = fmul <2 x float> %604, %602
  store <2 x float> %605, ptr %16, align 8, !tbaa !9
  store <2 x float> %605, ptr %19, align 8, !tbaa !9
  %606 = extractelement <2 x float> %605, i64 0
  br label %610

607:                                              ; preds = %585
  %608 = load float, ptr %20, align 4, !tbaa !9
  store float %608, ptr %19, align 8, !tbaa !14
  store float 0.000000e+00, ptr %446, align 4, !tbaa !21
  %609 = fcmp oeq float %608, 1.000000e+00
  br i1 %609, label %666, label %610

610:                                              ; preds = %607, %597
  %611 = phi float [ %608, %607 ], [ %606, %597 ]
  store float %611, ptr %15, align 4, !tbaa !9
  %612 = fcmp oge float %611, 0.000000e+00
  %613 = fneg float %611
  %614 = select i1 %612, float %611, float %613
  %615 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %.sroa.015.4.vec.extract = extractelement <2 x float> %615, i64 1
  %616 = fcmp oge float %.sroa.015.4.vec.extract, 0.000000e+00
  %617 = fneg float %.sroa.015.4.vec.extract
  %618 = select i1 %616, float %.sroa.015.4.vec.extract, float %617
  %619 = fadd float %614, %618
  %620 = load float, ptr %23, align 4, !tbaa !9
  %621 = fcmp ogt float %619, %620
  br i1 %621, label %622, label %639

622:                                              ; preds = %610
  %623 = fcmp olt float %619, 1.000000e+00
  br i1 %623, label %624, label %634

624:                                              ; preds = %622
  %625 = load float, ptr %22, align 4, !tbaa !9
  %626 = fmul float %619, %625
  %627 = fcmp ogt float %596, %626
  br i1 %627, label %628, label %634

628:                                              ; preds = %624
  %629 = fdiv float 1.000000e+00, %596
  store float %629, ptr %24, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %630 = load float, ptr %24, align 4, !tbaa !9
  %631 = load float, ptr %8, align 4, !tbaa !9
  %632 = fmul float %630, %631
  store float %632, ptr %8, align 4, !tbaa !9
  %633 = fmul float %.8, %630
  br label %634

634:                                              ; preds = %624, %628, %622
  %.9 = phi float [ %633, %628 ], [ %.8, %624 ], [ %.8, %622 ]
  store i32 %.8784969, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %449, ptr noundef nonnull %19) #8
  %635 = load i32, ptr %14, align 4, !tbaa !5
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds %struct.complex, ptr %28, i64 %636
  %638 = load <2 x float>, ptr %16, align 8, !tbaa !9
  store <2 x float> %638, ptr %637, align 4, !tbaa !9
  br label %666

639:                                              ; preds = %610
  %640 = fcmp ogt float %619, 0.000000e+00
  br i1 %640, label %641, label %656

641:                                              ; preds = %639
  %642 = load float, ptr %22, align 4, !tbaa !9
  %643 = fmul float %619, %642
  %644 = fcmp ogt float %596, %643
  br i1 %644, label %645, label %651

645:                                              ; preds = %641
  %646 = fdiv float %643, %596
  store float %646, ptr %24, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %647 = load float, ptr %24, align 4, !tbaa !9
  %648 = load float, ptr %8, align 4, !tbaa !9
  %649 = fmul float %647, %648
  store float %649, ptr %8, align 4, !tbaa !9
  %650 = fmul float %.8, %647
  br label %651

651:                                              ; preds = %645, %641
  %.10 = phi float [ %650, %645 ], [ %.8, %641 ]
  store i32 %.8784969, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %449, ptr noundef nonnull %19) #8
  %652 = load i32, ptr %14, align 4, !tbaa !5
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct.complex, ptr %28, i64 %653
  %655 = load <2 x float>, ptr %16, align 8, !tbaa !9
  store <2 x float> %655, ptr %654, align 4, !tbaa !9
  br label %666

656:                                              ; preds = %639
  %657 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %657, ptr %14, align 4, !tbaa !5
  %.not856961 = icmp slt i32 %657, 1
  br i1 %.not856961, label %._crit_edge965, label %.lr.ph964.preheader

.lr.ph964.preheader:                              ; preds = %656
  %658 = zext nneg i32 %657 to i64
  %659 = shl nuw nsw i64 %658, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %7, i8 0, i64 %659, i1 false), !tbaa !9
  br label %._crit_edge965

._crit_edge965:                                   ; preds = %.lr.ph964.preheader, %656
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %449, align 4, !tbaa !9
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  br label %666

660:                                              ; preds = %.loopexit879
  store i32 %.8784969, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %17, ptr noundef nonnull %449, ptr noundef nonnull %19) #8
  %661 = load <2 x float>, ptr %17, align 8, !tbaa !9
  %662 = fsub <2 x float> %661, %579
  store <2 x float> %662, ptr %16, align 8, !tbaa !9
  %663 = load i32, ptr %14, align 4, !tbaa !5
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds %struct.complex, ptr %28, i64 %664
  store <2 x float> %662, ptr %665, align 4, !tbaa !9
  br label %666

666:                                              ; preds = %607, %651, %._crit_edge965, %634, %660
  %.11 = phi float [ %.9, %634 ], [ %.10, %651 ], [ 0.000000e+00, %._crit_edge965 ], [ %.8, %607 ], [ %.8, %660 ]
  store i32 %.8784969, ptr %14, align 4, !tbaa !5
  %667 = load float, ptr %449, align 4, !tbaa !14
  store float %667, ptr %15, align 4, !tbaa !9
  %668 = fcmp oge float %667, 0.000000e+00
  %669 = fneg float %667
  %670 = select i1 %668, float %667, float %669
  %671 = call <2 x float> @Cf(ptr noundef nonnull %449)
  %.sroa.014.4.vec.extract = extractelement <2 x float> %671, i64 1
  %672 = fcmp oge float %.sroa.014.4.vec.extract, 0.000000e+00
  %673 = fneg float %.sroa.014.4.vec.extract
  %674 = select i1 %672, float %.sroa.014.4.vec.extract, float %673
  %675 = fadd float %670, %674
  %676 = fcmp oge float %.11, %675
  %677 = select i1 %676, float %.11, float %675
  %678 = add nsw i32 %254, %.8784969
  %679 = load i32, ptr %13, align 4
  %680 = icmp sge i32 %678, %679
  %681 = icmp sle i32 %678, %679
  %.in851 = select i1 %439, i1 %680, i1 %681
  br i1 %.in851, label %447, label %.loopexit877, !llvm.loop !25

682:                                              ; preds = %437
  store i32 %253, ptr %12, align 4, !tbaa !5
  store i32 %254, ptr %13, align 4, !tbaa !5
  br i1 %.in845997, label %.lr.ph1002, label %.loopexit877

.lr.ph1002:                                       ; preds = %682
  %683 = getelementptr inbounds i8, ptr %21, i64 4
  %684 = add i32 %25, 1
  %685 = getelementptr inbounds i8, ptr %16, i64 4
  %686 = getelementptr inbounds i8, ptr %19, i64 4
  %687 = getelementptr inbounds i8, ptr %18, i64 4
  br label %688

688:                                              ; preds = %.lr.ph1002, %931
  %.121000 = phi float [ %.1760, %.lr.ph1002 ], [ %942, %931 ]
  %.9785998 = phi i32 [ %.2792, %.lr.ph1002 ], [ %944, %931 ]
  store i32 %.9785998, ptr %14, align 4, !tbaa !5
  %689 = sext i32 %.9785998 to i64
  %690 = getelementptr inbounds %struct.complex, ptr %28, i64 %689
  %691 = load float, ptr %690, align 4, !tbaa !14
  store float %691, ptr %15, align 4, !tbaa !9
  %692 = fcmp oge float %691, 0.000000e+00
  %693 = fneg float %691
  %694 = select i1 %692, float %691, float %693
  %695 = call <2 x float> @Cf(ptr noundef nonnull %690)
  %.sroa.013.4.vec.extract = extractelement <2 x float> %695, i64 1
  %696 = fcmp oge float %.sroa.013.4.vec.extract, 0.000000e+00
  %697 = fneg float %.sroa.013.4.vec.extract
  %698 = select i1 %696, float %.sroa.013.4.vec.extract, float %697
  %699 = fadd float %694, %698
  %700 = load float, ptr %20, align 4, !tbaa !9
  store float %700, ptr %21, align 8, !tbaa !14
  store float 0.000000e+00, ptr %683, align 4, !tbaa !21
  %701 = fcmp oge float %.121000, 1.000000e+00
  %702 = select i1 %701, float %.121000, float 1.000000e+00
  %703 = fdiv float 1.000000e+00, %702
  store float %703, ptr %24, align 4, !tbaa !9
  %704 = getelementptr inbounds float, ptr %29, i64 %689
  %705 = load float, ptr %704, align 4, !tbaa !9
  %706 = load float, ptr %22, align 4, !tbaa !9
  %707 = fsub float %706, %699
  %708 = fmul float %703, %707
  %709 = fcmp ogt float %705, %708
  br i1 %709, label %710, label %750

710:                                              ; preds = %688
  %711 = fmul float %703, 5.000000e-01
  store float %711, ptr %24, align 4, !tbaa !9
  %712 = insertelement <2 x float> <float poison, float 0.000000e+00>, float %700, i64 0
  br i1 %.not829, label %726, label %713

713:                                              ; preds = %710
  %714 = mul i32 %.9785998, %684
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds %struct.complex, ptr %27, i64 %715
  %717 = call <2 x float> @Cf(ptr noundef %716)
  %.sroa.012.0.vec.extract = extractelement <2 x float> %717, i64 0
  %.sroa.012.4.vec.extract = extractelement <2 x float> %717, i64 1
  %718 = fneg float %.sroa.012.4.vec.extract
  %719 = call ptr @_pCf(ptr noundef nonnull %17)
  %720 = getelementptr inbounds i8, ptr %719, i64 4
  store float %.sroa.012.0.vec.extract, ptr %719, align 4
  store float %718, ptr %720, align 4
  %721 = load float, ptr %20, align 4, !tbaa !9
  %722 = load <2 x float>, ptr %17, align 8, !tbaa !9
  %723 = insertelement <2 x float> poison, float %721, i64 0
  %724 = shufflevector <2 x float> %723, <2 x float> poison, <2 x i32> zeroinitializer
  %725 = fmul <2 x float> %724, %722
  store <2 x float> %725, ptr %16, align 8, !tbaa !9
  br label %726

726:                                              ; preds = %710, %713
  %727 = phi <2 x float> [ %725, %713 ], [ %712, %710 ]
  store <2 x float> %727, ptr %19, align 8, !tbaa !9
  %728 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %729 = shufflevector <2 x float> %727, <2 x float> %728, <2 x i32> <i32 0, i32 3>
  %730 = fcmp oge <2 x float> %729, zeroinitializer
  %731 = fneg <2 x float> %729
  %732 = select <2 x i1> %730, <2 x float> %729, <2 x float> %731
  %shift1162 = shufflevector <2 x float> %732, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %733 = fadd <2 x float> %732, %shift1162
  %734 = extractelement <2 x float> %733, i64 0
  %735 = fcmp ogt float %734, 1.000000e+00
  br i1 %735, label %736, label %742

736:                                              ; preds = %726
  store float 1.000000e+00, ptr %15, align 4, !tbaa !9
  %737 = load float, ptr %24, align 4, !tbaa !9
  %738 = fmul float %734, %737
  %739 = fcmp oge float %738, 1.000000e+00
  %740 = select i1 %739, float 1.000000e+00, float %738
  store float %740, ptr %24, align 4, !tbaa !9
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %21, ptr noundef nonnull %19) #8
  %741 = load <2 x float>, ptr %16, align 8, !tbaa !9
  store <2 x float> %741, ptr %21, align 8, !tbaa !9
  br label %742

742:                                              ; preds = %736, %726
  %743 = load float, ptr %24, align 4, !tbaa !9
  %744 = fcmp olt float %743, 1.000000e+00
  br i1 %744, label %745, label %750

745:                                              ; preds = %742
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %746 = load float, ptr %24, align 4, !tbaa !9
  %747 = load float, ptr %8, align 4, !tbaa !9
  %748 = fmul float %746, %747
  store float %748, ptr %8, align 4, !tbaa !9
  %749 = fmul float %.121000, %746
  br label %750

750:                                              ; preds = %742, %745, %688
  %.13 = phi float [ %749, %745 ], [ %.121000, %742 ], [ %.121000, %688 ]
  %751 = load float, ptr %21, align 8, !tbaa !14
  %752 = fcmp oeq float %751, 1.000000e+00
  %753 = load float, ptr %683, align 4
  %754 = fcmp oeq float %753, 0.000000e+00
  %or.cond5 = select i1 %752, i1 %754, i1 false
  br i1 %or.cond5, label %755, label %774

755:                                              ; preds = %750
  br i1 %.not.not.not, label %761, label %756

756:                                              ; preds = %755
  %757 = add nsw i32 %.9785998, -1
  store i32 %757, ptr %14, align 4, !tbaa !5
  %758 = mul nsw i32 %.9785998, %25
  %759 = sext i32 %758 to i64
  %gep996 = getelementptr %struct.complex, ptr %invariant.gep995, i64 %759
  call void @cdotc_(ptr noundef nonnull %16, ptr noundef nonnull %14, ptr noundef %gep996, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull @c__1)
  %760 = load <2 x float>, ptr %16, align 8, !tbaa !9
  br label %.loopexit

761:                                              ; preds = %755
  %762 = load i32, ptr %4, align 4, !tbaa !5
  %763 = icmp slt i32 %.9785998, %762
  br i1 %763, label %764, label %.loopexit

764:                                              ; preds = %761
  %765 = sub nsw i32 %762, %.9785998
  store i32 %765, ptr %14, align 4, !tbaa !5
  %766 = add nsw i32 %.9785998, 1
  %767 = mul nsw i32 %.9785998, %25
  %768 = add nsw i32 %766, %767
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds %struct.complex, ptr %27, i64 %769
  %771 = sext i32 %766 to i64
  %772 = getelementptr inbounds %struct.complex, ptr %28, i64 %771
  call void @cdotc_(ptr noundef nonnull %16, ptr noundef nonnull %14, ptr noundef %770, ptr noundef nonnull @c__1, ptr noundef nonnull %772, ptr noundef nonnull @c__1)
  %773 = load <2 x float>, ptr %16, align 8, !tbaa !9
  br label %.loopexit

774:                                              ; preds = %750
  br i1 %.not.not.not, label %807, label %775

775:                                              ; preds = %774
  %776 = add nsw i32 %.9785998, -1
  store i32 %776, ptr %14, align 4, !tbaa !5
  %.not848974 = icmp slt i32 %.9785998, 2
  br i1 %.not848974, label %.loopexit, label %.lr.ph979

.lr.ph979:                                        ; preds = %775
  %777 = mul nsw i32 %.9785998, %25
  %778 = sext i32 %777 to i64
  %invariant.gep1090 = getelementptr %struct.complex, ptr %27, i64 %778
  br label %779

779:                                              ; preds = %.lr.ph979, %779
  %indvars.iv1052 = phi i64 [ 1, %.lr.ph979 ], [ %indvars.iv.next1053, %779 ]
  %780 = phi <2 x float> [ zeroinitializer, %.lr.ph979 ], [ %804, %779 ]
  %gep1091 = getelementptr %struct.complex, ptr %invariant.gep1090, i64 %indvars.iv1052
  %781 = call <2 x float> @Cf(ptr noundef %gep1091)
  %.sroa.010.0.vec.extract = extractelement <2 x float> %781, i64 0
  %.sroa.010.4.vec.extract = extractelement <2 x float> %781, i64 1
  %782 = fneg float %.sroa.010.4.vec.extract
  %783 = call ptr @_pCf(ptr noundef nonnull %18)
  %784 = getelementptr inbounds i8, ptr %783, i64 4
  store float %.sroa.010.0.vec.extract, ptr %783, align 4
  store float %782, ptr %784, align 4
  %785 = load float, ptr %18, align 4, !tbaa !14
  %786 = load float, ptr %21, align 8, !tbaa !14
  %787 = load float, ptr %687, align 4, !tbaa !21
  %788 = load float, ptr %683, align 4, !tbaa !21
  %789 = fneg float %787
  %790 = fmul float %788, %789
  %791 = call float @llvm.fmuladd.f32(float %785, float %786, float %790)
  %792 = fmul float %786, %787
  %793 = call float @llvm.fmuladd.f32(float %785, float %788, float %792)
  %794 = getelementptr inbounds %struct.complex, ptr %28, i64 %indvars.iv1052
  %795 = fneg float %793
  %796 = load <2 x float>, ptr %794, align 4, !tbaa !9
  %797 = insertelement <2 x float> poison, float %793, i64 0
  %798 = insertelement <2 x float> %797, float %795, i64 1
  %799 = fmul <2 x float> %796, %798
  %800 = shufflevector <2 x float> %799, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %801 = insertelement <2 x float> poison, float %791, i64 0
  %802 = shufflevector <2 x float> %801, <2 x float> poison, <2 x i32> zeroinitializer
  %803 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %802, <2 x float> %796, <2 x float> %800)
  store <2 x float> %803, ptr %17, align 8, !tbaa !9
  %804 = fadd <2 x float> %780, %803
  store <2 x float> %804, ptr %16, align 8, !tbaa !9
  %indvars.iv.next1053 = add nuw nsw i64 %indvars.iv1052, 1
  %805 = load i32, ptr %14, align 4, !tbaa !5
  %806 = sext i32 %805 to i64
  %.not848.not = icmp slt i64 %indvars.iv1052, %806
  br i1 %.not848.not, label %779, label %.loopexit, !llvm.loop !26

807:                                              ; preds = %774
  %808 = load i32, ptr %4, align 4, !tbaa !5
  %809 = icmp slt i32 %.9785998, %808
  br i1 %809, label %.lr.ph987, label %.loopexit

.lr.ph987:                                        ; preds = %807
  store i32 %808, ptr %14, align 4, !tbaa !5
  %810 = mul nsw i32 %.9785998, %25
  %811 = sext i32 %810 to i64
  %invariant.gep1092 = getelementptr %struct.complex, ptr %27, i64 %811
  br label %812

812:                                              ; preds = %.lr.ph987, %812
  %indvars.iv1055 = phi i64 [ %689, %.lr.ph987 ], [ %indvars.iv.next1056, %812 ]
  %813 = phi <2 x float> [ zeroinitializer, %.lr.ph987 ], [ %837, %812 ]
  %indvars.iv.next1056 = add nsw i64 %indvars.iv1055, 1
  %gep1093 = getelementptr %struct.complex, ptr %invariant.gep1092, i64 %indvars.iv.next1056
  %814 = call <2 x float> @Cf(ptr noundef %gep1093)
  %.sroa.09.0.vec.extract = extractelement <2 x float> %814, i64 0
  %.sroa.09.4.vec.extract = extractelement <2 x float> %814, i64 1
  %815 = fneg float %.sroa.09.4.vec.extract
  %816 = call ptr @_pCf(ptr noundef nonnull %18)
  %817 = getelementptr inbounds i8, ptr %816, i64 4
  store float %.sroa.09.0.vec.extract, ptr %816, align 4
  store float %815, ptr %817, align 4
  %818 = load float, ptr %18, align 4, !tbaa !14
  %819 = load float, ptr %21, align 8, !tbaa !14
  %820 = load float, ptr %687, align 4, !tbaa !21
  %821 = load float, ptr %683, align 4, !tbaa !21
  %822 = fneg float %820
  %823 = fmul float %821, %822
  %824 = call float @llvm.fmuladd.f32(float %818, float %819, float %823)
  %825 = fmul float %819, %820
  %826 = call float @llvm.fmuladd.f32(float %818, float %821, float %825)
  %827 = getelementptr %struct.complex, ptr %7, i64 %indvars.iv1055
  %828 = fneg float %826
  %829 = load <2 x float>, ptr %827, align 4, !tbaa !9
  %830 = insertelement <2 x float> poison, float %826, i64 0
  %831 = insertelement <2 x float> %830, float %828, i64 1
  %832 = fmul <2 x float> %829, %831
  %833 = shufflevector <2 x float> %832, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %834 = insertelement <2 x float> poison, float %824, i64 0
  %835 = shufflevector <2 x float> %834, <2 x float> poison, <2 x i32> zeroinitializer
  %836 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %835, <2 x float> %829, <2 x float> %833)
  store <2 x float> %836, ptr %17, align 8, !tbaa !9
  %837 = fadd <2 x float> %813, %836
  store <2 x float> %837, ptr %16, align 8, !tbaa !9
  %838 = load i32, ptr %14, align 4, !tbaa !5
  %839 = sext i32 %838 to i64
  %.not847.not = icmp slt i64 %indvars.iv.next1056, %839
  br i1 %.not847.not, label %812, label %.loopexit, !llvm.loop !27

.loopexit:                                        ; preds = %779, %812, %775, %807, %756, %764, %761
  %840 = phi <2 x float> [ %760, %756 ], [ %773, %764 ], [ zeroinitializer, %761 ], [ zeroinitializer, %807 ], [ zeroinitializer, %775 ], [ %837, %812 ], [ %804, %779 ]
  %841 = load float, ptr %20, align 4, !tbaa !9
  store float %841, ptr %16, align 8, !tbaa !14
  store float 0.000000e+00, ptr %685, align 4, !tbaa !21
  %842 = load float, ptr %21, align 8, !tbaa !14
  %843 = fcmp oeq float %842, %841
  %844 = load float, ptr %683, align 4
  %845 = fcmp oeq float %844, 0.000000e+00
  %or.cond867 = select i1 %843, i1 %845, i1 false
  br i1 %or.cond867, label %846, label %925

846:                                              ; preds = %.loopexit
  %847 = load <2 x float>, ptr %690, align 4, !tbaa !9
  %848 = fsub <2 x float> %847, %840
  store <2 x float> %848, ptr %16, align 8, !tbaa !9
  store <2 x float> %848, ptr %690, align 4, !tbaa !9
  store i32 %.9785998, ptr %14, align 4, !tbaa !5
  %849 = extractelement <2 x float> %848, i64 0
  %850 = fcmp oge float %849, 0.000000e+00
  %851 = fneg float %849
  %852 = select i1 %850, float %849, float %851
  %853 = call <2 x float> @Cf(ptr noundef nonnull %690)
  %.sroa.08.4.vec.extract = extractelement <2 x float> %853, i64 1
  %854 = fcmp oge float %.sroa.08.4.vec.extract, 0.000000e+00
  %855 = fneg float %.sroa.08.4.vec.extract
  %856 = select i1 %854, float %.sroa.08.4.vec.extract, float %855
  %857 = fadd float %852, %856
  br i1 %.not829, label %872, label %858

858:                                              ; preds = %846
  %859 = mul i32 %.9785998, %684
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds %struct.complex, ptr %27, i64 %860
  %862 = call <2 x float> @Cf(ptr noundef %861)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %862, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %862, i64 1
  %863 = fneg float %.sroa.07.4.vec.extract
  %864 = call ptr @_pCf(ptr noundef nonnull %17)
  %865 = getelementptr inbounds i8, ptr %864, i64 4
  store float %.sroa.07.0.vec.extract, ptr %864, align 4
  store float %863, ptr %865, align 4
  %866 = load float, ptr %20, align 4, !tbaa !9
  %867 = load <2 x float>, ptr %17, align 8, !tbaa !9
  %868 = insertelement <2 x float> poison, float %866, i64 0
  %869 = shufflevector <2 x float> %868, <2 x float> poison, <2 x i32> zeroinitializer
  %870 = fmul <2 x float> %869, %867
  store <2 x float> %870, ptr %16, align 8, !tbaa !9
  store <2 x float> %870, ptr %19, align 8, !tbaa !9
  %871 = extractelement <2 x float> %870, i64 0
  br label %875

872:                                              ; preds = %846
  %873 = load float, ptr %20, align 4, !tbaa !9
  store float %873, ptr %19, align 8, !tbaa !14
  store float 0.000000e+00, ptr %686, align 4, !tbaa !21
  %874 = fcmp oeq float %873, 1.000000e+00
  br i1 %874, label %931, label %875

875:                                              ; preds = %872, %858
  %876 = phi float [ %873, %872 ], [ %871, %858 ]
  store float %876, ptr %15, align 4, !tbaa !9
  %877 = fcmp oge float %876, 0.000000e+00
  %878 = fneg float %876
  %879 = select i1 %877, float %876, float %878
  %880 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %.sroa.06.4.vec.extract = extractelement <2 x float> %880, i64 1
  %881 = fcmp oge float %.sroa.06.4.vec.extract, 0.000000e+00
  %882 = fneg float %.sroa.06.4.vec.extract
  %883 = select i1 %881, float %.sroa.06.4.vec.extract, float %882
  %884 = fadd float %879, %883
  %885 = load float, ptr %23, align 4, !tbaa !9
  %886 = fcmp ogt float %884, %885
  br i1 %886, label %887, label %904

887:                                              ; preds = %875
  %888 = fcmp olt float %884, 1.000000e+00
  br i1 %888, label %889, label %899

889:                                              ; preds = %887
  %890 = load float, ptr %22, align 4, !tbaa !9
  %891 = fmul float %884, %890
  %892 = fcmp ogt float %857, %891
  br i1 %892, label %893, label %899

893:                                              ; preds = %889
  %894 = fdiv float 1.000000e+00, %857
  store float %894, ptr %24, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %895 = load float, ptr %24, align 4, !tbaa !9
  %896 = load float, ptr %8, align 4, !tbaa !9
  %897 = fmul float %895, %896
  store float %897, ptr %8, align 4, !tbaa !9
  %898 = fmul float %.13, %895
  br label %899

899:                                              ; preds = %889, %893, %887
  %.14 = phi float [ %898, %893 ], [ %.13, %889 ], [ %.13, %887 ]
  store i32 %.9785998, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %690, ptr noundef nonnull %19) #8
  %900 = load i32, ptr %14, align 4, !tbaa !5
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds %struct.complex, ptr %28, i64 %901
  %903 = load <2 x float>, ptr %16, align 8, !tbaa !9
  store <2 x float> %903, ptr %902, align 4, !tbaa !9
  br label %931

904:                                              ; preds = %875
  %905 = fcmp ogt float %884, 0.000000e+00
  br i1 %905, label %906, label %921

906:                                              ; preds = %904
  %907 = load float, ptr %22, align 4, !tbaa !9
  %908 = fmul float %884, %907
  %909 = fcmp ogt float %857, %908
  br i1 %909, label %910, label %916

910:                                              ; preds = %906
  %911 = fdiv float %908, %857
  store float %911, ptr %24, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #8
  %912 = load float, ptr %24, align 4, !tbaa !9
  %913 = load float, ptr %8, align 4, !tbaa !9
  %914 = fmul float %912, %913
  store float %914, ptr %8, align 4, !tbaa !9
  %915 = fmul float %.13, %912
  br label %916

916:                                              ; preds = %910, %906
  %.15 = phi float [ %915, %910 ], [ %.13, %906 ]
  store i32 %.9785998, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %690, ptr noundef nonnull %19) #8
  %917 = load i32, ptr %14, align 4, !tbaa !5
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds %struct.complex, ptr %28, i64 %918
  %920 = load <2 x float>, ptr %16, align 8, !tbaa !9
  store <2 x float> %920, ptr %919, align 4, !tbaa !9
  br label %931

921:                                              ; preds = %904
  %922 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %922, ptr %14, align 4, !tbaa !5
  %.not850990 = icmp slt i32 %922, 1
  br i1 %.not850990, label %._crit_edge994, label %.lr.ph993.preheader

.lr.ph993.preheader:                              ; preds = %921
  %923 = zext nneg i32 %922 to i64
  %924 = shl nuw nsw i64 %923, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %7, i8 0, i64 %924, i1 false), !tbaa !9
  br label %._crit_edge994

._crit_edge994:                                   ; preds = %.lr.ph993.preheader, %921
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %690, align 4, !tbaa !9
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  br label %931

925:                                              ; preds = %.loopexit
  store i32 %.9785998, ptr %14, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %17, ptr noundef nonnull %690, ptr noundef nonnull %19) #8
  %926 = load <2 x float>, ptr %17, align 8, !tbaa !9
  %927 = fsub <2 x float> %926, %840
  store <2 x float> %927, ptr %16, align 8, !tbaa !9
  %928 = load i32, ptr %14, align 4, !tbaa !5
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds %struct.complex, ptr %28, i64 %929
  store <2 x float> %927, ptr %930, align 4, !tbaa !9
  br label %931

931:                                              ; preds = %872, %916, %._crit_edge994, %899, %925
  %.16 = phi float [ %.14, %899 ], [ %.15, %916 ], [ 0.000000e+00, %._crit_edge994 ], [ %.13, %872 ], [ %.13, %925 ]
  store i32 %.9785998, ptr %14, align 4, !tbaa !5
  %932 = load float, ptr %690, align 4, !tbaa !14
  store float %932, ptr %15, align 4, !tbaa !9
  %933 = fcmp oge float %932, 0.000000e+00
  %934 = fneg float %932
  %935 = select i1 %933, float %932, float %934
  %936 = call <2 x float> @Cf(ptr noundef nonnull %690)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %936, i64 1
  %937 = fcmp oge float %.sroa.0.4.vec.extract, 0.000000e+00
  %938 = fneg float %.sroa.0.4.vec.extract
  %939 = select i1 %937, float %.sroa.0.4.vec.extract, float %938
  %940 = fadd float %935, %939
  %941 = fcmp oge float %.16, %940
  %942 = select i1 %941, float %.16, float %940
  %943 = load i32, ptr %13, align 4, !tbaa !5
  %944 = add nsw i32 %943, %.9785998
  %945 = icmp slt i32 %943, 0
  %946 = icmp sge i32 %944, %253
  %947 = icmp sle i32 %944, %253
  %.in845 = select i1 %945, i1 %946, i1 %947
  br i1 %.in845, label %688, label %.loopexit877, !llvm.loop !28

.loopexit877:                                     ; preds = %431, %666, %931, %270, %442, %682
  %948 = load float, ptr %20, align 4, !tbaa !9
  %949 = load float, ptr %8, align 4, !tbaa !9
  %950 = fdiv float %949, %948
  store float %950, ptr %8, align 4, !tbaa !9
  br label %951

951:                                              ; preds = %.loopexit877, %259
  %952 = phi float [ %948, %.loopexit877 ], [ %.pr875, %259 ]
  %953 = fcmp une float %952, 1.000000e+00
  br i1 %953, label %954, label %956

954:                                              ; preds = %951
  %955 = fdiv float 1.000000e+00, %952
  store float %955, ptr %15, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull @c__1) #8
  br label %956

956:                                              ; preds = %951, %954, %57, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  ret void
}

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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.umax.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

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

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


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