; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (cbdsqr)

; 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 [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b15 = external hidden global double, align 8
@c__1 = external hidden global i64, align 8
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b49 = external hidden global float, align 4
@c_b72 = external hidden global float, align 4

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

126:                                              ; preds = %15
  %127 = load i64, ptr %84, align 8, !tbaa !9
  %128 = icmp ne i64 %127, 0
  br i1 %128, label %131, label %129

129:                                              ; preds = %126
  %130 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -1, ptr %130, align 8, !tbaa !9
  br label %231

131:                                              ; preds = %126, %15
  %132 = load ptr, ptr %18, align 8, !tbaa !5
  %133 = load i64, ptr %132, align 8, !tbaa !9
  %134 = icmp slt i64 %133, 0
  br i1 %134, label %135, label %137

135:                                              ; preds = %131
  %136 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -2, ptr %136, align 8, !tbaa !9
  br label %230

137:                                              ; preds = %131
  %138 = load ptr, ptr %19, align 8, !tbaa !5
  %139 = load i64, ptr %138, align 8, !tbaa !9
  %140 = icmp slt i64 %139, 0
  br i1 %140, label %141, label %143

141:                                              ; preds = %137
  %142 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -3, ptr %142, align 8, !tbaa !9
  br label %229

143:                                              ; preds = %137
  %144 = load ptr, ptr %20, align 8, !tbaa !5
  %145 = load i64, ptr %144, align 8, !tbaa !9
  %146 = icmp slt i64 %145, 0
  br i1 %146, label %147, label %149

147:                                              ; preds = %143
  %148 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -4, ptr %148, align 8, !tbaa !9
  br label %228

149:                                              ; preds = %143
  %150 = load ptr, ptr %21, align 8, !tbaa !5
  %151 = load i64, ptr %150, align 8, !tbaa !9
  %152 = icmp slt i64 %151, 0
  br i1 %152, label %153, label %155

153:                                              ; preds = %149
  %154 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -5, ptr %154, align 8, !tbaa !9
  br label %227

155:                                              ; preds = %149
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = load i64, ptr %156, align 8, !tbaa !9
  %158 = icmp eq i64 %157, 0
  br i1 %158, label %159, label %163

159:                                              ; preds = %155
  %160 = load ptr, ptr %25, align 8, !tbaa !5
  %161 = load i64, ptr %160, align 8, !tbaa !9
  %162 = icmp slt i64 %161, 1
  br i1 %162, label %180, label %163

163:                                              ; preds = %159, %155
  %164 = load ptr, ptr %19, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = icmp sgt i64 %165, 0
  br i1 %166, label %167, label %182

167:                                              ; preds = %163
  %168 = load ptr, ptr %25, align 8, !tbaa !5
  %169 = load i64, ptr %168, align 8, !tbaa !9
  %170 = load ptr, ptr %18, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = icmp sge i64 1, %171
  br i1 %172, label %173, label %174

173:                                              ; preds = %167
  br label %177

174:                                              ; preds = %167
  %175 = load ptr, ptr %18, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  br label %177

177:                                              ; preds = %174, %173
  %178 = phi i64 [ 1, %173 ], [ %176, %174 ]
  %179 = icmp slt i64 %169, %178
  br i1 %179, label %180, label %182

180:                                              ; preds = %177, %159
  %181 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -9, ptr %181, align 8, !tbaa !9
  br label %226

182:                                              ; preds = %177, %163
  %183 = load ptr, ptr %27, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = load ptr, ptr %20, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  %187 = icmp sge i64 1, %186
  br i1 %187, label %188, label %189

188:                                              ; preds = %182
  br label %192

189:                                              ; preds = %182
  %190 = load ptr, ptr %20, align 8, !tbaa !5
  %191 = load i64, ptr %190, align 8, !tbaa !9
  br label %192

192:                                              ; preds = %189, %188
  %193 = phi i64 [ 1, %188 ], [ %191, %189 ]
  %194 = icmp slt i64 %184, %193
  br i1 %194, label %195, label %197

195:                                              ; preds = %192
  %196 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -11, ptr %196, align 8, !tbaa !9
  br label %225

197:                                              ; preds = %192
  %198 = load ptr, ptr %21, align 8, !tbaa !5
  %199 = load i64, ptr %198, align 8, !tbaa !9
  %200 = icmp eq i64 %199, 0
  br i1 %200, label %201, label %205

201:                                              ; preds = %197
  %202 = load ptr, ptr %29, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = icmp slt i64 %203, 1
  br i1 %204, label %222, label %205

205:                                              ; preds = %201, %197
  %206 = load ptr, ptr %21, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = icmp sgt i64 %207, 0
  br i1 %208, label %209, label %224

209:                                              ; preds = %205
  %210 = load ptr, ptr %29, align 8, !tbaa !5
  %211 = load i64, ptr %210, align 8, !tbaa !9
  %212 = load ptr, ptr %18, align 8, !tbaa !5
  %213 = load i64, ptr %212, align 8, !tbaa !9
  %214 = icmp sge i64 1, %213
  br i1 %214, label %215, label %216

215:                                              ; preds = %209
  br label %219

216:                                              ; preds = %209
  %217 = load ptr, ptr %18, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  br label %219

219:                                              ; preds = %216, %215
  %220 = phi i64 [ 1, %215 ], [ %218, %216 ]
  %221 = icmp slt i64 %211, %220
  br i1 %221, label %222, label %224

222:                                              ; preds = %219, %201
  %223 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 -13, ptr %223, align 8, !tbaa !9
  br label %224

224:                                              ; preds = %222, %219, %205
  br label %225

225:                                              ; preds = %224, %195
  br label %226

226:                                              ; preds = %225, %180
  br label %227

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

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

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

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

231:                                              ; preds = %230, %129
  %232 = load ptr, ptr %31, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = icmp ne i64 %233, 0
  br i1 %234, label %235, label %240

235:                                              ; preds = %231
  %236 = load ptr, ptr %31, align 8, !tbaa !5
  %237 = load i64, ptr %236, align 8, !tbaa !9
  %238 = sub nsw i64 0, %237
  store i64 %238, ptr %38, align 8, !tbaa !9
  %239 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %38)
  store i32 0, ptr %16, align 4
  store i32 1, ptr %89, align 4
  br label %2614

240:                                              ; preds = %231
  %241 = load ptr, ptr %18, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = icmp eq i64 %242, 0
  br i1 %243, label %244, label %245

244:                                              ; preds = %240
  store i32 0, ptr %16, align 4
  store i32 1, ptr %89, align 4
  br label %2614

245:                                              ; preds = %240
  %246 = load ptr, ptr %18, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = icmp eq i64 %247, 1
  br i1 %248, label %249, label %250

249:                                              ; preds = %245
  br label %2410

250:                                              ; preds = %245
  %251 = load ptr, ptr %19, align 8, !tbaa !5
  %252 = load i64, ptr %251, align 8, !tbaa !9
  %253 = icmp sgt i64 %252, 0
  br i1 %253, label %262, label %254

254:                                              ; preds = %250
  %255 = load ptr, ptr %20, align 8, !tbaa !5
  %256 = load i64, ptr %255, align 8, !tbaa !9
  %257 = icmp sgt i64 %256, 0
  br i1 %257, label %262, label %258

258:                                              ; preds = %254
  %259 = load ptr, ptr %21, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = icmp sgt i64 %260, 0
  br label %262

262:                                              ; preds = %258, %254, %250
  %263 = phi i1 [ true, %254 ], [ true, %250 ], [ %261, %258 ]
  %264 = zext i1 %263 to i32
  %265 = sext i32 %264 to i64
  store i64 %265, ptr %87, align 8, !tbaa !9
  %266 = load i64, ptr %87, align 8, !tbaa !9
  %267 = icmp ne i64 %266, 0
  br i1 %267, label %278, label %268

268:                                              ; preds = %262
  %269 = load ptr, ptr %18, align 8, !tbaa !5
  %270 = load ptr, ptr %22, align 8, !tbaa !5
  %271 = getelementptr inbounds float, ptr %270, i64 1
  %272 = load ptr, ptr %23, align 8, !tbaa !5
  %273 = getelementptr inbounds float, ptr %272, i64 1
  %274 = load ptr, ptr %30, align 8, !tbaa !5
  %275 = getelementptr inbounds float, ptr %274, i64 1
  %276 = load ptr, ptr %31, align 8, !tbaa !5
  %277 = call i32 @slasq1_(ptr noundef %269, ptr noundef %271, ptr noundef %273, ptr noundef %275, ptr noundef %276)
  store i32 0, ptr %16, align 4
  store i32 1, ptr %89, align 4
  br label %2614

278:                                              ; preds = %262
  %279 = load ptr, ptr %18, align 8, !tbaa !5
  %280 = load i64, ptr %279, align 8, !tbaa !9
  %281 = sub nsw i64 %280, 1
  store i64 %281, ptr %56, align 8, !tbaa !9
  %282 = load i64, ptr %56, align 8, !tbaa !9
  %283 = load i64, ptr %56, align 8, !tbaa !9
  %284 = add nsw i64 %282, %283
  store i64 %284, ptr %57, align 8, !tbaa !9
  %285 = load i64, ptr %57, align 8, !tbaa !9
  %286 = load i64, ptr %56, align 8, !tbaa !9
  %287 = add nsw i64 %285, %286
  store i64 %287, ptr %58, align 8, !tbaa !9
  store i64 0, ptr %64, align 8, !tbaa !9
  %288 = call double @slamch_(ptr noundef @.str.3)
  %289 = fptrunc double %288 to float
  store float %289, ptr %60, align 4, !tbaa !11
  %290 = call double @slamch_(ptr noundef @.str.4)
  %291 = fptrunc double %290 to float
  store float %291, ptr %70, align 4, !tbaa !11
  %292 = load i64, ptr %84, align 8, !tbaa !9
  %293 = icmp ne i64 %292, 0
  br i1 %293, label %294, label %385

294:                                              ; preds = %278
  %295 = load ptr, ptr %18, align 8, !tbaa !5
  %296 = load i64, ptr %295, align 8, !tbaa !9
  %297 = sub nsw i64 %296, 1
  store i64 %297, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %298

298:                                              ; preds = %345, %294
  %299 = load i64, ptr %48, align 8, !tbaa !9
  %300 = load i64, ptr %38, align 8, !tbaa !9
  %301 = icmp sle i64 %299, %300
  br i1 %301, label %302, label %348

302:                                              ; preds = %298
  %303 = load ptr, ptr %22, align 8, !tbaa !5
  %304 = load i64, ptr %48, align 8, !tbaa !9
  %305 = getelementptr inbounds float, ptr %303, i64 %304
  %306 = load ptr, ptr %23, align 8, !tbaa !5
  %307 = load i64, ptr %48, align 8, !tbaa !9
  %308 = getelementptr inbounds float, ptr %306, i64 %307
  %309 = call i32 @slartg_(ptr noundef %305, ptr noundef %308, ptr noundef %52, ptr noundef %54, ptr noundef %51)
  %310 = load float, ptr %51, align 4, !tbaa !11
  %311 = load ptr, ptr %22, align 8, !tbaa !5
  %312 = load i64, ptr %48, align 8, !tbaa !9
  %313 = getelementptr inbounds float, ptr %311, i64 %312
  store float %310, ptr %313, align 4, !tbaa !11
  %314 = load float, ptr %54, align 4, !tbaa !11
  %315 = load ptr, ptr %22, align 8, !tbaa !5
  %316 = load i64, ptr %48, align 8, !tbaa !9
  %317 = add nsw i64 %316, 1
  %318 = getelementptr inbounds float, ptr %315, i64 %317
  %319 = load float, ptr %318, align 4, !tbaa !11
  %320 = fmul float %314, %319
  %321 = load ptr, ptr %23, align 8, !tbaa !5
  %322 = load i64, ptr %48, align 8, !tbaa !9
  %323 = getelementptr inbounds float, ptr %321, i64 %322
  store float %320, ptr %323, align 4, !tbaa !11
  %324 = load float, ptr %52, align 4, !tbaa !11
  %325 = load ptr, ptr %22, align 8, !tbaa !5
  %326 = load i64, ptr %48, align 8, !tbaa !9
  %327 = add nsw i64 %326, 1
  %328 = getelementptr inbounds float, ptr %325, i64 %327
  %329 = load float, ptr %328, align 4, !tbaa !11
  %330 = fmul float %324, %329
  %331 = load ptr, ptr %22, align 8, !tbaa !5
  %332 = load i64, ptr %48, align 8, !tbaa !9
  %333 = add nsw i64 %332, 1
  %334 = getelementptr inbounds float, ptr %331, i64 %333
  store float %330, ptr %334, align 4, !tbaa !11
  %335 = load float, ptr %52, align 4, !tbaa !11
  %336 = load ptr, ptr %30, align 8, !tbaa !5
  %337 = load i64, ptr %48, align 8, !tbaa !9
  %338 = getelementptr inbounds float, ptr %336, i64 %337
  store float %335, ptr %338, align 4, !tbaa !11
  %339 = load float, ptr %54, align 4, !tbaa !11
  %340 = load ptr, ptr %30, align 8, !tbaa !5
  %341 = load i64, ptr %56, align 8, !tbaa !9
  %342 = load i64, ptr %48, align 8, !tbaa !9
  %343 = add nsw i64 %341, %342
  %344 = getelementptr inbounds float, ptr %340, i64 %343
  store float %339, ptr %344, align 4, !tbaa !11
  br label %345

345:                                              ; preds = %302
  %346 = load i64, ptr %48, align 8, !tbaa !9
  %347 = add nsw i64 %346, 1
  store i64 %347, ptr %48, align 8, !tbaa !9
  br label %298, !llvm.loop !13

348:                                              ; preds = %298
  %349 = load ptr, ptr %20, align 8, !tbaa !5
  %350 = load i64, ptr %349, align 8, !tbaa !9
  %351 = icmp sgt i64 %350, 0
  br i1 %351, label %352, label %366

352:                                              ; preds = %348
  %353 = load ptr, ptr %20, align 8, !tbaa !5
  %354 = load ptr, ptr %18, align 8, !tbaa !5
  %355 = load ptr, ptr %30, align 8, !tbaa !5
  %356 = getelementptr inbounds float, ptr %355, i64 1
  %357 = load ptr, ptr %30, align 8, !tbaa !5
  %358 = load ptr, ptr %18, align 8, !tbaa !5
  %359 = load i64, ptr %358, align 8, !tbaa !9
  %360 = getelementptr inbounds float, ptr %357, i64 %359
  %361 = load ptr, ptr %26, align 8, !tbaa !5
  %362 = load i64, ptr %35, align 8, !tbaa !9
  %363 = getelementptr inbounds %struct.complex, ptr %361, i64 %362
  %364 = load ptr, ptr %27, align 8, !tbaa !5
  %365 = call i32 @clasr_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %353, ptr noundef %354, ptr noundef %356, ptr noundef %360, ptr noundef %363, ptr noundef %364)
  br label %366

366:                                              ; preds = %352, %348
  %367 = load ptr, ptr %21, align 8, !tbaa !5
  %368 = load i64, ptr %367, align 8, !tbaa !9
  %369 = icmp sgt i64 %368, 0
  br i1 %369, label %370, label %384

370:                                              ; preds = %366
  %371 = load ptr, ptr %18, align 8, !tbaa !5
  %372 = load ptr, ptr %21, align 8, !tbaa !5
  %373 = load ptr, ptr %30, align 8, !tbaa !5
  %374 = getelementptr inbounds float, ptr %373, i64 1
  %375 = load ptr, ptr %30, align 8, !tbaa !5
  %376 = load ptr, ptr %18, align 8, !tbaa !5
  %377 = load i64, ptr %376, align 8, !tbaa !9
  %378 = getelementptr inbounds float, ptr %375, i64 %377
  %379 = load ptr, ptr %28, align 8, !tbaa !5
  %380 = load i64, ptr %33, align 8, !tbaa !9
  %381 = getelementptr inbounds %struct.complex, ptr %379, i64 %380
  %382 = load ptr, ptr %29, align 8, !tbaa !5
  %383 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %371, ptr noundef %372, ptr noundef %374, ptr noundef %378, ptr noundef %381, ptr noundef %382)
  br label %384

384:                                              ; preds = %370, %366
  br label %385

385:                                              ; preds = %384, %278
  %386 = load float, ptr %60, align 4, !tbaa !11
  %387 = fpext float %386 to double
  store double %387, ptr %44, align 8, !tbaa !15
  store float 1.000000e+02, ptr %42, align 4, !tbaa !11
  %388 = call double @pow_dd(ptr noundef %44, ptr noundef @c_b15)
  %389 = fptrunc double %388 to float
  store float %389, ptr %43, align 4, !tbaa !11
  store float 1.000000e+01, ptr %40, align 4, !tbaa !11
  %390 = load float, ptr %42, align 4, !tbaa !11
  %391 = load float, ptr %43, align 4, !tbaa !11
  %392 = fcmp ole float %390, %391
  br i1 %392, label %393, label %395

393:                                              ; preds = %385
  %394 = load float, ptr %42, align 4, !tbaa !11
  br label %397

395:                                              ; preds = %385
  %396 = load float, ptr %43, align 4, !tbaa !11
  br label %397

397:                                              ; preds = %395, %393
  %398 = phi float [ %394, %393 ], [ %396, %395 ]
  %399 = fpext float %398 to double
  %400 = fptrunc double %399 to float
  store float %400, ptr %41, align 4, !tbaa !11
  %401 = load float, ptr %40, align 4, !tbaa !11
  %402 = load float, ptr %41, align 4, !tbaa !11
  %403 = fcmp oge float %401, %402
  br i1 %403, label %404, label %406

404:                                              ; preds = %397
  %405 = load float, ptr %40, align 4, !tbaa !11
  br label %408

406:                                              ; preds = %397
  %407 = load float, ptr %41, align 4, !tbaa !11
  br label %408

408:                                              ; preds = %406, %404
  %409 = phi float [ %405, %404 ], [ %407, %406 ]
  %410 = fpext float %409 to double
  %411 = fptrunc double %410 to float
  store float %411, ptr %88, align 4, !tbaa !11
  %412 = load float, ptr %88, align 4, !tbaa !11
  %413 = load float, ptr %60, align 4, !tbaa !11
  %414 = fmul float %412, %413
  store float %414, ptr %62, align 4, !tbaa !11
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  %415 = load ptr, ptr %18, align 8, !tbaa !5
  %416 = load i64, ptr %415, align 8, !tbaa !9
  store i64 %416, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %417

417:                                              ; preds = %449, %408
  %418 = load i64, ptr %48, align 8, !tbaa !9
  %419 = load i64, ptr %38, align 8, !tbaa !9
  %420 = icmp sle i64 %418, %419
  br i1 %420, label %421, label %452

421:                                              ; preds = %417
  %422 = load float, ptr %74, align 4, !tbaa !11
  store float %422, ptr %41, align 4, !tbaa !11
  %423 = load ptr, ptr %22, align 8, !tbaa !5
  %424 = load i64, ptr %48, align 8, !tbaa !9
  %425 = getelementptr inbounds float, ptr %423, i64 %424
  %426 = load float, ptr %425, align 4, !tbaa !11
  store float %426, ptr %40, align 4, !tbaa !11
  %427 = load float, ptr %40, align 4, !tbaa !11
  %428 = fcmp oge float %427, 0.000000e+00
  br i1 %428, label %429, label %431

429:                                              ; preds = %421
  %430 = load float, ptr %40, align 4, !tbaa !11
  br label %434

431:                                              ; preds = %421
  %432 = load float, ptr %40, align 4, !tbaa !11
  %433 = fneg float %432
  br label %434

434:                                              ; preds = %431, %429
  %435 = phi float [ %430, %429 ], [ %433, %431 ]
  %436 = fpext float %435 to double
  %437 = fptrunc double %436 to float
  store float %437, ptr %42, align 4, !tbaa !11
  %438 = load float, ptr %41, align 4, !tbaa !11
  %439 = load float, ptr %42, align 4, !tbaa !11
  %440 = fcmp oge float %438, %439
  br i1 %440, label %441, label %443

441:                                              ; preds = %434
  %442 = load float, ptr %41, align 4, !tbaa !11
  br label %445

443:                                              ; preds = %434
  %444 = load float, ptr %42, align 4, !tbaa !11
  br label %445

445:                                              ; preds = %443, %441
  %446 = phi float [ %442, %441 ], [ %444, %443 ]
  %447 = fpext float %446 to double
  %448 = fptrunc double %447 to float
  store float %448, ptr %74, align 4, !tbaa !11
  br label %449

449:                                              ; preds = %445
  %450 = load i64, ptr %48, align 8, !tbaa !9
  %451 = add nsw i64 %450, 1
  store i64 %451, ptr %48, align 8, !tbaa !9
  br label %417, !llvm.loop !17

452:                                              ; preds = %417
  %453 = load ptr, ptr %18, align 8, !tbaa !5
  %454 = load i64, ptr %453, align 8, !tbaa !9
  %455 = sub nsw i64 %454, 1
  store i64 %455, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %456

456:                                              ; preds = %488, %452
  %457 = load i64, ptr %48, align 8, !tbaa !9
  %458 = load i64, ptr %38, align 8, !tbaa !9
  %459 = icmp sle i64 %457, %458
  br i1 %459, label %460, label %491

460:                                              ; preds = %456
  %461 = load float, ptr %74, align 4, !tbaa !11
  store float %461, ptr %41, align 4, !tbaa !11
  %462 = load ptr, ptr %23, align 8, !tbaa !5
  %463 = load i64, ptr %48, align 8, !tbaa !9
  %464 = getelementptr inbounds float, ptr %462, i64 %463
  %465 = load float, ptr %464, align 4, !tbaa !11
  store float %465, ptr %40, align 4, !tbaa !11
  %466 = load float, ptr %40, align 4, !tbaa !11
  %467 = fcmp oge float %466, 0.000000e+00
  br i1 %467, label %468, label %470

468:                                              ; preds = %460
  %469 = load float, ptr %40, align 4, !tbaa !11
  br label %473

470:                                              ; preds = %460
  %471 = load float, ptr %40, align 4, !tbaa !11
  %472 = fneg float %471
  br label %473

473:                                              ; preds = %470, %468
  %474 = phi float [ %469, %468 ], [ %472, %470 ]
  %475 = fpext float %474 to double
  %476 = fptrunc double %475 to float
  store float %476, ptr %42, align 4, !tbaa !11
  %477 = load float, ptr %41, align 4, !tbaa !11
  %478 = load float, ptr %42, align 4, !tbaa !11
  %479 = fcmp oge float %477, %478
  br i1 %479, label %480, label %482

480:                                              ; preds = %473
  %481 = load float, ptr %41, align 4, !tbaa !11
  br label %484

482:                                              ; preds = %473
  %483 = load float, ptr %42, align 4, !tbaa !11
  br label %484

484:                                              ; preds = %482, %480
  %485 = phi float [ %481, %480 ], [ %483, %482 ]
  %486 = fpext float %485 to double
  %487 = fptrunc double %486 to float
  store float %487, ptr %74, align 4, !tbaa !11
  br label %488

488:                                              ; preds = %484
  %489 = load i64, ptr %48, align 8, !tbaa !9
  %490 = add nsw i64 %489, 1
  store i64 %490, ptr %48, align 8, !tbaa !9
  br label %456, !llvm.loop !18

491:                                              ; preds = %456
  store float 0.000000e+00, ptr %82, align 4, !tbaa !11
  %492 = load float, ptr %62, align 4, !tbaa !11
  %493 = fcmp oge float %492, 0.000000e+00
  br i1 %493, label %494, label %613

494:                                              ; preds = %491
  %495 = load ptr, ptr %22, align 8, !tbaa !5
  %496 = getelementptr inbounds float, ptr %495, i64 1
  %497 = load float, ptr %496, align 4, !tbaa !11
  %498 = fcmp oge float %497, 0.000000e+00
  br i1 %498, label %499, label %503

499:                                              ; preds = %494
  %500 = load ptr, ptr %22, align 8, !tbaa !5
  %501 = getelementptr inbounds float, ptr %500, i64 1
  %502 = load float, ptr %501, align 4, !tbaa !11
  br label %508

503:                                              ; preds = %494
  %504 = load ptr, ptr %22, align 8, !tbaa !5
  %505 = getelementptr inbounds float, ptr %504, i64 1
  %506 = load float, ptr %505, align 4, !tbaa !11
  %507 = fneg float %506
  br label %508

508:                                              ; preds = %503, %499
  %509 = phi float [ %502, %499 ], [ %507, %503 ]
  %510 = fpext float %509 to double
  %511 = fptrunc double %510 to float
  store float %511, ptr %85, align 4, !tbaa !11
  %512 = load float, ptr %85, align 4, !tbaa !11
  %513 = fcmp oeq float %512, 0.000000e+00
  br i1 %513, label %514, label %515

514:                                              ; preds = %508
  br label %580

515:                                              ; preds = %508
  %516 = load float, ptr %85, align 4, !tbaa !11
  store float %516, ptr %55, align 4, !tbaa !11
  %517 = load ptr, ptr %18, align 8, !tbaa !5
  %518 = load i64, ptr %517, align 8, !tbaa !9
  store i64 %518, ptr %38, align 8, !tbaa !9
  store i64 2, ptr %48, align 8, !tbaa !9
  br label %519

519:                                              ; preds = %576, %515
  %520 = load i64, ptr %48, align 8, !tbaa !9
  %521 = load i64, ptr %38, align 8, !tbaa !9
  %522 = icmp sle i64 %520, %521
  br i1 %522, label %523, label %579

523:                                              ; preds = %519
  %524 = load ptr, ptr %22, align 8, !tbaa !5
  %525 = load i64, ptr %48, align 8, !tbaa !9
  %526 = getelementptr inbounds float, ptr %524, i64 %525
  %527 = load float, ptr %526, align 4, !tbaa !11
  store float %527, ptr %41, align 4, !tbaa !11
  %528 = load float, ptr %41, align 4, !tbaa !11
  %529 = fcmp oge float %528, 0.000000e+00
  br i1 %529, label %530, label %532

530:                                              ; preds = %523
  %531 = load float, ptr %41, align 4, !tbaa !11
  br label %535

532:                                              ; preds = %523
  %533 = load float, ptr %41, align 4, !tbaa !11
  %534 = fneg float %533
  br label %535

535:                                              ; preds = %532, %530
  %536 = phi float [ %531, %530 ], [ %534, %532 ]
  %537 = fpext float %536 to double
  %538 = load float, ptr %55, align 4, !tbaa !11
  %539 = fpext float %538 to double
  %540 = load float, ptr %55, align 4, !tbaa !11
  %541 = fpext float %540 to double
  %542 = load ptr, ptr %23, align 8, !tbaa !5
  %543 = load i64, ptr %48, align 8, !tbaa !9
  %544 = sub nsw i64 %543, 1
  %545 = getelementptr inbounds float, ptr %542, i64 %544
  %546 = load float, ptr %545, align 4, !tbaa !11
  store float %546, ptr %40, align 4, !tbaa !11
  %547 = load float, ptr %40, align 4, !tbaa !11
  %548 = fcmp oge float %547, 0.000000e+00
  br i1 %548, label %549, label %551

549:                                              ; preds = %535
  %550 = load float, ptr %40, align 4, !tbaa !11
  br label %554

551:                                              ; preds = %535
  %552 = load float, ptr %40, align 4, !tbaa !11
  %553 = fneg float %552
  br label %554

554:                                              ; preds = %551, %549
  %555 = phi float [ %550, %549 ], [ %553, %551 ]
  %556 = fpext float %555 to double
  %557 = fadd double %541, %556
  %558 = fdiv double %539, %557
  %559 = fmul double %537, %558
  %560 = fptrunc double %559 to float
  store float %560, ptr %55, align 4, !tbaa !11
  %561 = load float, ptr %85, align 4, !tbaa !11
  %562 = load float, ptr %55, align 4, !tbaa !11
  %563 = fcmp ole float %561, %562
  br i1 %563, label %564, label %566

564:                                              ; preds = %554
  %565 = load float, ptr %85, align 4, !tbaa !11
  br label %568

566:                                              ; preds = %554
  %567 = load float, ptr %55, align 4, !tbaa !11
  br label %568

568:                                              ; preds = %566, %564
  %569 = phi float [ %565, %564 ], [ %567, %566 ]
  %570 = fpext float %569 to double
  %571 = fptrunc double %570 to float
  store float %571, ptr %85, align 4, !tbaa !11
  %572 = load float, ptr %85, align 4, !tbaa !11
  %573 = fcmp oeq float %572, 0.000000e+00
  br i1 %573, label %574, label %575

574:                                              ; preds = %568
  br label %580

575:                                              ; preds = %568
  br label %576

576:                                              ; preds = %575
  %577 = load i64, ptr %48, align 8, !tbaa !9
  %578 = add nsw i64 %577, 1
  store i64 %578, ptr %48, align 8, !tbaa !9
  br label %519, !llvm.loop !19

579:                                              ; preds = %519
  br label %580

580:                                              ; preds = %579, %574, %514
  %581 = load ptr, ptr %18, align 8, !tbaa !5
  %582 = load i64, ptr %581, align 8, !tbaa !9
  %583 = sitofp i64 %582 to float
  %584 = fpext float %583 to double
  %585 = call double @sqrt(double noundef %584) #5
  %586 = load float, ptr %85, align 4, !tbaa !11
  %587 = fpext float %586 to double
  %588 = fdiv double %587, %585
  %589 = fptrunc double %588 to float
  store float %589, ptr %85, align 4, !tbaa !11
  %590 = load float, ptr %62, align 4, !tbaa !11
  %591 = load float, ptr %85, align 4, !tbaa !11
  %592 = fmul float %590, %591
  store float %592, ptr %40, align 4, !tbaa !11
  %593 = load ptr, ptr %18, align 8, !tbaa !5
  %594 = load i64, ptr %593, align 8, !tbaa !9
  %595 = mul nsw i64 %594, 6
  %596 = load ptr, ptr %18, align 8, !tbaa !5
  %597 = load i64, ptr %596, align 8, !tbaa !9
  %598 = mul nsw i64 %595, %597
  %599 = sitofp i64 %598 to float
  %600 = load float, ptr %70, align 4, !tbaa !11
  %601 = fmul float %599, %600
  store float %601, ptr %41, align 4, !tbaa !11
  %602 = load float, ptr %40, align 4, !tbaa !11
  %603 = load float, ptr %41, align 4, !tbaa !11
  %604 = fcmp oge float %602, %603
  br i1 %604, label %605, label %607

605:                                              ; preds = %580
  %606 = load float, ptr %40, align 4, !tbaa !11
  br label %609

607:                                              ; preds = %580
  %608 = load float, ptr %41, align 4, !tbaa !11
  br label %609

609:                                              ; preds = %607, %605
  %610 = phi float [ %606, %605 ], [ %608, %607 ]
  %611 = fpext float %610 to double
  %612 = fptrunc double %611 to float
  store float %612, ptr %86, align 4, !tbaa !11
  br label %648

613:                                              ; preds = %491
  %614 = load float, ptr %62, align 4, !tbaa !11
  %615 = fcmp oge float %614, 0.000000e+00
  br i1 %615, label %616, label %618

616:                                              ; preds = %613
  %617 = load float, ptr %62, align 4, !tbaa !11
  br label %621

618:                                              ; preds = %613
  %619 = load float, ptr %62, align 4, !tbaa !11
  %620 = fneg float %619
  br label %621

621:                                              ; preds = %618, %616
  %622 = phi float [ %617, %616 ], [ %620, %618 ]
  %623 = fpext float %622 to double
  %624 = load float, ptr %74, align 4, !tbaa !11
  %625 = fpext float %624 to double
  %626 = fmul double %623, %625
  %627 = fptrunc double %626 to float
  store float %627, ptr %40, align 4, !tbaa !11
  %628 = load ptr, ptr %18, align 8, !tbaa !5
  %629 = load i64, ptr %628, align 8, !tbaa !9
  %630 = mul nsw i64 %629, 6
  %631 = load ptr, ptr %18, align 8, !tbaa !5
  %632 = load i64, ptr %631, align 8, !tbaa !9
  %633 = mul nsw i64 %630, %632
  %634 = sitofp i64 %633 to float
  %635 = load float, ptr %70, align 4, !tbaa !11
  %636 = fmul float %634, %635
  store float %636, ptr %41, align 4, !tbaa !11
  %637 = load float, ptr %40, align 4, !tbaa !11
  %638 = load float, ptr %41, align 4, !tbaa !11
  %639 = fcmp oge float %637, %638
  br i1 %639, label %640, label %642

640:                                              ; preds = %621
  %641 = load float, ptr %40, align 4, !tbaa !11
  br label %644

642:                                              ; preds = %621
  %643 = load float, ptr %41, align 4, !tbaa !11
  br label %644

644:                                              ; preds = %642, %640
  %645 = phi float [ %641, %640 ], [ %643, %642 ]
  %646 = fpext float %645 to double
  %647 = fptrunc double %646 to float
  store float %647, ptr %86, align 4, !tbaa !11
  br label %648

648:                                              ; preds = %644, %609
  %649 = load ptr, ptr %18, align 8, !tbaa !5
  %650 = load i64, ptr %649, align 8, !tbaa !9
  %651 = mul nsw i64 %650, 6
  %652 = load ptr, ptr %18, align 8, !tbaa !5
  %653 = load i64, ptr %652, align 8, !tbaa !9
  %654 = mul nsw i64 %651, %653
  store i64 %654, ptr %81, align 8, !tbaa !9
  store i64 0, ptr %69, align 8, !tbaa !9
  store i64 -1, ptr %77, align 8, !tbaa !9
  store i64 -1, ptr %66, align 8, !tbaa !9
  %655 = load ptr, ptr %18, align 8, !tbaa !5
  %656 = load i64, ptr %655, align 8, !tbaa !9
  store i64 %656, ptr %50, align 8, !tbaa !9
  br label %657

