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

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

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

103:                                              ; preds = %16
  %104 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -1, ptr %104, align 4, !tbaa !9
  br label %184

105:                                              ; preds = %16
  %106 = load ptr, ptr %18, align 8, !tbaa !5
  %107 = load i32, ptr %106, align 4, !tbaa !9
  %108 = load ptr, ptr %17, align 8, !tbaa !5
  %109 = load i32, ptr %108, align 4, !tbaa !9
  %110 = load ptr, ptr %19, align 8, !tbaa !5
  %111 = load i32, ptr %110, align 4, !tbaa !9
  %112 = sub nsw i32 %109, %111
  %113 = icmp slt i32 %107, %112
  br i1 %113, label %126, label %114

114:                                              ; preds = %105
  %115 = load ptr, ptr %17, align 8, !tbaa !5
  %116 = load i32, ptr %115, align 4, !tbaa !9
  %117 = load ptr, ptr %18, align 8, !tbaa !5
  %118 = load i32, ptr %117, align 4, !tbaa !9
  %119 = sub nsw i32 %116, %118
  %120 = load ptr, ptr %17, align 8, !tbaa !5
  %121 = load i32, ptr %120, align 4, !tbaa !9
  %122 = load ptr, ptr %19, align 8, !tbaa !5
  %123 = load i32, ptr %122, align 4, !tbaa !9
  %124 = sub nsw i32 %121, %123
  %125 = icmp slt i32 %119, %124
  br i1 %125, label %126, label %128

126:                                              ; preds = %114, %105
  %127 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -2, ptr %127, align 4, !tbaa !9
  br label %183

128:                                              ; preds = %114
  %129 = load ptr, ptr %19, align 8, !tbaa !5
  %130 = load i32, ptr %129, align 4, !tbaa !9
  %131 = load ptr, ptr %17, align 8, !tbaa !5
  %132 = load i32, ptr %131, align 4, !tbaa !9
  %133 = load ptr, ptr %19, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  %135 = sub nsw i32 %132, %134
  %136 = icmp slt i32 %130, %135
  br i1 %136, label %143, label %137

137:                                              ; preds = %128
  %138 = load ptr, ptr %19, align 8, !tbaa !5
  %139 = load i32, ptr %138, align 4, !tbaa !9
  %140 = load ptr, ptr %17, align 8, !tbaa !5
  %141 = load i32, ptr %140, align 4, !tbaa !9
  %142 = icmp sgt i32 %139, %141
  br i1 %142, label %143, label %145

143:                                              ; preds = %137, %128
  %144 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -3, ptr %144, align 4, !tbaa !9
  br label %182

145:                                              ; preds = %137
  %146 = load ptr, ptr %21, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = load ptr, ptr %18, align 8, !tbaa !5
  %149 = load i32, ptr %148, align 4, !tbaa !9
  %150 = icmp sge i32 1, %149
  br i1 %150, label %151, label %152

151:                                              ; preds = %145
  br label %155

152:                                              ; preds = %145
  %153 = load ptr, ptr %18, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  br label %155

155:                                              ; preds = %152, %151
  %156 = phi i32 [ 1, %151 ], [ %154, %152 ]
  %157 = icmp slt i32 %147, %156
  br i1 %157, label %158, label %160

158:                                              ; preds = %155
  %159 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -5, ptr %159, align 4, !tbaa !9
  br label %181

160:                                              ; preds = %155
  store i32 1, ptr %37, align 4, !tbaa !9
  %161 = load ptr, ptr %17, align 8, !tbaa !5
  %162 = load i32, ptr %161, align 4, !tbaa !9
  %163 = load ptr, ptr %18, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = sub nsw i32 %162, %164
  store i32 %165, ptr %38, align 4, !tbaa !9
  %166 = load ptr, ptr %23, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = load i32, ptr %37, align 4, !tbaa !9
  %169 = load i32, ptr %38, align 4, !tbaa !9
  %170 = icmp sge i32 %168, %169
  br i1 %170, label %171, label %173

171:                                              ; preds = %160
  %172 = load i32, ptr %37, align 4, !tbaa !9
  br label %175

173:                                              ; preds = %160
  %174 = load i32, ptr %38, align 4, !tbaa !9
  br label %175

175:                                              ; preds = %173, %171
  %176 = phi i32 [ %172, %171 ], [ %174, %173 ]
  %177 = icmp slt i32 %167, %176
  br i1 %177, label %178, label %180

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

180:                                              ; preds = %178, %175
  br label %181

181:                                              ; preds = %180, %158
  br label %182

182:                                              ; preds = %181, %143
  br label %183

183:                                              ; preds = %182, %126
  br label %184

184:                                              ; preds = %183, %103
  %185 = load ptr, ptr %32, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = icmp eq i32 %186, 0
  br i1 %187, label %188, label %258

188:                                              ; preds = %184
  store i32 2, ptr %50, align 4, !tbaa !9
  %189 = load ptr, ptr %19, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = sub nsw i32 %190, 1
  store i32 %191, ptr %37, align 4, !tbaa !9
  %192 = load ptr, ptr %18, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = sub nsw i32 %193, 1
  store i32 %194, ptr %38, align 4, !tbaa !9
  %195 = load i32, ptr %37, align 4, !tbaa !9
  %196 = load i32, ptr %38, align 4, !tbaa !9
  %197 = icmp sge i32 %195, %196
  br i1 %197, label %198, label %200

198:                                              ; preds = %188
  %199 = load i32, ptr %37, align 4, !tbaa !9
  br label %202

200:                                              ; preds = %188
  %201 = load i32, ptr %38, align 4, !tbaa !9
  br label %202

202:                                              ; preds = %200, %198
  %203 = phi i32 [ %199, %198 ], [ %201, %200 ]
  store i32 %203, ptr %37, align 4, !tbaa !9
  %204 = load ptr, ptr %17, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  %206 = load ptr, ptr %18, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = sub nsw i32 %205, %207
  %209 = sub nsw i32 %208, 1
  store i32 %209, ptr %38, align 4, !tbaa !9
  %210 = load i32, ptr %37, align 4, !tbaa !9
  %211 = load i32, ptr %38, align 4, !tbaa !9
  %212 = icmp sge i32 %210, %211
  br i1 %212, label %213, label %215

213:                                              ; preds = %202
  %214 = load i32, ptr %37, align 4, !tbaa !9
  br label %217

215:                                              ; preds = %202
  %216 = load i32, ptr %38, align 4, !tbaa !9
  br label %217

217:                                              ; preds = %215, %213
  %218 = phi i32 [ %214, %213 ], [ %216, %215 ]
  store i32 %218, ptr %51, align 4, !tbaa !9
  store i32 2, ptr %54, align 4, !tbaa !9
  %219 = load ptr, ptr %19, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  store i32 %220, ptr %55, align 4, !tbaa !9
  %221 = load i32, ptr %50, align 4, !tbaa !9
  %222 = load i32, ptr %51, align 4, !tbaa !9
  %223 = add nsw i32 %221, %222
  %224 = sub nsw i32 %223, 1
  store i32 %224, ptr %45, align 4, !tbaa !9
  %225 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %225, ptr %37, align 4, !tbaa !9
  %226 = load i32, ptr %54, align 4, !tbaa !9
  %227 = load i32, ptr %55, align 4, !tbaa !9
  %228 = add nsw i32 %226, %227
  %229 = sub nsw i32 %228, 1
  store i32 %229, ptr %38, align 4, !tbaa !9
  %230 = load i32, ptr %37, align 4, !tbaa !9
  %231 = load i32, ptr %38, align 4, !tbaa !9
  %232 = icmp sge i32 %230, %231
  br i1 %232, label %233, label %235

233:                                              ; preds = %217
  %234 = load i32, ptr %37, align 4, !tbaa !9
  br label %237

235:                                              ; preds = %217
  %236 = load i32, ptr %38, align 4, !tbaa !9
  br label %237

237:                                              ; preds = %235, %233
  %238 = phi i32 [ %234, %233 ], [ %236, %235 ]
  store i32 %238, ptr %45, align 4, !tbaa !9
  %239 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %239, ptr %44, align 4, !tbaa !9
  %240 = load i32, ptr %45, align 4, !tbaa !9
  %241 = sitofp i32 %240 to float
  %242 = load ptr, ptr %30, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.complex, ptr %242, i64 1
  %244 = getelementptr inbounds %struct.complex, ptr %243, i32 0, i32 0
  store float %241, ptr %244, align 4, !tbaa !11
  %245 = load ptr, ptr %30, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.complex, ptr %245, i64 1
  %247 = getelementptr inbounds %struct.complex, ptr %246, i32 0, i32 1
  store float 0.000000e+00, ptr %247, align 4, !tbaa !14
  %248 = load ptr, ptr %31, align 8, !tbaa !5
  %249 = load i32, ptr %248, align 4, !tbaa !9
  %250 = load i32, ptr %44, align 4, !tbaa !9
  %251 = icmp slt i32 %249, %250
  br i1 %251, label %252, label %257

252:                                              ; preds = %237
  %253 = load i32, ptr %53, align 4, !tbaa !9
  %254 = icmp ne i32 %253, 0
  br i1 %254, label %257, label %255

255:                                              ; preds = %252
  %256 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 -14, ptr %256, align 4, !tbaa !9
  br label %257

257:                                              ; preds = %255, %252, %237
  br label %258

258:                                              ; preds = %257, %184
  %259 = load ptr, ptr %32, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %267

262:                                              ; preds = %258
  %263 = load ptr, ptr %32, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = sub nsw i32 0, %264
  store i32 %265, ptr %37, align 4, !tbaa !9
  %266 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %37, i32 noundef 7)
  store i32 1, ptr %56, align 4
  br label %1372

267:                                              ; preds = %258
  %268 = load i32, ptr %53, align 4, !tbaa !9
  %269 = icmp ne i32 %268, 0
  br i1 %269, label %270, label %271

270:                                              ; preds = %267
  store i32 1, ptr %56, align 4
  br label %1372

271:                                              ; preds = %267
  br label %272

272:                                              ; preds = %271
  %273 = load ptr, ptr %17, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = load ptr, ptr %19, align 8, !tbaa !5
  %276 = load i32, ptr %275, align 4, !tbaa !9
  %277 = sub nsw i32 %274, %276
  store i32 %277, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %278

278:                                              ; preds = %1021, %272
  %279 = load i32, ptr %47, align 4, !tbaa !9
  %280 = load i32, ptr %37, align 4, !tbaa !9
  %281 = icmp sle i32 %279, %280
  br i1 %281, label %282, label %1024

282:                                              ; preds = %278
  %283 = load i32, ptr %47, align 4, !tbaa !9
  %284 = icmp eq i32 %283, 1
  br i1 %284, label %285, label %477

285:                                              ; preds = %282
  %286 = load ptr, ptr %17, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  store i32 %287, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %48, align 4, !tbaa !9
  br label %288

288:                                              ; preds = %304, %285
  %289 = load i32, ptr %48, align 4, !tbaa !9
  %290 = load i32, ptr %38, align 4, !tbaa !9
  %291 = icmp sle i32 %289, %290
  br i1 %291, label %292, label %307

292:                                              ; preds = %288
  %293 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %293, ptr %39, align 4, !tbaa !9
  %294 = load ptr, ptr %29, align 8, !tbaa !5
  %295 = load i32, ptr %39, align 4, !tbaa !9
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds %struct.complex, ptr %294, i64 %296
  %298 = getelementptr inbounds %struct.complex, ptr %297, i32 0, i32 0
  store float 0.000000e+00, ptr %298, align 4, !tbaa !11
  %299 = load ptr, ptr %29, align 8, !tbaa !5
  %300 = load i32, ptr %39, align 4, !tbaa !9
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds %struct.complex, ptr %299, i64 %301
  %303 = getelementptr inbounds %struct.complex, ptr %302, i32 0, i32 1
  store float 0.000000e+00, ptr %303, align 4, !tbaa !14
  br label %304

304:                                              ; preds = %292
  %305 = load i32, ptr %48, align 4, !tbaa !9
  %306 = add nsw i32 %305, 1
  store i32 %306, ptr %48, align 4, !tbaa !9
  br label %288, !llvm.loop !15

