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

; 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 @clatps_(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) #0 {
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca %struct.complex, align 4
  %31 = alloca %struct.complex, align 4
  %32 = alloca %struct.complex, align 4
  %33 = alloca %struct.complex, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca float, align 4
  %37 = alloca i32, align 4
  %38 = alloca float, align 4
  %39 = alloca %struct.complex, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca float, align 4
  %45 = alloca %struct.complex, align 4
  %46 = alloca i32, align 4
  %47 = alloca %struct.complex, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca float, align 4
  %51 = alloca float, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca float, align 4
  %55 = alloca i32, align 4
  %56 = alloca float, align 4
  %57 = alloca float, align 4
  %58 = alloca i32, align 4
  %59 = alloca { float, float }, align 4
  %60 = alloca { float, float }, 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
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store ptr %2, ptr %13, align 8, !tbaa !5
  store ptr %3, ptr %14, align 8, !tbaa !5
  store ptr %4, ptr %15, align 8, !tbaa !5
  store ptr %5, ptr %16, align 8, !tbaa !5
  store ptr %6, ptr %17, align 8, !tbaa !5
  store ptr %7, ptr %18, align 8, !tbaa !5
  store ptr %8, ptr %19, align 8, !tbaa !5
  store ptr %9, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  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 8, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.start.p0(i64 8, 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 4, 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 8, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 4, 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
  %82 = load ptr, ptr %19, align 8, !tbaa !5
  %83 = getelementptr inbounds float, ptr %82, i32 -1
  store ptr %83, ptr %19, align 8, !tbaa !5
  %84 = load ptr, ptr %17, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.complex, ptr %84, i32 -1
  store ptr %85, ptr %17, align 8, !tbaa !5
  %86 = load ptr, ptr %16, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.complex, ptr %86, i32 -1
  store ptr %87, ptr %16, align 8, !tbaa !5
  %88 = load ptr, ptr %20, align 8, !tbaa !5
  store i32 0, ptr %88, align 4, !tbaa !9
  %89 = load ptr, ptr %11, align 8, !tbaa !5
  %90 = call i32 @lsame_(ptr noundef %89, ptr noundef @.str)
  store i32 %90, ptr %48, align 4, !tbaa !9
  %91 = load ptr, ptr %12, align 8, !tbaa !5
  %92 = call i32 @lsame_(ptr noundef %91, ptr noundef @.str.1)
  store i32 %92, ptr %52, align 4, !tbaa !9
  %93 = load ptr, ptr %13, align 8, !tbaa !5
  %94 = call i32 @lsame_(ptr noundef %93, ptr noundef @.str.1)
  store i32 %94, ptr %55, align 4, !tbaa !9
  %95 = load i32, ptr %48, align 4, !tbaa !9
  %96 = icmp ne i32 %95, 0
  br i1 %96, label %103, label %97

97:                                               ; preds = %10
  %98 = load ptr, ptr %11, align 8, !tbaa !5
  %99 = call i32 @lsame_(ptr noundef %98, ptr noundef @.str.2)
  %100 = icmp ne i32 %99, 0
  br i1 %100, label %103, label %101

101:                                              ; preds = %97
  %102 = load ptr, ptr %20, align 8, !tbaa !5
  store i32 -1, ptr %102, align 4, !tbaa !9
  br label %145

103:                                              ; preds = %97, %10
  %104 = load i32, ptr %52, align 4, !tbaa !9
  %105 = icmp ne i32 %104, 0
  br i1 %105, label %116, label %106

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

110:                                              ; preds = %106
  %111 = load ptr, ptr %12, align 8, !tbaa !5
  %112 = call i32 @lsame_(ptr noundef %111, ptr noundef @.str.4)
  %113 = icmp ne i32 %112, 0
  br i1 %113, label %116, label %114

114:                                              ; preds = %110
  %115 = load ptr, ptr %20, align 8, !tbaa !5
  store i32 -2, ptr %115, align 4, !tbaa !9
  br label %144

116:                                              ; preds = %110, %106, %103
  %117 = load i32, ptr %55, align 4, !tbaa !9
  %118 = icmp ne i32 %117, 0
  br i1 %118, label %125, label %119

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

123:                                              ; preds = %119
  %124 = load ptr, ptr %20, align 8, !tbaa !5
  store i32 -3, ptr %124, align 4, !tbaa !9
  br label %143

125:                                              ; preds = %119, %116
  %126 = load ptr, ptr %14, align 8, !tbaa !5
  %127 = call i32 @lsame_(ptr noundef %126, ptr noundef @.str.5)
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %135, label %129

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

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

135:                                              ; preds = %129, %125
  %136 = load ptr, ptr %15, align 8, !tbaa !5
  %137 = load i32, ptr %136, align 4, !tbaa !9
  %138 = icmp slt i32 %137, 0
  br i1 %138, label %139, label %141

139:                                              ; preds = %135
  %140 = load ptr, ptr %20, align 8, !tbaa !5
  store i32 -5, ptr %140, align 4, !tbaa !9
  br label %141

141:                                              ; preds = %139, %135
  br label %142

142:                                              ; preds = %141, %133
  br label %143

143:                                              ; preds = %142, %123
  br label %144

144:                                              ; preds = %143, %114
  br label %145

145:                                              ; preds = %144, %101
  %146 = load ptr, ptr %20, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = icmp ne i32 %147, 0
  br i1 %148, label %149, label %154

149:                                              ; preds = %145
  %150 = load ptr, ptr %20, align 8, !tbaa !5
  %151 = load i32, ptr %150, align 4, !tbaa !9
  %152 = sub nsw i32 0, %151
  store i32 %152, ptr %21, align 4, !tbaa !9
  %153 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %21, i32 noundef 6)
  store i32 1, ptr %58, align 4
  br label %3102

154:                                              ; preds = %145
  %155 = load ptr, ptr %15, align 8, !tbaa !5
  %156 = load i32, ptr %155, align 4, !tbaa !9
  %157 = icmp eq i32 %156, 0
  br i1 %157, label %158, label %159

158:                                              ; preds = %154
  store i32 1, ptr %58, align 4
  br label %3102

159:                                              ; preds = %154
  %160 = call float @slamch_(ptr noundef @.str.7)
  store float %160, ptr %54, align 4, !tbaa !11
  %161 = load float, ptr %54, align 4, !tbaa !11
  %162 = fdiv float 1.000000e+00, %161
  store float %162, ptr %51, align 4, !tbaa !11
  call void @slabad_(ptr noundef %54, ptr noundef %51)
  %163 = call float @slamch_(ptr noundef @.str.8)
  %164 = load float, ptr %54, align 4, !tbaa !11
  %165 = fdiv float %164, %163
  store float %165, ptr %54, align 4, !tbaa !11
  %166 = load float, ptr %54, align 4, !tbaa !11
  %167 = fdiv float 1.000000e+00, %166
  store float %167, ptr %51, align 4, !tbaa !11
  %168 = load ptr, ptr %18, align 8, !tbaa !5
  store float 1.000000e+00, ptr %168, align 4, !tbaa !11
  %169 = load ptr, ptr %14, align 8, !tbaa !5
  %170 = call i32 @lsame_(ptr noundef %169, ptr noundef @.str.1)
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %172, label %241

172:                                              ; preds = %159
  %173 = load i32, ptr %48, align 4, !tbaa !9
  %174 = icmp ne i32 %173, 0
  br i1 %174, label %175, label %201

175:                                              ; preds = %172
  store i32 1, ptr %49, align 4, !tbaa !9
  %176 = load ptr, ptr %15, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  store i32 %177, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %43, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %197, %175
  %179 = load i32, ptr %43, align 4, !tbaa !9
  %180 = load i32, ptr %21, align 4, !tbaa !9
  %181 = icmp sle i32 %179, %180
  br i1 %181, label %182, label %200

182:                                              ; preds = %178
  %183 = load i32, ptr %43, align 4, !tbaa !9
  %184 = sub nsw i32 %183, 1
  store i32 %184, ptr %22, align 4, !tbaa !9
  %185 = load ptr, ptr %16, align 8, !tbaa !5
  %186 = load i32, ptr %49, align 4, !tbaa !9
  %187 = sext i32 %186 to i64
  %188 = getelementptr inbounds %struct.complex, ptr %185, i64 %187
  %189 = call float @scasum_(ptr noundef %22, ptr noundef %188, ptr noundef @c__1)
  %190 = load ptr, ptr %19, align 8, !tbaa !5
  %191 = load i32, ptr %43, align 4, !tbaa !9
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds float, ptr %190, i64 %192
  store float %189, ptr %193, align 4, !tbaa !11
  %194 = load i32, ptr %43, align 4, !tbaa !9
  %195 = load i32, ptr %49, align 4, !tbaa !9
  %196 = add nsw i32 %195, %194
  store i32 %196, ptr %49, align 4, !tbaa !9
  br label %197

197:                                              ; preds = %182
  %198 = load i32, ptr %43, align 4, !tbaa !9
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr %43, align 4, !tbaa !9
  br label %178, !llvm.loop !13

200:                                              ; preds = %178
  br label %240

201:                                              ; preds = %172
  store i32 1, ptr %49, align 4, !tbaa !9
  %202 = load ptr, ptr %15, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = sub nsw i32 %203, 1
  store i32 %204, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %43, align 4, !tbaa !9
  br label %205

205:                                              ; preds = %231, %201
  %206 = load i32, ptr %43, align 4, !tbaa !9
  %207 = load i32, ptr %21, align 4, !tbaa !9
  %208 = icmp sle i32 %206, %207
  br i1 %208, label %209, label %234

209:                                              ; preds = %205
  %210 = load ptr, ptr %15, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = load i32, ptr %43, align 4, !tbaa !9
  %213 = sub nsw i32 %211, %212
  store i32 %213, ptr %22, align 4, !tbaa !9
  %214 = load ptr, ptr %16, align 8, !tbaa !5
  %215 = load i32, ptr %49, align 4, !tbaa !9
  %216 = add nsw i32 %215, 1
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds %struct.complex, ptr %214, i64 %217
  %219 = call float @scasum_(ptr noundef %22, ptr noundef %218, ptr noundef @c__1)
  %220 = load ptr, ptr %19, align 8, !tbaa !5
  %221 = load i32, ptr %43, align 4, !tbaa !9
  %222 = sext i32 %221 to i64
  %223 = getelementptr inbounds float, ptr %220, i64 %222
  store float %219, ptr %223, align 4, !tbaa !11
  %224 = load i32, ptr %49, align 4, !tbaa !9
  %225 = load ptr, ptr %15, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = add nsw i32 %224, %226
  %228 = load i32, ptr %43, align 4, !tbaa !9
  %229 = sub nsw i32 %227, %228
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr %49, align 4, !tbaa !9
  br label %231

231:                                              ; preds = %209
  %232 = load i32, ptr %43, align 4, !tbaa !9
  %233 = add nsw i32 %232, 1
  store i32 %233, ptr %43, align 4, !tbaa !9
  br label %205, !llvm.loop !15

234:                                              ; preds = %205
  %235 = load ptr, ptr %19, align 8, !tbaa !5
  %236 = load ptr, ptr %15, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds float, ptr %235, i64 %238
  store float 0.000000e+00, ptr %239, align 4, !tbaa !11
  br label %240

240:                                              ; preds = %234, %200
  br label %241

241:                                              ; preds = %240, %159
  %242 = load ptr, ptr %15, align 8, !tbaa !5
  %243 = load ptr, ptr %19, align 8, !tbaa !5
  %244 = getelementptr inbounds float, ptr %243, i64 1
  %245 = call i32 @isamax_(ptr noundef %242, ptr noundef %244, ptr noundef @c__1)
  store i32 %245, ptr %37, align 4, !tbaa !9
  %246 = load ptr, ptr %19, align 8, !tbaa !5
  %247 = load i32, ptr %37, align 4, !tbaa !9
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds float, ptr %246, i64 %248
  %250 = load float, ptr %249, align 4, !tbaa !11
  store float %250, ptr %38, align 4, !tbaa !11
  %251 = load float, ptr %38, align 4, !tbaa !11
  %252 = load float, ptr %51, align 4, !tbaa !11
  %253 = fmul float %252, 5.000000e-01
  %254 = fcmp ole float %251, %253
  br i1 %254, label %255, label %256

255:                                              ; preds = %241
  store float 1.000000e+00, ptr %44, align 4, !tbaa !11
  br label %264

256:                                              ; preds = %241
  %257 = load float, ptr %54, align 4, !tbaa !11
  %258 = load float, ptr %38, align 4, !tbaa !11
  %259 = fmul float %257, %258
  %260 = fdiv float 5.000000e-01, %259
  store float %260, ptr %44, align 4, !tbaa !11
  %261 = load ptr, ptr %15, align 8, !tbaa !5
  %262 = load ptr, ptr %19, align 8, !tbaa !5
  %263 = getelementptr inbounds float, ptr %262, i64 1
  call void @sscal_(ptr noundef %261, ptr noundef %44, ptr noundef %263, ptr noundef @c__1)
  br label %264

264:                                              ; preds = %256, %255
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  %265 = load ptr, ptr %15, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  store i32 %266, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %43, align 4, !tbaa !9
  br label %267

267:                                              ; preds = %319, %264
  %268 = load i32, ptr %43, align 4, !tbaa !9
  %269 = load i32, ptr %21, align 4, !tbaa !9
  %270 = icmp sle i32 %268, %269
  br i1 %270, label %271, label %322

271:                                              ; preds = %267
  %272 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %272, ptr %22, align 4, !tbaa !9
  %273 = load float, ptr %40, align 4, !tbaa !11
  store float %273, ptr %28, align 4, !tbaa !11
  %274 = load ptr, ptr %17, align 8, !tbaa !5
  %275 = load i32, ptr %22, align 4, !tbaa !9
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds %struct.complex, ptr %274, i64 %276
  %278 = getelementptr inbounds %struct.complex, ptr %277, i32 0, i32 0
  %279 = load float, ptr %278, align 4, !tbaa !16
  %280 = fdiv float %279, 2.000000e+00
  store float %280, ptr %26, align 4, !tbaa !11
  %281 = load float, ptr %26, align 4, !tbaa !11
  %282 = fcmp oge float %281, 0.000000e+00
  br i1 %282, label %283, label %285

283:                                              ; preds = %271
  %284 = load float, ptr %26, align 4, !tbaa !11
  br label %288

285:                                              ; preds = %271
  %286 = load float, ptr %26, align 4, !tbaa !11
  %287 = fneg float %286
  br label %288

288:                                              ; preds = %285, %283
  %289 = phi float [ %284, %283 ], [ %287, %285 ]
  %290 = load ptr, ptr %17, align 8, !tbaa !5
  %291 = load i32, ptr %43, align 4, !tbaa !9
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds %struct.complex, ptr %290, i64 %292
  %294 = call <2 x float> @Cf(ptr noundef %293)
  store <2 x float> %294, ptr %59, align 4
  %295 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 0
  %296 = load float, ptr %295, align 4
  %297 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 1
  %298 = load float, ptr %297, align 4
  %299 = fdiv float %298, 2.000000e+00
  store float %299, ptr %27, align 4, !tbaa !11
  %300 = load float, ptr %27, align 4, !tbaa !11
  %301 = fcmp oge float %300, 0.000000e+00
  br i1 %301, label %302, label %304

302:                                              ; preds = %288
  %303 = load float, ptr %27, align 4, !tbaa !11
  br label %307

304:                                              ; preds = %288
  %305 = load float, ptr %27, align 4, !tbaa !11
  %306 = fneg float %305
  br label %307

307:                                              ; preds = %304, %302
  %308 = phi float [ %303, %302 ], [ %306, %304 ]
  %309 = fadd float %289, %308
  store float %309, ptr %29, align 4, !tbaa !11
  %310 = load float, ptr %28, align 4, !tbaa !11
  %311 = load float, ptr %29, align 4, !tbaa !11
  %312 = fcmp oge float %310, %311
  br i1 %312, label %313, label %315

313:                                              ; preds = %307
  %314 = load float, ptr %28, align 4, !tbaa !11
  br label %317

315:                                              ; preds = %307
  %316 = load float, ptr %29, align 4, !tbaa !11
  br label %317

317:                                              ; preds = %315, %313
  %318 = phi float [ %314, %313 ], [ %316, %315 ]
  store float %318, ptr %40, align 4, !tbaa !11
  br label %319

319:                                              ; preds = %317
  %320 = load i32, ptr %43, align 4, !tbaa !9
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr %43, align 4, !tbaa !9
  br label %267, !llvm.loop !18

322:                                              ; preds = %267
  %323 = load float, ptr %40, align 4, !tbaa !11
  store float %323, ptr %36, align 4, !tbaa !11
  %324 = load i32, ptr %52, align 4, !tbaa !9
  %325 = icmp ne i32 %324, 0
  br i1 %325, label %326, label %549

326:                                              ; preds = %322
  %327 = load i32, ptr %48, align 4, !tbaa !9
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %332

329:                                              ; preds = %326
  %330 = load ptr, ptr %15, align 8, !tbaa !5
  %331 = load i32, ptr %330, align 4, !tbaa !9
  store i32 %331, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %46, align 4, !tbaa !9
  store i32 -1, ptr %34, align 4, !tbaa !9
  br label %335

332:                                              ; preds = %326
  store i32 1, ptr %53, align 4, !tbaa !9
  %333 = load ptr, ptr %15, align 8, !tbaa !5
  %334 = load i32, ptr %333, align 4, !tbaa !9
  store i32 %334, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %335

335:                                              ; preds = %332, %329
  %336 = load float, ptr %44, align 4, !tbaa !11
  %337 = fcmp une float %336, 1.000000e+00
  br i1 %337, label %338, label %339

338:                                              ; preds = %335
  store float 0.000000e+00, ptr %41, align 4, !tbaa !11
  br label %548

339:                                              ; preds = %335
  %340 = load i32, ptr %55, align 4, !tbaa !9
  %341 = icmp ne i32 %340, 0
  br i1 %341, label %342, label %488

342:                                              ; preds = %339
  %343 = load float, ptr %36, align 4, !tbaa !11
  %344 = load float, ptr %54, align 4, !tbaa !11
  %345 = fcmp oge float %343, %344
  br i1 %345, label %346, label %348

346:                                              ; preds = %342
  %347 = load float, ptr %36, align 4, !tbaa !11
  br label %350

348:                                              ; preds = %342
  %349 = load float, ptr %54, align 4, !tbaa !11
  br label %350

350:                                              ; preds = %348, %346
  %351 = phi float [ %347, %346 ], [ %349, %348 ]
  %352 = fdiv float 5.000000e-01, %351
  store float %352, ptr %41, align 4, !tbaa !11
  %353 = load float, ptr %41, align 4, !tbaa !11
  store float %353, ptr %36, align 4, !tbaa !11
  %354 = load i32, ptr %53, align 4, !tbaa !9
  %355 = load i32, ptr %53, align 4, !tbaa !9
  %356 = add nsw i32 %355, 1
  %357 = mul nsw i32 %354, %356
  %358 = sdiv i32 %357, 2
  store i32 %358, ptr %49, align 4, !tbaa !9
  %359 = load ptr, ptr %15, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  store i32 %360, ptr %35, align 4, !tbaa !9
  %361 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %361, ptr %21, align 4, !tbaa !9
  %362 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %362, ptr %22, align 4, !tbaa !9
  %363 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %363, ptr %43, align 4, !tbaa !9
  br label %364

364:                                              ; preds = %482, %350
  %365 = load i32, ptr %22, align 4, !tbaa !9
  %366 = icmp slt i32 %365, 0
  br i1 %366, label %367, label %372

367:                                              ; preds = %364
  %368 = load i32, ptr %43, align 4, !tbaa !9
  %369 = load i32, ptr %21, align 4, !tbaa !9
  %370 = icmp sge i32 %368, %369
  %371 = zext i1 %370 to i32
  br label %377

372:                                              ; preds = %364
  %373 = load i32, ptr %43, align 4, !tbaa !9
  %374 = load i32, ptr %21, align 4, !tbaa !9
  %375 = icmp sle i32 %373, %374
  %376 = zext i1 %375 to i32
  br label %377

377:                                              ; preds = %372, %367
  %378 = phi i32 [ %371, %367 ], [ %376, %372 ]
  %379 = icmp ne i32 %378, 0
  br i1 %379, label %380, label %486

380:                                              ; preds = %377
  %381 = load float, ptr %41, align 4, !tbaa !11
  %382 = load float, ptr %54, align 4, !tbaa !11
  %383 = fcmp ole float %381, %382
  br i1 %383, label %384, label %385

384:                                              ; preds = %380
  br label %548

385:                                              ; preds = %380
  %386 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %386, ptr %23, align 4, !tbaa !9
  %387 = load ptr, ptr %16, align 8, !tbaa !5
  %388 = load i32, ptr %23, align 4, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds %struct.complex, ptr %387, i64 %389
  %391 = getelementptr inbounds %struct.complex, ptr %390, i32 0, i32 0
  %392 = load float, ptr %391, align 4, !tbaa !16
  %393 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %392, ptr %393, align 4, !tbaa !16
  %394 = load ptr, ptr %16, align 8, !tbaa !5
  %395 = load i32, ptr %23, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds %struct.complex, ptr %394, i64 %396
  %398 = getelementptr inbounds %struct.complex, ptr %397, i32 0, i32 1
  %399 = load float, ptr %398, align 4, !tbaa !19
  %400 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %399, ptr %400, align 4, !tbaa !19
  %401 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %402 = load float, ptr %401, align 4, !tbaa !16
  store float %402, ptr %26, align 4, !tbaa !11
  %403 = load float, ptr %26, align 4, !tbaa !11
  %404 = fcmp oge float %403, 0.000000e+00
  br i1 %404, label %405, label %407

405:                                              ; preds = %385
  %406 = load float, ptr %26, align 4, !tbaa !11
  br label %410

407:                                              ; preds = %385
  %408 = load float, ptr %26, align 4, !tbaa !11
  %409 = fneg float %408
  br label %410

410:                                              ; preds = %407, %405
  %411 = phi float [ %406, %405 ], [ %409, %407 ]
  %412 = call <2 x float> @Cf(ptr noundef %39)
  store <2 x float> %412, ptr %60, align 4
  %413 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 0
  %414 = load float, ptr %413, align 4
  %415 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 1
  %416 = load float, ptr %415, align 4
  store float %416, ptr %27, align 4, !tbaa !11
  %417 = load float, ptr %27, align 4, !tbaa !11
  %418 = fcmp oge float %417, 0.000000e+00
  br i1 %418, label %419, label %421

419:                                              ; preds = %410
  %420 = load float, ptr %27, align 4, !tbaa !11
  br label %424

421:                                              ; preds = %410
  %422 = load float, ptr %27, align 4, !tbaa !11
  %423 = fneg float %422
  br label %424

424:                                              ; preds = %421, %419
  %425 = phi float [ %420, %419 ], [ %423, %421 ]
  %426 = fadd float %411, %425
  store float %426, ptr %57, align 4, !tbaa !11
  %427 = load float, ptr %57, align 4, !tbaa !11
  %428 = load float, ptr %54, align 4, !tbaa !11
  %429 = fcmp oge float %427, %428
  br i1 %429, label %430, label %450

430:                                              ; preds = %424
  %431 = load float, ptr %36, align 4, !tbaa !11
  store float %431, ptr %26, align 4, !tbaa !11
  %432 = load float, ptr %57, align 4, !tbaa !11
  %433 = fcmp ole float 1.000000e+00, %432
  br i1 %433, label %434, label %435

434:                                              ; preds = %430
  br label %437

435:                                              ; preds = %430
  %436 = load float, ptr %57, align 4, !tbaa !11
  br label %437

437:                                              ; preds = %435, %434
  %438 = phi float [ 1.000000e+00, %434 ], [ %436, %435 ]
  %439 = load float, ptr %41, align 4, !tbaa !11
  %440 = fmul float %438, %439
  store float %440, ptr %27, align 4, !tbaa !11
  %441 = load float, ptr %26, align 4, !tbaa !11
  %442 = load float, ptr %27, align 4, !tbaa !11
  %443 = fcmp ole float %441, %442
  br i1 %443, label %444, label %446

444:                                              ; preds = %437
  %445 = load float, ptr %26, align 4, !tbaa !11
  br label %448

446:                                              ; preds = %437
  %447 = load float, ptr %27, align 4, !tbaa !11
  br label %448

448:                                              ; preds = %446, %444
  %449 = phi float [ %445, %444 ], [ %447, %446 ]
  store float %449, ptr %36, align 4, !tbaa !11
  br label %451

450:                                              ; preds = %424
  store float 0.000000e+00, ptr %36, align 4, !tbaa !11
  br label %451

451:                                              ; preds = %450, %448
  %452 = load float, ptr %57, align 4, !tbaa !11
  %453 = load ptr, ptr %19, align 8, !tbaa !5
  %454 = load i32, ptr %43, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds float, ptr %453, i64 %455
  %457 = load float, ptr %456, align 4, !tbaa !11
  %458 = fadd float %452, %457
  %459 = load float, ptr %54, align 4, !tbaa !11
  %460 = fcmp oge float %458, %459
  br i1 %460, label %461, label %473

461:                                              ; preds = %451
  %462 = load float, ptr %57, align 4, !tbaa !11
  %463 = load float, ptr %57, align 4, !tbaa !11
  %464 = load ptr, ptr %19, align 8, !tbaa !5
  %465 = load i32, ptr %43, align 4, !tbaa !9
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds float, ptr %464, i64 %466
  %468 = load float, ptr %467, align 4, !tbaa !11
  %469 = fadd float %463, %468
  %470 = fdiv float %462, %469
  %471 = load float, ptr %41, align 4, !tbaa !11
  %472 = fmul float %471, %470
  store float %472, ptr %41, align 4, !tbaa !11
  br label %474

473:                                              ; preds = %451
  store float 0.000000e+00, ptr %41, align 4, !tbaa !11
  br label %474

474:                                              ; preds = %473, %461
  %475 = load i32, ptr %34, align 4, !tbaa !9
  %476 = load i32, ptr %35, align 4, !tbaa !9
  %477 = mul nsw i32 %475, %476
  %478 = load i32, ptr %49, align 4, !tbaa !9
  %479 = add nsw i32 %478, %477
  store i32 %479, ptr %49, align 4, !tbaa !9
  %480 = load i32, ptr %35, align 4, !tbaa !9
  %481 = add nsw i32 %480, -1
  store i32 %481, ptr %35, align 4, !tbaa !9
  br label %482

482:                                              ; preds = %474
  %483 = load i32, ptr %22, align 4, !tbaa !9
  %484 = load i32, ptr %43, align 4, !tbaa !9
  %485 = add nsw i32 %484, %483
  store i32 %485, ptr %43, align 4, !tbaa !9
  br label %364, !llvm.loop !20

486:                                              ; preds = %377
  %487 = load float, ptr %36, align 4, !tbaa !11
  store float %487, ptr %41, align 4, !tbaa !11
  br label %547

488:                                              ; preds = %339
  store float 1.000000e+00, ptr %26, align 4, !tbaa !11
  %489 = load float, ptr %36, align 4, !tbaa !11
  %490 = load float, ptr %54, align 4, !tbaa !11
  %491 = fcmp oge float %489, %490
  br i1 %491, label %492, label %494

492:                                              ; preds = %488
  %493 = load float, ptr %36, align 4, !tbaa !11
  br label %496

494:                                              ; preds = %488
  %495 = load float, ptr %54, align 4, !tbaa !11
  br label %496

496:                                              ; preds = %494, %492
  %497 = phi float [ %493, %492 ], [ %495, %494 ]
  %498 = fdiv float 5.000000e-01, %497
  store float %498, ptr %27, align 4, !tbaa !11
  %499 = load float, ptr %26, align 4, !tbaa !11
  %500 = load float, ptr %27, align 4, !tbaa !11
  %501 = fcmp ole float %499, %500
  br i1 %501, label %502, label %504

502:                                              ; preds = %496
  %503 = load float, ptr %26, align 4, !tbaa !11
  br label %506

504:                                              ; preds = %496
  %505 = load float, ptr %27, align 4, !tbaa !11
  br label %506

506:                                              ; preds = %504, %502
  %507 = phi float [ %503, %502 ], [ %505, %504 ]
  store float %507, ptr %41, align 4, !tbaa !11
  %508 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %508, ptr %22, align 4, !tbaa !9
  %509 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %509, ptr %21, align 4, !tbaa !9
  %510 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %510, ptr %43, align 4, !tbaa !9
  br label %511

511:                                              ; preds = %542, %506
  %512 = load i32, ptr %21, align 4, !tbaa !9
  %513 = icmp slt i32 %512, 0
  br i1 %513, label %514, label %519

514:                                              ; preds = %511
  %515 = load i32, ptr %43, align 4, !tbaa !9
  %516 = load i32, ptr %22, align 4, !tbaa !9
  %517 = icmp sge i32 %515, %516
  %518 = zext i1 %517 to i32
  br label %524

519:                                              ; preds = %511
  %520 = load i32, ptr %43, align 4, !tbaa !9
  %521 = load i32, ptr %22, align 4, !tbaa !9
  %522 = icmp sle i32 %520, %521
  %523 = zext i1 %522 to i32
  br label %524

524:                                              ; preds = %519, %514
  %525 = phi i32 [ %518, %514 ], [ %523, %519 ]
  %526 = icmp ne i32 %525, 0
  br i1 %526, label %527, label %546

527:                                              ; preds = %524
  %528 = load float, ptr %41, align 4, !tbaa !11
  %529 = load float, ptr %54, align 4, !tbaa !11
  %530 = fcmp ole float %528, %529
  br i1 %530, label %531, label %532

531:                                              ; preds = %527
  br label %548

532:                                              ; preds = %527
  %533 = load ptr, ptr %19, align 8, !tbaa !5
  %534 = load i32, ptr %43, align 4, !tbaa !9
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %533, i64 %535
  %537 = load float, ptr %536, align 4, !tbaa !11
  %538 = fadd float %537, 1.000000e+00
  %539 = fdiv float 1.000000e+00, %538
  %540 = load float, ptr %41, align 4, !tbaa !11
  %541 = fmul float %540, %539
  store float %541, ptr %41, align 4, !tbaa !11
  br label %542