657:                                              ; preds = %2409, %1237, %1186, %1066, %1014, %903, %807, %648
  %658 = load i64, ptr %50, align 8, !tbaa !9
  %659 = icmp sle i64 %658, 1
  br i1 %659, label %660, label %661

660:                                              ; preds = %657
  br label %2410

661:                                              ; preds = %657
  %662 = load i64, ptr %69, align 8, !tbaa !9
  %663 = load i64, ptr %81, align 8, !tbaa !9
  %664 = icmp sgt i64 %662, %663
  br i1 %664, label %665, label %666

665:                                              ; preds = %661
  br label %2589

666:                                              ; preds = %661
  %667 = load float, ptr %62, align 4, !tbaa !11
  %668 = fcmp olt float %667, 0.000000e+00
  br i1 %668, label %669, label %691

669:                                              ; preds = %666
  %670 = load ptr, ptr %22, align 8, !tbaa !5
  %671 = load i64, ptr %50, align 8, !tbaa !9
  %672 = getelementptr inbounds float, ptr %670, i64 %671
  %673 = load float, ptr %672, align 4, !tbaa !11
  store float %673, ptr %40, align 4, !tbaa !11
  %674 = load float, ptr %40, align 4, !tbaa !11
  %675 = fcmp oge float %674, 0.000000e+00
  br i1 %675, label %676, label %678

676:                                              ; preds = %669
  %677 = load float, ptr %40, align 4, !tbaa !11
  br label %681

678:                                              ; preds = %669
  %679 = load float, ptr %40, align 4, !tbaa !11
  %680 = fneg float %679
  br label %681

681:                                              ; preds = %678, %676
  %682 = phi float [ %677, %676 ], [ %680, %678 ]
  %683 = fpext float %682 to double
  %684 = load float, ptr %86, align 4, !tbaa !11
  %685 = fpext float %684 to double
  %686 = fcmp ole double %683, %685
  br i1 %686, label %687, label %691

687:                                              ; preds = %681
  %688 = load ptr, ptr %22, align 8, !tbaa !5
  %689 = load i64, ptr %50, align 8, !tbaa !9
  %690 = getelementptr inbounds float, ptr %688, i64 %689
  store float 0.000000e+00, ptr %690, align 4, !tbaa !11
  br label %691

691:                                              ; preds = %687, %681, %666
  %692 = load ptr, ptr %22, align 8, !tbaa !5
  %693 = load i64, ptr %50, align 8, !tbaa !9
  %694 = getelementptr inbounds float, ptr %692, i64 %693
  %695 = load float, ptr %694, align 4, !tbaa !11
  store float %695, ptr %40, align 4, !tbaa !11
  %696 = load float, ptr %40, align 4, !tbaa !11
  %697 = fcmp oge float %696, 0.000000e+00
  br i1 %697, label %698, label %700

698:                                              ; preds = %691
  %699 = load float, ptr %40, align 4, !tbaa !11
  br label %703

700:                                              ; preds = %691
  %701 = load float, ptr %40, align 4, !tbaa !11
  %702 = fneg float %701
  br label %703

703:                                              ; preds = %700, %698
  %704 = phi float [ %699, %698 ], [ %702, %700 ]
  %705 = fpext float %704 to double
  %706 = fptrunc double %705 to float
  store float %706, ptr %74, align 4, !tbaa !11
  %707 = load float, ptr %74, align 4, !tbaa !11
  store float %707, ptr %73, align 4, !tbaa !11
  %708 = load i64, ptr %50, align 8, !tbaa !9
  %709 = sub nsw i64 %708, 1
  store i64 %709, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %59, align 8, !tbaa !9
  br label %710

710:                                              ; preds = %795, %703
  %711 = load i64, ptr %59, align 8, !tbaa !9
  %712 = load i64, ptr %38, align 8, !tbaa !9
  %713 = icmp sle i64 %711, %712
  br i1 %713, label %714, label %798

714:                                              ; preds = %710
  %715 = load i64, ptr %50, align 8, !tbaa !9
  %716 = load i64, ptr %59, align 8, !tbaa !9
  %717 = sub nsw i64 %715, %716
  store i64 %717, ptr %53, align 8, !tbaa !9
  %718 = load ptr, ptr %22, align 8, !tbaa !5
  %719 = load i64, ptr %53, align 8, !tbaa !9
  %720 = getelementptr inbounds float, ptr %718, i64 %719
  %721 = load float, ptr %720, align 4, !tbaa !11
  store float %721, ptr %40, align 4, !tbaa !11
  %722 = load float, ptr %40, align 4, !tbaa !11
  %723 = fcmp oge float %722, 0.000000e+00
  br i1 %723, label %724, label %726

724:                                              ; preds = %714
  %725 = load float, ptr %40, align 4, !tbaa !11
  br label %729

726:                                              ; preds = %714
  %727 = load float, ptr %40, align 4, !tbaa !11
  %728 = fneg float %727
  br label %729

729:                                              ; preds = %726, %724
  %730 = phi float [ %725, %724 ], [ %728, %726 ]
  %731 = fpext float %730 to double
  %732 = fptrunc double %731 to float
  store float %732, ptr %65, align 4, !tbaa !11
  %733 = load ptr, ptr %23, align 8, !tbaa !5
  %734 = load i64, ptr %53, align 8, !tbaa !9
  %735 = getelementptr inbounds float, ptr %733, i64 %734
  %736 = load float, ptr %735, align 4, !tbaa !11
  store float %736, ptr %40, align 4, !tbaa !11
  %737 = load float, ptr %40, align 4, !tbaa !11
  %738 = fcmp oge float %737, 0.000000e+00
  br i1 %738, label %739, label %741

739:                                              ; preds = %729
  %740 = load float, ptr %40, align 4, !tbaa !11
  br label %744

741:                                              ; preds = %729
  %742 = load float, ptr %40, align 4, !tbaa !11
  %743 = fneg float %742
  br label %744

744:                                              ; preds = %741, %739
  %745 = phi float [ %740, %739 ], [ %743, %741 ]
  %746 = fpext float %745 to double
  %747 = fptrunc double %746 to float
  store float %747, ptr %63, align 4, !tbaa !11
  %748 = load float, ptr %62, align 4, !tbaa !11
  %749 = fcmp olt float %748, 0.000000e+00
  br i1 %749, label %750, label %758

750:                                              ; preds = %744
  %751 = load float, ptr %65, align 4, !tbaa !11
  %752 = load float, ptr %86, align 4, !tbaa !11
  %753 = fcmp ole float %751, %752
  br i1 %753, label %754, label %758

754:                                              ; preds = %750
  %755 = load ptr, ptr %22, align 8, !tbaa !5
  %756 = load i64, ptr %53, align 8, !tbaa !9
  %757 = getelementptr inbounds float, ptr %755, i64 %756
  store float 0.000000e+00, ptr %757, align 4, !tbaa !11
  br label %758

758:                                              ; preds = %754, %750, %744
  %759 = load float, ptr %63, align 4, !tbaa !11
  %760 = load float, ptr %86, align 4, !tbaa !11
  %761 = fcmp ole float %759, %760
  br i1 %761, label %762, label %763

762:                                              ; preds = %758
  br label %799

763:                                              ; preds = %758
  %764 = load float, ptr %73, align 4, !tbaa !11
  %765 = load float, ptr %65, align 4, !tbaa !11
  %766 = fcmp ole float %764, %765
  br i1 %766, label %767, label %769

767:                                              ; preds = %763
  %768 = load float, ptr %73, align 4, !tbaa !11
  br label %771

769:                                              ; preds = %763
  %770 = load float, ptr %65, align 4, !tbaa !11
  br label %771

771:                                              ; preds = %769, %767
  %772 = phi float [ %768, %767 ], [ %770, %769 ]
  %773 = fpext float %772 to double
  %774 = fptrunc double %773 to float
  store float %774, ptr %73, align 4, !tbaa !11
  %775 = load float, ptr %74, align 4, !tbaa !11
  %776 = load float, ptr %65, align 4, !tbaa !11
  %777 = fcmp oge float %775, %776
  br i1 %777, label %778, label %780

778:                                              ; preds = %771
  %779 = load float, ptr %74, align 4, !tbaa !11
  br label %782

780:                                              ; preds = %771
  %781 = load float, ptr %65, align 4, !tbaa !11
  br label %782

782:                                              ; preds = %780, %778
  %783 = phi float [ %779, %778 ], [ %781, %780 ]
  store float %783, ptr %40, align 4, !tbaa !11
  %784 = load float, ptr %40, align 4, !tbaa !11
  %785 = load float, ptr %63, align 4, !tbaa !11
  %786 = fcmp oge float %784, %785
  br i1 %786, label %787, label %789

787:                                              ; preds = %782
  %788 = load float, ptr %40, align 4, !tbaa !11
  br label %791

789:                                              ; preds = %782
  %790 = load float, ptr %63, align 4, !tbaa !11
  br label %791

791:                                              ; preds = %789, %787
  %792 = phi float [ %788, %787 ], [ %790, %789 ]
  %793 = fpext float %792 to double
  %794 = fptrunc double %793 to float
  store float %794, ptr %74, align 4, !tbaa !11
  br label %795

795:                                              ; preds = %791
  %796 = load i64, ptr %59, align 8, !tbaa !9
  %797 = add nsw i64 %796, 1
  store i64 %797, ptr %59, align 8, !tbaa !9
  br label %710, !llvm.loop !20

798:                                              ; preds = %710
  store i64 0, ptr %53, align 8, !tbaa !9
  br label %811

799:                                              ; preds = %762
  %800 = load ptr, ptr %23, align 8, !tbaa !5
  %801 = load i64, ptr %53, align 8, !tbaa !9
  %802 = getelementptr inbounds float, ptr %800, i64 %801
  store float 0.000000e+00, ptr %802, align 4, !tbaa !11
  %803 = load i64, ptr %53, align 8, !tbaa !9
  %804 = load i64, ptr %50, align 8, !tbaa !9
  %805 = sub nsw i64 %804, 1
  %806 = icmp eq i64 %803, %805
  br i1 %806, label %807, label %810

807:                                              ; preds = %799
  %808 = load i64, ptr %50, align 8, !tbaa !9
  %809 = add nsw i64 %808, -1
  store i64 %809, ptr %50, align 8, !tbaa !9
  br label %657

810:                                              ; preds = %799
  br label %811

811:                                              ; preds = %810, %798
  %812 = load i64, ptr %53, align 8, !tbaa !9
  %813 = add nsw i64 %812, 1
  store i64 %813, ptr %53, align 8, !tbaa !9
  %814 = load i64, ptr %53, align 8, !tbaa !9
  %815 = load i64, ptr %50, align 8, !tbaa !9
  %816 = sub nsw i64 %815, 1
  %817 = icmp eq i64 %814, %816
  br i1 %817, label %818, label %906

818:                                              ; preds = %811
  %819 = load ptr, ptr %22, align 8, !tbaa !5
  %820 = load i64, ptr %50, align 8, !tbaa !9
  %821 = sub nsw i64 %820, 1
  %822 = getelementptr inbounds float, ptr %819, i64 %821
  %823 = load ptr, ptr %23, align 8, !tbaa !5
  %824 = load i64, ptr %50, align 8, !tbaa !9
  %825 = sub nsw i64 %824, 1
  %826 = getelementptr inbounds float, ptr %823, i64 %825
  %827 = load ptr, ptr %22, align 8, !tbaa !5
  %828 = load i64, ptr %50, align 8, !tbaa !9
  %829 = getelementptr inbounds float, ptr %827, i64 %828
  %830 = call i32 @slasv2_(ptr noundef %822, ptr noundef %826, ptr noundef %829, ptr noundef %79, ptr noundef %83, ptr noundef %75, ptr noundef %72, ptr noundef %71, ptr noundef %67)
  %831 = load float, ptr %83, align 4, !tbaa !11
  %832 = load ptr, ptr %22, align 8, !tbaa !5
  %833 = load i64, ptr %50, align 8, !tbaa !9
  %834 = sub nsw i64 %833, 1
  %835 = getelementptr inbounds float, ptr %832, i64 %834
  store float %831, ptr %835, align 4, !tbaa !11
  %836 = load ptr, ptr %23, align 8, !tbaa !5
  %837 = load i64, ptr %50, align 8, !tbaa !9
  %838 = sub nsw i64 %837, 1
  %839 = getelementptr inbounds float, ptr %836, i64 %838
  store float 0.000000e+00, ptr %839, align 4, !tbaa !11
  %840 = load float, ptr %79, align 4, !tbaa !11
  %841 = load ptr, ptr %22, align 8, !tbaa !5
  %842 = load i64, ptr %50, align 8, !tbaa !9
  %843 = getelementptr inbounds float, ptr %841, i64 %842
  store float %840, ptr %843, align 4, !tbaa !11
  %844 = load ptr, ptr %19, align 8, !tbaa !5
  %845 = load i64, ptr %844, align 8, !tbaa !9
  %846 = icmp sgt i64 %845, 0
  br i1 %846, label %847, label %863

847:                                              ; preds = %818
  %848 = load ptr, ptr %19, align 8, !tbaa !5
  %849 = load ptr, ptr %24, align 8, !tbaa !5
  %850 = load i64, ptr %50, align 8, !tbaa !9
  %851 = sub nsw i64 %850, 1
  %852 = load i64, ptr %36, align 8, !tbaa !9
  %853 = add nsw i64 %851, %852
  %854 = getelementptr inbounds %struct.complex, ptr %849, i64 %853
  %855 = load ptr, ptr %25, align 8, !tbaa !5
  %856 = load ptr, ptr %24, align 8, !tbaa !5
  %857 = load i64, ptr %50, align 8, !tbaa !9
  %858 = load i64, ptr %36, align 8, !tbaa !9
  %859 = add nsw i64 %857, %858
  %860 = getelementptr inbounds %struct.complex, ptr %856, i64 %859
  %861 = load ptr, ptr %25, align 8, !tbaa !5
  %862 = call i32 @f2c_csrot(ptr noundef %848, ptr noundef %854, ptr noundef %855, ptr noundef %860, ptr noundef %861, ptr noundef %72, ptr noundef %75)
  br label %863

863:                                              ; preds = %847, %818
  %864 = load ptr, ptr %20, align 8, !tbaa !5
  %865 = load i64, ptr %864, align 8, !tbaa !9
  %866 = icmp sgt i64 %865, 0
  br i1 %866, label %867, label %883

867:                                              ; preds = %863
  %868 = load ptr, ptr %20, align 8, !tbaa !5
  %869 = load ptr, ptr %26, align 8, !tbaa !5
  %870 = load i64, ptr %50, align 8, !tbaa !9
  %871 = sub nsw i64 %870, 1
  %872 = load i64, ptr %34, align 8, !tbaa !9
  %873 = mul nsw i64 %871, %872
  %874 = add nsw i64 %873, 1
  %875 = getelementptr inbounds %struct.complex, ptr %869, i64 %874
  %876 = load ptr, ptr %26, align 8, !tbaa !5
  %877 = load i64, ptr %50, align 8, !tbaa !9
  %878 = load i64, ptr %34, align 8, !tbaa !9
  %879 = mul nsw i64 %877, %878
  %880 = add nsw i64 %879, 1
  %881 = getelementptr inbounds %struct.complex, ptr %876, i64 %880
  %882 = call i32 @f2c_csrot(ptr noundef %868, ptr noundef %875, ptr noundef @c__1, ptr noundef %881, ptr noundef @c__1, ptr noundef %67, ptr noundef %71)
  br label %883

883:                                              ; preds = %867, %863
  %884 = load ptr, ptr %21, align 8, !tbaa !5
  %885 = load i64, ptr %884, align 8, !tbaa !9
  %886 = icmp sgt i64 %885, 0
  br i1 %886, label %887, label %903

887:                                              ; preds = %883
  %888 = load ptr, ptr %21, align 8, !tbaa !5
  %889 = load ptr, ptr %28, align 8, !tbaa !5
  %890 = load i64, ptr %50, align 8, !tbaa !9
  %891 = sub nsw i64 %890, 1
  %892 = load i64, ptr %32, align 8, !tbaa !9
  %893 = add nsw i64 %891, %892
  %894 = getelementptr inbounds %struct.complex, ptr %889, i64 %893
  %895 = load ptr, ptr %29, align 8, !tbaa !5
  %896 = load ptr, ptr %28, align 8, !tbaa !5
  %897 = load i64, ptr %50, align 8, !tbaa !9
  %898 = load i64, ptr %32, align 8, !tbaa !9
  %899 = add nsw i64 %897, %898
  %900 = getelementptr inbounds %struct.complex, ptr %896, i64 %899
  %901 = load ptr, ptr %29, align 8, !tbaa !5
  %902 = call i32 @f2c_csrot(ptr noundef %888, ptr noundef %894, ptr noundef %895, ptr noundef %900, ptr noundef %901, ptr noundef %67, ptr noundef %71)
  br label %903

903:                                              ; preds = %887, %883
  %904 = load i64, ptr %50, align 8, !tbaa !9
  %905 = add nsw i64 %904, -2
  store i64 %905, ptr %50, align 8, !tbaa !9
  br label %657

906:                                              ; preds = %811
  %907 = load i64, ptr %53, align 8, !tbaa !9
  %908 = load i64, ptr %66, align 8, !tbaa !9
  %909 = icmp sgt i64 %907, %908
  br i1 %909, label %914, label %910

910:                                              ; preds = %906
  %911 = load i64, ptr %50, align 8, !tbaa !9
  %912 = load i64, ptr %77, align 8, !tbaa !9
  %913 = icmp slt i64 %911, %912
  br i1 %913, label %914, label %947

914:                                              ; preds = %910, %906
  %915 = load ptr, ptr %22, align 8, !tbaa !5
  %916 = load i64, ptr %53, align 8, !tbaa !9
  %917 = getelementptr inbounds float, ptr %915, i64 %916
  %918 = load float, ptr %917, align 4, !tbaa !11
  store float %918, ptr %40, align 4, !tbaa !11
  %919 = load float, ptr %40, align 4, !tbaa !11
  %920 = fcmp oge float %919, 0.000000e+00
  br i1 %920, label %921, label %923

921:                                              ; preds = %914
  %922 = load float, ptr %40, align 4, !tbaa !11
  br label %926

923:                                              ; preds = %914
  %924 = load float, ptr %40, align 4, !tbaa !11
  %925 = fneg float %924
  br label %926

926:                                              ; preds = %923, %921
  %927 = phi float [ %922, %921 ], [ %925, %923 ]
  %928 = fpext float %927 to double
  %929 = load ptr, ptr %22, align 8, !tbaa !5
  %930 = load i64, ptr %50, align 8, !tbaa !9
  %931 = getelementptr inbounds float, ptr %929, i64 %930
  %932 = load float, ptr %931, align 4, !tbaa !11
  store float %932, ptr %41, align 4, !tbaa !11
  %933 = load float, ptr %41, align 4, !tbaa !11
  %934 = fcmp oge float %933, 0.000000e+00
  br i1 %934, label %935, label %937

935:                                              ; preds = %926
  %936 = load float, ptr %41, align 4, !tbaa !11
  br label %940

937:                                              ; preds = %926
  %938 = load float, ptr %41, align 4, !tbaa !11
  %939 = fneg float %938
  br label %940

940:                                              ; preds = %937, %935
  %941 = phi float [ %936, %935 ], [ %939, %937 ]
  %942 = fpext float %941 to double
  %943 = fcmp oge double %928, %942
  br i1 %943, label %944, label %945

944:                                              ; preds = %940
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %946

945:                                              ; preds = %940
  store i64 2, ptr %64, align 8, !tbaa !9
  br label %946

946:                                              ; preds = %945, %944
  br label %947

947:                                              ; preds = %946, %910
  %948 = load i64, ptr %64, align 8, !tbaa !9
  %949 = icmp eq i64 %948, 1
  br i1 %949, label %950, label %1124

950:                                              ; preds = %947
  %951 = load ptr, ptr %23, align 8, !tbaa !5
  %952 = load i64, ptr %50, align 8, !tbaa !9
  %953 = sub nsw i64 %952, 1
  %954 = getelementptr inbounds float, ptr %951, i64 %953
  %955 = load float, ptr %954, align 4, !tbaa !11
  store float %955, ptr %41, align 4, !tbaa !11
  %956 = load float, ptr %41, align 4, !tbaa !11
  %957 = fcmp oge float %956, 0.000000e+00
  br i1 %957, label %958, label %960

958:                                              ; preds = %950
  %959 = load float, ptr %41, align 4, !tbaa !11
  br label %963

960:                                              ; preds = %950
  %961 = load float, ptr %41, align 4, !tbaa !11
  %962 = fneg float %961
  br label %963

963:                                              ; preds = %960, %958
  %964 = phi float [ %959, %958 ], [ %962, %960 ]
  %965 = fpext float %964 to double
  %966 = load float, ptr %62, align 4, !tbaa !11
  %967 = fcmp oge float %966, 0.000000e+00
  br i1 %967, label %968, label %970

968:                                              ; preds = %963
  %969 = load float, ptr %62, align 4, !tbaa !11
  br label %973

970:                                              ; preds = %963
  %971 = load float, ptr %62, align 4, !tbaa !11
  %972 = fneg float %971
  br label %973

973:                                              ; preds = %970, %968
  %974 = phi float [ %969, %968 ], [ %972, %970 ]
  %975 = fpext float %974 to double
  %976 = load ptr, ptr %22, align 8, !tbaa !5
  %977 = load i64, ptr %50, align 8, !tbaa !9
  %978 = getelementptr inbounds float, ptr %976, i64 %977
  %979 = load float, ptr %978, align 4, !tbaa !11
  store float %979, ptr %40, align 4, !tbaa !11
  %980 = load float, ptr %40, align 4, !tbaa !11
  %981 = fcmp oge float %980, 0.000000e+00
  br i1 %981, label %982, label %984

982:                                              ; preds = %973
  %983 = load float, ptr %40, align 4, !tbaa !11
  br label %987

984:                                              ; preds = %973
  %985 = load float, ptr %40, align 4, !tbaa !11
  %986 = fneg float %985
  br label %987

987:                                              ; preds = %984, %982
  %988 = phi float [ %983, %982 ], [ %986, %984 ]
  %989 = fpext float %988 to double
  %990 = fmul double %975, %989
  %991 = fcmp ole double %965, %990
  br i1 %991, label %1014, label %992

992:                                              ; preds = %987
  %993 = load float, ptr %62, align 4, !tbaa !11
  %994 = fcmp olt float %993, 0.000000e+00
  br i1 %994, label %995, label %1019

995:                                              ; preds = %992
  %996 = load ptr, ptr %23, align 8, !tbaa !5
  %997 = load i64, ptr %50, align 8, !tbaa !9
  %998 = sub nsw i64 %997, 1
  %999 = getelementptr inbounds float, ptr %996, i64 %998
  %1000 = load float, ptr %999, align 4, !tbaa !11
  store float %1000, ptr %42, align 4, !tbaa !11
  %1001 = load float, ptr %42, align 4, !tbaa !11
  %1002 = fcmp oge float %1001, 0.000000e+00
  br i1 %1002, label %1003, label %1005

1003:                                             ; preds = %995
  %1004 = load float, ptr %42, align 4, !tbaa !11
  br label %1008

1005:                                             ; preds = %995
  %1006 = load float, ptr %42, align 4, !tbaa !11
  %1007 = fneg float %1006
  br label %1008

1008:                                             ; preds = %1005, %1003
  %1009 = phi float [ %1004, %1003 ], [ %1007, %1005 ]
  %1010 = fpext float %1009 to double
  %1011 = load float, ptr %86, align 4, !tbaa !11
  %1012 = fpext float %1011 to double
  %1013 = fcmp ole double %1010, %1012
  br i1 %1013, label %1014, label %1019

1014:                                             ; preds = %1008, %987
  %1015 = load ptr, ptr %23, align 8, !tbaa !5
  %1016 = load i64, ptr %50, align 8, !tbaa !9
  %1017 = sub nsw i64 %1016, 1
  %1018 = getelementptr inbounds float, ptr %1015, i64 %1017
  store float 0.000000e+00, ptr %1018, align 4, !tbaa !11
  br label %657

1019:                                             ; preds = %1008, %992
  %1020 = load float, ptr %62, align 4, !tbaa !11
  %1021 = fcmp oge float %1020, 0.000000e+00
  br i1 %1021, label %1022, label %1123

1022:                                             ; preds = %1019
  %1023 = load ptr, ptr %22, align 8, !tbaa !5
  %1024 = load i64, ptr %53, align 8, !tbaa !9
  %1025 = getelementptr inbounds float, ptr %1023, i64 %1024
  %1026 = load float, ptr %1025, align 4, !tbaa !11
  store float %1026, ptr %40, align 4, !tbaa !11
  %1027 = load float, ptr %40, align 4, !tbaa !11
  %1028 = fcmp oge float %1027, 0.000000e+00
  br i1 %1028, label %1029, label %1031

1029:                                             ; preds = %1022
  %1030 = load float, ptr %40, align 4, !tbaa !11
  br label %1034

1031:                                             ; preds = %1022
  %1032 = load float, ptr %40, align 4, !tbaa !11
  %1033 = fneg float %1032
  br label %1034

1034:                                             ; preds = %1031, %1029
  %1035 = phi float [ %1030, %1029 ], [ %1033, %1031 ]
  %1036 = fpext float %1035 to double
  %1037 = fptrunc double %1036 to float
  store float %1037, ptr %55, align 4, !tbaa !11
  %1038 = load float, ptr %55, align 4, !tbaa !11
  store float %1038, ptr %82, align 4, !tbaa !11
  %1039 = load i64, ptr %50, align 8, !tbaa !9
  %1040 = sub nsw i64 %1039, 1
  store i64 %1040, ptr %38, align 8, !tbaa !9
  %1041 = load i64, ptr %53, align 8, !tbaa !9
  store i64 %1041, ptr %59, align 8, !tbaa !9
  br label %1042

1042:                                             ; preds = %1119, %1034
  %1043 = load i64, ptr %59, align 8, !tbaa !9
  %1044 = load i64, ptr %38, align 8, !tbaa !9
  %1045 = icmp sle i64 %1043, %1044
  br i1 %1045, label %1046, label %1122

1046:                                             ; preds = %1042
  %1047 = load ptr, ptr %23, align 8, !tbaa !5
  %1048 = load i64, ptr %59, align 8, !tbaa !9
  %1049 = getelementptr inbounds float, ptr %1047, i64 %1048
  %1050 = load float, ptr %1049, align 4, !tbaa !11
  store float %1050, ptr %40, align 4, !tbaa !11
  %1051 = load float, ptr %40, align 4, !tbaa !11
  %1052 = fcmp oge float %1051, 0.000000e+00
  br i1 %1052, label %1053, label %1055

1053:                                             ; preds = %1046
  %1054 = load float, ptr %40, align 4, !tbaa !11
  br label %1058

1055:                                             ; preds = %1046
  %1056 = load float, ptr %40, align 4, !tbaa !11
  %1057 = fneg float %1056
  br label %1058

1058:                                             ; preds = %1055, %1053
  %1059 = phi float [ %1054, %1053 ], [ %1057, %1055 ]
  %1060 = fpext float %1059 to double
  %1061 = load float, ptr %62, align 4, !tbaa !11
  %1062 = load float, ptr %55, align 4, !tbaa !11
  %1063 = fmul float %1061, %1062
  %1064 = fpext float %1063 to double
  %1065 = fcmp ole double %1060, %1064
  br i1 %1065, label %1066, label %1070

1066:                                             ; preds = %1058
  %1067 = load ptr, ptr %23, align 8, !tbaa !5
  %1068 = load i64, ptr %59, align 8, !tbaa !9
  %1069 = getelementptr inbounds float, ptr %1067, i64 %1068
  store float 0.000000e+00, ptr %1069, align 4, !tbaa !11
  br label %657

1070:                                             ; preds = %1058
  %1071 = load ptr, ptr %22, align 8, !tbaa !5
  %1072 = load i64, ptr %59, align 8, !tbaa !9
  %1073 = add nsw i64 %1072, 1
  %1074 = getelementptr inbounds float, ptr %1071, i64 %1073
  %1075 = load float, ptr %1074, align 4, !tbaa !11
  store float %1075, ptr %41, align 4, !tbaa !11
  %1076 = load float, ptr %41, align 4, !tbaa !11
  %1077 = fcmp oge float %1076, 0.000000e+00
  br i1 %1077, label %1078, label %1080

1078:                                             ; preds = %1070
  %1079 = load float, ptr %41, align 4, !tbaa !11
  br label %1083

1080:                                             ; preds = %1070
  %1081 = load float, ptr %41, align 4, !tbaa !11
  %1082 = fneg float %1081
  br label %1083

1083:                                             ; preds = %1080, %1078
  %1084 = phi float [ %1079, %1078 ], [ %1082, %1080 ]
  %1085 = fpext float %1084 to double
  %1086 = load float, ptr %55, align 4, !tbaa !11
  %1087 = fpext float %1086 to double
  %1088 = load float, ptr %55, align 4, !tbaa !11
  %1089 = fpext float %1088 to double
  %1090 = load ptr, ptr %23, align 8, !tbaa !5
  %1091 = load i64, ptr %59, align 8, !tbaa !9
  %1092 = getelementptr inbounds float, ptr %1090, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !11
  store float %1093, ptr %40, align 4, !tbaa !11
  %1094 = load float, ptr %40, align 4, !tbaa !11
  %1095 = fcmp oge float %1094, 0.000000e+00
  br i1 %1095, label %1096, label %1098

1096:                                             ; preds = %1083
  %1097 = load float, ptr %40, align 4, !tbaa !11
  br label %1101

1098:                                             ; preds = %1083
  %1099 = load float, ptr %40, align 4, !tbaa !11
  %1100 = fneg float %1099
  br label %1101

1101:                                             ; preds = %1098, %1096
  %1102 = phi float [ %1097, %1096 ], [ %1100, %1098 ]
  %1103 = fpext float %1102 to double
  %1104 = fadd double %1089, %1103
  %1105 = fdiv double %1087, %1104
  %1106 = fmul double %1085, %1105
  %1107 = fptrunc double %1106 to float
  store float %1107, ptr %55, align 4, !tbaa !11
  %1108 = load float, ptr %82, align 4, !tbaa !11
  %1109 = load float, ptr %55, align 4, !tbaa !11
  %1110 = fcmp ole float %1108, %1109
  br i1 %1110, label %1111, label %1113

1111:                                             ; preds = %1101
  %1112 = load float, ptr %82, align 4, !tbaa !11
  br label %1115

1113:                                             ; preds = %1101
  %1114 = load float, ptr %55, align 4, !tbaa !11
  br label %1115

1115:                                             ; preds = %1113, %1111
  %1116 = phi float [ %1112, %1111 ], [ %1114, %1113 ]
  %1117 = fpext float %1116 to double
  %1118 = fptrunc double %1117 to float
  store float %1118, ptr %82, align 4, !tbaa !11
  br label %1119

1119:                                             ; preds = %1115
  %1120 = load i64, ptr %59, align 8, !tbaa !9
  %1121 = add nsw i64 %1120, 1
  store i64 %1121, ptr %59, align 8, !tbaa !9
  br label %1042, !llvm.loop !21

1122:                                             ; preds = %1042
  br label %1123

1123:                                             ; preds = %1122, %1019
  br label %1294

1124:                                             ; preds = %947
  %1125 = load ptr, ptr %23, align 8, !tbaa !5
  %1126 = load i64, ptr %53, align 8, !tbaa !9
  %1127 = getelementptr inbounds float, ptr %1125, i64 %1126
  %1128 = load float, ptr %1127, align 4, !tbaa !11
  store float %1128, ptr %41, align 4, !tbaa !11
  %1129 = load float, ptr %41, align 4, !tbaa !11
  %1130 = fcmp oge float %1129, 0.000000e+00
  br i1 %1130, label %1131, label %1133

1131:                                             ; preds = %1124
  %1132 = load float, ptr %41, align 4, !tbaa !11
  br label %1136

1133:                                             ; preds = %1124
  %1134 = load float, ptr %41, align 4, !tbaa !11
  %1135 = fneg float %1134
  br label %1136

1136:                                             ; preds = %1133, %1131
  %1137 = phi float [ %1132, %1131 ], [ %1135, %1133 ]
  %1138 = fpext float %1137 to double
  %1139 = load float, ptr %62, align 4, !tbaa !11
  %1140 = fcmp oge float %1139, 0.000000e+00
  br i1 %1140, label %1141, label %1143

1141:                                             ; preds = %1136
  %1142 = load float, ptr %62, align 4, !tbaa !11
  br label %1146

1143:                                             ; preds = %1136
  %1144 = load float, ptr %62, align 4, !tbaa !11
  %1145 = fneg float %1144
  br label %1146

1146:                                             ; preds = %1143, %1141
  %1147 = phi float [ %1142, %1141 ], [ %1145, %1143 ]
  %1148 = fpext float %1147 to double
  %1149 = load ptr, ptr %22, align 8, !tbaa !5
  %1150 = load i64, ptr %53, align 8, !tbaa !9
  %1151 = getelementptr inbounds float, ptr %1149, i64 %1150
  %1152 = load float, ptr %1151, align 4, !tbaa !11
  store float %1152, ptr %40, align 4, !tbaa !11
  %1153 = load float, ptr %40, align 4, !tbaa !11
  %1154 = fcmp oge float %1153, 0.000000e+00
  br i1 %1154, label %1155, label %1157