307:                                              ; preds = %288
  %308 = load ptr, ptr %17, align 8, !tbaa !5
  %309 = load i32, ptr %308, align 4, !tbaa !9
  %310 = load ptr, ptr %18, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = sub nsw i32 %309, %311
  store i32 %312, ptr %38, align 4, !tbaa !9
  %313 = load ptr, ptr %18, align 8, !tbaa !5
  %314 = load ptr, ptr %19, align 8, !tbaa !5
  %315 = load ptr, ptr %29, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.complex, ptr %315, i64 1
  %317 = load ptr, ptr %29, align 8, !tbaa !5
  %318 = load ptr, ptr %18, align 8, !tbaa !5
  %319 = load i32, ptr %318, align 4, !tbaa !9
  %320 = add nsw i32 %319, 1
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds %struct.complex, ptr %317, i64 %321
  %323 = load ptr, ptr %20, align 8, !tbaa !5
  %324 = load i32, ptr %34, align 4, !tbaa !9
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds %struct.complex, ptr %323, i64 %325
  %327 = load ptr, ptr %21, align 8, !tbaa !5
  %328 = load ptr, ptr %22, align 8, !tbaa !5
  %329 = load i32, ptr %36, align 4, !tbaa !9
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds %struct.complex, ptr %328, i64 %330
  %332 = load ptr, ptr %23, align 8, !tbaa !5
  %333 = load ptr, ptr %30, align 8, !tbaa !5
  %334 = load i32, ptr %54, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds %struct.complex, ptr %333, i64 %335
  call void @cunbdb5_(ptr noundef %313, ptr noundef %38, ptr noundef %314, ptr noundef %316, ptr noundef @c__1, ptr noundef %322, ptr noundef @c__1, ptr noundef %326, ptr noundef %327, ptr noundef %331, ptr noundef %332, ptr noundef %336, ptr noundef %55, ptr noundef %52)
  %337 = load ptr, ptr %18, align 8, !tbaa !5
  %338 = load ptr, ptr %29, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.complex, ptr %338, i64 1
  call void @cscal_(ptr noundef %337, ptr noundef @c_b1, ptr noundef %339, ptr noundef @c__1)
  %340 = load ptr, ptr %18, align 8, !tbaa !5
  %341 = load ptr, ptr %29, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.complex, ptr %341, i64 1
  %343 = load ptr, ptr %29, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.complex, ptr %343, i64 2
  %345 = load ptr, ptr %26, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.complex, ptr %345, i64 1
  call void @clarfgp_(ptr noundef %340, ptr noundef %342, ptr noundef %344, ptr noundef @c__1, ptr noundef %346)
  %347 = load ptr, ptr %17, align 8, !tbaa !5
  %348 = load i32, ptr %347, align 4, !tbaa !9
  %349 = load ptr, ptr %18, align 8, !tbaa !5
  %350 = load i32, ptr %349, align 4, !tbaa !9
  %351 = sub nsw i32 %348, %350
  store i32 %351, ptr %38, align 4, !tbaa !9
  %352 = load ptr, ptr %29, align 8, !tbaa !5
  %353 = load ptr, ptr %18, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = add nsw i32 %354, 1
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds %struct.complex, ptr %352, i64 %356
  %358 = load ptr, ptr %29, align 8, !tbaa !5
  %359 = load ptr, ptr %18, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = add nsw i32 %360, 2
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds %struct.complex, ptr %358, i64 %362
  %364 = load ptr, ptr %27, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.complex, ptr %364, i64 1
  call void @clarfgp_(ptr noundef %38, ptr noundef %357, ptr noundef %363, ptr noundef @c__1, ptr noundef %365)
  %366 = load ptr, ptr %29, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.complex, ptr %366, i64 1
  %368 = getelementptr inbounds %struct.complex, ptr %367, i32 0, i32 0
  %369 = load float, ptr %368, align 4, !tbaa !11
  %370 = fpext float %369 to double
  %371 = load ptr, ptr %29, align 8, !tbaa !5
  %372 = load ptr, ptr %18, align 8, !tbaa !5
  %373 = load i32, ptr %372, align 4, !tbaa !9
  %374 = add nsw i32 %373, 1
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds %struct.complex, ptr %371, i64 %375
  %377 = getelementptr inbounds %struct.complex, ptr %376, i32 0, i32 0
  %378 = load float, ptr %377, align 4, !tbaa !11
  %379 = fpext float %378 to double
  %380 = call double @atan2(double noundef %370, double noundef %379) #7
  %381 = fptrunc double %380 to float
  %382 = load ptr, ptr %24, align 8, !tbaa !5
  %383 = load i32, ptr %47, align 4, !tbaa !9
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds float, ptr %382, i64 %384
  store float %381, ptr %385, align 4, !tbaa !17
  %386 = load ptr, ptr %24, align 8, !tbaa !5
  %387 = load i32, ptr %47, align 4, !tbaa !9
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds float, ptr %386, i64 %388
  %390 = load float, ptr %389, align 4, !tbaa !17
  %391 = fpext float %390 to double
  %392 = call double @cos(double noundef %391) #7
  %393 = fptrunc double %392 to float
  store float %393, ptr %46, align 4, !tbaa !17
  %394 = load ptr, ptr %24, align 8, !tbaa !5
  %395 = load i32, ptr %47, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds float, ptr %394, i64 %396
  %398 = load float, ptr %397, align 4, !tbaa !17
  %399 = fpext float %398 to double
  %400 = call double @sin(double noundef %399) #7
  %401 = fptrunc double %400 to float
  store float %401, ptr %49, align 4, !tbaa !17
  %402 = load ptr, ptr %29, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.complex, ptr %402, i64 1
  %404 = getelementptr inbounds %struct.complex, ptr %403, i32 0, i32 0
  store float 1.000000e+00, ptr %404, align 4, !tbaa !11
  %405 = load ptr, ptr %29, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.complex, ptr %405, i64 1
  %407 = getelementptr inbounds %struct.complex, ptr %406, i32 0, i32 1
  store float 0.000000e+00, ptr %407, align 4, !tbaa !14
  %408 = load ptr, ptr %18, align 8, !tbaa !5
  %409 = load i32, ptr %408, align 4, !tbaa !9
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr %38, align 4, !tbaa !9
  %411 = load ptr, ptr %29, align 8, !tbaa !5
  %412 = load i32, ptr %38, align 4, !tbaa !9
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds %struct.complex, ptr %411, i64 %413
  %415 = getelementptr inbounds %struct.complex, ptr %414, i32 0, i32 0
  store float 1.000000e+00, ptr %415, align 4, !tbaa !11
  %416 = load ptr, ptr %29, align 8, !tbaa !5
  %417 = load i32, ptr %38, align 4, !tbaa !9
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds %struct.complex, ptr %416, i64 %418
  %420 = getelementptr inbounds %struct.complex, ptr %419, i32 0, i32 1
  store float 0.000000e+00, ptr %420, align 4, !tbaa !14
  %421 = load ptr, ptr %26, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.complex, ptr %421, i64 1
  %423 = call <2 x float> @Cf(ptr noundef %422)
  store <2 x float> %423, ptr %57, align 4
  %424 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 0
  %425 = load float, ptr %424, align 4
  %426 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 1
  %427 = load float, ptr %426, align 4
  %428 = fneg float %427
  %429 = call ptr @_pCf(ptr noundef %43)
  %430 = getelementptr inbounds { float, float }, ptr %429, i32 0, i32 0
  %431 = getelementptr inbounds { float, float }, ptr %429, i32 0, i32 1
  store float %425, ptr %430, align 4
  store float %428, ptr %431, align 4
  %432 = load ptr, ptr %18, align 8, !tbaa !5
  %433 = load ptr, ptr %19, align 8, !tbaa !5
  %434 = load ptr, ptr %29, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.complex, ptr %434, i64 1
  %436 = load ptr, ptr %20, align 8, !tbaa !5
  %437 = load i32, ptr %34, align 4, !tbaa !9
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds %struct.complex, ptr %436, i64 %438
  %440 = load ptr, ptr %21, align 8, !tbaa !5
  %441 = load ptr, ptr %30, align 8, !tbaa !5
  %442 = load i32, ptr %50, align 4, !tbaa !9
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds %struct.complex, ptr %441, i64 %443
  call void @clarf_(ptr noundef @.str.1, ptr noundef %432, ptr noundef %433, ptr noundef %435, ptr noundef @c__1, ptr noundef %43, ptr noundef %439, ptr noundef %440, ptr noundef %444)
  %445 = load ptr, ptr %17, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = load ptr, ptr %18, align 8, !tbaa !5
  %448 = load i32, ptr %447, align 4, !tbaa !9
  %449 = sub nsw i32 %446, %448
  store i32 %449, ptr %38, align 4, !tbaa !9
  %450 = load ptr, ptr %27, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.complex, ptr %450, i64 1
  %452 = call <2 x float> @Cf(ptr noundef %451)
  store <2 x float> %452, ptr %58, align 4
  %453 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 0
  %454 = load float, ptr %453, align 4
  %455 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 1
  %456 = load float, ptr %455, align 4
  %457 = fneg float %456
  %458 = call ptr @_pCf(ptr noundef %43)
  %459 = getelementptr inbounds { float, float }, ptr %458, i32 0, i32 0
  %460 = getelementptr inbounds { float, float }, ptr %458, i32 0, i32 1
  store float %454, ptr %459, align 4
  store float %457, ptr %460, align 4
  %461 = load ptr, ptr %19, align 8, !tbaa !5
  %462 = load ptr, ptr %29, align 8, !tbaa !5
  %463 = load ptr, ptr %18, align 8, !tbaa !5
  %464 = load i32, ptr %463, align 4, !tbaa !9
  %465 = add nsw i32 %464, 1
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds %struct.complex, ptr %462, i64 %466
  %468 = load ptr, ptr %22, align 8, !tbaa !5
  %469 = load i32, ptr %36, align 4, !tbaa !9
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds %struct.complex, ptr %468, i64 %470
  %472 = load ptr, ptr %23, align 8, !tbaa !5
  %473 = load ptr, ptr %30, align 8, !tbaa !5
  %474 = load i32, ptr %50, align 4, !tbaa !9
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds %struct.complex, ptr %473, i64 %475
  call void @clarf_(ptr noundef @.str.1, ptr noundef %38, ptr noundef %461, ptr noundef %467, ptr noundef @c__1, ptr noundef %43, ptr noundef %471, ptr noundef %472, ptr noundef %476)
  br label %780