542:                                              ; preds = %532
  %543 = load i32, ptr %21, align 4, !tbaa !9
  %544 = load i32, ptr %43, align 4, !tbaa !9
  %545 = add nsw i32 %544, %543
  store i32 %545, ptr %43, align 4, !tbaa !9
  br label %511, !llvm.loop !21

546:                                              ; preds = %524
  br label %547

547:                                              ; preds = %546, %486
  br label %548

548:                                              ; preds = %547, %531, %384, %338
  br label %765

549:                                              ; preds = %322
  %550 = load i32, ptr %48, align 4, !tbaa !9
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %552, label %555

552:                                              ; preds = %549
  store i32 1, ptr %53, align 4, !tbaa !9
  %553 = load ptr, ptr %15, align 8, !tbaa !5
  %554 = load i32, ptr %553, align 4, !tbaa !9
  store i32 %554, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %558

555:                                              ; preds = %549
  %556 = load ptr, ptr %15, align 8, !tbaa !5
  %557 = load i32, ptr %556, align 4, !tbaa !9
  store i32 %557, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %46, align 4, !tbaa !9
  store i32 -1, ptr %34, align 4, !tbaa !9
  br label %558

558:                                              ; preds = %555, %552
  %559 = load float, ptr %44, align 4, !tbaa !11
  %560 = fcmp une float %559, 1.000000e+00
  br i1 %560, label %561, label %562

561:                                              ; preds = %558
  store float 0.000000e+00, ptr %41, align 4, !tbaa !11
  br label %764

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

565:                                              ; preds = %562
  %566 = load float, ptr %36, align 4, !tbaa !11
  %567 = load float, ptr %54, align 4, !tbaa !11
  %568 = fcmp oge float %566, %567
  br i1 %568, label %569, label %571

569:                                              ; preds = %565
  %570 = load float, ptr %36, align 4, !tbaa !11
  br label %573

571:                                              ; preds = %565
  %572 = load float, ptr %54, align 4, !tbaa !11
  br label %573

573:                                              ; preds = %571, %569
  %574 = phi float [ %570, %569 ], [ %572, %571 ]
  %575 = fdiv float 5.000000e-01, %574
  store float %575, ptr %41, align 4, !tbaa !11
  %576 = load float, ptr %41, align 4, !tbaa !11
  store float %576, ptr %36, align 4, !tbaa !11
  %577 = load i32, ptr %53, align 4, !tbaa !9
  %578 = load i32, ptr %53, align 4, !tbaa !9
  %579 = add nsw i32 %578, 1
  %580 = mul nsw i32 %577, %579
  %581 = sdiv i32 %580, 2
  store i32 %581, ptr %49, align 4, !tbaa !9
  store i32 1, ptr %35, align 4, !tbaa !9
  %582 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %582, ptr %21, align 4, !tbaa !9
  %583 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %583, ptr %22, align 4, !tbaa !9
  %584 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %584, ptr %43, align 4, !tbaa !9
  br label %585

585:                                              ; preds = %690, %573
  %586 = load i32, ptr %22, align 4, !tbaa !9
  %587 = icmp slt i32 %586, 0
  br i1 %587, label %588, label %593

588:                                              ; preds = %585
  %589 = load i32, ptr %43, align 4, !tbaa !9
  %590 = load i32, ptr %21, align 4, !tbaa !9
  %591 = icmp sge i32 %589, %590
  %592 = zext i1 %591 to i32
  br label %598

593:                                              ; preds = %585
  %594 = load i32, ptr %43, align 4, !tbaa !9
  %595 = load i32, ptr %21, align 4, !tbaa !9
  %596 = icmp sle i32 %594, %595
  %597 = zext i1 %596 to i32
  br label %598

598:                                              ; preds = %593, %588
  %599 = phi i32 [ %592, %588 ], [ %597, %593 ]
  %600 = icmp ne i32 %599, 0
  br i1 %600, label %601, label %694

601:                                              ; preds = %598
  %602 = load float, ptr %41, align 4, !tbaa !11
  %603 = load float, ptr %54, align 4, !tbaa !11
  %604 = fcmp ole float %602, %603
  br i1 %604, label %605, label %606

605:                                              ; preds = %601
  br label %764

606:                                              ; preds = %601
  %607 = load ptr, ptr %19, align 8, !tbaa !5
  %608 = load i32, ptr %43, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds float, ptr %607, i64 %609
  %611 = load float, ptr %610, align 4, !tbaa !11
  %612 = fadd float %611, 1.000000e+00
  store float %612, ptr %50, align 4, !tbaa !11
  %613 = load float, ptr %41, align 4, !tbaa !11
  store float %613, ptr %26, align 4, !tbaa !11
  %614 = load float, ptr %36, align 4, !tbaa !11
  %615 = load float, ptr %50, align 4, !tbaa !11
  %616 = fdiv float %614, %615
  store float %616, ptr %27, align 4, !tbaa !11
  %617 = load float, ptr %26, align 4, !tbaa !11
  %618 = load float, ptr %27, align 4, !tbaa !11
  %619 = fcmp ole float %617, %618
  br i1 %619, label %620, label %622

620:                                              ; preds = %606
  %621 = load float, ptr %26, align 4, !tbaa !11
  br label %624

622:                                              ; preds = %606
  %623 = load float, ptr %27, align 4, !tbaa !11
  br label %624

624:                                              ; preds = %622, %620
  %625 = phi float [ %621, %620 ], [ %623, %622 ]
  store float %625, ptr %41, align 4, !tbaa !11
  %626 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %626, ptr %23, align 4, !tbaa !9
  %627 = load ptr, ptr %16, align 8, !tbaa !5
  %628 = load i32, ptr %23, align 4, !tbaa !9
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds %struct.complex, ptr %627, i64 %629
  %631 = getelementptr inbounds %struct.complex, ptr %630, i32 0, i32 0
  %632 = load float, ptr %631, align 4, !tbaa !16
  %633 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %632, ptr %633, align 4, !tbaa !16
  %634 = load ptr, ptr %16, align 8, !tbaa !5
  %635 = load i32, ptr %23, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds %struct.complex, ptr %634, i64 %636
  %638 = getelementptr inbounds %struct.complex, ptr %637, i32 0, i32 1
  %639 = load float, ptr %638, align 4, !tbaa !19
  %640 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %639, ptr %640, align 4, !tbaa !19
  %641 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %642 = load float, ptr %641, align 4, !tbaa !16
  store float %642, ptr %26, align 4, !tbaa !11
  %643 = load float, ptr %26, align 4, !tbaa !11
  %644 = fcmp oge float %643, 0.000000e+00
  br i1 %644, label %645, label %647

645:                                              ; preds = %624
  %646 = load float, ptr %26, align 4, !tbaa !11
  br label %650

647:                                              ; preds = %624
  %648 = load float, ptr %26, align 4, !tbaa !11
  %649 = fneg float %648
  br label %650

650:                                              ; preds = %647, %645
  %651 = phi float [ %646, %645 ], [ %649, %647 ]
  %652 = call <2 x float> @Cf(ptr noundef %39)
  store <2 x float> %652, ptr %61, align 4
  %653 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 0
  %654 = load float, ptr %653, align 4
  %655 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 1
  %656 = load float, ptr %655, align 4
  store float %656, ptr %27, align 4, !tbaa !11
  %657 = load float, ptr %27, align 4, !tbaa !11
  %658 = fcmp oge float %657, 0.000000e+00
  br i1 %658, label %659, label %661

659:                                              ; preds = %650
  %660 = load float, ptr %27, align 4, !tbaa !11
  br label %664

661:                                              ; preds = %650
  %662 = load float, ptr %27, align 4, !tbaa !11
  %663 = fneg float %662
  br label %664

664:                                              ; preds = %661, %659
  %665 = phi float [ %660, %659 ], [ %663, %661 ]
  %666 = fadd float %651, %665
  store float %666, ptr %57, align 4, !tbaa !11
  %667 = load float, ptr %57, align 4, !tbaa !11
  %668 = load float, ptr %54, align 4, !tbaa !11
  %669 = fcmp oge float %667, %668
  br i1 %669, label %670, label %681

670:                                              ; preds = %664
  %671 = load float, ptr %50, align 4, !tbaa !11
  %672 = load float, ptr %57, align 4, !tbaa !11
  %673 = fcmp ogt float %671, %672
  br i1 %673, label %674, label %680

674:                                              ; preds = %670
  %675 = load float, ptr %57, align 4, !tbaa !11
  %676 = load float, ptr %50, align 4, !tbaa !11
  %677 = fdiv float %675, %676
  %678 = load float, ptr %36, align 4, !tbaa !11
  %679 = fmul float %678, %677
  store float %679, ptr %36, align 4, !tbaa !11
  br label %680

680:                                              ; preds = %674, %670
  br label %682

681:                                              ; preds = %664
  store float 0.000000e+00, ptr %36, align 4, !tbaa !11
  br label %682

682:                                              ; preds = %681, %680
  %683 = load i32, ptr %35, align 4, !tbaa !9
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr %35, align 4, !tbaa !9
  %685 = load i32, ptr %34, align 4, !tbaa !9
  %686 = load i32, ptr %35, align 4, !tbaa !9
  %687 = mul nsw i32 %685, %686
  %688 = load i32, ptr %49, align 4, !tbaa !9
  %689 = add nsw i32 %688, %687
  store i32 %689, ptr %49, align 4, !tbaa !9
  br label %690

690:                                              ; preds = %682
  %691 = load i32, ptr %22, align 4, !tbaa !9
  %692 = load i32, ptr %43, align 4, !tbaa !9
  %693 = add nsw i32 %692, %691
  store i32 %693, ptr %43, align 4, !tbaa !9
  br label %585, !llvm.loop !22

694:                                              ; preds = %598
  %695 = load float, ptr %41, align 4, !tbaa !11
  %696 = load float, ptr %36, align 4, !tbaa !11
  %697 = fcmp ole float %695, %696
  br i1 %697, label %698, label %700

698:                                              ; preds = %694
  %699 = load float, ptr %41, align 4, !tbaa !11
  br label %702

700:                                              ; preds = %694
  %701 = load float, ptr %36, align 4, !tbaa !11
  br label %702

702:                                              ; preds = %700, %698
  %703 = phi float [ %699, %698 ], [ %701, %700 ]
  store float %703, ptr %41, align 4, !tbaa !11
  br label %763

704:                                              ; preds = %562
  store float 1.000000e+00, ptr %26, align 4, !tbaa !11
  %705 = load float, ptr %36, align 4, !tbaa !11
  %706 = load float, ptr %54, align 4, !tbaa !11
  %707 = fcmp oge float %705, %706
  br i1 %707, label %708, label %710

708:                                              ; preds = %704
  %709 = load float, ptr %36, align 4, !tbaa !11
  br label %712

710:                                              ; preds = %704
  %711 = load float, ptr %54, align 4, !tbaa !11
  br label %712

712:                                              ; preds = %710, %708
  %713 = phi float [ %709, %708 ], [ %711, %710 ]
  %714 = fdiv float 5.000000e-01, %713
  store float %714, ptr %27, align 4, !tbaa !11
  %715 = load float, ptr %26, align 4, !tbaa !11
  %716 = load float, ptr %27, align 4, !tbaa !11
  %717 = fcmp ole float %715, %716
  br i1 %717, label %718, label %720

718:                                              ; preds = %712
  %719 = load float, ptr %26, align 4, !tbaa !11
  br label %722

720:                                              ; preds = %712
  %721 = load float, ptr %27, align 4, !tbaa !11
  br label %722

722:                                              ; preds = %720, %718
  %723 = phi float [ %719, %718 ], [ %721, %720 ]
  store float %723, ptr %41, align 4, !tbaa !11
  %724 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %724, ptr %22, align 4, !tbaa !9
  %725 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %725, ptr %21, align 4, !tbaa !9
  %726 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %726, ptr %43, align 4, !tbaa !9
  br label %727

727:                                              ; preds = %758, %722
  %728 = load i32, ptr %21, align 4, !tbaa !9
  %729 = icmp slt i32 %728, 0
  br i1 %729, label %730, label %735

730:                                              ; preds = %727
  %731 = load i32, ptr %43, align 4, !tbaa !9
  %732 = load i32, ptr %22, align 4, !tbaa !9
  %733 = icmp sge i32 %731, %732
  %734 = zext i1 %733 to i32
  br label %740

735:                                              ; preds = %727
  %736 = load i32, ptr %43, align 4, !tbaa !9
  %737 = load i32, ptr %22, align 4, !tbaa !9
  %738 = icmp sle i32 %736, %737
  %739 = zext i1 %738 to i32
  br label %740

740:                                              ; preds = %735, %730
  %741 = phi i32 [ %734, %730 ], [ %739, %735 ]
  %742 = icmp ne i32 %741, 0
  br i1 %742, label %743, label %762

743:                                              ; preds = %740
  %744 = load float, ptr %41, align 4, !tbaa !11
  %745 = load float, ptr %54, align 4, !tbaa !11
  %746 = fcmp ole float %744, %745
  br i1 %746, label %747, label %748

747:                                              ; preds = %743
  br label %764

748:                                              ; preds = %743
  %749 = load ptr, ptr %19, align 8, !tbaa !5
  %750 = load i32, ptr %43, align 4, !tbaa !9
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds float, ptr %749, i64 %751
  %753 = load float, ptr %752, align 4, !tbaa !11
  %754 = fadd float %753, 1.000000e+00
  store float %754, ptr %50, align 4, !tbaa !11
  %755 = load float, ptr %50, align 4, !tbaa !11
  %756 = load float, ptr %41, align 4, !tbaa !11
  %757 = fdiv float %756, %755
  store float %757, ptr %41, align 4, !tbaa !11
  br label %758

758:                                              ; preds = %748
  %759 = load i32, ptr %21, align 4, !tbaa !9
  %760 = load i32, ptr %43, align 4, !tbaa !9
  %761 = add nsw i32 %760, %759
  store i32 %761, ptr %43, align 4, !tbaa !9
  br label %727, !llvm.loop !23

762:                                              ; preds = %740
  br label %763

763:                                              ; preds = %762, %702
  br label %764

764:                                              ; preds = %763, %747, %605, %561
  br label %765

765:                                              ; preds = %764, %548
  %766 = load float, ptr %41, align 4, !tbaa !11
  %767 = load float, ptr %44, align 4, !tbaa !11
  %768 = fmul float %766, %767
  %769 = load float, ptr %54, align 4, !tbaa !11
  %770 = fcmp ogt float %768, %769
  br i1 %770, label %771, label %780

771:                                              ; preds = %765
  %772 = load ptr, ptr %11, align 8, !tbaa !5
  %773 = load ptr, ptr %12, align 8, !tbaa !5
  %774 = load ptr, ptr %13, align 8, !tbaa !5
  %775 = load ptr, ptr %15, align 8, !tbaa !5
  %776 = load ptr, ptr %16, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.complex, ptr %776, i64 1
  %778 = load ptr, ptr %17, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.complex, ptr %778, i64 1
  call void @ctpsv_(ptr noundef %772, ptr noundef %773, ptr noundef %774, ptr noundef %775, ptr noundef %777, ptr noundef %779, ptr noundef @c__1)
  br label %3092

780:                                              ; preds = %765
  %781 = load float, ptr %40, align 4, !tbaa !11
  %782 = load float, ptr %51, align 4, !tbaa !11
  %783 = fmul float %782, 5.000000e-01
  %784 = fcmp ogt float %781, %783
  br i1 %784, label %785, label %796

785:                                              ; preds = %780
  %786 = load float, ptr %51, align 4, !tbaa !11
  %787 = fmul float %786, 5.000000e-01
  %788 = load float, ptr %40, align 4, !tbaa !11
  %789 = fdiv float %787, %788
  %790 = load ptr, ptr %18, align 8, !tbaa !5
  store float %789, ptr %790, align 4, !tbaa !11
  %791 = load ptr, ptr %15, align 8, !tbaa !5
  %792 = load ptr, ptr %18, align 8, !tbaa !5
  %793 = load ptr, ptr %17, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.complex, ptr %793, i64 1
  call void @csscal_(ptr noundef %791, ptr noundef %792, ptr noundef %794, ptr noundef @c__1)
  %795 = load float, ptr %51, align 4, !tbaa !11
  store float %795, ptr %40, align 4, !tbaa !11
  br label %799

796:                                              ; preds = %780
  %797 = load float, ptr %40, align 4, !tbaa !11
  %798 = fmul float %797, 2.000000e+00
  store float %798, ptr %40, align 4, !tbaa !11
  br label %799

799:                                              ; preds = %796, %785
  %800 = load i32, ptr %52, align 4, !tbaa !9
  %801 = icmp ne i32 %800, 0
  br i1 %801, label %802, label %1384

802:                                              ; preds = %799
  %803 = load i32, ptr %53, align 4, !tbaa !9
  %804 = load i32, ptr %53, align 4, !tbaa !9
  %805 = add nsw i32 %804, 1
  %806 = mul nsw i32 %803, %805
  %807 = sdiv i32 %806, 2
  store i32 %807, ptr %49, align 4, !tbaa !9
  %808 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %808, ptr %21, align 4, !tbaa !9
  %809 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %809, ptr %22, align 4, !tbaa !9
  %810 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %810, ptr %43, align 4, !tbaa !9
  br label %811

811:                                              ; preds = %1379, %802
  %812 = load i32, ptr %22, align 4, !tbaa !9
  %813 = icmp slt i32 %812, 0
  br i1 %813, label %814, label %819

814:                                              ; preds = %811
  %815 = load i32, ptr %43, align 4, !tbaa !9
  %816 = load i32, ptr %21, align 4, !tbaa !9
  %817 = icmp sge i32 %815, %816
  %818 = zext i1 %817 to i32
  br label %824

819:                                              ; preds = %811
  %820 = load i32, ptr %43, align 4, !tbaa !9
  %821 = load i32, ptr %21, align 4, !tbaa !9
  %822 = icmp sle i32 %820, %821
  %823 = zext i1 %822 to i32
  br label %824

824:                                              ; preds = %819, %814
  %825 = phi i32 [ %818, %814 ], [ %823, %819 ]
  %826 = icmp ne i32 %825, 0
  br i1 %826, label %827, label %1383

827:                                              ; preds = %824
  %828 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %828, ptr %23, align 4, !tbaa !9
  %829 = load ptr, ptr %17, align 8, !tbaa !5
  %830 = load i32, ptr %23, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds %struct.complex, ptr %829, i64 %831
  %833 = getelementptr inbounds %struct.complex, ptr %832, i32 0, i32 0
  %834 = load float, ptr %833, align 4, !tbaa !16
  store float %834, ptr %26, align 4, !tbaa !11
  %835 = load float, ptr %26, align 4, !tbaa !11
  %836 = fcmp oge float %835, 0.000000e+00
  br i1 %836, label %837, label %839

837:                                              ; preds = %827
  %838 = load float, ptr %26, align 4, !tbaa !11
  br label %842

839:                                              ; preds = %827
  %840 = load float, ptr %26, align 4, !tbaa !11
  %841 = fneg float %840
  br label %842

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

855:                                              ; preds = %842
  %856 = load float, ptr %27, align 4, !tbaa !11
  br label %860

857:                                              ; preds = %842
  %858 = load float, ptr %27, align 4, !tbaa !11
  %859 = fneg float %858
  br label %860

860:                                              ; preds = %857, %855
  %861 = phi float [ %856, %855 ], [ %859, %857 ]
  %862 = fadd float %843, %861
  store float %862, ptr %50, align 4, !tbaa !11
  %863 = load i32, ptr %55, align 4, !tbaa !9
  %864 = icmp ne i32 %863, 0
  br i1 %864, label %865, label %891

865:                                              ; preds = %860
  %866 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %866, ptr %23, align 4, !tbaa !9
  %867 = load float, ptr %44, align 4, !tbaa !11
  %868 = load ptr, ptr %16, align 8, !tbaa !5
  %869 = load i32, ptr %23, align 4, !tbaa !9
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds %struct.complex, ptr %868, i64 %870
  %872 = getelementptr inbounds %struct.complex, ptr %871, i32 0, i32 0
  %873 = load float, ptr %872, align 4, !tbaa !16
  %874 = fmul float %867, %873
  %875 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %874, ptr %875, align 4, !tbaa !16
  %876 = load float, ptr %44, align 4, !tbaa !11
  %877 = load ptr, ptr %16, align 8, !tbaa !5
  %878 = load i32, ptr %23, align 4, !tbaa !9
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds %struct.complex, ptr %877, i64 %879
  %881 = getelementptr inbounds %struct.complex, ptr %880, i32 0, i32 1
  %882 = load float, ptr %881, align 4, !tbaa !19
  %883 = fmul float %876, %882
  %884 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %883, ptr %884, align 4, !tbaa !19
  %885 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %886 = load float, ptr %885, align 4, !tbaa !16
  %887 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %886, ptr %887, align 4, !tbaa !16
  %888 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %889 = load float, ptr %888, align 4, !tbaa !19
  %890 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %889, ptr %890, align 4, !tbaa !19
  br label %899

891:                                              ; preds = %860
  %892 = load float, ptr %44, align 4, !tbaa !11
  %893 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %892, ptr %893, align 4, !tbaa !16
  %894 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float 0.000000e+00, ptr %894, align 4, !tbaa !19
  %895 = load float, ptr %44, align 4, !tbaa !11
  %896 = fcmp oeq float %895, 1.000000e+00
  br i1 %896, label %897, label %898

897:                                              ; preds = %891
  br label %1139

898:                                              ; preds = %891
  br label %899

899:                                              ; preds = %898, %865
  %900 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %901 = load float, ptr %900, align 4, !tbaa !16
  store float %901, ptr %26, align 4, !tbaa !11
  %902 = load float, ptr %26, align 4, !tbaa !11
  %903 = fcmp oge float %902, 0.000000e+00
  br i1 %903, label %904, label %906

904:                                              ; preds = %899
  %905 = load float, ptr %26, align 4, !tbaa !11
  br label %909

906:                                              ; preds = %899
  %907 = load float, ptr %26, align 4, !tbaa !11
  %908 = fneg float %907
  br label %909

909:                                              ; preds = %906, %904
  %910 = phi float [ %905, %904 ], [ %908, %906 ]
  %911 = call <2 x float> @Cf(ptr noundef %39)
  store <2 x float> %911, ptr %63, align 4
  %912 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 0
  %913 = load float, ptr %912, align 4
  %914 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 1
  %915 = load float, ptr %914, align 4
  store float %915, ptr %27, align 4, !tbaa !11
  %916 = load float, ptr %27, align 4, !tbaa !11
  %917 = fcmp oge float %916, 0.000000e+00
  br i1 %917, label %918, label %920

918:                                              ; preds = %909
  %919 = load float, ptr %27, align 4, !tbaa !11
  br label %923

920:                                              ; preds = %909
  %921 = load float, ptr %27, align 4, !tbaa !11
  %922 = fneg float %921
  br label %923

923:                                              ; preds = %920, %918
  %924 = phi float [ %919, %918 ], [ %922, %920 ]
  %925 = fadd float %910, %924
  store float %925, ptr %57, align 4, !tbaa !11
  %926 = load float, ptr %57, align 4, !tbaa !11
  %927 = load float, ptr %54, align 4, !tbaa !11
  %928 = fcmp ogt float %926, %927
  br i1 %928, label %929, label %1007

929:                                              ; preds = %923
  %930 = load float, ptr %57, align 4, !tbaa !11
  %931 = fcmp olt float %930, 1.000000e+00
  br i1 %931, label %932, label %952

932:                                              ; preds = %929
  %933 = load float, ptr %50, align 4, !tbaa !11
  %934 = load float, ptr %57, align 4, !tbaa !11
  %935 = load float, ptr %51, align 4, !tbaa !11
  %936 = fmul float %934, %935
  %937 = fcmp ogt float %933, %936
  br i1 %937, label %938, label %951

938:                                              ; preds = %932
  %939 = load float, ptr %50, align 4, !tbaa !11
  %940 = fdiv float 1.000000e+00, %939
  store float %940, ptr %56, align 4, !tbaa !11
  %941 = load ptr, ptr %15, align 8, !tbaa !5
  %942 = load ptr, ptr %17, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.complex, ptr %942, i64 1
  call void @csscal_(ptr noundef %941, ptr noundef %56, ptr noundef %943, ptr noundef @c__1)
  %944 = load float, ptr %56, align 4, !tbaa !11
  %945 = load ptr, ptr %18, align 8, !tbaa !5
  %946 = load float, ptr %945, align 4, !tbaa !11
  %947 = fmul float %946, %944
  store float %947, ptr %945, align 4, !tbaa !11
  %948 = load float, ptr %56, align 4, !tbaa !11
  %949 = load float, ptr %40, align 4, !tbaa !11
  %950 = fmul float %949, %948
  store float %950, ptr %40, align 4, !tbaa !11
  br label %951

951:                                              ; preds = %938, %932
  br label %952

952:                                              ; preds = %951, %929
  %953 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %953, ptr %23, align 4, !tbaa !9
  %954 = load ptr, ptr %17, align 8, !tbaa !5
  %955 = load i32, ptr %43, align 4, !tbaa !9
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds %struct.complex, ptr %954, i64 %956
  call void @cladiv_(ptr noundef %30, ptr noundef %957, ptr noundef %39)
  %958 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %959 = load float, ptr %958, align 4, !tbaa !16
  %960 = load ptr, ptr %17, align 8, !tbaa !5
  %961 = load i32, ptr %23, align 4, !tbaa !9
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds %struct.complex, ptr %960, i64 %962
  %964 = getelementptr inbounds %struct.complex, ptr %963, i32 0, i32 0
  store float %959, ptr %964, align 4, !tbaa !16
  %965 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %966 = load float, ptr %965, align 4, !tbaa !19
  %967 = load ptr, ptr %17, align 8, !tbaa !5
  %968 = load i32, ptr %23, 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 1
  store float %966, ptr %971, align 4, !tbaa !19
  %972 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %972, ptr %23, align 4, !tbaa !9
  %973 = load ptr, ptr %17, align 8, !tbaa !5
  %974 = load i32, ptr %23, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds %struct.complex, ptr %973, i64 %975
  %977 = getelementptr inbounds %struct.complex, ptr %976, i32 0, i32 0
  %978 = load float, ptr %977, align 4, !tbaa !16
  store float %978, ptr %26, align 4, !tbaa !11
  %979 = load float, ptr %26, align 4, !tbaa !11
  %980 = fcmp oge float %979, 0.000000e+00
  br i1 %980, label %981, label %983

981:                                              ; preds = %952
  %982 = load float, ptr %26, align 4, !tbaa !11
  br label %986

983:                                              ; preds = %952
  %984 = load float, ptr %26, align 4, !tbaa !11
  %985 = fneg float %984
  br label %986

986:                                              ; preds = %983, %981
  %987 = phi float [ %982, %981 ], [ %985, %983 ]
  %988 = load ptr, ptr %17, align 8, !tbaa !5
  %989 = load i32, ptr %43, align 4, !tbaa !9
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds %struct.complex, ptr %988, i64 %990
  %992 = call <2 x float> @Cf(ptr noundef %991)
  store <2 x float> %992, ptr %64, align 4
  %993 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 0
  %994 = load float, ptr %993, align 4
  %995 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 1
  %996 = load float, ptr %995, align 4
  store float %996, ptr %27, align 4, !tbaa !11
  %997 = load float, ptr %27, align 4, !tbaa !11
  %998 = fcmp oge float %997, 0.000000e+00
  br i1 %998, label %999, label %1001

999:                                              ; preds = %986
  %1000 = load float, ptr %27, align 4, !tbaa !11
  br label %1004

1001:                                             ; preds = %986
  %1002 = load float, ptr %27, align 4, !tbaa !11
  %1003 = fneg float %1002
  br label %1004

1004:                                             ; preds = %1001, %999
  %1005 = phi float [ %1000, %999 ], [ %1003, %1001 ]
  %1006 = fadd float %987, %1005
  store float %1006, ptr %50, align 4, !tbaa !11
  br label %1138

1007:                                             ; preds = %923
  %1008 = load float, ptr %57, align 4, !tbaa !11
  %1009 = fcmp ogt float %1008, 0.000000e+00
  br i1 %1009, label %1010, label %1102

1010:                                             ; preds = %1007
  %1011 = load float, ptr %50, align 4, !tbaa !11
  %1012 = load float, ptr %57, align 4, !tbaa !11
  %1013 = load float, ptr %51, align 4, !tbaa !11
  %1014 = fmul float %1012, %1013
  %1015 = fcmp ogt float %1011, %1014
  br i1 %1015, label %1016, label %1047

1016:                                             ; preds = %1010
  %1017 = load float, ptr %57, align 4, !tbaa !11
  %1018 = load float, ptr %51, align 4, !tbaa !11
  %1019 = fmul float %1017, %1018
  %1020 = load float, ptr %50, align 4, !tbaa !11
  %1021 = fdiv float %1019, %1020
  store float %1021, ptr %56, align 4, !tbaa !11
  %1022 = load ptr, ptr %19, align 8, !tbaa !5
  %1023 = load i32, ptr %43, align 4, !tbaa !9
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds float, ptr %1022, i64 %1024
  %1026 = load float, ptr %1025, align 4, !tbaa !11
  %1027 = fcmp ogt float %1026, 1.000000e+00
  br i1 %1027, label %1028, label %1036

1028:                                             ; preds = %1016
  %1029 = load ptr, ptr %19, align 8, !tbaa !5
  %1030 = load i32, ptr %43, 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 = load float, ptr %56, align 4, !tbaa !11
  %1035 = fdiv float %1034, %1033
  store float %1035, ptr %56, align 4, !tbaa !11
  br label %1036