1155:                                             ; preds = %1146
  %1156 = load float, ptr %40, align 4, !tbaa !11
  br label %1160

1157:                                             ; preds = %1146
  %1158 = load float, ptr %40, align 4, !tbaa !11
  %1159 = fneg float %1158
  br label %1160

1160:                                             ; preds = %1157, %1155
  %1161 = phi float [ %1156, %1155 ], [ %1159, %1157 ]
  %1162 = fpext float %1161 to double
  %1163 = fmul double %1148, %1162
  %1164 = fcmp ole double %1138, %1163
  br i1 %1164, label %1186, label %1165

1165:                                             ; preds = %1160
  %1166 = load float, ptr %62, align 4, !tbaa !11
  %1167 = fcmp olt float %1166, 0.000000e+00
  br i1 %1167, label %1168, label %1190

1168:                                             ; preds = %1165
  %1169 = load ptr, ptr %23, align 8, !tbaa !5
  %1170 = load i64, ptr %53, align 8, !tbaa !9
  %1171 = getelementptr inbounds float, ptr %1169, i64 %1170
  %1172 = load float, ptr %1171, align 4, !tbaa !11
  store float %1172, ptr %42, align 4, !tbaa !11
  %1173 = load float, ptr %42, align 4, !tbaa !11
  %1174 = fcmp oge float %1173, 0.000000e+00
  br i1 %1174, label %1175, label %1177

1175:                                             ; preds = %1168
  %1176 = load float, ptr %42, align 4, !tbaa !11
  br label %1180

1177:                                             ; preds = %1168
  %1178 = load float, ptr %42, align 4, !tbaa !11
  %1179 = fneg float %1178
  br label %1180

1180:                                             ; preds = %1177, %1175
  %1181 = phi float [ %1176, %1175 ], [ %1179, %1177 ]
  %1182 = fpext float %1181 to double
  %1183 = load float, ptr %86, align 4, !tbaa !11
  %1184 = fpext float %1183 to double
  %1185 = fcmp ole double %1182, %1184
  br i1 %1185, label %1186, label %1190

1186:                                             ; preds = %1180, %1160
  %1187 = load ptr, ptr %23, align 8, !tbaa !5
  %1188 = load i64, ptr %53, align 8, !tbaa !9
  %1189 = getelementptr inbounds float, ptr %1187, i64 %1188
  store float 0.000000e+00, ptr %1189, align 4, !tbaa !11
  br label %657

1190:                                             ; preds = %1180, %1165
  %1191 = load float, ptr %62, align 4, !tbaa !11
  %1192 = fcmp oge float %1191, 0.000000e+00
  br i1 %1192, label %1193, label %1293

1193:                                             ; preds = %1190
  %1194 = load ptr, ptr %22, align 8, !tbaa !5
  %1195 = load i64, ptr %50, align 8, !tbaa !9
  %1196 = getelementptr inbounds float, ptr %1194, i64 %1195
  %1197 = load float, ptr %1196, align 4, !tbaa !11
  store float %1197, ptr %40, align 4, !tbaa !11
  %1198 = load float, ptr %40, align 4, !tbaa !11
  %1199 = fcmp oge float %1198, 0.000000e+00
  br i1 %1199, label %1200, label %1202

1200:                                             ; preds = %1193
  %1201 = load float, ptr %40, align 4, !tbaa !11
  br label %1205

1202:                                             ; preds = %1193
  %1203 = load float, ptr %40, align 4, !tbaa !11
  %1204 = fneg float %1203
  br label %1205

1205:                                             ; preds = %1202, %1200
  %1206 = phi float [ %1201, %1200 ], [ %1204, %1202 ]
  %1207 = fpext float %1206 to double
  %1208 = fptrunc double %1207 to float
  store float %1208, ptr %55, align 4, !tbaa !11
  %1209 = load float, ptr %55, align 4, !tbaa !11
  store float %1209, ptr %82, align 4, !tbaa !11
  %1210 = load i64, ptr %53, align 8, !tbaa !9
  store i64 %1210, ptr %38, align 8, !tbaa !9
  %1211 = load i64, ptr %50, align 8, !tbaa !9
  %1212 = sub nsw i64 %1211, 1
  store i64 %1212, ptr %59, align 8, !tbaa !9
  br label %1213

1213:                                             ; preds = %1289, %1205
  %1214 = load i64, ptr %59, align 8, !tbaa !9
  %1215 = load i64, ptr %38, align 8, !tbaa !9
  %1216 = icmp sge i64 %1214, %1215
  br i1 %1216, label %1217, label %1292

1217:                                             ; preds = %1213
  %1218 = load ptr, ptr %23, align 8, !tbaa !5
  %1219 = load i64, ptr %59, align 8, !tbaa !9
  %1220 = getelementptr inbounds float, ptr %1218, i64 %1219
  %1221 = load float, ptr %1220, align 4, !tbaa !11
  store float %1221, ptr %40, align 4, !tbaa !11
  %1222 = load float, ptr %40, align 4, !tbaa !11
  %1223 = fcmp oge float %1222, 0.000000e+00
  br i1 %1223, label %1224, label %1226

1224:                                             ; preds = %1217
  %1225 = load float, ptr %40, align 4, !tbaa !11
  br label %1229

1226:                                             ; preds = %1217
  %1227 = load float, ptr %40, align 4, !tbaa !11
  %1228 = fneg float %1227
  br label %1229

1229:                                             ; preds = %1226, %1224
  %1230 = phi float [ %1225, %1224 ], [ %1228, %1226 ]
  %1231 = fpext float %1230 to double
  %1232 = load float, ptr %62, align 4, !tbaa !11
  %1233 = load float, ptr %55, align 4, !tbaa !11
  %1234 = fmul float %1232, %1233
  %1235 = fpext float %1234 to double
  %1236 = fcmp ole double %1231, %1235
  br i1 %1236, label %1237, label %1241

1237:                                             ; preds = %1229
  %1238 = load ptr, ptr %23, align 8, !tbaa !5
  %1239 = load i64, ptr %59, align 8, !tbaa !9
  %1240 = getelementptr inbounds float, ptr %1238, i64 %1239
  store float 0.000000e+00, ptr %1240, align 4, !tbaa !11
  br label %657

1241:                                             ; preds = %1229
  %1242 = load ptr, ptr %22, align 8, !tbaa !5
  %1243 = load i64, ptr %59, align 8, !tbaa !9
  %1244 = getelementptr inbounds float, ptr %1242, i64 %1243
  %1245 = load float, ptr %1244, align 4, !tbaa !11
  store float %1245, ptr %41, align 4, !tbaa !11
  %1246 = load float, ptr %41, align 4, !tbaa !11
  %1247 = fcmp oge float %1246, 0.000000e+00
  br i1 %1247, label %1248, label %1250

1248:                                             ; preds = %1241
  %1249 = load float, ptr %41, align 4, !tbaa !11
  br label %1253

1250:                                             ; preds = %1241
  %1251 = load float, ptr %41, align 4, !tbaa !11
  %1252 = fneg float %1251
  br label %1253

1253:                                             ; preds = %1250, %1248
  %1254 = phi float [ %1249, %1248 ], [ %1252, %1250 ]
  %1255 = fpext float %1254 to double
  %1256 = load float, ptr %55, align 4, !tbaa !11
  %1257 = fpext float %1256 to double
  %1258 = load float, ptr %55, align 4, !tbaa !11
  %1259 = fpext float %1258 to double
  %1260 = load ptr, ptr %23, align 8, !tbaa !5
  %1261 = load i64, ptr %59, align 8, !tbaa !9
  %1262 = getelementptr inbounds float, ptr %1260, i64 %1261
  %1263 = load float, ptr %1262, align 4, !tbaa !11
  store float %1263, ptr %40, align 4, !tbaa !11
  %1264 = load float, ptr %40, align 4, !tbaa !11
  %1265 = fcmp oge float %1264, 0.000000e+00
  br i1 %1265, label %1266, label %1268

1266:                                             ; preds = %1253
  %1267 = load float, ptr %40, align 4, !tbaa !11
  br label %1271

1268:                                             ; preds = %1253
  %1269 = load float, ptr %40, align 4, !tbaa !11
  %1270 = fneg float %1269
  br label %1271

1271:                                             ; preds = %1268, %1266
  %1272 = phi float [ %1267, %1266 ], [ %1270, %1268 ]
  %1273 = fpext float %1272 to double
  %1274 = fadd double %1259, %1273
  %1275 = fdiv double %1257, %1274
  %1276 = fmul double %1255, %1275
  %1277 = fptrunc double %1276 to float
  store float %1277, ptr %55, align 4, !tbaa !11
  %1278 = load float, ptr %82, align 4, !tbaa !11
  %1279 = load float, ptr %55, align 4, !tbaa !11
  %1280 = fcmp ole float %1278, %1279
  br i1 %1280, label %1281, label %1283

1281:                                             ; preds = %1271
  %1282 = load float, ptr %82, align 4, !tbaa !11
  br label %1285

1283:                                             ; preds = %1271
  %1284 = load float, ptr %55, align 4, !tbaa !11
  br label %1285

1285:                                             ; preds = %1283, %1281
  %1286 = phi float [ %1282, %1281 ], [ %1284, %1283 ]
  %1287 = fpext float %1286 to double
  %1288 = fptrunc double %1287 to float
  store float %1288, ptr %82, align 4, !tbaa !11
  br label %1289

1289:                                             ; preds = %1285
  %1290 = load i64, ptr %59, align 8, !tbaa !9
  %1291 = add nsw i64 %1290, -1
  store i64 %1291, ptr %59, align 8, !tbaa !9
  br label %1213, !llvm.loop !22

1292:                                             ; preds = %1213
  br label %1293

1293:                                             ; preds = %1292, %1190
  br label %1294

1294:                                             ; preds = %1293, %1123
  %1295 = load i64, ptr %53, align 8, !tbaa !9
  store i64 %1295, ptr %77, align 8, !tbaa !9
  %1296 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %1296, ptr %66, align 8, !tbaa !9
  %1297 = load float, ptr %60, align 4, !tbaa !11
  store float %1297, ptr %40, align 4, !tbaa !11
  %1298 = load float, ptr %62, align 4, !tbaa !11
  %1299 = fmul float %1298, 0x3F847AE140000000
  store float %1299, ptr %41, align 4, !tbaa !11
  %1300 = load float, ptr %62, align 4, !tbaa !11
  %1301 = fcmp oge float %1300, 0.000000e+00
  br i1 %1301, label %1302, label %1325

1302:                                             ; preds = %1294
  %1303 = load ptr, ptr %18, align 8, !tbaa !5
  %1304 = load i64, ptr %1303, align 8, !tbaa !9
  %1305 = sitofp i64 %1304 to float
  %1306 = load float, ptr %62, align 4, !tbaa !11
  %1307 = fmul float %1305, %1306
  %1308 = load float, ptr %82, align 4, !tbaa !11
  %1309 = load float, ptr %74, align 4, !tbaa !11
  %1310 = fdiv float %1308, %1309
  %1311 = fmul float %1307, %1310
  %1312 = fpext float %1311 to double
  %1313 = load float, ptr %40, align 4, !tbaa !11
  %1314 = load float, ptr %41, align 4, !tbaa !11
  %1315 = fcmp oge float %1313, %1314
  br i1 %1315, label %1316, label %1318

1316:                                             ; preds = %1302
  %1317 = load float, ptr %40, align 4, !tbaa !11
  br label %1320

1318:                                             ; preds = %1302
  %1319 = load float, ptr %41, align 4, !tbaa !11
  br label %1320

1320:                                             ; preds = %1318, %1316
  %1321 = phi float [ %1317, %1316 ], [ %1319, %1318 ]
  %1322 = fpext float %1321 to double
  %1323 = fcmp ole double %1312, %1322
  br i1 %1323, label %1324, label %1325

1324:                                             ; preds = %1320
  store float 0.000000e+00, ptr %78, align 4, !tbaa !11
  br label %1398

1325:                                             ; preds = %1320, %1294
  %1326 = load i64, ptr %64, align 8, !tbaa !9
  %1327 = icmp eq i64 %1326, 1
  br i1 %1327, label %1328, label %1356

1328:                                             ; preds = %1325
  %1329 = load ptr, ptr %22, align 8, !tbaa !5
  %1330 = load i64, ptr %53, align 8, !tbaa !9
  %1331 = getelementptr inbounds float, ptr %1329, i64 %1330
  %1332 = load float, ptr %1331, align 4, !tbaa !11
  store float %1332, ptr %40, align 4, !tbaa !11
  %1333 = load float, ptr %40, align 4, !tbaa !11
  %1334 = fcmp oge float %1333, 0.000000e+00
  br i1 %1334, label %1335, label %1337

1335:                                             ; preds = %1328
  %1336 = load float, ptr %40, align 4, !tbaa !11
  br label %1340

1337:                                             ; preds = %1328
  %1338 = load float, ptr %40, align 4, !tbaa !11
  %1339 = fneg float %1338
  br label %1340

1340:                                             ; preds = %1337, %1335
  %1341 = phi float [ %1336, %1335 ], [ %1339, %1337 ]
  %1342 = fpext float %1341 to double
  %1343 = fptrunc double %1342 to float
  store float %1343, ptr %61, align 4, !tbaa !11
  %1344 = load ptr, ptr %22, align 8, !tbaa !5
  %1345 = load i64, ptr %50, align 8, !tbaa !9
  %1346 = sub nsw i64 %1345, 1
  %1347 = getelementptr inbounds float, ptr %1344, i64 %1346
  %1348 = load ptr, ptr %23, align 8, !tbaa !5
  %1349 = load i64, ptr %50, align 8, !tbaa !9
  %1350 = sub nsw i64 %1349, 1
  %1351 = getelementptr inbounds float, ptr %1348, i64 %1350
  %1352 = load ptr, ptr %22, align 8, !tbaa !5
  %1353 = load i64, ptr %50, align 8, !tbaa !9
  %1354 = getelementptr inbounds float, ptr %1352, i64 %1353
  %1355 = call i32 @slas2_(ptr noundef %1347, ptr noundef %1351, ptr noundef %1354, ptr noundef %78, ptr noundef %51)
  br label %1383

1356:                                             ; preds = %1325
  %1357 = load ptr, ptr %22, align 8, !tbaa !5
  %1358 = load i64, ptr %50, align 8, !tbaa !9
  %1359 = getelementptr inbounds float, ptr %1357, i64 %1358
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  store float %1360, ptr %40, align 4, !tbaa !11
  %1361 = load float, ptr %40, align 4, !tbaa !11
  %1362 = fcmp oge float %1361, 0.000000e+00
  br i1 %1362, label %1363, label %1365

1363:                                             ; preds = %1356
  %1364 = load float, ptr %40, align 4, !tbaa !11
  br label %1368

1365:                                             ; preds = %1356
  %1366 = load float, ptr %40, align 4, !tbaa !11
  %1367 = fneg float %1366
  br label %1368

1368:                                             ; preds = %1365, %1363
  %1369 = phi float [ %1364, %1363 ], [ %1367, %1365 ]
  %1370 = fpext float %1369 to double
  %1371 = fptrunc double %1370 to float
  store float %1371, ptr %61, align 4, !tbaa !11
  %1372 = load ptr, ptr %22, align 8, !tbaa !5
  %1373 = load i64, ptr %53, align 8, !tbaa !9
  %1374 = getelementptr inbounds float, ptr %1372, i64 %1373
  %1375 = load ptr, ptr %23, align 8, !tbaa !5
  %1376 = load i64, ptr %53, align 8, !tbaa !9
  %1377 = getelementptr inbounds float, ptr %1375, i64 %1376
  %1378 = load ptr, ptr %22, align 8, !tbaa !5
  %1379 = load i64, ptr %53, align 8, !tbaa !9
  %1380 = add nsw i64 %1379, 1
  %1381 = getelementptr inbounds float, ptr %1378, i64 %1380
  %1382 = call i32 @slas2_(ptr noundef %1374, ptr noundef %1377, ptr noundef %1381, ptr noundef %78, ptr noundef %51)
  br label %1383

1383:                                             ; preds = %1368, %1340
  %1384 = load float, ptr %61, align 4, !tbaa !11
  %1385 = fcmp ogt float %1384, 0.000000e+00
  br i1 %1385, label %1386, label %1397

1386:                                             ; preds = %1383
  %1387 = load float, ptr %78, align 4, !tbaa !11
  %1388 = load float, ptr %61, align 4, !tbaa !11
  %1389 = fdiv float %1387, %1388
  store float %1389, ptr %40, align 4, !tbaa !11
  %1390 = load float, ptr %40, align 4, !tbaa !11
  %1391 = load float, ptr %40, align 4, !tbaa !11
  %1392 = fmul float %1390, %1391
  %1393 = load float, ptr %60, align 4, !tbaa !11
  %1394 = fcmp olt float %1392, %1393
  br i1 %1394, label %1395, label %1396

1395:                                             ; preds = %1386
  store float 0.000000e+00, ptr %78, align 4, !tbaa !11
  br label %1396

1396:                                             ; preds = %1395, %1386
  br label %1397

1397:                                             ; preds = %1396, %1383
  br label %1398

1398:                                             ; preds = %1397, %1324
  %1399 = load i64, ptr %69, align 8, !tbaa !9
  %1400 = load i64, ptr %50, align 8, !tbaa !9
  %1401 = add nsw i64 %1399, %1400
  %1402 = load i64, ptr %53, align 8, !tbaa !9
  %1403 = sub nsw i64 %1401, %1402
  store i64 %1403, ptr %69, align 8, !tbaa !9
  %1404 = load float, ptr %78, align 4, !tbaa !11
  %1405 = fcmp oeq float %1404, 0.000000e+00
  br i1 %1405, label %1406, label %1803

1406:                                             ; preds = %1398
  %1407 = load i64, ptr %64, align 8, !tbaa !9
  %1408 = icmp eq i64 %1407, 1
  br i1 %1408, label %1409, label %1609

1409:                                             ; preds = %1406
  store float 1.000000e+00, ptr %52, align 4, !tbaa !11
  store float 1.000000e+00, ptr %76, align 4, !tbaa !11
  %1410 = load i64, ptr %50, align 8, !tbaa !9
  %1411 = sub nsw i64 %1410, 1
  store i64 %1411, ptr %38, align 8, !tbaa !9
  %1412 = load i64, ptr %53, align 8, !tbaa !9
  store i64 %1412, ptr %48, align 8, !tbaa !9
  br label %1413

1413:                                             ; preds = %1488, %1409
  %1414 = load i64, ptr %48, align 8, !tbaa !9
  %1415 = load i64, ptr %38, align 8, !tbaa !9
  %1416 = icmp sle i64 %1414, %1415
  br i1 %1416, label %1417, label %1491

1417:                                             ; preds = %1413
  %1418 = load ptr, ptr %22, align 8, !tbaa !5
  %1419 = load i64, ptr %48, align 8, !tbaa !9
  %1420 = getelementptr inbounds float, ptr %1418, i64 %1419
  %1421 = load float, ptr %1420, align 4, !tbaa !11
  %1422 = load float, ptr %52, align 4, !tbaa !11
  %1423 = fmul float %1421, %1422
  store float %1423, ptr %40, align 4, !tbaa !11
  %1424 = load ptr, ptr %23, align 8, !tbaa !5
  %1425 = load i64, ptr %48, align 8, !tbaa !9
  %1426 = getelementptr inbounds float, ptr %1424, i64 %1425
  %1427 = call i32 @slartg_(ptr noundef %40, ptr noundef %1426, ptr noundef %52, ptr noundef %54, ptr noundef %51)
  %1428 = load i64, ptr %48, align 8, !tbaa !9
  %1429 = load i64, ptr %53, align 8, !tbaa !9
  %1430 = icmp sgt i64 %1428, %1429
  br i1 %1430, label %1431, label %1439

1431:                                             ; preds = %1417
  %1432 = load float, ptr %80, align 4, !tbaa !11
  %1433 = load float, ptr %51, align 4, !tbaa !11
  %1434 = fmul float %1432, %1433
  %1435 = load ptr, ptr %23, align 8, !tbaa !5
  %1436 = load i64, ptr %48, align 8, !tbaa !9
  %1437 = sub nsw i64 %1436, 1
  %1438 = getelementptr inbounds float, ptr %1435, i64 %1437
  store float %1434, ptr %1438, align 4, !tbaa !11
  br label %1439

1439:                                             ; preds = %1431, %1417
  %1440 = load float, ptr %76, align 4, !tbaa !11
  %1441 = load float, ptr %51, align 4, !tbaa !11
  %1442 = fmul float %1440, %1441
  store float %1442, ptr %40, align 4, !tbaa !11
  %1443 = load ptr, ptr %22, align 8, !tbaa !5
  %1444 = load i64, ptr %48, align 8, !tbaa !9
  %1445 = add nsw i64 %1444, 1
  %1446 = getelementptr inbounds float, ptr %1443, i64 %1445
  %1447 = load float, ptr %1446, align 4, !tbaa !11
  %1448 = load float, ptr %54, align 4, !tbaa !11
  %1449 = fmul float %1447, %1448
  store float %1449, ptr %41, align 4, !tbaa !11
  %1450 = load ptr, ptr %22, align 8, !tbaa !5
  %1451 = load i64, ptr %48, align 8, !tbaa !9
  %1452 = getelementptr inbounds float, ptr %1450, i64 %1451
  %1453 = call i32 @slartg_(ptr noundef %40, ptr noundef %41, ptr noundef %76, ptr noundef %80, ptr noundef %1452)
  %1454 = load float, ptr %52, align 4, !tbaa !11
  %1455 = load ptr, ptr %30, align 8, !tbaa !5
  %1456 = load i64, ptr %48, align 8, !tbaa !9
  %1457 = load i64, ptr %53, align 8, !tbaa !9
  %1458 = sub nsw i64 %1456, %1457
  %1459 = add nsw i64 %1458, 1
  %1460 = getelementptr inbounds float, ptr %1455, i64 %1459
  store float %1454, ptr %1460, align 4, !tbaa !11
  %1461 = load float, ptr %54, align 4, !tbaa !11
  %1462 = load ptr, ptr %30, align 8, !tbaa !5
  %1463 = load i64, ptr %48, align 8, !tbaa !9
  %1464 = load i64, ptr %53, align 8, !tbaa !9
  %1465 = sub nsw i64 %1463, %1464
  %1466 = add nsw i64 %1465, 1
  %1467 = load i64, ptr %56, align 8, !tbaa !9
  %1468 = add nsw i64 %1466, %1467
  %1469 = getelementptr inbounds float, ptr %1462, i64 %1468
  store float %1461, ptr %1469, align 4, !tbaa !11
  %1470 = load float, ptr %76, align 4, !tbaa !11
  %1471 = load ptr, ptr %30, align 8, !tbaa !5
  %1472 = load i64, ptr %48, align 8, !tbaa !9
  %1473 = load i64, ptr %53, align 8, !tbaa !9
  %1474 = sub nsw i64 %1472, %1473
  %1475 = add nsw i64 %1474, 1
  %1476 = load i64, ptr %57, align 8, !tbaa !9
  %1477 = add nsw i64 %1475, %1476
  %1478 = getelementptr inbounds float, ptr %1471, i64 %1477
  store float %1470, ptr %1478, align 4, !tbaa !11
  %1479 = load float, ptr %80, align 4, !tbaa !11
  %1480 = load ptr, ptr %30, align 8, !tbaa !5
  %1481 = load i64, ptr %48, align 8, !tbaa !9
  %1482 = load i64, ptr %53, align 8, !tbaa !9
  %1483 = sub nsw i64 %1481, %1482
  %1484 = add nsw i64 %1483, 1
  %1485 = load i64, ptr %58, align 8, !tbaa !9
  %1486 = add nsw i64 %1484, %1485
  %1487 = getelementptr inbounds float, ptr %1480, i64 %1486
  store float %1479, ptr %1487, align 4, !tbaa !11
  br label %1488

1488:                                             ; preds = %1439
  %1489 = load i64, ptr %48, align 8, !tbaa !9
  %1490 = add nsw i64 %1489, 1
  store i64 %1490, ptr %48, align 8, !tbaa !9
  br label %1413, !llvm.loop !23

1491:                                             ; preds = %1413
  %1492 = load ptr, ptr %22, align 8, !tbaa !5
  %1493 = load i64, ptr %50, align 8, !tbaa !9
  %1494 = getelementptr inbounds float, ptr %1492, i64 %1493
  %1495 = load float, ptr %1494, align 4, !tbaa !11
  %1496 = load float, ptr %52, align 4, !tbaa !11
  %1497 = fmul float %1495, %1496
  store float %1497, ptr %47, align 4, !tbaa !11
  %1498 = load float, ptr %47, align 4, !tbaa !11
  %1499 = load float, ptr %76, align 4, !tbaa !11
  %1500 = fmul float %1498, %1499
  %1501 = load ptr, ptr %22, align 8, !tbaa !5
  %1502 = load i64, ptr %50, align 8, !tbaa !9
  %1503 = getelementptr inbounds float, ptr %1501, i64 %1502
  store float %1500, ptr %1503, align 4, !tbaa !11
  %1504 = load float, ptr %47, align 4, !tbaa !11
  %1505 = load float, ptr %80, align 4, !tbaa !11
  %1506 = fmul float %1504, %1505
  %1507 = load ptr, ptr %23, align 8, !tbaa !5
  %1508 = load i64, ptr %50, align 8, !tbaa !9
  %1509 = sub nsw i64 %1508, 1
  %1510 = getelementptr inbounds float, ptr %1507, i64 %1509
  store float %1506, ptr %1510, align 4, !tbaa !11
  %1511 = load ptr, ptr %19, align 8, !tbaa !5
  %1512 = load i64, ptr %1511, align 8, !tbaa !9
  %1513 = icmp sgt i64 %1512, 0
  br i1 %1513, label %1514, label %1533

1514:                                             ; preds = %1491
  %1515 = load i64, ptr %50, align 8, !tbaa !9
  %1516 = load i64, ptr %53, align 8, !tbaa !9
  %1517 = sub nsw i64 %1515, %1516
  %1518 = add nsw i64 %1517, 1
  store i64 %1518, ptr %38, align 8, !tbaa !9
  %1519 = load ptr, ptr %19, align 8, !tbaa !5
  %1520 = load ptr, ptr %30, align 8, !tbaa !5
  %1521 = getelementptr inbounds float, ptr %1520, i64 1
  %1522 = load ptr, ptr %30, align 8, !tbaa !5
  %1523 = load ptr, ptr %18, align 8, !tbaa !5
  %1524 = load i64, ptr %1523, align 8, !tbaa !9
  %1525 = getelementptr inbounds float, ptr %1522, i64 %1524
  %1526 = load ptr, ptr %24, align 8, !tbaa !5
  %1527 = load i64, ptr %53, align 8, !tbaa !9
  %1528 = load i64, ptr %36, align 8, !tbaa !9
  %1529 = add nsw i64 %1527, %1528
  %1530 = getelementptr inbounds %struct.complex, ptr %1526, i64 %1529
  %1531 = load ptr, ptr %25, align 8, !tbaa !5
  %1532 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %38, ptr noundef %1519, ptr noundef %1521, ptr noundef %1525, ptr noundef %1530, ptr noundef %1531)
  br label %1533

1533:                                             ; preds = %1514, %1491
  %1534 = load ptr, ptr %20, align 8, !tbaa !5
  %1535 = load i64, ptr %1534, align 8, !tbaa !9
  %1536 = icmp sgt i64 %1535, 0
  br i1 %1536, label %1537, label %1559

1537:                                             ; preds = %1533
  %1538 = load i64, ptr %50, align 8, !tbaa !9
  %1539 = load i64, ptr %53, align 8, !tbaa !9
  %1540 = sub nsw i64 %1538, %1539
  %1541 = add nsw i64 %1540, 1
  store i64 %1541, ptr %38, align 8, !tbaa !9
  %1542 = load ptr, ptr %20, align 8, !tbaa !5
  %1543 = load ptr, ptr %30, align 8, !tbaa !5
  %1544 = load i64, ptr %57, align 8, !tbaa !9
  %1545 = add nsw i64 %1544, 1
  %1546 = getelementptr inbounds float, ptr %1543, i64 %1545
  %1547 = load ptr, ptr %30, align 8, !tbaa !5
  %1548 = load i64, ptr %58, align 8, !tbaa !9
  %1549 = add nsw i64 %1548, 1
  %1550 = getelementptr inbounds float, ptr %1547, i64 %1549
  %1551 = load ptr, ptr %26, align 8, !tbaa !5
  %1552 = load i64, ptr %53, align 8, !tbaa !9
  %1553 = load i64, ptr %34, align 8, !tbaa !9
  %1554 = mul nsw i64 %1552, %1553
  %1555 = add nsw i64 %1554, 1
  %1556 = getelementptr inbounds %struct.complex, ptr %1551, i64 %1555
  %1557 = load ptr, ptr %27, align 8, !tbaa !5
  %1558 = call i32 @clasr_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %1542, ptr noundef %38, ptr noundef %1546, ptr noundef %1550, ptr noundef %1556, ptr noundef %1557)
  br label %1559

1559:                                             ; preds = %1537, %1533
  %1560 = load ptr, ptr %21, align 8, !tbaa !5
  %1561 = load i64, ptr %1560, align 8, !tbaa !9
  %1562 = icmp sgt i64 %1561, 0
  br i1 %1562, label %1563, label %1584

1563:                                             ; preds = %1559
  %1564 = load i64, ptr %50, align 8, !tbaa !9
  %1565 = load i64, ptr %53, align 8, !tbaa !9
  %1566 = sub nsw i64 %1564, %1565
  %1567 = add nsw i64 %1566, 1
  store i64 %1567, ptr %38, align 8, !tbaa !9
  %1568 = load ptr, ptr %21, align 8, !tbaa !5
  %1569 = load ptr, ptr %30, align 8, !tbaa !5
  %1570 = load i64, ptr %57, align 8, !tbaa !9
  %1571 = add nsw i64 %1570, 1
  %1572 = getelementptr inbounds float, ptr %1569, i64 %1571
  %1573 = load ptr, ptr %30, align 8, !tbaa !5
  %1574 = load i64, ptr %58, align 8, !tbaa !9
  %1575 = add nsw i64 %1574, 1
  %1576 = getelementptr inbounds float, ptr %1573, i64 %1575
  %1577 = load ptr, ptr %28, align 8, !tbaa !5
  %1578 = load i64, ptr %53, align 8, !tbaa !9
  %1579 = load i64, ptr %32, align 8, !tbaa !9
  %1580 = add nsw i64 %1578, %1579
  %1581 = getelementptr inbounds %struct.complex, ptr %1577, i64 %1580
  %1582 = load ptr, ptr %29, align 8, !tbaa !5
  %1583 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %38, ptr noundef %1568, ptr noundef %1572, ptr noundef %1576, ptr noundef %1581, ptr noundef %1582)
  br label %1584

1584:                                             ; preds = %1563, %1559
  %1585 = load ptr, ptr %23, align 8, !tbaa !5
  %1586 = load i64, ptr %50, align 8, !tbaa !9
  %1587 = sub nsw i64 %1586, 1
  %1588 = getelementptr inbounds float, ptr %1585, i64 %1587
  %1589 = load float, ptr %1588, align 4, !tbaa !11
  store float %1589, ptr %40, align 4, !tbaa !11
  %1590 = load float, ptr %40, align 4, !tbaa !11
  %1591 = fcmp oge float %1590, 0.000000e+00
  br i1 %1591, label %1592, label %1594

1592:                                             ; preds = %1584
  %1593 = load float, ptr %40, align 4, !tbaa !11
  br label %1597

1594:                                             ; preds = %1584
  %1595 = load float, ptr %40, align 4, !tbaa !11
  %1596 = fneg float %1595
  br label %1597

1597:                                             ; preds = %1594, %1592
  %1598 = phi float [ %1593, %1592 ], [ %1596, %1594 ]
  %1599 = fpext float %1598 to double
  %1600 = load float, ptr %86, align 4, !tbaa !11
  %1601 = fpext float %1600 to double
  %1602 = fcmp ole double %1599, %1601
  br i1 %1602, label %1603, label %1608

1603:                                             ; preds = %1597
  %1604 = load ptr, ptr %23, align 8, !tbaa !5
  %1605 = load i64, ptr %50, align 8, !tbaa !9
  %1606 = sub nsw i64 %1605, 1
  %1607 = getelementptr inbounds float, ptr %1604, i64 %1606
  store float 0.000000e+00, ptr %1607, align 4, !tbaa !11
  br label %1608

1608:                                             ; preds = %1603, %1597
  br label %1802

1609:                                             ; preds = %1406
  store float 1.000000e+00, ptr %52, align 4, !tbaa !11
  store float 1.000000e+00, ptr %76, align 4, !tbaa !11
  %1610 = load i64, ptr %53, align 8, !tbaa !9
  %1611 = add nsw i64 %1610, 1
  store i64 %1611, ptr %38, align 8, !tbaa !9
  %1612 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %1612, ptr %48, align 8, !tbaa !9
  br label %1613

1613:                                             ; preds = %1686, %1609
  %1614 = load i64, ptr %48, align 8, !tbaa !9
  %1615 = load i64, ptr %38, align 8, !tbaa !9
  %1616 = icmp sge i64 %1614, %1615
  br i1 %1616, label %1617, label %1689