477:                                              ; preds = %282
  %478 = load ptr, ptr %18, align 8, !tbaa !5
  %479 = load i32, ptr %478, align 4, !tbaa !9
  %480 = load i32, ptr %47, align 4, !tbaa !9
  %481 = sub nsw i32 %479, %480
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr %38, align 4, !tbaa !9
  %483 = load ptr, ptr %17, align 8, !tbaa !5
  %484 = load i32, ptr %483, align 4, !tbaa !9
  %485 = load ptr, ptr %18, align 8, !tbaa !5
  %486 = load i32, ptr %485, align 4, !tbaa !9
  %487 = sub nsw i32 %484, %486
  %488 = load i32, ptr %47, align 4, !tbaa !9
  %489 = sub nsw i32 %487, %488
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr %39, align 4, !tbaa !9
  %491 = load ptr, ptr %19, align 8, !tbaa !5
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = load i32, ptr %47, align 4, !tbaa !9
  %494 = sub nsw i32 %492, %493
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr %40, align 4, !tbaa !9
  %496 = load ptr, ptr %20, align 8, !tbaa !5
  %497 = load i32, ptr %47, align 4, !tbaa !9
  %498 = load i32, ptr %47, align 4, !tbaa !9
  %499 = sub nsw i32 %498, 1
  %500 = load i32, ptr %33, align 4, !tbaa !9
  %501 = mul nsw i32 %499, %500
  %502 = add nsw i32 %497, %501
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds %struct.complex, ptr %496, i64 %503
  %505 = load ptr, ptr %22, align 8, !tbaa !5
  %506 = load i32, ptr %47, align 4, !tbaa !9
  %507 = load i32, ptr %47, align 4, !tbaa !9
  %508 = sub nsw i32 %507, 1
  %509 = load i32, ptr %35, align 4, !tbaa !9
  %510 = mul nsw i32 %508, %509
  %511 = add nsw i32 %506, %510
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds %struct.complex, ptr %505, i64 %512
  %514 = load ptr, ptr %20, align 8, !tbaa !5
  %515 = load i32, ptr %47, align 4, !tbaa !9
  %516 = load i32, ptr %47, align 4, !tbaa !9
  %517 = load i32, ptr %33, align 4, !tbaa !9
  %518 = mul nsw i32 %516, %517
  %519 = add nsw i32 %515, %518
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds %struct.complex, ptr %514, i64 %520
  %522 = load ptr, ptr %21, align 8, !tbaa !5
  %523 = load ptr, ptr %22, align 8, !tbaa !5
  %524 = load i32, ptr %47, align 4, !tbaa !9
  %525 = load i32, ptr %47, align 4, !tbaa !9
  %526 = load i32, ptr %35, align 4, !tbaa !9
  %527 = mul nsw i32 %525, %526
  %528 = add nsw i32 %524, %527
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds %struct.complex, ptr %523, i64 %529
  %531 = load ptr, ptr %23, align 8, !tbaa !5
  %532 = load ptr, ptr %30, align 8, !tbaa !5
  %533 = load i32, ptr %54, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds %struct.complex, ptr %532, i64 %534
  call void @cunbdb5_(ptr noundef %38, ptr noundef %39, ptr noundef %40, ptr noundef %504, ptr noundef @c__1, ptr noundef %513, ptr noundef @c__1, ptr noundef %521, ptr noundef %522, ptr noundef %530, ptr noundef %531, ptr noundef %535, ptr noundef %55, ptr noundef %52)
  %536 = load ptr, ptr %18, align 8, !tbaa !5
  %537 = load i32, ptr %536, align 4, !tbaa !9
  %538 = load i32, ptr %47, align 4, !tbaa !9
  %539 = sub nsw i32 %537, %538
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr %38, align 4, !tbaa !9
  %541 = load ptr, ptr %20, align 8, !tbaa !5
  %542 = load i32, ptr %47, align 4, !tbaa !9
  %543 = load i32, ptr %47, align 4, !tbaa !9
  %544 = sub nsw i32 %543, 1
  %545 = load i32, ptr %33, align 4, !tbaa !9
  %546 = mul nsw i32 %544, %545
  %547 = add nsw i32 %542, %546
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds %struct.complex, ptr %541, i64 %548
  call void @cscal_(ptr noundef %38, ptr noundef @c_b1, ptr noundef %549, ptr noundef @c__1)
  %550 = load ptr, ptr %18, align 8, !tbaa !5
  %551 = load i32, ptr %550, align 4, !tbaa !9
  %552 = load i32, ptr %47, align 4, !tbaa !9
  %553 = sub nsw i32 %551, %552
  %554 = add nsw i32 %553, 1
  store i32 %554, ptr %38, align 4, !tbaa !9
  %555 = load ptr, ptr %20, align 8, !tbaa !5
  %556 = load i32, ptr %47, align 4, !tbaa !9
  %557 = load i32, ptr %47, align 4, !tbaa !9
  %558 = sub nsw i32 %557, 1
  %559 = load i32, ptr %33, align 4, !tbaa !9
  %560 = mul nsw i32 %558, %559
  %561 = add nsw i32 %556, %560
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds %struct.complex, ptr %555, i64 %562
  %564 = load ptr, ptr %20, align 8, !tbaa !5
  %565 = load i32, ptr %47, align 4, !tbaa !9
  %566 = add nsw i32 %565, 1
  %567 = load i32, ptr %47, align 4, !tbaa !9
  %568 = sub nsw i32 %567, 1
  %569 = load i32, ptr %33, align 4, !tbaa !9
  %570 = mul nsw i32 %568, %569
  %571 = add nsw i32 %566, %570
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds %struct.complex, ptr %564, i64 %572
  %574 = load ptr, ptr %26, align 8, !tbaa !5
  %575 = load i32, ptr %47, align 4, !tbaa !9
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds %struct.complex, ptr %574, i64 %576
  call void @clarfgp_(ptr noundef %38, ptr noundef %563, ptr noundef %573, ptr noundef @c__1, ptr noundef %577)
  %578 = load ptr, ptr %17, align 8, !tbaa !5
  %579 = load i32, ptr %578, align 4, !tbaa !9
  %580 = load ptr, ptr %18, align 8, !tbaa !5
  %581 = load i32, ptr %580, align 4, !tbaa !9
  %582 = sub nsw i32 %579, %581
  %583 = load i32, ptr %47, align 4, !tbaa !9
  %584 = sub nsw i32 %582, %583
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr %38, align 4, !tbaa !9
  %586 = load ptr, ptr %22, align 8, !tbaa !5
  %587 = load i32, ptr %47, align 4, !tbaa !9
  %588 = load i32, ptr %47, align 4, !tbaa !9
  %589 = sub nsw i32 %588, 1
  %590 = load i32, ptr %35, align 4, !tbaa !9
  %591 = mul nsw i32 %589, %590
  %592 = add nsw i32 %587, %591
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds %struct.complex, ptr %586, i64 %593
  %595 = load ptr, ptr %22, align 8, !tbaa !5
  %596 = load i32, ptr %47, align 4, !tbaa !9
  %597 = add nsw i32 %596, 1
  %598 = load i32, ptr %47, align 4, !tbaa !9
  %599 = sub nsw i32 %598, 1
  %600 = load i32, ptr %35, align 4, !tbaa !9
  %601 = mul nsw i32 %599, %600
  %602 = add nsw i32 %597, %601
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds %struct.complex, ptr %595, i64 %603
  %605 = load ptr, ptr %27, align 8, !tbaa !5
  %606 = load i32, ptr %47, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds %struct.complex, ptr %605, i64 %607
  call void @clarfgp_(ptr noundef %38, ptr noundef %594, ptr noundef %604, ptr noundef @c__1, ptr noundef %608)
  %609 = load ptr, ptr %20, align 8, !tbaa !5
  %610 = load i32, ptr %47, align 4, !tbaa !9
  %611 = load i32, ptr %47, align 4, !tbaa !9
  %612 = sub nsw i32 %611, 1
  %613 = load i32, ptr %33, align 4, !tbaa !9
  %614 = mul nsw i32 %612, %613
  %615 = add nsw i32 %610, %614
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds %struct.complex, ptr %609, i64 %616
  %618 = getelementptr inbounds %struct.complex, ptr %617, i32 0, i32 0
  %619 = load float, ptr %618, align 4, !tbaa !11
  %620 = fpext float %619 to double
  %621 = load ptr, ptr %22, align 8, !tbaa !5
  %622 = load i32, ptr %47, align 4, !tbaa !9
  %623 = load i32, ptr %47, align 4, !tbaa !9
  %624 = sub nsw i32 %623, 1
  %625 = load i32, ptr %35, align 4, !tbaa !9
  %626 = mul nsw i32 %624, %625
  %627 = add nsw i32 %622, %626
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds %struct.complex, ptr %621, i64 %628
  %630 = getelementptr inbounds %struct.complex, ptr %629, i32 0, i32 0
  %631 = load float, ptr %630, align 4, !tbaa !11
  %632 = fpext float %631 to double
  %633 = call double @atan2(double noundef %620, double noundef %632) #7
  %634 = fptrunc double %633 to float
  %635 = load ptr, ptr %24, align 8, !tbaa !5
  %636 = load i32, ptr %47, align 4, !tbaa !9
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds float, ptr %635, i64 %637
  store float %634, ptr %638, align 4, !tbaa !17
  %639 = load ptr, ptr %24, align 8, !tbaa !5
  %640 = load i32, ptr %47, align 4, !tbaa !9
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds float, ptr %639, i64 %641
  %643 = load float, ptr %642, align 4, !tbaa !17
  %644 = fpext float %643 to double
  %645 = call double @cos(double noundef %644) #7
  %646 = fptrunc double %645 to float
  store float %646, ptr %46, align 4, !tbaa !17
  %647 = load ptr, ptr %24, align 8, !tbaa !5
  %648 = load i32, ptr %47, align 4, !tbaa !9
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds float, ptr %647, i64 %649
  %651 = load float, ptr %650, align 4, !tbaa !17
  %652 = fpext float %651 to double
  %653 = call double @sin(double noundef %652) #7
  %654 = fptrunc double %653 to float
  store float %654, ptr %49, align 4, !tbaa !17
  %655 = load i32, ptr %47, align 4, !tbaa !9
  %656 = load i32, ptr %47, align 4, !tbaa !9
  %657 = sub nsw i32 %656, 1
  %658 = load i32, ptr %33, align 4, !tbaa !9
  %659 = mul nsw i32 %657, %658
  %660 = add nsw i32 %655, %659
  store i32 %660, ptr %38, align 4, !tbaa !9
  %661 = load ptr, ptr %20, align 8, !tbaa !5
  %662 = load i32, ptr %38, align 4, !tbaa !9
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds %struct.complex, ptr %661, i64 %663
  %665 = getelementptr inbounds %struct.complex, ptr %664, i32 0, i32 0
  store float 1.000000e+00, ptr %665, align 4, !tbaa !11
  %666 = load ptr, ptr %20, align 8, !tbaa !5
  %667 = load i32, ptr %38, align 4, !tbaa !9
  %668 = sext i32 %667 to i64
  %669 = getelementptr inbounds %struct.complex, ptr %666, i64 %668
  %670 = getelementptr inbounds %struct.complex, ptr %669, i32 0, i32 1
  store float 0.000000e+00, ptr %670, align 4, !tbaa !14
  %671 = load i32, ptr %47, align 4, !tbaa !9
  %672 = load i32, ptr %47, align 4, !tbaa !9
  %673 = sub nsw i32 %672, 1
  %674 = load i32, ptr %35, align 4, !tbaa !9
  %675 = mul nsw i32 %673, %674
  %676 = add nsw i32 %671, %675
  store i32 %676, ptr %38, align 4, !tbaa !9
  %677 = load ptr, ptr %22, align 8, !tbaa !5
  %678 = load i32, ptr %38, align 4, !tbaa !9
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds %struct.complex, ptr %677, i64 %679
  %681 = getelementptr inbounds %struct.complex, ptr %680, i32 0, i32 0
  store float 1.000000e+00, ptr %681, align 4, !tbaa !11
  %682 = load ptr, ptr %22, align 8, !tbaa !5
  %683 = load i32, ptr %38, align 4, !tbaa !9
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds %struct.complex, ptr %682, i64 %684
  %686 = getelementptr inbounds %struct.complex, ptr %685, i32 0, i32 1
  store float 0.000000e+00, ptr %686, align 4, !tbaa !14
  %687 = load ptr, ptr %18, align 8, !tbaa !5
  %688 = load i32, ptr %687, align 4, !tbaa !9
  %689 = load i32, ptr %47, align 4, !tbaa !9
  %690 = sub nsw i32 %688, %689
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr %38, align 4, !tbaa !9
  %692 = load ptr, ptr %19, align 8, !tbaa !5
  %693 = load i32, ptr %692, align 4, !tbaa !9
  %694 = load i32, ptr %47, align 4, !tbaa !9
  %695 = sub nsw i32 %693, %694
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr %39, align 4, !tbaa !9
  %697 = load ptr, ptr %26, align 8, !tbaa !5
  %698 = load i32, ptr %47, align 4, !tbaa !9
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds %struct.complex, ptr %697, i64 %699
  %701 = call <2 x float> @Cf(ptr noundef %700)
  store <2 x float> %701, ptr %59, align 4
  %702 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 0
  %703 = load float, ptr %702, align 4
  %704 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 1
  %705 = load float, ptr %704, align 4
  %706 = fneg float %705
  %707 = call ptr @_pCf(ptr noundef %43)
  %708 = getelementptr inbounds { float, float }, ptr %707, i32 0, i32 0
  %709 = getelementptr inbounds { float, float }, ptr %707, i32 0, i32 1
  store float %703, ptr %708, align 4
  store float %706, ptr %709, align 4
  %710 = load ptr, ptr %20, align 8, !tbaa !5
  %711 = load i32, ptr %47, align 4, !tbaa !9
  %712 = load i32, ptr %47, align 4, !tbaa !9
  %713 = sub nsw i32 %712, 1
  %714 = load i32, ptr %33, align 4, !tbaa !9
  %715 = mul nsw i32 %713, %714
  %716 = add nsw i32 %711, %715
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds %struct.complex, ptr %710, i64 %717
  %719 = load ptr, ptr %20, align 8, !tbaa !5
  %720 = load i32, ptr %47, align 4, !tbaa !9
  %721 = load i32, ptr %47, align 4, !tbaa !9
  %722 = load i32, ptr %33, align 4, !tbaa !9
  %723 = mul nsw i32 %721, %722
  %724 = add nsw i32 %720, %723
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds %struct.complex, ptr %719, i64 %725
  %727 = load ptr, ptr %21, align 8, !tbaa !5
  %728 = load ptr, ptr %30, align 8, !tbaa !5
  %729 = load i32, ptr %50, align 4, !tbaa !9
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds %struct.complex, ptr %728, i64 %730
  call void @clarf_(ptr noundef @.str.1, ptr noundef %38, ptr noundef %39, ptr noundef %718, ptr noundef @c__1, ptr noundef %43, ptr noundef %726, ptr noundef %727, ptr noundef %731)
  %732 = load ptr, ptr %17, align 8, !tbaa !5
  %733 = load i32, ptr %732, align 4, !tbaa !9
  %734 = load ptr, ptr %18, align 8, !tbaa !5
  %735 = load i32, ptr %734, align 4, !tbaa !9
  %736 = sub nsw i32 %733, %735
  %737 = load i32, ptr %47, align 4, !tbaa !9
  %738 = sub nsw i32 %736, %737
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr %38, align 4, !tbaa !9
  %740 = load ptr, ptr %19, align 8, !tbaa !5
  %741 = load i32, ptr %740, align 4, !tbaa !9
  %742 = load i32, ptr %47, align 4, !tbaa !9
  %743 = sub nsw i32 %741, %742
  %744 = add nsw i32 %743, 1
  store i32 %744, ptr %39, align 4, !tbaa !9
  %745 = load ptr, ptr %27, align 8, !tbaa !5
  %746 = load i32, ptr %47, align 4, !tbaa !9
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds %struct.complex, ptr %745, i64 %747
  %749 = call <2 x float> @Cf(ptr noundef %748)
  store <2 x float> %749, ptr %60, align 4
  %750 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 0
  %751 = load float, ptr %750, align 4
  %752 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 1
  %753 = load float, ptr %752, align 4
  %754 = fneg float %753
  %755 = call ptr @_pCf(ptr noundef %43)
  %756 = getelementptr inbounds { float, float }, ptr %755, i32 0, i32 0
  %757 = getelementptr inbounds { float, float }, ptr %755, i32 0, i32 1
  store float %751, ptr %756, align 4
  store float %754, ptr %757, align 4
  %758 = load ptr, ptr %22, align 8, !tbaa !5
  %759 = load i32, ptr %47, align 4, !tbaa !9
  %760 = load i32, ptr %47, align 4, !tbaa !9
  %761 = sub nsw i32 %760, 1
  %762 = load i32, ptr %35, align 4, !tbaa !9
  %763 = mul nsw i32 %761, %762
  %764 = add nsw i32 %759, %763
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds %struct.complex, ptr %758, i64 %765
  %767 = load ptr, ptr %22, align 8, !tbaa !5
  %768 = load i32, ptr %47, align 4, !tbaa !9
  %769 = load i32, ptr %47, align 4, !tbaa !9
  %770 = load i32, ptr %35, align 4, !tbaa !9
  %771 = mul nsw i32 %769, %770
  %772 = add nsw i32 %768, %771
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds %struct.complex, ptr %767, i64 %773
  %775 = load ptr, ptr %23, align 8, !tbaa !5
  %776 = load ptr, ptr %30, align 8, !tbaa !5
  %777 = load i32, ptr %50, align 4, !tbaa !9
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds %struct.complex, ptr %776, i64 %778
  call void @clarf_(ptr noundef @.str.1, ptr noundef %38, ptr noundef %39, ptr noundef %766, ptr noundef @c__1, ptr noundef %43, ptr noundef %774, ptr noundef %775, ptr noundef %779)
  br label %780