1036:                                             ; preds = %1028, %1016
  %1037 = load ptr, ptr %15, align 8, !tbaa !5
  %1038 = load ptr, ptr %17, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.complex, ptr %1038, i64 1
  call void @csscal_(ptr noundef %1037, ptr noundef %56, ptr noundef %1039, ptr noundef @c__1)
  %1040 = load float, ptr %56, align 4, !tbaa !11
  %1041 = load ptr, ptr %18, align 8, !tbaa !5
  %1042 = load float, ptr %1041, align 4, !tbaa !11
  %1043 = fmul float %1042, %1040
  store float %1043, ptr %1041, align 4, !tbaa !11
  %1044 = load float, ptr %56, align 4, !tbaa !11
  %1045 = load float, ptr %40, align 4, !tbaa !11
  %1046 = fmul float %1045, %1044
  store float %1046, ptr %40, align 4, !tbaa !11
  br label %1047

1047:                                             ; preds = %1036, %1010
  %1048 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1048, ptr %23, align 4, !tbaa !9
  %1049 = load ptr, ptr %17, align 8, !tbaa !5
  %1050 = load i32, ptr %43, align 4, !tbaa !9
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds %struct.complex, ptr %1049, i64 %1051
  call void @cladiv_(ptr noundef %30, ptr noundef %1052, ptr noundef %39)
  %1053 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1054 = load float, ptr %1053, align 4, !tbaa !16
  %1055 = load ptr, ptr %17, align 8, !tbaa !5
  %1056 = load i32, ptr %23, align 4, !tbaa !9
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds %struct.complex, ptr %1055, i64 %1057
  %1059 = getelementptr inbounds %struct.complex, ptr %1058, i32 0, i32 0
  store float %1054, ptr %1059, align 4, !tbaa !16
  %1060 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1061 = load float, ptr %1060, align 4, !tbaa !19
  %1062 = load ptr, ptr %17, align 8, !tbaa !5
  %1063 = load i32, ptr %23, 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 1
  store float %1061, ptr %1066, align 4, !tbaa !19
  %1067 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1067, ptr %23, align 4, !tbaa !9
  %1068 = load ptr, ptr %17, align 8, !tbaa !5
  %1069 = load i32, ptr %23, align 4, !tbaa !9
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds %struct.complex, ptr %1068, i64 %1070
  %1072 = getelementptr inbounds %struct.complex, ptr %1071, i32 0, i32 0
  %1073 = load float, ptr %1072, align 4, !tbaa !16
  store float %1073, ptr %26, align 4, !tbaa !11
  %1074 = load float, ptr %26, align 4, !tbaa !11
  %1075 = fcmp oge float %1074, 0.000000e+00
  br i1 %1075, label %1076, label %1078

1076:                                             ; preds = %1047
  %1077 = load float, ptr %26, align 4, !tbaa !11
  br label %1081

1078:                                             ; preds = %1047
  %1079 = load float, ptr %26, align 4, !tbaa !11
  %1080 = fneg float %1079
  br label %1081

1081:                                             ; preds = %1078, %1076
  %1082 = phi float [ %1077, %1076 ], [ %1080, %1078 ]
  %1083 = load ptr, ptr %17, align 8, !tbaa !5
  %1084 = load i32, ptr %43, align 4, !tbaa !9
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds %struct.complex, ptr %1083, i64 %1085
  %1087 = call <2 x float> @Cf(ptr noundef %1086)
  store <2 x float> %1087, ptr %65, align 4
  %1088 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %1089 = load float, ptr %1088, align 4
  %1090 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %1091 = load float, ptr %1090, align 4
  store float %1091, ptr %27, align 4, !tbaa !11
  %1092 = load float, ptr %27, align 4, !tbaa !11
  %1093 = fcmp oge float %1092, 0.000000e+00
  br i1 %1093, label %1094, label %1096

1094:                                             ; preds = %1081
  %1095 = load float, ptr %27, align 4, !tbaa !11
  br label %1099

1096:                                             ; preds = %1081
  %1097 = load float, ptr %27, align 4, !tbaa !11
  %1098 = fneg float %1097
  br label %1099

1099:                                             ; preds = %1096, %1094
  %1100 = phi float [ %1095, %1094 ], [ %1098, %1096 ]
  %1101 = fadd float %1082, %1100
  store float %1101, ptr %50, align 4, !tbaa !11
  br label %1137

1102:                                             ; preds = %1007
  %1103 = load ptr, ptr %15, align 8, !tbaa !5
  %1104 = load i32, ptr %1103, align 4, !tbaa !9
  store i32 %1104, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1105

1105:                                             ; preds = %1121, %1102
  %1106 = load i32, ptr %42, align 4, !tbaa !9
  %1107 = load i32, ptr %23, align 4, !tbaa !9
  %1108 = icmp sle i32 %1106, %1107
  br i1 %1108, label %1109, label %1124

1109:                                             ; preds = %1105
  %1110 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %1110, ptr %24, align 4, !tbaa !9
  %1111 = load ptr, ptr %17, align 8, !tbaa !5
  %1112 = load i32, ptr %24, align 4, !tbaa !9
  %1113 = sext i32 %1112 to i64
  %1114 = getelementptr inbounds %struct.complex, ptr %1111, i64 %1113
  %1115 = getelementptr inbounds %struct.complex, ptr %1114, i32 0, i32 0
  store float 0.000000e+00, ptr %1115, align 4, !tbaa !16
  %1116 = load ptr, ptr %17, align 8, !tbaa !5
  %1117 = load i32, ptr %24, align 4, !tbaa !9
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds %struct.complex, ptr %1116, i64 %1118
  %1120 = getelementptr inbounds %struct.complex, ptr %1119, i32 0, i32 1
  store float 0.000000e+00, ptr %1120, align 4, !tbaa !19
  br label %1121

1121:                                             ; preds = %1109
  %1122 = load i32, ptr %42, align 4, !tbaa !9
  %1123 = add nsw i32 %1122, 1
  store i32 %1123, ptr %42, align 4, !tbaa !9
  br label %1105, !llvm.loop !24

1124:                                             ; preds = %1105
  %1125 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1125, ptr %23, align 4, !tbaa !9
  %1126 = load ptr, ptr %17, align 8, !tbaa !5
  %1127 = load i32, ptr %23, align 4, !tbaa !9
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds %struct.complex, ptr %1126, i64 %1128
  %1130 = getelementptr inbounds %struct.complex, ptr %1129, i32 0, i32 0
  store float 1.000000e+00, ptr %1130, align 4, !tbaa !16
  %1131 = load ptr, ptr %17, align 8, !tbaa !5
  %1132 = load i32, ptr %23, align 4, !tbaa !9
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds %struct.complex, ptr %1131, i64 %1133
  %1135 = getelementptr inbounds %struct.complex, ptr %1134, i32 0, i32 1
  store float 0.000000e+00, ptr %1135, align 4, !tbaa !19
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %1136 = load ptr, ptr %18, align 8, !tbaa !5
  store float 0.000000e+00, ptr %1136, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  br label %1137

1137:                                             ; preds = %1124, %1099
  br label %1138

1138:                                             ; preds = %1137, %1004
  br label %1139

1139:                                             ; preds = %1138, %897
  %1140 = load float, ptr %50, align 4, !tbaa !11
  %1141 = fcmp ogt float %1140, 1.000000e+00
  br i1 %1141, label %1142, label %1167

1142:                                             ; preds = %1139
  %1143 = load float, ptr %50, align 4, !tbaa !11
  %1144 = fdiv float 1.000000e+00, %1143
  store float %1144, ptr %56, align 4, !tbaa !11
  %1145 = load ptr, ptr %19, align 8, !tbaa !5
  %1146 = load i32, ptr %43, align 4, !tbaa !9
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds float, ptr %1145, i64 %1147
  %1149 = load float, ptr %1148, align 4, !tbaa !11
  %1150 = load float, ptr %51, align 4, !tbaa !11
  %1151 = load float, ptr %40, align 4, !tbaa !11
  %1152 = fsub float %1150, %1151
  %1153 = load float, ptr %56, align 4, !tbaa !11
  %1154 = fmul float %1152, %1153
  %1155 = fcmp ogt float %1149, %1154
  br i1 %1155, label %1156, label %1166

1156:                                             ; preds = %1142
  %1157 = load float, ptr %56, align 4, !tbaa !11
  %1158 = fmul float %1157, 5.000000e-01
  store float %1158, ptr %56, align 4, !tbaa !11
  %1159 = load ptr, ptr %15, align 8, !tbaa !5
  %1160 = load ptr, ptr %17, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.complex, ptr %1160, i64 1
  call void @csscal_(ptr noundef %1159, ptr noundef %56, ptr noundef %1161, ptr noundef @c__1)
  %1162 = load float, ptr %56, align 4, !tbaa !11
  %1163 = load ptr, ptr %18, align 8, !tbaa !5
  %1164 = load float, ptr %1163, align 4, !tbaa !11
  %1165 = fmul float %1164, %1162
  store float %1165, ptr %1163, align 4, !tbaa !11
  br label %1166

1166:                                             ; preds = %1156, %1142
  br label %1187

1167:                                             ; preds = %1139
  %1168 = load float, ptr %50, align 4, !tbaa !11
  %1169 = load ptr, ptr %19, align 8, !tbaa !5
  %1170 = load i32, ptr %43, align 4, !tbaa !9
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds float, ptr %1169, i64 %1171
  %1173 = load float, ptr %1172, align 4, !tbaa !11
  %1174 = fmul float %1168, %1173
  %1175 = load float, ptr %51, align 4, !tbaa !11
  %1176 = load float, ptr %40, align 4, !tbaa !11
  %1177 = fsub float %1175, %1176
  %1178 = fcmp ogt float %1174, %1177
  br i1 %1178, label %1179, label %1186

1179:                                             ; preds = %1167
  %1180 = load ptr, ptr %15, align 8, !tbaa !5
  %1181 = load ptr, ptr %17, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.complex, ptr %1181, i64 1
  call void @csscal_(ptr noundef %1180, ptr noundef @c_b36, ptr noundef %1182, ptr noundef @c__1)
  %1183 = load ptr, ptr %18, align 8, !tbaa !5
  %1184 = load float, ptr %1183, align 4, !tbaa !11
  %1185 = fmul float %1184, 5.000000e-01
  store float %1185, ptr %1183, align 4, !tbaa !11
  br label %1186

1186:                                             ; preds = %1179, %1167
  br label %1187

1187:                                             ; preds = %1186, %1166
  %1188 = load i32, ptr %48, align 4, !tbaa !9
  %1189 = icmp ne i32 %1188, 0
  br i1 %1189, label %1190, label %1276

1190:                                             ; preds = %1187
  %1191 = load i32, ptr %43, align 4, !tbaa !9
  %1192 = icmp sgt i32 %1191, 1
  br i1 %1192, label %1193, label %1272

1193:                                             ; preds = %1190
  %1194 = load i32, ptr %43, align 4, !tbaa !9
  %1195 = sub nsw i32 %1194, 1
  store i32 %1195, ptr %23, align 4, !tbaa !9
  %1196 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1196, ptr %24, align 4, !tbaa !9
  %1197 = load ptr, ptr %17, align 8, !tbaa !5
  %1198 = load i32, ptr %24, align 4, !tbaa !9
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds %struct.complex, ptr %1197, i64 %1199
  %1201 = getelementptr inbounds %struct.complex, ptr %1200, i32 0, i32 0
  %1202 = load float, ptr %1201, align 4, !tbaa !16
  %1203 = fneg float %1202
  %1204 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1203, ptr %1204, align 4, !tbaa !16
  %1205 = load ptr, ptr %17, align 8, !tbaa !5
  %1206 = load i32, ptr %24, align 4, !tbaa !9
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds %struct.complex, ptr %1205, i64 %1207
  %1209 = getelementptr inbounds %struct.complex, ptr %1208, i32 0, i32 1
  %1210 = load float, ptr %1209, align 4, !tbaa !19
  %1211 = fneg float %1210
  %1212 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1211, ptr %1212, align 4, !tbaa !19
  %1213 = load float, ptr %44, align 4, !tbaa !11
  %1214 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1215 = load float, ptr %1214, align 4, !tbaa !16
  %1216 = fmul float %1213, %1215
  %1217 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %1216, ptr %1217, align 4, !tbaa !16
  %1218 = load float, ptr %44, align 4, !tbaa !11
  %1219 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1220 = load float, ptr %1219, align 4, !tbaa !19
  %1221 = fmul float %1218, %1220
  %1222 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %1221, ptr %1222, align 4, !tbaa !19
  %1223 = load ptr, ptr %16, align 8, !tbaa !5
  %1224 = load i32, ptr %49, align 4, !tbaa !9
  %1225 = load i32, ptr %43, align 4, !tbaa !9
  %1226 = sub nsw i32 %1224, %1225
  %1227 = add nsw i32 %1226, 1
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds %struct.complex, ptr %1223, i64 %1228
  %1230 = load ptr, ptr %17, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.complex, ptr %1230, i64 1
  call void @caxpy_(ptr noundef %23, ptr noundef %30, ptr noundef %1229, ptr noundef @c__1, ptr noundef %1231, ptr noundef @c__1)
  %1232 = load i32, ptr %43, align 4, !tbaa !9
  %1233 = sub nsw i32 %1232, 1
  store i32 %1233, ptr %23, align 4, !tbaa !9
  %1234 = load ptr, ptr %17, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.complex, ptr %1234, i64 1
  %1236 = call i32 @icamax_(ptr noundef %23, ptr noundef %1235, ptr noundef @c__1)
  store i32 %1236, ptr %42, align 4, !tbaa !9
  %1237 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %1237, ptr %23, align 4, !tbaa !9
  %1238 = load ptr, ptr %17, align 8, !tbaa !5
  %1239 = load i32, ptr %23, align 4, !tbaa !9
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds %struct.complex, ptr %1238, i64 %1240
  %1242 = getelementptr inbounds %struct.complex, ptr %1241, i32 0, i32 0
  %1243 = load float, ptr %1242, align 4, !tbaa !16
  store float %1243, ptr %26, align 4, !tbaa !11
  %1244 = load float, ptr %26, align 4, !tbaa !11
  %1245 = fcmp oge float %1244, 0.000000e+00
  br i1 %1245, label %1246, label %1248

1246:                                             ; preds = %1193
  %1247 = load float, ptr %26, align 4, !tbaa !11
  br label %1251

1248:                                             ; preds = %1193
  %1249 = load float, ptr %26, align 4, !tbaa !11
  %1250 = fneg float %1249
  br label %1251

1251:                                             ; preds = %1248, %1246
  %1252 = phi float [ %1247, %1246 ], [ %1250, %1248 ]
  %1253 = load ptr, ptr %17, align 8, !tbaa !5
  %1254 = load i32, ptr %42, align 4, !tbaa !9
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds %struct.complex, ptr %1253, i64 %1255
  %1257 = call <2 x float> @Cf(ptr noundef %1256)
  store <2 x float> %1257, ptr %66, align 4
  %1258 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %1259 = load float, ptr %1258, align 4
  %1260 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  %1261 = load float, ptr %1260, align 4
  store float %1261, ptr %27, align 4, !tbaa !11
  %1262 = load float, ptr %27, align 4, !tbaa !11
  %1263 = fcmp oge float %1262, 0.000000e+00
  br i1 %1263, label %1264, label %1266

1264:                                             ; preds = %1251
  %1265 = load float, ptr %27, align 4, !tbaa !11
  br label %1269

1266:                                             ; preds = %1251
  %1267 = load float, ptr %27, align 4, !tbaa !11
  %1268 = fneg float %1267
  br label %1269

1269:                                             ; preds = %1266, %1264
  %1270 = phi float [ %1265, %1264 ], [ %1268, %1266 ]
  %1271 = fadd float %1252, %1270
  store float %1271, ptr %40, align 4, !tbaa !11
  br label %1272

1272:                                             ; preds = %1269, %1190
  %1273 = load i32, ptr %43, align 4, !tbaa !9
  %1274 = load i32, ptr %49, align 4, !tbaa !9
  %1275 = sub nsw i32 %1274, %1273
  store i32 %1275, ptr %49, align 4, !tbaa !9
  br label %1378

1276:                                             ; preds = %1187
  %1277 = load i32, ptr %43, align 4, !tbaa !9
  %1278 = load ptr, ptr %15, align 8, !tbaa !5
  %1279 = load i32, ptr %1278, align 4, !tbaa !9
  %1280 = icmp slt i32 %1277, %1279
  br i1 %1280, label %1281, label %1370

1281:                                             ; preds = %1276
  %1282 = load ptr, ptr %15, align 8, !tbaa !5
  %1283 = load i32, ptr %1282, align 4, !tbaa !9
  %1284 = load i32, ptr %43, align 4, !tbaa !9
  %1285 = sub nsw i32 %1283, %1284
  store i32 %1285, ptr %23, align 4, !tbaa !9
  %1286 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1286, ptr %24, align 4, !tbaa !9
  %1287 = load ptr, ptr %17, align 8, !tbaa !5
  %1288 = load i32, ptr %24, align 4, !tbaa !9
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds %struct.complex, ptr %1287, i64 %1289
  %1291 = getelementptr inbounds %struct.complex, ptr %1290, i32 0, i32 0
  %1292 = load float, ptr %1291, align 4, !tbaa !16
  %1293 = fneg float %1292
  %1294 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  store float %1293, ptr %1294, align 4, !tbaa !16
  %1295 = load ptr, ptr %17, align 8, !tbaa !5
  %1296 = load i32, ptr %24, align 4, !tbaa !9
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds %struct.complex, ptr %1295, i64 %1297
  %1299 = getelementptr inbounds %struct.complex, ptr %1298, i32 0, i32 1
  %1300 = load float, ptr %1299, align 4, !tbaa !19
  %1301 = fneg float %1300
  %1302 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  store float %1301, ptr %1302, align 4, !tbaa !19
  %1303 = load float, ptr %44, align 4, !tbaa !11
  %1304 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %1305 = load float, ptr %1304, align 4, !tbaa !16
  %1306 = fmul float %1303, %1305
  %1307 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %1306, ptr %1307, align 4, !tbaa !16
  %1308 = load float, ptr %44, align 4, !tbaa !11
  %1309 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %1310 = load float, ptr %1309, align 4, !tbaa !19
  %1311 = fmul float %1308, %1310
  %1312 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %1311, ptr %1312, align 4, !tbaa !19
  %1313 = load ptr, ptr %16, align 8, !tbaa !5
  %1314 = load i32, ptr %49, align 4, !tbaa !9
  %1315 = add nsw i32 %1314, 1
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds %struct.complex, ptr %1313, i64 %1316
  %1318 = load ptr, ptr %17, align 8, !tbaa !5
  %1319 = load i32, ptr %43, align 4, !tbaa !9
  %1320 = add nsw i32 %1319, 1
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds %struct.complex, ptr %1318, i64 %1321
  call void @caxpy_(ptr noundef %23, ptr noundef %30, ptr noundef %1317, ptr noundef @c__1, ptr noundef %1322, ptr noundef @c__1)
  %1323 = load ptr, ptr %15, align 8, !tbaa !5
  %1324 = load i32, ptr %1323, align 4, !tbaa !9
  %1325 = load i32, ptr %43, align 4, !tbaa !9
  %1326 = sub nsw i32 %1324, %1325
  store i32 %1326, ptr %23, align 4, !tbaa !9
  %1327 = load i32, ptr %43, align 4, !tbaa !9
  %1328 = load ptr, ptr %17, align 8, !tbaa !5
  %1329 = load i32, ptr %43, align 4, !tbaa !9
  %1330 = add nsw i32 %1329, 1
  %1331 = sext i32 %1330 to i64
  %1332 = getelementptr inbounds %struct.complex, ptr %1328, i64 %1331
  %1333 = call i32 @icamax_(ptr noundef %23, ptr noundef %1332, ptr noundef @c__1)
  %1334 = add nsw i32 %1327, %1333
  store i32 %1334, ptr %42, align 4, !tbaa !9
  %1335 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %1335, ptr %23, align 4, !tbaa !9
  %1336 = load ptr, ptr %17, align 8, !tbaa !5
  %1337 = load i32, ptr %23, align 4, !tbaa !9
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds %struct.complex, ptr %1336, i64 %1338
  %1340 = getelementptr inbounds %struct.complex, ptr %1339, i32 0, i32 0
  %1341 = load float, ptr %1340, align 4, !tbaa !16
  store float %1341, ptr %26, align 4, !tbaa !11
  %1342 = load float, ptr %26, align 4, !tbaa !11
  %1343 = fcmp oge float %1342, 0.000000e+00
  br i1 %1343, label %1344, label %1346

1344:                                             ; preds = %1281
  %1345 = load float, ptr %26, align 4, !tbaa !11
  br label %1349

1346:                                             ; preds = %1281
  %1347 = load float, ptr %26, align 4, !tbaa !11
  %1348 = fneg float %1347
  br label %1349

1349:                                             ; preds = %1346, %1344
  %1350 = phi float [ %1345, %1344 ], [ %1348, %1346 ]
  %1351 = load ptr, ptr %17, align 8, !tbaa !5
  %1352 = load i32, ptr %42, align 4, !tbaa !9
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds %struct.complex, ptr %1351, i64 %1353
  %1355 = call <2 x float> @Cf(ptr noundef %1354)
  store <2 x float> %1355, ptr %67, align 4
  %1356 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 0
  %1357 = load float, ptr %1356, align 4
  %1358 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 1
  %1359 = load float, ptr %1358, align 4
  store float %1359, ptr %27, align 4, !tbaa !11
  %1360 = load float, ptr %27, align 4, !tbaa !11
  %1361 = fcmp oge float %1360, 0.000000e+00
  br i1 %1361, label %1362, label %1364

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

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

1367:                                             ; preds = %1364, %1362
  %1368 = phi float [ %1363, %1362 ], [ %1366, %1364 ]
  %1369 = fadd float %1350, %1368
  store float %1369, ptr %40, align 4, !tbaa !11
  br label %1370

1370:                                             ; preds = %1367, %1276
  %1371 = load i32, ptr %49, align 4, !tbaa !9
  %1372 = load ptr, ptr %15, align 8, !tbaa !5
  %1373 = load i32, ptr %1372, align 4, !tbaa !9
  %1374 = add nsw i32 %1371, %1373
  %1375 = load i32, ptr %43, align 4, !tbaa !9
  %1376 = sub nsw i32 %1374, %1375
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr %49, align 4, !tbaa !9
  br label %1378

1378:                                             ; preds = %1370, %1272
  br label %1379

1379:                                             ; preds = %1378
  %1380 = load i32, ptr %22, align 4, !tbaa !9
  %1381 = load i32, ptr %43, align 4, !tbaa !9
  %1382 = add nsw i32 %1381, %1380
  store i32 %1382, ptr %43, align 4, !tbaa !9
  br label %811, !llvm.loop !25

1383:                                             ; preds = %824
  br label %3087

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

1388:                                             ; preds = %1384
  %1389 = load i32, ptr %53, align 4, !tbaa !9
  %1390 = load i32, ptr %53, align 4, !tbaa !9
  %1391 = add nsw i32 %1390, 1
  %1392 = mul nsw i32 %1389, %1391
  %1393 = sdiv i32 %1392, 2
  store i32 %1393, ptr %49, align 4, !tbaa !9
  store i32 1, ptr %35, align 4, !tbaa !9
  %1394 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %1394, ptr %22, align 4, !tbaa !9
  %1395 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %1395, ptr %21, align 4, !tbaa !9
  %1396 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %1396, ptr %43, align 4, !tbaa !9
  br label %1397

1397:                                             ; preds = %2232, %1388
  %1398 = load i32, ptr %21, align 4, !tbaa !9
  %1399 = icmp slt i32 %1398, 0
  br i1 %1399, label %1400, label %1405

1400:                                             ; preds = %1397
  %1401 = load i32, ptr %43, align 4, !tbaa !9
  %1402 = load i32, ptr %22, align 4, !tbaa !9
  %1403 = icmp sge i32 %1401, %1402
  %1404 = zext i1 %1403 to i32
  br label %1410

1405:                                             ; preds = %1397
  %1406 = load i32, ptr %43, align 4, !tbaa !9
  %1407 = load i32, ptr %22, align 4, !tbaa !9
  %1408 = icmp sle i32 %1406, %1407
  %1409 = zext i1 %1408 to i32
  br label %1410

1410:                                             ; preds = %1405, %1400
  %1411 = phi i32 [ %1404, %1400 ], [ %1409, %1405 ]
  %1412 = icmp ne i32 %1411, 0
  br i1 %1412, label %1413, label %2236

1413:                                             ; preds = %1410
  %1414 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1414, ptr %23, align 4, !tbaa !9
  %1415 = load ptr, ptr %17, align 8, !tbaa !5
  %1416 = load i32, ptr %23, align 4, !tbaa !9
  %1417 = sext i32 %1416 to i64
  %1418 = getelementptr inbounds %struct.complex, ptr %1415, i64 %1417
  %1419 = getelementptr inbounds %struct.complex, ptr %1418, i32 0, i32 0
  %1420 = load float, ptr %1419, align 4, !tbaa !16
  store float %1420, ptr %26, align 4, !tbaa !11
  %1421 = load float, ptr %26, align 4, !tbaa !11
  %1422 = fcmp oge float %1421, 0.000000e+00
  br i1 %1422, label %1423, label %1425

1423:                                             ; preds = %1413
  %1424 = load float, ptr %26, align 4, !tbaa !11
  br label %1428

1425:                                             ; preds = %1413
  %1426 = load float, ptr %26, align 4, !tbaa !11
  %1427 = fneg float %1426
  br label %1428

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

1441:                                             ; preds = %1428
  %1442 = load float, ptr %27, align 4, !tbaa !11
  br label %1446

1443:                                             ; preds = %1428
  %1444 = load float, ptr %27, align 4, !tbaa !11
  %1445 = fneg float %1444
  br label %1446

1446:                                             ; preds = %1443, %1441
  %1447 = phi float [ %1442, %1441 ], [ %1445, %1443 ]
  %1448 = fadd float %1429, %1447
  store float %1448, ptr %50, align 4, !tbaa !11
  %1449 = load float, ptr %44, align 4, !tbaa !11
  %1450 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1449, ptr %1450, align 4, !tbaa !16
  %1451 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float 0.000000e+00, ptr %1451, align 4, !tbaa !19
  %1452 = load float, ptr %40, align 4, !tbaa !11
  %1453 = fcmp oge float %1452, 1.000000e+00
  br i1 %1453, label %1454, label %1456

1454:                                             ; preds = %1446
  %1455 = load float, ptr %40, align 4, !tbaa !11
  br label %1457

1456:                                             ; preds = %1446
  br label %1457

1457:                                             ; preds = %1456, %1454
  %1458 = phi float [ %1455, %1454 ], [ 1.000000e+00, %1456 ]
  %1459 = fdiv float 1.000000e+00, %1458
  store float %1459, ptr %56, align 4, !tbaa !11
  %1460 = load ptr, ptr %19, align 8, !tbaa !5
  %1461 = load i32, ptr %43, align 4, !tbaa !9
  %1462 = sext i32 %1461 to i64
  %1463 = getelementptr inbounds float, ptr %1460, i64 %1462
  %1464 = load float, ptr %1463, align 4, !tbaa !11
  %1465 = load float, ptr %51, align 4, !tbaa !11
  %1466 = load float, ptr %50, align 4, !tbaa !11
  %1467 = fsub float %1465, %1466
  %1468 = load float, ptr %56, align 4, !tbaa !11
  %1469 = fmul float %1467, %1468
  %1470 = fcmp ogt float %1464, %1469
  br i1 %1470, label %1471, label %1569

1471:                                             ; preds = %1457
  %1472 = load float, ptr %56, align 4, !tbaa !11
  %1473 = fmul float %1472, 5.000000e-01
  store float %1473, ptr %56, align 4, !tbaa !11
  %1474 = load i32, ptr %55, align 4, !tbaa !9
  %1475 = icmp ne i32 %1474, 0
  br i1 %1475, label %1476, label %1502

1476:                                             ; preds = %1471
  %1477 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %1477, ptr %23, align 4, !tbaa !9
  %1478 = load float, ptr %44, align 4, !tbaa !11
  %1479 = load ptr, ptr %16, align 8, !tbaa !5
  %1480 = load i32, ptr %23, 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 %30, i32 0, i32 0
  store float %1485, ptr %1486, align 4, !tbaa !16
  %1487 = load float, ptr %44, align 4, !tbaa !11
  %1488 = load ptr, ptr %16, align 8, !tbaa !5
  %1489 = load i32, ptr %23, 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 %30, i32 0, i32 1
  store float %1494, ptr %1495, align 4, !tbaa !19
  %1496 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1497 = load float, ptr %1496, align 4, !tbaa !16
  %1498 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1497, ptr %1498, align 4, !tbaa !16
  %1499 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1500 = load float, ptr %1499, align 4, !tbaa !19
  %1501 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1500, ptr %1501, align 4, !tbaa !19
  br label %1506

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

1506:                                             ; preds = %1502, %1476
  %1507 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1508 = load float, ptr %1507, align 4, !tbaa !16
  store float %1508, ptr %26, align 4, !tbaa !11
  %1509 = load float, ptr %26, 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 %26, align 4, !tbaa !11
  br label %1516

1513:                                             ; preds = %1506
  %1514 = load float, ptr %26, 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 %39)
  store <2 x float> %1518, ptr %69, align 4
  %1519 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 0
  %1520 = load float, ptr %1519, align 4
  %1521 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 1
  %1522 = load float, ptr %1521, align 4
  store float %1522, ptr %27, align 4, !tbaa !11
  %1523 = load float, ptr %27, 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 %27, align 4, !tbaa !11
  br label %1530