1617:                                             ; preds = %1613
  %1618 = load ptr, ptr %22, align 8, !tbaa !5
  %1619 = load i64, ptr %48, align 8, !tbaa !9
  %1620 = getelementptr inbounds float, ptr %1618, i64 %1619
  %1621 = load float, ptr %1620, align 4, !tbaa !11
  %1622 = load float, ptr %52, align 4, !tbaa !11
  %1623 = fmul float %1621, %1622
  store float %1623, ptr %40, align 4, !tbaa !11
  %1624 = load ptr, ptr %23, align 8, !tbaa !5
  %1625 = load i64, ptr %48, align 8, !tbaa !9
  %1626 = sub nsw i64 %1625, 1
  %1627 = getelementptr inbounds float, ptr %1624, i64 %1626
  %1628 = call i32 @slartg_(ptr noundef %40, ptr noundef %1627, ptr noundef %52, ptr noundef %54, ptr noundef %51)
  %1629 = load i64, ptr %48, align 8, !tbaa !9
  %1630 = load i64, ptr %50, align 8, !tbaa !9
  %1631 = icmp slt i64 %1629, %1630
  br i1 %1631, label %1632, label %1639

1632:                                             ; preds = %1617
  %1633 = load float, ptr %80, align 4, !tbaa !11
  %1634 = load float, ptr %51, align 4, !tbaa !11
  %1635 = fmul float %1633, %1634
  %1636 = load ptr, ptr %23, align 8, !tbaa !5
  %1637 = load i64, ptr %48, align 8, !tbaa !9
  %1638 = getelementptr inbounds float, ptr %1636, i64 %1637
  store float %1635, ptr %1638, align 4, !tbaa !11
  br label %1639

1639:                                             ; preds = %1632, %1617
  %1640 = load float, ptr %76, align 4, !tbaa !11
  %1641 = load float, ptr %51, align 4, !tbaa !11
  %1642 = fmul float %1640, %1641
  store float %1642, ptr %40, align 4, !tbaa !11
  %1643 = load ptr, ptr %22, align 8, !tbaa !5
  %1644 = load i64, ptr %48, align 8, !tbaa !9
  %1645 = sub nsw i64 %1644, 1
  %1646 = getelementptr inbounds float, ptr %1643, i64 %1645
  %1647 = load float, ptr %1646, align 4, !tbaa !11
  %1648 = load float, ptr %54, align 4, !tbaa !11
  %1649 = fmul float %1647, %1648
  store float %1649, ptr %41, align 4, !tbaa !11
  %1650 = load ptr, ptr %22, align 8, !tbaa !5
  %1651 = load i64, ptr %48, align 8, !tbaa !9
  %1652 = getelementptr inbounds float, ptr %1650, i64 %1651
  %1653 = call i32 @slartg_(ptr noundef %40, ptr noundef %41, ptr noundef %76, ptr noundef %80, ptr noundef %1652)
  %1654 = load float, ptr %52, align 4, !tbaa !11
  %1655 = load ptr, ptr %30, align 8, !tbaa !5
  %1656 = load i64, ptr %48, align 8, !tbaa !9
  %1657 = load i64, ptr %53, align 8, !tbaa !9
  %1658 = sub nsw i64 %1656, %1657
  %1659 = getelementptr inbounds float, ptr %1655, i64 %1658
  store float %1654, ptr %1659, align 4, !tbaa !11
  %1660 = load float, ptr %54, align 4, !tbaa !11
  %1661 = fneg float %1660
  %1662 = load ptr, ptr %30, align 8, !tbaa !5
  %1663 = load i64, ptr %48, align 8, !tbaa !9
  %1664 = load i64, ptr %53, align 8, !tbaa !9
  %1665 = sub nsw i64 %1663, %1664
  %1666 = load i64, ptr %56, align 8, !tbaa !9
  %1667 = add nsw i64 %1665, %1666
  %1668 = getelementptr inbounds float, ptr %1662, i64 %1667
  store float %1661, ptr %1668, align 4, !tbaa !11
  %1669 = load float, ptr %76, align 4, !tbaa !11
  %1670 = load ptr, ptr %30, align 8, !tbaa !5
  %1671 = load i64, ptr %48, align 8, !tbaa !9
  %1672 = load i64, ptr %53, align 8, !tbaa !9
  %1673 = sub nsw i64 %1671, %1672
  %1674 = load i64, ptr %57, align 8, !tbaa !9
  %1675 = add nsw i64 %1673, %1674
  %1676 = getelementptr inbounds float, ptr %1670, i64 %1675
  store float %1669, ptr %1676, align 4, !tbaa !11
  %1677 = load float, ptr %80, align 4, !tbaa !11
  %1678 = fneg float %1677
  %1679 = load ptr, ptr %30, align 8, !tbaa !5
  %1680 = load i64, ptr %48, align 8, !tbaa !9
  %1681 = load i64, ptr %53, align 8, !tbaa !9
  %1682 = sub nsw i64 %1680, %1681
  %1683 = load i64, ptr %58, align 8, !tbaa !9
  %1684 = add nsw i64 %1682, %1683
  %1685 = getelementptr inbounds float, ptr %1679, i64 %1684
  store float %1678, ptr %1685, align 4, !tbaa !11
  br label %1686

1686:                                             ; preds = %1639
  %1687 = load i64, ptr %48, align 8, !tbaa !9
  %1688 = add nsw i64 %1687, -1
  store i64 %1688, ptr %48, align 8, !tbaa !9
  br label %1613, !llvm.loop !24

1689:                                             ; preds = %1613
  %1690 = load ptr, ptr %22, align 8, !tbaa !5
  %1691 = load i64, ptr %53, align 8, !tbaa !9
  %1692 = getelementptr inbounds float, ptr %1690, i64 %1691
  %1693 = load float, ptr %1692, align 4, !tbaa !11
  %1694 = load float, ptr %52, align 4, !tbaa !11
  %1695 = fmul float %1693, %1694
  store float %1695, ptr %47, align 4, !tbaa !11
  %1696 = load float, ptr %47, align 4, !tbaa !11
  %1697 = load float, ptr %76, align 4, !tbaa !11
  %1698 = fmul float %1696, %1697
  %1699 = load ptr, ptr %22, align 8, !tbaa !5
  %1700 = load i64, ptr %53, align 8, !tbaa !9
  %1701 = getelementptr inbounds float, ptr %1699, i64 %1700
  store float %1698, ptr %1701, align 4, !tbaa !11
  %1702 = load float, ptr %47, align 4, !tbaa !11
  %1703 = load float, ptr %80, align 4, !tbaa !11
  %1704 = fmul float %1702, %1703
  %1705 = load ptr, ptr %23, align 8, !tbaa !5
  %1706 = load i64, ptr %53, align 8, !tbaa !9
  %1707 = getelementptr inbounds float, ptr %1705, i64 %1706
  store float %1704, ptr %1707, align 4, !tbaa !11
  %1708 = load ptr, ptr %19, align 8, !tbaa !5
  %1709 = load i64, ptr %1708, align 8, !tbaa !9
  %1710 = icmp sgt i64 %1709, 0
  br i1 %1710, label %1711, label %1732

1711:                                             ; preds = %1689
  %1712 = load i64, ptr %50, align 8, !tbaa !9
  %1713 = load i64, ptr %53, align 8, !tbaa !9
  %1714 = sub nsw i64 %1712, %1713
  %1715 = add nsw i64 %1714, 1
  store i64 %1715, ptr %38, align 8, !tbaa !9
  %1716 = load ptr, ptr %19, align 8, !tbaa !5
  %1717 = load ptr, ptr %30, align 8, !tbaa !5
  %1718 = load i64, ptr %57, align 8, !tbaa !9
  %1719 = add nsw i64 %1718, 1
  %1720 = getelementptr inbounds float, ptr %1717, i64 %1719
  %1721 = load ptr, ptr %30, align 8, !tbaa !5
  %1722 = load i64, ptr %58, align 8, !tbaa !9
  %1723 = add nsw i64 %1722, 1
  %1724 = getelementptr inbounds float, ptr %1721, i64 %1723
  %1725 = load ptr, ptr %24, align 8, !tbaa !5
  %1726 = load i64, ptr %53, align 8, !tbaa !9
  %1727 = load i64, ptr %36, align 8, !tbaa !9
  %1728 = add nsw i64 %1726, %1727
  %1729 = getelementptr inbounds %struct.complex, ptr %1725, i64 %1728
  %1730 = load ptr, ptr %25, align 8, !tbaa !5
  %1731 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %38, ptr noundef %1716, ptr noundef %1720, ptr noundef %1724, ptr noundef %1729, ptr noundef %1730)
  br label %1732

1732:                                             ; preds = %1711, %1689
  %1733 = load ptr, ptr %20, align 8, !tbaa !5
  %1734 = load i64, ptr %1733, align 8, !tbaa !9
  %1735 = icmp sgt i64 %1734, 0
  br i1 %1735, label %1736, label %1756

1736:                                             ; preds = %1732
  %1737 = load i64, ptr %50, align 8, !tbaa !9
  %1738 = load i64, ptr %53, align 8, !tbaa !9
  %1739 = sub nsw i64 %1737, %1738
  %1740 = add nsw i64 %1739, 1
  store i64 %1740, ptr %38, align 8, !tbaa !9
  %1741 = load ptr, ptr %20, align 8, !tbaa !5
  %1742 = load ptr, ptr %30, align 8, !tbaa !5
  %1743 = getelementptr inbounds float, ptr %1742, i64 1
  %1744 = load ptr, ptr %30, align 8, !tbaa !5
  %1745 = load ptr, ptr %18, align 8, !tbaa !5
  %1746 = load i64, ptr %1745, align 8, !tbaa !9
  %1747 = getelementptr inbounds float, ptr %1744, i64 %1746
  %1748 = load ptr, ptr %26, align 8, !tbaa !5
  %1749 = load i64, ptr %53, align 8, !tbaa !9
  %1750 = load i64, ptr %34, align 8, !tbaa !9
  %1751 = mul nsw i64 %1749, %1750
  %1752 = add nsw i64 %1751, 1
  %1753 = getelementptr inbounds %struct.complex, ptr %1748, i64 %1752
  %1754 = load ptr, ptr %27, align 8, !tbaa !5
  %1755 = call i32 @clasr_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %1741, ptr noundef %38, ptr noundef %1743, ptr noundef %1747, ptr noundef %1753, ptr noundef %1754)
  br label %1756

1756:                                             ; preds = %1736, %1732
  %1757 = load ptr, ptr %21, align 8, !tbaa !5
  %1758 = load i64, ptr %1757, align 8, !tbaa !9
  %1759 = icmp sgt i64 %1758, 0
  br i1 %1759, label %1760, label %1779

1760:                                             ; preds = %1756
  %1761 = load i64, ptr %50, align 8, !tbaa !9
  %1762 = load i64, ptr %53, align 8, !tbaa !9
  %1763 = sub nsw i64 %1761, %1762
  %1764 = add nsw i64 %1763, 1
  store i64 %1764, ptr %38, align 8, !tbaa !9
  %1765 = load ptr, ptr %21, align 8, !tbaa !5
  %1766 = load ptr, ptr %30, align 8, !tbaa !5
  %1767 = getelementptr inbounds float, ptr %1766, i64 1
  %1768 = load ptr, ptr %30, align 8, !tbaa !5
  %1769 = load ptr, ptr %18, align 8, !tbaa !5
  %1770 = load i64, ptr %1769, align 8, !tbaa !9
  %1771 = getelementptr inbounds float, ptr %1768, i64 %1770
  %1772 = load ptr, ptr %28, align 8, !tbaa !5
  %1773 = load i64, ptr %53, align 8, !tbaa !9
  %1774 = load i64, ptr %32, align 8, !tbaa !9
  %1775 = add nsw i64 %1773, %1774
  %1776 = getelementptr inbounds %struct.complex, ptr %1772, i64 %1775
  %1777 = load ptr, ptr %29, align 8, !tbaa !5
  %1778 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %38, ptr noundef %1765, ptr noundef %1767, ptr noundef %1771, ptr noundef %1776, ptr noundef %1777)
  br label %1779

1779:                                             ; preds = %1760, %1756
  %1780 = load ptr, ptr %23, align 8, !tbaa !5
  %1781 = load i64, ptr %53, align 8, !tbaa !9
  %1782 = getelementptr inbounds float, ptr %1780, i64 %1781
  %1783 = load float, ptr %1782, align 4, !tbaa !11
  store float %1783, ptr %40, align 4, !tbaa !11
  %1784 = load float, ptr %40, align 4, !tbaa !11
  %1785 = fcmp oge float %1784, 0.000000e+00
  br i1 %1785, label %1786, label %1788

1786:                                             ; preds = %1779
  %1787 = load float, ptr %40, align 4, !tbaa !11
  br label %1791

1788:                                             ; preds = %1779
  %1789 = load float, ptr %40, align 4, !tbaa !11
  %1790 = fneg float %1789
  br label %1791

1791:                                             ; preds = %1788, %1786
  %1792 = phi float [ %1787, %1786 ], [ %1790, %1788 ]
  %1793 = fpext float %1792 to double
  %1794 = load float, ptr %86, align 4, !tbaa !11
  %1795 = fpext float %1794 to double
  %1796 = fcmp ole double %1793, %1795
  br i1 %1796, label %1797, label %1801

1797:                                             ; preds = %1791
  %1798 = load ptr, ptr %23, align 8, !tbaa !5
  %1799 = load i64, ptr %53, align 8, !tbaa !9
  %1800 = getelementptr inbounds float, ptr %1798, i64 %1799
  store float 0.000000e+00, ptr %1800, align 4, !tbaa !11
  br label %1801

1801:                                             ; preds = %1797, %1791
  br label %1802

1802:                                             ; preds = %1801, %1608
  br label %2409

1803:                                             ; preds = %1398
  %1804 = load i64, ptr %64, align 8, !tbaa !9
  %1805 = icmp eq i64 %1804, 1
  br i1 %1805, label %1806, label %2108

1806:                                             ; preds = %1803
  %1807 = load ptr, ptr %22, align 8, !tbaa !5
  %1808 = load i64, ptr %53, align 8, !tbaa !9
  %1809 = getelementptr inbounds float, ptr %1807, i64 %1808
  %1810 = load float, ptr %1809, align 4, !tbaa !11
  store float %1810, ptr %40, align 4, !tbaa !11
  %1811 = load float, ptr %40, align 4, !tbaa !11
  %1812 = fcmp oge float %1811, 0.000000e+00
  br i1 %1812, label %1813, label %1815

1813:                                             ; preds = %1806
  %1814 = load float, ptr %40, align 4, !tbaa !11
  br label %1818

1815:                                             ; preds = %1806
  %1816 = load float, ptr %40, align 4, !tbaa !11
  %1817 = fneg float %1816
  br label %1818

1818:                                             ; preds = %1815, %1813
  %1819 = phi float [ %1814, %1813 ], [ %1817, %1815 ]
  %1820 = fpext float %1819 to double
  %1821 = load float, ptr %78, align 4, !tbaa !11
  %1822 = fpext float %1821 to double
  %1823 = fsub double %1820, %1822
  %1824 = load ptr, ptr %22, align 8, !tbaa !5
  %1825 = load i64, ptr %53, align 8, !tbaa !9
  %1826 = getelementptr inbounds float, ptr %1824, i64 %1825
  %1827 = call double @r_sign(ptr noundef @c_b49, ptr noundef %1826)
  %1828 = load float, ptr %78, align 4, !tbaa !11
  %1829 = load ptr, ptr %22, align 8, !tbaa !5
  %1830 = load i64, ptr %53, align 8, !tbaa !9
  %1831 = getelementptr inbounds float, ptr %1829, i64 %1830
  %1832 = load float, ptr %1831, align 4, !tbaa !11
  %1833 = fdiv float %1828, %1832
  %1834 = fpext float %1833 to double
  %1835 = fadd double %1827, %1834
  %1836 = fmul double %1823, %1835
  %1837 = fptrunc double %1836 to float
  store float %1837, ptr %45, align 4, !tbaa !11
  %1838 = load ptr, ptr %23, align 8, !tbaa !5
  %1839 = load i64, ptr %53, align 8, !tbaa !9
  %1840 = getelementptr inbounds float, ptr %1838, i64 %1839
  %1841 = load float, ptr %1840, align 4, !tbaa !11
  store float %1841, ptr %46, align 4, !tbaa !11
  %1842 = load i64, ptr %50, align 8, !tbaa !9
  %1843 = sub nsw i64 %1842, 1
  store i64 %1843, ptr %38, align 8, !tbaa !9
  %1844 = load i64, ptr %53, align 8, !tbaa !9
  store i64 %1844, ptr %48, align 8, !tbaa !9
  br label %1845

1845:                                             ; preds = %2001, %1818
  %1846 = load i64, ptr %48, align 8, !tbaa !9
  %1847 = load i64, ptr %38, align 8, !tbaa !9
  %1848 = icmp sle i64 %1846, %1847
  br i1 %1848, label %1849, label %2004

1849:                                             ; preds = %1845
  %1850 = call i32 @slartg_(ptr noundef %45, ptr noundef %46, ptr noundef %72, ptr noundef %75, ptr noundef %51)
  %1851 = load i64, ptr %48, align 8, !tbaa !9
  %1852 = load i64, ptr %53, align 8, !tbaa !9
  %1853 = icmp sgt i64 %1851, %1852
  br i1 %1853, label %1854, label %1860

1854:                                             ; preds = %1849
  %1855 = load float, ptr %51, align 4, !tbaa !11
  %1856 = load ptr, ptr %23, align 8, !tbaa !5
  %1857 = load i64, ptr %48, align 8, !tbaa !9
  %1858 = sub nsw i64 %1857, 1
  %1859 = getelementptr inbounds float, ptr %1856, i64 %1858
  store float %1855, ptr %1859, align 4, !tbaa !11
  br label %1860

1860:                                             ; preds = %1854, %1849
  %1861 = load float, ptr %72, align 4, !tbaa !11
  %1862 = load ptr, ptr %22, align 8, !tbaa !5
  %1863 = load i64, ptr %48, align 8, !tbaa !9
  %1864 = getelementptr inbounds float, ptr %1862, i64 %1863
  %1865 = load float, ptr %1864, align 4, !tbaa !11
  %1866 = load float, ptr %75, align 4, !tbaa !11
  %1867 = load ptr, ptr %23, align 8, !tbaa !5
  %1868 = load i64, ptr %48, align 8, !tbaa !9
  %1869 = getelementptr inbounds float, ptr %1867, i64 %1868
  %1870 = load float, ptr %1869, align 4, !tbaa !11
  %1871 = fmul float %1866, %1870
  %1872 = call float @llvm.fmuladd.f32(float %1861, float %1865, float %1871)
  store float %1872, ptr %45, align 4, !tbaa !11
  %1873 = load float, ptr %72, align 4, !tbaa !11
  %1874 = load ptr, ptr %23, align 8, !tbaa !5
  %1875 = load i64, ptr %48, align 8, !tbaa !9
  %1876 = getelementptr inbounds float, ptr %1874, i64 %1875
  %1877 = load float, ptr %1876, align 4, !tbaa !11
  %1878 = load float, ptr %75, align 4, !tbaa !11
  %1879 = load ptr, ptr %22, align 8, !tbaa !5
  %1880 = load i64, ptr %48, align 8, !tbaa !9
  %1881 = getelementptr inbounds float, ptr %1879, i64 %1880
  %1882 = load float, ptr %1881, align 4, !tbaa !11
  %1883 = fmul float %1878, %1882
  %1884 = fneg float %1883
  %1885 = call float @llvm.fmuladd.f32(float %1873, float %1877, float %1884)
  %1886 = load ptr, ptr %23, align 8, !tbaa !5
  %1887 = load i64, ptr %48, align 8, !tbaa !9
  %1888 = getelementptr inbounds float, ptr %1886, i64 %1887
  store float %1885, ptr %1888, align 4, !tbaa !11
  %1889 = load float, ptr %75, align 4, !tbaa !11
  %1890 = load ptr, ptr %22, align 8, !tbaa !5
  %1891 = load i64, ptr %48, align 8, !tbaa !9
  %1892 = add nsw i64 %1891, 1
  %1893 = getelementptr inbounds float, ptr %1890, i64 %1892
  %1894 = load float, ptr %1893, align 4, !tbaa !11
  %1895 = fmul float %1889, %1894
  store float %1895, ptr %46, align 4, !tbaa !11
  %1896 = load float, ptr %72, align 4, !tbaa !11
  %1897 = load ptr, ptr %22, align 8, !tbaa !5
  %1898 = load i64, ptr %48, align 8, !tbaa !9
  %1899 = add nsw i64 %1898, 1
  %1900 = getelementptr inbounds float, ptr %1897, i64 %1899
  %1901 = load float, ptr %1900, align 4, !tbaa !11
  %1902 = fmul float %1896, %1901
  %1903 = load ptr, ptr %22, align 8, !tbaa !5
  %1904 = load i64, ptr %48, align 8, !tbaa !9
  %1905 = add nsw i64 %1904, 1
  %1906 = getelementptr inbounds float, ptr %1903, i64 %1905
  store float %1902, ptr %1906, align 4, !tbaa !11
  %1907 = call i32 @slartg_(ptr noundef %45, ptr noundef %46, ptr noundef %67, ptr noundef %71, ptr noundef %51)
  %1908 = load float, ptr %51, align 4, !tbaa !11
  %1909 = load ptr, ptr %22, align 8, !tbaa !5
  %1910 = load i64, ptr %48, align 8, !tbaa !9
  %1911 = getelementptr inbounds float, ptr %1909, i64 %1910
  store float %1908, ptr %1911, align 4, !tbaa !11
  %1912 = load float, ptr %67, align 4, !tbaa !11
  %1913 = load ptr, ptr %23, align 8, !tbaa !5
  %1914 = load i64, ptr %48, align 8, !tbaa !9
  %1915 = getelementptr inbounds float, ptr %1913, i64 %1914
  %1916 = load float, ptr %1915, align 4, !tbaa !11
  %1917 = load float, ptr %71, align 4, !tbaa !11
  %1918 = load ptr, ptr %22, align 8, !tbaa !5
  %1919 = load i64, ptr %48, align 8, !tbaa !9
  %1920 = add nsw i64 %1919, 1
  %1921 = getelementptr inbounds float, ptr %1918, i64 %1920
  %1922 = load float, ptr %1921, align 4, !tbaa !11
  %1923 = fmul float %1917, %1922
  %1924 = call float @llvm.fmuladd.f32(float %1912, float %1916, float %1923)
  store float %1924, ptr %45, align 4, !tbaa !11
  %1925 = load float, ptr %67, align 4, !tbaa !11
  %1926 = load ptr, ptr %22, align 8, !tbaa !5
  %1927 = load i64, ptr %48, align 8, !tbaa !9
  %1928 = add nsw i64 %1927, 1
  %1929 = getelementptr inbounds float, ptr %1926, i64 %1928
  %1930 = load float, ptr %1929, align 4, !tbaa !11
  %1931 = load float, ptr %71, align 4, !tbaa !11
  %1932 = load ptr, ptr %23, align 8, !tbaa !5
  %1933 = load i64, ptr %48, align 8, !tbaa !9
  %1934 = getelementptr inbounds float, ptr %1932, i64 %1933
  %1935 = load float, ptr %1934, align 4, !tbaa !11
  %1936 = fmul float %1931, %1935
  %1937 = fneg float %1936
  %1938 = call float @llvm.fmuladd.f32(float %1925, float %1930, float %1937)
  %1939 = load ptr, ptr %22, align 8, !tbaa !5
  %1940 = load i64, ptr %48, align 8, !tbaa !9
  %1941 = add nsw i64 %1940, 1
  %1942 = getelementptr inbounds float, ptr %1939, i64 %1941
  store float %1938, ptr %1942, align 4, !tbaa !11
  %1943 = load i64, ptr %48, align 8, !tbaa !9
  %1944 = load i64, ptr %50, align 8, !tbaa !9
  %1945 = sub nsw i64 %1944, 1
  %1946 = icmp slt i64 %1943, %1945
  br i1 %1946, label %1947, label %1966

1947:                                             ; preds = %1860
  %1948 = load float, ptr %71, align 4, !tbaa !11
  %1949 = load ptr, ptr %23, align 8, !tbaa !5
  %1950 = load i64, ptr %48, align 8, !tbaa !9
  %1951 = add nsw i64 %1950, 1
  %1952 = getelementptr inbounds float, ptr %1949, i64 %1951
  %1953 = load float, ptr %1952, align 4, !tbaa !11
  %1954 = fmul float %1948, %1953
  store float %1954, ptr %46, align 4, !tbaa !11
  %1955 = load float, ptr %67, align 4, !tbaa !11
  %1956 = load ptr, ptr %23, align 8, !tbaa !5
  %1957 = load i64, ptr %48, align 8, !tbaa !9
  %1958 = add nsw i64 %1957, 1
  %1959 = getelementptr inbounds float, ptr %1956, i64 %1958
  %1960 = load float, ptr %1959, align 4, !tbaa !11
  %1961 = fmul float %1955, %1960
  %1962 = load ptr, ptr %23, align 8, !tbaa !5
  %1963 = load i64, ptr %48, align 8, !tbaa !9
  %1964 = add nsw i64 %1963, 1
  %1965 = getelementptr inbounds float, ptr %1962, i64 %1964
  store float %1961, ptr %1965, align 4, !tbaa !11
  br label %1966

1966:                                             ; preds = %1947, %1860
  %1967 = load float, ptr %72, align 4, !tbaa !11
  %1968 = load ptr, ptr %30, align 8, !tbaa !5
  %1969 = load i64, ptr %48, align 8, !tbaa !9
  %1970 = load i64, ptr %53, align 8, !tbaa !9
  %1971 = sub nsw i64 %1969, %1970
  %1972 = add nsw i64 %1971, 1
  %1973 = getelementptr inbounds float, ptr %1968, i64 %1972
  store float %1967, ptr %1973, align 4, !tbaa !11
  %1974 = load float, ptr %75, align 4, !tbaa !11
  %1975 = load ptr, ptr %30, align 8, !tbaa !5
  %1976 = load i64, ptr %48, align 8, !tbaa !9
  %1977 = load i64, ptr %53, align 8, !tbaa !9
  %1978 = sub nsw i64 %1976, %1977
  %1979 = add nsw i64 %1978, 1
  %1980 = load i64, ptr %56, align 8, !tbaa !9
  %1981 = add nsw i64 %1979, %1980
  %1982 = getelementptr inbounds float, ptr %1975, i64 %1981
  store float %1974, ptr %1982, align 4, !tbaa !11
  %1983 = load float, ptr %67, align 4, !tbaa !11
  %1984 = load ptr, ptr %30, align 8, !tbaa !5
  %1985 = load i64, ptr %48, align 8, !tbaa !9
  %1986 = load i64, ptr %53, align 8, !tbaa !9
  %1987 = sub nsw i64 %1985, %1986
  %1988 = add nsw i64 %1987, 1
  %1989 = load i64, ptr %57, align 8, !tbaa !9
  %1990 = add nsw i64 %1988, %1989
  %1991 = getelementptr inbounds float, ptr %1984, i64 %1990
  store float %1983, ptr %1991, align 4, !tbaa !11
  %1992 = load float, ptr %71, align 4, !tbaa !11
  %1993 = load ptr, ptr %30, align 8, !tbaa !5
  %1994 = load i64, ptr %48, align 8, !tbaa !9
  %1995 = load i64, ptr %53, align 8, !tbaa !9
  %1996 = sub nsw i64 %1994, %1995
  %1997 = add nsw i64 %1996, 1
  %1998 = load i64, ptr %58, align 8, !tbaa !9
  %1999 = add nsw i64 %1997, %1998
  %2000 = getelementptr inbounds float, ptr %1993, i64 %1999
  store float %1992, ptr %2000, align 4, !tbaa !11
  br label %2001

2001:                                             ; preds = %1966
  %2002 = load i64, ptr %48, align 8, !tbaa !9
  %2003 = add nsw i64 %2002, 1
  store i64 %2003, ptr %48, align 8, !tbaa !9
  br label %1845, !llvm.loop !25

2004:                                             ; preds = %1845
  %2005 = load float, ptr %45, align 4, !tbaa !11
  %2006 = load ptr, ptr %23, align 8, !tbaa !5
  %2007 = load i64, ptr %50, align 8, !tbaa !9
  %2008 = sub nsw i64 %2007, 1
  %2009 = getelementptr inbounds float, ptr %2006, i64 %2008
  store float %2005, ptr %2009, align 4, !tbaa !11
  %2010 = load ptr, ptr %19, align 8, !tbaa !5
  %2011 = load i64, ptr %2010, align 8, !tbaa !9
  %2012 = icmp sgt i64 %2011, 0
  br i1 %2012, label %2013, label %2032

2013:                                             ; preds = %2004
  %2014 = load i64, ptr %50, align 8, !tbaa !9
  %2015 = load i64, ptr %53, align 8, !tbaa !9
  %2016 = sub nsw i64 %2014, %2015
  %2017 = add nsw i64 %2016, 1
  store i64 %2017, ptr %38, align 8, !tbaa !9
  %2018 = load ptr, ptr %19, align 8, !tbaa !5
  %2019 = load ptr, ptr %30, align 8, !tbaa !5
  %2020 = getelementptr inbounds float, ptr %2019, i64 1
  %2021 = load ptr, ptr %30, align 8, !tbaa !5
  %2022 = load ptr, ptr %18, align 8, !tbaa !5
  %2023 = load i64, ptr %2022, align 8, !tbaa !9
  %2024 = getelementptr inbounds float, ptr %2021, i64 %2023
  %2025 = load ptr, ptr %24, align 8, !tbaa !5
  %2026 = load i64, ptr %53, align 8, !tbaa !9
  %2027 = load i64, ptr %36, align 8, !tbaa !9
  %2028 = add nsw i64 %2026, %2027
  %2029 = getelementptr inbounds %struct.complex, ptr %2025, i64 %2028
  %2030 = load ptr, ptr %25, align 8, !tbaa !5
  %2031 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %38, ptr noundef %2018, ptr noundef %2020, ptr noundef %2024, ptr noundef %2029, ptr noundef %2030)
  br label %2032

2032:                                             ; preds = %2013, %2004
  %2033 = load ptr, ptr %20, align 8, !tbaa !5
  %2034 = load i64, ptr %2033, align 8, !tbaa !9
  %2035 = icmp sgt i64 %2034, 0
  br i1 %2035, label %2036, label %2058

2036:                                             ; preds = %2032
  %2037 = load i64, ptr %50, align 8, !tbaa !9
  %2038 = load i64, ptr %53, align 8, !tbaa !9
  %2039 = sub nsw i64 %2037, %2038
  %2040 = add nsw i64 %2039, 1
  store i64 %2040, ptr %38, align 8, !tbaa !9
  %2041 = load ptr, ptr %20, align 8, !tbaa !5
  %2042 = load ptr, ptr %30, align 8, !tbaa !5
  %2043 = load i64, ptr %57, align 8, !tbaa !9
  %2044 = add nsw i64 %2043, 1
  %2045 = getelementptr inbounds float, ptr %2042, i64 %2044
  %2046 = load ptr, ptr %30, align 8, !tbaa !5
  %2047 = load i64, ptr %58, align 8, !tbaa !9
  %2048 = add nsw i64 %2047, 1
  %2049 = getelementptr inbounds float, ptr %2046, i64 %2048
  %2050 = load ptr, ptr %26, align 8, !tbaa !5
  %2051 = load i64, ptr %53, align 8, !tbaa !9
  %2052 = load i64, ptr %34, align 8, !tbaa !9
  %2053 = mul nsw i64 %2051, %2052
  %2054 = add nsw i64 %2053, 1
  %2055 = getelementptr inbounds %struct.complex, ptr %2050, i64 %2054
  %2056 = load ptr, ptr %27, align 8, !tbaa !5
  %2057 = call i32 @clasr_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %2041, ptr noundef %38, ptr noundef %2045, ptr noundef %2049, ptr noundef %2055, ptr noundef %2056)
  br label %2058

2058:                                             ; preds = %2036, %2032
  %2059 = load ptr, ptr %21, align 8, !tbaa !5
  %2060 = load i64, ptr %2059, align 8, !tbaa !9
  %2061 = icmp sgt i64 %2060, 0
  br i1 %2061, label %2062, label %2083

2062:                                             ; preds = %2058
  %2063 = load i64, ptr %50, align 8, !tbaa !9
  %2064 = load i64, ptr %53, align 8, !tbaa !9
  %2065 = sub nsw i64 %2063, %2064
  %2066 = add nsw i64 %2065, 1
  store i64 %2066, ptr %38, align 8, !tbaa !9
  %2067 = load ptr, ptr %21, align 8, !tbaa !5
  %2068 = load ptr, ptr %30, align 8, !tbaa !5
  %2069 = load i64, ptr %57, align 8, !tbaa !9
  %2070 = add nsw i64 %2069, 1
  %2071 = getelementptr inbounds float, ptr %2068, i64 %2070
  %2072 = load ptr, ptr %30, align 8, !tbaa !5
  %2073 = load i64, ptr %58, align 8, !tbaa !9
  %2074 = add nsw i64 %2073, 1
  %2075 = getelementptr inbounds float, ptr %2072, i64 %2074
  %2076 = load ptr, ptr %28, align 8, !tbaa !5
  %2077 = load i64, ptr %53, align 8, !tbaa !9
  %2078 = load i64, ptr %32, align 8, !tbaa !9
  %2079 = add nsw i64 %2077, %2078
  %2080 = getelementptr inbounds %struct.complex, ptr %2076, i64 %2079
  %2081 = load ptr, ptr %29, align 8, !tbaa !5
  %2082 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %38, ptr noundef %2067, ptr noundef %2071, ptr noundef %2075, ptr noundef %2080, ptr noundef %2081)
  br label %2083