780:                                              ; preds = %477, %307
  %781 = load ptr, ptr %19, align 8, !tbaa !5
  %782 = load i32, ptr %781, align 4, !tbaa !9
  %783 = load i32, ptr %47, align 4, !tbaa !9
  %784 = sub nsw i32 %782, %783
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %38, align 4, !tbaa !9
  %786 = load float, ptr %46, align 4, !tbaa !17
  %787 = fneg float %786
  store float %787, ptr %41, align 4, !tbaa !17
  %788 = load ptr, ptr %20, align 8, !tbaa !5
  %789 = load i32, ptr %47, align 4, !tbaa !9
  %790 = load i32, ptr %47, align 4, !tbaa !9
  %791 = load i32, ptr %33, align 4, !tbaa !9
  %792 = mul nsw i32 %790, %791
  %793 = add nsw i32 %789, %792
  %794 = sext i32 %793 to i64
  %795 = getelementptr inbounds %struct.complex, ptr %788, i64 %794
  %796 = load ptr, ptr %21, align 8, !tbaa !5
  %797 = load ptr, ptr %22, align 8, !tbaa !5
  %798 = load i32, ptr %47, align 4, !tbaa !9
  %799 = load i32, ptr %47, align 4, !tbaa !9
  %800 = load i32, ptr %35, align 4, !tbaa !9
  %801 = mul nsw i32 %799, %800
  %802 = add nsw i32 %798, %801
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds %struct.complex, ptr %797, i64 %803
  %805 = load ptr, ptr %23, align 8, !tbaa !5
  call void @csrot_(ptr noundef %38, ptr noundef %795, ptr noundef %796, ptr noundef %804, ptr noundef %805, ptr noundef %49, ptr noundef %41)
  %806 = load ptr, ptr %19, align 8, !tbaa !5
  %807 = load i32, ptr %806, align 4, !tbaa !9
  %808 = load i32, ptr %47, align 4, !tbaa !9
  %809 = sub nsw i32 %807, %808
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %38, align 4, !tbaa !9
  %811 = load ptr, ptr %22, align 8, !tbaa !5
  %812 = load i32, ptr %47, align 4, !tbaa !9
  %813 = load i32, ptr %47, align 4, !tbaa !9
  %814 = load i32, ptr %35, align 4, !tbaa !9
  %815 = mul nsw i32 %813, %814
  %816 = add nsw i32 %812, %815
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds %struct.complex, ptr %811, i64 %817
  %819 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %38, ptr noundef %818, ptr noundef %819)
  %820 = load ptr, ptr %19, align 8, !tbaa !5
  %821 = load i32, ptr %820, align 4, !tbaa !9
  %822 = load i32, ptr %47, align 4, !tbaa !9
  %823 = sub nsw i32 %821, %822
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr %38, align 4, !tbaa !9
  %825 = load ptr, ptr %22, align 8, !tbaa !5
  %826 = load i32, ptr %47, align 4, !tbaa !9
  %827 = load i32, ptr %47, align 4, !tbaa !9
  %828 = load i32, ptr %35, align 4, !tbaa !9
  %829 = mul nsw i32 %827, %828
  %830 = add nsw i32 %826, %829
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds %struct.complex, ptr %825, i64 %831
  %833 = load ptr, ptr %22, align 8, !tbaa !5
  %834 = load i32, ptr %47, align 4, !tbaa !9
  %835 = load i32, ptr %47, align 4, !tbaa !9
  %836 = add nsw i32 %835, 1
  %837 = load i32, ptr %35, align 4, !tbaa !9
  %838 = mul nsw i32 %836, %837
  %839 = add nsw i32 %834, %838
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds %struct.complex, ptr %833, i64 %840
  %842 = load ptr, ptr %23, align 8, !tbaa !5
  %843 = load ptr, ptr %28, align 8, !tbaa !5
  %844 = load i32, ptr %47, align 4, !tbaa !9
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds %struct.complex, ptr %843, i64 %845
  call void @clarfgp_(ptr noundef %38, ptr noundef %832, ptr noundef %841, ptr noundef %842, ptr noundef %846)
  %847 = load i32, ptr %47, align 4, !tbaa !9
  %848 = load i32, ptr %47, align 4, !tbaa !9
  %849 = load i32, ptr %35, align 4, !tbaa !9
  %850 = mul nsw i32 %848, %849
  %851 = add nsw i32 %847, %850
  store i32 %851, ptr %38, align 4, !tbaa !9
  %852 = load ptr, ptr %22, align 8, !tbaa !5
  %853 = load i32, ptr %38, align 4, !tbaa !9
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds %struct.complex, ptr %852, i64 %854
  %856 = getelementptr inbounds %struct.complex, ptr %855, i32 0, i32 0
  %857 = load float, ptr %856, align 4, !tbaa !11
  store float %857, ptr %46, align 4, !tbaa !17
  %858 = load i32, ptr %47, align 4, !tbaa !9
  %859 = load i32, ptr %47, align 4, !tbaa !9
  %860 = load i32, ptr %35, align 4, !tbaa !9
  %861 = mul nsw i32 %859, %860
  %862 = add nsw i32 %858, %861
  store i32 %862, ptr %38, align 4, !tbaa !9
  %863 = load ptr, ptr %22, align 8, !tbaa !5
  %864 = load i32, ptr %38, align 4, !tbaa !9
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds %struct.complex, ptr %863, i64 %865
  %867 = getelementptr inbounds %struct.complex, ptr %866, i32 0, i32 0
  store float 1.000000e+00, ptr %867, align 4, !tbaa !11
  %868 = load ptr, ptr %22, align 8, !tbaa !5
  %869 = load i32, ptr %38, align 4, !tbaa !9
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds %struct.complex, ptr %868, i64 %870
  %872 = getelementptr inbounds %struct.complex, ptr %871, i32 0, i32 1
  store float 0.000000e+00, ptr %872, align 4, !tbaa !14
  %873 = load ptr, ptr %18, align 8, !tbaa !5
  %874 = load i32, ptr %873, align 4, !tbaa !9
  %875 = load i32, ptr %47, align 4, !tbaa !9
  %876 = sub nsw i32 %874, %875
  store i32 %876, ptr %38, align 4, !tbaa !9
  %877 = load ptr, ptr %19, align 8, !tbaa !5
  %878 = load i32, ptr %877, align 4, !tbaa !9
  %879 = load i32, ptr %47, align 4, !tbaa !9
  %880 = sub nsw i32 %878, %879
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr %39, align 4, !tbaa !9
  %882 = load ptr, ptr %22, align 8, !tbaa !5
  %883 = load i32, ptr %47, align 4, !tbaa !9
  %884 = load i32, ptr %47, align 4, !tbaa !9
  %885 = load i32, ptr %35, align 4, !tbaa !9
  %886 = mul nsw i32 %884, %885
  %887 = add nsw i32 %883, %886
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds %struct.complex, ptr %882, i64 %888
  %890 = load ptr, ptr %23, align 8, !tbaa !5
  %891 = load ptr, ptr %28, align 8, !tbaa !5
  %892 = load i32, ptr %47, align 4, !tbaa !9
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds %struct.complex, ptr %891, i64 %893
  %895 = load ptr, ptr %20, align 8, !tbaa !5
  %896 = load i32, ptr %47, align 4, !tbaa !9
  %897 = add nsw i32 %896, 1
  %898 = load i32, ptr %47, align 4, !tbaa !9
  %899 = load i32, ptr %33, align 4, !tbaa !9
  %900 = mul nsw i32 %898, %899
  %901 = add nsw i32 %897, %900
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds %struct.complex, ptr %895, i64 %902
  %904 = load ptr, ptr %21, align 8, !tbaa !5
  %905 = load ptr, ptr %30, align 8, !tbaa !5
  %906 = load i32, ptr %50, align 4, !tbaa !9
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds %struct.complex, ptr %905, i64 %907
  call void @clarf_(ptr noundef @.str.2, ptr noundef %38, ptr noundef %39, ptr noundef %889, ptr noundef %890, ptr noundef %894, ptr noundef %903, ptr noundef %904, ptr noundef %908)
  %909 = load ptr, ptr %17, align 8, !tbaa !5
  %910 = load i32, ptr %909, align 4, !tbaa !9
  %911 = load ptr, ptr %18, align 8, !tbaa !5
  %912 = load i32, ptr %911, align 4, !tbaa !9
  %913 = sub nsw i32 %910, %912
  %914 = load i32, ptr %47, align 4, !tbaa !9
  %915 = sub nsw i32 %913, %914
  store i32 %915, ptr %38, align 4, !tbaa !9
  %916 = load ptr, ptr %19, align 8, !tbaa !5
  %917 = load i32, ptr %916, align 4, !tbaa !9
  %918 = load i32, ptr %47, align 4, !tbaa !9
  %919 = sub nsw i32 %917, %918
  %920 = add nsw i32 %919, 1
  store i32 %920, ptr %39, align 4, !tbaa !9
  %921 = load ptr, ptr %22, align 8, !tbaa !5
  %922 = load i32, ptr %47, align 4, !tbaa !9
  %923 = load i32, ptr %47, align 4, !tbaa !9
  %924 = load i32, ptr %35, align 4, !tbaa !9
  %925 = mul nsw i32 %923, %924
  %926 = add nsw i32 %922, %925
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds %struct.complex, ptr %921, i64 %927
  %929 = load ptr, ptr %23, align 8, !tbaa !5
  %930 = load ptr, ptr %28, align 8, !tbaa !5
  %931 = load i32, ptr %47, align 4, !tbaa !9
  %932 = sext i32 %931 to i64
  %933 = getelementptr inbounds %struct.complex, ptr %930, i64 %932
  %934 = load ptr, ptr %22, align 8, !tbaa !5
  %935 = load i32, ptr %47, align 4, !tbaa !9
  %936 = add nsw i32 %935, 1
  %937 = load i32, ptr %47, align 4, !tbaa !9
  %938 = load i32, ptr %35, align 4, !tbaa !9
  %939 = mul nsw i32 %937, %938
  %940 = add nsw i32 %936, %939
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds %struct.complex, ptr %934, i64 %941
  %943 = load ptr, ptr %23, align 8, !tbaa !5
  %944 = load ptr, ptr %30, align 8, !tbaa !5
  %945 = load i32, ptr %50, align 4, !tbaa !9
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds %struct.complex, ptr %944, i64 %946
  call void @clarf_(ptr noundef @.str.2, ptr noundef %38, ptr noundef %39, ptr noundef %928, ptr noundef %929, ptr noundef %933, ptr noundef %942, ptr noundef %943, ptr noundef %947)
  %948 = load ptr, ptr %19, align 8, !tbaa !5
  %949 = load i32, ptr %948, align 4, !tbaa !9
  %950 = load i32, ptr %47, align 4, !tbaa !9
  %951 = sub nsw i32 %949, %950
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr %38, align 4, !tbaa !9
  %953 = load ptr, ptr %22, align 8, !tbaa !5
  %954 = load i32, ptr %47, align 4, !tbaa !9
  %955 = load i32, ptr %47, align 4, !tbaa !9
  %956 = load i32, ptr %35, align 4, !tbaa !9
  %957 = mul nsw i32 %955, %956
  %958 = add nsw i32 %954, %957
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds %struct.complex, ptr %953, i64 %959
  %961 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %38, ptr noundef %960, ptr noundef %961)
  %962 = load i32, ptr %47, align 4, !tbaa !9
  %963 = load ptr, ptr %17, align 8, !tbaa !5
  %964 = load i32, ptr %963, align 4, !tbaa !9
  %965 = load ptr, ptr %19, align 8, !tbaa !5
  %966 = load i32, ptr %965, align 4, !tbaa !9
  %967 = sub nsw i32 %964, %966
  %968 = icmp slt i32 %962, %967
  br i1 %968, label %969, label %1020

969:                                              ; preds = %780
  %970 = load ptr, ptr %18, align 8, !tbaa !5
  %971 = load i32, ptr %970, align 4, !tbaa !9
  %972 = load i32, ptr %47, align 4, !tbaa !9
  %973 = sub nsw i32 %971, %972
  store i32 %973, ptr %38, align 4, !tbaa !9
  %974 = load ptr, ptr %20, align 8, !tbaa !5
  %975 = load i32, ptr %47, align 4, !tbaa !9
  %976 = add nsw i32 %975, 1
  %977 = load i32, ptr %47, align 4, !tbaa !9
  %978 = load i32, ptr %33, align 4, !tbaa !9
  %979 = mul nsw i32 %977, %978
  %980 = add nsw i32 %976, %979
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds %struct.complex, ptr %974, i64 %981
  %983 = call float @scnrm2_(ptr noundef %38, ptr noundef %982, ptr noundef @c__1)
  store float %983, ptr %41, align 4, !tbaa !17
  %984 = load ptr, ptr %17, align 8, !tbaa !5
  %985 = load i32, ptr %984, align 4, !tbaa !9
  %986 = load ptr, ptr %18, align 8, !tbaa !5
  %987 = load i32, ptr %986, align 4, !tbaa !9
  %988 = sub nsw i32 %985, %987
  %989 = load i32, ptr %47, align 4, !tbaa !9
  %990 = sub nsw i32 %988, %989
  store i32 %990, ptr %39, align 4, !tbaa !9
  %991 = load ptr, ptr %22, align 8, !tbaa !5
  %992 = load i32, ptr %47, align 4, !tbaa !9
  %993 = add nsw i32 %992, 1
  %994 = load i32, ptr %47, align 4, !tbaa !9
  %995 = load i32, ptr %35, align 4, !tbaa !9
  %996 = mul nsw i32 %994, %995
  %997 = add nsw i32 %993, %996
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds %struct.complex, ptr %991, i64 %998
  %1000 = call float @scnrm2_(ptr noundef %39, ptr noundef %999, ptr noundef @c__1)
  store float %1000, ptr %42, align 4, !tbaa !17
  %1001 = load float, ptr %41, align 4, !tbaa !17
  %1002 = load float, ptr %41, align 4, !tbaa !17
  %1003 = load float, ptr %42, align 4, !tbaa !17
  %1004 = load float, ptr %42, align 4, !tbaa !17
  %1005 = fmul float %1003, %1004
  %1006 = call float @llvm.fmuladd.f32(float %1001, float %1002, float %1005)
  %1007 = fpext float %1006 to double
  %1008 = call double @sqrt(double noundef %1007) #7
  %1009 = fptrunc double %1008 to float
  store float %1009, ptr %49, align 4, !tbaa !17
  %1010 = load float, ptr %49, align 4, !tbaa !17
  %1011 = fpext float %1010 to double
  %1012 = load float, ptr %46, align 4, !tbaa !17
  %1013 = fpext float %1012 to double
  %1014 = call double @atan2(double noundef %1011, double noundef %1013) #7
  %1015 = fptrunc double %1014 to float
  %1016 = load ptr, ptr %25, align 8, !tbaa !5
  %1017 = load i32, ptr %47, align 4, !tbaa !9
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds float, ptr %1016, i64 %1018
  store float %1015, ptr %1019, align 4, !tbaa !17
  br label %1020