1527:                                             ; preds = %1516
  %1528 = load float, ptr %27, 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 %57, align 4, !tbaa !11
  %1533 = load float, ptr %57, 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 %26, align 4, !tbaa !11
  %1536 = load float, ptr %56, align 4, !tbaa !11
  %1537 = load float, ptr %57, align 4, !tbaa !11
  %1538 = fmul float %1536, %1537
  store float %1538, ptr %27, align 4, !tbaa !11
  %1539 = load float, ptr %26, align 4, !tbaa !11
  %1540 = load float, ptr %27, align 4, !tbaa !11
  %1541 = fcmp ole float %1539, %1540
  br i1 %1541, label %1542, label %1544

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

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

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

1554:                                             ; preds = %1546, %1530
  %1555 = load float, ptr %56, 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 %15, align 8, !tbaa !5
  %1559 = load ptr, ptr %17, align 8, !tbaa !5
  %1560 = getelementptr inbounds %struct.complex, ptr %1559, i64 1
  call void @csscal_(ptr noundef %1558, ptr noundef %56, ptr noundef %1560, ptr noundef @c__1)
  %1561 = load float, ptr %56, align 4, !tbaa !11
  %1562 = load ptr, ptr %18, 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 %56, align 4, !tbaa !11
  %1566 = load float, ptr %40, align 4, !tbaa !11
  %1567 = fmul float %1566, %1565
  store float %1567, ptr %40, align 4, !tbaa !11
  br label %1568

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

1569:                                             ; preds = %1568, %1457
  %1570 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float 0.000000e+00, ptr %1570, align 4, !tbaa !16
  %1571 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float 0.000000e+00, ptr %1571, align 4, !tbaa !19
  %1572 = getelementptr inbounds %struct.complex, ptr %45, 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 %1628

1575:                                             ; preds = %1569
  %1576 = getelementptr inbounds %struct.complex, ptr %45, 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 %1628

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

1582:                                             ; preds = %1579
  %1583 = load i32, ptr %43, align 4, !tbaa !9
  %1584 = sub nsw i32 %1583, 1
  store i32 %1584, ptr %23, align 4, !tbaa !9
  %1585 = load ptr, ptr %16, align 8, !tbaa !5
  %1586 = load i32, ptr %49, align 4, !tbaa !9
  %1587 = load i32, ptr %43, align 4, !tbaa !9
  %1588 = sub 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 %17, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.complex, ptr %1592, i64 1
  call void @cdotu_(ptr noundef %30, ptr noundef %23, ptr noundef %1591, ptr noundef @c__1, ptr noundef %1593, ptr noundef @c__1)
  %1594 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1595 = load float, ptr %1594, align 4, !tbaa !16
  %1596 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1595, ptr %1596, align 4, !tbaa !16
  %1597 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1598 = load float, ptr %1597, align 4, !tbaa !19
  %1599 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1598, ptr %1599, align 4, !tbaa !19
  br label %1627

1600:                                             ; preds = %1579
  %1601 = load i32, ptr %43, align 4, !tbaa !9
  %1602 = load ptr, ptr %15, 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 %1626

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

1626:                                             ; preds = %1605, %1600
  br label %1627

1627:                                             ; preds = %1626, %1582
  br label %1868

1628:                                             ; preds = %1575, %1569
  %1629 = load i32, ptr %48, align 4, !tbaa !9
  %1630 = icmp ne i32 %1629, 0
  br i1 %1630, label %1631, label %1745

1631:                                             ; preds = %1628
  %1632 = load i32, ptr %43, align 4, !tbaa !9
  %1633 = sub nsw i32 %1632, 1
  store i32 %1633, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1634

1634:                                             ; preds = %1741, %1631
  %1635 = load i32, ptr %42, align 4, !tbaa !9
  %1636 = load i32, ptr %23, align 4, !tbaa !9
  %1637 = icmp sle i32 %1635, %1636
  br i1 %1637, label %1638, label %1744

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

1741:                                             ; preds = %1638
  %1742 = load i32, ptr %42, align 4, !tbaa !9
  %1743 = add nsw i32 %1742, 1
  store i32 %1743, ptr %42, align 4, !tbaa !9
  br label %1634, !llvm.loop !26

1744:                                             ; preds = %1634
  br label %1867

1745:                                             ; preds = %1628
  %1746 = load i32, ptr %43, align 4, !tbaa !9
  %1747 = load ptr, ptr %15, align 8, !tbaa !5
  %1748 = load i32, ptr %1747, align 4, !tbaa !9
  %1749 = icmp slt i32 %1746, %1748
  br i1 %1749, label %1750, label %1866

1750:                                             ; preds = %1745
  %1751 = load ptr, ptr %15, align 8, !tbaa !5
  %1752 = load i32, ptr %1751, align 4, !tbaa !9
  %1753 = load i32, ptr %43, align 4, !tbaa !9
  %1754 = sub nsw i32 %1752, %1753
  store i32 %1754, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1755

1755:                                             ; preds = %1862, %1750
  %1756 = load i32, ptr %42, align 4, !tbaa !9
  %1757 = load i32, ptr %23, align 4, !tbaa !9
  %1758 = icmp sle i32 %1756, %1757
  br i1 %1758, label %1759, label %1865

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

1862:                                             ; preds = %1759
  %1863 = load i32, ptr %42, align 4, !tbaa !9
  %1864 = add nsw i32 %1863, 1
  store i32 %1864, ptr %42, align 4, !tbaa !9
  br label %1755, !llvm.loop !27

1865:                                             ; preds = %1755
  br label %1866

1866:                                             ; preds = %1865, %1745
  br label %1867

1867:                                             ; preds = %1866, %1744
  br label %1868

1868:                                             ; preds = %1867, %1627
  %1869 = load float, ptr %44, align 4, !tbaa !11
  %1870 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %1869, ptr %1870, align 4, !tbaa !16
  %1871 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float 0.000000e+00, ptr %1871, align 4, !tbaa !19
  %1872 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1873 = load float, ptr %1872, align 4, !tbaa !16
  %1874 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1875 = load float, ptr %1874, align 4, !tbaa !16
  %1876 = fcmp oeq float %1873, %1875
  br i1 %1876, label %1877, label %2147

1877:                                             ; preds = %1868
  %1878 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1879 = load float, ptr %1878, align 4, !tbaa !19
  %1880 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1881 = load float, ptr %1880, align 4, !tbaa !19
  %1882 = fcmp oeq float %1879, %1881
  br i1 %1882, label %1883, label %2147

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

1929:                                             ; preds = %1883
  %1930 = load float, ptr %26, align 4, !tbaa !11
  br label %1934

1931:                                             ; preds = %1883
  %1932 = load float, ptr %26, align 4, !tbaa !11
  %1933 = fneg float %1932
  br label %1934

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

1947:                                             ; preds = %1934
  %1948 = load float, ptr %27, align 4, !tbaa !11
  br label %1952

1949:                                             ; preds = %1934
  %1950 = load float, ptr %27, align 4, !tbaa !11
  %1951 = fneg float %1950
  br label %1952

1952:                                             ; preds = %1949, %1947
  %1953 = phi float [ %1948, %1947 ], [ %1951, %1949 ]
  %1954 = fadd float %1935, %1953
  store float %1954, ptr %50, align 4, !tbaa !11
  %1955 = load i32, ptr %55, align 4, !tbaa !9
  %1956 = icmp ne i32 %1955, 0
  br i1 %1956, label %1957, label %1983

1957:                                             ; preds = %1952
  %1958 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %1958, ptr %23, align 4, !tbaa !9
  %1959 = load float, ptr %44, align 4, !tbaa !11
  %1960 = load ptr, ptr %16, align 8, !tbaa !5
  %1961 = load i32, ptr %23, align 4, !tbaa !9
  %1962 = sext i32 %1961 to i64
  %1963 = getelementptr inbounds %struct.complex, ptr %1960, i64 %1962
  %1964 = getelementptr inbounds %struct.complex, ptr %1963, i32 0, i32 0
  %1965 = load float, ptr %1964, align 4, !tbaa !16
  %1966 = fmul float %1959, %1965
  %1967 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %1966, ptr %1967, align 4, !tbaa !16
  %1968 = load float, ptr %44, align 4, !tbaa !11
  %1969 = load ptr, ptr %16, align 8, !tbaa !5
  %1970 = load i32, ptr %23, align 4, !tbaa !9
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds %struct.complex, ptr %1969, i64 %1971
  %1973 = getelementptr inbounds %struct.complex, ptr %1972, i32 0, i32 1
  %1974 = load float, ptr %1973, align 4, !tbaa !19
  %1975 = fmul float %1968, %1974
  %1976 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %1975, ptr %1976, align 4, !tbaa !19
  %1977 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1978 = load float, ptr %1977, align 4, !tbaa !16
  %1979 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1978, ptr %1979, align 4, !tbaa !16
  %1980 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1981 = load float, ptr %1980, align 4, !tbaa !19
  %1982 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1981, ptr %1982, align 4, !tbaa !19
  br label %1991

1983:                                             ; preds = %1952
  %1984 = load float, ptr %44, align 4, !tbaa !11
  %1985 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1984, ptr %1985, align 4, !tbaa !16
  %1986 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float 0.000000e+00, ptr %1986, align 4, !tbaa !19
  %1987 = load float, ptr %44, align 4, !tbaa !11
  %1988 = fcmp oeq float %1987, 1.000000e+00
  br i1 %1988, label %1989, label %1990

1989:                                             ; preds = %1983
  br label %2146

1990:                                             ; preds = %1983
  br label %1991

1991:                                             ; preds = %1990, %1957
  %1992 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1993 = load float, ptr %1992, align 4, !tbaa !16
  store float %1993, ptr %26, align 4, !tbaa !11
  %1994 = load float, ptr %26, align 4, !tbaa !11
  %1995 = fcmp oge float %1994, 0.000000e+00
  br i1 %1995, label %1996, label %1998

1996:                                             ; preds = %1991
  %1997 = load float, ptr %26, align 4, !tbaa !11
  br label %2001

1998:                                             ; preds = %1991
  %1999 = load float, ptr %26, align 4, !tbaa !11
  %2000 = fneg float %1999
  br label %2001

2001:                                             ; preds = %1998, %1996
  %2002 = phi float [ %1997, %1996 ], [ %2000, %1998 ]
  %2003 = call <2 x float> @Cf(ptr noundef %39)
  store <2 x float> %2003, ptr %71, align 4
  %2004 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %2005 = load float, ptr %2004, align 4
  %2006 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %2007 = load float, ptr %2006, align 4
  store float %2007, ptr %27, align 4, !tbaa !11
  %2008 = load float, ptr %27, align 4, !tbaa !11
  %2009 = fcmp oge float %2008, 0.000000e+00
  br i1 %2009, label %2010, label %2012

2010:                                             ; preds = %2001
  %2011 = load float, ptr %27, align 4, !tbaa !11
  br label %2015

2012:                                             ; preds = %2001
  %2013 = load float, ptr %27, align 4, !tbaa !11
  %2014 = fneg float %2013
  br label %2015

2015:                                             ; preds = %2012, %2010
  %2016 = phi float [ %2011, %2010 ], [ %2014, %2012 ]
  %2017 = fadd float %2002, %2016
  store float %2017, ptr %57, align 4, !tbaa !11
  %2018 = load float, ptr %57, align 4, !tbaa !11
  %2019 = load float, ptr %54, align 4, !tbaa !11
  %2020 = fcmp ogt float %2018, %2019
  br i1 %2020, label %2021, label %2064

2021:                                             ; preds = %2015
  %2022 = load float, ptr %57, align 4, !tbaa !11
  %2023 = fcmp olt float %2022, 1.000000e+00
  br i1 %2023, label %2024, label %2044

2024:                                             ; preds = %2021
  %2025 = load float, ptr %50, align 4, !tbaa !11
  %2026 = load float, ptr %57, align 4, !tbaa !11
  %2027 = load float, ptr %51, align 4, !tbaa !11
  %2028 = fmul float %2026, %2027
  %2029 = fcmp ogt float %2025, %2028
  br i1 %2029, label %2030, label %2043

2030:                                             ; preds = %2024
  %2031 = load float, ptr %50, align 4, !tbaa !11
  %2032 = fdiv float 1.000000e+00, %2031
  store float %2032, ptr %56, align 4, !tbaa !11
  %2033 = load ptr, ptr %15, align 8, !tbaa !5
  %2034 = load ptr, ptr %17, align 8, !tbaa !5
  %2035 = getelementptr inbounds %struct.complex, ptr %2034, i64 1
  call void @csscal_(ptr noundef %2033, ptr noundef %56, ptr noundef %2035, ptr noundef @c__1)
  %2036 = load float, ptr %56, align 4, !tbaa !11
  %2037 = load ptr, ptr %18, align 8, !tbaa !5
  %2038 = load float, ptr %2037, align 4, !tbaa !11
  %2039 = fmul float %2038, %2036
  store float %2039, ptr %2037, align 4, !tbaa !11
  %2040 = load float, ptr %56, align 4, !tbaa !11
  %2041 = load float, ptr %40, align 4, !tbaa !11
  %2042 = fmul float %2041, %2040
  store float %2042, ptr %40, align 4, !tbaa !11
  br label %2043

2043:                                             ; preds = %2030, %2024
  br label %2044

2044:                                             ; preds = %2043, %2021
  %2045 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2045, ptr %23, align 4, !tbaa !9
  %2046 = load ptr, ptr %17, align 8, !tbaa !5
  %2047 = load i32, ptr %43, align 4, !tbaa !9
  %2048 = sext i32 %2047 to i64
  %2049 = getelementptr inbounds %struct.complex, ptr %2046, i64 %2048
  call void @cladiv_(ptr noundef %30, ptr noundef %2049, ptr noundef %39)
  %2050 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2051 = load float, ptr %2050, align 4, !tbaa !16
  %2052 = load ptr, ptr %17, align 8, !tbaa !5
  %2053 = load i32, ptr %23, align 4, !tbaa !9
  %2054 = sext i32 %2053 to i64
  %2055 = getelementptr inbounds %struct.complex, ptr %2052, i64 %2054
  %2056 = getelementptr inbounds %struct.complex, ptr %2055, i32 0, i32 0
  store float %2051, ptr %2056, align 4, !tbaa !16
  %2057 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2058 = load float, ptr %2057, align 4, !tbaa !19
  %2059 = load ptr, ptr %17, align 8, !tbaa !5
  %2060 = load i32, ptr %23, align 4, !tbaa !9
  %2061 = sext i32 %2060 to i64
  %2062 = getelementptr inbounds %struct.complex, ptr %2059, i64 %2061
  %2063 = getelementptr inbounds %struct.complex, ptr %2062, i32 0, i32 1
  store float %2058, ptr %2063, align 4, !tbaa !19
  br label %2145

2064:                                             ; preds = %2015
  %2065 = load float, ptr %57, align 4, !tbaa !11
  %2066 = fcmp ogt float %2065, 0.000000e+00
  br i1 %2066, label %2067, label %2109

2067:                                             ; preds = %2064
  %2068 = load float, ptr %50, align 4, !tbaa !11
  %2069 = load float, ptr %57, align 4, !tbaa !11
  %2070 = load float, ptr %51, align 4, !tbaa !11
  %2071 = fmul float %2069, %2070
  %2072 = fcmp ogt float %2068, %2071
  br i1 %2072, label %2073, label %2089

2073:                                             ; preds = %2067
  %2074 = load float, ptr %57, align 4, !tbaa !11
  %2075 = load float, ptr %51, align 4, !tbaa !11
  %2076 = fmul float %2074, %2075
  %2077 = load float, ptr %50, align 4, !tbaa !11
  %2078 = fdiv float %2076, %2077
  store float %2078, ptr %56, align 4, !tbaa !11
  %2079 = load ptr, ptr %15, align 8, !tbaa !5
  %2080 = load ptr, ptr %17, align 8, !tbaa !5
  %2081 = getelementptr inbounds %struct.complex, ptr %2080, i64 1
  call void @csscal_(ptr noundef %2079, ptr noundef %56, ptr noundef %2081, ptr noundef @c__1)
  %2082 = load float, ptr %56, align 4, !tbaa !11
  %2083 = load ptr, ptr %18, align 8, !tbaa !5
  %2084 = load float, ptr %2083, align 4, !tbaa !11
  %2085 = fmul float %2084, %2082
  store float %2085, ptr %2083, align 4, !tbaa !11
  %2086 = load float, ptr %56, align 4, !tbaa !11
  %2087 = load float, ptr %40, align 4, !tbaa !11
  %2088 = fmul float %2087, %2086
  store float %2088, ptr %40, align 4, !tbaa !11
  br label %2089

2089:                                             ; preds = %2073, %2067
  %2090 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2090, ptr %23, align 4, !tbaa !9
  %2091 = load ptr, ptr %17, align 8, !tbaa !5
  %2092 = load i32, ptr %43, align 4, !tbaa !9
  %2093 = sext i32 %2092 to i64
  %2094 = getelementptr inbounds %struct.complex, ptr %2091, i64 %2093
  call void @cladiv_(ptr noundef %30, ptr noundef %2094, ptr noundef %39)
  %2095 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2096 = load float, ptr %2095, align 4, !tbaa !16
  %2097 = load ptr, ptr %17, align 8, !tbaa !5
  %2098 = load i32, ptr %23, align 4, !tbaa !9
  %2099 = sext i32 %2098 to i64
  %2100 = getelementptr inbounds %struct.complex, ptr %2097, i64 %2099
  %2101 = getelementptr inbounds %struct.complex, ptr %2100, i32 0, i32 0
  store float %2096, ptr %2101, align 4, !tbaa !16
  %2102 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2103 = load float, ptr %2102, align 4, !tbaa !19
  %2104 = load ptr, ptr %17, align 8, !tbaa !5
  %2105 = load i32, ptr %23, align 4, !tbaa !9
  %2106 = sext i32 %2105 to i64
  %2107 = getelementptr inbounds %struct.complex, ptr %2104, i64 %2106
  %2108 = getelementptr inbounds %struct.complex, ptr %2107, i32 0, i32 1
  store float %2103, ptr %2108, align 4, !tbaa !19
  br label %2144

2109:                                             ; preds = %2064
  %2110 = load ptr, ptr %15, align 8, !tbaa !5
  %2111 = load i32, ptr %2110, align 4, !tbaa !9
  store i32 %2111, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %2112

2112:                                             ; preds = %2128, %2109
  %2113 = load i32, ptr %42, align 4, !tbaa !9
  %2114 = load i32, ptr %23, align 4, !tbaa !9
  %2115 = icmp sle i32 %2113, %2114
  br i1 %2115, label %2116, label %2131

2116:                                             ; preds = %2112
  %2117 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %2117, ptr %24, align 4, !tbaa !9
  %2118 = load ptr, ptr %17, align 8, !tbaa !5
  %2119 = load i32, ptr %24, align 4, !tbaa !9
  %2120 = sext i32 %2119 to i64
  %2121 = getelementptr inbounds %struct.complex, ptr %2118, i64 %2120
  %2122 = getelementptr inbounds %struct.complex, ptr %2121, i32 0, i32 0
  store float 0.000000e+00, ptr %2122, align 4, !tbaa !16
  %2123 = load ptr, ptr %17, align 8, !tbaa !5
  %2124 = load i32, ptr %24, align 4, !tbaa !9
  %2125 = sext i32 %2124 to i64
  %2126 = getelementptr inbounds %struct.complex, ptr %2123, i64 %2125
  %2127 = getelementptr inbounds %struct.complex, ptr %2126, i32 0, i32 1
  store float 0.000000e+00, ptr %2127, align 4, !tbaa !19
  br label %2128

2128:                                             ; preds = %2116
  %2129 = load i32, ptr %42, align 4, !tbaa !9
  %2130 = add nsw i32 %2129, 1
  store i32 %2130, ptr %42, align 4, !tbaa !9
  br label %2112, !llvm.loop !28

2131:                                             ; preds = %2112
  %2132 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2132, ptr %23, align 4, !tbaa !9
  %2133 = load ptr, ptr %17, align 8, !tbaa !5
  %2134 = load i32, ptr %23, align 4, !tbaa !9
  %2135 = sext i32 %2134 to i64
  %2136 = getelementptr inbounds %struct.complex, ptr %2133, i64 %2135
  %2137 = getelementptr inbounds %struct.complex, ptr %2136, i32 0, i32 0
  store float 1.000000e+00, ptr %2137, align 4, !tbaa !16
  %2138 = load ptr, ptr %17, align 8, !tbaa !5
  %2139 = load i32, ptr %23, align 4, !tbaa !9
  %2140 = sext i32 %2139 to i64
  %2141 = getelementptr inbounds %struct.complex, ptr %2138, i64 %2140
  %2142 = getelementptr inbounds %struct.complex, ptr %2141, i32 0, i32 1
  store float 0.000000e+00, ptr %2142, align 4, !tbaa !19
  %2143 = load ptr, ptr %18, align 8, !tbaa !5
  store float 0.000000e+00, ptr %2143, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  br label %2144

2144:                                             ; preds = %2131, %2089
  br label %2145

2145:                                             ; preds = %2144, %2044
  br label %2146

2146:                                             ; preds = %2145, %1989
  br label %2179

2147:                                             ; preds = %1877, %1868
  %2148 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2148, ptr %23, align 4, !tbaa !9
  %2149 = load ptr, ptr %17, align 8, !tbaa !5
  %2150 = load i32, ptr %43, align 4, !tbaa !9
  %2151 = sext i32 %2150 to i64
  %2152 = getelementptr inbounds %struct.complex, ptr %2149, i64 %2151
  call void @cladiv_(ptr noundef %31, ptr noundef %2152, ptr noundef %39)
  %2153 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2154 = load float, ptr %2153, align 4, !tbaa !16
  %2155 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2156 = load float, ptr %2155, align 4, !tbaa !16
  %2157 = fsub float %2154, %2156
  %2158 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %2157, ptr %2158, align 4, !tbaa !16
  %2159 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2160 = load float, ptr %2159, align 4, !tbaa !19
  %2161 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2162 = load float, ptr %2161, align 4, !tbaa !19
  %2163 = fsub float %2160, %2162
  %2164 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %2163, ptr %2164, align 4, !tbaa !19
  %2165 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2166 = load float, ptr %2165, align 4, !tbaa !16
  %2167 = load ptr, ptr %17, align 8, !tbaa !5
  %2168 = load i32, ptr %23, align 4, !tbaa !9
  %2169 = sext i32 %2168 to i64
  %2170 = getelementptr inbounds %struct.complex, ptr %2167, i64 %2169
  %2171 = getelementptr inbounds %struct.complex, ptr %2170, i32 0, i32 0
  store float %2166, ptr %2171, align 4, !tbaa !16
  %2172 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2173 = load float, ptr %2172, align 4, !tbaa !19
  %2174 = load ptr, ptr %17, align 8, !tbaa !5
  %2175 = load i32, ptr %23, align 4, !tbaa !9
  %2176 = sext i32 %2175 to i64
  %2177 = getelementptr inbounds %struct.complex, ptr %2174, i64 %2176
  %2178 = getelementptr inbounds %struct.complex, ptr %2177, i32 0, i32 1
  store float %2173, ptr %2178, align 4, !tbaa !19
  br label %2179

2179:                                             ; preds = %2147, %2146
  %2180 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2180, ptr %23, align 4, !tbaa !9
  %2181 = load float, ptr %40, align 4, !tbaa !11
  store float %2181, ptr %28, align 4, !tbaa !11
  %2182 = load ptr, ptr %17, align 8, !tbaa !5
  %2183 = load i32, ptr %23, 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 0
  %2187 = load float, ptr %2186, align 4, !tbaa !16
  store float %2187, ptr %26, align 4, !tbaa !11
  %2188 = load float, ptr %26, align 4, !tbaa !11
  %2189 = fcmp oge float %2188, 0.000000e+00
  br i1 %2189, label %2190, label %2192

2190:                                             ; preds = %2179
  %2191 = load float, ptr %26, align 4, !tbaa !11
  br label %2195

2192:                                             ; preds = %2179
  %2193 = load float, ptr %26, align 4, !tbaa !11
  %2194 = fneg float %2193
  br label %2195

2195:                                             ; preds = %2192, %2190
  %2196 = phi float [ %2191, %2190 ], [ %2194, %2192 ]
  %2197 = load ptr, ptr %17, align 8, !tbaa !5
  %2198 = load i32, ptr %43, align 4, !tbaa !9
  %2199 = sext i32 %2198 to i64
  %2200 = getelementptr inbounds %struct.complex, ptr %2197, i64 %2199
  %2201 = call <2 x float> @Cf(ptr noundef %2200)
  store <2 x float> %2201, ptr %72, align 4
  %2202 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %2203 = load float, ptr %2202, align 4
  %2204 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %2205 = load float, ptr %2204, align 4
  store float %2205, ptr %27, align 4, !tbaa !11
  %2206 = load float, ptr %27, align 4, !tbaa !11
  %2207 = fcmp oge float %2206, 0.000000e+00
  br i1 %2207, label %2208, label %2210

2208:                                             ; preds = %2195
  %2209 = load float, ptr %27, align 4, !tbaa !11
  br label %2213

2210:                                             ; preds = %2195
  %2211 = load float, ptr %27, align 4, !tbaa !11
  %2212 = fneg float %2211
  br label %2213

2213:                                             ; preds = %2210, %2208
  %2214 = phi float [ %2209, %2208 ], [ %2212, %2210 ]
  %2215 = fadd float %2196, %2214
  store float %2215, ptr %29, align 4, !tbaa !11
  %2216 = load float, ptr %28, align 4, !tbaa !11
  %2217 = load float, ptr %29, align 4, !tbaa !11
  %2218 = fcmp oge float %2216, %2217
  br i1 %2218, label %2219, label %2221

2219:                                             ; preds = %2213
  %2220 = load float, ptr %28, align 4, !tbaa !11
  br label %2223

2221:                                             ; preds = %2213
  %2222 = load float, ptr %29, align 4, !tbaa !11
  br label %2223

2223:                                             ; preds = %2221, %2219
  %2224 = phi float [ %2220, %2219 ], [ %2222, %2221 ]
  store float %2224, ptr %40, align 4, !tbaa !11
  %2225 = load i32, ptr %35, align 4, !tbaa !9
  %2226 = add nsw i32 %2225, 1
  store i32 %2226, ptr %35, align 4, !tbaa !9
  %2227 = load i32, ptr %34, align 4, !tbaa !9
  %2228 = load i32, ptr %35, align 4, !tbaa !9
  %2229 = mul nsw i32 %2227, %2228
  %2230 = load i32, ptr %49, align 4, !tbaa !9
  %2231 = add nsw i32 %2230, %2229
  store i32 %2231, ptr %49, align 4, !tbaa !9
  br label %2232

2232:                                             ; preds = %2223
  %2233 = load i32, ptr %21, align 4, !tbaa !9
  %2234 = load i32, ptr %43, align 4, !tbaa !9
  %2235 = add nsw i32 %2234, %2233
  store i32 %2235, ptr %43, align 4, !tbaa !9
  br label %1397, !llvm.loop !29

2236:                                             ; preds = %1410
  br label %3086

2237:                                             ; preds = %1384
  %2238 = load i32, ptr %53, align 4, !tbaa !9
  %2239 = load i32, ptr %53, align 4, !tbaa !9
  %2240 = add nsw i32 %2239, 1
  %2241 = mul nsw i32 %2238, %2240
  %2242 = sdiv i32 %2241, 2
  store i32 %2242, ptr %49, align 4, !tbaa !9
  store i32 1, ptr %35, align 4, !tbaa !9
  %2243 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2243, ptr %21, align 4, !tbaa !9
  %2244 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %2244, ptr %22, align 4, !tbaa !9
  %2245 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %2245, ptr %43, align 4, !tbaa !9
  br label %2246

2246:                                             ; preds = %3081, %2237
  %2247 = load i32, ptr %22, align 4, !tbaa !9
  %2248 = icmp slt i32 %2247, 0
  br i1 %2248, label %2249, label %2254

2249:                                             ; preds = %2246
  %2250 = load i32, ptr %43, align 4, !tbaa !9
  %2251 = load i32, ptr %21, align 4, !tbaa !9
  %2252 = icmp sge i32 %2250, %2251
  %2253 = zext i1 %2252 to i32
  br label %2259

2254:                                             ; preds = %2246
  %2255 = load i32, ptr %43, align 4, !tbaa !9
  %2256 = load i32, ptr %21, align 4, !tbaa !9
  %2257 = icmp sle i32 %2255, %2256
  %2258 = zext i1 %2257 to i32
  br label %2259

2259:                                             ; preds = %2254, %2249
  %2260 = phi i32 [ %2253, %2249 ], [ %2258, %2254 ]
  %2261 = icmp ne i32 %2260, 0
  br i1 %2261, label %2262, label %3085

2262:                                             ; preds = %2259
  %2263 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2263, ptr %23, align 4, !tbaa !9
  %2264 = load ptr, ptr %17, align 8, !tbaa !5
  %2265 = load i32, ptr %23, align 4, !tbaa !9
  %2266 = sext i32 %2265 to i64
  %2267 = getelementptr inbounds %struct.complex, ptr %2264, i64 %2266
  %2268 = getelementptr inbounds %struct.complex, ptr %2267, i32 0, i32 0
  %2269 = load float, ptr %2268, align 4, !tbaa !16
  store float %2269, ptr %26, align 4, !tbaa !11
  %2270 = load float, ptr %26, align 4, !tbaa !11
  %2271 = fcmp oge float %2270, 0.000000e+00
  br i1 %2271, label %2272, label %2274

2272:                                             ; preds = %2262
  %2273 = load float, ptr %26, align 4, !tbaa !11
  br label %2277

2274:                                             ; preds = %2262
  %2275 = load float, ptr %26, align 4, !tbaa !11
  %2276 = fneg float %2275
  br label %2277

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

2290:                                             ; preds = %2277
  %2291 = load float, ptr %27, align 4, !tbaa !11
  br label %2295

2292:                                             ; preds = %2277
  %2293 = load float, ptr %27, align 4, !tbaa !11
  %2294 = fneg float %2293
  br label %2295