2083:                                             ; preds = %2062, %2058
  %2084 = load ptr, ptr %23, align 8, !tbaa !5
  %2085 = load i64, ptr %50, align 8, !tbaa !9
  %2086 = sub nsw i64 %2085, 1
  %2087 = getelementptr inbounds float, ptr %2084, i64 %2086
  %2088 = load float, ptr %2087, align 4, !tbaa !11
  store float %2088, ptr %40, align 4, !tbaa !11
  %2089 = load float, ptr %40, align 4, !tbaa !11
  %2090 = fcmp oge float %2089, 0.000000e+00
  br i1 %2090, label %2091, label %2093

2091:                                             ; preds = %2083
  %2092 = load float, ptr %40, align 4, !tbaa !11
  br label %2096

2093:                                             ; preds = %2083
  %2094 = load float, ptr %40, align 4, !tbaa !11
  %2095 = fneg float %2094
  br label %2096

2096:                                             ; preds = %2093, %2091
  %2097 = phi float [ %2092, %2091 ], [ %2095, %2093 ]
  %2098 = fpext float %2097 to double
  %2099 = load float, ptr %86, align 4, !tbaa !11
  %2100 = fpext float %2099 to double
  %2101 = fcmp ole double %2098, %2100
  br i1 %2101, label %2102, label %2107

2102:                                             ; preds = %2096
  %2103 = load ptr, ptr %23, align 8, !tbaa !5
  %2104 = load i64, ptr %50, align 8, !tbaa !9
  %2105 = sub nsw i64 %2104, 1
  %2106 = getelementptr inbounds float, ptr %2103, i64 %2105
  store float 0.000000e+00, ptr %2106, align 4, !tbaa !11
  br label %2107

2107:                                             ; preds = %2102, %2096
  br label %2408

2108:                                             ; preds = %1803
  %2109 = load ptr, ptr %22, align 8, !tbaa !5
  %2110 = load i64, ptr %50, align 8, !tbaa !9
  %2111 = getelementptr inbounds float, ptr %2109, i64 %2110
  %2112 = load float, ptr %2111, align 4, !tbaa !11
  store float %2112, ptr %40, align 4, !tbaa !11
  %2113 = load float, ptr %40, align 4, !tbaa !11
  %2114 = fcmp oge float %2113, 0.000000e+00
  br i1 %2114, label %2115, label %2117

2115:                                             ; preds = %2108
  %2116 = load float, ptr %40, align 4, !tbaa !11
  br label %2120

2117:                                             ; preds = %2108
  %2118 = load float, ptr %40, align 4, !tbaa !11
  %2119 = fneg float %2118
  br label %2120

2120:                                             ; preds = %2117, %2115
  %2121 = phi float [ %2116, %2115 ], [ %2119, %2117 ]
  %2122 = fpext float %2121 to double
  %2123 = load float, ptr %78, align 4, !tbaa !11
  %2124 = fpext float %2123 to double
  %2125 = fsub double %2122, %2124
  %2126 = load ptr, ptr %22, align 8, !tbaa !5
  %2127 = load i64, ptr %50, align 8, !tbaa !9
  %2128 = getelementptr inbounds float, ptr %2126, i64 %2127
  %2129 = call double @r_sign(ptr noundef @c_b49, ptr noundef %2128)
  %2130 = load float, ptr %78, align 4, !tbaa !11
  %2131 = load ptr, ptr %22, align 8, !tbaa !5
  %2132 = load i64, ptr %50, align 8, !tbaa !9
  %2133 = getelementptr inbounds float, ptr %2131, i64 %2132
  %2134 = load float, ptr %2133, align 4, !tbaa !11
  %2135 = fdiv float %2130, %2134
  %2136 = fpext float %2135 to double
  %2137 = fadd double %2129, %2136
  %2138 = fmul double %2125, %2137
  %2139 = fptrunc double %2138 to float
  store float %2139, ptr %45, align 4, !tbaa !11
  %2140 = load ptr, ptr %23, align 8, !tbaa !5
  %2141 = load i64, ptr %50, align 8, !tbaa !9
  %2142 = sub nsw i64 %2141, 1
  %2143 = getelementptr inbounds float, ptr %2140, i64 %2142
  %2144 = load float, ptr %2143, align 4, !tbaa !11
  store float %2144, ptr %46, align 4, !tbaa !11
  %2145 = load i64, ptr %53, align 8, !tbaa !9
  %2146 = add nsw i64 %2145, 1
  store i64 %2146, ptr %38, align 8, !tbaa !9
  %2147 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %2147, ptr %48, align 8, !tbaa !9
  br label %2148

2148:                                             ; preds = %2306, %2120
  %2149 = load i64, ptr %48, align 8, !tbaa !9
  %2150 = load i64, ptr %38, align 8, !tbaa !9
  %2151 = icmp sge i64 %2149, %2150
  br i1 %2151, label %2152, label %2309

2152:                                             ; preds = %2148
  %2153 = call i32 @slartg_(ptr noundef %45, ptr noundef %46, ptr noundef %72, ptr noundef %75, ptr noundef %51)
  %2154 = load i64, ptr %48, align 8, !tbaa !9
  %2155 = load i64, ptr %50, align 8, !tbaa !9
  %2156 = icmp slt i64 %2154, %2155
  br i1 %2156, label %2157, label %2162

2157:                                             ; preds = %2152
  %2158 = load float, ptr %51, align 4, !tbaa !11
  %2159 = load ptr, ptr %23, align 8, !tbaa !5
  %2160 = load i64, ptr %48, align 8, !tbaa !9
  %2161 = getelementptr inbounds float, ptr %2159, i64 %2160
  store float %2158, ptr %2161, align 4, !tbaa !11
  br label %2162

2162:                                             ; preds = %2157, %2152
  %2163 = load float, ptr %72, align 4, !tbaa !11
  %2164 = load ptr, ptr %22, align 8, !tbaa !5
  %2165 = load i64, ptr %48, align 8, !tbaa !9
  %2166 = getelementptr inbounds float, ptr %2164, i64 %2165
  %2167 = load float, ptr %2166, align 4, !tbaa !11
  %2168 = load float, ptr %75, align 4, !tbaa !11
  %2169 = load ptr, ptr %23, align 8, !tbaa !5
  %2170 = load i64, ptr %48, align 8, !tbaa !9
  %2171 = sub nsw i64 %2170, 1
  %2172 = getelementptr inbounds float, ptr %2169, i64 %2171
  %2173 = load float, ptr %2172, align 4, !tbaa !11
  %2174 = fmul float %2168, %2173
  %2175 = call float @llvm.fmuladd.f32(float %2163, float %2167, float %2174)
  store float %2175, ptr %45, align 4, !tbaa !11
  %2176 = load float, ptr %72, align 4, !tbaa !11
  %2177 = load ptr, ptr %23, align 8, !tbaa !5
  %2178 = load i64, ptr %48, align 8, !tbaa !9
  %2179 = sub nsw i64 %2178, 1
  %2180 = getelementptr inbounds float, ptr %2177, i64 %2179
  %2181 = load float, ptr %2180, align 4, !tbaa !11
  %2182 = load float, ptr %75, align 4, !tbaa !11
  %2183 = load ptr, ptr %22, align 8, !tbaa !5
  %2184 = load i64, ptr %48, align 8, !tbaa !9
  %2185 = getelementptr inbounds float, ptr %2183, i64 %2184
  %2186 = load float, ptr %2185, align 4, !tbaa !11
  %2187 = fmul float %2182, %2186
  %2188 = fneg float %2187
  %2189 = call float @llvm.fmuladd.f32(float %2176, float %2181, float %2188)
  %2190 = load ptr, ptr %23, align 8, !tbaa !5
  %2191 = load i64, ptr %48, align 8, !tbaa !9
  %2192 = sub nsw i64 %2191, 1
  %2193 = getelementptr inbounds float, ptr %2190, i64 %2192
  store float %2189, ptr %2193, align 4, !tbaa !11
  %2194 = load float, ptr %75, align 4, !tbaa !11
  %2195 = load ptr, ptr %22, align 8, !tbaa !5
  %2196 = load i64, ptr %48, align 8, !tbaa !9
  %2197 = sub nsw i64 %2196, 1
  %2198 = getelementptr inbounds float, ptr %2195, i64 %2197
  %2199 = load float, ptr %2198, align 4, !tbaa !11
  %2200 = fmul float %2194, %2199
  store float %2200, ptr %46, align 4, !tbaa !11
  %2201 = load float, ptr %72, align 4, !tbaa !11
  %2202 = load ptr, ptr %22, align 8, !tbaa !5
  %2203 = load i64, ptr %48, align 8, !tbaa !9
  %2204 = sub nsw i64 %2203, 1
  %2205 = getelementptr inbounds float, ptr %2202, i64 %2204
  %2206 = load float, ptr %2205, align 4, !tbaa !11
  %2207 = fmul float %2201, %2206
  %2208 = load ptr, ptr %22, align 8, !tbaa !5
  %2209 = load i64, ptr %48, align 8, !tbaa !9
  %2210 = sub nsw i64 %2209, 1
  %2211 = getelementptr inbounds float, ptr %2208, i64 %2210
  store float %2207, ptr %2211, align 4, !tbaa !11
  %2212 = call i32 @slartg_(ptr noundef %45, ptr noundef %46, ptr noundef %67, ptr noundef %71, ptr noundef %51)
  %2213 = load float, ptr %51, align 4, !tbaa !11
  %2214 = load ptr, ptr %22, align 8, !tbaa !5
  %2215 = load i64, ptr %48, align 8, !tbaa !9
  %2216 = getelementptr inbounds float, ptr %2214, i64 %2215
  store float %2213, ptr %2216, align 4, !tbaa !11
  %2217 = load float, ptr %67, align 4, !tbaa !11
  %2218 = load ptr, ptr %23, align 8, !tbaa !5
  %2219 = load i64, ptr %48, align 8, !tbaa !9
  %2220 = sub nsw i64 %2219, 1
  %2221 = getelementptr inbounds float, ptr %2218, i64 %2220
  %2222 = load float, ptr %2221, align 4, !tbaa !11
  %2223 = load float, ptr %71, align 4, !tbaa !11
  %2224 = load ptr, ptr %22, align 8, !tbaa !5
  %2225 = load i64, ptr %48, align 8, !tbaa !9
  %2226 = sub nsw i64 %2225, 1
  %2227 = getelementptr inbounds float, ptr %2224, i64 %2226
  %2228 = load float, ptr %2227, align 4, !tbaa !11
  %2229 = fmul float %2223, %2228
  %2230 = call float @llvm.fmuladd.f32(float %2217, float %2222, float %2229)
  store float %2230, ptr %45, align 4, !tbaa !11
  %2231 = load float, ptr %67, align 4, !tbaa !11
  %2232 = load ptr, ptr %22, align 8, !tbaa !5
  %2233 = load i64, ptr %48, align 8, !tbaa !9
  %2234 = sub nsw i64 %2233, 1
  %2235 = getelementptr inbounds float, ptr %2232, i64 %2234
  %2236 = load float, ptr %2235, align 4, !tbaa !11
  %2237 = load float, ptr %71, align 4, !tbaa !11
  %2238 = load ptr, ptr %23, align 8, !tbaa !5
  %2239 = load i64, ptr %48, align 8, !tbaa !9
  %2240 = sub nsw i64 %2239, 1
  %2241 = getelementptr inbounds float, ptr %2238, i64 %2240
  %2242 = load float, ptr %2241, align 4, !tbaa !11
  %2243 = fmul float %2237, %2242
  %2244 = fneg float %2243
  %2245 = call float @llvm.fmuladd.f32(float %2231, float %2236, float %2244)
  %2246 = load ptr, ptr %22, align 8, !tbaa !5
  %2247 = load i64, ptr %48, align 8, !tbaa !9
  %2248 = sub nsw i64 %2247, 1
  %2249 = getelementptr inbounds float, ptr %2246, i64 %2248
  store float %2245, ptr %2249, align 4, !tbaa !11
  %2250 = load i64, ptr %48, align 8, !tbaa !9
  %2251 = load i64, ptr %53, align 8, !tbaa !9
  %2252 = add nsw i64 %2251, 1
  %2253 = icmp sgt i64 %2250, %2252
  br i1 %2253, label %2254, label %2273

2254:                                             ; preds = %2162
  %2255 = load float, ptr %71, align 4, !tbaa !11
  %2256 = load ptr, ptr %23, align 8, !tbaa !5
  %2257 = load i64, ptr %48, align 8, !tbaa !9
  %2258 = sub nsw i64 %2257, 2
  %2259 = getelementptr inbounds float, ptr %2256, i64 %2258
  %2260 = load float, ptr %2259, align 4, !tbaa !11
  %2261 = fmul float %2255, %2260
  store float %2261, ptr %46, align 4, !tbaa !11
  %2262 = load float, ptr %67, align 4, !tbaa !11
  %2263 = load ptr, ptr %23, align 8, !tbaa !5
  %2264 = load i64, ptr %48, align 8, !tbaa !9
  %2265 = sub nsw i64 %2264, 2
  %2266 = getelementptr inbounds float, ptr %2263, i64 %2265
  %2267 = load float, ptr %2266, align 4, !tbaa !11
  %2268 = fmul float %2262, %2267
  %2269 = load ptr, ptr %23, align 8, !tbaa !5
  %2270 = load i64, ptr %48, align 8, !tbaa !9
  %2271 = sub nsw i64 %2270, 2
  %2272 = getelementptr inbounds float, ptr %2269, i64 %2271
  store float %2268, ptr %2272, align 4, !tbaa !11
  br label %2273

2273:                                             ; preds = %2254, %2162
  %2274 = load float, ptr %72, align 4, !tbaa !11
  %2275 = load ptr, ptr %30, align 8, !tbaa !5
  %2276 = load i64, ptr %48, align 8, !tbaa !9
  %2277 = load i64, ptr %53, align 8, !tbaa !9
  %2278 = sub nsw i64 %2276, %2277
  %2279 = getelementptr inbounds float, ptr %2275, i64 %2278
  store float %2274, ptr %2279, align 4, !tbaa !11
  %2280 = load float, ptr %75, align 4, !tbaa !11
  %2281 = fneg float %2280
  %2282 = load ptr, ptr %30, align 8, !tbaa !5
  %2283 = load i64, ptr %48, align 8, !tbaa !9
  %2284 = load i64, ptr %53, align 8, !tbaa !9
  %2285 = sub nsw i64 %2283, %2284
  %2286 = load i64, ptr %56, align 8, !tbaa !9
  %2287 = add nsw i64 %2285, %2286
  %2288 = getelementptr inbounds float, ptr %2282, i64 %2287
  store float %2281, ptr %2288, align 4, !tbaa !11
  %2289 = load float, ptr %67, align 4, !tbaa !11
  %2290 = load ptr, ptr %30, align 8, !tbaa !5
  %2291 = load i64, ptr %48, align 8, !tbaa !9
  %2292 = load i64, ptr %53, align 8, !tbaa !9
  %2293 = sub nsw i64 %2291, %2292
  %2294 = load i64, ptr %57, align 8, !tbaa !9
  %2295 = add nsw i64 %2293, %2294
  %2296 = getelementptr inbounds float, ptr %2290, i64 %2295
  store float %2289, ptr %2296, align 4, !tbaa !11
  %2297 = load float, ptr %71, align 4, !tbaa !11
  %2298 = fneg float %2297
  %2299 = load ptr, ptr %30, align 8, !tbaa !5
  %2300 = load i64, ptr %48, align 8, !tbaa !9
  %2301 = load i64, ptr %53, align 8, !tbaa !9
  %2302 = sub nsw i64 %2300, %2301
  %2303 = load i64, ptr %58, align 8, !tbaa !9
  %2304 = add nsw i64 %2302, %2303
  %2305 = getelementptr inbounds float, ptr %2299, i64 %2304
  store float %2298, ptr %2305, align 4, !tbaa !11
  br label %2306

2306:                                             ; preds = %2273
  %2307 = load i64, ptr %48, align 8, !tbaa !9
  %2308 = add nsw i64 %2307, -1
  store i64 %2308, ptr %48, align 8, !tbaa !9
  br label %2148, !llvm.loop !26

2309:                                             ; preds = %2148
  %2310 = load float, ptr %45, align 4, !tbaa !11
  %2311 = load ptr, ptr %23, align 8, !tbaa !5
  %2312 = load i64, ptr %53, align 8, !tbaa !9
  %2313 = getelementptr inbounds float, ptr %2311, i64 %2312
  store float %2310, ptr %2313, align 4, !tbaa !11
  %2314 = load ptr, ptr %23, align 8, !tbaa !5
  %2315 = load i64, ptr %53, align 8, !tbaa !9
  %2316 = getelementptr inbounds float, ptr %2314, i64 %2315
  %2317 = load float, ptr %2316, align 4, !tbaa !11
  store float %2317, ptr %40, align 4, !tbaa !11
  %2318 = load float, ptr %40, align 4, !tbaa !11
  %2319 = fcmp oge float %2318, 0.000000e+00
  br i1 %2319, label %2320, label %2322

2320:                                             ; preds = %2309
  %2321 = load float, ptr %40, align 4, !tbaa !11
  br label %2325

2322:                                             ; preds = %2309
  %2323 = load float, ptr %40, align 4, !tbaa !11
  %2324 = fneg float %2323
  br label %2325

2325:                                             ; preds = %2322, %2320
  %2326 = phi float [ %2321, %2320 ], [ %2324, %2322 ]
  %2327 = fpext float %2326 to double
  %2328 = load float, ptr %86, align 4, !tbaa !11
  %2329 = fpext float %2328 to double
  %2330 = fcmp ole double %2327, %2329
  br i1 %2330, label %2331, label %2335

2331:                                             ; preds = %2325
  %2332 = load ptr, ptr %23, align 8, !tbaa !5
  %2333 = load i64, ptr %53, align 8, !tbaa !9
  %2334 = getelementptr inbounds float, ptr %2332, i64 %2333
  store float 0.000000e+00, ptr %2334, align 4, !tbaa !11
  br label %2335

2335:                                             ; preds = %2331, %2325
  %2336 = load ptr, ptr %19, align 8, !tbaa !5
  %2337 = load i64, ptr %2336, align 8, !tbaa !9
  %2338 = icmp sgt i64 %2337, 0
  br i1 %2338, label %2339, label %2360

2339:                                             ; preds = %2335
  %2340 = load i64, ptr %50, align 8, !tbaa !9
  %2341 = load i64, ptr %53, align 8, !tbaa !9
  %2342 = sub nsw i64 %2340, %2341
  %2343 = add nsw i64 %2342, 1
  store i64 %2343, ptr %38, align 8, !tbaa !9
  %2344 = load ptr, ptr %19, align 8, !tbaa !5
  %2345 = load ptr, ptr %30, align 8, !tbaa !5
  %2346 = load i64, ptr %57, align 8, !tbaa !9
  %2347 = add nsw i64 %2346, 1
  %2348 = getelementptr inbounds float, ptr %2345, i64 %2347
  %2349 = load ptr, ptr %30, align 8, !tbaa !5
  %2350 = load i64, ptr %58, align 8, !tbaa !9
  %2351 = add nsw i64 %2350, 1
  %2352 = getelementptr inbounds float, ptr %2349, i64 %2351
  %2353 = load ptr, ptr %24, align 8, !tbaa !5
  %2354 = load i64, ptr %53, align 8, !tbaa !9
  %2355 = load i64, ptr %36, align 8, !tbaa !9
  %2356 = add nsw i64 %2354, %2355
  %2357 = getelementptr inbounds %struct.complex, ptr %2353, i64 %2356
  %2358 = load ptr, ptr %25, align 8, !tbaa !5
  %2359 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %38, ptr noundef %2344, ptr noundef %2348, ptr noundef %2352, ptr noundef %2357, ptr noundef %2358)
  br label %2360

2360:                                             ; preds = %2339, %2335
  %2361 = load ptr, ptr %20, align 8, !tbaa !5
  %2362 = load i64, ptr %2361, align 8, !tbaa !9
  %2363 = icmp sgt i64 %2362, 0
  br i1 %2363, label %2364, label %2384

2364:                                             ; preds = %2360
  %2365 = load i64, ptr %50, align 8, !tbaa !9
  %2366 = load i64, ptr %53, align 8, !tbaa !9
  %2367 = sub nsw i64 %2365, %2366
  %2368 = add nsw i64 %2367, 1
  store i64 %2368, ptr %38, align 8, !tbaa !9
  %2369 = load ptr, ptr %20, align 8, !tbaa !5
  %2370 = load ptr, ptr %30, align 8, !tbaa !5
  %2371 = getelementptr inbounds float, ptr %2370, i64 1
  %2372 = load ptr, ptr %30, align 8, !tbaa !5
  %2373 = load ptr, ptr %18, align 8, !tbaa !5
  %2374 = load i64, ptr %2373, align 8, !tbaa !9
  %2375 = getelementptr inbounds float, ptr %2372, i64 %2374
  %2376 = load ptr, ptr %26, align 8, !tbaa !5
  %2377 = load i64, ptr %53, align 8, !tbaa !9
  %2378 = load i64, ptr %34, align 8, !tbaa !9
  %2379 = mul nsw i64 %2377, %2378
  %2380 = add nsw i64 %2379, 1
  %2381 = getelementptr inbounds %struct.complex, ptr %2376, i64 %2380
  %2382 = load ptr, ptr %27, align 8, !tbaa !5
  %2383 = call i32 @clasr_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %2369, ptr noundef %38, ptr noundef %2371, ptr noundef %2375, ptr noundef %2381, ptr noundef %2382)
  br label %2384

2384:                                             ; preds = %2364, %2360
  %2385 = load ptr, ptr %21, align 8, !tbaa !5
  %2386 = load i64, ptr %2385, align 8, !tbaa !9
  %2387 = icmp sgt i64 %2386, 0
  br i1 %2387, label %2388, label %2407

2388:                                             ; preds = %2384
  %2389 = load i64, ptr %50, align 8, !tbaa !9
  %2390 = load i64, ptr %53, align 8, !tbaa !9
  %2391 = sub nsw i64 %2389, %2390
  %2392 = add nsw i64 %2391, 1
  store i64 %2392, ptr %38, align 8, !tbaa !9
  %2393 = load ptr, ptr %21, align 8, !tbaa !5
  %2394 = load ptr, ptr %30, align 8, !tbaa !5
  %2395 = getelementptr inbounds float, ptr %2394, i64 1
  %2396 = load ptr, ptr %30, align 8, !tbaa !5
  %2397 = load ptr, ptr %18, align 8, !tbaa !5
  %2398 = load i64, ptr %2397, align 8, !tbaa !9
  %2399 = getelementptr inbounds float, ptr %2396, i64 %2398
  %2400 = load ptr, ptr %28, align 8, !tbaa !5
  %2401 = load i64, ptr %53, align 8, !tbaa !9
  %2402 = load i64, ptr %32, align 8, !tbaa !9
  %2403 = add nsw i64 %2401, %2402
  %2404 = getelementptr inbounds %struct.complex, ptr %2400, i64 %2403
  %2405 = load ptr, ptr %29, align 8, !tbaa !5
  %2406 = call i32 @clasr_(ptr noundef @.str, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %38, ptr noundef %2393, ptr noundef %2395, ptr noundef %2399, ptr noundef %2404, ptr noundef %2405)
  br label %2407

2407:                                             ; preds = %2388, %2384
  br label %2408

2408:                                             ; preds = %2407, %2107
  br label %2409

2409:                                             ; preds = %2408, %1802
  br label %657

2410:                                             ; preds = %660, %249
  %2411 = load ptr, ptr %18, align 8, !tbaa !5
  %2412 = load i64, ptr %2411, align 8, !tbaa !9
  store i64 %2412, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %2413

2413:                                             ; preds = %2446, %2410
  %2414 = load i64, ptr %48, align 8, !tbaa !9
  %2415 = load i64, ptr %38, align 8, !tbaa !9
  %2416 = icmp sle i64 %2414, %2415
  br i1 %2416, label %2417, label %2449

2417:                                             ; preds = %2413
  %2418 = load ptr, ptr %22, align 8, !tbaa !5
  %2419 = load i64, ptr %48, align 8, !tbaa !9
  %2420 = getelementptr inbounds float, ptr %2418, i64 %2419
  %2421 = load float, ptr %2420, align 4, !tbaa !11
  %2422 = fcmp olt float %2421, 0.000000e+00
  br i1 %2422, label %2423, label %2445

2423:                                             ; preds = %2417
  %2424 = load ptr, ptr %22, align 8, !tbaa !5
  %2425 = load i64, ptr %48, align 8, !tbaa !9
  %2426 = getelementptr inbounds float, ptr %2424, i64 %2425
  %2427 = load float, ptr %2426, align 4, !tbaa !11
  %2428 = fneg float %2427
  %2429 = load ptr, ptr %22, align 8, !tbaa !5
  %2430 = load i64, ptr %48, align 8, !tbaa !9
  %2431 = getelementptr inbounds float, ptr %2429, i64 %2430
  store float %2428, ptr %2431, align 4, !tbaa !11
  %2432 = load ptr, ptr %19, align 8, !tbaa !5
  %2433 = load i64, ptr %2432, align 8, !tbaa !9
  %2434 = icmp sgt i64 %2433, 0
  br i1 %2434, label %2435, label %2444

2435:                                             ; preds = %2423
  %2436 = load ptr, ptr %19, align 8, !tbaa !5
  %2437 = load ptr, ptr %24, align 8, !tbaa !5
  %2438 = load i64, ptr %48, align 8, !tbaa !9
  %2439 = load i64, ptr %36, align 8, !tbaa !9
  %2440 = add nsw i64 %2438, %2439
  %2441 = getelementptr inbounds %struct.complex, ptr %2437, i64 %2440
  %2442 = load ptr, ptr %25, align 8, !tbaa !5
  %2443 = call i32 @f2c_csscal(ptr noundef %2436, ptr noundef @c_b72, ptr noundef %2441, ptr noundef %2442)
  br label %2444

2444:                                             ; preds = %2435, %2423
  br label %2445

2445:                                             ; preds = %2444, %2417
  br label %2446

2446:                                             ; preds = %2445
  %2447 = load i64, ptr %48, align 8, !tbaa !9
  %2448 = add nsw i64 %2447, 1
  store i64 %2448, ptr %48, align 8, !tbaa !9
  br label %2413, !llvm.loop !27

2449:                                             ; preds = %2413
  %2450 = load ptr, ptr %18, align 8, !tbaa !5
  %2451 = load i64, ptr %2450, align 8, !tbaa !9
  %2452 = sub nsw i64 %2451, 1
  store i64 %2452, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %2453

2453:                                             ; preds = %2585, %2449
  %2454 = load i64, ptr %48, align 8, !tbaa !9
  %2455 = load i64, ptr %38, align 8, !tbaa !9
  %2456 = icmp sle i64 %2454, %2455
  br i1 %2456, label %2457, label %2588

2457:                                             ; preds = %2453
  store i64 1, ptr %68, align 8, !tbaa !9
  %2458 = load ptr, ptr %22, align 8, !tbaa !5
  %2459 = getelementptr inbounds float, ptr %2458, i64 1
  %2460 = load float, ptr %2459, align 4, !tbaa !11
  store float %2460, ptr %73, align 4, !tbaa !11
  %2461 = load ptr, ptr %18, align 8, !tbaa !5
  %2462 = load i64, ptr %2461, align 8, !tbaa !9
  %2463 = add nsw i64 %2462, 1
  %2464 = load i64, ptr %48, align 8, !tbaa !9
  %2465 = sub nsw i64 %2463, %2464
  store i64 %2465, ptr %39, align 8, !tbaa !9
  store i64 2, ptr %49, align 8, !tbaa !9
  br label %2466

2466:                                             ; preds = %2484, %2457
  %2467 = load i64, ptr %49, align 8, !tbaa !9
  %2468 = load i64, ptr %39, align 8, !tbaa !9
  %2469 = icmp sle i64 %2467, %2468
  br i1 %2469, label %2470, label %2487

2470:                                             ; preds = %2466
  %2471 = load ptr, ptr %22, align 8, !tbaa !5
  %2472 = load i64, ptr %49, align 8, !tbaa !9
  %2473 = getelementptr inbounds float, ptr %2471, i64 %2472
  %2474 = load float, ptr %2473, align 4, !tbaa !11
  %2475 = load float, ptr %73, align 4, !tbaa !11
  %2476 = fcmp ole float %2474, %2475
  br i1 %2476, label %2477, label %2483

2477:                                             ; preds = %2470
  %2478 = load i64, ptr %49, align 8, !tbaa !9
  store i64 %2478, ptr %68, align 8, !tbaa !9
  %2479 = load ptr, ptr %22, align 8, !tbaa !5
  %2480 = load i64, ptr %49, align 8, !tbaa !9
  %2481 = getelementptr inbounds float, ptr %2479, i64 %2480
  %2482 = load float, ptr %2481, align 4, !tbaa !11
  store float %2482, ptr %73, align 4, !tbaa !11
  br label %2483

2483:                                             ; preds = %2477, %2470
  br label %2484

2484:                                             ; preds = %2483
  %2485 = load i64, ptr %49, align 8, !tbaa !9
  %2486 = add nsw i64 %2485, 1
  store i64 %2486, ptr %49, align 8, !tbaa !9
  br label %2466, !llvm.loop !28

2487:                                             ; preds = %2466
  %2488 = load i64, ptr %68, align 8, !tbaa !9
  %2489 = load ptr, ptr %18, align 8, !tbaa !5
  %2490 = load i64, ptr %2489, align 8, !tbaa !9
  %2491 = add nsw i64 %2490, 1
  %2492 = load i64, ptr %48, align 8, !tbaa !9
  %2493 = sub nsw i64 %2491, %2492
  %2494 = icmp ne i64 %2488, %2493
  br i1 %2494, label %2495, label %2584

2495:                                             ; preds = %2487
  %2496 = load ptr, ptr %22, align 8, !tbaa !5
  %2497 = load ptr, ptr %18, align 8, !tbaa !5
  %2498 = load i64, ptr %2497, align 8, !tbaa !9
  %2499 = add nsw i64 %2498, 1
  %2500 = load i64, ptr %48, align 8, !tbaa !9
  %2501 = sub nsw i64 %2499, %2500
  %2502 = getelementptr inbounds float, ptr %2496, i64 %2501
  %2503 = load float, ptr %2502, align 4, !tbaa !11
  %2504 = load ptr, ptr %22, align 8, !tbaa !5
  %2505 = load i64, ptr %68, align 8, !tbaa !9
  %2506 = getelementptr inbounds float, ptr %2504, i64 %2505
  store float %2503, ptr %2506, align 4, !tbaa !11
  %2507 = load float, ptr %73, align 4, !tbaa !11
  %2508 = load ptr, ptr %22, align 8, !tbaa !5
  %2509 = load ptr, ptr %18, align 8, !tbaa !5
  %2510 = load i64, ptr %2509, align 8, !tbaa !9
  %2511 = add nsw i64 %2510, 1
  %2512 = load i64, ptr %48, align 8, !tbaa !9
  %2513 = sub nsw i64 %2511, %2512
  %2514 = getelementptr inbounds float, ptr %2508, i64 %2513
  store float %2507, ptr %2514, align 4, !tbaa !11
  %2515 = load ptr, ptr %19, align 8, !tbaa !5
  %2516 = load i64, ptr %2515, align 8, !tbaa !9
  %2517 = icmp sgt i64 %2516, 0
  br i1 %2517, label %2518, label %2537

2518:                                             ; preds = %2495
  %2519 = load ptr, ptr %19, align 8, !tbaa !5
  %2520 = load ptr, ptr %24, align 8, !tbaa !5
  %2521 = load i64, ptr %68, align 8, !tbaa !9
  %2522 = load i64, ptr %36, align 8, !tbaa !9
  %2523 = add nsw i64 %2521, %2522
  %2524 = getelementptr inbounds %struct.complex, ptr %2520, i64 %2523
  %2525 = load ptr, ptr %25, align 8, !tbaa !5
  %2526 = load ptr, ptr %24, align 8, !tbaa !5
  %2527 = load ptr, ptr %18, align 8, !tbaa !5
  %2528 = load i64, ptr %2527, align 8, !tbaa !9
  %2529 = add nsw i64 %2528, 1
  %2530 = load i64, ptr %48, align 8, !tbaa !9
  %2531 = sub nsw i64 %2529, %2530
  %2532 = load i64, ptr %36, align 8, !tbaa !9
  %2533 = add nsw i64 %2531, %2532
  %2534 = getelementptr inbounds %struct.complex, ptr %2526, i64 %2533
  %2535 = load ptr, ptr %25, align 8, !tbaa !5
  %2536 = call i32 @f2c_cswap(ptr noundef %2519, ptr noundef %2524, ptr noundef %2525, ptr noundef %2534, ptr noundef %2535)
  br label %2537

2537:                                             ; preds = %2518, %2495
  %2538 = load ptr, ptr %20, align 8, !tbaa !5
  %2539 = load i64, ptr %2538, align 8, !tbaa !9
  %2540 = icmp sgt i64 %2539, 0
  br i1 %2540, label %2541, label %2560

2541:                                             ; preds = %2537
  %2542 = load ptr, ptr %20, align 8, !tbaa !5
  %2543 = load ptr, ptr %26, align 8, !tbaa !5
  %2544 = load i64, ptr %68, align 8, !tbaa !9
  %2545 = load i64, ptr %34, align 8, !tbaa !9
  %2546 = mul nsw i64 %2544, %2545
  %2547 = add nsw i64 %2546, 1
  %2548 = getelementptr inbounds %struct.complex, ptr %2543, i64 %2547
  %2549 = load ptr, ptr %26, align 8, !tbaa !5
  %2550 = load ptr, ptr %18, align 8, !tbaa !5
  %2551 = load i64, ptr %2550, align 8, !tbaa !9
  %2552 = add nsw i64 %2551, 1
  %2553 = load i64, ptr %48, align 8, !tbaa !9
  %2554 = sub nsw i64 %2552, %2553
  %2555 = load i64, ptr %34, align 8, !tbaa !9
  %2556 = mul nsw i64 %2554, %2555
  %2557 = add nsw i64 %2556, 1
  %2558 = getelementptr inbounds %struct.complex, ptr %2549, i64 %2557
  %2559 = call i32 @f2c_cswap(ptr noundef %2542, ptr noundef %2548, ptr noundef @c__1, ptr noundef %2558, ptr noundef @c__1)
  br label %2560