1020:                                             ; preds = %969, %780
  br label %1021

1021:                                             ; preds = %1020
  %1022 = load i32, ptr %47, align 4, !tbaa !9
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr %47, align 4, !tbaa !9
  br label %278, !llvm.loop !18

1024:                                             ; preds = %278
  %1025 = load ptr, ptr %18, align 8, !tbaa !5
  %1026 = load i32, ptr %1025, align 4, !tbaa !9
  store i32 %1026, ptr %37, align 4, !tbaa !9
  %1027 = load ptr, ptr %17, align 8, !tbaa !5
  %1028 = load i32, ptr %1027, align 4, !tbaa !9
  %1029 = load ptr, ptr %19, align 8, !tbaa !5
  %1030 = load i32, ptr %1029, align 4, !tbaa !9
  %1031 = sub nsw i32 %1028, %1030
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr %47, align 4, !tbaa !9
  br label %1033

1033:                                             ; preds = %1185, %1024
  %1034 = load i32, ptr %47, align 4, !tbaa !9
  %1035 = load i32, ptr %37, align 4, !tbaa !9
  %1036 = icmp sle i32 %1034, %1035
  br i1 %1036, label %1037, label %1188

1037:                                             ; preds = %1033
  %1038 = load ptr, ptr %19, align 8, !tbaa !5
  %1039 = load i32, ptr %1038, align 4, !tbaa !9
  %1040 = load i32, ptr %47, align 4, !tbaa !9
  %1041 = sub nsw i32 %1039, %1040
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr %38, align 4, !tbaa !9
  %1043 = load ptr, ptr %20, align 8, !tbaa !5
  %1044 = load i32, ptr %47, align 4, !tbaa !9
  %1045 = load i32, ptr %47, align 4, !tbaa !9
  %1046 = load i32, ptr %33, align 4, !tbaa !9
  %1047 = mul nsw i32 %1045, %1046
  %1048 = add nsw i32 %1044, %1047
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds %struct.complex, ptr %1043, i64 %1049
  %1051 = load ptr, ptr %21, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %38, ptr noundef %1050, ptr noundef %1051)
  %1052 = load ptr, ptr %19, align 8, !tbaa !5
  %1053 = load i32, ptr %1052, align 4, !tbaa !9
  %1054 = load i32, ptr %47, align 4, !tbaa !9
  %1055 = sub nsw i32 %1053, %1054
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr %38, align 4, !tbaa !9
  %1057 = load ptr, ptr %20, align 8, !tbaa !5
  %1058 = load i32, ptr %47, align 4, !tbaa !9
  %1059 = load i32, ptr %47, align 4, !tbaa !9
  %1060 = load i32, ptr %33, align 4, !tbaa !9
  %1061 = mul nsw i32 %1059, %1060
  %1062 = add nsw i32 %1058, %1061
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds %struct.complex, ptr %1057, i64 %1063
  %1065 = load ptr, ptr %20, align 8, !tbaa !5
  %1066 = load i32, ptr %47, align 4, !tbaa !9
  %1067 = load i32, ptr %47, align 4, !tbaa !9
  %1068 = add nsw i32 %1067, 1
  %1069 = load i32, ptr %33, align 4, !tbaa !9
  %1070 = mul nsw i32 %1068, %1069
  %1071 = add nsw i32 %1066, %1070
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds %struct.complex, ptr %1065, i64 %1072
  %1074 = load ptr, ptr %21, align 8, !tbaa !5
  %1075 = load ptr, ptr %28, align 8, !tbaa !5
  %1076 = load i32, ptr %47, align 4, !tbaa !9
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds %struct.complex, ptr %1075, i64 %1077
  call void @clarfgp_(ptr noundef %38, ptr noundef %1064, ptr noundef %1073, ptr noundef %1074, ptr noundef %1078)
  %1079 = load i32, ptr %47, align 4, !tbaa !9
  %1080 = load i32, ptr %47, align 4, !tbaa !9
  %1081 = load i32, ptr %33, align 4, !tbaa !9
  %1082 = mul nsw i32 %1080, %1081
  %1083 = add nsw i32 %1079, %1082
  store i32 %1083, ptr %38, align 4, !tbaa !9
  %1084 = load ptr, ptr %20, align 8, !tbaa !5
  %1085 = load i32, ptr %38, align 4, !tbaa !9
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds %struct.complex, ptr %1084, i64 %1086
  %1088 = getelementptr inbounds %struct.complex, ptr %1087, i32 0, i32 0
  store float 1.000000e+00, ptr %1088, align 4, !tbaa !11
  %1089 = load ptr, ptr %20, align 8, !tbaa !5
  %1090 = load i32, ptr %38, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds %struct.complex, ptr %1089, i64 %1091
  %1093 = getelementptr inbounds %struct.complex, ptr %1092, i32 0, i32 1
  store float 0.000000e+00, ptr %1093, align 4, !tbaa !14
  %1094 = load ptr, ptr %18, align 8, !tbaa !5
  %1095 = load i32, ptr %1094, align 4, !tbaa !9
  %1096 = load i32, ptr %47, align 4, !tbaa !9
  %1097 = sub nsw i32 %1095, %1096
  store i32 %1097, ptr %38, align 4, !tbaa !9
  %1098 = load ptr, ptr %19, align 8, !tbaa !5
  %1099 = load i32, ptr %1098, align 4, !tbaa !9
  %1100 = load i32, ptr %47, align 4, !tbaa !9
  %1101 = sub nsw i32 %1099, %1100
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr %39, align 4, !tbaa !9
  %1103 = load ptr, ptr %20, align 8, !tbaa !5
  %1104 = load i32, ptr %47, align 4, !tbaa !9
  %1105 = load i32, ptr %47, align 4, !tbaa !9
  %1106 = load i32, ptr %33, align 4, !tbaa !9
  %1107 = mul nsw i32 %1105, %1106
  %1108 = add nsw i32 %1104, %1107
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds %struct.complex, ptr %1103, i64 %1109
  %1111 = load ptr, ptr %21, align 8, !tbaa !5
  %1112 = load ptr, ptr %28, align 8, !tbaa !5
  %1113 = load i32, ptr %47, align 4, !tbaa !9
  %1114 = sext i32 %1113 to i64
  %1115 = getelementptr inbounds %struct.complex, ptr %1112, i64 %1114
  %1116 = load ptr, ptr %20, align 8, !tbaa !5
  %1117 = load i32, ptr %47, align 4, !tbaa !9
  %1118 = add nsw i32 %1117, 1
  %1119 = load i32, ptr %47, align 4, !tbaa !9
  %1120 = load i32, ptr %33, align 4, !tbaa !9
  %1121 = mul nsw i32 %1119, %1120
  %1122 = add nsw i32 %1118, %1121
  %1123 = sext i32 %1122 to i64
  %1124 = getelementptr inbounds %struct.complex, ptr %1116, i64 %1123
  %1125 = load ptr, ptr %21, align 8, !tbaa !5
  %1126 = load ptr, ptr %30, align 8, !tbaa !5
  %1127 = load i32, ptr %50, align 4, !tbaa !9
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds %struct.complex, ptr %1126, i64 %1128
  call void @clarf_(ptr noundef @.str.2, ptr noundef %38, ptr noundef %39, ptr noundef %1110, ptr noundef %1111, ptr noundef %1115, ptr noundef %1124, ptr noundef %1125, ptr noundef %1129)
  %1130 = load ptr, ptr %19, align 8, !tbaa !5
  %1131 = load i32, ptr %1130, align 4, !tbaa !9
  %1132 = load ptr, ptr %18, align 8, !tbaa !5
  %1133 = load i32, ptr %1132, align 4, !tbaa !9
  %1134 = sub nsw i32 %1131, %1133
  store i32 %1134, ptr %38, align 4, !tbaa !9
  %1135 = load ptr, ptr %19, align 8, !tbaa !5
  %1136 = load i32, ptr %1135, align 4, !tbaa !9
  %1137 = load i32, ptr %47, align 4, !tbaa !9
  %1138 = sub nsw i32 %1136, %1137
  %1139 = add nsw i32 %1138, 1
  store i32 %1139, ptr %39, align 4, !tbaa !9
  %1140 = load ptr, ptr %20, align 8, !tbaa !5
  %1141 = load i32, ptr %47, align 4, !tbaa !9
  %1142 = load i32, ptr %47, align 4, !tbaa !9
  %1143 = load i32, ptr %33, align 4, !tbaa !9
  %1144 = mul nsw i32 %1142, %1143
  %1145 = add nsw i32 %1141, %1144
  %1146 = sext i32 %1145 to i64
  %1147 = getelementptr inbounds %struct.complex, ptr %1140, i64 %1146
  %1148 = load ptr, ptr %21, align 8, !tbaa !5
  %1149 = load ptr, ptr %28, align 8, !tbaa !5
  %1150 = load i32, ptr %47, align 4, !tbaa !9
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds %struct.complex, ptr %1149, i64 %1151
  %1153 = load ptr, ptr %22, align 8, !tbaa !5
  %1154 = load ptr, ptr %17, align 8, !tbaa !5
  %1155 = load i32, ptr %1154, align 4, !tbaa !9
  %1156 = load ptr, ptr %19, align 8, !tbaa !5
  %1157 = load i32, ptr %1156, align 4, !tbaa !9
  %1158 = sub nsw i32 %1155, %1157
  %1159 = add nsw i32 %1158, 1
  %1160 = load i32, ptr %47, align 4, !tbaa !9
  %1161 = load i32, ptr %35, align 4, !tbaa !9
  %1162 = mul nsw i32 %1160, %1161
  %1163 = add nsw i32 %1159, %1162
  %1164 = sext i32 %1163 to i64
  %1165 = getelementptr inbounds %struct.complex, ptr %1153, i64 %1164
  %1166 = load ptr, ptr %23, align 8, !tbaa !5
  %1167 = load ptr, ptr %30, align 8, !tbaa !5
  %1168 = load i32, ptr %50, align 4, !tbaa !9
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds %struct.complex, ptr %1167, i64 %1169
  call void @clarf_(ptr noundef @.str.2, ptr noundef %38, ptr noundef %39, ptr noundef %1147, ptr noundef %1148, ptr noundef %1152, ptr noundef %1165, ptr noundef %1166, ptr noundef %1170)
  %1171 = load ptr, ptr %19, align 8, !tbaa !5
  %1172 = load i32, ptr %1171, align 4, !tbaa !9
  %1173 = load i32, ptr %47, align 4, !tbaa !9
  %1174 = sub nsw i32 %1172, %1173
  %1175 = add nsw i32 %1174, 1
  store i32 %1175, ptr %38, align 4, !tbaa !9
  %1176 = load ptr, ptr %20, align 8, !tbaa !5
  %1177 = load i32, ptr %47, align 4, !tbaa !9
  %1178 = load i32, ptr %47, align 4, !tbaa !9
  %1179 = load i32, ptr %33, align 4, !tbaa !9
  %1180 = mul nsw i32 %1178, %1179
  %1181 = add nsw i32 %1177, %1180
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds %struct.complex, ptr %1176, i64 %1182
  %1184 = load ptr, ptr %21, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %38, ptr noundef %1183, ptr noundef %1184)
  br label %1185

1185:                                             ; preds = %1037
  %1186 = load i32, ptr %47, align 4, !tbaa !9
  %1187 = add nsw i32 %1186, 1
  store i32 %1187, ptr %47, align 4, !tbaa !9
  br label %1033, !llvm.loop !19

1188:                                             ; preds = %1033
  %1189 = load ptr, ptr %19, align 8, !tbaa !5
  %1190 = load i32, ptr %1189, align 4, !tbaa !9
  store i32 %1190, ptr %37, align 4, !tbaa !9
  %1191 = load ptr, ptr %18, align 8, !tbaa !5
  %1192 = load i32, ptr %1191, align 4, !tbaa !9
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr %47, align 4, !tbaa !9
  br label %1194

1194:                                             ; preds = %1368, %1188
  %1195 = load i32, ptr %47, align 4, !tbaa !9
  %1196 = load i32, ptr %37, align 4, !tbaa !9
  %1197 = icmp sle i32 %1195, %1196
  br i1 %1197, label %1198, label %1371