2295:                                             ; preds = %2292, %2290
  %2296 = phi float [ %2291, %2290 ], [ %2294, %2292 ]
  %2297 = fadd float %2278, %2296
  store float %2297, ptr %50, align 4, !tbaa !11
  %2298 = load float, ptr %44, align 4, !tbaa !11
  %2299 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2298, ptr %2299, align 4, !tbaa !16
  %2300 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float 0.000000e+00, ptr %2300, align 4, !tbaa !19
  %2301 = load float, ptr %40, align 4, !tbaa !11
  %2302 = fcmp oge float %2301, 1.000000e+00
  br i1 %2302, label %2303, label %2305

2303:                                             ; preds = %2295
  %2304 = load float, ptr %40, align 4, !tbaa !11
  br label %2306

2305:                                             ; preds = %2295
  br label %2306

2306:                                             ; preds = %2305, %2303
  %2307 = phi float [ %2304, %2303 ], [ 1.000000e+00, %2305 ]
  %2308 = fdiv float 1.000000e+00, %2307
  store float %2308, ptr %56, align 4, !tbaa !11
  %2309 = load ptr, ptr %19, align 8, !tbaa !5
  %2310 = load i32, ptr %43, align 4, !tbaa !9
  %2311 = sext i32 %2310 to i64
  %2312 = getelementptr inbounds float, ptr %2309, i64 %2311
  %2313 = load float, ptr %2312, align 4, !tbaa !11
  %2314 = load float, ptr %51, align 4, !tbaa !11
  %2315 = load float, ptr %50, align 4, !tbaa !11
  %2316 = fsub float %2314, %2315
  %2317 = load float, ptr %56, align 4, !tbaa !11
  %2318 = fmul float %2316, %2317
  %2319 = fcmp ogt float %2313, %2318
  br i1 %2319, label %2320, label %2422

2320:                                             ; preds = %2306
  %2321 = load float, ptr %56, align 4, !tbaa !11
  %2322 = fmul float %2321, 5.000000e-01
  store float %2322, ptr %56, align 4, !tbaa !11
  %2323 = load i32, ptr %55, align 4, !tbaa !9
  %2324 = icmp ne i32 %2323, 0
  br i1 %2324, label %2325, label %2355

2325:                                             ; preds = %2320
  %2326 = load ptr, ptr %16, align 8, !tbaa !5
  %2327 = load i32, ptr %49, align 4, !tbaa !9
  %2328 = sext i32 %2327 to i64
  %2329 = getelementptr inbounds %struct.complex, ptr %2326, i64 %2328
  %2330 = call <2 x float> @Cf(ptr noundef %2329)
  store <2 x float> %2330, ptr %74, align 4
  %2331 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %2332 = load float, ptr %2331, align 4
  %2333 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %2334 = load float, ptr %2333, align 4
  %2335 = fneg float %2334
  %2336 = call ptr @_pCf(ptr noundef %31)
  %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 %44, align 4, !tbaa !11
  %2340 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2341 = load float, ptr %2340, align 4, !tbaa !16
  %2342 = fmul float %2339, %2341
  %2343 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %2342, ptr %2343, align 4, !tbaa !16
  %2344 = load float, ptr %44, align 4, !tbaa !11
  %2345 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2346 = load float, ptr %2345, align 4, !tbaa !19
  %2347 = fmul float %2344, %2346
  %2348 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %2347, ptr %2348, align 4, !tbaa !19
  %2349 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2350 = load float, ptr %2349, align 4, !tbaa !16
  %2351 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2350, ptr %2351, align 4, !tbaa !16
  %2352 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2353 = load float, ptr %2352, align 4, !tbaa !19
  %2354 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2353, ptr %2354, align 4, !tbaa !19
  br label %2359

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

2359:                                             ; preds = %2355, %2325
  %2360 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2361 = load float, ptr %2360, align 4, !tbaa !16
  store float %2361, ptr %26, align 4, !tbaa !11
  %2362 = load float, ptr %26, 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 %26, align 4, !tbaa !11
  br label %2369

2366:                                             ; preds = %2359
  %2367 = load float, ptr %26, 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 %39)
  store <2 x float> %2371, ptr %75, align 4
  %2372 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %2373 = load float, ptr %2372, align 4
  %2374 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %2375 = load float, ptr %2374, align 4
  store float %2375, ptr %27, align 4, !tbaa !11
  %2376 = load float, ptr %27, 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 %27, align 4, !tbaa !11
  br label %2383

2380:                                             ; preds = %2369
  %2381 = load float, ptr %27, 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 %57, align 4, !tbaa !11
  %2386 = load float, ptr %57, 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 %26, align 4, !tbaa !11
  %2389 = load float, ptr %56, align 4, !tbaa !11
  %2390 = load float, ptr %57, align 4, !tbaa !11
  %2391 = fmul float %2389, %2390
  store float %2391, ptr %27, align 4, !tbaa !11
  %2392 = load float, ptr %26, align 4, !tbaa !11
  %2393 = load float, ptr %27, align 4, !tbaa !11
  %2394 = fcmp ole float %2392, %2393
  br i1 %2394, label %2395, label %2397

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

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

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

2407:                                             ; preds = %2399, %2383
  %2408 = load float, ptr %56, 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 %15, align 8, !tbaa !5
  %2412 = load ptr, ptr %17, align 8, !tbaa !5
  %2413 = getelementptr inbounds %struct.complex, ptr %2412, i64 1
  call void @csscal_(ptr noundef %2411, ptr noundef %56, ptr noundef %2413, ptr noundef @c__1)
  %2414 = load float, ptr %56, align 4, !tbaa !11
  %2415 = load ptr, ptr %18, 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 %56, align 4, !tbaa !11
  %2419 = load float, ptr %40, align 4, !tbaa !11
  %2420 = fmul float %2419, %2418
  store float %2420, ptr %40, align 4, !tbaa !11
  br label %2421

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

2422:                                             ; preds = %2421, %2306
  %2423 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float 0.000000e+00, ptr %2423, align 4, !tbaa !16
  %2424 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float 0.000000e+00, ptr %2424, align 4, !tbaa !19
  %2425 = getelementptr inbounds %struct.complex, ptr %45, 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 %2481

2428:                                             ; preds = %2422
  %2429 = getelementptr inbounds %struct.complex, ptr %45, 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 %2481

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

2435:                                             ; preds = %2432
  %2436 = load i32, ptr %43, align 4, !tbaa !9
  %2437 = sub nsw i32 %2436, 1
  store i32 %2437, ptr %23, align 4, !tbaa !9
  %2438 = load ptr, ptr %16, align 8, !tbaa !5
  %2439 = load i32, ptr %49, align 4, !tbaa !9
  %2440 = load i32, ptr %43, align 4, !tbaa !9
  %2441 = sub 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 %17, align 8, !tbaa !5
  %2446 = getelementptr inbounds %struct.complex, ptr %2445, i64 1
  call void @cdotc_(ptr noundef %30, ptr noundef %23, ptr noundef %2444, ptr noundef @c__1, ptr noundef %2446, ptr noundef @c__1)
  %2447 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2448 = load float, ptr %2447, align 4, !tbaa !16
  %2449 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %2448, ptr %2449, align 4, !tbaa !16
  %2450 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2451 = load float, ptr %2450, align 4, !tbaa !19
  %2452 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %2451, ptr %2452, align 4, !tbaa !19
  br label %2480

2453:                                             ; preds = %2432
  %2454 = load i32, ptr %43, align 4, !tbaa !9
  %2455 = load ptr, ptr %15, 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 %2479

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

2479:                                             ; preds = %2458, %2453
  br label %2480

2480:                                             ; preds = %2479, %2435
  br label %2713

2481:                                             ; preds = %2428, %2422
  %2482 = load i32, ptr %48, align 4, !tbaa !9
  %2483 = icmp ne i32 %2482, 0
  br i1 %2483, label %2484, label %2594

2484:                                             ; preds = %2481
  %2485 = load i32, ptr %43, align 4, !tbaa !9
  %2486 = sub nsw i32 %2485, 1
  store i32 %2486, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %2487

2487:                                             ; preds = %2590, %2484
  %2488 = load i32, ptr %42, align 4, !tbaa !9
  %2489 = load i32, ptr %23, align 4, !tbaa !9
  %2490 = icmp sle i32 %2488, %2489
  br i1 %2490, label %2491, label %2593

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

2590:                                             ; preds = %2491
  %2591 = load i32, ptr %42, align 4, !tbaa !9
  %2592 = add nsw i32 %2591, 1
  store i32 %2592, ptr %42, align 4, !tbaa !9
  br label %2487, !llvm.loop !30

2593:                                             ; preds = %2487
  br label %2712

2594:                                             ; preds = %2481
  %2595 = load i32, ptr %43, align 4, !tbaa !9
  %2596 = load ptr, ptr %15, align 8, !tbaa !5
  %2597 = load i32, ptr %2596, align 4, !tbaa !9
  %2598 = icmp slt i32 %2595, %2597
  br i1 %2598, label %2599, label %2711

2599:                                             ; preds = %2594
  %2600 = load ptr, ptr %15, align 8, !tbaa !5
  %2601 = load i32, ptr %2600, align 4, !tbaa !9
  %2602 = load i32, ptr %43, align 4, !tbaa !9
  %2603 = sub nsw i32 %2601, %2602
  store i32 %2603, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %2604

2604:                                             ; preds = %2707, %2599
  %2605 = load i32, ptr %42, align 4, !tbaa !9
  %2606 = load i32, ptr %23, align 4, !tbaa !9
  %2607 = icmp sle i32 %2605, %2606
  br i1 %2607, label %2608, label %2710

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

2707:                                             ; preds = %2608
  %2708 = load i32, ptr %42, align 4, !tbaa !9
  %2709 = add nsw i32 %2708, 1
  store i32 %2709, ptr %42, align 4, !tbaa !9
  br label %2604, !llvm.loop !31

2710:                                             ; preds = %2604
  br label %2711

2711:                                             ; preds = %2710, %2594
  br label %2712

2712:                                             ; preds = %2711, %2593
  br label %2713

2713:                                             ; preds = %2712, %2480
  %2714 = load float, ptr %44, align 4, !tbaa !11
  %2715 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %2714, ptr %2715, align 4, !tbaa !16
  %2716 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float 0.000000e+00, ptr %2716, align 4, !tbaa !19
  %2717 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2718 = load float, ptr %2717, align 4, !tbaa !16
  %2719 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2720 = load float, ptr %2719, align 4, !tbaa !16
  %2721 = fcmp oeq float %2718, %2720
  br i1 %2721, label %2722, label %2996

2722:                                             ; preds = %2713
  %2723 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2724 = load float, ptr %2723, align 4, !tbaa !19
  %2725 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2726 = load float, ptr %2725, align 4, !tbaa !19
  %2727 = fcmp oeq float %2724, %2726
  br i1 %2727, label %2728, label %2996

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

2774:                                             ; preds = %2728
  %2775 = load float, ptr %26, align 4, !tbaa !11
  br label %2779

2776:                                             ; preds = %2728
  %2777 = load float, ptr %26, align 4, !tbaa !11
  %2778 = fneg float %2777
  br label %2779

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

2792:                                             ; preds = %2779
  %2793 = load float, ptr %27, align 4, !tbaa !11
  br label %2797

2794:                                             ; preds = %2779
  %2795 = load float, ptr %27, align 4, !tbaa !11
  %2796 = fneg float %2795
  br label %2797

2797:                                             ; preds = %2794, %2792
  %2798 = phi float [ %2793, %2792 ], [ %2796, %2794 ]
  %2799 = fadd float %2780, %2798
  store float %2799, ptr %50, align 4, !tbaa !11
  %2800 = load i32, ptr %55, align 4, !tbaa !9
  %2801 = icmp ne i32 %2800, 0
  br i1 %2801, label %2802, label %2832

2802:                                             ; preds = %2797
  %2803 = load ptr, ptr %16, align 8, !tbaa !5
  %2804 = load i32, ptr %49, align 4, !tbaa !9
  %2805 = sext i32 %2804 to i64
  %2806 = getelementptr inbounds %struct.complex, ptr %2803, i64 %2805
  %2807 = call <2 x float> @Cf(ptr noundef %2806)
  store <2 x float> %2807, ptr %79, align 4
  %2808 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 0
  %2809 = load float, ptr %2808, align 4
  %2810 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 1
  %2811 = load float, ptr %2810, align 4
  %2812 = fneg float %2811
  %2813 = call ptr @_pCf(ptr noundef %31)
  %2814 = getelementptr inbounds { float, float }, ptr %2813, i32 0, i32 0
  %2815 = getelementptr inbounds { float, float }, ptr %2813, i32 0, i32 1
  store float %2809, ptr %2814, align 4
  store float %2812, ptr %2815, align 4
  %2816 = load float, ptr %44, align 4, !tbaa !11
  %2817 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %2818 = load float, ptr %2817, align 4, !tbaa !16
  %2819 = fmul float %2816, %2818
  %2820 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %2819, ptr %2820, align 4, !tbaa !16
  %2821 = load float, ptr %44, align 4, !tbaa !11
  %2822 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %2823 = load float, ptr %2822, align 4, !tbaa !19
  %2824 = fmul float %2821, %2823
  %2825 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %2824, ptr %2825, align 4, !tbaa !19
  %2826 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2827 = load float, ptr %2826, align 4, !tbaa !16
  %2828 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2827, ptr %2828, align 4, !tbaa !16
  %2829 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2830 = load float, ptr %2829, align 4, !tbaa !19
  %2831 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2830, ptr %2831, align 4, !tbaa !19
  br label %2840

2832:                                             ; preds = %2797
  %2833 = load float, ptr %44, align 4, !tbaa !11
  %2834 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2833, ptr %2834, align 4, !tbaa !16
  %2835 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float 0.000000e+00, ptr %2835, align 4, !tbaa !19
  %2836 = load float, ptr %44, align 4, !tbaa !11
  %2837 = fcmp oeq float %2836, 1.000000e+00
  br i1 %2837, label %2838, label %2839

2838:                                             ; preds = %2832
  br label %2995

2839:                                             ; preds = %2832
  br label %2840

2840:                                             ; preds = %2839, %2802
  %2841 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2842 = load float, ptr %2841, align 4, !tbaa !16
  store float %2842, ptr %26, align 4, !tbaa !11
  %2843 = load float, ptr %26, align 4, !tbaa !11
  %2844 = fcmp oge float %2843, 0.000000e+00
  br i1 %2844, label %2845, label %2847

2845:                                             ; preds = %2840
  %2846 = load float, ptr %26, align 4, !tbaa !11
  br label %2850

2847:                                             ; preds = %2840
  %2848 = load float, ptr %26, align 4, !tbaa !11
  %2849 = fneg float %2848
  br label %2850

2850:                                             ; preds = %2847, %2845
  %2851 = phi float [ %2846, %2845 ], [ %2849, %2847 ]
  %2852 = call <2 x float> @Cf(ptr noundef %39)
  store <2 x float> %2852, ptr %80, align 4
  %2853 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 0
  %2854 = load float, ptr %2853, align 4
  %2855 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 1
  %2856 = load float, ptr %2855, align 4
  store float %2856, ptr %27, align 4, !tbaa !11
  %2857 = load float, ptr %27, align 4, !tbaa !11
  %2858 = fcmp oge float %2857, 0.000000e+00
  br i1 %2858, label %2859, label %2861

2859:                                             ; preds = %2850
  %2860 = load float, ptr %27, align 4, !tbaa !11
  br label %2864

2861:                                             ; preds = %2850
  %2862 = load float, ptr %27, align 4, !tbaa !11
  %2863 = fneg float %2862
  br label %2864

2864:                                             ; preds = %2861, %2859
  %2865 = phi float [ %2860, %2859 ], [ %2863, %2861 ]
  %2866 = fadd float %2851, %2865
  store float %2866, ptr %57, align 4, !tbaa !11
  %2867 = load float, ptr %57, align 4, !tbaa !11
  %2868 = load float, ptr %54, align 4, !tbaa !11
  %2869 = fcmp ogt float %2867, %2868
  br i1 %2869, label %2870, label %2913

2870:                                             ; preds = %2864
  %2871 = load float, ptr %57, align 4, !tbaa !11
  %2872 = fcmp olt float %2871, 1.000000e+00
  br i1 %2872, label %2873, label %2893

2873:                                             ; preds = %2870
  %2874 = load float, ptr %50, align 4, !tbaa !11
  %2875 = load float, ptr %57, align 4, !tbaa !11
  %2876 = load float, ptr %51, align 4, !tbaa !11
  %2877 = fmul float %2875, %2876
  %2878 = fcmp ogt float %2874, %2877
  br i1 %2878, label %2879, label %2892

2879:                                             ; preds = %2873
  %2880 = load float, ptr %50, align 4, !tbaa !11
  %2881 = fdiv float 1.000000e+00, %2880
  store float %2881, ptr %56, align 4, !tbaa !11
  %2882 = load ptr, ptr %15, align 8, !tbaa !5
  %2883 = load ptr, ptr %17, align 8, !tbaa !5
  %2884 = getelementptr inbounds %struct.complex, ptr %2883, i64 1
  call void @csscal_(ptr noundef %2882, ptr noundef %56, ptr noundef %2884, ptr noundef @c__1)
  %2885 = load float, ptr %56, align 4, !tbaa !11
  %2886 = load ptr, ptr %18, align 8, !tbaa !5
  %2887 = load float, ptr %2886, align 4, !tbaa !11
  %2888 = fmul float %2887, %2885
  store float %2888, ptr %2886, align 4, !tbaa !11
  %2889 = load float, ptr %56, align 4, !tbaa !11
  %2890 = load float, ptr %40, align 4, !tbaa !11
  %2891 = fmul float %2890, %2889
  store float %2891, ptr %40, align 4, !tbaa !11
  br label %2892

2892:                                             ; preds = %2879, %2873
  br label %2893

2893:                                             ; preds = %2892, %2870
  %2894 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2894, ptr %23, align 4, !tbaa !9
  %2895 = load ptr, ptr %17, align 8, !tbaa !5
  %2896 = load i32, ptr %43, align 4, !tbaa !9
  %2897 = sext i32 %2896 to i64
  %2898 = getelementptr inbounds %struct.complex, ptr %2895, i64 %2897
  call void @cladiv_(ptr noundef %30, ptr noundef %2898, ptr noundef %39)
  %2899 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2900 = load float, ptr %2899, align 4, !tbaa !16
  %2901 = load ptr, ptr %17, align 8, !tbaa !5
  %2902 = load i32, ptr %23, align 4, !tbaa !9
  %2903 = sext i32 %2902 to i64
  %2904 = getelementptr inbounds %struct.complex, ptr %2901, i64 %2903
  %2905 = getelementptr inbounds %struct.complex, ptr %2904, i32 0, i32 0
  store float %2900, ptr %2905, align 4, !tbaa !16
  %2906 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2907 = load float, ptr %2906, align 4, !tbaa !19
  %2908 = load ptr, ptr %17, align 8, !tbaa !5
  %2909 = load i32, ptr %23, align 4, !tbaa !9
  %2910 = sext i32 %2909 to i64
  %2911 = getelementptr inbounds %struct.complex, ptr %2908, i64 %2910
  %2912 = getelementptr inbounds %struct.complex, ptr %2911, i32 0, i32 1
  store float %2907, ptr %2912, align 4, !tbaa !19
  br label %2994

2913:                                             ; preds = %2864
  %2914 = load float, ptr %57, align 4, !tbaa !11
  %2915 = fcmp ogt float %2914, 0.000000e+00
  br i1 %2915, label %2916, label %2958

2916:                                             ; preds = %2913
  %2917 = load float, ptr %50, align 4, !tbaa !11
  %2918 = load float, ptr %57, align 4, !tbaa !11
  %2919 = load float, ptr %51, align 4, !tbaa !11
  %2920 = fmul float %2918, %2919
  %2921 = fcmp ogt float %2917, %2920
  br i1 %2921, label %2922, label %2938

2922:                                             ; preds = %2916
  %2923 = load float, ptr %57, align 4, !tbaa !11
  %2924 = load float, ptr %51, align 4, !tbaa !11
  %2925 = fmul float %2923, %2924
  %2926 = load float, ptr %50, align 4, !tbaa !11
  %2927 = fdiv float %2925, %2926
  store float %2927, ptr %56, align 4, !tbaa !11
  %2928 = load ptr, ptr %15, align 8, !tbaa !5
  %2929 = load ptr, ptr %17, align 8, !tbaa !5
  %2930 = getelementptr inbounds %struct.complex, ptr %2929, i64 1
  call void @csscal_(ptr noundef %2928, ptr noundef %56, ptr noundef %2930, ptr noundef @c__1)
  %2931 = load float, ptr %56, align 4, !tbaa !11
  %2932 = load ptr, ptr %18, align 8, !tbaa !5
  %2933 = load float, ptr %2932, align 4, !tbaa !11
  %2934 = fmul float %2933, %2931
  store float %2934, ptr %2932, align 4, !tbaa !11
  %2935 = load float, ptr %56, align 4, !tbaa !11
  %2936 = load float, ptr %40, align 4, !tbaa !11
  %2937 = fmul float %2936, %2935
  store float %2937, ptr %40, align 4, !tbaa !11
  br label %2938

2938:                                             ; preds = %2922, %2916
  %2939 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2939, ptr %23, align 4, !tbaa !9
  %2940 = load ptr, ptr %17, align 8, !tbaa !5
  %2941 = load i32, ptr %43, align 4, !tbaa !9
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds %struct.complex, ptr %2940, i64 %2942
  call void @cladiv_(ptr noundef %30, ptr noundef %2943, ptr noundef %39)
  %2944 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2945 = load float, ptr %2944, align 4, !tbaa !16
  %2946 = load ptr, ptr %17, align 8, !tbaa !5
  %2947 = load i32, ptr %23, align 4, !tbaa !9
  %2948 = sext i32 %2947 to i64
  %2949 = getelementptr inbounds %struct.complex, ptr %2946, i64 %2948
  %2950 = getelementptr inbounds %struct.complex, ptr %2949, i32 0, i32 0
  store float %2945, ptr %2950, align 4, !tbaa !16
  %2951 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2952 = load float, ptr %2951, align 4, !tbaa !19
  %2953 = load ptr, ptr %17, align 8, !tbaa !5
  %2954 = load i32, ptr %23, align 4, !tbaa !9
  %2955 = sext i32 %2954 to i64
  %2956 = getelementptr inbounds %struct.complex, ptr %2953, i64 %2955
  %2957 = getelementptr inbounds %struct.complex, ptr %2956, i32 0, i32 1
  store float %2952, ptr %2957, align 4, !tbaa !19
  br label %2993

2958:                                             ; preds = %2913
  %2959 = load ptr, ptr %15, align 8, !tbaa !5
  %2960 = load i32, ptr %2959, align 4, !tbaa !9
  store i32 %2960, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %2961

2961:                                             ; preds = %2977, %2958
  %2962 = load i32, ptr %42, align 4, !tbaa !9
  %2963 = load i32, ptr %23, align 4, !tbaa !9
  %2964 = icmp sle i32 %2962, %2963
  br i1 %2964, label %2965, label %2980

2965:                                             ; preds = %2961
  %2966 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %2966, ptr %24, align 4, !tbaa !9
  %2967 = load ptr, ptr %17, align 8, !tbaa !5
  %2968 = load i32, ptr %24, align 4, !tbaa !9
  %2969 = sext i32 %2968 to i64
  %2970 = getelementptr inbounds %struct.complex, ptr %2967, i64 %2969
  %2971 = getelementptr inbounds %struct.complex, ptr %2970, i32 0, i32 0
  store float 0.000000e+00, ptr %2971, align 4, !tbaa !16
  %2972 = load ptr, ptr %17, align 8, !tbaa !5
  %2973 = load i32, ptr %24, align 4, !tbaa !9
  %2974 = sext i32 %2973 to i64
  %2975 = getelementptr inbounds %struct.complex, ptr %2972, i64 %2974
  %2976 = getelementptr inbounds %struct.complex, ptr %2975, i32 0, i32 1
  store float 0.000000e+00, ptr %2976, align 4, !tbaa !19
  br label %2977

2977:                                             ; preds = %2965
  %2978 = load i32, ptr %42, align 4, !tbaa !9
  %2979 = add nsw i32 %2978, 1
  store i32 %2979, ptr %42, align 4, !tbaa !9
  br label %2961, !llvm.loop !32

2980:                                             ; preds = %2961
  %2981 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2981, ptr %23, align 4, !tbaa !9
  %2982 = load ptr, ptr %17, align 8, !tbaa !5
  %2983 = load i32, ptr %23, align 4, !tbaa !9
  %2984 = sext i32 %2983 to i64
  %2985 = getelementptr inbounds %struct.complex, ptr %2982, i64 %2984
  %2986 = getelementptr inbounds %struct.complex, ptr %2985, i32 0, i32 0
  store float 1.000000e+00, ptr %2986, align 4, !tbaa !16
  %2987 = load ptr, ptr %17, align 8, !tbaa !5
  %2988 = load i32, ptr %23, align 4, !tbaa !9
  %2989 = sext i32 %2988 to i64
  %2990 = getelementptr inbounds %struct.complex, ptr %2987, i64 %2989
  %2991 = getelementptr inbounds %struct.complex, ptr %2990, i32 0, i32 1
  store float 0.000000e+00, ptr %2991, align 4, !tbaa !19
  %2992 = load ptr, ptr %18, align 8, !tbaa !5
  store float 0.000000e+00, ptr %2992, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  br label %2993

2993:                                             ; preds = %2980, %2938
  br label %2994

2994:                                             ; preds = %2993, %2893
  br label %2995

2995:                                             ; preds = %2994, %2838
  br label %3028

2996:                                             ; preds = %2722, %2713
  %2997 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %2997, ptr %23, align 4, !tbaa !9
  %2998 = load ptr, ptr %17, align 8, !tbaa !5
  %2999 = load i32, ptr %43, align 4, !tbaa !9
  %3000 = sext i32 %2999 to i64
  %3001 = getelementptr inbounds %struct.complex, ptr %2998, i64 %3000
  call void @cladiv_(ptr noundef %31, ptr noundef %3001, ptr noundef %39)
  %3002 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 0
  %3003 = load float, ptr %3002, align 4, !tbaa !16
  %3004 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3005 = load float, ptr %3004, align 4, !tbaa !16
  %3006 = fsub float %3003, %3005
  %3007 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  store float %3006, ptr %3007, align 4, !tbaa !16
  %3008 = getelementptr inbounds %struct.complex, ptr %31, i32 0, i32 1
  %3009 = load float, ptr %3008, align 4, !tbaa !19
  %3010 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3011 = load float, ptr %3010, align 4, !tbaa !19
  %3012 = fsub float %3009, %3011
  %3013 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  store float %3012, ptr %3013, align 4, !tbaa !19
  %3014 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %3015 = load float, ptr %3014, align 4, !tbaa !16
  %3016 = load ptr, ptr %17, align 8, !tbaa !5
  %3017 = load i32, ptr %23, align 4, !tbaa !9
  %3018 = sext i32 %3017 to i64
  %3019 = getelementptr inbounds %struct.complex, ptr %3016, i64 %3018
  %3020 = getelementptr inbounds %struct.complex, ptr %3019, i32 0, i32 0
  store float %3015, ptr %3020, align 4, !tbaa !16
  %3021 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %3022 = load float, ptr %3021, align 4, !tbaa !19
  %3023 = load ptr, ptr %17, align 8, !tbaa !5
  %3024 = load i32, ptr %23, align 4, !tbaa !9
  %3025 = sext i32 %3024 to i64
  %3026 = getelementptr inbounds %struct.complex, ptr %3023, i64 %3025
  %3027 = getelementptr inbounds %struct.complex, ptr %3026, i32 0, i32 1
  store float %3022, ptr %3027, align 4, !tbaa !19
  br label %3028

3028:                                             ; preds = %2996, %2995
  %3029 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %3029, ptr %23, align 4, !tbaa !9
  %3030 = load float, ptr %40, align 4, !tbaa !11
  store float %3030, ptr %28, align 4, !tbaa !11
  %3031 = load ptr, ptr %17, align 8, !tbaa !5
  %3032 = load i32, ptr %23, 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 0
  %3036 = load float, ptr %3035, align 4, !tbaa !16
  store float %3036, ptr %26, align 4, !tbaa !11
  %3037 = load float, ptr %26, align 4, !tbaa !11
  %3038 = fcmp oge float %3037, 0.000000e+00
  br i1 %3038, label %3039, label %3041

3039:                                             ; preds = %3028
  %3040 = load float, ptr %26, align 4, !tbaa !11
  br label %3044

3041:                                             ; preds = %3028
  %3042 = load float, ptr %26, align 4, !tbaa !11
  %3043 = fneg float %3042
  br label %3044

3044:                                             ; preds = %3041, %3039
  %3045 = phi float [ %3040, %3039 ], [ %3043, %3041 ]
  %3046 = load ptr, ptr %17, align 8, !tbaa !5
  %3047 = load i32, ptr %43, align 4, !tbaa !9
  %3048 = sext i32 %3047 to i64
  %3049 = getelementptr inbounds %struct.complex, ptr %3046, i64 %3048
  %3050 = call <2 x float> @Cf(ptr noundef %3049)
  store <2 x float> %3050, ptr %81, align 4
  %3051 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 0
  %3052 = load float, ptr %3051, align 4
  %3053 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 1
  %3054 = load float, ptr %3053, align 4
  store float %3054, ptr %27, align 4, !tbaa !11
  %3055 = load float, ptr %27, align 4, !tbaa !11
  %3056 = fcmp oge float %3055, 0.000000e+00
  br i1 %3056, label %3057, label %3059

3057:                                             ; preds = %3044
  %3058 = load float, ptr %27, align 4, !tbaa !11
  br label %3062

3059:                                             ; preds = %3044
  %3060 = load float, ptr %27, align 4, !tbaa !11
  %3061 = fneg float %3060
  br label %3062