2560:                                             ; preds = %2541, %2537
  %2561 = load ptr, ptr %21, align 8, !tbaa !5
  %2562 = load i64, ptr %2561, align 8, !tbaa !9
  %2563 = icmp sgt i64 %2562, 0
  br i1 %2563, label %2564, label %2583

2564:                                             ; preds = %2560
  %2565 = load ptr, ptr %21, align 8, !tbaa !5
  %2566 = load ptr, ptr %28, align 8, !tbaa !5
  %2567 = load i64, ptr %68, align 8, !tbaa !9
  %2568 = load i64, ptr %32, align 8, !tbaa !9
  %2569 = add nsw i64 %2567, %2568
  %2570 = getelementptr inbounds %struct.complex, ptr %2566, i64 %2569
  %2571 = load ptr, ptr %29, align 8, !tbaa !5
  %2572 = load ptr, ptr %28, align 8, !tbaa !5
  %2573 = load ptr, ptr %18, align 8, !tbaa !5
  %2574 = load i64, ptr %2573, align 8, !tbaa !9
  %2575 = add nsw i64 %2574, 1
  %2576 = load i64, ptr %48, align 8, !tbaa !9
  %2577 = sub nsw i64 %2575, %2576
  %2578 = load i64, ptr %32, align 8, !tbaa !9
  %2579 = add nsw i64 %2577, %2578
  %2580 = getelementptr inbounds %struct.complex, ptr %2572, i64 %2579
  %2581 = load ptr, ptr %29, align 8, !tbaa !5
  %2582 = call i32 @f2c_cswap(ptr noundef %2565, ptr noundef %2570, ptr noundef %2571, ptr noundef %2580, ptr noundef %2581)
  br label %2583

2583:                                             ; preds = %2564, %2560
  br label %2584

2584:                                             ; preds = %2583, %2487
  br label %2585

2585:                                             ; preds = %2584
  %2586 = load i64, ptr %48, align 8, !tbaa !9
  %2587 = add nsw i64 %2586, 1
  store i64 %2587, ptr %48, align 8, !tbaa !9
  br label %2453, !llvm.loop !29

2588:                                             ; preds = %2453
  br label %2613

2589:                                             ; preds = %665
  %2590 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 0, ptr %2590, align 8, !tbaa !9
  %2591 = load ptr, ptr %18, align 8, !tbaa !5
  %2592 = load i64, ptr %2591, align 8, !tbaa !9
  %2593 = sub nsw i64 %2592, 1
  store i64 %2593, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %2594

2594:                                             ; preds = %2609, %2589
  %2595 = load i64, ptr %48, align 8, !tbaa !9
  %2596 = load i64, ptr %38, align 8, !tbaa !9
  %2597 = icmp sle i64 %2595, %2596
  br i1 %2597, label %2598, label %2612

2598:                                             ; preds = %2594
  %2599 = load ptr, ptr %23, align 8, !tbaa !5
  %2600 = load i64, ptr %48, align 8, !tbaa !9
  %2601 = getelementptr inbounds float, ptr %2599, i64 %2600
  %2602 = load float, ptr %2601, align 4, !tbaa !11
  %2603 = fcmp une float %2602, 0.000000e+00
  br i1 %2603, label %2604, label %2608

2604:                                             ; preds = %2598
  %2605 = load ptr, ptr %31, align 8, !tbaa !5
  %2606 = load i64, ptr %2605, align 8, !tbaa !9
  %2607 = add nsw i64 %2606, 1
  store i64 %2607, ptr %2605, align 8, !tbaa !9
  br label %2608

2608:                                             ; preds = %2604, %2598
  br label %2609

2609:                                             ; preds = %2608
  %2610 = load i64, ptr %48, align 8, !tbaa !9
  %2611 = add nsw i64 %2610, 1
  store i64 %2611, ptr %48, align 8, !tbaa !9
  br label %2594, !llvm.loop !30

2612:                                             ; preds = %2594
  br label %2613

2613:                                             ; preds = %2612, %2588
  store i32 0, ptr %16, align 4
  store i32 1, ptr %89, align 4
  br label %2614

2614:                                             ; preds = %2613, %268, %244, %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  %2615 = load i32, ptr %16, align 4
  ret i32 %2615
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

declare double @pow_dd(ptr noundef, ptr noundef) #2

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

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

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

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

declare double @r_sign(ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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


; 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 [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b15 = external hidden global double, align 8
@c__1 = external hidden global i64, align 8
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b49 = external hidden global float, align 4
@c_b72 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @cbdsqr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14) local_unnamed_addr #0 {
  %16 = alloca i64, align 8
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca double, align 8
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  %34 = getelementptr inbounds i8, ptr %5, i64 -4
  %35 = getelementptr inbounds i8, ptr %6, i64 -4
  %36 = load i64, ptr %10, align 8, !tbaa !5
  %37 = xor i64 %36, -1
  %38 = getelementptr inbounds %struct.complex, ptr %9, i64 %37
  %39 = getelementptr inbounds i8, ptr %13, i64 -4
  store i64 0, ptr %14, align 8, !tbaa !5
  %40 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %41 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %42 = icmp ne i64 %41, 0
  %43 = icmp ne i64 %40, 0
  %or.cond = select i1 %42, i1 true, i1 %43
  br i1 %or.cond, label %44, label %.thread908.sink.split

44:                                               ; preds = %15
  %45 = load i64, ptr %1, align 8, !tbaa !5
  %46 = icmp slt i64 %45, 0
  br i1 %46, label %.thread908.sink.split, label %47

47:                                               ; preds = %44
  %48 = load i64, ptr %2, align 8, !tbaa !5
  %49 = icmp slt i64 %48, 0
  br i1 %49, label %.thread908.sink.split, label %50

50:                                               ; preds = %47
  %51 = load i64, ptr %3, align 8, !tbaa !5
  %52 = icmp slt i64 %51, 0
  br i1 %52, label %.thread908.sink.split, label %53

53:                                               ; preds = %50
  %54 = load i64, ptr %4, align 8, !tbaa !5
  %55 = icmp slt i64 %54, 0
  br i1 %55, label %.thread908.sink.split, label %56

56:                                               ; preds = %53
  %57 = icmp eq i64 %48, 0
  %58 = load i64, ptr %8, align 8, !tbaa !5
  br i1 %57, label %59, label %61

59:                                               ; preds = %56
  %60 = icmp slt i64 %58, 1
  br i1 %60, label %.thread908.sink.split, label %63

61:                                               ; preds = %56
  %spec.select = tail call i64 @llvm.umax.i64(i64 %45, i64 1)
  %62 = icmp slt i64 %58, %spec.select
  br i1 %62, label %.thread908.sink.split, label %63

63:                                               ; preds = %59, %61
  %64 = load i64, ptr %10, align 8, !tbaa !5
  %spec.select902 = tail call i64 @llvm.umax.i64(i64 %51, i64 1)
  %65 = icmp slt i64 %64, %spec.select902
  br i1 %65, label %.thread908.sink.split, label %66

66:                                               ; preds = %63
  %67 = icmp eq i64 %54, 0
  %68 = load i64, ptr %12, align 8, !tbaa !5
  br i1 %67, label %69, label %71

69:                                               ; preds = %66
  %70 = icmp slt i64 %68, 1
  br i1 %70, label %.thread908.sink.split, label %73

71:                                               ; preds = %66
  %spec.select903 = tail call i64 @llvm.umax.i64(i64 %45, i64 1)
  %72 = icmp slt i64 %68, %spec.select903
  br i1 %72, label %.thread908.sink.split, label %73

73:                                               ; preds = %69, %71
  %.pr = load i64, ptr %14, align 8, !tbaa !5
  %.not = icmp eq i64 %.pr, 0
  br i1 %.not, label %77, label %.thread908

.thread908.sink.split:                            ; preds = %69, %71, %63, %59, %61, %53, %50, %47, %44, %15
  %.sink = phi i64 [ -1, %15 ], [ -2, %44 ], [ -3, %47 ], [ -4, %50 ], [ -5, %53 ], [ -9, %61 ], [ -9, %59 ], [ -11, %63 ], [ -13, %71 ], [ -13, %69 ]
  store i64 %.sink, ptr %14, align 8, !tbaa !5
  br label %.thread908

.thread908:                                       ; preds = %.thread908.sink.split, %73
  %74 = phi i64 [ %.pr, %73 ], [ %.sink, %.thread908.sink.split ]
  %75 = sub nsw i64 0, %74
  store i64 %75, ptr %16, align 8, !tbaa !5
  %76 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %16) #6
  br label %.loopexit

77:                                               ; preds = %73
  switch i64 %45, label %78 [
    i64 0, label %.loopexit
    i64 1, label %.loopexit959
  ]

78:                                               ; preds = %77
  %79 = or i64 %48, %51
  %80 = or i64 %79, %54
  %or.cond1508 = icmp eq i64 %80, 0
  br i1 %or.cond1508, label %81, label %.critedge

81:                                               ; preds = %78
  %82 = tail call i32 @slasq1_(ptr noundef nonnull %1, ptr noundef %5, ptr noundef %6, ptr noundef %13, ptr noundef nonnull %14) #6
  br label %.loopexit

.critedge:                                        ; preds = %78
  %83 = add nsw i64 %45, -1
  %84 = shl nuw nsw i64 %83, 1
  %85 = mul nsw i64 %83, 3
  %86 = tail call double @slamch_(ptr noundef nonnull @.str.3) #6
  %87 = fptrunc double %86 to float
  %88 = tail call double @slamch_(ptr noundef nonnull @.str.4) #6
  %89 = fptrunc double %88 to float
  br i1 %43, label %90, label %123

90:                                               ; preds = %.critedge
  %91 = load i64, ptr %1, align 8, !tbaa !5
  %92 = add nsw i64 %91, -1
  store i64 %92, ptr %16, align 8, !tbaa !5
  %.not8851046 = icmp slt i64 %91, 2
  br i1 %.not8851046, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %90
  %93 = getelementptr float, ptr %39, i64 %83
  br label %94

94:                                               ; preds = %.lr.ph, %94
  %.08511047 = phi i64 [ 1, %.lr.ph ], [ %100, %94 ]
  %95 = getelementptr inbounds float, ptr %34, i64 %.08511047
  %96 = getelementptr inbounds float, ptr %35, i64 %.08511047
  %97 = call i32 @slartg_(ptr noundef nonnull %95, ptr noundef nonnull %96, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %22) #6
  %98 = load float, ptr %22, align 4, !tbaa !9
  store float %98, ptr %95, align 4, !tbaa !9
  %99 = load float, ptr %24, align 4, !tbaa !9
  %100 = add nuw nsw i64 %.08511047, 1
  %101 = getelementptr float, ptr %5, i64 %.08511047
  %102 = load float, ptr %101, align 4, !tbaa !9
  %103 = fmul float %99, %102
  store float %103, ptr %96, align 4, !tbaa !9
  %104 = load float, ptr %23, align 4, !tbaa !9
  %105 = load float, ptr %101, align 4, !tbaa !9
  %106 = fmul float %104, %105
  store float %106, ptr %101, align 4, !tbaa !9
  %107 = getelementptr inbounds float, ptr %39, i64 %.08511047
  store float %104, ptr %107, align 4, !tbaa !9
  %108 = getelementptr float, ptr %93, i64 %.08511047
  store float %99, ptr %108, align 4, !tbaa !9
  %109 = load i64, ptr %16, align 8, !tbaa !5
  %.not885.not = icmp slt i64 %.08511047, %109
  br i1 %.not885.not, label %94, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %94, %90
  %110 = load i64, ptr %3, align 8, !tbaa !5
  %111 = icmp sgt i64 %110, 0
  br i1 %111, label %112, label %116

112:                                              ; preds = %._crit_edge
  %113 = load i64, ptr %1, align 8, !tbaa !5
  %114 = getelementptr inbounds float, ptr %39, i64 %113
  %115 = call i32 @clasr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef nonnull %1, ptr noundef %13, ptr noundef nonnull %114, ptr noundef %9, ptr noundef nonnull %10) #6
  br label %116

116:                                              ; preds = %112, %._crit_edge
  %117 = load i64, ptr %4, align 8, !tbaa !5
  %118 = icmp sgt i64 %117, 0
  br i1 %118, label %119, label %123

119:                                              ; preds = %116
  %120 = load i64, ptr %1, align 8, !tbaa !5
  %121 = getelementptr inbounds float, ptr %39, i64 %120
  %122 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %1, ptr noundef nonnull %4, ptr noundef %13, ptr noundef nonnull %121, ptr noundef %11, ptr noundef nonnull %12) #6
  br label %123

123:                                              ; preds = %116, %119, %.critedge
  %124 = fpext float %87 to double
  store double %124, ptr %19, align 8, !tbaa !13
  %125 = call double @pow_dd(ptr noundef nonnull %19, ptr noundef nonnull @c_b15) #6
  %126 = fptrunc double %125 to float
  %127 = fcmp oge float %126, 1.000000e+02
  %128 = select i1 %127, float 1.000000e+02, float %126
  %129 = fcmp ole float %128, 1.000000e+01
  %130 = select i1 %129, float 1.000000e+01, float %128
  %131 = fmul float %130, %87
  %132 = load i64, ptr %1, align 8, !tbaa !5
  %.not8861048 = icmp slt i64 %132, 1
  br i1 %.not8861048, label %.thread, label %.lr.ph1052.preheader

.lr.ph1052.preheader:                             ; preds = %123
  %133 = add nsw i64 %132, -1
  %xtraiter = and i64 %132, 1
  %134 = icmp eq i64 %133, 0
  br i1 %134, label %.unr-lcssa, label %.lr.ph1052.preheader.new

.lr.ph1052.preheader.new:                         ; preds = %.lr.ph1052.preheader
  %unroll_iter = and i64 %132, 9223372036854775806
  br label %.lr.ph1052

.thread:                                          ; preds = %123
  %135 = add nsw i64 %132, -1
  store i64 %135, ptr %16, align 8, !tbaa !5
  br label %._crit_edge1060

.lr.ph1052:                                       ; preds = %.lr.ph1052, %.lr.ph1052.preheader.new
  %.08351050 = phi float [ 0.000000e+00, %.lr.ph1052.preheader.new ], [ %149, %.lr.ph1052 ]
  %.18521049 = phi i64 [ 1, %.lr.ph1052.preheader.new ], [ %150, %.lr.ph1052 ]
  %niter = phi i64 [ 0, %.lr.ph1052.preheader.new ], [ %niter.next.1, %.lr.ph1052 ]
  %136 = getelementptr inbounds float, ptr %34, i64 %.18521049
  %137 = load float, ptr %136, align 4, !tbaa !9
  %138 = fcmp oge float %137, 0.000000e+00
  %139 = fneg float %137
  %140 = select i1 %138, float %137, float %139
  %141 = fcmp oge float %.08351050, %140
  %142 = select i1 %141, float %.08351050, float %140
  %143 = getelementptr float, ptr %5, i64 %.18521049
  %144 = load float, ptr %143, align 4, !tbaa !9
  %145 = fcmp oge float %144, 0.000000e+00
  %146 = fneg float %144
  %147 = select i1 %145, float %144, float %146
  %148 = fcmp oge float %142, %147
  %149 = select i1 %148, float %142, float %147
  %150 = add nuw i64 %.18521049, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.unr-lcssa, label %.lr.ph1052, !llvm.loop !15