1198:                                             ; preds = %1194
  %1199 = load ptr, ptr %19, align 8, !tbaa !5
  %1200 = load i32, ptr %1199, align 4, !tbaa !9
  %1201 = load i32, ptr %47, align 4, !tbaa !9
  %1202 = sub nsw i32 %1200, %1201
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr %38, align 4, !tbaa !9
  %1204 = load ptr, ptr %22, align 8, !tbaa !5
  %1205 = load ptr, ptr %17, align 8, !tbaa !5
  %1206 = load i32, ptr %1205, align 4, !tbaa !9
  %1207 = load ptr, ptr %19, align 8, !tbaa !5
  %1208 = load i32, ptr %1207, align 4, !tbaa !9
  %1209 = sub nsw i32 %1206, %1208
  %1210 = load i32, ptr %47, align 4, !tbaa !9
  %1211 = add nsw i32 %1209, %1210
  %1212 = load ptr, ptr %18, align 8, !tbaa !5
  %1213 = load i32, ptr %1212, align 4, !tbaa !9
  %1214 = sub nsw i32 %1211, %1213
  %1215 = load i32, ptr %47, align 4, !tbaa !9
  %1216 = load i32, ptr %35, align 4, !tbaa !9
  %1217 = mul nsw i32 %1215, %1216
  %1218 = add nsw i32 %1214, %1217
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds %struct.complex, ptr %1204, i64 %1219
  %1221 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %38, ptr noundef %1220, ptr noundef %1221)
  %1222 = load ptr, ptr %19, align 8, !tbaa !5
  %1223 = load i32, ptr %1222, align 4, !tbaa !9
  %1224 = load i32, ptr %47, align 4, !tbaa !9
  %1225 = sub nsw i32 %1223, %1224
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr %38, align 4, !tbaa !9
  %1227 = load ptr, ptr %22, align 8, !tbaa !5
  %1228 = load ptr, ptr %17, align 8, !tbaa !5
  %1229 = load i32, ptr %1228, align 4, !tbaa !9
  %1230 = load ptr, ptr %19, align 8, !tbaa !5
  %1231 = load i32, ptr %1230, align 4, !tbaa !9
  %1232 = sub nsw i32 %1229, %1231
  %1233 = load i32, ptr %47, align 4, !tbaa !9
  %1234 = add nsw i32 %1232, %1233
  %1235 = load ptr, ptr %18, align 8, !tbaa !5
  %1236 = load i32, ptr %1235, align 4, !tbaa !9
  %1237 = sub nsw i32 %1234, %1236
  %1238 = load i32, ptr %47, align 4, !tbaa !9
  %1239 = load i32, ptr %35, align 4, !tbaa !9
  %1240 = mul nsw i32 %1238, %1239
  %1241 = add nsw i32 %1237, %1240
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds %struct.complex, ptr %1227, i64 %1242
  %1244 = load ptr, ptr %22, align 8, !tbaa !5
  %1245 = load ptr, ptr %17, align 8, !tbaa !5
  %1246 = load i32, ptr %1245, align 4, !tbaa !9
  %1247 = load ptr, ptr %19, align 8, !tbaa !5
  %1248 = load i32, ptr %1247, align 4, !tbaa !9
  %1249 = sub nsw i32 %1246, %1248
  %1250 = load i32, ptr %47, align 4, !tbaa !9
  %1251 = add nsw i32 %1249, %1250
  %1252 = load ptr, ptr %18, align 8, !tbaa !5
  %1253 = load i32, ptr %1252, align 4, !tbaa !9
  %1254 = sub nsw i32 %1251, %1253
  %1255 = load i32, ptr %47, align 4, !tbaa !9
  %1256 = add nsw i32 %1255, 1
  %1257 = load i32, ptr %35, align 4, !tbaa !9
  %1258 = mul nsw i32 %1256, %1257
  %1259 = add nsw i32 %1254, %1258
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds %struct.complex, ptr %1244, i64 %1260
  %1262 = load ptr, ptr %23, align 8, !tbaa !5
  %1263 = load ptr, ptr %28, align 8, !tbaa !5
  %1264 = load i32, ptr %47, align 4, !tbaa !9
  %1265 = sext i32 %1264 to i64
  %1266 = getelementptr inbounds %struct.complex, ptr %1263, i64 %1265
  call void @clarfgp_(ptr noundef %38, ptr noundef %1243, ptr noundef %1261, ptr noundef %1262, ptr noundef %1266)
  %1267 = load ptr, ptr %17, align 8, !tbaa !5
  %1268 = load i32, ptr %1267, align 4, !tbaa !9
  %1269 = load ptr, ptr %19, align 8, !tbaa !5
  %1270 = load i32, ptr %1269, align 4, !tbaa !9
  %1271 = sub nsw i32 %1268, %1270
  %1272 = load i32, ptr %47, align 4, !tbaa !9
  %1273 = add nsw i32 %1271, %1272
  %1274 = load ptr, ptr %18, align 8, !tbaa !5
  %1275 = load i32, ptr %1274, align 4, !tbaa !9
  %1276 = sub nsw i32 %1273, %1275
  %1277 = load i32, ptr %47, align 4, !tbaa !9
  %1278 = load i32, ptr %35, align 4, !tbaa !9
  %1279 = mul nsw i32 %1277, %1278
  %1280 = add nsw i32 %1276, %1279
  store i32 %1280, ptr %38, align 4, !tbaa !9
  %1281 = load ptr, ptr %22, align 8, !tbaa !5
  %1282 = load i32, ptr %38, align 4, !tbaa !9
  %1283 = sext i32 %1282 to i64
  %1284 = getelementptr inbounds %struct.complex, ptr %1281, i64 %1283
  %1285 = getelementptr inbounds %struct.complex, ptr %1284, i32 0, i32 0
  store float 1.000000e+00, ptr %1285, align 4, !tbaa !11
  %1286 = load ptr, ptr %22, align 8, !tbaa !5
  %1287 = load i32, ptr %38, align 4, !tbaa !9
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds %struct.complex, ptr %1286, i64 %1288
  %1290 = getelementptr inbounds %struct.complex, ptr %1289, i32 0, i32 1
  store float 0.000000e+00, ptr %1290, align 4, !tbaa !14
  %1291 = load ptr, ptr %19, align 8, !tbaa !5
  %1292 = load i32, ptr %1291, align 4, !tbaa !9
  %1293 = load i32, ptr %47, align 4, !tbaa !9
  %1294 = sub nsw i32 %1292, %1293
  store i32 %1294, ptr %38, align 4, !tbaa !9
  %1295 = load ptr, ptr %19, align 8, !tbaa !5
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  %1297 = load i32, ptr %47, align 4, !tbaa !9
  %1298 = sub nsw i32 %1296, %1297
  %1299 = add nsw i32 %1298, 1
  store i32 %1299, ptr %39, align 4, !tbaa !9
  %1300 = load ptr, ptr %22, align 8, !tbaa !5
  %1301 = load ptr, ptr %17, align 8, !tbaa !5
  %1302 = load i32, ptr %1301, align 4, !tbaa !9
  %1303 = load ptr, ptr %19, align 8, !tbaa !5
  %1304 = load i32, ptr %1303, align 4, !tbaa !9
  %1305 = sub nsw i32 %1302, %1304
  %1306 = load i32, ptr %47, align 4, !tbaa !9
  %1307 = add nsw i32 %1305, %1306
  %1308 = load ptr, ptr %18, align 8, !tbaa !5
  %1309 = load i32, ptr %1308, align 4, !tbaa !9
  %1310 = sub nsw i32 %1307, %1309
  %1311 = load i32, ptr %47, align 4, !tbaa !9
  %1312 = load i32, ptr %35, align 4, !tbaa !9
  %1313 = mul nsw i32 %1311, %1312
  %1314 = add nsw i32 %1310, %1313
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds %struct.complex, ptr %1300, i64 %1315
  %1317 = load ptr, ptr %23, align 8, !tbaa !5
  %1318 = load ptr, ptr %28, align 8, !tbaa !5
  %1319 = load i32, ptr %47, align 4, !tbaa !9
  %1320 = sext i32 %1319 to i64
  %1321 = getelementptr inbounds %struct.complex, ptr %1318, i64 %1320
  %1322 = load ptr, ptr %22, align 8, !tbaa !5
  %1323 = load ptr, ptr %17, align 8, !tbaa !5
  %1324 = load i32, ptr %1323, align 4, !tbaa !9
  %1325 = load ptr, ptr %19, align 8, !tbaa !5
  %1326 = load i32, ptr %1325, align 4, !tbaa !9
  %1327 = sub nsw i32 %1324, %1326
  %1328 = load i32, ptr %47, align 4, !tbaa !9
  %1329 = add nsw i32 %1327, %1328
  %1330 = load ptr, ptr %18, align 8, !tbaa !5
  %1331 = load i32, ptr %1330, align 4, !tbaa !9
  %1332 = sub nsw i32 %1329, %1331
  %1333 = add nsw i32 %1332, 1
  %1334 = load i32, ptr %47, align 4, !tbaa !9
  %1335 = load i32, ptr %35, align 4, !tbaa !9
  %1336 = mul nsw i32 %1334, %1335
  %1337 = add nsw i32 %1333, %1336
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds %struct.complex, ptr %1322, i64 %1338
  %1340 = load ptr, ptr %23, align 8, !tbaa !5
  %1341 = load ptr, ptr %30, align 8, !tbaa !5
  %1342 = load i32, ptr %50, align 4, !tbaa !9
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds %struct.complex, ptr %1341, i64 %1343
  call void @clarf_(ptr noundef @.str.2, ptr noundef %38, ptr noundef %39, ptr noundef %1316, ptr noundef %1317, ptr noundef %1321, ptr noundef %1339, ptr noundef %1340, ptr noundef %1344)
  %1345 = load ptr, ptr %19, align 8, !tbaa !5
  %1346 = load i32, ptr %1345, align 4, !tbaa !9
  %1347 = load i32, ptr %47, align 4, !tbaa !9
  %1348 = sub nsw i32 %1346, %1347
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr %38, align 4, !tbaa !9
  %1350 = load ptr, ptr %22, align 8, !tbaa !5
  %1351 = load ptr, ptr %17, align 8, !tbaa !5
  %1352 = load i32, ptr %1351, align 4, !tbaa !9
  %1353 = load ptr, ptr %19, align 8, !tbaa !5
  %1354 = load i32, ptr %1353, align 4, !tbaa !9
  %1355 = sub nsw i32 %1352, %1354
  %1356 = load i32, ptr %47, align 4, !tbaa !9
  %1357 = add nsw i32 %1355, %1356
  %1358 = load ptr, ptr %18, align 8, !tbaa !5
  %1359 = load i32, ptr %1358, align 4, !tbaa !9
  %1360 = sub nsw i32 %1357, %1359
  %1361 = load i32, ptr %47, align 4, !tbaa !9
  %1362 = load i32, ptr %35, align 4, !tbaa !9
  %1363 = mul nsw i32 %1361, %1362
  %1364 = add nsw i32 %1360, %1363
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds %struct.complex, ptr %1350, i64 %1365
  %1367 = load ptr, ptr %23, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %38, ptr noundef %1366, ptr noundef %1367)
  br label %1368

1368:                                             ; preds = %1198
  %1369 = load i32, ptr %47, align 4, !tbaa !9
  %1370 = add nsw i32 %1369, 1
  store i32 %1370, ptr %47, align 4, !tbaa !9
  br label %1194, !llvm.loop !20

1371:                                             ; preds = %1194
  store i32 1, ptr %56, align 4
  br label %1372

1372:                                             ; preds = %1371, %270, %262
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

42:                                               ; preds = %16
  %43 = load i32, ptr %1, align 4, !tbaa !5
  %44 = load i32, ptr %2, align 4, !tbaa !5
  %45 = sub nsw i32 %40, %44
  %46 = icmp slt i32 %43, %45
  %47 = icmp slt i32 %44, %43
  %or.cond523 = or i1 %47, %46
  br i1 %or.cond523, label %.thread528, label %48

48:                                               ; preds = %42
  %49 = icmp sgt i32 %44, %40
  br i1 %49, label %.thread528, label %50

50:                                               ; preds = %48
  %51 = load i32, ptr %4, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.smax.i32(i32 %43, i32 1)
  %52 = icmp slt i32 %51, %spec.select
  br i1 %52, label %.thread528, label %53

53:                                               ; preds = %50
  %54 = sub nsw i32 %40, %43
  %55 = load i32, ptr %6, align 4, !tbaa !5
  %56 = tail call i32 @llvm.smax.i32(i32 %54, i32 1)
  %57 = icmp slt i32 %55, %56
  br i1 %57, label %.thread528, label %58

58:                                               ; preds = %53
  %59 = add nsw i32 %44, -1
  %60 = add nsw i32 %43, -1
  %61 = tail call i32 @llvm.smax.i32(i32 %59, i32 %60)
  %62 = xor i32 %43, -1
  %63 = add i32 %40, %62
  %64 = tail call i32 @llvm.smax.i32(i32 %61, i32 %63)
  store i32 %44, ptr %25, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  %66 = add nsw i32 %44, 1
  %67 = tail call i32 @llvm.smax.i32(i32 %65, i32 %66)
  %68 = sitofp i32 %67 to float
  store float %68, ptr %13, align 4, !tbaa !9
  %69 = getelementptr inbounds i8, ptr %13, i64 4
  store float 0.000000e+00, ptr %69, align 4, !tbaa !12
  %70 = icmp sge i32 %38, %67
  %or.cond = or i1 %70, %39
  br i1 %or.cond, label %.thread, label %.thread528

.thread528:                                       ; preds = %58, %53, %50, %48, %42, %16
  %.sink = phi i32 [ -1, %16 ], [ -2, %42 ], [ -3, %48 ], [ -5, %50 ], [ -7, %53 ], [ -14, %58 ]
  %.neg = phi i32 [ 1, %16 ], [ 2, %42 ], [ 3, %48 ], [ 5, %50 ], [ 7, %53 ], [ 14, %58 ]
  store i32 %.sink, ptr %15, align 4, !tbaa !5
  store i32 %.neg, ptr %17, align 4, !tbaa !5
  %71 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %17, i32 noundef 7) #9
  br label %.loopexit

.thread:                                          ; preds = %58
  br i1 %39, label %.loopexit, label %72

72:                                               ; preds = %.thread
  store i32 %45, ptr %17, align 4, !tbaa !5
  %.not518561 = icmp slt i32 %45, 1
  br i1 %.not518561, label %._crit_edge566, label %.lr.ph565

.lr.ph565:                                        ; preds = %72
  %73 = add i32 %26, 1
  %74 = add i32 %29, 1
  %75 = getelementptr inbounds i8, ptr %13, i64 8
  %76 = getelementptr inbounds i8, ptr %12, i64 8
  %77 = sext i32 %29 to i64
  %78 = sext i32 %26 to i64
  %79 = add i32 %29, 1
  br label %80

80:                                               ; preds = %.lr.ph565, %260
  %indvars.iv = phi i64 [ 1, %.lr.ph565 ], [ %indvars.iv.next.pre-phi, %260 ]
  %.0511.neg563 = phi i32 [ -1, %.lr.ph565 ], [ %264, %260 ]
  %indvars586 = trunc i64 %indvars.iv to i32
  %81 = icmp eq i64 %indvars.iv, 1
  br i1 %81, label %82, label %128