3062:                                             ; preds = %3059, %3057
  %3063 = phi float [ %3058, %3057 ], [ %3061, %3059 ]
  %3064 = fadd float %3045, %3063
  store float %3064, ptr %29, align 4, !tbaa !11
  %3065 = load float, ptr %28, align 4, !tbaa !11
  %3066 = load float, ptr %29, align 4, !tbaa !11
  %3067 = fcmp oge float %3065, %3066
  br i1 %3067, label %3068, label %3070

3068:                                             ; preds = %3062
  %3069 = load float, ptr %28, align 4, !tbaa !11
  br label %3072

3070:                                             ; preds = %3062
  %3071 = load float, ptr %29, align 4, !tbaa !11
  br label %3072

3072:                                             ; preds = %3070, %3068
  %3073 = phi float [ %3069, %3068 ], [ %3071, %3070 ]
  store float %3073, ptr %40, align 4, !tbaa !11
  %3074 = load i32, ptr %35, align 4, !tbaa !9
  %3075 = add nsw i32 %3074, 1
  store i32 %3075, ptr %35, align 4, !tbaa !9
  %3076 = load i32, ptr %34, align 4, !tbaa !9
  %3077 = load i32, ptr %35, align 4, !tbaa !9
  %3078 = mul nsw i32 %3076, %3077
  %3079 = load i32, ptr %49, align 4, !tbaa !9
  %3080 = add nsw i32 %3079, %3078
  store i32 %3080, ptr %49, align 4, !tbaa !9
  br label %3081

3081:                                             ; preds = %3072
  %3082 = load i32, ptr %22, align 4, !tbaa !9
  %3083 = load i32, ptr %43, align 4, !tbaa !9
  %3084 = add nsw i32 %3083, %3082
  store i32 %3084, ptr %43, align 4, !tbaa !9
  br label %2246, !llvm.loop !33

3085:                                             ; preds = %2259
  br label %3086

3086:                                             ; preds = %3085, %2236
  br label %3087

3087:                                             ; preds = %3086, %1383
  %3088 = load float, ptr %44, align 4, !tbaa !11
  %3089 = load ptr, ptr %18, align 8, !tbaa !5
  %3090 = load float, ptr %3089, align 4, !tbaa !11
  %3091 = fdiv float %3090, %3088
  store float %3091, ptr %3089, align 4, !tbaa !11
  br label %3092

3092:                                             ; preds = %3087, %771
  %3093 = load float, ptr %44, align 4, !tbaa !11
  %3094 = fcmp une float %3093, 1.000000e+00
  br i1 %3094, label %3095, label %3101

3095:                                             ; preds = %3092
  %3096 = load float, ptr %44, align 4, !tbaa !11
  %3097 = fdiv float 1.000000e+00, %3096
  store float %3097, ptr %26, align 4, !tbaa !11
  %3098 = load ptr, ptr %15, align 8, !tbaa !5
  %3099 = load ptr, ptr %19, align 8, !tbaa !5
  %3100 = getelementptr inbounds float, ptr %3099, i64 1
  call void @sscal_(ptr noundef %3098, ptr noundef %26, ptr noundef %3100, ptr noundef @c__1)
  br label %3101

3101:                                             ; preds = %3095, %3092
  store i32 1, ptr %58, align 4
  br label %3102

3102:                                             ; preds = %3101, %158, %149
  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 4, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 8, 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 4, 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 8, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 8, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #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 @ctpsv_(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 @clatps_(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 nocapture noundef %9) local_unnamed_addr #0 {
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca float, align 4
  %15 = alloca %struct.complex, align 8
  %16 = alloca %struct.complex, align 8
  %17 = alloca %struct.complex, align 4
  %18 = alloca %struct.complex, align 8
  %19 = alloca float, align 4
  %20 = alloca %struct.complex, align 8
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  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 8, 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 4, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 4, 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
  %24 = getelementptr inbounds i8, ptr %8, i64 -4
  %25 = getelementptr inbounds i8, ptr %6, i64 -8
  %26 = getelementptr inbounds i8, ptr %5, i64 -8
  store i32 0, ptr %9, align 4, !tbaa !5
  %27 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #8
  %28 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #8
  %29 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #8
  %.not.not.not = icmp eq i32 %27, 0
  br i1 %.not.not.not, label %30, label %32

30:                                               ; preds = %10
  %31 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #8
  %.not841 = icmp eq i32 %31, 0
  br i1 %.not841, label %.thread.sink.split, label %32

32:                                               ; preds = %30, %10
  %.not842 = icmp eq i32 %28, 0
  br i1 %.not842, label %33, label %37

33:                                               ; preds = %32
  %34 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #8
  %.not843 = icmp eq i32 %34, 0
  br i1 %.not843, label %35, label %37

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

37:                                               ; preds = %35, %33, %32
  %.not845 = icmp eq i32 %29, 0
  br i1 %.not845, label %38, label %40

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

40:                                               ; preds = %38, %37
  %41 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #8
  %.not847 = icmp eq i32 %41, 0
  br i1 %.not847, label %42, label %44

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

44:                                               ; preds = %42, %40
  %45 = load i32, ptr %4, align 4, !tbaa !5
  %46 = icmp slt i32 %45, 0
  br i1 %46, label %.thread.sink.split, label %47

47:                                               ; preds = %44
  %.pr = load i32, ptr %9, align 4, !tbaa !5
  %.not849 = icmp eq i32 %.pr, 0
  br i1 %.not849, label %51, label %.thread

.thread.sink.split:                               ; preds = %44, %42, %38, %35, %30
  %.sink = phi i32 [ -1, %30 ], [ -2, %35 ], [ -3, %38 ], [ -4, %42 ], [ -5, %44 ]
  store i32 %.sink, ptr %9, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %47
  %48 = phi i32 [ %.pr, %47 ], [ %.sink, %.thread.sink.split ]
  %49 = sub nsw i32 0, %48
  store i32 %49, ptr %11, align 4, !tbaa !5
  %50 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %11, i32 noundef 6) #8
  br label %969

51:                                               ; preds = %47
  %52 = icmp eq i32 %45, 0
  br i1 %52, label %969, label %53

53:                                               ; preds = %51
  %54 = tail call float @slamch_(ptr noundef nonnull @.str.7) #8
  store float %54, ptr %22, align 4, !tbaa !9
  %55 = fdiv float 1.000000e+00, %54
  store float %55, ptr %21, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %22, ptr noundef nonnull %21) #8
  %56 = call float @slamch_(ptr noundef nonnull @.str.8) #8
  %57 = load float, ptr %22, align 4, !tbaa !9
  %58 = fdiv float %57, %56
  store float %58, ptr %22, align 4, !tbaa !9
  %59 = fdiv float 1.000000e+00, %58
  store float %59, ptr %21, align 4, !tbaa !9
  store float 1.000000e+00, ptr %7, align 4, !tbaa !9
  %60 = call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #8
  %.not850 = icmp eq i32 %60, 0
  br i1 %.not850, label %.loopexit902, label %61

61:                                               ; preds = %53
  %62 = load i32, ptr %4, align 4, !tbaa !5
  br i1 %.not.not.not, label %73, label %63

63:                                               ; preds = %61
  store i32 %62, ptr %11, align 4, !tbaa !5
  %.not852905 = icmp slt i32 %62, 1
  br i1 %.not852905, label %.loopexit902, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %63
  %64 = zext nneg i32 %62 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 ]
  %.0798906 = phi i32 [ 1, %.lr.ph.preheader ], [ %72, %.lr.ph ]
  %65 = trunc i64 %indvars.iv to i32
  %66 = add i32 %65, -1
  store i32 %66, ptr %12, align 4, !tbaa !5
  %67 = zext nneg i32 %.0798906 to i64
  %68 = getelementptr inbounds %struct.complex, ptr %26, i64 %67
  %69 = call float @scasum_(ptr noundef nonnull %12, ptr noundef nonnull %68, ptr noundef nonnull @c__1) #8
  %70 = getelementptr inbounds float, ptr %24, i64 %indvars.iv
  store float %69, ptr %70, align 4, !tbaa !9
  %71 = trunc nuw nsw i64 %indvars.iv to i32
  %72 = add nuw nsw i32 %.0798906, %71
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not852.not = icmp ult i64 %indvars.iv, %64
  br i1 %.not852.not, label %.lr.ph, label %.loopexit902, !llvm.loop !11

73:                                               ; preds = %61
  %74 = add nsw i32 %62, -1
  store i32 %74, ptr %11, align 4, !tbaa !5
  %.not851908 = icmp slt i32 %62, 2
  br i1 %.not851908, label %._crit_edge, label %.lr.ph911.preheader

.lr.ph911.preheader:                              ; preds = %73
  %75 = sext i32 %74 to i64
  br label %.lr.ph911

.lr.ph911:                                        ; preds = %.lr.ph911.preheader, %.lr.ph911
  %76 = phi i32 [ %62, %.lr.ph911.preheader ], [ %82, %.lr.ph911 ]
  %indvars.iv1068 = phi i64 [ 1, %.lr.ph911.preheader ], [ %indvars.iv.next1069, %.lr.ph911 ]
  %.1799909 = phi i32 [ 1, %.lr.ph911.preheader ], [ %85, %.lr.ph911 ]
  %77 = trunc nuw nsw i64 %indvars.iv1068 to i32
  %78 = sub nsw i32 %76, %77
  store i32 %78, ptr %12, align 4, !tbaa !5
  %79 = sext i32 %.1799909 to i64
  %gep = getelementptr %struct.complex, ptr %5, i64 %79
  %80 = call float @scasum_(ptr noundef nonnull %12, ptr noundef %gep, ptr noundef nonnull @c__1) #8
  %81 = getelementptr inbounds float, ptr %24, i64 %indvars.iv1068
  store float %80, ptr %81, align 4, !tbaa !9
  %82 = load i32, ptr %4, align 4, !tbaa !5
  %83 = add i32 %.1799909, 1
  %84 = sub i32 %83, %77
  %85 = add i32 %84, %82
  %indvars.iv.next1069 = add nuw nsw i64 %indvars.iv1068, 1
  %.not851.not = icmp slt i64 %indvars.iv1068, %75
  br i1 %.not851.not, label %.lr.ph911, label %._crit_edge, !llvm.loop !13

._crit_edge:                                      ; preds = %.lr.ph911, %73
  %86 = phi i32 [ %62, %73 ], [ %82, %.lr.ph911 ]
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds float, ptr %24, i64 %87
  store float 0.000000e+00, ptr %88, align 4, !tbaa !9
  br label %.loopexit902

.loopexit902:                                     ; preds = %.lr.ph, %63, %._crit_edge, %53
  %89 = call i32 @isamax_(ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull @c__1) #8
  %90 = sext i32 %89 to i64
  %91 = getelementptr inbounds float, ptr %24, i64 %90
  %92 = load float, ptr %91, align 4, !tbaa !9
  %93 = load float, ptr %21, align 4, !tbaa !9
  %94 = fmul float %93, 5.000000e-01
  %95 = fcmp ugt float %92, %94
  br i1 %95, label %97, label %96

96:                                               ; preds = %.loopexit902
  store float 1.000000e+00, ptr %19, align 4, !tbaa !9
  br label %101

97:                                               ; preds = %.loopexit902
  %98 = load float, ptr %22, align 4, !tbaa !9
  %99 = fmul float %92, %98
  %100 = fdiv float 5.000000e-01, %99
  store float %100, ptr %19, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %19, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #8
  br label %101

101:                                              ; preds = %97, %96
  %102 = load i32, ptr %4, align 4, !tbaa !5
  %.not853912 = icmp slt i32 %102, 1
  br i1 %.not853912, label %._crit_edge917, label %.lr.ph916.preheader

.lr.ph916.preheader:                              ; preds = %101
  %103 = zext nneg i32 %102 to i64
  br label %.lr.ph916

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

._crit_edge917:                                   ; preds = %.lr.ph916, %101
  %.0768.lcssa = phi float [ 0.000000e+00, %101 ], [ %118, %.lr.ph916 ]
  %119 = load i32, ptr %4, align 4, !tbaa !5
  %120 = load float, ptr %19, align 4, !tbaa !9
  %121 = fcmp une float %120, 1.000000e+00
  br i1 %.not842, label %191, label %122

122:                                              ; preds = %._crit_edge917
  %. = select i1 %.not.not.not, i32 1, i32 %119
  %.1154 = select i1 %.not.not.not, i32 %119, i32 1
  %.1155 = select i1 %.not.not.not, i32 1, i32 -1
  br i1 %121, label %.loopexit898, label %123

123:                                              ; preds = %122
  %124 = load float, ptr %22, align 4
  %125 = fcmp oge float %.0768.lcssa, %124
  %126 = select i1 %125, float %.0768.lcssa, float %124
  %127 = fdiv float 5.000000e-01, %126
  br i1 %.not845, label %174, label %128

128:                                              ; preds = %123
  store i32 %.1155, ptr %12, align 4, !tbaa !5
  %129 = icmp sge i32 %., %.1154
  %130 = icmp sle i32 %., %.1154
  %.in859918 = select i1 %.not.not.not, i1 %130, i1 %129
  br i1 %.in859918, label %.lr.ph925, label %.loopexit898

.lr.ph925:                                        ; preds = %128
  %131 = add nsw i32 %., 1
  %132 = mul nsw i32 %131, %.
  %133 = sdiv i32 %132, 2
  %134 = zext i32 %119 to i64
  br label %135

135:                                              ; preds = %.lr.ph925, %158
  %136 = phi float [ %124, %.lr.ph925 ], [ %150, %158 ]
  %indvars.iv1074 = phi i64 [ %134, %.lr.ph925 ], [ %indvars.iv.next1075, %158 ]
  %.0764922 = phi float [ %127, %.lr.ph925 ], [ %.1765, %158 ]
  %.0772921 = phi float [ %127, %.lr.ph925 ], [ %.1773, %158 ]
  %.3788920 = phi i32 [ %., %.lr.ph925 ], [ %170, %158 ]
  %.2800919 = phi i32 [ %133, %.lr.ph925 ], [ %168, %158 ]
  %137 = fcmp ugt float %.0772921, %136
  br i1 %137, label %138, label %.loopexit898

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

152:                                              ; preds = %138
  store float %.0764922, ptr %14, align 4, !tbaa !9
  %153 = fcmp oge float %149, 1.000000e+00
  %154 = select i1 %153, float 1.000000e+00, float %149
  %155 = fmul float %.0772921, %154
  %156 = fcmp ole float %.0764922, %155
  %157 = select i1 %156, float %.0764922, float %155
  br label %158

158:                                              ; preds = %138, %152
  %.1765 = phi float [ %157, %152 ], [ 0.000000e+00, %138 ]
  %159 = sext i32 %.3788920 to i64
  %160 = getelementptr inbounds float, ptr %24, i64 %159
  %161 = load float, ptr %160, align 4, !tbaa !9
  %162 = fadd float %149, %161
  %163 = fcmp ult float %162, %150
  %164 = fdiv float %149, %162
  %165 = fmul float %.0772921, %164
  %.1773 = select i1 %163, float 0.000000e+00, float %165
  %166 = trunc i64 %indvars.iv1074 to i32
  %167 = mul i32 %.1155, %166
  %168 = add nsw i32 %167, %.2800919
  %indvars.iv.next1075 = add i64 %indvars.iv1074, -1
  %169 = load i32, ptr %12, align 4, !tbaa !5
  %170 = add nsw i32 %169, %.3788920
  %171 = icmp slt i32 %169, 0
  %172 = icmp sge i32 %170, %.1154
  %173 = icmp sle i32 %170, %.1154
  %.in859 = select i1 %171, i1 %172, i1 %173
  br i1 %.in859, label %135, label %.loopexit898, !llvm.loop !17

174:                                              ; preds = %123
  %175 = fcmp oge float %127, 1.000000e+00
  %176 = select i1 %175, float 1.000000e+00, float %127
  store i32 %.1154, ptr %12, align 4, !tbaa !5
  %177 = icmp sge i32 %., %.1154
  %178 = icmp sle i32 %., %.1154
  %.in858929 = select i1 %.not.not.not, i1 %178, i1 %177
  %179 = fcmp ugt float %176, %124
  %or.cond877930 = select i1 %.in858929, i1 %179, i1 false
  br i1 %or.cond877930, label %.lr.ph934.preheader, label %.loopexit898

.lr.ph934.preheader:                              ; preds = %174
  %180 = sext i32 %. to i64
  %181 = sext i32 %.1155 to i64
  %182 = sext i32 %.1154 to i64
  br label %.lr.ph934

.lr.ph934:                                        ; preds = %.lr.ph934.preheader, %.lr.ph934
  %indvars.iv1077 = phi i64 [ %180, %.lr.ph934.preheader ], [ %indvars.iv.next1078, %.lr.ph934 ]
  %.2774932 = phi float [ %176, %.lr.ph934.preheader ], [ %187, %.lr.ph934 ]
  %183 = getelementptr inbounds float, ptr %24, i64 %indvars.iv1077
  %184 = load float, ptr %183, align 4, !tbaa !9
  %185 = fadd float %184, 1.000000e+00
  %186 = fdiv float 1.000000e+00, %185
  %187 = fmul float %.2774932, %186
  %indvars.iv.next1078 = add nsw i64 %indvars.iv1077, %181
  %188 = icmp sge i64 %indvars.iv.next1078, %182
  %189 = icmp sle i64 %indvars.iv.next1078, %182
  %.in858 = select i1 %.not.not.not, i1 %189, i1 %188
  %190 = fcmp ugt float %187, %124
  %or.cond877 = select i1 %.in858, i1 %190, i1 false
  br i1 %or.cond877, label %.lr.ph934, label %.loopexit898, !llvm.loop !18

191:                                              ; preds = %._crit_edge917
  %.1156 = select i1 %.not.not.not, i32 %119, i32 1
  %.1157 = select i1 %.not.not.not, i32 1, i32 %119
  %.1158 = select i1 %.not.not.not, i32 -1, i32 1
  br i1 %121, label %.loopexit898, label %192

192:                                              ; preds = %191
  %193 = load float, ptr %22, align 4
  %194 = fcmp oge float %.0768.lcssa, %193
  %195 = select i1 %194, float %.0768.lcssa, float %193
  %196 = fdiv float 5.000000e-01, %195
  br i1 %.not845, label %243, label %197

197:                                              ; preds = %192
  store i32 %.1157, ptr %11, align 4, !tbaa !5
  store i32 %.1158, ptr %12, align 4, !tbaa !5
  %198 = icmp sge i32 %.1156, %.1157
  %199 = icmp sle i32 %.1156, %.1157
  %.in856936 = select i1 %.not.not.not, i1 %198, i1 %199
  br i1 %.in856936, label %.lr.ph943, label %._crit_edge944

.lr.ph943:                                        ; preds = %197
  %200 = add nsw i32 %.1156, 1
  %201 = mul nsw i32 %200, %.1156
  %202 = sdiv i32 %201, 2
  br label %203

203:                                              ; preds = %.lr.ph943, %232
  %204 = phi float [ %193, %.lr.ph943 ], [ %225, %232 ]
  %indvars.iv1080 = phi i64 [ 1, %.lr.ph943 ], [ %indvars.iv.next1081, %232 ]
  %.2766940 = phi float [ %196, %.lr.ph943 ], [ %.3767, %232 ]
  %.3775939 = phi float [ %196, %.lr.ph943 ], [ %213, %232 ]
  %.5790938 = phi i32 [ %.1156, %.lr.ph943 ], [ %237, %232 ]
  %.3801937 = phi i32 [ %202, %.lr.ph943 ], [ %235, %232 ]
  %205 = fcmp ugt float %.3775939, %204
  br i1 %205, label %206, label %.loopexit898

206:                                              ; preds = %203
  %207 = sext i32 %.5790938 to i64
  %208 = getelementptr inbounds float, ptr %24, i64 %207
  %209 = load float, ptr %208, align 4, !tbaa !9
  %210 = fadd float %209, 1.000000e+00
  %211 = fdiv float %.2766940, %210
  %212 = fcmp ole float %.3775939, %211
  %213 = select i1 %212, float %.3775939, float %211
  store i32 %.3801937, ptr %13, align 4, !tbaa !5
  %214 = sext i32 %.3801937 to i64
  %215 = getelementptr inbounds %struct.complex, ptr %26, i64 %214
  %216 = load <2 x float>, ptr %215, align 4, !tbaa !9
  store <2 x float> %216, ptr %18, align 8, !tbaa !9
  %217 = extractelement <2 x float> %216, i64 0
  store float %217, ptr %14, align 4, !tbaa !9
  %218 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %219 = shufflevector <2 x float> %216, <2 x float> %218, <2 x i32> <i32 0, i32 3>
  %220 = fcmp oge <2 x float> %219, zeroinitializer
  %221 = fneg <2 x float> %219
  %222 = select <2 x i1> %220, <2 x float> %219, <2 x float> %221
  %shift1206 = shufflevector <2 x float> %222, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %223 = fadd <2 x float> %222, %shift1206
  %224 = extractelement <2 x float> %223, i64 0
  %225 = load float, ptr %22, align 4, !tbaa !9
  %226 = fcmp ult float %224, %225
  br i1 %226, label %232, label %227

227:                                              ; preds = %206
  %228 = fcmp ogt float %210, %224
  br i1 %228, label %229, label %232

229:                                              ; preds = %227
  %230 = fdiv float %224, %210
  %231 = fmul float %.2766940, %230
  br label %232

232:                                              ; preds = %206, %227, %229
  %.3767 = phi float [ %231, %229 ], [ %.2766940, %227 ], [ 0.000000e+00, %206 ]
  %indvars.iv.next1081 = add nuw nsw i64 %indvars.iv1080, 1
  %233 = trunc i64 %indvars.iv.next1081 to i32
  %234 = mul i32 %.1158, %233
  %235 = add nsw i32 %234, %.3801937
  %236 = load i32, ptr %12, align 4, !tbaa !5
  %237 = add nsw i32 %236, %.5790938
  %238 = icmp slt i32 %236, 0
  %239 = icmp sge i32 %237, %.1157
  %240 = icmp sle i32 %237, %.1157
  %.in856 = select i1 %238, i1 %239, i1 %240
  br i1 %.in856, label %203, label %._crit_edge944, !llvm.loop !19

._crit_edge944:                                   ; preds = %232, %197
  %.3775.lcssa = phi float [ %196, %197 ], [ %213, %232 ]
  %.2766.lcssa = phi float [ %196, %197 ], [ %.3767, %232 ]
  %241 = fcmp ole float %.3775.lcssa, %.2766.lcssa
  %242 = select i1 %241, float %.3775.lcssa, float %.2766.lcssa
  br label %.loopexit898

243:                                              ; preds = %192
  %244 = fcmp oge float %196, 1.000000e+00
  %245 = select i1 %244, float 1.000000e+00, float %196
  store i32 %.1157, ptr %12, align 4, !tbaa !5
  %246 = icmp sge i32 %.1156, %.1157
  %247 = icmp sle i32 %.1156, %.1157
  %.in947 = select i1 %.not.not.not, i1 %246, i1 %247
  %248 = fcmp ugt float %245, %193
  %or.cond879948 = select i1 %.in947, i1 %248, i1 false
  br i1 %or.cond879948, label %.lr.ph952.preheader, label %.loopexit898

.lr.ph952.preheader:                              ; preds = %243
  %249 = sext i32 %.1156 to i64
  %250 = sext i32 %.1158 to i64
  %251 = sext i32 %.1157 to i64
  br label %.lr.ph952

.lr.ph952:                                        ; preds = %.lr.ph952.preheader, %.lr.ph952
  %indvars.iv1083 = phi i64 [ %249, %.lr.ph952.preheader ], [ %indvars.iv.next1084, %.lr.ph952 ]
  %.4776950 = phi float [ %245, %.lr.ph952.preheader ], [ %255, %.lr.ph952 ]
  %252 = getelementptr inbounds float, ptr %24, i64 %indvars.iv1083
  %253 = load float, ptr %252, align 4, !tbaa !9
  %254 = fadd float %253, 1.000000e+00
  %255 = fdiv float %.4776950, %254
  %indvars.iv.next1084 = add nsw i64 %indvars.iv1083, %250
  %256 = icmp sge i64 %indvars.iv.next1084, %251
  %257 = icmp sle i64 %indvars.iv.next1084, %251
  %.in = select i1 %.not.not.not, i1 %256, i1 %257
  %258 = fcmp ugt float %255, %193
  %or.cond879 = select i1 %.in, i1 %258, i1 false
  br i1 %or.cond879, label %.lr.ph952, label %.loopexit898, !llvm.loop !20

.loopexit898:                                     ; preds = %135, %158, %.lr.ph934, %203, %.lr.ph952, %128, %174, %243, %191, %122, %._crit_edge944
  %.2809 = phi i32 [ %.1156, %._crit_edge944 ], [ %., %122 ], [ %.1156, %191 ], [ %.1156, %243 ], [ %., %174 ], [ %., %128 ], [ %.1156, %.lr.ph952 ], [ %.1156, %203 ], [ %., %.lr.ph934 ], [ %., %158 ], [ %., %135 ]
  %259 = phi i32 [ %.1157, %._crit_edge944 ], [ %.1154, %122 ], [ %.1157, %191 ], [ %.1157, %243 ], [ %.1154, %174 ], [ %.1154, %128 ], [ %.1157, %.lr.ph952 ], [ %.1157, %203 ], [ %.1154, %.lr.ph934 ], [ %.1154, %158 ], [ %.1154, %135 ]
  %.5777 = phi float [ %242, %._crit_edge944 ], [ 0.000000e+00, %122 ], [ 0.000000e+00, %191 ], [ %245, %243 ], [ %176, %174 ], [ %127, %128 ], [ %255, %.lr.ph952 ], [ %.3775939, %203 ], [ %187, %.lr.ph934 ], [ %.0772921, %135 ], [ %.1765, %158 ]
  %260 = phi i32 [ %.1158, %._crit_edge944 ], [ %.1155, %122 ], [ %.1158, %191 ], [ %.1158, %243 ], [ %.1155, %174 ], [ %.1155, %128 ], [ %.1158, %.lr.ph952 ], [ %.1158, %203 ], [ %.1155, %.lr.ph934 ], [ %.1155, %158 ], [ %.1155, %135 ]
  %261 = load float, ptr %19, align 4, !tbaa !9
  %262 = fmul float %.5777, %261
  %263 = load float, ptr %22, align 4, !tbaa !9
  %264 = fcmp ogt float %262, %263
  br i1 %264, label %265, label %266

265:                                              ; preds = %.loopexit898
  call void @ctpsv_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef nonnull @c__1) #8
  %.pr891 = load float, ptr %19, align 4, !tbaa !9
  br label %964

266:                                              ; preds = %.loopexit898
  %267 = load float, ptr %21, align 4, !tbaa !9
  %268 = fmul float %267, 5.000000e-01
  %269 = fcmp ogt float %.0768.lcssa, %268
  br i1 %269, label %270, label %273

270:                                              ; preds = %266
  %271 = fdiv float %268, %.0768.lcssa
  store float %271, ptr %7, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull @c__1) #8
  %272 = load float, ptr %21, align 4, !tbaa !9
  br label %275

273:                                              ; preds = %266
  %274 = fmul float %.0768.lcssa, 2.000000e+00
  br label %275

275:                                              ; preds = %273, %270
  %.1769 = phi float [ %272, %270 ], [ %274, %273 ]
  br i1 %.not842, label %458, label %276

276:                                              ; preds = %275
  store i32 %260, ptr %12, align 4, !tbaa !5
  %277 = icmp slt i32 %260, 0
  %278 = icmp sge i32 %.2809, %259
  %279 = icmp sle i32 %.2809, %259
  %.in873962 = select i1 %277, i1 %278, i1 %279
  br i1 %.in873962, label %.lr.ph968, label %.loopexit893

.lr.ph968:                                        ; preds = %276
  %280 = add nsw i32 %.2809, 1
  %281 = mul nsw i32 %280, %.2809
  %282 = sdiv i32 %281, 2
  %283 = getelementptr inbounds i8, ptr %15, i64 4
  %284 = getelementptr inbounds i8, ptr %18, i64 4
  br label %285

285:                                              ; preds = %.lr.ph968, %452
  %.2770966 = phi float [ %.1769, %.lr.ph968 ], [ %.8, %452 ]
  %.7792964 = phi i32 [ %.2809, %.lr.ph968 ], [ %454, %452 ]
  %.4802963 = phi i32 [ %282, %.lr.ph968 ], [ %.5803, %452 ]
  store i32 %.7792964, ptr %13, align 4, !tbaa !5
  %286 = sext i32 %.7792964 to i64
  %287 = getelementptr inbounds %struct.complex, ptr %25, i64 %286
  %288 = load float, ptr %287, align 4, !tbaa !14
  %289 = fcmp oge float %288, 0.000000e+00
  %290 = fneg float %288
  %291 = select i1 %289, float %288, float %290
  %292 = call <2 x float> @Cf(ptr noundef nonnull %287)
  %.sroa.024.4.vec.extract = extractelement <2 x float> %292, i64 1
  %293 = fcmp oge float %.sroa.024.4.vec.extract, 0.000000e+00
  %294 = fneg float %.sroa.024.4.vec.extract
  %295 = select i1 %293, float %.sroa.024.4.vec.extract, float %294
  %296 = fadd float %291, %295
  br i1 %.not845, label %306, label %297

297:                                              ; preds = %285
  store i32 %.4802963, ptr %13, align 4, !tbaa !5
  %298 = load float, ptr %19, align 4, !tbaa !9
  %299 = sext i32 %.4802963 to i64
  %300 = getelementptr inbounds %struct.complex, ptr %26, i64 %299
  %301 = load <2 x float>, ptr %300, align 4, !tbaa !9
  %302 = insertelement <2 x float> poison, float %298, i64 0
  %303 = shufflevector <2 x float> %302, <2 x float> poison, <2 x i32> zeroinitializer
  %304 = fmul <2 x float> %303, %301
  store <2 x float> %304, ptr %15, align 8, !tbaa !9
  store <2 x float> %304, ptr %18, align 8, !tbaa !9
  %305 = extractelement <2 x float> %304, i64 0
  br label %309