.unr-lcssa:                                       ; preds = %.lr.ph1052, %.lr.ph1052.preheader
  %.lcssa1695.ph = phi float [ poison, %.lr.ph1052.preheader ], [ %149, %.lr.ph1052 ]
  %.08351050.unr = phi float [ 0.000000e+00, %.lr.ph1052.preheader ], [ %149, %.lr.ph1052 ]
  %.18521049.unr = phi i64 [ 1, %.lr.ph1052.preheader ], [ %150, %.lr.ph1052 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %158, label %.lr.ph1052.epil

.lr.ph1052.epil:                                  ; preds = %.unr-lcssa
  %151 = getelementptr inbounds float, ptr %34, i64 %.18521049.unr
  %152 = load float, ptr %151, align 4, !tbaa !9
  %153 = fcmp oge float %152, 0.000000e+00
  %154 = fneg float %152
  %155 = select i1 %153, float %152, float %154
  %156 = fcmp oge float %.08351050.unr, %155
  %157 = select i1 %156, float %.08351050.unr, float %155
  br label %158

158:                                              ; preds = %.unr-lcssa, %.lr.ph1052.epil
  %.lcssa1695 = phi float [ %.lcssa1695.ph, %.unr-lcssa ], [ %157, %.lr.ph1052.epil ]
  %159 = add nsw i64 %132, -1
  store i64 %159, ptr %16, align 8, !tbaa !5
  %.not887.not1055.not = icmp eq i64 %132, 1
  br i1 %.not887.not1055.not, label %._crit_edge1060, label %.lr.ph1059.preheader

.lr.ph1059.preheader:                             ; preds = %158
  %xtraiter1697 = and i64 %133, 1
  %160 = icmp eq i64 %132, 2
  br i1 %160, label %._crit_edge1060.loopexit.unr-lcssa, label %.lr.ph1059.preheader.new

.lr.ph1059.preheader.new:                         ; preds = %.lr.ph1059.preheader
  %unroll_iter1700 = and i64 %133, -2
  br label %.lr.ph1059

.lr.ph1059:                                       ; preds = %.lr.ph1059, %.lr.ph1059.preheader.new
  %.18361057 = phi float [ %.lcssa1695, %.lr.ph1059.preheader.new ], [ %174, %.lr.ph1059 ]
  %.28531056 = phi i64 [ 1, %.lr.ph1059.preheader.new ], [ %175, %.lr.ph1059 ]
  %niter1701 = phi i64 [ 0, %.lr.ph1059.preheader.new ], [ %niter1701.next.1, %.lr.ph1059 ]
  %161 = getelementptr inbounds float, ptr %35, i64 %.28531056
  %162 = load float, ptr %161, align 4, !tbaa !9
  %163 = fcmp oge float %162, 0.000000e+00
  %164 = fneg float %162
  %165 = select i1 %163, float %162, float %164
  %166 = fcmp oge float %.18361057, %165
  %167 = select i1 %166, float %.18361057, float %165
  %168 = getelementptr float, ptr %6, i64 %.28531056
  %169 = load float, ptr %168, align 4, !tbaa !9
  %170 = fcmp oge float %169, 0.000000e+00
  %171 = fneg float %169
  %172 = select i1 %170, float %169, float %171
  %173 = fcmp oge float %167, %172
  %174 = select i1 %173, float %167, float %172
  %175 = add nuw nsw i64 %.28531056, 2
  %niter1701.next.1 = add i64 %niter1701, 2
  %niter1701.ncmp.1 = icmp eq i64 %niter1701.next.1, %unroll_iter1700
  br i1 %niter1701.ncmp.1, label %._crit_edge1060.loopexit.unr-lcssa, label %.lr.ph1059, !llvm.loop !16

._crit_edge1060.loopexit.unr-lcssa:               ; preds = %.lr.ph1059, %.lr.ph1059.preheader
  %.lcssa1694.ph = phi float [ poison, %.lr.ph1059.preheader ], [ %174, %.lr.ph1059 ]
  %.18361057.unr = phi float [ %.lcssa1695, %.lr.ph1059.preheader ], [ %174, %.lr.ph1059 ]
  %.28531056.unr = phi i64 [ 1, %.lr.ph1059.preheader ], [ %175, %.lr.ph1059 ]
  %lcmp.mod1698.not = icmp eq i64 %xtraiter1697, 0
  br i1 %lcmp.mod1698.not, label %._crit_edge1060, label %.lr.ph1059.epil

.lr.ph1059.epil:                                  ; preds = %._crit_edge1060.loopexit.unr-lcssa
  %176 = getelementptr inbounds float, ptr %35, i64 %.28531056.unr
  %177 = load float, ptr %176, align 4, !tbaa !9
  %178 = fcmp oge float %177, 0.000000e+00
  %179 = fneg float %177
  %180 = select i1 %178, float %177, float %179
  %181 = fcmp oge float %.18361057.unr, %180
  %182 = select i1 %181, float %.18361057.unr, float %180
  br label %._crit_edge1060

._crit_edge1060:                                  ; preds = %.lr.ph1059.epil, %._crit_edge1060.loopexit.unr-lcssa, %.thread, %158
  %.1836.lcssa = phi float [ %.lcssa1695, %158 ], [ 0.000000e+00, %.thread ], [ %.lcssa1694.ph, %._crit_edge1060.loopexit.unr-lcssa ], [ %182, %.lr.ph1059.epil ]
  %183 = fcmp oge float %131, 0.000000e+00
  br i1 %183, label %184, label %225

184:                                              ; preds = %._crit_edge1060
  %185 = load float, ptr %5, align 4, !tbaa !9
  %186 = fcmp ult float %185, 0.000000e+00
  %187 = fneg float %185
  %188 = select i1 %186, float %187, float %185
  %189 = fcmp oeq float %185, 0.000000e+00
  br i1 %189, label %.loopexit969, label %190

190:                                              ; preds = %184
  %invariant.gep = getelementptr i8, ptr %6, i64 -8
  %.not8881063 = icmp slt i64 %132, 2
  br i1 %.not8881063, label %.loopexit969, label %.lr.ph1068

.lr.ph1068:                                       ; preds = %190, %.lr.ph1068
  %.08311066 = phi float [ %208, %.lr.ph1068 ], [ %188, %190 ]
  %.38541065 = phi i64 [ %210, %.lr.ph1068 ], [ 2, %190 ]
  %.08571064 = phi float [ %206, %.lr.ph1068 ], [ %188, %190 ]
  %191 = getelementptr inbounds float, ptr %34, i64 %.38541065
  %192 = load float, ptr %191, align 4, !tbaa !9
  %193 = fcmp oge float %192, 0.000000e+00
  %194 = fneg float %192
  %195 = select i1 %193, float %192, float %194
  %196 = fpext float %195 to double
  %197 = fpext float %.08571064 to double
  %gep = getelementptr float, ptr %invariant.gep, i64 %.38541065
  %198 = load float, ptr %gep, align 4, !tbaa !9
  %199 = fcmp oge float %198, 0.000000e+00
  %200 = fneg float %198
  %201 = select i1 %199, float %198, float %200
  %202 = fpext float %201 to double
  %203 = fadd double %197, %202
  %204 = fdiv double %197, %203
  %205 = fmul double %204, %196
  %206 = fptrunc double %205 to float
  %207 = fcmp ole float %.08311066, %206
  %208 = select i1 %207, float %.08311066, float %206
  %209 = fcmp oeq float %208, 0.000000e+00
  %210 = add nuw i64 %.38541065, 1
  %exitcond1380.not = icmp eq i64 %.38541065, %132
  %or.cond1511 = or i1 %209, %exitcond1380.not
  br i1 %or.cond1511, label %.loopexit969, label %.lr.ph1068, !llvm.loop !17

.loopexit969:                                     ; preds = %.lr.ph1068, %190, %184
  %.1 = phi float [ %188, %184 ], [ %188, %190 ], [ %208, %.lr.ph1068 ]
  %211 = sitofp i64 %132 to float
  %212 = fpext float %211 to double
  %213 = call double @sqrt(double noundef %212) #6
  %214 = fpext float %.1 to double
  %215 = fdiv double %214, %213
  %216 = fptrunc double %215 to float
  %217 = fmul float %131, %216
  store float %217, ptr %17, align 4, !tbaa !9
  %218 = load i64, ptr %1, align 8, !tbaa !5
  %219 = mul nsw i64 %218, 6
  %220 = mul nsw i64 %219, %218
  %221 = sitofp i64 %220 to float
  %222 = fmul float %89, %221
  store float %222, ptr %18, align 4, !tbaa !9
  %223 = fcmp oge float %217, %222
  %224 = select i1 %223, float %217, float %222
  br label %234

225:                                              ; preds = %._crit_edge1060
  %226 = fneg float %131
  %227 = fmul float %.1836.lcssa, %226
  store float %227, ptr %17, align 4, !tbaa !9
  %228 = mul nsw i64 %132, 6
  %229 = mul nsw i64 %228, %132
  %230 = sitofp i64 %229 to float
  %231 = fmul float %89, %230
  store float %231, ptr %18, align 4, !tbaa !9
  %232 = fcmp oge float %227, %231
  %233 = select i1 %232, float %227, float %231
  br label %234

234:                                              ; preds = %225, %.loopexit969
  %.pre-phi1397 = phi i64 [ %229, %225 ], [ %220, %.loopexit969 ]
  %235 = phi i64 [ %132, %225 ], [ %218, %.loopexit969 ]
  %.0830 = phi float [ %233, %225 ], [ %224, %.loopexit969 ]
  %invariant.gep1189 = getelementptr i8, ptr %5, i64 4
  %invariant.gep1191 = getelementptr i8, ptr %38, i64 8
  %invariant.gep1208 = getelementptr i8, ptr %7, i64 -8
  %invariant.gep1216 = getelementptr i8, ptr %11, i64 -8
  %236 = icmp slt i64 %235, 2
  br i1 %236, label %.loopexit959, label %.lr.ph1094.lr.ph.lr.ph.lr.ph

.lr.ph1094.lr.ph.lr.ph.lr.ph:                     ; preds = %234
  %237 = fcmp uge float %131, 0.000000e+00
  %238 = fneg float %131
  %239 = select i1 %183, float %131, float %238
  %240 = fpext float %239 to double
  %241 = fmul float %131, 0x3F847AE140000000
  %242 = fcmp ole float %241, %87
  %243 = select i1 %242, float %87, float %241
  %invariant.gep1161 = getelementptr i8, ptr %6, i64 -12
  %244 = getelementptr float, ptr %13, i64 %84
  %245 = getelementptr float, ptr %13, i64 %85
  %invariant.gep1168 = getelementptr i8, ptr %6, i64 -8
  %invariant.gep1170 = getelementptr float, ptr %39, i64 %45
  br label %.lr.ph1094.lr.ph.lr.ph

.outer.loopexit:                                  ; preds = %.split.us
  store float %.us-phi, ptr %17, align 4, !tbaa !9
  store i64 %247, ptr %16, align 8, !tbaa !5
  br label %.outer.backedge

.lr.ph1094.lr.ph.lr.ph:                           ; preds = %.lr.ph1094.lr.ph.lr.ph.lr.ph, %.outer.backedge
  %.0834.ph1224 = phi i64 [ -1, %.lr.ph1094.lr.ph.lr.ph.lr.ph ], [ %.0834.ph96412061595, %.outer.backedge ]
  %.0841.ph1223 = phi i64 [ 0, %.lr.ph1094.lr.ph.lr.ph.lr.ph ], [ %.0841.ph96312011596, %.outer.backedge ]
  %.0844.ph1222 = phi i64 [ -1, %.lr.ph1094.lr.ph.lr.ph.lr.ph ], [ %.0844.ph96212001602, %.outer.backedge ]
  %.0845.ph1221 = phi i64 [ 0, %.lr.ph1094.lr.ph.lr.ph.lr.ph ], [ %.08451093, %.outer.backedge ]
  %.0856.ph1220 = phi i64 [ %235, %.lr.ph1094.lr.ph.lr.ph.lr.ph ], [ %.0856.ph.be, %.outer.backedge ]
  %246 = getelementptr inbounds float, ptr %34, i64 %.0856.ph1220
  %247 = add nsw i64 %.0856.ph1220, -1
  %248 = getelementptr inbounds float, ptr %35, i64 %247
  %249 = getelementptr inbounds float, ptr %34, i64 %247
  %250 = add nuw i64 %.0856.ph1220, 1
  %251 = icmp sgt i64 %.0841.ph1223, %.pre-phi1397
  br i1 %251, label %.lr.ph1094.lr.ph.lr.ph._crit_edge, label %.lr.ph1094.preheader

.lr.ph1094.preheader:                             ; preds = %.lr.ph1094.lr.ph.lr.ph, %.outer960
  %.0845.ph96111991603 = phi i64 [ %.1846912922941, %.outer960 ], [ %.0845.ph1221, %.lr.ph1094.lr.ph.lr.ph ]
  %.0844.ph96212001602 = phi i64 [ %.0856.ph1220, %.outer960 ], [ %.0844.ph1222, %.lr.ph1094.lr.ph.lr.ph ]
  %.0841.ph96312011596 = phi i64 [ %810, %.outer960 ], [ %.0841.ph1223, %.lr.ph1094.lr.ph.lr.ph ]
  %.0834.ph96412061595 = phi i64 [ %303, %.outer960 ], [ %.0834.ph1224, %.lr.ph1094.lr.ph.lr.ph ]
  %252 = icmp slt i64 %.0856.ph1220, %.0834.ph96412061595
  br label %.lr.ph1094

.lr.ph1094:                                       ; preds = %.lr.ph1094.backedge, %.lr.ph1094.preheader
  %.08451093 = phi i64 [ %.0845.ph96111991603, %.lr.ph1094.preheader ], [ %.08451093.be, %.lr.ph1094.backedge ]
  %.pre = load float, ptr %246, align 4, !tbaa !9
  %253 = fcmp oge float %.pre, 0.000000e+00
  %254 = fneg float %.pre
  %255 = select i1 %253, float %.pre, float %254
  br i1 %237, label %.lr.ph1082.split.us, label %256

256:                                              ; preds = %.lr.ph1094
  %257 = fcmp ugt float %255, %.0830
  br i1 %257, label %.lr.ph1082.split.preheader, label %258

258:                                              ; preds = %256
  store float 0.000000e+00, ptr %246, align 4, !tbaa !9
  br label %.lr.ph1082.split.preheader

.lr.ph1082.split.preheader:                       ; preds = %258, %256
  %.ph = phi float [ %.pre, %256 ], [ 0.000000e+00, %258 ]
  %259 = fcmp oge float %.ph, 0.000000e+00
  %260 = fneg float %.ph
  %261 = select i1 %259, float %.ph, float %260
  br label %.lr.ph1082.split

.lr.ph1082.split.us:                              ; preds = %.lr.ph1094, %269
  %.28371080.us = phi float [ %278, %269 ], [ %255, %.lr.ph1094 ]
  %.08481078.us = phi i64 [ %279, %269 ], [ 1, %.lr.ph1094 ]
  %262 = sub nsw i64 %.0856.ph1220, %.08481078.us
  %263 = getelementptr inbounds float, ptr %35, i64 %262
  %264 = load float, ptr %263, align 4, !tbaa !9
  %265 = fcmp oge float %264, 0.000000e+00
  %266 = fneg float %264
  %267 = select i1 %265, float %264, float %266
  %268 = fcmp ugt float %267, %.0830
  br i1 %268, label %269, label %.split.us

269:                                              ; preds = %.lr.ph1082.split.us
  %270 = getelementptr inbounds float, ptr %34, i64 %262
  %271 = load float, ptr %270, align 4, !tbaa !9
  %272 = fcmp oge float %271, 0.000000e+00
  %273 = fneg float %271
  %274 = select i1 %272, float %271, float %273
  %275 = fcmp oge float %.28371080.us, %274
  %276 = select i1 %275, float %.28371080.us, float %274
  %277 = fcmp oge float %276, %267
  %278 = select i1 %277, float %276, float %267
  %279 = add nuw nsw i64 %.08481078.us, 1
  %exitcond1383.not = icmp eq i64 %279, %.0856.ph1220
  br i1 %exitcond1383.not, label %.loopexit958, label %.lr.ph1082.split.us, !llvm.loop !18

.lr.ph1082.split:                                 ; preds = %.lr.ph1082.split.preheader, %295
  %.28371080 = phi float [ %299, %295 ], [ %261, %.lr.ph1082.split.preheader ]
  %.08481078 = phi i64 [ %300, %295 ], [ 1, %.lr.ph1082.split.preheader ]
  %280 = sub nsw i64 %.0856.ph1220, %.08481078
  %281 = getelementptr inbounds float, ptr %34, i64 %280
  %282 = load float, ptr %281, align 4, !tbaa !9
  %283 = fcmp oge float %282, 0.000000e+00
  %284 = fneg float %282
  %285 = select i1 %283, float %282, float %284
  %286 = getelementptr inbounds float, ptr %35, i64 %280
  %287 = load float, ptr %286, align 4, !tbaa !9
  %288 = fcmp oge float %287, 0.000000e+00
  %289 = fneg float %287
  %290 = select i1 %288, float %287, float %289
  %291 = fcmp ugt float %285, %.0830
  br i1 %291, label %293, label %292

292:                                              ; preds = %.lr.ph1082.split
  store float 0.000000e+00, ptr %281, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %292, %.lr.ph1082.split
  %294 = fcmp ugt float %290, %.0830
  br i1 %294, label %295, label %.split.us

295:                                              ; preds = %293
  %296 = fcmp oge float %.28371080, %285
  %297 = select i1 %296, float %.28371080, float %285
  %298 = fcmp oge float %297, %290
  %299 = select i1 %298, float %297, float %290
  %300 = add nuw nsw i64 %.08481078, 1
  %exitcond1381.not = icmp eq i64 %300, %.0856.ph1220
  br i1 %exitcond1381.not, label %.loopexit958, label %.lr.ph1082.split, !llvm.loop !18

.split.us:                                        ; preds = %293, %.lr.ph1082.split.us
  %.us-phi = phi float [ %264, %.lr.ph1082.split.us ], [ %287, %293 ]
  %.us-phi1085 = phi i64 [ %262, %.lr.ph1082.split.us ], [ %280, %293 ]
  %.us-phi1087 = phi float [ %.28371080.us, %.lr.ph1082.split.us ], [ %.28371080, %293 ]
  %301 = getelementptr inbounds float, ptr %35, i64 %.us-phi1085
  store float 0.000000e+00, ptr %301, align 4, !tbaa !9
  %302 = icmp eq i64 %.us-phi1085, %247
  br i1 %302, label %.outer.loopexit, label %.loopexit958

.loopexit958:                                     ; preds = %295, %269, %.split.us
  %.us-phi10881095 = phi float [ %.us-phi, %.split.us ], [ %276, %269 ], [ %297, %295 ]
  %.2837971 = phi float [ %.us-phi1087, %.split.us ], [ %278, %269 ], [ %299, %295 ]
  %.0860 = phi i64 [ %.us-phi1085, %.split.us ], [ 0, %269 ], [ 0, %295 ]
  %303 = add nsw i64 %.0860, 1
  %304 = icmp eq i64 %303, %247
  br i1 %304, label %305, label %328

305:                                              ; preds = %.loopexit958
  store float %.us-phi10881095, ptr %17, align 4, !tbaa !9
  store i64 %247, ptr %16, align 8, !tbaa !5
  %306 = call i32 @slasv2_(ptr noundef nonnull %249, ptr noundef nonnull %248, ptr noundef nonnull %246, ptr noundef nonnull %31, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull %25) #6
  %307 = load float, ptr %33, align 4, !tbaa !9
  store float %307, ptr %249, align 4, !tbaa !9
  store float 0.000000e+00, ptr %248, align 4, !tbaa !9
  %308 = load float, ptr %31, align 4, !tbaa !9
  store float %308, ptr %246, align 4, !tbaa !9
  %309 = load i64, ptr %2, align 8, !tbaa !5
  %310 = icmp sgt i64 %309, 0
  br i1 %310, label %311, label %313

311:                                              ; preds = %305
  %gep1209 = getelementptr %struct.complex, ptr %invariant.gep1208, i64 %247
  %gep1211 = getelementptr %struct.complex, ptr %invariant.gep1208, i64 %.0856.ph1220
  %312 = call i32 @f2c_csrot(ptr noundef nonnull %2, ptr noundef %gep1209, ptr noundef nonnull %8, ptr noundef %gep1211, ptr noundef nonnull %8, ptr noundef nonnull %27, ptr noundef nonnull %28) #6
  br label %313

313:                                              ; preds = %311, %305
  %314 = load i64, ptr %3, align 8, !tbaa !5
  %315 = icmp sgt i64 %314, 0
  br i1 %315, label %316, label %320

316:                                              ; preds = %313
  %317 = mul nsw i64 %247, %36
  %gep1213 = getelementptr %struct.complex, ptr %invariant.gep1191, i64 %317
  %318 = mul nsw i64 %.0856.ph1220, %36
  %gep1215 = getelementptr %struct.complex, ptr %invariant.gep1191, i64 %318
  %319 = call i32 @f2c_csrot(ptr noundef nonnull %3, ptr noundef %gep1213, ptr noundef nonnull @c__1, ptr noundef %gep1215, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %26) #6
  br label %320

320:                                              ; preds = %316, %313
  %321 = load i64, ptr %4, align 8, !tbaa !5
  %322 = icmp sgt i64 %321, 0
  br i1 %322, label %323, label %325

323:                                              ; preds = %320
  %gep1217 = getelementptr %struct.complex, ptr %invariant.gep1216, i64 %247
  %gep1219 = getelementptr %struct.complex, ptr %invariant.gep1216, i64 %.0856.ph1220
  %324 = call i32 @f2c_csrot(ptr noundef nonnull %4, ptr noundef %gep1217, ptr noundef nonnull %12, ptr noundef %gep1219, ptr noundef nonnull %12, ptr noundef nonnull %25, ptr noundef nonnull %26) #6
  br label %325

325:                                              ; preds = %323, %320
  %326 = add nsw i64 %.0856.ph1220, -2
  br label %.outer.backedge

.outer.backedge:                                  ; preds = %325, %.outer.loopexit
  %.0856.ph.be = phi i64 [ %326, %325 ], [ %247, %.outer.loopexit ]
  %327 = icmp slt i64 %.0856.ph.be, 2
  br i1 %327, label %.loopexit959, label %.lr.ph1094.lr.ph.lr.ph

328:                                              ; preds = %.loopexit958
  %.not890 = icmp sge i64 %.0860, %.0844.ph96212001602
  %or.cond906 = select i1 %.not890, i1 true, i1 %252
  br i1 %or.cond906, label %329, label %340

329:                                              ; preds = %328
  %330 = getelementptr float, ptr %5, i64 %.0860
  %331 = load float, ptr %330, align 4, !tbaa !9
  %332 = fcmp oge float %331, 0.000000e+00
  %333 = fneg float %331
  %334 = select i1 %332, float %331, float %333
  %335 = load float, ptr %246, align 4, !tbaa !9
  %336 = fcmp oge float %335, 0.000000e+00
  %337 = fneg float %335
  %338 = select i1 %336, float %335, float %337
  %339 = fcmp ult float %334, %338
  br i1 %339, label %.thread914, label %.thread910

340:                                              ; preds = %328
  %341 = icmp eq i64 %.08451093, 1
  br i1 %341, label %..thread910_crit_edge, label %..thread914_crit_edge

..thread914_crit_edge:                            ; preds = %340
  %.phi.trans.insert = getelementptr float, ptr %5, i64 %.0860
  %.pre1387 = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  %.pre1398 = fneg float %.pre1387
  br label %.thread914

..thread910_crit_edge:                            ; preds = %340
  %.pre1386 = load float, ptr %246, align 4, !tbaa !9
  %.pre1400 = fneg float %.pre1386
  br label %.thread910

.thread910:                                       ; preds = %..thread910_crit_edge, %329
  %.pre-phi1401 = phi float [ %.pre1400, %..thread910_crit_edge ], [ %337, %329 ]
  %342 = phi float [ %.pre1386, %..thread910_crit_edge ], [ %335, %329 ]
  %343 = load float, ptr %248, align 4, !tbaa !9
  store float %343, ptr %18, align 4, !tbaa !9
  %344 = fcmp oge float %343, 0.000000e+00
  %345 = fneg float %343
  %346 = select i1 %344, float %343, float %345
  %347 = fpext float %346 to double
  %348 = fcmp oge float %342, 0.000000e+00
  %349 = select i1 %348, float %342, float %.pre-phi1401
  %350 = fpext float %349 to double
  %351 = fmul double %240, %350
  %352 = fcmp ult double %351, %347
  %353 = fcmp ugt float %346, %.0830
  %or.cond950 = select i1 %237, i1 true, i1 %353
  %or.cond953 = select i1 %352, i1 %or.cond950, i1 false
  br i1 %or.cond953, label %354, label %.backedge

.backedge:                                        ; preds = %.thread910, %.thread914
  %.sink1509 = phi ptr [ %385, %.thread914 ], [ %248, %.thread910 ]
  %.0845.be = phi i64 [ %.1846916, %.thread914 ], [ 1, %.thread910 ]
  store float 0.000000e+00, ptr %.sink1509, align 4, !tbaa !9
  br label %.lr.ph1094.backedge

.lr.ph1094.backedge:                              ; preds = %.backedge, %.outer966.backedge
  %.08451093.be = phi i64 [ %.0845.be, %.backedge ], [ %.0845.ph967.be, %.outer966.backedge ]
  br label %.lr.ph1094

354:                                              ; preds = %.thread910
  store i64 %247, ptr %16, align 8, !tbaa !5
  br i1 %183, label %355, label %.thread919.thread

.thread919.thread:                                ; preds = %354
  %.neg.le1091.le1153 = xor i64 %.0860, -1
  store float %241, ptr %18, align 4, !tbaa !9
  %.phi.trans.insert1389 = getelementptr float, ptr %5, i64 %.0860
  %.pre1390 = load float, ptr %.phi.trans.insert1389, align 4, !tbaa !9
  br label %446

355:                                              ; preds = %354
  %356 = getelementptr float, ptr %5, i64 %.0860
  %357 = load float, ptr %356, align 4, !tbaa !9
  %358 = fcmp oge float %357, 0.000000e+00
  %359 = fneg float %357
  %360 = select i1 %358, float %357, float %359
  %.not892.not1103 = icmp slt i64 %303, %.0856.ph1220
  br i1 %.not892.not1103, label %.lr.ph1108, label %.loopexit956.thread

.lr.ph1108:                                       ; preds = %355, %368
  %.18331106 = phi float [ %383, %368 ], [ %360, %355 ]
  %.18491105 = phi i64 [ %369, %368 ], [ %303, %355 ]
  %.18581104 = phi float [ %381, %368 ], [ %360, %355 ]
  %361 = getelementptr inbounds float, ptr %35, i64 %.18491105
  %362 = load float, ptr %361, align 4, !tbaa !9
  %363 = fcmp oge float %362, 0.000000e+00
  %364 = fneg float %362
  %365 = select i1 %363, float %362, float %364
  %366 = fmul float %131, %.18581104
  %367 = fcmp ugt float %365, %366
  br i1 %367, label %368, label %.outer966.backedge

.outer966.backedge:                               ; preds = %.lr.ph1108, %.lr.ph1131
  %storemerge = phi float [ %404, %.lr.ph1131 ], [ %362, %.lr.ph1108 ]
  %.18491105.pn = phi i64 [ %.28501128, %.lr.ph1131 ], [ %.18491105, %.lr.ph1108 ]
  %.0845.ph967.be = phi i64 [ %.1846916, %.lr.ph1131 ], [ 1, %.lr.ph1108 ]
  %.sink1510 = getelementptr inbounds float, ptr %35, i64 %.18491105.pn
  store float %storemerge, ptr %17, align 4, !tbaa !9
  store float 0.000000e+00, ptr %.sink1510, align 4, !tbaa !9
  br label %.lr.ph1094.backedge

368:                                              ; preds = %.lr.ph1108
  %369 = add i64 %.18491105, 1
  %370 = getelementptr float, ptr %5, i64 %.18491105
  %371 = load float, ptr %370, align 4, !tbaa !9
  store float %371, ptr %18, align 4, !tbaa !9
  %372 = fcmp oge float %371, 0.000000e+00
  %373 = fneg float %371
  %374 = select i1 %372, float %371, float %373
  %375 = fpext float %374 to double
  %376 = fpext float %.18581104 to double
  %377 = fpext float %365 to double
  %378 = fadd double %376, %377
  %379 = fdiv double %376, %378
  %380 = fmul double %379, %375
  %381 = fptrunc double %380 to float
  %382 = fcmp ole float %.18331106, %381
  %383 = select i1 %382, float %.18331106, float %381
  %exitcond1384.not = icmp eq i64 %369, %.0856.ph1220
  br i1 %exitcond1384.not, label %.loopexit956, label %.lr.ph1108, !llvm.loop !19

.thread914:                                       ; preds = %..thread914_crit_edge, %329
  %.pre-phi1399 = phi float [ %.pre1398, %..thread914_crit_edge ], [ %333, %329 ]
  %384 = phi float [ %.pre1387, %..thread914_crit_edge ], [ %331, %329 ]
  %.1846916 = phi i64 [ %.08451093, %..thread914_crit_edge ], [ 2, %329 ]
  %385 = getelementptr float, ptr %6, i64 %.0860
  %386 = load float, ptr %385, align 4, !tbaa !9
  store float %386, ptr %18, align 4, !tbaa !9
  %387 = fcmp oge float %386, 0.000000e+00
  %388 = fneg float %386
  %389 = select i1 %387, float %386, float %388
  %390 = fpext float %389 to double
  %391 = fcmp oge float %384, 0.000000e+00
  %392 = select i1 %391, float %384, float %.pre-phi1399
  %393 = fpext float %392 to double
  %394 = fmul double %240, %393
  %395 = fcmp ult double %394, %390
  %396 = fcmp ugt float %389, %.0830
  %or.cond952 = select i1 %237, i1 true, i1 %396
  %or.cond954 = select i1 %395, i1 %or.cond952, i1 false
  br i1 %or.cond954, label %397, label %.backedge

397:                                              ; preds = %.thread914
  store i64 %247, ptr %16, align 8, !tbaa !5
  br i1 %183, label %398, label %.thread919

398:                                              ; preds = %397
  %399 = load float, ptr %246, align 4, !tbaa !9
  %400 = fcmp oge float %399, 0.000000e+00
  %401 = fneg float %399
  %402 = select i1 %400, float %399, float %401
  store i64 %303, ptr %16, align 8, !tbaa !5
  %.not891.not1126 = icmp sgt i64 %247, %.0860
  br i1 %.not891.not1126, label %.lr.ph1131, label %.loopexit956.thread

.lr.ph1131:                                       ; preds = %398, %410
  %.21129 = phi float [ %424, %410 ], [ %402, %398 ]
  %.28501128 = phi i64 [ %425, %410 ], [ %247, %398 ]
  %.28591127 = phi float [ %422, %410 ], [ %402, %398 ]
  %403 = getelementptr inbounds float, ptr %35, i64 %.28501128
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = fcmp oge float %404, 0.000000e+00
  %406 = fneg float %404
  %407 = select i1 %405, float %404, float %406
  %408 = fmul float %131, %.28591127
  %409 = fcmp ugt float %407, %408
  br i1 %409, label %410, label %.outer966.backedge

410:                                              ; preds = %.lr.ph1131
  %411 = getelementptr inbounds float, ptr %34, i64 %.28501128
  %412 = load float, ptr %411, align 4, !tbaa !9
  store float %412, ptr %18, align 4, !tbaa !9
  %413 = fcmp oge float %412, 0.000000e+00
  %414 = fneg float %412
  %415 = select i1 %413, float %412, float %414
  %416 = fpext float %415 to double
  %417 = fpext float %.28591127 to double
  %418 = fpext float %407 to double
  %419 = fadd double %417, %418
  %420 = fdiv double %417, %419
  %421 = fmul double %420, %416
  %422 = fptrunc double %421 to float
  %423 = fcmp ole float %.21129, %422
  %424 = select i1 %423, float %.21129, float %422
  %425 = add nsw i64 %.28501128, -1
  %.not891.not = icmp sgt i64 %425, %.0860
  br i1 %.not891.not, label %.lr.ph1131, label %.loopexit956, !llvm.loop !20

.thread919:                                       ; preds = %397
  %.neg.le.le1157 = xor i64 %.0860, -1
  store float %241, ptr %18, align 4, !tbaa !9
  %.pre1388 = load float, ptr %246, align 4, !tbaa !9
  br label %452

.loopexit956.thread:                              ; preds = %355, %398
  %.ph1407 = phi float [ %357, %355 ], [ %384, %398 ]
  %.ph1408 = phi float [ %342, %355 ], [ %399, %398 ]
  %.ph1409 = phi i1 [ true, %355 ], [ false, %398 ]
  %.1846912.ph = phi i64 [ 1, %355 ], [ %.1846916, %398 ]
  %.3.ph = phi float [ %360, %355 ], [ %402, %398 ]
  %.neg10021412 = xor i64 %.0860, -1
  store float %87, ptr %17, align 4, !tbaa !9
  store float %241, ptr %18, align 4, !tbaa !9
  br label %429

.loopexit956:                                     ; preds = %368, %410
  %426 = phi float [ %384, %410 ], [ %357, %368 ]
  %427 = phi float [ %399, %410 ], [ %342, %368 ]
  %428 = phi i1 [ false, %410 ], [ true, %368 ]
  %.1846912 = phi i64 [ %.1846916, %410 ], [ 1, %368 ]
  %.3 = phi float [ %424, %410 ], [ %383, %368 ]
  %.neg1002 = xor i64 %.0860, -1
  store float %87, ptr %17, align 4, !tbaa !9
  store float %241, ptr %18, align 4, !tbaa !9
  br i1 %183, label %429, label %442

429:                                              ; preds = %.loopexit956.thread, %.loopexit956
  %.neg10021416 = phi i64 [ %.neg10021412, %.loopexit956.thread ], [ %.neg1002, %.loopexit956 ]
  %.31415 = phi float [ %.3.ph, %.loopexit956.thread ], [ %.3, %.loopexit956 ]
  %.18469121413 = phi i64 [ %.1846912.ph, %.loopexit956.thread ], [ %.1846912, %.loopexit956 ]
  %430 = phi i1 [ %.ph1409, %.loopexit956.thread ], [ %428, %.loopexit956 ]
  %431 = phi float [ %.ph1408, %.loopexit956.thread ], [ %427, %.loopexit956 ]
  %432 = phi float [ %.ph1407, %.loopexit956.thread ], [ %426, %.loopexit956 ]
  %433 = load i64, ptr %1, align 8, !tbaa !5
  %434 = sitofp i64 %433 to float
  %435 = fmul float %131, %434
  %436 = fdiv float %.31415, %.2837971
  %437 = fmul float %436, %435
  %438 = fcmp ugt float %437, %243
  br i1 %438, label %442, label %439

439:                                              ; preds = %429
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  %440 = add nsw i64 %.0841.ph96312011596, %.0856.ph1220
  %441 = add i64 %440, %.neg10021416
  br i1 %430, label %474, label %541

442:                                              ; preds = %429, %.loopexit956
  %.neg10021417 = phi i64 [ %.neg10021416, %429 ], [ %.neg1002, %.loopexit956 ]
  %.18469121414 = phi i64 [ %.18469121413, %429 ], [ %.1846912, %.loopexit956 ]
  %443 = phi i1 [ %430, %429 ], [ %428, %.loopexit956 ]
  %444 = phi float [ %431, %429 ], [ %427, %.loopexit956 ]
  %445 = phi float [ %432, %429 ], [ %426, %.loopexit956 ]
  br i1 %443, label %446, label %452

446:                                              ; preds = %.thread919.thread, %442
  %447 = phi float [ %445, %442 ], [ %.pre1390, %.thread919.thread ]
  %.neg1000 = phi i64 [ %.neg10021417, %442 ], [ %.neg.le1091.le1153, %.thread919.thread ]
  %.1846912923931 = phi i64 [ %.18469121414, %442 ], [ 1, %.thread919.thread ]
  store float %447, ptr %17, align 4, !tbaa !9
  %448 = fcmp oge float %447, 0.000000e+00
  %449 = fneg float %447
  %450 = select i1 %448, float %447, float %449
  %451 = call i32 @slas2_(ptr noundef nonnull %249, ptr noundef nonnull %248, ptr noundef nonnull %246, ptr noundef nonnull %30, ptr noundef nonnull %22) #6
  br label %460

452:                                              ; preds = %.thread919, %442
  %453 = phi float [ %.pre1388, %.thread919 ], [ %444, %442 ]
  %.neg1001 = phi i64 [ %.neg.le.le1157, %.thread919 ], [ %.neg10021417, %442 ]
  %.1846912923930 = phi i64 [ %.1846916, %.thread919 ], [ %.18469121414, %442 ]
  store float %453, ptr %17, align 4, !tbaa !9
  %454 = fcmp oge float %453, 0.000000e+00
  %455 = fneg float %453
  %456 = select i1 %454, float %453, float %455
  %457 = getelementptr float, ptr %5, i64 %.0860
  %458 = getelementptr float, ptr %6, i64 %.0860
  %gep1190 = getelementptr float, ptr %invariant.gep1189, i64 %.0860
  %459 = call i32 @slas2_(ptr noundef %457, ptr noundef %458, ptr noundef %gep1190, ptr noundef nonnull %30, ptr noundef nonnull %22) #6
  br label %460

460:                                              ; preds = %452, %446
  %.neg999 = phi i64 [ %.neg1000, %446 ], [ %.neg1001, %452 ]
  %461 = phi i1 [ true, %446 ], [ false, %452 ]
  %.1846912923929 = phi i64 [ %.1846912923931, %446 ], [ %.1846912923930, %452 ]
  %.0847 = phi float [ %450, %446 ], [ %456, %452 ]
  %462 = fcmp ogt float %.0847, 0.000000e+00
  %463 = load float, ptr %30, align 4, !tbaa !9
  br i1 %462, label %464, label %thread-pre-split932

464:                                              ; preds = %460
  %465 = fdiv float %463, %.0847
  store float %465, ptr %17, align 4, !tbaa !9
  %466 = fmul float %465, %465
  %467 = fcmp olt float %466, %87
  br i1 %467, label %.thread936, label %thread-pre-split932

.thread936:                                       ; preds = %464
  store float 0.000000e+00, ptr %30, align 4, !tbaa !9
  %468 = add nsw i64 %.0841.ph96312011596, %.0856.ph1220
  %469 = add i64 %468, %.neg999
  br i1 %461, label %474, label %541

thread-pre-split932:                              ; preds = %460, %464
  %470 = add nsw i64 %.0841.ph96312011596, %.0856.ph1220
  %471 = add i64 %470, %.neg999
  %472 = fcmp oeq float %463, 0.000000e+00
  br i1 %472, label %473, label %616

473:                                              ; preds = %thread-pre-split932
  br i1 %461, label %474, label %541

474:                                              ; preds = %439, %.thread936, %473
  %.neg998 = phi i64 [ %.neg999, %.thread936 ], [ %.neg999, %473 ], [ %.neg10021416, %439 ]
  %.1846912922942943 = phi i64 [ %.1846912923929, %.thread936 ], [ %.1846912923929, %473 ], [ %.18469121413, %439 ]
  %475 = phi i64 [ %469, %.thread936 ], [ %471, %473 ], [ %441, %439 ]
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  store float 1.000000e+00, ptr %29, align 4, !tbaa !9
  store i64 %247, ptr %16, align 8, !tbaa !5
  %.not8961184.not = icmp slt i64 %.0860, %247
  br i1 %.not8961184.not, label %.lr.ph1187, label %.._crit_edge1188_crit_edge

.._crit_edge1188_crit_edge:                       ; preds = %474
  %.pre1394 = load float, ptr %32, align 4, !tbaa !9
  br label %._crit_edge1188

.lr.ph1187:                                       ; preds = %474, %487
  %476 = phi float [ %496, %487 ], [ 1.000000e+00, %474 ]
  %.41185 = phi i64 [ %490, %487 ], [ %303, %474 ]
  %477 = getelementptr inbounds float, ptr %34, i64 %.41185
  %478 = load float, ptr %477, align 4, !tbaa !9
  %479 = fmul float %478, %476
  store float %479, ptr %17, align 4, !tbaa !9
  %480 = getelementptr inbounds float, ptr %35, i64 %.41185
  %481 = call i32 @slartg_(ptr noundef nonnull %17, ptr noundef nonnull %480, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %22) #6
  %482 = icmp sgt i64 %.41185, %303
  %.pre1393 = load float, ptr %22, align 4, !tbaa !9
  br i1 %482, label %483, label %487

483:                                              ; preds = %.lr.ph1187
  %484 = load float, ptr %32, align 4, !tbaa !9
  %485 = fmul float %484, %.pre1393
  %486 = getelementptr i8, ptr %480, i64 -4
  store float %485, ptr %486, align 4, !tbaa !9
  br label %487

487:                                              ; preds = %483, %.lr.ph1187
  %488 = load float, ptr %29, align 4, !tbaa !9
  %489 = fmul float %488, %.pre1393
  store float %489, ptr %17, align 4, !tbaa !9
  %490 = add nsw i64 %.41185, 1
  %491 = getelementptr float, ptr %5, i64 %.41185
  %492 = load float, ptr %491, align 4, !tbaa !9
  %493 = load float, ptr %24, align 4, !tbaa !9
  %494 = fmul float %492, %493
  store float %494, ptr %18, align 4, !tbaa !9
  %495 = call i32 @slartg_(ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %477) #6
  %496 = load float, ptr %23, align 4, !tbaa !9
  %497 = sub nsw i64 %.41185, %303
  %498 = getelementptr float, ptr %13, i64 %497
  store float %496, ptr %498, align 4, !tbaa !9
  %499 = load float, ptr %24, align 4, !tbaa !9
  %gep1183 = getelementptr float, ptr %invariant.gep1170, i64 %497
  store float %499, ptr %gep1183, align 4, !tbaa !9
  %500 = load float, ptr %29, align 4, !tbaa !9
  %501 = getelementptr float, ptr %498, i64 %84
  store float %500, ptr %501, align 4, !tbaa !9
  %502 = load float, ptr %32, align 4, !tbaa !9
  %503 = getelementptr float, ptr %498, i64 %85
  store float %502, ptr %503, align 4, !tbaa !9
  %504 = load i64, ptr %16, align 8, !tbaa !5
  %.not896.not = icmp slt i64 %.41185, %504
  br i1 %.not896.not, label %.lr.ph1187, label %._crit_edge1188, !llvm.loop !21

._crit_edge1188:                                  ; preds = %487, %.._crit_edge1188_crit_edge
  %505 = phi float [ %.pre1394, %.._crit_edge1188_crit_edge ], [ %502, %487 ]
  %506 = phi float [ 1.000000e+00, %.._crit_edge1188_crit_edge ], [ %500, %487 ]
  %507 = phi float [ 1.000000e+00, %.._crit_edge1188_crit_edge ], [ %496, %487 ]
  %508 = load float, ptr %246, align 4, !tbaa !9
  %509 = fmul float %508, %507
  %510 = fmul float %509, %506
  store float %510, ptr %246, align 4, !tbaa !9
  %511 = fmul float %509, %505
  store float %511, ptr %248, align 4, !tbaa !9
  %512 = load i64, ptr %2, align 8, !tbaa !5
  %513 = icmp sgt i64 %512, 0
  br i1 %513, label %514, label %520

514:                                              ; preds = %._crit_edge1188
  %515 = add i64 %250, %.neg998
  store i64 %515, ptr %16, align 8, !tbaa !5
  %516 = load i64, ptr %1, align 8, !tbaa !5
  %517 = getelementptr inbounds float, ptr %39, i64 %516
  %518 = getelementptr inbounds %struct.complex, ptr %7, i64 %.0860
  %519 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %16, ptr noundef nonnull %2, ptr noundef %13, ptr noundef nonnull %517, ptr noundef %518, ptr noundef nonnull %8) #6
  br label %520

520:                                              ; preds = %514, %._crit_edge1188
  %521 = load i64, ptr %3, align 8, !tbaa !5
  %522 = icmp sgt i64 %521, 0
  br i1 %522, label %523, label %527

523:                                              ; preds = %520
  %524 = add i64 %250, %.neg998
  store i64 %524, ptr %16, align 8, !tbaa !5
  %525 = mul nsw i64 %303, %36
  %gep1198 = getelementptr %struct.complex, ptr %invariant.gep1191, i64 %525
  %526 = call i32 @clasr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef nonnull %16, ptr noundef %244, ptr noundef %245, ptr noundef %gep1198, ptr noundef nonnull %10) #6
  br label %527

527:                                              ; preds = %523, %520
  %528 = load i64, ptr %4, align 8, !tbaa !5
  %529 = icmp sgt i64 %528, 0
  br i1 %529, label %530, label %534

530:                                              ; preds = %527
  %531 = add i64 %250, %.neg998
  store i64 %531, ptr %16, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.complex, ptr %11, i64 %.0860
  %533 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %16, ptr noundef nonnull %4, ptr noundef %244, ptr noundef %245, ptr noundef %532, ptr noundef nonnull %12) #6
  br label %534

534:                                              ; preds = %530, %527
  %535 = load float, ptr %248, align 4, !tbaa !9
  store float %535, ptr %17, align 4, !tbaa !9
  %536 = fcmp oge float %535, 0.000000e+00
  %537 = fneg float %535
  %538 = select i1 %536, float %535, float %537
  %539 = fcmp ugt float %538, %.0830
  br i1 %539, label %.outer960, label %540

540:                                              ; preds = %534
  store float 0.000000e+00, ptr %248, align 4, !tbaa !9
  br label %.outer960

541:                                              ; preds = %439, %.thread936, %473
  %.neg1003 = phi i64 [ %.neg999, %.thread936 ], [ %.neg999, %473 ], [ %.neg10021416, %439 ]
  %.1846912922942944 = phi i64 [ %.1846912923929, %.thread936 ], [ %.1846912923929, %473 ], [ %.18469121413, %439 ]
  %542 = phi i64 [ %469, %.thread936 ], [ %471, %473 ], [ %441, %439 ]
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  store float 1.000000e+00, ptr %29, align 4, !tbaa !9
  %543 = add nsw i64 %.0860, 2
  store i64 %543, ptr %16, align 8, !tbaa !5
  %.not8951177 = icmp slt i64 %.0856.ph1220, %543
  br i1 %.not8951177, label %.._crit_edge1181_crit_edge, label %.lr.ph1180

.._crit_edge1181_crit_edge:                       ; preds = %541
  %.pre1392 = load float, ptr %32, align 4, !tbaa !9
  br label %._crit_edge1181

.lr.ph1180:                                       ; preds = %541, %556
  %544 = phi float [ %564, %556 ], [ 1.000000e+00, %541 ]
  %.51178 = phi i64 [ %548, %556 ], [ %.0856.ph1220, %541 ]
  %545 = getelementptr inbounds float, ptr %34, i64 %.51178
  %546 = load float, ptr %545, align 4, !tbaa !9
  %547 = fmul float %546, %544
  store float %547, ptr %17, align 4, !tbaa !9
  %548 = add nsw i64 %.51178, -1
  %549 = getelementptr inbounds float, ptr %35, i64 %548
  %550 = call i32 @slartg_(ptr noundef nonnull %17, ptr noundef nonnull %549, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %22) #6
  %551 = icmp slt i64 %.51178, %.0856.ph1220
  %.pre1391 = load float, ptr %22, align 4, !tbaa !9
  br i1 %551, label %552, label %556

552:                                              ; preds = %.lr.ph1180
  %553 = load float, ptr %32, align 4, !tbaa !9
  %554 = fmul float %553, %.pre1391
  %555 = getelementptr inbounds float, ptr %35, i64 %.51178
  store float %554, ptr %555, align 4, !tbaa !9
  br label %556

556:                                              ; preds = %552, %.lr.ph1180
  %557 = load float, ptr %29, align 4, !tbaa !9
  %558 = fmul float %557, %.pre1391
  store float %558, ptr %17, align 4, !tbaa !9
  %559 = getelementptr inbounds float, ptr %34, i64 %548
  %560 = load float, ptr %559, align 4, !tbaa !9
  %561 = load float, ptr %24, align 4, !tbaa !9
  %562 = fmul float %560, %561
  store float %562, ptr %18, align 4, !tbaa !9
  %563 = call i32 @slartg_(ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull %545) #6
  %564 = load float, ptr %23, align 4, !tbaa !9
  %565 = sub nsw i64 %.51178, %303
  %566 = getelementptr inbounds float, ptr %39, i64 %565
  store float %564, ptr %566, align 4, !tbaa !9
  %567 = load float, ptr %24, align 4, !tbaa !9
  %568 = fneg float %567
  %569 = getelementptr float, ptr %566, i64 %83
  store float %568, ptr %569, align 4, !tbaa !9
  %570 = load float, ptr %29, align 4, !tbaa !9
  %571 = getelementptr float, ptr %566, i64 %84
  store float %570, ptr %571, align 4, !tbaa !9
  %572 = load float, ptr %32, align 4, !tbaa !9
  %573 = fneg float %572
  %574 = getelementptr float, ptr %566, i64 %85
  store float %573, ptr %574, align 4, !tbaa !9
  %575 = load i64, ptr %16, align 8, !tbaa !5
  %.not895.not = icmp sgt i64 %.51178, %575
  br i1 %.not895.not, label %.lr.ph1180, label %._crit_edge1181, !llvm.loop !22

._crit_edge1181:                                  ; preds = %556, %.._crit_edge1181_crit_edge
  %576 = phi float [ %.pre1392, %.._crit_edge1181_crit_edge ], [ %572, %556 ]
  %577 = phi float [ 1.000000e+00, %.._crit_edge1181_crit_edge ], [ %570, %556 ]
  %578 = phi float [ 1.000000e+00, %.._crit_edge1181_crit_edge ], [ %564, %556 ]
  %579 = getelementptr float, ptr %5, i64 %.0860
  %580 = load float, ptr %579, align 4, !tbaa !9
  %581 = fmul float %580, %578
  %582 = fmul float %581, %577
  store float %582, ptr %579, align 4, !tbaa !9
  %583 = fmul float %581, %576
  %584 = getelementptr float, ptr %6, i64 %.0860
  store float %583, ptr %584, align 4, !tbaa !9
  %585 = load i64, ptr %2, align 8, !tbaa !5
  %586 = icmp sgt i64 %585, 0
  br i1 %586, label %587, label %591

587:                                              ; preds = %._crit_edge1181
  %588 = add i64 %250, %.neg1003
  store i64 %588, ptr %16, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.complex, ptr %7, i64 %.0860
  %590 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %16, ptr noundef nonnull %2, ptr noundef %244, ptr noundef %245, ptr noundef %589, ptr noundef nonnull %8) #6
  br label %591

591:                                              ; preds = %587, %._crit_edge1181
  %592 = load i64, ptr %3, align 8, !tbaa !5
  %593 = icmp sgt i64 %592, 0
  br i1 %593, label %594, label %600

594:                                              ; preds = %591
  %595 = add i64 %250, %.neg1003
  store i64 %595, ptr %16, align 8, !tbaa !5
  %596 = load i64, ptr %1, align 8, !tbaa !5
  %597 = getelementptr inbounds float, ptr %39, i64 %596
  %598 = mul nsw i64 %303, %36
  %gep1196 = getelementptr %struct.complex, ptr %invariant.gep1191, i64 %598
  %599 = call i32 @clasr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %597, ptr noundef %gep1196, ptr noundef nonnull %10) #6
  br label %600