82:                                               ; preds = %80
  %83 = load i32, ptr %0, align 4, !tbaa !5
  %.not521555 = icmp slt i32 %83, 1
  br i1 %.not521555, label %86, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %82
  %84 = zext nneg i32 %83 to i64
  %85 = shl nuw nsw i64 %84, 3
  call void @llvm.memset.p0.i64(ptr align 4 %12, i8 0, i64 %85, i1 false), !tbaa !13
  store i32 %83, ptr %19, align 4, !tbaa !5
  br label %86

86:                                               ; preds = %.lr.ph.preheader, %82
  %87 = load i32, ptr %1, align 4, !tbaa !5
  %88 = sub nsw i32 %83, %87
  store i32 %88, ptr %18, align 4, !tbaa !5
  %89 = sext i32 %87 to i64
  %gep = getelementptr %struct.complex, ptr %12, i64 %89
  call void @cunbdb5_(ptr noundef nonnull %1, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef %12, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %75, ptr noundef nonnull %25, ptr noundef nonnull %24) #9
  call void @cscal_(ptr noundef nonnull %1, ptr noundef nonnull @c_b1, ptr noundef %12, ptr noundef nonnull @c__1) #9
  call void @clarfgp_(ptr noundef nonnull %1, ptr noundef %12, ptr noundef nonnull %76, ptr noundef nonnull @c__1, ptr noundef %9) #9
  %90 = load i32, ptr %0, align 4, !tbaa !5
  %91 = load i32, ptr %1, align 4, !tbaa !5
  %92 = sub nsw i32 %90, %91
  store i32 %92, ptr %18, align 4, !tbaa !5
  %93 = sext i32 %91 to i64
  %94 = getelementptr %struct.complex, ptr %37, i64 %93
  %95 = getelementptr i8, ptr %94, i64 8
  %96 = getelementptr i8, ptr %94, i64 16
  call void @clarfgp_(ptr noundef nonnull %18, ptr noundef %95, ptr noundef %96, ptr noundef nonnull @c__1, ptr noundef %10) #9
  %97 = load float, ptr %12, align 4, !tbaa !9
  %98 = fpext float %97 to double
  %99 = load i32, ptr %1, align 4, !tbaa !5
  %100 = sext i32 %99 to i64
  %gep558 = getelementptr %struct.complex, ptr %12, i64 %100
  %101 = load float, ptr %gep558, align 4, !tbaa !9
  %102 = fpext float %101 to double
  %103 = call double @atan2(double noundef %98, double noundef %102) #9
  %104 = fptrunc double %103 to float
  store float %104, ptr %7, align 4, !tbaa !13
  %105 = fpext float %104 to double
  %106 = call double @cos(double noundef %105) #9
  %107 = load float, ptr %7, align 4, !tbaa !13
  %108 = fpext float %107 to double
  %109 = call double @sin(double noundef %108) #9
  %110 = fptrunc double %109 to float
  store float %110, ptr %23, align 4, !tbaa !13
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %12, align 4, !tbaa !13
  %111 = load i32, ptr %1, align 4, !tbaa !5
  %112 = add nsw i32 %111, 1
  store i32 %112, ptr %18, align 4, !tbaa !5
  %113 = sext i32 %112 to i64
  %114 = getelementptr inbounds %struct.complex, ptr %37, i64 %113
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %114, align 4, !tbaa !13
  %115 = call <2 x float> @Cf(ptr noundef %9)
  %.sroa.04.0.vec.extract = extractelement <2 x float> %115, i64 0
  %.sroa.04.4.vec.extract = extractelement <2 x float> %115, i64 1
  %116 = fneg float %.sroa.04.4.vec.extract
  %117 = call ptr @_pCf(ptr noundef nonnull %22)
  %118 = getelementptr inbounds i8, ptr %117, i64 4
  store float %.sroa.04.0.vec.extract, ptr %117, align 4
  store float %116, ptr %118, align 4
  call void @clarf_(ptr noundef nonnull @.str.1, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %12, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %75) #9
  %119 = load i32, ptr %0, align 4, !tbaa !5
  %120 = load i32, ptr %1, align 4, !tbaa !5
  %121 = sub nsw i32 %119, %120
  store i32 %121, ptr %18, align 4, !tbaa !5
  %122 = call <2 x float> @Cf(ptr noundef %10)
  %.sroa.03.0.vec.extract = extractelement <2 x float> %122, i64 0
  %.sroa.03.4.vec.extract = extractelement <2 x float> %122, i64 1
  %123 = fneg float %.sroa.03.4.vec.extract
  %124 = call ptr @_pCf(ptr noundef nonnull %22)
  %125 = getelementptr inbounds i8, ptr %124, i64 4
  store float %.sroa.03.0.vec.extract, ptr %124, align 4
  store float %123, ptr %125, align 4
  %126 = load i32, ptr %1, align 4, !tbaa !5
  %127 = sext i32 %126 to i64
  %gep560 = getelementptr %struct.complex, ptr %12, i64 %127
  call void @clarf_(ptr noundef nonnull @.str.1, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef %gep560, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %75) #9
  %.pre599 = add nsw i32 %.0511.neg563, 1
  br label %201

128:                                              ; preds = %80
  %129 = load i32, ptr %1, align 4, !tbaa !5
  %130 = add nsw i32 %.0511.neg563, 1
  %131 = add i32 %130, %129
  store i32 %131, ptr %18, align 4, !tbaa !5
  %132 = load i32, ptr %0, align 4, !tbaa !5
  %133 = sub i32 %130, %129
  %134 = add i32 %133, %132
  store i32 %134, ptr %19, align 4, !tbaa !5
  %135 = load i32, ptr %2, align 4, !tbaa !5
  %136 = add i32 %130, %135
  store i32 %136, ptr %20, align 4, !tbaa !5
  %137 = add nsw i64 %indvars.iv, -1
  %138 = add nsw i32 %indvars586, -1
  %139 = mul nsw i64 %137, %78
  %140 = mul nsw i32 %138, %26
  %141 = add nsw i32 %140, %indvars586
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds %struct.complex, ptr %28, i64 %142
  %144 = mul nsw i64 %137, %77
  %145 = mul nsw i32 %138, %29
  %146 = add nsw i32 %145, %indvars586
  %147 = sext i32 %146 to i64
  %148 = getelementptr inbounds %struct.complex, ptr %31, i64 %147
  %149 = mul i32 %73, %indvars586
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds %struct.complex, ptr %28, i64 %150
  %152 = mul i32 %74, %indvars586
  %153 = sext i32 %152 to i64
  %154 = getelementptr inbounds %struct.complex, ptr %31, i64 %153
  call void @cunbdb5_(ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %143, ptr noundef nonnull @c__1, ptr noundef %148, ptr noundef nonnull @c__1, ptr noundef %151, ptr noundef nonnull %4, ptr noundef %154, ptr noundef nonnull %6, ptr noundef nonnull %75, ptr noundef nonnull %25, ptr noundef nonnull %24) #9
  %155 = load i32, ptr %1, align 4, !tbaa !5
  %156 = add i32 %130, %155
  store i32 %156, ptr %18, align 4, !tbaa !5
  call void @cscal_(ptr noundef nonnull %18, ptr noundef nonnull @c_b1, ptr noundef %143, ptr noundef nonnull @c__1) #9
  %157 = load i32, ptr %1, align 4, !tbaa !5
  %158 = add i32 %130, %157
  store i32 %158, ptr %18, align 4, !tbaa !5
  %159 = add nuw nsw i64 %indvars.iv, 1
  %160 = getelementptr %struct.complex, ptr %28, i64 %139
  %161 = getelementptr %struct.complex, ptr %160, i64 %159
  %162 = getelementptr inbounds %struct.complex, ptr %34, i64 %indvars.iv
  call void @clarfgp_(ptr noundef nonnull %18, ptr noundef %143, ptr noundef %161, ptr noundef nonnull @c__1, ptr noundef nonnull %162) #9
  %163 = load i32, ptr %0, align 4, !tbaa !5
  %164 = load i32, ptr %1, align 4, !tbaa !5
  %165 = add i32 %130, %163
  %166 = sub i32 %165, %164
  store i32 %166, ptr %18, align 4, !tbaa !5
  %167 = getelementptr %struct.complex, ptr %31, i64 %144
  %168 = getelementptr %struct.complex, ptr %167, i64 %159
  %169 = getelementptr inbounds %struct.complex, ptr %35, i64 %indvars.iv
  call void @clarfgp_(ptr noundef nonnull %18, ptr noundef %148, ptr noundef %168, ptr noundef nonnull @c__1, ptr noundef nonnull %169) #9
  %170 = load float, ptr %143, align 4, !tbaa !9
  %171 = fpext float %170 to double
  %172 = load float, ptr %148, align 4, !tbaa !9
  %173 = fpext float %172 to double
  %174 = call double @atan2(double noundef %171, double noundef %173) #9
  %175 = fptrunc double %174 to float
  %176 = getelementptr inbounds float, ptr %32, i64 %indvars.iv
  store float %175, ptr %176, align 4, !tbaa !13
  %177 = fpext float %175 to double
  %178 = call double @cos(double noundef %177) #9
  %179 = load float, ptr %176, align 4, !tbaa !13
  %180 = fpext float %179 to double
  %181 = call double @sin(double noundef %180) #9
  %182 = fptrunc double %181 to float
  store float %182, ptr %23, align 4, !tbaa !13
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %143, align 4, !tbaa !13
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %148, align 4, !tbaa !13
  %183 = load i32, ptr %1, align 4, !tbaa !5
  %184 = add i32 %130, %183
  store i32 %184, ptr %18, align 4, !tbaa !5
  %185 = load i32, ptr %2, align 4, !tbaa !5
  %186 = add i32 %130, %185
  store i32 %186, ptr %19, align 4, !tbaa !5
  %187 = call <2 x float> @Cf(ptr noundef nonnull %162)
  %.sroa.02.0.vec.extract = extractelement <2 x float> %187, i64 0
  %.sroa.02.4.vec.extract = extractelement <2 x float> %187, i64 1
  %188 = fneg float %.sroa.02.4.vec.extract
  %189 = call ptr @_pCf(ptr noundef nonnull %22)
  %190 = getelementptr inbounds i8, ptr %189, i64 4
  store float %.sroa.02.0.vec.extract, ptr %189, align 4
  store float %188, ptr %190, align 4
  call void @clarf_(ptr noundef nonnull @.str.1, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %143, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef %151, ptr noundef nonnull %4, ptr noundef nonnull %75) #9
  %191 = load i32, ptr %0, align 4, !tbaa !5
  %192 = load i32, ptr %1, align 4, !tbaa !5
  %193 = add i32 %130, %191
  %194 = sub i32 %193, %192
  store i32 %194, ptr %18, align 4, !tbaa !5
  %195 = load i32, ptr %2, align 4, !tbaa !5
  %196 = add i32 %130, %195
  store i32 %196, ptr %19, align 4, !tbaa !5
  %197 = call <2 x float> @Cf(ptr noundef nonnull %169)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %197, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %197, i64 1
  %198 = fneg float %.sroa.0.4.vec.extract
  %199 = call ptr @_pCf(ptr noundef nonnull %22)
  %200 = getelementptr inbounds i8, ptr %199, i64 4
  store float %.sroa.0.0.vec.extract, ptr %199, align 4
  store float %198, ptr %200, align 4
  call void @clarf_(ptr noundef nonnull @.str.1, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %148, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef %154, ptr noundef nonnull %6, ptr noundef nonnull %75) #9
  br label %201

201:                                              ; preds = %128, %86
  %indvars.iv.next.pre-phi = phi i64 [ %159, %128 ], [ 2, %86 ]
  %.pre-phi = phi i32 [ %130, %128 ], [ %.pre599, %86 ]
  %.0512.in = phi double [ %178, %128 ], [ %106, %86 ]
  %.0512 = fptrunc double %.0512.in to float
  %202 = load i32, ptr %2, align 4, !tbaa !5
  %203 = add i32 %.pre-phi, %202
  store i32 %203, ptr %18, align 4, !tbaa !5
  %204 = fneg float %.0512
  store float %204, ptr %21, align 4, !tbaa !13
  %205 = mul nsw i64 %indvars.iv, %78
  %206 = mul nsw i32 %26, %indvars586
  %207 = sext i32 %206 to i64
  %208 = getelementptr %struct.complex, ptr %28, i64 %indvars.iv
  %209 = getelementptr %struct.complex, ptr %208, i64 %207
  %210 = mul nsw i64 %indvars.iv, %77
  %211 = mul i32 %79, %indvars586
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds %struct.complex, ptr %31, i64 %212
  call void @csrot_(ptr noundef nonnull %18, ptr noundef %209, ptr noundef nonnull %4, ptr noundef %213, ptr noundef nonnull %6, ptr noundef nonnull %23, ptr noundef nonnull %21) #9
  %214 = load i32, ptr %2, align 4, !tbaa !5
  %215 = add i32 %.pre-phi, %214
  store i32 %215, ptr %18, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %18, ptr noundef %213, ptr noundef nonnull %6) #9
  %216 = load i32, ptr %2, align 4, !tbaa !5
  %217 = add i32 %.pre-phi, %216
  store i32 %217, ptr %18, align 4, !tbaa !5
  %indvars = trunc i64 %indvars.iv.next.pre-phi to i32
  %218 = mul nsw i32 %29, %indvars
  %219 = sext i32 %218 to i64
  %220 = getelementptr %struct.complex, ptr %31, i64 %indvars.iv
  %221 = getelementptr %struct.complex, ptr %220, i64 %219
  %222 = getelementptr inbounds %struct.complex, ptr %36, i64 %indvars.iv
  call void @clarfgp_(ptr noundef nonnull %18, ptr noundef %213, ptr noundef %221, ptr noundef nonnull %6, ptr noundef nonnull %222) #9
  %223 = load float, ptr %213, align 4, !tbaa !9
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %213, align 4, !tbaa !13
  %224 = load i32, ptr %1, align 4, !tbaa !5
  %225 = sub nsw i32 %224, %indvars586
  store i32 %225, ptr %18, align 4, !tbaa !5
  %226 = load i32, ptr %2, align 4, !tbaa !5
  %227 = add i32 %.pre-phi, %226
  store i32 %227, ptr %19, align 4, !tbaa !5
  %228 = getelementptr %struct.complex, ptr %28, i64 %indvars.iv.next.pre-phi
  %229 = getelementptr %struct.complex, ptr %228, i64 %205
  call void @clarf_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %213, ptr noundef nonnull %6, ptr noundef nonnull %222, ptr noundef %229, ptr noundef nonnull %4, ptr noundef nonnull %75) #9
  %230 = load i32, ptr %0, align 4, !tbaa !5
  %231 = load i32, ptr %1, align 4, !tbaa !5
  %.neg538 = add i32 %230, %.0511.neg563
  %232 = sub i32 %.neg538, %231
  store i32 %232, ptr %18, align 4, !tbaa !5
  %233 = load i32, ptr %2, align 4, !tbaa !5
  %234 = add i32 %.pre-phi, %233
  store i32 %234, ptr %19, align 4, !tbaa !5
  %235 = getelementptr %struct.complex, ptr %31, i64 %indvars.iv.next.pre-phi
  %236 = getelementptr %struct.complex, ptr %235, i64 %210
  call void @clarf_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %213, ptr noundef nonnull %6, ptr noundef nonnull %222, ptr noundef %236, ptr noundef nonnull %6, ptr noundef nonnull %75) #9
  %237 = load i32, ptr %2, align 4, !tbaa !5
  %238 = add i32 %.pre-phi, %237
  store i32 %238, ptr %18, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %18, ptr noundef nonnull %213, ptr noundef nonnull %6) #9
  %239 = load i32, ptr %0, align 4, !tbaa !5
  %240 = load i32, ptr %2, align 4, !tbaa !5
  %241 = sub nsw i32 %239, %240
  %242 = sext i32 %241 to i64
  %243 = icmp slt i64 %indvars.iv, %242
  br i1 %243, label %244, label %260