306:                                              ; preds = %285
  %307 = load float, ptr %19, align 4, !tbaa !9
  store float %307, ptr %18, align 8, !tbaa !14
  store float 0.000000e+00, ptr %284, align 4, !tbaa !21
  %308 = fcmp oeq float %307, 1.000000e+00
  br i1 %308, label %369, label %309

309:                                              ; preds = %306, %297
  %310 = phi float [ %307, %306 ], [ %305, %297 ]
  %311 = fcmp oge float %310, 0.000000e+00
  %312 = fneg float %310
  %313 = select i1 %311, float %310, float %312
  %314 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.023.4.vec.extract = extractelement <2 x float> %314, i64 1
  %315 = fcmp oge float %.sroa.023.4.vec.extract, 0.000000e+00
  %316 = fneg float %.sroa.023.4.vec.extract
  %317 = select i1 %315, float %.sroa.023.4.vec.extract, float %316
  %318 = fadd float %313, %317
  %319 = load float, ptr %22, align 4, !tbaa !9
  %320 = fcmp ogt float %318, %319
  br i1 %320, label %321, label %334

321:                                              ; preds = %309
  %322 = fcmp olt float %318, 1.000000e+00
  br i1 %322, label %323, label %333

323:                                              ; preds = %321
  %324 = load float, ptr %21, align 4, !tbaa !9
  %325 = fmul float %318, %324
  %326 = fcmp ogt float %296, %325
  br i1 %326, label %327, label %333

327:                                              ; preds = %323
  %328 = fdiv float 1.000000e+00, %296
  store float %328, ptr %23, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %329 = load float, ptr %23, align 4, !tbaa !9
  %330 = load float, ptr %7, align 4, !tbaa !9
  %331 = fmul float %329, %330
  store float %331, ptr %7, align 4, !tbaa !9
  %332 = fmul float %.2770966, %329
  br label %333

333:                                              ; preds = %323, %327, %321
  %.3771 = phi float [ %332, %327 ], [ %.2770966, %323 ], [ %.2770966, %321 ]
  store i32 %.7792964, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %287, ptr noundef nonnull %18) #8
  br label %.sink.split

334:                                              ; preds = %309
  %335 = fcmp ogt float %318, 0.000000e+00
  br i1 %335, label %336, label %353

336:                                              ; preds = %334
  %337 = load float, ptr %21, align 4, !tbaa !9
  %338 = fmul float %318, %337
  %339 = fcmp ogt float %296, %338
  br i1 %339, label %340, label %352

340:                                              ; preds = %336
  %341 = fdiv float %338, %296
  store float %341, ptr %23, align 4, !tbaa !9
  %342 = getelementptr inbounds float, ptr %24, i64 %286
  %343 = load float, ptr %342, align 4, !tbaa !9
  %344 = fcmp ogt float %343, 1.000000e+00
  br i1 %344, label %345, label %347

345:                                              ; preds = %340
  %346 = fdiv float %341, %343
  store float %346, ptr %23, align 4, !tbaa !9
  br label %347

347:                                              ; preds = %345, %340
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %348 = load float, ptr %23, align 4, !tbaa !9
  %349 = load float, ptr %7, align 4, !tbaa !9
  %350 = fmul float %348, %349
  store float %350, ptr %7, align 4, !tbaa !9
  %351 = fmul float %.2770966, %348
  br label %352

352:                                              ; preds = %347, %336
  %.4 = phi float [ %351, %347 ], [ %.2770966, %336 ]
  store i32 %.7792964, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %287, ptr noundef nonnull %18) #8
  br label %.sink.split

353:                                              ; preds = %334
  %354 = load i32, ptr %4, align 4, !tbaa !5
  %.not875954 = icmp slt i32 %354, 1
  br i1 %.not875954, label %.thread885, label %.lr.ph957.preheader

.lr.ph957.preheader:                              ; preds = %353
  %355 = zext nneg i32 %354 to i64
  %356 = shl nuw nsw i64 %355, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %356, i1 false), !tbaa !9
  br label %.thread885

.thread885:                                       ; preds = %.lr.ph957.preheader, %353
  store i32 %.7792964, ptr %13, align 4, !tbaa !5
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %287, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %384

.sink.split:                                      ; preds = %352, %333
  %.5.ph = phi float [ %.4, %352 ], [ %.3771, %333 ]
  %.sink1201 = load float, ptr %15, align 8, !tbaa !14
  %.sink1204 = load i32, ptr %13, align 4, !tbaa !5
  %357 = sext i32 %.sink1204 to i64
  %358 = getelementptr inbounds %struct.complex, ptr %25, i64 %357
  store float %.sink1201, ptr %358, align 4, !tbaa !14
  %359 = load float, ptr %283, align 4, !tbaa !21
  %360 = getelementptr inbounds %struct.complex, ptr %25, i64 %357, i32 1
  store float %359, ptr %360, align 4, !tbaa !21
  store i32 %.7792964, ptr %13, align 4, !tbaa !5
  %storemerge1174 = load float, ptr %287, align 4, !tbaa !14
  store float %storemerge1174, ptr %14, align 4, !tbaa !9
  %361 = fcmp oge float %storemerge1174, 0.000000e+00
  %362 = fneg float %storemerge1174
  %363 = select i1 %361, float %storemerge1174, float %362
  %364 = call <2 x float> @Cf(ptr noundef nonnull %287)
  %.sroa.022.4.vec.extract = extractelement <2 x float> %364, i64 1
  %365 = fcmp oge float %.sroa.022.4.vec.extract, 0.000000e+00
  %366 = fneg float %.sroa.022.4.vec.extract
  %367 = select i1 %365, float %.sroa.022.4.vec.extract, float %366
  %368 = fadd float %363, %367
  br label %369

369:                                              ; preds = %.sink.split, %306
  %.0806 = phi float [ %296, %306 ], [ %368, %.sink.split ]
  %.5 = phi float [ %.2770966, %306 ], [ %.5.ph, %.sink.split ]
  %370 = fcmp ogt float %.0806, 1.000000e+00
  br i1 %370, label %371, label %384

371:                                              ; preds = %369
  %372 = fdiv float 1.000000e+00, %.0806
  store float %372, ptr %23, align 4, !tbaa !9
  %373 = getelementptr inbounds float, ptr %24, i64 %286
  %374 = load float, ptr %373, align 4, !tbaa !9
  %375 = load float, ptr %21, align 4, !tbaa !9
  %376 = fsub float %375, %.5
  %377 = fmul float %372, %376
  %378 = fcmp ogt float %374, %377
  br i1 %378, label %379, label %394

379:                                              ; preds = %371
  %380 = fmul float %372, 5.000000e-01
  store float %380, ptr %23, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %381 = load float, ptr %23, align 4, !tbaa !9
  %382 = load float, ptr %7, align 4, !tbaa !9
  %383 = fmul float %381, %382
  br label %.sink.split1171

384:                                              ; preds = %.thread885, %369
  %.5890 = phi float [ 0.000000e+00, %.thread885 ], [ %.5, %369 ]
  %.0806888 = phi float [ 1.000000e+00, %.thread885 ], [ %.0806, %369 ]
  %385 = getelementptr inbounds float, ptr %24, i64 %286
  %386 = load float, ptr %385, align 4, !tbaa !9
  %387 = fmul float %.0806888, %386
  %388 = load float, ptr %21, align 4, !tbaa !9
  %389 = fsub float %388, %.5890
  %390 = fcmp ogt float %387, %389
  br i1 %390, label %391, label %394

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

.sink.split1171:                                  ; preds = %379, %391
  %.sink1172 = phi float [ %393, %391 ], [ %383, %379 ]
  %.5889.ph = phi float [ %.5890, %391 ], [ %.5, %379 ]
  store float %.sink1172, ptr %7, align 4, !tbaa !9
  br label %394

394:                                              ; preds = %.sink.split1171, %384, %371
  %.5889 = phi float [ %.5890, %384 ], [ %.5, %371 ], [ %.5889.ph, %.sink.split1171 ]
  br i1 %.not.not.not, label %419, label %395

395:                                              ; preds = %394
  %396 = icmp sgt i32 %.7792964, 1
  br i1 %396, label %397, label %._crit_edge1115

._crit_edge1115:                                  ; preds = %395
  %.pre1116 = sub nsw i32 %.4802963, %.7792964
  br label %452

397:                                              ; preds = %395
  %398 = add nsw i32 %.7792964, -1
  store i32 %398, ptr %13, align 4, !tbaa !5
  %399 = load <2 x float>, ptr %287, align 4, !tbaa !9
  %400 = fneg <2 x float> %399
  store <2 x float> %400, ptr %16, align 8, !tbaa !9
  %401 = load float, ptr %19, align 4, !tbaa !9
  %402 = insertelement <2 x float> poison, float %401, i64 0
  %403 = shufflevector <2 x float> %402, <2 x float> poison, <2 x i32> zeroinitializer
  %404 = fmul <2 x float> %403, %400
  store <2 x float> %404, ptr %15, align 8, !tbaa !9
  %405 = sub nsw i32 %.4802963, %.7792964
  %406 = sext i32 %405 to i64
  %gep959 = getelementptr %struct.complex, ptr %5, i64 %406
  call void @caxpy_(ptr noundef nonnull %13, ptr noundef nonnull %15, ptr noundef %gep959, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  store i32 %398, ptr %13, align 4, !tbaa !5
  %407 = call i32 @icamax_(ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  store i32 %407, ptr %13, align 4, !tbaa !5
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds %struct.complex, ptr %25, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !14
  store float %410, ptr %14, align 4, !tbaa !9
  %411 = fcmp oge float %410, 0.000000e+00
  %412 = fneg float %410
  %413 = select i1 %411, float %410, float %412
  %414 = call <2 x float> @Cf(ptr noundef nonnull %409)
  %.sroa.020.4.vec.extract = extractelement <2 x float> %414, i64 1
  %415 = fcmp oge float %.sroa.020.4.vec.extract, 0.000000e+00
  %416 = fneg float %.sroa.020.4.vec.extract
  %417 = select i1 %415, float %.sroa.020.4.vec.extract, float %416
  %418 = fadd float %413, %417
  br label %452

419:                                              ; preds = %394
  %420 = load i32, ptr %4, align 4, !tbaa !5
  %421 = icmp slt i32 %.7792964, %420
  br i1 %421, label %422, label %447

422:                                              ; preds = %419
  %423 = sub nsw i32 %420, %.7792964
  store i32 %423, ptr %13, align 4, !tbaa !5
  %424 = load <2 x float>, ptr %287, align 4, !tbaa !9
  %425 = fneg <2 x float> %424
  store <2 x float> %425, ptr %16, align 8, !tbaa !9
  %426 = load float, ptr %19, align 4, !tbaa !9
  %427 = insertelement <2 x float> poison, float %426, i64 0
  %428 = shufflevector <2 x float> %427, <2 x float> poison, <2 x i32> zeroinitializer
  %429 = fmul <2 x float> %428, %425
  store <2 x float> %429, ptr %15, align 8, !tbaa !9
  %430 = sext i32 %.4802963 to i64
  %gep961 = getelementptr %struct.complex, ptr %5, i64 %430
  %431 = getelementptr i8, ptr %287, i64 8
  call void @caxpy_(ptr noundef nonnull %13, ptr noundef nonnull %15, ptr noundef %gep961, ptr noundef nonnull @c__1, ptr noundef %431, ptr noundef nonnull @c__1) #8
  %432 = load i32, ptr %4, align 4, !tbaa !5
  %433 = sub nsw i32 %432, %.7792964
  store i32 %433, ptr %13, align 4, !tbaa !5
  %434 = call i32 @icamax_(ptr noundef nonnull %13, ptr noundef %431, ptr noundef nonnull @c__1) #8
  %435 = add nsw i32 %434, %.7792964
  store i32 %435, ptr %13, align 4, !tbaa !5
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds %struct.complex, ptr %25, i64 %436
  %438 = load float, ptr %437, align 4, !tbaa !14
  store float %438, ptr %14, align 4, !tbaa !9
  %439 = fcmp oge float %438, 0.000000e+00
  %440 = fneg float %438
  %441 = select i1 %439, float %438, float %440
  %442 = call <2 x float> @Cf(ptr noundef nonnull %437)
  %.sroa.019.4.vec.extract = extractelement <2 x float> %442, i64 1
  %443 = fcmp oge float %.sroa.019.4.vec.extract, 0.000000e+00
  %444 = fneg float %.sroa.019.4.vec.extract
  %445 = select i1 %443, float %.sroa.019.4.vec.extract, float %444
  %446 = fadd float %441, %445
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  br label %447

447:                                              ; preds = %422, %419
  %448 = phi i32 [ %.pre, %422 ], [ %420, %419 ]
  %.7 = phi float [ %446, %422 ], [ %.5889, %419 ]
  %449 = add i32 %.4802963, 1
  %450 = sub i32 %449, %.7792964
  %451 = add i32 %450, %448
  br label %452

452:                                              ; preds = %397, %._crit_edge1115, %447
  %.5803 = phi i32 [ %451, %447 ], [ %.pre1116, %._crit_edge1115 ], [ %405, %397 ]
  %.8 = phi float [ %.7, %447 ], [ %.5889, %._crit_edge1115 ], [ %418, %397 ]
  %453 = load i32, ptr %12, align 4, !tbaa !5
  %454 = add nsw i32 %453, %.7792964
  %455 = icmp slt i32 %453, 0
  %456 = icmp sge i32 %454, %259
  %457 = icmp sle i32 %454, %259
  %.in873 = select i1 %455, i1 %456, i1 %457
  br i1 %.in873, label %285, label %.loopexit893, !llvm.loop !22

458:                                              ; preds = %275
  %459 = call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #8
  %.not860 = icmp eq i32 %459, 0
  %460 = icmp slt i32 %260, 0
  %461 = icmp sge i32 %.2809, %259
  %462 = icmp sle i32 %.2809, %259
  %.in8611036 = select i1 %460, i1 %461, i1 %462
  br i1 %.not860, label %698, label %463

463:                                              ; preds = %458
  store i32 %259, ptr %12, align 4, !tbaa !5
  store i32 %260, ptr %11, align 4, !tbaa !5
  br i1 %.in8611036, label %.lr.ph1010, label %.loopexit893

.lr.ph1010:                                       ; preds = %463
  %464 = add nsw i32 %.2809, 1
  %465 = mul nsw i32 %464, %.2809
  %466 = sdiv i32 %465, 2
  %467 = getelementptr inbounds i8, ptr %20, i64 4
  %468 = getelementptr inbounds i8, ptr %15, i64 4
  %469 = getelementptr inbounds i8, ptr %18, i64 4
  br label %470

470:                                              ; preds = %.lr.ph1010, %679
  %indvars.iv1100 = phi i64 [ 1, %.lr.ph1010 ], [ %indvars.iv.next1101, %679 ]
  %.91007 = phi float [ %.1769, %.lr.ph1010 ], [ %690, %679 ]
  %.87931005 = phi i32 [ %.2809, %.lr.ph1010 ], [ %694, %679 ]
  %.68041002 = phi i32 [ %466, %.lr.ph1010 ], [ %693, %679 ]
  store i32 %.87931005, ptr %13, align 4, !tbaa !5
  %471 = sext i32 %.87931005 to i64
  %472 = getelementptr inbounds %struct.complex, ptr %25, i64 %471
  %473 = load float, ptr %472, align 4, !tbaa !14
  store float %473, ptr %14, align 4, !tbaa !9
  %474 = fcmp oge float %473, 0.000000e+00
  %475 = fneg float %473
  %476 = select i1 %474, float %473, float %475
  %477 = call <2 x float> @Cf(ptr noundef nonnull %472)
  %.sroa.018.4.vec.extract = extractelement <2 x float> %477, i64 1
  %478 = fcmp oge float %.sroa.018.4.vec.extract, 0.000000e+00
  %479 = fneg float %.sroa.018.4.vec.extract
  %480 = select i1 %478, float %.sroa.018.4.vec.extract, float %479
  %481 = fadd float %476, %480
  %482 = load float, ptr %19, align 4, !tbaa !9
  store float %482, ptr %20, align 8, !tbaa !14
  store float 0.000000e+00, ptr %467, align 4, !tbaa !21
  %483 = fcmp oge float %.91007, 1.000000e+00
  %484 = select i1 %483, float %.91007, float 1.000000e+00
  %485 = fdiv float 1.000000e+00, %484
  store float %485, ptr %23, align 4, !tbaa !9
  %486 = getelementptr inbounds float, ptr %24, i64 %471
  %487 = load float, ptr %486, align 4, !tbaa !9
  %488 = load float, ptr %21, align 4, !tbaa !9
  %489 = fsub float %488, %481
  %490 = fmul float %485, %489
  %491 = fcmp ogt float %487, %490
  br i1 %491, label %492, label %525

492:                                              ; preds = %470
  %493 = fmul float %485, 5.000000e-01
  store float %493, ptr %23, align 4, !tbaa !9
  %494 = insertelement <2 x float> <float poison, float 0.000000e+00>, float %482, i64 0
  br i1 %.not845, label %501, label %495

495:                                              ; preds = %492
  store i32 %.68041002, ptr %13, align 4, !tbaa !5
  %496 = sext i32 %.68041002 to i64
  %497 = getelementptr inbounds %struct.complex, ptr %26, i64 %496
  %498 = load <2 x float>, ptr %497, align 4, !tbaa !9
  %499 = shufflevector <2 x float> %494, <2 x float> poison, <2 x i32> zeroinitializer
  %500 = fmul <2 x float> %499, %498
  store <2 x float> %500, ptr %15, align 8, !tbaa !9
  br label %501

501:                                              ; preds = %492, %495
  %502 = phi <2 x float> [ %500, %495 ], [ %494, %492 ]
  store <2 x float> %502, ptr %18, align 8, !tbaa !9
  %503 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %504 = shufflevector <2 x float> %502, <2 x float> %503, <2 x i32> <i32 0, i32 3>
  %505 = fcmp oge <2 x float> %504, zeroinitializer
  %506 = fneg <2 x float> %504
  %507 = select <2 x i1> %505, <2 x float> %504, <2 x float> %506
  %shift1207 = shufflevector <2 x float> %507, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %508 = fadd <2 x float> %507, %shift1207
  %509 = extractelement <2 x float> %508, i64 0
  %510 = fcmp ogt float %509, 1.000000e+00
  br i1 %510, label %511, label %517

511:                                              ; preds = %501
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %512 = load float, ptr %23, align 4, !tbaa !9
  %513 = fmul float %509, %512
  %514 = fcmp oge float %513, 1.000000e+00
  %515 = select i1 %514, float 1.000000e+00, float %513
  store float %515, ptr %23, align 4, !tbaa !9
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %20, ptr noundef nonnull %18) #8
  %516 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %516, ptr %20, align 8, !tbaa !9
  br label %517

517:                                              ; preds = %511, %501
  %518 = load float, ptr %23, align 4, !tbaa !9
  %519 = fcmp olt float %518, 1.000000e+00
  br i1 %519, label %520, label %525

520:                                              ; preds = %517
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %521 = load float, ptr %23, align 4, !tbaa !9
  %522 = load float, ptr %7, align 4, !tbaa !9
  %523 = fmul float %521, %522
  store float %523, ptr %7, align 4, !tbaa !9
  %524 = fmul float %.91007, %521
  br label %525

525:                                              ; preds = %517, %520, %470
  %.10 = phi float [ %524, %520 ], [ %.91007, %517 ], [ %.91007, %470 ]
  %526 = load float, ptr %20, align 8, !tbaa !14
  %527 = fcmp oeq float %526, 1.000000e+00
  %528 = load float, ptr %467, align 4
  %529 = fcmp oeq float %528, 0.000000e+00
  %or.cond = select i1 %527, i1 %529, i1 false
  br i1 %or.cond, label %530, label %544

530:                                              ; preds = %525
  br i1 %.not.not.not, label %536, label %531

531:                                              ; preds = %530
  %532 = add nsw i32 %.87931005, -1
  store i32 %532, ptr %13, align 4, !tbaa !5
  %533 = sub nsw i32 %.68041002, %.87931005
  %534 = sext i32 %533 to i64
  %gep998 = getelementptr %struct.complex, ptr %5, i64 %534
  call void @cdotu_(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %gep998, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1)
  %535 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit894

536:                                              ; preds = %530
  %537 = load i32, ptr %4, align 4, !tbaa !5
  %538 = icmp slt i32 %.87931005, %537
  br i1 %538, label %539, label %.loopexit894

539:                                              ; preds = %536
  %540 = sub nsw i32 %537, %.87931005
  store i32 %540, ptr %13, align 4, !tbaa !5
  %541 = sext i32 %.68041002 to i64
  %gep1000 = getelementptr %struct.complex, ptr %5, i64 %541
  %542 = getelementptr i8, ptr %472, i64 8
  call void @cdotu_(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %gep1000, ptr noundef nonnull @c__1, ptr noundef %542, ptr noundef nonnull @c__1)
  %543 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit894

544:                                              ; preds = %525
  br i1 %.not.not.not, label %569, label %545

545:                                              ; preds = %544
  %.not870.not969 = icmp sgt i32 %.87931005, 1
  br i1 %.not870.not969, label %.lr.ph974, label %.loopexit894

.lr.ph974:                                        ; preds = %545
  %546 = sub i32 %.68041002, %.87931005
  %547 = sext i32 %546 to i64
  %wide.trip.count = zext nneg i32 %.87931005 to i64
  %invariant.gep = getelementptr %struct.complex, ptr %26, i64 %547
  br label %548

548:                                              ; preds = %.lr.ph974, %548
  %indvars.iv1089 = phi i64 [ 1, %.lr.ph974 ], [ %indvars.iv.next1090, %548 ]
  %549 = phi <2 x float> [ zeroinitializer, %.lr.ph974 ], [ %568, %548 ]
  %gep1143 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv1089
  %550 = load float, ptr %gep1143, align 4, !tbaa !14
  %551 = getelementptr inbounds i8, ptr %gep1143, i64 4
  %552 = load float, ptr %551, align 4, !tbaa !21
  %553 = fneg float %552
  %554 = fmul float %528, %553
  %555 = call float @llvm.fmuladd.f32(float %550, float %526, float %554)
  %556 = fmul float %526, %552
  %557 = call float @llvm.fmuladd.f32(float %550, float %528, float %556)
  %558 = getelementptr inbounds %struct.complex, ptr %25, i64 %indvars.iv1089
  %559 = fneg float %557
  %560 = load <2 x float>, ptr %558, align 4, !tbaa !9
  %561 = insertelement <2 x float> poison, float %557, i64 0
  %562 = insertelement <2 x float> %561, float %559, i64 1
  %563 = fmul <2 x float> %560, %562
  %564 = shufflevector <2 x float> %563, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %565 = insertelement <2 x float> poison, float %555, i64 0
  %566 = shufflevector <2 x float> %565, <2 x float> poison, <2 x i32> zeroinitializer
  %567 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %566, <2 x float> %560, <2 x float> %564)
  %568 = fadd <2 x float> %549, %567
  %indvars.iv.next1090 = add nuw nsw i64 %indvars.iv1089, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next1090, %wide.trip.count
  br i1 %exitcond.not, label %..loopexit895_crit_edge, label %548, !llvm.loop !23

569:                                              ; preds = %544
  %570 = load i32, ptr %4, align 4, !tbaa !5
  %.not = icmp slt i32 %.87931005, %570
  br i1 %.not, label %.lr.ph985.preheader, label %.loopexit894

.lr.ph985.preheader:                              ; preds = %569
  %571 = sext i32 %.68041002 to i64
  %572 = add i32 %570, 1
  %573 = sub i32 %572, %.87931005
  %wide.trip.count1095 = zext i32 %573 to i64
  %invariant.gep1144 = getelementptr %struct.complex, ptr %26, i64 %571
  %invariant.gep1146 = getelementptr %struct.complex, ptr %25, i64 %471
  br label %.lr.ph985

.lr.ph985:                                        ; preds = %.lr.ph985.preheader, %.lr.ph985
  %indvars.iv1092 = phi i64 [ 1, %.lr.ph985.preheader ], [ %indvars.iv.next1093, %.lr.ph985 ]
  %574 = phi <2 x float> [ zeroinitializer, %.lr.ph985.preheader ], [ %592, %.lr.ph985 ]
  %gep1145 = getelementptr %struct.complex, ptr %invariant.gep1144, i64 %indvars.iv1092
  %575 = load float, ptr %gep1145, align 4, !tbaa !14
  %576 = getelementptr inbounds i8, ptr %gep1145, i64 4
  %577 = load float, ptr %576, align 4, !tbaa !21
  %578 = fneg float %577
  %579 = fmul float %528, %578
  %580 = call float @llvm.fmuladd.f32(float %575, float %526, float %579)
  %581 = fmul float %526, %577
  %582 = call float @llvm.fmuladd.f32(float %575, float %528, float %581)
  %gep1147 = getelementptr %struct.complex, ptr %invariant.gep1146, i64 %indvars.iv1092
  %583 = fneg float %582
  %584 = load <2 x float>, ptr %gep1147, align 4, !tbaa !9
  %585 = insertelement <2 x float> poison, float %582, i64 0
  %586 = insertelement <2 x float> %585, float %583, i64 1
  %587 = fmul <2 x float> %584, %586
  %588 = shufflevector <2 x float> %587, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %589 = insertelement <2 x float> poison, float %580, i64 0
  %590 = shufflevector <2 x float> %589, <2 x float> poison, <2 x i32> zeroinitializer
  %591 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %590, <2 x float> %584, <2 x float> %588)
  %592 = fadd <2 x float> %574, %591
  %indvars.iv.next1093 = add nuw nsw i64 %indvars.iv1092, 1
  %exitcond1096.not = icmp eq i64 %indvars.iv.next1093, %wide.trip.count1095
  br i1 %exitcond1096.not, label %..loopexit894_crit_edge, label %.lr.ph985, !llvm.loop !24

..loopexit894_crit_edge:                          ; preds = %.lr.ph985
  store <2 x float> %591, ptr %16, align 8, !tbaa !9
  br label %.loopexit894

..loopexit895_crit_edge:                          ; preds = %548
  store <2 x float> %567, ptr %16, align 8, !tbaa !9
  br label %.loopexit894

.loopexit894:                                     ; preds = %545, %..loopexit895_crit_edge, %..loopexit894_crit_edge, %569, %531, %539, %536
  %593 = phi <2 x float> [ %535, %531 ], [ %543, %539 ], [ zeroinitializer, %536 ], [ zeroinitializer, %569 ], [ %592, %..loopexit894_crit_edge ], [ %568, %..loopexit895_crit_edge ], [ zeroinitializer, %545 ]
  %594 = load float, ptr %19, align 4, !tbaa !9
  store float %594, ptr %15, align 8, !tbaa !14
  store float 0.000000e+00, ptr %468, align 4, !tbaa !21
  %595 = load float, ptr %20, align 8, !tbaa !14
  %596 = fcmp oeq float %595, %594
  %597 = load float, ptr %467, align 4
  %598 = fcmp oeq float %597, 0.000000e+00
  %or.cond881 = select i1 %596, i1 %598, i1 false
  br i1 %or.cond881, label %599, label %673

599:                                              ; preds = %.loopexit894
  %600 = load <2 x float>, ptr %472, align 4, !tbaa !9
  %601 = fsub <2 x float> %600, %593
  store <2 x float> %601, ptr %15, align 8, !tbaa !9
  store <2 x float> %601, ptr %472, align 4, !tbaa !9
  store i32 %.87931005, ptr %13, align 4, !tbaa !5
  %602 = extractelement <2 x float> %601, i64 0
  %603 = fcmp oge float %602, 0.000000e+00
  %604 = fneg float %602
  %605 = select i1 %603, float %602, float %604
  %606 = call <2 x float> @Cf(ptr noundef nonnull %472)
  %.sroa.016.4.vec.extract = extractelement <2 x float> %606, i64 1
  %607 = fcmp oge float %.sroa.016.4.vec.extract, 0.000000e+00
  %608 = fneg float %.sroa.016.4.vec.extract
  %609 = select i1 %607, float %.sroa.016.4.vec.extract, float %608
  %610 = fadd float %605, %609
  br i1 %.not845, label %620, label %611

611:                                              ; preds = %599
  store i32 %.68041002, ptr %13, align 4, !tbaa !5
  %612 = load float, ptr %19, align 4, !tbaa !9
  %613 = sext i32 %.68041002 to i64
  %614 = getelementptr inbounds %struct.complex, ptr %26, i64 %613
  %615 = load <2 x float>, ptr %614, align 4, !tbaa !9
  %616 = insertelement <2 x float> poison, float %612, i64 0
  %617 = shufflevector <2 x float> %616, <2 x float> poison, <2 x i32> zeroinitializer
  %618 = fmul <2 x float> %617, %615
  store <2 x float> %618, ptr %15, align 8, !tbaa !9
  store <2 x float> %618, ptr %18, align 8, !tbaa !9
  %619 = extractelement <2 x float> %618, i64 0
  br label %623

620:                                              ; preds = %599
  %621 = load float, ptr %19, align 4, !tbaa !9
  store float %621, ptr %18, align 8, !tbaa !14
  store float 0.000000e+00, ptr %469, align 4, !tbaa !21
  %622 = fcmp oeq float %621, 1.000000e+00
  br i1 %622, label %679, label %623

623:                                              ; preds = %620, %611
  %624 = phi float [ %621, %620 ], [ %619, %611 ]
  store float %624, ptr %14, align 4, !tbaa !9
  %625 = fcmp oge float %624, 0.000000e+00
  %626 = fneg float %624
  %627 = select i1 %625, float %624, float %626
  %628 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.015.4.vec.extract = extractelement <2 x float> %628, i64 1
  %629 = fcmp oge float %.sroa.015.4.vec.extract, 0.000000e+00
  %630 = fneg float %.sroa.015.4.vec.extract
  %631 = select i1 %629, float %.sroa.015.4.vec.extract, float %630
  %632 = fadd float %627, %631
  %633 = load float, ptr %22, align 4, !tbaa !9
  %634 = fcmp ogt float %632, %633
  br i1 %634, label %635, label %652