600:                                              ; preds = %594, %591
  %601 = load i64, ptr %4, align 8, !tbaa !5
  %602 = icmp sgt i64 %601, 0
  br i1 %602, label %603, label %609

603:                                              ; preds = %600
  %604 = add i64 %250, %.neg1003
  store i64 %604, ptr %16, align 8, !tbaa !5
  %605 = load i64, ptr %1, align 8, !tbaa !5
  %606 = getelementptr inbounds float, ptr %39, i64 %605
  %607 = getelementptr inbounds %struct.complex, ptr %11, i64 %.0860
  %608 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %16, ptr noundef nonnull %4, ptr noundef %13, ptr noundef nonnull %606, ptr noundef %607, ptr noundef nonnull %12) #6
  br label %609

609:                                              ; preds = %603, %600
  %610 = load float, ptr %584, align 4, !tbaa !9
  store float %610, ptr %17, align 4, !tbaa !9
  %611 = fcmp oge float %610, 0.000000e+00
  %612 = fneg float %610
  %613 = select i1 %611, float %610, float %612
  %614 = fcmp ugt float %613, %.0830
  br i1 %614, label %.outer960, label %615

615:                                              ; preds = %609
  store float 0.000000e+00, ptr %584, align 4, !tbaa !9
  br label %.outer960

616:                                              ; preds = %thread-pre-split932
  br i1 %461, label %617, label %712

617:                                              ; preds = %616
  %618 = getelementptr float, ptr %5, i64 %.0860
  %619 = load float, ptr %618, align 4, !tbaa !9
  store float %619, ptr %17, align 4, !tbaa !9
  %620 = fcmp oge float %619, 0.000000e+00
  %621 = fneg float %619
  %622 = select i1 %620, float %619, float %621
  %623 = fpext float %622 to double
  %624 = fpext float %463 to double
  %625 = fsub double %623, %624
  %626 = call double @r_sign(ptr noundef nonnull @c_b49, ptr noundef nonnull %618) #6
  %627 = load float, ptr %30, align 4, !tbaa !9
  %628 = load float, ptr %618, align 4, !tbaa !9
  %629 = fdiv float %627, %628
  %630 = fpext float %629 to double
  %631 = fadd double %626, %630
  %632 = fmul double %625, %631
  %633 = fptrunc double %632 to float
  store float %633, ptr %20, align 4, !tbaa !9
  %634 = getelementptr float, ptr %6, i64 %.0860
  %635 = load float, ptr %634, align 4, !tbaa !9
  store float %635, ptr %21, align 4, !tbaa !9
  store i64 %247, ptr %16, align 8, !tbaa !5
  %.not8941172.not = icmp slt i64 %.0860, %247
  br i1 %.not8941172.not, label %.lr.ph1175, label %._crit_edge1176

.lr.ph1175:                                       ; preds = %617, %674
  %.61173 = phi i64 [ %652, %674 ], [ %303, %617 ]
  %636 = call i32 @slartg_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull %22) #6
  %637 = icmp sgt i64 %.61173, %303
  br i1 %637, label %638, label %640

638:                                              ; preds = %.lr.ph1175
  %639 = load float, ptr %22, align 4, !tbaa !9
  %gep1169 = getelementptr float, ptr %invariant.gep1168, i64 %.61173
  store float %639, ptr %gep1169, align 4, !tbaa !9
  br label %640

640:                                              ; preds = %638, %.lr.ph1175
  %641 = load float, ptr %27, align 4, !tbaa !9
  %642 = getelementptr inbounds float, ptr %34, i64 %.61173
  %643 = load float, ptr %642, align 4, !tbaa !9
  %644 = load float, ptr %28, align 4, !tbaa !9
  %645 = getelementptr inbounds float, ptr %35, i64 %.61173
  %646 = load float, ptr %645, align 4, !tbaa !9
  %647 = fmul float %644, %646
  %648 = call float @llvm.fmuladd.f32(float %641, float %643, float %647)
  store float %648, ptr %20, align 4, !tbaa !9
  %649 = fneg float %644
  %650 = fmul float %643, %649
  %651 = call float @llvm.fmuladd.f32(float %641, float %646, float %650)
  store float %651, ptr %645, align 4, !tbaa !9
  %652 = add nsw i64 %.61173, 1
  %653 = getelementptr float, ptr %5, i64 %.61173
  %654 = load float, ptr %653, align 4, !tbaa !9
  %655 = fmul float %644, %654
  store float %655, ptr %21, align 4, !tbaa !9
  %656 = fmul float %641, %654
  store float %656, ptr %653, align 4, !tbaa !9
  %657 = call i32 @slartg_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull %22) #6
  %658 = load float, ptr %22, align 4, !tbaa !9
  store float %658, ptr %642, align 4, !tbaa !9
  %659 = load float, ptr %25, align 4, !tbaa !9
  %660 = load float, ptr %645, align 4, !tbaa !9
  %661 = load float, ptr %26, align 4, !tbaa !9
  %662 = load float, ptr %653, align 4, !tbaa !9
  %663 = fmul float %661, %662
  %664 = call float @llvm.fmuladd.f32(float %659, float %660, float %663)
  store float %664, ptr %20, align 4, !tbaa !9
  %665 = fneg float %661
  %666 = fmul float %660, %665
  %667 = call float @llvm.fmuladd.f32(float %659, float %662, float %666)
  store float %667, ptr %653, align 4, !tbaa !9
  %668 = icmp slt i64 %.61173, %247
  br i1 %668, label %669, label %674

669:                                              ; preds = %640
  %670 = getelementptr float, ptr %6, i64 %.61173
  %671 = load float, ptr %670, align 4, !tbaa !9
  %672 = fmul float %661, %671
  store float %672, ptr %21, align 4, !tbaa !9
  %673 = fmul float %659, %671
  store float %673, ptr %670, align 4, !tbaa !9
  br label %674

674:                                              ; preds = %669, %640
  %675 = load float, ptr %27, align 4, !tbaa !9
  %676 = sub nsw i64 %.61173, %303
  %677 = getelementptr float, ptr %13, i64 %676
  store float %675, ptr %677, align 4, !tbaa !9
  %678 = load float, ptr %28, align 4, !tbaa !9
  %gep1171 = getelementptr float, ptr %invariant.gep1170, i64 %676
  store float %678, ptr %gep1171, align 4, !tbaa !9
  %679 = getelementptr float, ptr %677, i64 %84
  store float %659, ptr %679, align 4, !tbaa !9
  %680 = getelementptr float, ptr %677, i64 %85
  store float %661, ptr %680, align 4, !tbaa !9
  %681 = load i64, ptr %16, align 8, !tbaa !5
  %.not894.not = icmp slt i64 %.61173, %681
  br i1 %.not894.not, label %.lr.ph1175, label %._crit_edge1176, !llvm.loop !23

._crit_edge1176:                                  ; preds = %674, %617
  %682 = phi float [ %633, %617 ], [ %664, %674 ]
  store float %682, ptr %248, align 4, !tbaa !9
  %683 = load i64, ptr %2, align 8, !tbaa !5
  %684 = icmp sgt i64 %683, 0
  br i1 %684, label %685, label %691

685:                                              ; preds = %._crit_edge1176
  %686 = add i64 %250, %.neg999
  store i64 %686, ptr %16, align 8, !tbaa !5
  %687 = load i64, ptr %1, align 8, !tbaa !5
  %688 = getelementptr inbounds float, ptr %39, i64 %687
  %689 = getelementptr inbounds %struct.complex, ptr %7, i64 %.0860
  %690 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %16, ptr noundef nonnull %2, ptr noundef %13, ptr noundef nonnull %688, ptr noundef %689, ptr noundef nonnull %8) #6
  br label %691

691:                                              ; preds = %685, %._crit_edge1176
  %692 = load i64, ptr %3, align 8, !tbaa !5
  %693 = icmp sgt i64 %692, 0
  br i1 %693, label %694, label %698

694:                                              ; preds = %691
  %695 = add i64 %250, %.neg999
  store i64 %695, ptr %16, align 8, !tbaa !5
  %696 = mul nsw i64 %303, %36
  %gep1194 = getelementptr %struct.complex, ptr %invariant.gep1191, i64 %696
  %697 = call i32 @clasr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef nonnull %16, ptr noundef %244, ptr noundef %245, ptr noundef %gep1194, ptr noundef nonnull %10) #6
  br label %698

698:                                              ; preds = %694, %691
  %699 = load i64, ptr %4, align 8, !tbaa !5
  %700 = icmp sgt i64 %699, 0
  br i1 %700, label %701, label %705

701:                                              ; preds = %698
  %702 = add i64 %250, %.neg999
  store i64 %702, ptr %16, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.complex, ptr %11, i64 %.0860
  %704 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %16, ptr noundef nonnull %4, ptr noundef %244, ptr noundef %245, ptr noundef %703, ptr noundef nonnull %12) #6
  br label %705

705:                                              ; preds = %701, %698
  %706 = load float, ptr %248, align 4, !tbaa !9
  store float %706, ptr %17, align 4, !tbaa !9
  %707 = fcmp oge float %706, 0.000000e+00
  %708 = fneg float %706
  %709 = select i1 %707, float %706, float %708
  %710 = fcmp ugt float %709, %.0830
  br i1 %710, label %.outer960, label %711

711:                                              ; preds = %705
  store float 0.000000e+00, ptr %248, align 4, !tbaa !9
  br label %.outer960

712:                                              ; preds = %616
  %713 = load float, ptr %246, align 4, !tbaa !9
  store float %713, ptr %17, align 4, !tbaa !9
  %714 = fcmp oge float %713, 0.000000e+00
  %715 = fneg float %713
  %716 = select i1 %714, float %713, float %715
  %717 = fpext float %716 to double
  %718 = fpext float %463 to double
  %719 = fsub double %717, %718
  %720 = call double @r_sign(ptr noundef nonnull @c_b49, ptr noundef nonnull %246) #6
  %721 = load float, ptr %30, align 4, !tbaa !9
  %722 = load float, ptr %246, align 4, !tbaa !9
  %723 = fdiv float %721, %722
  %724 = fpext float %723 to double
  %725 = fadd double %720, %724
  %726 = fmul double %719, %725
  %727 = fptrunc double %726 to float
  store float %727, ptr %20, align 4, !tbaa !9
  %728 = load float, ptr %248, align 4, !tbaa !9
  store float %728, ptr %21, align 4, !tbaa !9
  %729 = add nsw i64 %.0860, 2
  store i64 %729, ptr %16, align 8, !tbaa !5
  %.not8931163 = icmp slt i64 %.0856.ph1220, %729
  br i1 %.not8931163, label %._crit_edge1167, label %.lr.ph1166

.lr.ph1166:                                       ; preds = %712, %768
  %.71164 = phi i64 [ %740, %768 ], [ %.0856.ph1220, %712 ]
  %730 = call i32 @slartg_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull %22) #6
  %731 = icmp slt i64 %.71164, %.0856.ph1220
  br i1 %731, label %732, label %735

732:                                              ; preds = %.lr.ph1166
  %733 = load float, ptr %22, align 4, !tbaa !9
  %734 = getelementptr inbounds float, ptr %35, i64 %.71164
  store float %733, ptr %734, align 4, !tbaa !9
  br label %735

735:                                              ; preds = %732, %.lr.ph1166
  %736 = load float, ptr %27, align 4, !tbaa !9
  %737 = getelementptr inbounds float, ptr %34, i64 %.71164
  %738 = load float, ptr %737, align 4, !tbaa !9
  %739 = load float, ptr %28, align 4, !tbaa !9
  %740 = add nsw i64 %.71164, -1
  %741 = getelementptr inbounds float, ptr %35, i64 %740
  %742 = load float, ptr %741, align 4, !tbaa !9
  %743 = fmul float %739, %742
  %744 = call float @llvm.fmuladd.f32(float %736, float %738, float %743)
  store float %744, ptr %20, align 4, !tbaa !9
  %745 = fneg float %739
  %746 = fmul float %738, %745
  %747 = call float @llvm.fmuladd.f32(float %736, float %742, float %746)
  store float %747, ptr %741, align 4, !tbaa !9
  %748 = getelementptr inbounds float, ptr %34, i64 %740
  %749 = load float, ptr %748, align 4, !tbaa !9
  %750 = fmul float %739, %749
  store float %750, ptr %21, align 4, !tbaa !9
  %751 = fmul float %736, %749
  store float %751, ptr %748, align 4, !tbaa !9
  %752 = call i32 @slartg_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull %22) #6
  %753 = load float, ptr %22, align 4, !tbaa !9
  store float %753, ptr %737, align 4, !tbaa !9
  %754 = load float, ptr %25, align 4, !tbaa !9
  %755 = load float, ptr %741, align 4, !tbaa !9
  %756 = load float, ptr %26, align 4, !tbaa !9
  %757 = load float, ptr %748, align 4, !tbaa !9
  %758 = fmul float %756, %757
  %759 = call float @llvm.fmuladd.f32(float %754, float %755, float %758)
  store float %759, ptr %20, align 4, !tbaa !9
  %760 = fneg float %756
  %761 = fmul float %755, %760
  %762 = call float @llvm.fmuladd.f32(float %754, float %757, float %761)
  store float %762, ptr %748, align 4, !tbaa !9
  %763 = icmp sgt i64 %.71164, %729
  br i1 %763, label %764, label %768

764:                                              ; preds = %735
  %gep1162 = getelementptr float, ptr %invariant.gep1161, i64 %.71164
  %765 = load float, ptr %gep1162, align 4, !tbaa !9
  %766 = fmul float %756, %765
  store float %766, ptr %21, align 4, !tbaa !9
  %767 = fmul float %754, %765
  store float %767, ptr %gep1162, align 4, !tbaa !9
  br label %768

768:                                              ; preds = %764, %735
  %769 = load float, ptr %27, align 4, !tbaa !9
  %770 = sub nsw i64 %.71164, %303
  %771 = getelementptr inbounds float, ptr %39, i64 %770
  store float %769, ptr %771, align 4, !tbaa !9
  %772 = load float, ptr %28, align 4, !tbaa !9
  %773 = fneg float %772
  %774 = getelementptr float, ptr %771, i64 %83
  store float %773, ptr %774, align 4, !tbaa !9
  %775 = getelementptr float, ptr %771, i64 %84
  store float %754, ptr %775, align 4, !tbaa !9
  %776 = getelementptr float, ptr %771, i64 %85
  store float %760, ptr %776, align 4, !tbaa !9
  %777 = load i64, ptr %16, align 8, !tbaa !5
  %.not893.not = icmp sgt i64 %.71164, %777
  br i1 %.not893.not, label %.lr.ph1166, label %._crit_edge1167, !llvm.loop !24

._crit_edge1167:                                  ; preds = %768, %712
  %778 = phi float [ %727, %712 ], [ %759, %768 ]
  %779 = getelementptr float, ptr %6, i64 %.0860
  store float %778, ptr %779, align 4, !tbaa !9
  store float %778, ptr %17, align 4, !tbaa !9
  %780 = fcmp oge float %778, 0.000000e+00
  %781 = fneg float %778
  %782 = select i1 %780, float %778, float %781
  %783 = fcmp ugt float %782, %.0830
  br i1 %783, label %785, label %784

784:                                              ; preds = %._crit_edge1167
  store float 0.000000e+00, ptr %779, align 4, !tbaa !9
  br label %785

785:                                              ; preds = %784, %._crit_edge1167
  %786 = load i64, ptr %2, align 8, !tbaa !5
  %787 = icmp sgt i64 %786, 0
  br i1 %787, label %788, label %792

788:                                              ; preds = %785
  %789 = add i64 %250, %.neg999
  store i64 %789, ptr %16, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.complex, ptr %7, i64 %.0860
  %791 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %16, ptr noundef nonnull %2, ptr noundef %244, ptr noundef %245, ptr noundef %790, ptr noundef nonnull %8) #6
  br label %792

792:                                              ; preds = %788, %785
  %793 = load i64, ptr %3, align 8, !tbaa !5
  %794 = icmp sgt i64 %793, 0
  br i1 %794, label %795, label %801

795:                                              ; preds = %792
  %796 = add i64 %250, %.neg999
  store i64 %796, ptr %16, align 8, !tbaa !5
  %797 = load i64, ptr %1, align 8, !tbaa !5
  %798 = getelementptr inbounds float, ptr %39, i64 %797
  %799 = mul nsw i64 %303, %36
  %gep1192 = getelementptr %struct.complex, ptr %invariant.gep1191, i64 %799
  %800 = call i32 @clasr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %798, ptr noundef %gep1192, ptr noundef nonnull %10) #6
  br label %801

801:                                              ; preds = %795, %792
  %802 = load i64, ptr %4, align 8, !tbaa !5
  %803 = icmp sgt i64 %802, 0
  br i1 %803, label %804, label %.outer960

804:                                              ; preds = %801
  %805 = add i64 %250, %.neg999
  store i64 %805, ptr %16, align 8, !tbaa !5
  %806 = load i64, ptr %1, align 8, !tbaa !5
  %807 = getelementptr inbounds float, ptr %39, i64 %806
  %808 = getelementptr inbounds %struct.complex, ptr %11, i64 %.0860
  %809 = call i32 @clasr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %16, ptr noundef nonnull %4, ptr noundef %13, ptr noundef nonnull %807, ptr noundef %808, ptr noundef nonnull %12) #6
  br label %.outer960

.outer960:                                        ; preds = %711, %705, %804, %801, %540, %534, %615, %609
  %810 = phi i64 [ %471, %711 ], [ %471, %705 ], [ %471, %804 ], [ %471, %801 ], [ %475, %540 ], [ %475, %534 ], [ %542, %615 ], [ %542, %609 ]
  %.1846912922941 = phi i64 [ %.1846912923929, %711 ], [ %.1846912923929, %705 ], [ %.1846912923929, %804 ], [ %.1846912923929, %801 ], [ %.1846912922942943, %540 ], [ %.1846912922942943, %534 ], [ %.1846912922942944, %615 ], [ %.1846912922942944, %609 ]
  %811 = icmp sgt i64 %810, %.pre-phi1397
  br i1 %811, label %.lr.ph1094.lr.ph.lr.ph._crit_edge, label %.lr.ph1094.preheader

.loopexit959:                                     ; preds = %.outer.backedge, %234, %77
  %812 = load i64, ptr %1, align 8, !tbaa !5
  store i64 %812, ptr %16, align 8, !tbaa !5
  %invariant.gep1230 = getelementptr i8, ptr %7, i64 -8
  %.not8981232 = icmp slt i64 %812, 1
  br i1 %.not8981232, label %.loopexit, label %.lr.ph1235

.lr.ph1235:                                       ; preds = %.loopexit959, %823
  %813 = phi i64 [ %824, %823 ], [ %812, %.loopexit959 ]
  %.81233 = phi i64 [ %825, %823 ], [ 1, %.loopexit959 ]
  %814 = getelementptr inbounds float, ptr %34, i64 %.81233
  %815 = load float, ptr %814, align 4, !tbaa !9
  %816 = fcmp olt float %815, 0.000000e+00
  br i1 %816, label %817, label %823

817:                                              ; preds = %.lr.ph1235
  %818 = fneg float %815
  store float %818, ptr %814, align 4, !tbaa !9
  %819 = load i64, ptr %2, align 8, !tbaa !5
  %820 = icmp sgt i64 %819, 0
  br i1 %820, label %821, label %823

821:                                              ; preds = %817
  %gep1231 = getelementptr %struct.complex, ptr %invariant.gep1230, i64 %.81233
  %822 = call i32 @f2c_csscal(ptr noundef nonnull %2, ptr noundef nonnull @c_b72, ptr noundef %gep1231, ptr noundef nonnull %8) #6
  %.pre1395 = load i64, ptr %16, align 8, !tbaa !5
  br label %823

823:                                              ; preds = %.lr.ph1235, %821, %817
  %824 = phi i64 [ %813, %.lr.ph1235 ], [ %.pre1395, %821 ], [ %813, %817 ]
  %825 = add nuw nsw i64 %.81233, 1
  %.not898.not = icmp slt i64 %.81233, %824
  br i1 %.not898.not, label %.lr.ph1235, label %._crit_edge1236, !llvm.loop !25

._crit_edge1236:                                  ; preds = %823
  %.pre1396 = load i64, ptr %1, align 8, !tbaa !5
  %826 = add nsw i64 %.pre1396, -1
  store i64 %826, ptr %16, align 8, !tbaa !5
  %invariant.gep1250 = getelementptr i8, ptr %38, i64 8
  %invariant.gep1254 = getelementptr i8, ptr %11, i64 -8
  %.not8991258 = icmp slt i64 %.pre1396, 2
  br i1 %.not8991258, label %.loopexit, label %.lr.ph1262

.lr.ph1262:                                       ; preds = %._crit_edge1236, %868
  %indvar = phi i64 [ %indvar.next, %868 ], [ 0, %._crit_edge1236 ]
  %.9.neg1260 = phi i64 [ %.9.neg, %868 ], [ -1, %._crit_edge1236 ]
  %.91259 = phi i64 [ %869, %868 ], [ 1, %._crit_edge1236 ]
  %827 = load float, ptr %5, align 4, !tbaa !9
  %828 = load i64, ptr %1, align 8, !tbaa !5
  %829 = add nsw i64 %.9.neg1260, 1
  %830 = add i64 %829, %828
  %.not9001237 = icmp slt i64 %830, 2
  br i1 %.not9001237, label %._crit_edge1243, label %.lr.ph1242.preheader

.lr.ph1242.preheader:                             ; preds = %.lr.ph1262
  %831 = add i64 %828, %.9.neg1260
  %reass.sub = sub i64 %828, %indvar
  %xtraiter1706 = and i64 %831, 1
  %832 = icmp eq i64 %reass.sub, 2
  br i1 %832, label %._crit_edge1243.loopexit.unr-lcssa, label %.lr.ph1242.preheader.new

.lr.ph1242.preheader.new:                         ; preds = %.lr.ph1242.preheader
  %unroll_iter1710 = and i64 %831, -2
  br label %.lr.ph1242

.lr.ph1242:                                       ; preds = %.lr.ph1242, %.lr.ph1242.preheader.new
  %.18391240 = phi float [ %827, %.lr.ph1242.preheader.new ], [ %.2840.1, %.lr.ph1242 ]
  %.08421239 = phi i64 [ 1, %.lr.ph1242.preheader.new ], [ %.1843.1, %.lr.ph1242 ]
  %.08551238 = phi i64 [ 2, %.lr.ph1242.preheader.new ], [ %840, %.lr.ph1242 ]
  %niter1711 = phi i64 [ 0, %.lr.ph1242.preheader.new ], [ %niter1711.next.1, %.lr.ph1242 ]
  %833 = getelementptr inbounds float, ptr %34, i64 %.08551238
  %834 = load float, ptr %833, align 4, !tbaa !9
  %835 = fcmp ugt float %834, %.18391240
  %.1843 = select i1 %835, i64 %.08421239, i64 %.08551238
  %.2840 = select i1 %835, float %.18391240, float %834
  %836 = or disjoint i64 %.08551238, 1
  %837 = getelementptr float, ptr %5, i64 %.08551238
  %838 = load float, ptr %837, align 4, !tbaa !9
  %839 = fcmp ugt float %838, %.2840
  %.1843.1 = select i1 %839, i64 %.1843, i64 %836
  %.2840.1 = select i1 %839, float %.2840, float %838
  %840 = add nuw nsw i64 %.08551238, 2
  %niter1711.next.1 = add i64 %niter1711, 2
  %niter1711.ncmp.1.not = icmp eq i64 %niter1711.next.1, %unroll_iter1710
  br i1 %niter1711.ncmp.1.not, label %._crit_edge1243.loopexit.unr-lcssa, label %.lr.ph1242, !llvm.loop !26

._crit_edge1243.loopexit.unr-lcssa:               ; preds = %.lr.ph1242, %.lr.ph1242.preheader
  %.1843.lcssa.ph = phi i64 [ poison, %.lr.ph1242.preheader ], [ %.1843.1, %.lr.ph1242 ]
  %.2840.lcssa.ph = phi float [ poison, %.lr.ph1242.preheader ], [ %.2840.1, %.lr.ph1242 ]
  %.18391240.unr = phi float [ %827, %.lr.ph1242.preheader ], [ %.2840.1, %.lr.ph1242 ]
  %.08421239.unr = phi i64 [ 1, %.lr.ph1242.preheader ], [ %.1843.1, %.lr.ph1242 ]
  %.08551238.unr = phi i64 [ 2, %.lr.ph1242.preheader ], [ %840, %.lr.ph1242 ]
  %lcmp.mod1707.not = icmp eq i64 %xtraiter1706, 0
  br i1 %lcmp.mod1707.not, label %._crit_edge1243, label %.lr.ph1242.epil

.lr.ph1242.epil:                                  ; preds = %._crit_edge1243.loopexit.unr-lcssa
  %841 = getelementptr inbounds float, ptr %34, i64 %.08551238.unr
  %842 = load float, ptr %841, align 4, !tbaa !9
  %843 = fcmp ugt float %842, %.18391240.unr
  %.1843.epil = select i1 %843, i64 %.08421239.unr, i64 %.08551238.unr
  %.2840.epil = select i1 %843, float %.18391240.unr, float %842
  br label %._crit_edge1243

._crit_edge1243:                                  ; preds = %.lr.ph1242.epil, %._crit_edge1243.loopexit.unr-lcssa, %.lr.ph1262
  %.0842.lcssa = phi i64 [ 1, %.lr.ph1262 ], [ %.1843.lcssa.ph, %._crit_edge1243.loopexit.unr-lcssa ], [ %.1843.epil, %.lr.ph1242.epil ]
  %.1839.lcssa = phi float [ %827, %.lr.ph1262 ], [ %.2840.lcssa.ph, %._crit_edge1243.loopexit.unr-lcssa ], [ %.2840.epil, %.lr.ph1242.epil ]
  %.not901 = icmp eq i64 %.0842.lcssa, %830
  br i1 %.not901, label %868, label %844

844:                                              ; preds = %._crit_edge1243
  %845 = getelementptr inbounds float, ptr %34, i64 %830
  %846 = load float, ptr %845, align 4, !tbaa !9
  %847 = getelementptr inbounds float, ptr %34, i64 %.0842.lcssa
  store float %846, ptr %847, align 4, !tbaa !9
  store float %.1839.lcssa, ptr %845, align 4, !tbaa !9
  %848 = load i64, ptr %2, align 8, !tbaa !5
  %849 = icmp sgt i64 %848, 0
  br i1 %849, label %850, label %852

850:                                              ; preds = %844
  %gep1247 = getelementptr %struct.complex, ptr %invariant.gep1230, i64 %.0842.lcssa
  %gep1249 = getelementptr %struct.complex, ptr %invariant.gep1230, i64 %830
  %851 = call i32 @f2c_cswap(ptr noundef nonnull %2, ptr noundef %gep1247, ptr noundef nonnull %8, ptr noundef %gep1249, ptr noundef nonnull %8) #6
  br label %852

852:                                              ; preds = %850, %844
  %853 = load i64, ptr %3, align 8, !tbaa !5
  %854 = icmp sgt i64 %853, 0
  br i1 %854, label %855, label %861

855:                                              ; preds = %852
  %856 = mul nsw i64 %.0842.lcssa, %36
  %gep1251 = getelementptr %struct.complex, ptr %invariant.gep1250, i64 %856
  %857 = load i64, ptr %1, align 8, !tbaa !5
  %858 = add i64 %829, %857
  %859 = mul nsw i64 %858, %36
  %gep1253 = getelementptr %struct.complex, ptr %invariant.gep1250, i64 %859
  %860 = call i32 @f2c_cswap(ptr noundef nonnull %3, ptr noundef %gep1251, ptr noundef nonnull @c__1, ptr noundef %gep1253, ptr noundef nonnull @c__1) #6
  br label %861

861:                                              ; preds = %855, %852
  %862 = load i64, ptr %4, align 8, !tbaa !5
  %863 = icmp sgt i64 %862, 0
  br i1 %863, label %864, label %868

864:                                              ; preds = %861
  %gep1255 = getelementptr %struct.complex, ptr %invariant.gep1254, i64 %.0842.lcssa
  %865 = load i64, ptr %1, align 8, !tbaa !5
  %866 = getelementptr %struct.complex, ptr %11, i64 %.9.neg1260
  %gep1257 = getelementptr %struct.complex, ptr %866, i64 %865
  %867 = call i32 @f2c_cswap(ptr noundef nonnull %4, ptr noundef %gep1255, ptr noundef nonnull %12, ptr noundef %gep1257, ptr noundef nonnull %12) #6
  br label %868

868:                                              ; preds = %._crit_edge1243, %864, %861
  %869 = add nuw nsw i64 %.91259, 1
  %.9.neg = xor i64 %.91259, -1
  %870 = load i64, ptr %16, align 8, !tbaa !5
  %.not899.not = icmp slt i64 %.91259, %870
  %indvar.next = add i64 %indvar, 1
  br i1 %.not899.not, label %.lr.ph1262, label %.loopexit, !llvm.loop !27

.lr.ph1094.lr.ph.lr.ph._crit_edge:                ; preds = %.lr.ph1094.lr.ph.lr.ph, %.outer960
  store i64 0, ptr %14, align 8, !tbaa !5
  %871 = load i64, ptr %1, align 8, !tbaa !5
  %.not897.not1226 = icmp sgt i64 %871, 1
  br i1 %.not897.not1226, label %.lr.ph1229.preheader, label %.loopexit

.lr.ph1229.preheader:                             ; preds = %.lr.ph1094.lr.ph.lr.ph._crit_edge
  %872 = add nsw i64 %871, -1
  %xtraiter1702 = and i64 %872, 1
  %873 = icmp eq i64 %871, 2
  br i1 %873, label %.loopexit.loopexit1604.unr-lcssa, label %.lr.ph1229.preheader.new

.lr.ph1229.preheader.new:                         ; preds = %.lr.ph1229.preheader
  %unroll_iter1704 = and i64 %872, -2
  br label %.lr.ph1229

.lr.ph1229:                                       ; preds = %886, %.lr.ph1229.preheader.new
  %874 = phi i64 [ 0, %.lr.ph1229.preheader.new ], [ %887, %886 ]
  %.101227 = phi i64 [ 1, %.lr.ph1229.preheader.new ], [ %888, %886 ]
  %niter1705 = phi i64 [ 0, %.lr.ph1229.preheader.new ], [ %niter1705.next.1, %886 ]
  %875 = getelementptr inbounds float, ptr %35, i64 %.101227
  %876 = load float, ptr %875, align 4, !tbaa !9
  %877 = fcmp une float %876, 0.000000e+00
  br i1 %877, label %878, label %.lr.ph1229.1

878:                                              ; preds = %.lr.ph1229
  %879 = add nsw i64 %874, 1
  store i64 %879, ptr %14, align 8, !tbaa !5
  br label %.lr.ph1229.1

.lr.ph1229.1:                                     ; preds = %.lr.ph1229, %878
  %880 = phi i64 [ %874, %.lr.ph1229 ], [ %879, %878 ]
  %881 = getelementptr float, ptr %6, i64 %.101227
  %882 = load float, ptr %881, align 4, !tbaa !9
  %883 = fcmp une float %882, 0.000000e+00
  br i1 %883, label %884, label %886

884:                                              ; preds = %.lr.ph1229.1
  %885 = add nsw i64 %880, 1
  store i64 %885, ptr %14, align 8, !tbaa !5
  br label %886

886:                                              ; preds = %884, %.lr.ph1229.1
  %887 = phi i64 [ %880, %.lr.ph1229.1 ], [ %885, %884 ]
  %888 = add nuw nsw i64 %.101227, 2
  %niter1705.next.1 = add i64 %niter1705, 2
  %niter1705.ncmp.1 = icmp eq i64 %niter1705.next.1, %unroll_iter1704
  br i1 %niter1705.ncmp.1, label %.loopexit.loopexit1604.unr-lcssa.loopexit, label %.lr.ph1229, !llvm.loop !28

.loopexit.loopexit1604.unr-lcssa.loopexit:        ; preds = %886
  %889 = add nsw i64 %887, 1
  br label %.loopexit.loopexit1604.unr-lcssa

.loopexit.loopexit1604.unr-lcssa:                 ; preds = %.loopexit.loopexit1604.unr-lcssa.loopexit, %.lr.ph1229.preheader
  %.unr = phi i64 [ 1, %.lr.ph1229.preheader ], [ %889, %.loopexit.loopexit1604.unr-lcssa.loopexit ]
  %.101227.unr = phi i64 [ 1, %.lr.ph1229.preheader ], [ %888, %.loopexit.loopexit1604.unr-lcssa.loopexit ]
  %lcmp.mod1703.not = icmp eq i64 %xtraiter1702, 0
  br i1 %lcmp.mod1703.not, label %.loopexit, label %.lr.ph1229.epil

.lr.ph1229.epil:                                  ; preds = %.loopexit.loopexit1604.unr-lcssa
  %890 = getelementptr inbounds float, ptr %35, i64 %.101227.unr
  %891 = load float, ptr %890, align 4, !tbaa !9
  %892 = fcmp une float %891, 0.000000e+00
  br i1 %892, label %893, label %.loopexit

893:                                              ; preds = %.lr.ph1229.epil
  store i64 %.unr, ptr %14, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit1604.unr-lcssa, %893, %.lr.ph1229.epil, %868, %.loopexit959, %.lr.ph1094.lr.ph.lr.ph._crit_edge, %._crit_edge1236, %77, %81, %.thread908
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare double @pow_dd(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

declare double @r_sign(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !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 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}


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