244:                                              ; preds = %201
  %245 = load i32, ptr %1, align 4, !tbaa !5
  %246 = sub nsw i32 %245, %indvars586
  store i32 %246, ptr %18, align 4, !tbaa !5
  %247 = call float @scnrm2_(ptr noundef nonnull %18, ptr noundef %229, ptr noundef nonnull @c__1) #9
  store float %247, ptr %21, align 4, !tbaa !13
  %248 = load i32, ptr %0, align 4, !tbaa !5
  %249 = load i32, ptr %1, align 4, !tbaa !5
  %.neg540 = add i32 %248, %.0511.neg563
  %250 = sub i32 %.neg540, %249
  store i32 %250, ptr %19, align 4, !tbaa !5
  %251 = call float @scnrm2_(ptr noundef nonnull %19, ptr noundef nonnull %236, ptr noundef nonnull @c__1) #9
  %252 = load float, ptr %21, align 4, !tbaa !13
  %253 = fmul float %251, %251
  %254 = call float @llvm.fmuladd.f32(float %252, float %252, float %253)
  %sqrt = call float @llvm.sqrt.f32(float %254)
  store float %sqrt, ptr %23, align 4, !tbaa !13
  %255 = fpext float %sqrt to double
  %256 = fpext float %223 to double
  %257 = call double @atan2(double noundef %255, double noundef %256) #9
  %258 = fptrunc double %257 to float
  %259 = getelementptr inbounds float, ptr %33, i64 %indvars.iv
  store float %258, ptr %259, align 4, !tbaa !13
  br label %260

260:                                              ; preds = %201, %244
  %261 = load i32, ptr %17, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %.not518.not = icmp slt i64 %indvars.iv, %262
  %263 = trunc i64 %indvars.iv to i32
  %264 = xor i32 %263, -1
  br i1 %.not518.not, label %80, label %._crit_edge566.loopexit, !llvm.loop !14

._crit_edge566.loopexit:                          ; preds = %260
  %.pre = load i32, ptr %1, align 4, !tbaa !5
  %.pre595 = load i32, ptr %0, align 4, !tbaa !5
  %.pre596 = load i32, ptr %2, align 4, !tbaa !5
  br label %._crit_edge566

._crit_edge566:                                   ; preds = %._crit_edge566.loopexit, %72
  %265 = phi i32 [ %.pre596, %._crit_edge566.loopexit ], [ %44, %72 ]
  %266 = phi i32 [ %.pre595, %._crit_edge566.loopexit ], [ %40, %72 ]
  %267 = phi i32 [ %.pre, %._crit_edge566.loopexit ], [ %43, %72 ]
  %268 = add i32 %266, 1
  %269 = sub i32 %268, %265
  %.not519568 = icmp sgt i32 %269, %267
  br i1 %.not519568, label %._crit_edge573, label %.lr.ph572

.lr.ph572:                                        ; preds = %._crit_edge566
  %270 = getelementptr inbounds i8, ptr %13, i64 8
  %271 = sext i32 %269 to i64
  %272 = sext i32 %26 to i64
  %273 = add i32 %26, 1
  %274 = sext i32 %267 to i64
  br label %275

275:                                              ; preds = %.lr.ph572, %275
  %indvars.iv587 = phi i64 [ %271, %.lr.ph572 ], [ %indvars.iv.next588, %275 ]
  %indvars590 = trunc i64 %indvars.iv587 to i32
  %276 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub = sub i32 %276, %indvars590
  %277 = add i32 %reass.sub, 1
  store i32 %277, ptr %18, align 4, !tbaa !5
  %278 = mul nsw i64 %indvars.iv587, %272
  %279 = mul i32 %273, %indvars590
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds %struct.complex, ptr %28, i64 %280
  call void @clacgv_(ptr noundef nonnull %18, ptr noundef %281, ptr noundef nonnull %4) #9
  %282 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub580 = sub i32 %282, %indvars590
  %283 = add i32 %reass.sub580, 1
  store i32 %283, ptr %18, align 4, !tbaa !5
  %indvars.iv.next588 = add nsw i64 %indvars.iv587, 1
  %indvars589 = trunc i64 %indvars.iv.next588 to i32
  %284 = mul nsw i32 %26, %indvars589
  %285 = sext i32 %284 to i64
  %286 = getelementptr %struct.complex, ptr %28, i64 %indvars.iv587
  %287 = getelementptr %struct.complex, ptr %286, i64 %285
  %288 = getelementptr inbounds %struct.complex, ptr %36, i64 %indvars.iv587
  call void @clarfgp_(ptr noundef nonnull %18, ptr noundef %281, ptr noundef %287, ptr noundef nonnull %4, ptr noundef nonnull %288) #9
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %281, align 4, !tbaa !13
  %289 = load i32, ptr %1, align 4, !tbaa !5
  %290 = sub nsw i32 %289, %indvars590
  store i32 %290, ptr %18, align 4, !tbaa !5
  %291 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub581 = sub i32 %291, %indvars590
  %292 = add i32 %reass.sub581, 1
  store i32 %292, ptr %19, align 4, !tbaa !5
  %293 = getelementptr %struct.complex, ptr %28, i64 %indvars.iv.next588
  %294 = getelementptr %struct.complex, ptr %293, i64 %278
  call void @clarf_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %281, ptr noundef nonnull %4, ptr noundef nonnull %288, ptr noundef %294, ptr noundef nonnull %4, ptr noundef nonnull %270) #9
  %295 = load i32, ptr %2, align 4, !tbaa !5
  %296 = load i32, ptr %1, align 4, !tbaa !5
  %297 = sub nsw i32 %295, %296
  store i32 %297, ptr %18, align 4, !tbaa !5
  %reass.sub582 = sub i32 %295, %indvars590
  %298 = add i32 %reass.sub582, 1
  store i32 %298, ptr %19, align 4, !tbaa !5
  %299 = load i32, ptr %0, align 4, !tbaa !5
  %300 = trunc i64 %indvars.iv587 to i32
  %301 = mul i32 %29, %300
  %302 = add i32 %301, 1
  %303 = sub i32 %302, %295
  %304 = add i32 %303, %299
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds %struct.complex, ptr %31, i64 %305
  call void @clarf_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %281, ptr noundef nonnull %4, ptr noundef nonnull %288, ptr noundef %306, ptr noundef nonnull %6, ptr noundef nonnull %270) #9
  %307 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub583 = sub i32 %307, %indvars590
  %308 = add i32 %reass.sub583, 1
  store i32 %308, ptr %18, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %18, ptr noundef nonnull %281, ptr noundef nonnull %4) #9
  %.not519.not = icmp slt i64 %indvars.iv587, %274
  br i1 %.not519.not, label %275, label %._crit_edge573.loopexit, !llvm.loop !16

._crit_edge573.loopexit:                          ; preds = %275
  %.pre597 = load i32, ptr %2, align 4, !tbaa !5
  %.pre598 = load i32, ptr %1, align 4, !tbaa !5
  br label %._crit_edge573

._crit_edge573:                                   ; preds = %._crit_edge573.loopexit, %._crit_edge566
  %309 = phi i32 [ %.pre598, %._crit_edge573.loopexit ], [ %267, %._crit_edge566 ]
  %310 = phi i32 [ %.pre597, %._crit_edge573.loopexit ], [ %265, %._crit_edge566 ]
  %.not520575.not = icmp slt i32 %309, %310
  br i1 %.not520575.not, label %.lr.ph579, label %.loopexit

.lr.ph579:                                        ; preds = %._crit_edge573
  %311 = getelementptr inbounds i8, ptr %13, i64 8
  %312 = sext i32 %309 to i64
  %313 = add nsw i64 %312, 1
  %314 = sext i32 %29 to i64
  %315 = add i32 %29, 1
  %316 = sext i32 %310 to i64
  br label %317

317:                                              ; preds = %.lr.ph579, %317
  %indvars.iv591 = phi i64 [ %313, %.lr.ph579 ], [ %indvars.iv.next592, %317 ]
  %.2.neg577.in = phi i32 [ %309, %.lr.ph579 ], [ %indvars594, %317 ]
  %indvars594 = trunc i64 %indvars.iv591 to i32
  %318 = load i32, ptr %2, align 4, !tbaa !5
  %319 = sub i32 %318, %.2.neg577.in
  store i32 %319, ptr %18, align 4, !tbaa !5
  %320 = load i32, ptr %0, align 4, !tbaa !5
  %321 = load i32, ptr %1, align 4, !tbaa !5
  %322 = mul nsw i64 %indvars.iv591, %314
  %.neg545 = mul i32 %315, %indvars594
  %323 = add i32 %.neg545, %320
  %324 = add i32 %318, %321
  %325 = sub i32 %323, %324
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds %struct.complex, ptr %31, i64 %326
  call void @clacgv_(ptr noundef nonnull %18, ptr noundef %327, ptr noundef nonnull %6) #9
  %328 = load i32, ptr %2, align 4, !tbaa !5
  %329 = sub i32 %328, %.2.neg577.in
  store i32 %329, ptr %18, align 4, !tbaa !5
  %330 = load i32, ptr %0, align 4, !tbaa !5
  %331 = load i32, ptr %1, align 4, !tbaa !5
  %332 = add i32 %330, %indvars594
  %333 = add i32 %328, %331
  %334 = sub i32 %332, %333
  %335 = sext i32 %334 to i64
  %336 = getelementptr %struct.complex, ptr %31, i64 %322
  %337 = getelementptr %struct.complex, ptr %336, i64 %335
  %indvars.iv.next592 = add nsw i64 %indvars.iv591, 1
  %338 = mul nsw i64 %indvars.iv.next592, %314
  %339 = getelementptr %struct.complex, ptr %31, i64 %338
  %340 = getelementptr %struct.complex, ptr %339, i64 %335
  %341 = getelementptr inbounds %struct.complex, ptr %36, i64 %indvars.iv591
  call void @clarfgp_(ptr noundef nonnull %18, ptr noundef %337, ptr noundef %340, ptr noundef nonnull %6, ptr noundef nonnull %341) #9
  %342 = load i32, ptr %0, align 4, !tbaa !5
  %343 = load i32, ptr %2, align 4, !tbaa !5
  %344 = load i32, ptr %1, align 4, !tbaa !5
  %.neg551 = add i32 %342, %indvars594
  %345 = add i32 %343, %344
  %346 = sub i32 %.neg551, %345
  %347 = trunc nsw i64 %322 to i32
  %348 = add nsw i32 %346, %347
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds %struct.complex, ptr %31, i64 %349
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %350, align 4, !tbaa !13
  %351 = sub nsw i32 %343, %indvars594
  store i32 %351, ptr %18, align 4, !tbaa !5
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr %19, align 4, !tbaa !5
  %353 = add i32 %347, 1
  %354 = add i32 %353, %346
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds %struct.complex, ptr %31, i64 %355
  call void @clarf_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %350, ptr noundef nonnull %6, ptr noundef nonnull %341, ptr noundef %356, ptr noundef nonnull %6, ptr noundef nonnull %311) #9
  %357 = load i32, ptr %2, align 4, !tbaa !5
  %358 = sub i32 %357, %.2.neg577.in
  store i32 %358, ptr %18, align 4, !tbaa !5
  %359 = load i32, ptr %0, align 4, !tbaa !5
  %360 = load i32, ptr %1, align 4, !tbaa !5
  %361 = add i32 %.neg545, %359
  %362 = add i32 %357, %360
  %363 = sub i32 %361, %362
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds %struct.complex, ptr %31, i64 %364
  call void @clacgv_(ptr noundef nonnull %18, ptr noundef %365, ptr noundef nonnull %6) #9
  %.not520.not = icmp slt i64 %indvars.iv591, %316
  br i1 %.not520.not, label %317, label %.loopexit, !llvm.loop !17

.loopexit:                                        ; preds = %317, %._crit_edge573, %.thread, %.thread528
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #9
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

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

declare float @scnrm2_(ptr noundef, 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) #6

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = !{!10, !11, i64 4}
!13 = !{!11, !11, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}


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