635:                                              ; preds = %623
  %636 = fcmp olt float %632, 1.000000e+00
  br i1 %636, label %637, label %647

637:                                              ; preds = %635
  %638 = load float, ptr %21, align 4, !tbaa !9
  %639 = fmul float %632, %638
  %640 = fcmp ogt float %610, %639
  br i1 %640, label %641, label %647

641:                                              ; preds = %637
  %642 = fdiv float 1.000000e+00, %610
  store float %642, ptr %23, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %643 = load float, ptr %23, align 4, !tbaa !9
  %644 = load float, ptr %7, align 4, !tbaa !9
  %645 = fmul float %643, %644
  store float %645, ptr %7, align 4, !tbaa !9
  %646 = fmul float %.10, %643
  br label %647

647:                                              ; preds = %637, %641, %635
  %.11 = phi float [ %646, %641 ], [ %.10, %637 ], [ %.10, %635 ]
  store i32 %.87931005, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %472, ptr noundef nonnull %18) #8
  %648 = load i32, ptr %13, align 4, !tbaa !5
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds %struct.complex, ptr %25, i64 %649
  %651 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %651, ptr %650, align 4, !tbaa !9
  br label %679

652:                                              ; preds = %623
  %653 = fcmp ogt float %632, 0.000000e+00
  br i1 %653, label %654, label %669

654:                                              ; preds = %652
  %655 = load float, ptr %21, align 4, !tbaa !9
  %656 = fmul float %632, %655
  %657 = fcmp ogt float %610, %656
  br i1 %657, label %658, label %664

658:                                              ; preds = %654
  %659 = fdiv float %656, %610
  store float %659, ptr %23, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %660 = load float, ptr %23, align 4, !tbaa !9
  %661 = load float, ptr %7, align 4, !tbaa !9
  %662 = fmul float %660, %661
  store float %662, ptr %7, align 4, !tbaa !9
  %663 = fmul float %.10, %660
  br label %664

664:                                              ; preds = %658, %654
  %.12 = phi float [ %663, %658 ], [ %.10, %654 ]
  store i32 %.87931005, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %472, ptr noundef nonnull %18) #8
  %665 = load i32, ptr %13, align 4, !tbaa !5
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds %struct.complex, ptr %25, i64 %666
  %668 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %668, ptr %667, align 4, !tbaa !9
  br label %679

669:                                              ; preds = %652
  %670 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %670, ptr %13, align 4, !tbaa !5
  %.not872992 = icmp slt i32 %670, 1
  br i1 %.not872992, label %._crit_edge996, label %.lr.ph995.preheader

.lr.ph995.preheader:                              ; preds = %669
  %671 = zext nneg i32 %670 to i64
  %672 = shl nuw nsw i64 %671, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %672, i1 false), !tbaa !9
  br label %._crit_edge996

._crit_edge996:                                   ; preds = %.lr.ph995.preheader, %669
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %472, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %679

673:                                              ; preds = %.loopexit894
  store i32 %.87931005, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %472, ptr noundef nonnull %18) #8
  %674 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %675 = fsub <2 x float> %674, %593
  store <2 x float> %675, ptr %15, align 8, !tbaa !9
  %676 = load i32, ptr %13, align 4, !tbaa !5
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds %struct.complex, ptr %25, i64 %677
  store <2 x float> %675, ptr %678, align 4, !tbaa !9
  br label %679

679:                                              ; preds = %620, %664, %._crit_edge996, %647, %673
  %.13 = phi float [ %.11, %647 ], [ %.12, %664 ], [ 0.000000e+00, %._crit_edge996 ], [ %.10, %620 ], [ %.10, %673 ]
  store i32 %.87931005, ptr %13, align 4, !tbaa !5
  %680 = load float, ptr %472, align 4, !tbaa !14
  store float %680, ptr %14, align 4, !tbaa !9
  %681 = fcmp oge float %680, 0.000000e+00
  %682 = fneg float %680
  %683 = select i1 %681, float %680, float %682
  %684 = call <2 x float> @Cf(ptr noundef nonnull %472)
  %.sroa.014.4.vec.extract = extractelement <2 x float> %684, i64 1
  %685 = fcmp oge float %.sroa.014.4.vec.extract, 0.000000e+00
  %686 = fneg float %.sroa.014.4.vec.extract
  %687 = select i1 %685, float %.sroa.014.4.vec.extract, float %686
  %688 = fadd float %683, %687
  %689 = fcmp oge float %.13, %688
  %690 = select i1 %689, float %.13, float %688
  %indvars.iv.next1101 = add nuw nsw i64 %indvars.iv1100, 1
  %691 = trunc i64 %indvars.iv.next1101 to i32
  %692 = mul i32 %260, %691
  %693 = add nsw i32 %692, %.68041002
  %694 = add nsw i32 %260, %.87931005
  %695 = load i32, ptr %12, align 4
  %696 = icmp sge i32 %694, %695
  %697 = icmp sle i32 %694, %695
  %.in867 = select i1 %460, i1 %696, i1 %697
  br i1 %.in867, label %470, label %.loopexit893, !llvm.loop !25

698:                                              ; preds = %458
  store i32 %259, ptr %11, align 4, !tbaa !5
  store i32 %260, ptr %12, align 4, !tbaa !5
  br i1 %.in8611036, label %.lr.ph1044, label %.loopexit893

.lr.ph1044:                                       ; preds = %698
  %699 = add nsw i32 %.2809, 1
  %700 = mul nsw i32 %699, %.2809
  %701 = sdiv i32 %700, 2
  %702 = getelementptr inbounds i8, ptr %20, i64 4
  %703 = getelementptr inbounds i8, ptr %15, i64 4
  %704 = getelementptr inbounds i8, ptr %18, i64 4
  %705 = getelementptr inbounds i8, ptr %17, i64 4
  br label %706

706:                                              ; preds = %.lr.ph1044, %941
  %indvars.iv1112 = phi i64 [ 1, %.lr.ph1044 ], [ %indvars.iv.next1113, %941 ]
  %.141041 = phi float [ %.1769, %.lr.ph1044 ], [ %952, %941 ]
  %.97941039 = phi i32 [ %.2809, %.lr.ph1044 ], [ %957, %941 ]
  %.78051037 = phi i32 [ %701, %.lr.ph1044 ], [ %955, %941 ]
  store i32 %.97941039, ptr %13, align 4, !tbaa !5
  %707 = sext i32 %.97941039 to i64
  %708 = getelementptr inbounds %struct.complex, ptr %25, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !14
  store float %709, ptr %14, align 4, !tbaa !9
  %710 = fcmp oge float %709, 0.000000e+00
  %711 = fneg float %709
  %712 = select i1 %710, float %709, float %711
  %713 = call <2 x float> @Cf(ptr noundef nonnull %708)
  %.sroa.013.4.vec.extract = extractelement <2 x float> %713, i64 1
  %714 = fcmp oge float %.sroa.013.4.vec.extract, 0.000000e+00
  %715 = fneg float %.sroa.013.4.vec.extract
  %716 = select i1 %714, float %.sroa.013.4.vec.extract, float %715
  %717 = fadd float %712, %716
  %718 = load float, ptr %19, align 4, !tbaa !9
  store float %718, ptr %20, align 8, !tbaa !14
  store float 0.000000e+00, ptr %702, align 4, !tbaa !21
  %719 = fcmp oge float %.141041, 1.000000e+00
  %720 = select i1 %719, float %.141041, float 1.000000e+00
  %721 = fdiv float 1.000000e+00, %720
  store float %721, ptr %23, align 4, !tbaa !9
  %722 = getelementptr inbounds float, ptr %24, i64 %707
  %723 = load float, ptr %722, align 4, !tbaa !9
  %724 = load float, ptr %21, align 4, !tbaa !9
  %725 = fsub float %724, %717
  %726 = fmul float %721, %725
  %727 = fcmp ogt float %723, %726
  br i1 %727, label %728, label %767

728:                                              ; preds = %706
  %729 = fmul float %721, 5.000000e-01
  store float %729, ptr %23, align 4, !tbaa !9
  %730 = insertelement <2 x float> <float poison, float 0.000000e+00>, float %718, i64 0
  br i1 %.not845, label %743, label %731

731:                                              ; preds = %728
  %732 = sext i32 %.78051037 to i64
  %733 = getelementptr inbounds %struct.complex, ptr %26, i64 %732
  %734 = call <2 x float> @Cf(ptr noundef nonnull %733)
  %.sroa.012.0.vec.extract = extractelement <2 x float> %734, i64 0
  %.sroa.012.4.vec.extract = extractelement <2 x float> %734, i64 1
  %735 = fneg float %.sroa.012.4.vec.extract
  %736 = call ptr @_pCf(ptr noundef nonnull %16)
  %737 = getelementptr inbounds i8, ptr %736, i64 4
  store float %.sroa.012.0.vec.extract, ptr %736, align 4
  store float %735, ptr %737, align 4
  %738 = load float, ptr %19, align 4, !tbaa !9
  %739 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %740 = insertelement <2 x float> poison, float %738, i64 0
  %741 = shufflevector <2 x float> %740, <2 x float> poison, <2 x i32> zeroinitializer
  %742 = fmul <2 x float> %741, %739
  store <2 x float> %742, ptr %15, align 8, !tbaa !9
  br label %743

743:                                              ; preds = %728, %731
  %744 = phi <2 x float> [ %742, %731 ], [ %730, %728 ]
  store <2 x float> %744, ptr %18, align 8, !tbaa !9
  %745 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %746 = shufflevector <2 x float> %744, <2 x float> %745, <2 x i32> <i32 0, i32 3>
  %747 = fcmp oge <2 x float> %746, zeroinitializer
  %748 = fneg <2 x float> %746
  %749 = select <2 x i1> %747, <2 x float> %746, <2 x float> %748
  %shift1208 = shufflevector <2 x float> %749, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %750 = fadd <2 x float> %749, %shift1208
  %751 = extractelement <2 x float> %750, i64 0
  %752 = fcmp ogt float %751, 1.000000e+00
  br i1 %752, label %753, label %759

753:                                              ; preds = %743
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %754 = load float, ptr %23, align 4, !tbaa !9
  %755 = fmul float %751, %754
  %756 = fcmp oge float %755, 1.000000e+00
  %757 = select i1 %756, float 1.000000e+00, float %755
  store float %757, ptr %23, align 4, !tbaa !9
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %20, ptr noundef nonnull %18) #8
  %758 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %758, ptr %20, align 8, !tbaa !9
  br label %759

759:                                              ; preds = %753, %743
  %760 = load float, ptr %23, align 4, !tbaa !9
  %761 = fcmp olt float %760, 1.000000e+00
  br i1 %761, label %762, label %767

762:                                              ; preds = %759
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %763 = load float, ptr %23, align 4, !tbaa !9
  %764 = load float, ptr %7, align 4, !tbaa !9
  %765 = fmul float %763, %764
  store float %765, ptr %7, align 4, !tbaa !9
  %766 = fmul float %.141041, %763
  br label %767

767:                                              ; preds = %759, %762, %706
  %.15 = phi float [ %766, %762 ], [ %.141041, %759 ], [ %.141041, %706 ]
  %768 = load float, ptr %20, align 8, !tbaa !14
  %769 = fcmp oeq float %768, 1.000000e+00
  %770 = load float, ptr %702, align 4
  %771 = fcmp oeq float %770, 0.000000e+00
  %or.cond5 = select i1 %769, i1 %771, i1 false
  br i1 %or.cond5, label %772, label %786

772:                                              ; preds = %767
  br i1 %.not.not.not, label %778, label %773

773:                                              ; preds = %772
  %774 = add nsw i32 %.97941039, -1
  store i32 %774, ptr %13, align 4, !tbaa !5
  %775 = sub nsw i32 %.78051037, %.97941039
  %776 = sext i32 %775 to i64
  %gep1033 = getelementptr %struct.complex, ptr %5, i64 %776
  call void @cdotc_(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %gep1033, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1)
  %777 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit

778:                                              ; preds = %772
  %779 = load i32, ptr %4, align 4, !tbaa !5
  %780 = icmp slt i32 %.97941039, %779
  br i1 %780, label %781, label %.loopexit

781:                                              ; preds = %778
  %782 = sub nsw i32 %779, %.97941039
  store i32 %782, ptr %13, align 4, !tbaa !5
  %783 = sext i32 %.78051037 to i64
  %gep1035 = getelementptr %struct.complex, ptr %5, i64 %783
  %784 = getelementptr i8, ptr %708, i64 8
  call void @cdotc_(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %gep1035, ptr noundef nonnull @c__1, ptr noundef %784, ptr noundef nonnull @c__1)
  %785 = load <2 x float>, ptr %15, align 8, !tbaa !9
  br label %.loopexit

786:                                              ; preds = %767
  br i1 %.not.not.not, label %819, label %787

787:                                              ; preds = %786
  %788 = add nsw i32 %.97941039, -1
  store i32 %788, ptr %13, align 4, !tbaa !5
  %.not8641011 = icmp slt i32 %.97941039, 2
  br i1 %.not8641011, label %.loopexit, label %.lr.ph1016

.lr.ph1016:                                       ; preds = %787
  %789 = sub i32 %.78051037, %.97941039
  %790 = sext i32 %789 to i64
  %invariant.gep1148 = getelementptr %struct.complex, ptr %26, i64 %790
  br label %791

791:                                              ; preds = %.lr.ph1016, %791
  %indvars.iv1103 = phi i64 [ 1, %.lr.ph1016 ], [ %indvars.iv.next1104, %791 ]
  %792 = phi <2 x float> [ zeroinitializer, %.lr.ph1016 ], [ %816, %791 ]
  %gep1149 = getelementptr %struct.complex, ptr %invariant.gep1148, i64 %indvars.iv1103
  %793 = call <2 x float> @Cf(ptr noundef nonnull %gep1149)
  %.sroa.010.0.vec.extract = extractelement <2 x float> %793, i64 0
  %.sroa.010.4.vec.extract = extractelement <2 x float> %793, i64 1
  %794 = fneg float %.sroa.010.4.vec.extract
  %795 = call ptr @_pCf(ptr noundef nonnull %17)
  %796 = getelementptr inbounds i8, ptr %795, i64 4
  store float %.sroa.010.0.vec.extract, ptr %795, align 4
  store float %794, ptr %796, align 4
  %797 = load float, ptr %17, align 4, !tbaa !14
  %798 = load float, ptr %20, align 8, !tbaa !14
  %799 = load float, ptr %705, align 4, !tbaa !21
  %800 = load float, ptr %702, align 4, !tbaa !21
  %801 = fneg float %799
  %802 = fmul float %800, %801
  %803 = call float @llvm.fmuladd.f32(float %797, float %798, float %802)
  %804 = fmul float %798, %799
  %805 = call float @llvm.fmuladd.f32(float %797, float %800, float %804)
  %806 = getelementptr inbounds %struct.complex, ptr %25, i64 %indvars.iv1103
  %807 = fneg float %805
  %808 = load <2 x float>, ptr %806, align 4, !tbaa !9
  %809 = insertelement <2 x float> poison, float %805, i64 0
  %810 = insertelement <2 x float> %809, float %807, i64 1
  %811 = fmul <2 x float> %808, %810
  %812 = shufflevector <2 x float> %811, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %813 = insertelement <2 x float> poison, float %803, i64 0
  %814 = shufflevector <2 x float> %813, <2 x float> poison, <2 x i32> zeroinitializer
  %815 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %814, <2 x float> %808, <2 x float> %812)
  store <2 x float> %815, ptr %16, align 8, !tbaa !9
  %816 = fadd <2 x float> %792, %815
  store <2 x float> %816, ptr %15, align 8, !tbaa !9
  %indvars.iv.next1104 = add nuw nsw i64 %indvars.iv1103, 1
  %817 = load i32, ptr %13, align 4, !tbaa !5
  %818 = sext i32 %817 to i64
  %.not864.not = icmp slt i64 %indvars.iv1103, %818
  br i1 %.not864.not, label %791, label %.loopexit, !llvm.loop !26

819:                                              ; preds = %786
  %820 = load i32, ptr %4, align 4, !tbaa !5
  %821 = icmp slt i32 %.97941039, %820
  br i1 %821, label %822, label %.loopexit

822:                                              ; preds = %819
  %823 = sub nsw i32 %820, %.97941039
  store i32 %823, ptr %13, align 4, !tbaa !5
  %.not8631019 = icmp slt i32 %823, 1
  br i1 %.not8631019, label %.loopexit, label %.lr.ph1024.preheader

.lr.ph1024.preheader:                             ; preds = %822
  %824 = sext i32 %.78051037 to i64
  %invariant.gep1150 = getelementptr %struct.complex, ptr %26, i64 %824
  %invariant.gep1152 = getelementptr %struct.complex, ptr %25, i64 %707
  br label %.lr.ph1024

.lr.ph1024:                                       ; preds = %.lr.ph1024.preheader, %.lr.ph1024
  %indvars.iv1106 = phi i64 [ 1, %.lr.ph1024.preheader ], [ %indvars.iv.next1107, %.lr.ph1024 ]
  %825 = phi <2 x float> [ zeroinitializer, %.lr.ph1024.preheader ], [ %848, %.lr.ph1024 ]
  %gep1151 = getelementptr %struct.complex, ptr %invariant.gep1150, i64 %indvars.iv1106
  %826 = call <2 x float> @Cf(ptr noundef nonnull %gep1151)
  %.sroa.09.0.vec.extract = extractelement <2 x float> %826, i64 0
  %.sroa.09.4.vec.extract = extractelement <2 x float> %826, i64 1
  %827 = fneg float %.sroa.09.4.vec.extract
  %828 = call ptr @_pCf(ptr noundef nonnull %17)
  %829 = getelementptr inbounds i8, ptr %828, i64 4
  store float %.sroa.09.0.vec.extract, ptr %828, align 4
  store float %827, ptr %829, align 4
  %830 = load float, ptr %17, align 4, !tbaa !14
  %831 = load float, ptr %20, align 8, !tbaa !14
  %832 = load float, ptr %705, align 4, !tbaa !21
  %833 = load float, ptr %702, align 4, !tbaa !21
  %834 = fneg float %832
  %835 = fmul float %833, %834
  %836 = call float @llvm.fmuladd.f32(float %830, float %831, float %835)
  %837 = fmul float %831, %832
  %838 = call float @llvm.fmuladd.f32(float %830, float %833, float %837)
  %gep1153 = getelementptr %struct.complex, ptr %invariant.gep1152, i64 %indvars.iv1106
  %839 = fneg float %838
  %840 = load <2 x float>, ptr %gep1153, align 4, !tbaa !9
  %841 = insertelement <2 x float> poison, float %838, i64 0
  %842 = insertelement <2 x float> %841, float %839, i64 1
  %843 = fmul <2 x float> %840, %842
  %844 = shufflevector <2 x float> %843, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %845 = insertelement <2 x float> poison, float %836, i64 0
  %846 = shufflevector <2 x float> %845, <2 x float> poison, <2 x i32> zeroinitializer
  %847 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %846, <2 x float> %840, <2 x float> %844)
  store <2 x float> %847, ptr %16, align 8, !tbaa !9
  %848 = fadd <2 x float> %825, %847
  store <2 x float> %848, ptr %15, align 8, !tbaa !9
  %indvars.iv.next1107 = add nuw nsw i64 %indvars.iv1106, 1
  %849 = load i32, ptr %13, align 4, !tbaa !5
  %850 = sext i32 %849 to i64
  %.not863.not = icmp slt i64 %indvars.iv1106, %850
  br i1 %.not863.not, label %.lr.ph1024, label %.loopexit, !llvm.loop !27

.loopexit:                                        ; preds = %791, %.lr.ph1024, %787, %822, %819, %773, %781, %778
  %851 = phi <2 x float> [ %777, %773 ], [ %785, %781 ], [ zeroinitializer, %778 ], [ zeroinitializer, %819 ], [ zeroinitializer, %822 ], [ zeroinitializer, %787 ], [ %848, %.lr.ph1024 ], [ %816, %791 ]
  %852 = load float, ptr %19, align 4, !tbaa !9
  store float %852, ptr %15, align 8, !tbaa !14
  store float 0.000000e+00, ptr %703, align 4, !tbaa !21
  %853 = load float, ptr %20, align 8, !tbaa !14
  %854 = fcmp oeq float %853, %852
  %855 = load float, ptr %702, align 4
  %856 = fcmp oeq float %855, 0.000000e+00
  %or.cond883 = select i1 %854, i1 %856, i1 false
  br i1 %or.cond883, label %857, label %935

857:                                              ; preds = %.loopexit
  %858 = load <2 x float>, ptr %708, align 4, !tbaa !9
  %859 = fsub <2 x float> %858, %851
  store <2 x float> %859, ptr %15, align 8, !tbaa !9
  store <2 x float> %859, ptr %708, align 4, !tbaa !9
  store i32 %.97941039, ptr %13, align 4, !tbaa !5
  %860 = extractelement <2 x float> %859, i64 0
  %861 = fcmp oge float %860, 0.000000e+00
  %862 = fneg float %860
  %863 = select i1 %861, float %860, float %862
  %864 = call <2 x float> @Cf(ptr noundef nonnull %708)
  %.sroa.08.4.vec.extract = extractelement <2 x float> %864, i64 1
  %865 = fcmp oge float %.sroa.08.4.vec.extract, 0.000000e+00
  %866 = fneg float %.sroa.08.4.vec.extract
  %867 = select i1 %865, float %.sroa.08.4.vec.extract, float %866
  %868 = fadd float %863, %867
  br i1 %.not845, label %882, label %869

869:                                              ; preds = %857
  %870 = sext i32 %.78051037 to i64
  %871 = getelementptr inbounds %struct.complex, ptr %26, i64 %870
  %872 = call <2 x float> @Cf(ptr noundef nonnull %871)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %872, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %872, i64 1
  %873 = fneg float %.sroa.07.4.vec.extract
  %874 = call ptr @_pCf(ptr noundef nonnull %16)
  %875 = getelementptr inbounds i8, ptr %874, i64 4
  store float %.sroa.07.0.vec.extract, ptr %874, align 4
  store float %873, ptr %875, align 4
  %876 = load float, ptr %19, align 4, !tbaa !9
  %877 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %878 = insertelement <2 x float> poison, float %876, i64 0
  %879 = shufflevector <2 x float> %878, <2 x float> poison, <2 x i32> zeroinitializer
  %880 = fmul <2 x float> %879, %877
  store <2 x float> %880, ptr %15, align 8, !tbaa !9
  store <2 x float> %880, ptr %18, align 8, !tbaa !9
  %881 = extractelement <2 x float> %880, i64 0
  br label %885

882:                                              ; preds = %857
  %883 = load float, ptr %19, align 4, !tbaa !9
  store float %883, ptr %18, align 8, !tbaa !14
  store float 0.000000e+00, ptr %704, align 4, !tbaa !21
  %884 = fcmp oeq float %883, 1.000000e+00
  br i1 %884, label %941, label %885

885:                                              ; preds = %882, %869
  %886 = phi float [ %883, %882 ], [ %881, %869 ]
  store float %886, ptr %14, align 4, !tbaa !9
  %887 = fcmp oge float %886, 0.000000e+00
  %888 = fneg float %886
  %889 = select i1 %887, float %886, float %888
  %890 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.06.4.vec.extract = extractelement <2 x float> %890, i64 1
  %891 = fcmp oge float %.sroa.06.4.vec.extract, 0.000000e+00
  %892 = fneg float %.sroa.06.4.vec.extract
  %893 = select i1 %891, float %.sroa.06.4.vec.extract, float %892
  %894 = fadd float %889, %893
  %895 = load float, ptr %22, align 4, !tbaa !9
  %896 = fcmp ogt float %894, %895
  br i1 %896, label %897, label %914

897:                                              ; preds = %885
  %898 = fcmp olt float %894, 1.000000e+00
  br i1 %898, label %899, label %909

899:                                              ; preds = %897
  %900 = load float, ptr %21, align 4, !tbaa !9
  %901 = fmul float %894, %900
  %902 = fcmp ogt float %868, %901
  br i1 %902, label %903, label %909

903:                                              ; preds = %899
  %904 = fdiv float 1.000000e+00, %868
  store float %904, ptr %23, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %905 = load float, ptr %23, align 4, !tbaa !9
  %906 = load float, ptr %7, align 4, !tbaa !9
  %907 = fmul float %905, %906
  store float %907, ptr %7, align 4, !tbaa !9
  %908 = fmul float %.15, %905
  br label %909

909:                                              ; preds = %899, %903, %897
  %.16 = phi float [ %908, %903 ], [ %.15, %899 ], [ %.15, %897 ]
  store i32 %.97941039, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %708, ptr noundef nonnull %18) #8
  %910 = load i32, ptr %13, align 4, !tbaa !5
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds %struct.complex, ptr %25, i64 %911
  %913 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %913, ptr %912, align 4, !tbaa !9
  br label %941

914:                                              ; preds = %885
  %915 = fcmp ogt float %894, 0.000000e+00
  br i1 %915, label %916, label %931

916:                                              ; preds = %914
  %917 = load float, ptr %21, align 4, !tbaa !9
  %918 = fmul float %894, %917
  %919 = fcmp ogt float %868, %918
  br i1 %919, label %920, label %926

920:                                              ; preds = %916
  %921 = fdiv float %918, %868
  store float %921, ptr %23, align 4, !tbaa !9
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %23, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #8
  %922 = load float, ptr %23, align 4, !tbaa !9
  %923 = load float, ptr %7, align 4, !tbaa !9
  %924 = fmul float %922, %923
  store float %924, ptr %7, align 4, !tbaa !9
  %925 = fmul float %.15, %922
  br label %926

926:                                              ; preds = %920, %916
  %.17 = phi float [ %925, %920 ], [ %.15, %916 ]
  store i32 %.97941039, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %15, ptr noundef nonnull %708, ptr noundef nonnull %18) #8
  %927 = load i32, ptr %13, align 4, !tbaa !5
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds %struct.complex, ptr %25, i64 %928
  %930 = load <2 x float>, ptr %15, align 8, !tbaa !9
  store <2 x float> %930, ptr %929, align 4, !tbaa !9
  br label %941

931:                                              ; preds = %914
  %932 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %932, ptr %13, align 4, !tbaa !5
  %.not8661027 = icmp slt i32 %932, 1
  br i1 %.not8661027, label %._crit_edge1031, label %.lr.ph1030.preheader

.lr.ph1030.preheader:                             ; preds = %931
  %933 = zext nneg i32 %932 to i64
  %934 = shl nuw nsw i64 %933, 3
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %934, i1 false), !tbaa !9
  br label %._crit_edge1031

._crit_edge1031:                                  ; preds = %.lr.ph1030.preheader, %931
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %708, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %941

935:                                              ; preds = %.loopexit
  store i32 %.97941039, ptr %13, align 4, !tbaa !5
  call void @cladiv_(ptr noundef nonnull %16, ptr noundef nonnull %708, ptr noundef nonnull %18) #8
  %936 = load <2 x float>, ptr %16, align 8, !tbaa !9
  %937 = fsub <2 x float> %936, %851
  store <2 x float> %937, ptr %15, align 8, !tbaa !9
  %938 = load i32, ptr %13, align 4, !tbaa !5
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds %struct.complex, ptr %25, i64 %939
  store <2 x float> %937, ptr %940, align 4, !tbaa !9
  br label %941

941:                                              ; preds = %882, %926, %._crit_edge1031, %909, %935
  %.18 = phi float [ %.16, %909 ], [ %.17, %926 ], [ 0.000000e+00, %._crit_edge1031 ], [ %.15, %882 ], [ %.15, %935 ]
  store i32 %.97941039, ptr %13, align 4, !tbaa !5
  %942 = load float, ptr %708, align 4, !tbaa !14
  store float %942, ptr %14, align 4, !tbaa !9
  %943 = fcmp oge float %942, 0.000000e+00
  %944 = fneg float %942
  %945 = select i1 %943, float %942, float %944
  %946 = call <2 x float> @Cf(ptr noundef nonnull %708)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %946, i64 1
  %947 = fcmp oge float %.sroa.0.4.vec.extract, 0.000000e+00
  %948 = fneg float %.sroa.0.4.vec.extract
  %949 = select i1 %947, float %.sroa.0.4.vec.extract, float %948
  %950 = fadd float %945, %949
  %951 = fcmp oge float %.18, %950
  %952 = select i1 %951, float %.18, float %950
  %indvars.iv.next1113 = add nuw nsw i64 %indvars.iv1112, 1
  %953 = trunc i64 %indvars.iv.next1113 to i32
  %954 = mul i32 %260, %953
  %955 = add nsw i32 %954, %.78051037
  %956 = load i32, ptr %12, align 4, !tbaa !5
  %957 = add nsw i32 %956, %.97941039
  %958 = icmp slt i32 %956, 0
  %959 = icmp sge i32 %957, %259
  %960 = icmp sle i32 %957, %259
  %.in861 = select i1 %958, i1 %959, i1 %960
  br i1 %.in861, label %706, label %.loopexit893, !llvm.loop !28

.loopexit893:                                     ; preds = %452, %679, %941, %276, %463, %698
  %961 = load float, ptr %19, align 4, !tbaa !9
  %962 = load float, ptr %7, align 4, !tbaa !9
  %963 = fdiv float %962, %961
  store float %963, ptr %7, align 4, !tbaa !9
  br label %964

964:                                              ; preds = %.loopexit893, %265
  %965 = phi float [ %961, %.loopexit893 ], [ %.pr891, %265 ]
  %966 = fcmp une float %965, 1.000000e+00
  br i1 %966, label %967, label %969

967:                                              ; preds = %964
  %968 = fdiv float 1.000000e+00, %965
  store float %968, ptr %14, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %8, ptr noundef nonnull @c__1) #8
  br label %969

969:                                              ; preds = %964, %967, %51, %.thread
  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 4, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, 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 8, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #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 @ctpsv_(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 nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 nounwind willreturn memory(argmem: write) }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass