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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cgeevx_(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, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21) #0 {
  %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 ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca %struct.complex, align 4
  %57 = alloca %struct.complex, align 4
  %58 = alloca [1 x i8], align 1
  %59 = alloca float, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca float, align 4
  %69 = alloca [1 x i32], align 4
  %70 = alloca float, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca float, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca [1 x i8], align 1
  %83 = alloca float, align 4
  %84 = alloca [1 x float], align 4
  %85 = alloca float, align 4
  %86 = alloca %struct.complex, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca { float, float }, align 4
  %90 = alloca { float, float }, align 4
  %91 = alloca { float, float }, align 4
  %92 = alloca { float, float }, align 4
  store ptr %0, ptr %23, align 8, !tbaa !5
  store ptr %1, ptr %24, align 8, !tbaa !5
  store ptr %2, ptr %25, align 8, !tbaa !5
  store ptr %3, ptr %26, align 8, !tbaa !5
  store ptr %4, ptr %27, align 8, !tbaa !5
  store ptr %5, ptr %28, align 8, !tbaa !5
  store ptr %6, ptr %29, align 8, !tbaa !5
  store ptr %7, ptr %30, align 8, !tbaa !5
  store ptr %8, ptr %31, align 8, !tbaa !5
  store ptr %9, ptr %32, align 8, !tbaa !5
  store ptr %10, ptr %33, align 8, !tbaa !5
  store ptr %11, ptr %34, align 8, !tbaa !5
  store ptr %12, ptr %35, align 8, !tbaa !5
  store ptr %13, ptr %36, align 8, !tbaa !5
  store ptr %14, ptr %37, align 8, !tbaa !5
  store ptr %15, ptr %38, align 8, !tbaa !5
  store ptr %16, ptr %39, align 8, !tbaa !5
  store ptr %17, ptr %40, align 8, !tbaa !5
  store ptr %18, ptr %41, align 8, !tbaa !5
  store ptr %19, ptr %42, align 8, !tbaa !5
  store ptr %20, ptr %43, align 8, !tbaa !5
  store ptr %21, ptr %44, align 8, !tbaa !5
  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
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #7
  %93 = load ptr, ptr %29, align 8, !tbaa !5
  %94 = load i32, ptr %93, align 4, !tbaa !9
  store i32 %94, ptr %45, align 4, !tbaa !9
  %95 = load i32, ptr %45, align 4, !tbaa !9
  %96 = mul nsw i32 %95, 1
  %97 = add nsw i32 1, %96
  store i32 %97, ptr %46, align 4, !tbaa !9
  %98 = load i32, ptr %46, align 4, !tbaa !9
  %99 = load ptr, ptr %28, align 8, !tbaa !5
  %100 = sext i32 %98 to i64
  %101 = sub i64 0, %100
  %102 = getelementptr inbounds %struct.complex, ptr %99, i64 %101
  store ptr %102, ptr %28, align 8, !tbaa !5
  %103 = load ptr, ptr %30, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.complex, ptr %103, i32 -1
  store ptr %104, ptr %30, align 8, !tbaa !5
  %105 = load ptr, ptr %32, align 8, !tbaa !5
  %106 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %106, ptr %47, align 4, !tbaa !9
  %107 = load i32, ptr %47, align 4, !tbaa !9
  %108 = mul nsw i32 %107, 1
  %109 = add nsw i32 1, %108
  store i32 %109, ptr %48, align 4, !tbaa !9
  %110 = load i32, ptr %48, align 4, !tbaa !9
  %111 = load ptr, ptr %31, align 8, !tbaa !5
  %112 = sext i32 %110 to i64
  %113 = sub i64 0, %112
  %114 = getelementptr inbounds %struct.complex, ptr %111, i64 %113
  store ptr %114, ptr %31, align 8, !tbaa !5
  %115 = load ptr, ptr %34, align 8, !tbaa !5
  %116 = load i32, ptr %115, align 4, !tbaa !9
  store i32 %116, ptr %49, align 4, !tbaa !9
  %117 = load i32, ptr %49, align 4, !tbaa !9
  %118 = mul nsw i32 %117, 1
  %119 = add nsw i32 1, %118
  store i32 %119, ptr %50, align 4, !tbaa !9
  %120 = load i32, ptr %50, align 4, !tbaa !9
  %121 = load ptr, ptr %33, align 8, !tbaa !5
  %122 = sext i32 %120 to i64
  %123 = sub i64 0, %122
  %124 = getelementptr inbounds %struct.complex, ptr %121, i64 %123
  store ptr %124, ptr %33, align 8, !tbaa !5
  %125 = load ptr, ptr %37, align 8, !tbaa !5
  %126 = getelementptr inbounds float, ptr %125, i32 -1
  store ptr %126, ptr %37, align 8, !tbaa !5
  %127 = load ptr, ptr %39, align 8, !tbaa !5
  %128 = getelementptr inbounds float, ptr %127, i32 -1
  store ptr %128, ptr %39, align 8, !tbaa !5
  %129 = load ptr, ptr %40, align 8, !tbaa !5
  %130 = getelementptr inbounds float, ptr %129, i32 -1
  store ptr %130, ptr %40, align 8, !tbaa !5
  %131 = load ptr, ptr %41, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.complex, ptr %131, i32 -1
  store ptr %132, ptr %41, align 8, !tbaa !5
  %133 = load ptr, ptr %43, align 8, !tbaa !5
  %134 = getelementptr inbounds float, ptr %133, i32 -1
  store ptr %134, ptr %43, align 8, !tbaa !5
  %135 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 0, ptr %135, align 4, !tbaa !9
  %136 = load ptr, ptr %42, align 8, !tbaa !5
  %137 = load i32, ptr %136, align 4, !tbaa !9
  %138 = icmp eq i32 %137, -1
  %139 = zext i1 %138 to i32
  store i32 %139, ptr %78, align 4, !tbaa !9
  %140 = load ptr, ptr %24, align 8, !tbaa !5
  %141 = call i32 @lsame_(ptr noundef %140, ptr noundef @.str)
  store i32 %141, ptr %73, align 4, !tbaa !9
  %142 = load ptr, ptr %25, align 8, !tbaa !5
  %143 = call i32 @lsame_(ptr noundef %142, ptr noundef @.str)
  store i32 %143, ptr %79, align 4, !tbaa !9
  %144 = load ptr, ptr %26, align 8, !tbaa !5
  %145 = call i32 @lsame_(ptr noundef %144, ptr noundef @.str.1)
  store i32 %145, ptr %80, align 4, !tbaa !9
  %146 = load ptr, ptr %26, align 8, !tbaa !5
  %147 = call i32 @lsame_(ptr noundef %146, ptr noundef @.str.2)
  store i32 %147, ptr %76, align 4, !tbaa !9
  %148 = load ptr, ptr %26, align 8, !tbaa !5
  %149 = call i32 @lsame_(ptr noundef %148, ptr noundef @.str)
  store i32 %149, ptr %81, align 4, !tbaa !9
  %150 = load ptr, ptr %26, align 8, !tbaa !5
  %151 = call i32 @lsame_(ptr noundef %150, ptr noundef @.str.3)
  store i32 %151, ptr %74, align 4, !tbaa !9
  %152 = load ptr, ptr %23, align 8, !tbaa !5
  %153 = call i32 @lsame_(ptr noundef %152, ptr noundef @.str.1)
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %169, label %155

155:                                              ; preds = %22
  %156 = load ptr, ptr %23, align 8, !tbaa !5
  %157 = call i32 @lsame_(ptr noundef %156, ptr noundef @.str.4)
  %158 = icmp ne i32 %157, 0
  br i1 %158, label %169, label %159

159:                                              ; preds = %155
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  %161 = call i32 @lsame_(ptr noundef %160, ptr noundef @.str.5)
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %169, label %163

163:                                              ; preds = %159
  %164 = load ptr, ptr %23, align 8, !tbaa !5
  %165 = call i32 @lsame_(ptr noundef %164, ptr noundef @.str.3)
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %169, label %167

167:                                              ; preds = %163
  %168 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -1, ptr %168, align 4, !tbaa !9
  br label %271

169:                                              ; preds = %163, %159, %155, %22
  %170 = load i32, ptr %73, align 4, !tbaa !9
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %178, label %172

172:                                              ; preds = %169
  %173 = load ptr, ptr %24, align 8, !tbaa !5
  %174 = call i32 @lsame_(ptr noundef %173, ptr noundef @.str.1)
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %178, label %176

176:                                              ; preds = %172
  %177 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -2, ptr %177, align 4, !tbaa !9
  br label %270

178:                                              ; preds = %172, %169
  %179 = load i32, ptr %79, align 4, !tbaa !9
  %180 = icmp ne i32 %179, 0
  br i1 %180, label %187, label %181

181:                                              ; preds = %178
  %182 = load ptr, ptr %25, align 8, !tbaa !5
  %183 = call i32 @lsame_(ptr noundef %182, ptr noundef @.str.1)
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %187, label %185

185:                                              ; preds = %181
  %186 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -3, ptr %186, align 4, !tbaa !9
  br label %269

187:                                              ; preds = %181, %178
  %188 = load i32, ptr %80, align 4, !tbaa !9
  %189 = icmp ne i32 %188, 0
  br i1 %189, label %199, label %190

190:                                              ; preds = %187
  %191 = load i32, ptr %76, align 4, !tbaa !9
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %199, label %193

193:                                              ; preds = %190
  %194 = load i32, ptr %74, align 4, !tbaa !9
  %195 = icmp ne i32 %194, 0
  br i1 %195, label %199, label %196

196:                                              ; preds = %193
  %197 = load i32, ptr %81, align 4, !tbaa !9
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %199, label %211

199:                                              ; preds = %196, %193, %190, %187
  %200 = load i32, ptr %76, align 4, !tbaa !9
  %201 = icmp ne i32 %200, 0
  br i1 %201, label %205, label %202

202:                                              ; preds = %199
  %203 = load i32, ptr %74, align 4, !tbaa !9
  %204 = icmp ne i32 %203, 0
  br i1 %204, label %205, label %213

205:                                              ; preds = %202, %199
  %206 = load i32, ptr %73, align 4, !tbaa !9
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %211

208:                                              ; preds = %205
  %209 = load i32, ptr %79, align 4, !tbaa !9
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %213, label %211

211:                                              ; preds = %208, %205, %196
  %212 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -4, ptr %212, align 4, !tbaa !9
  br label %268

213:                                              ; preds = %208, %202
  %214 = load ptr, ptr %27, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = icmp slt i32 %215, 0
  br i1 %216, label %217, label %219

217:                                              ; preds = %213
  %218 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -5, ptr %218, align 4, !tbaa !9
  br label %267

219:                                              ; preds = %213
  %220 = load ptr, ptr %29, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  %222 = load ptr, ptr %27, align 8, !tbaa !5
  %223 = load i32, ptr %222, align 4, !tbaa !9
  %224 = icmp sge i32 1, %223
  br i1 %224, label %225, label %226

225:                                              ; preds = %219
  br label %229

226:                                              ; preds = %219
  %227 = load ptr, ptr %27, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  br label %229

229:                                              ; preds = %226, %225
  %230 = phi i32 [ 1, %225 ], [ %228, %226 ]
  %231 = icmp slt i32 %221, %230
  br i1 %231, label %232, label %234

232:                                              ; preds = %229
  %233 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -7, ptr %233, align 4, !tbaa !9
  br label %266

234:                                              ; preds = %229
  %235 = load ptr, ptr %32, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  %237 = icmp slt i32 %236, 1
  br i1 %237, label %247, label %238

238:                                              ; preds = %234
  %239 = load i32, ptr %73, align 4, !tbaa !9
  %240 = icmp ne i32 %239, 0
  br i1 %240, label %241, label %249

241:                                              ; preds = %238
  %242 = load ptr, ptr %32, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = load ptr, ptr %27, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp slt i32 %243, %245
  br i1 %246, label %247, label %249

247:                                              ; preds = %241, %234
  %248 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -10, ptr %248, align 4, !tbaa !9
  br label %265

249:                                              ; preds = %241, %238
  %250 = load ptr, ptr %34, align 8, !tbaa !5
  %251 = load i32, ptr %250, align 4, !tbaa !9
  %252 = icmp slt i32 %251, 1
  br i1 %252, label %262, label %253

253:                                              ; preds = %249
  %254 = load i32, ptr %79, align 4, !tbaa !9
  %255 = icmp ne i32 %254, 0
  br i1 %255, label %256, label %264

256:                                              ; preds = %253
  %257 = load ptr, ptr %34, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %27, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp slt i32 %258, %260
  br i1 %261, label %262, label %264

262:                                              ; preds = %256, %249
  %263 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -12, ptr %263, align 4, !tbaa !9
  br label %264

264:                                              ; preds = %262, %256, %253
  br label %265

265:                                              ; preds = %264, %247
  br label %266

266:                                              ; preds = %265, %232
  br label %267

267:                                              ; preds = %266, %217
  br label %268

268:                                              ; preds = %267, %211
  br label %269

269:                                              ; preds = %268, %185
  br label %270

270:                                              ; preds = %269, %176
  br label %271

271:                                              ; preds = %270, %167
  %272 = load ptr, ptr %44, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = icmp eq i32 %273, 0
  br i1 %274, label %275, label %647

275:                                              ; preds = %271
  %276 = load ptr, ptr %27, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = icmp eq i32 %277, 0
  br i1 %278, label %279, label %280

279:                                              ; preds = %275
  store i32 1, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %628

280:                                              ; preds = %275
  %281 = load ptr, ptr %27, align 8, !tbaa !5
  %282 = load i32, ptr %281, align 4, !tbaa !9
  %283 = load ptr, ptr %27, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  %285 = load ptr, ptr %27, align 8, !tbaa !5
  %286 = load ptr, ptr %27, align 8, !tbaa !5
  %287 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %285, ptr noundef @c__1, ptr noundef %286, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %288 = mul nsw i32 %284, %287
  %289 = add nsw i32 %282, %288
  store i32 %289, ptr %72, align 4, !tbaa !9
  %290 = load i32, ptr %73, align 4, !tbaa !9
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %292, label %346

292:                                              ; preds = %280
  %293 = getelementptr inbounds [1 x i32], ptr %69, i64 0, i64 0
  %294 = load ptr, ptr %27, align 8, !tbaa !5
  %295 = load ptr, ptr %28, align 8, !tbaa !5
  %296 = load i32, ptr %46, align 4, !tbaa !9
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds %struct.complex, ptr %295, i64 %297
  %299 = load ptr, ptr %29, align 8, !tbaa !5
  %300 = load ptr, ptr %31, align 8, !tbaa !5
  %301 = load i32, ptr %48, align 4, !tbaa !9
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds %struct.complex, ptr %300, i64 %302
  %304 = load ptr, ptr %32, align 8, !tbaa !5
  %305 = load ptr, ptr %33, align 8, !tbaa !5
  %306 = load i32, ptr %50, align 4, !tbaa !9
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds %struct.complex, ptr %305, i64 %307
  %309 = load ptr, ptr %34, align 8, !tbaa !5
  %310 = load ptr, ptr %27, align 8, !tbaa !5
  %311 = load ptr, ptr %41, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.complex, ptr %311, i64 1
  %313 = load ptr, ptr %43, align 8, !tbaa !5
  %314 = getelementptr inbounds float, ptr %313, i64 1
  call void @ctrevc3_(ptr noundef @.str.8, ptr noundef @.str.3, ptr noundef %293, ptr noundef %294, ptr noundef %298, ptr noundef %299, ptr noundef %303, ptr noundef %304, ptr noundef %308, ptr noundef %309, ptr noundef %310, ptr noundef %63, ptr noundef %312, ptr noundef @c_n1, ptr noundef %314, ptr noundef @c_n1, ptr noundef %60)
  %315 = load ptr, ptr %41, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.complex, ptr %315, i64 1
  %317 = getelementptr inbounds %struct.complex, ptr %316, i32 0, i32 0
  %318 = load float, ptr %317, align 4, !tbaa !11
  %319 = fptosi float %318 to i32
  store i32 %319, ptr %87, align 4, !tbaa !9
  %320 = load i32, ptr %72, align 4, !tbaa !9
  %321 = load i32, ptr %87, align 4, !tbaa !9
  %322 = icmp sge i32 %320, %321
  br i1 %322, label %323, label %325

323:                                              ; preds = %292
  %324 = load i32, ptr %72, align 4, !tbaa !9
  br label %327

325:                                              ; preds = %292
  %326 = load i32, ptr %87, align 4, !tbaa !9
  br label %327

327:                                              ; preds = %325, %323
  %328 = phi i32 [ %324, %323 ], [ %326, %325 ]
  store i32 %328, ptr %72, align 4, !tbaa !9
  %329 = load ptr, ptr %27, align 8, !tbaa !5
  %330 = load ptr, ptr %27, align 8, !tbaa !5
  %331 = load ptr, ptr %28, align 8, !tbaa !5
  %332 = load i32, ptr %46, align 4, !tbaa !9
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds %struct.complex, ptr %331, i64 %333
  %335 = load ptr, ptr %29, align 8, !tbaa !5
  %336 = load ptr, ptr %30, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.complex, ptr %336, i64 1
  %338 = load ptr, ptr %31, align 8, !tbaa !5
  %339 = load i32, ptr %48, align 4, !tbaa !9
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds %struct.complex, ptr %338, i64 %340
  %342 = load ptr, ptr %32, align 8, !tbaa !5
  %343 = load ptr, ptr %41, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.complex, ptr %343, i64 1
  %345 = load ptr, ptr %44, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %329, ptr noundef @c__1, ptr noundef %330, ptr noundef %334, ptr noundef %335, ptr noundef %337, ptr noundef %341, ptr noundef %342, ptr noundef %344, ptr noundef @c_n1, ptr noundef %345)
  br label %444

346:                                              ; preds = %280
  %347 = load i32, ptr %79, align 4, !tbaa !9
  %348 = icmp ne i32 %347, 0
  br i1 %348, label %349, label %403

349:                                              ; preds = %346
  %350 = getelementptr inbounds [1 x i32], ptr %69, i64 0, i64 0
  %351 = load ptr, ptr %27, align 8, !tbaa !5
  %352 = load ptr, ptr %28, align 8, !tbaa !5
  %353 = load i32, ptr %46, align 4, !tbaa !9
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds %struct.complex, ptr %352, i64 %354
  %356 = load ptr, ptr %29, align 8, !tbaa !5
  %357 = load ptr, ptr %31, align 8, !tbaa !5
  %358 = load i32, ptr %48, align 4, !tbaa !9
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds %struct.complex, ptr %357, i64 %359
  %361 = load ptr, ptr %32, align 8, !tbaa !5
  %362 = load ptr, ptr %33, align 8, !tbaa !5
  %363 = load i32, ptr %50, align 4, !tbaa !9
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds %struct.complex, ptr %362, i64 %364
  %366 = load ptr, ptr %34, align 8, !tbaa !5
  %367 = load ptr, ptr %27, align 8, !tbaa !5
  %368 = load ptr, ptr %41, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.complex, ptr %368, i64 1
  %370 = load ptr, ptr %43, align 8, !tbaa !5
  %371 = getelementptr inbounds float, ptr %370, i64 1
  call void @ctrevc3_(ptr noundef @.str.9, ptr noundef @.str.3, ptr noundef %350, ptr noundef %351, ptr noundef %355, ptr noundef %356, ptr noundef %360, ptr noundef %361, ptr noundef %365, ptr noundef %366, ptr noundef %367, ptr noundef %63, ptr noundef %369, ptr noundef @c_n1, ptr noundef %371, ptr noundef @c_n1, ptr noundef %60)
  %372 = load ptr, ptr %41, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.complex, ptr %372, i64 1
  %374 = getelementptr inbounds %struct.complex, ptr %373, i32 0, i32 0
  %375 = load float, ptr %374, align 4, !tbaa !11
  %376 = fptosi float %375 to i32
  store i32 %376, ptr %87, align 4, !tbaa !9
  %377 = load i32, ptr %72, align 4, !tbaa !9
  %378 = load i32, ptr %87, align 4, !tbaa !9
  %379 = icmp sge i32 %377, %378
  br i1 %379, label %380, label %382

380:                                              ; preds = %349
  %381 = load i32, ptr %72, align 4, !tbaa !9
  br label %384

382:                                              ; preds = %349
  %383 = load i32, ptr %87, align 4, !tbaa !9
  br label %384

384:                                              ; preds = %382, %380
  %385 = phi i32 [ %381, %380 ], [ %383, %382 ]
  store i32 %385, ptr %72, align 4, !tbaa !9
  %386 = load ptr, ptr %27, align 8, !tbaa !5
  %387 = load ptr, ptr %27, align 8, !tbaa !5
  %388 = load ptr, ptr %28, align 8, !tbaa !5
  %389 = load i32, ptr %46, align 4, !tbaa !9
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds %struct.complex, ptr %388, i64 %390
  %392 = load ptr, ptr %29, align 8, !tbaa !5
  %393 = load ptr, ptr %30, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.complex, ptr %393, i64 1
  %395 = load ptr, ptr %33, align 8, !tbaa !5
  %396 = load i32, ptr %50, align 4, !tbaa !9
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds %struct.complex, ptr %395, i64 %397
  %399 = load ptr, ptr %34, align 8, !tbaa !5
  %400 = load ptr, ptr %41, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.complex, ptr %400, i64 1
  %402 = load ptr, ptr %44, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %386, ptr noundef @c__1, ptr noundef %387, ptr noundef %391, ptr noundef %392, ptr noundef %394, ptr noundef %398, ptr noundef %399, ptr noundef %401, ptr noundef @c_n1, ptr noundef %402)
  br label %443

403:                                              ; preds = %346
  %404 = load i32, ptr %80, align 4, !tbaa !9
  %405 = icmp ne i32 %404, 0
  br i1 %405, label %406, label %424

406:                                              ; preds = %403
  %407 = load ptr, ptr %27, align 8, !tbaa !5
  %408 = load ptr, ptr %27, align 8, !tbaa !5
  %409 = load ptr, ptr %28, align 8, !tbaa !5
  %410 = load i32, ptr %46, align 4, !tbaa !9
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds %struct.complex, ptr %409, i64 %411
  %413 = load ptr, ptr %29, align 8, !tbaa !5
  %414 = load ptr, ptr %30, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.complex, ptr %414, i64 1
  %416 = load ptr, ptr %33, align 8, !tbaa !5
  %417 = load i32, ptr %50, align 4, !tbaa !9
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds %struct.complex, ptr %416, i64 %418
  %420 = load ptr, ptr %34, align 8, !tbaa !5
  %421 = load ptr, ptr %41, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.complex, ptr %421, i64 1
  %423 = load ptr, ptr %44, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.2, ptr noundef @.str.1, ptr noundef %407, ptr noundef @c__1, ptr noundef %408, ptr noundef %412, ptr noundef %413, ptr noundef %415, ptr noundef %419, ptr noundef %420, ptr noundef %422, ptr noundef @c_n1, ptr noundef %423)
  br label %442

424:                                              ; preds = %403
  %425 = load ptr, ptr %27, align 8, !tbaa !5
  %426 = load ptr, ptr %27, align 8, !tbaa !5
  %427 = load ptr, ptr %28, align 8, !tbaa !5
  %428 = load i32, ptr %46, align 4, !tbaa !9
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds %struct.complex, ptr %427, i64 %429
  %431 = load ptr, ptr %29, align 8, !tbaa !5
  %432 = load ptr, ptr %30, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.complex, ptr %432, i64 1
  %434 = load ptr, ptr %33, align 8, !tbaa !5
  %435 = load i32, ptr %50, align 4, !tbaa !9
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds %struct.complex, ptr %434, i64 %436
  %438 = load ptr, ptr %34, align 8, !tbaa !5
  %439 = load ptr, ptr %41, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.complex, ptr %439, i64 1
  %441 = load ptr, ptr %44, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.4, ptr noundef @.str.1, ptr noundef %425, ptr noundef @c__1, ptr noundef %426, ptr noundef %430, ptr noundef %431, ptr noundef %433, ptr noundef %437, ptr noundef %438, ptr noundef %440, ptr noundef @c_n1, ptr noundef %441)
  br label %442

442:                                              ; preds = %424, %406
  br label %443

443:                                              ; preds = %442, %384
  br label %444

444:                                              ; preds = %443, %327
  %445 = load ptr, ptr %41, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.complex, ptr %445, i64 1
  %447 = getelementptr inbounds %struct.complex, ptr %446, i32 0, i32 0
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = fptosi float %448 to i32
  store i32 %449, ptr %75, align 4, !tbaa !9
  %450 = load i32, ptr %73, align 4, !tbaa !9
  %451 = icmp ne i32 %450, 0
  br i1 %451, label %520, label %452

452:                                              ; preds = %444
  %453 = load i32, ptr %79, align 4, !tbaa !9
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %520, label %455

455:                                              ; preds = %452
  %456 = load ptr, ptr %27, align 8, !tbaa !5
  %457 = load i32, ptr %456, align 4, !tbaa !9
  %458 = shl i32 %457, 1
  store i32 %458, ptr %71, align 4, !tbaa !9
  %459 = load i32, ptr %80, align 4, !tbaa !9
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %484, label %461

461:                                              ; preds = %455
  %462 = load i32, ptr %76, align 4, !tbaa !9
  %463 = icmp ne i32 %462, 0
  br i1 %463, label %484, label %464

464:                                              ; preds = %461
  %465 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %465, ptr %51, align 4, !tbaa !9
  %466 = load ptr, ptr %27, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = load ptr, ptr %27, align 8, !tbaa !5
  %469 = load i32, ptr %468, align 4, !tbaa !9
  %470 = mul nsw i32 %467, %469
  %471 = load ptr, ptr %27, align 8, !tbaa !5
  %472 = load i32, ptr %471, align 4, !tbaa !9
  %473 = shl i32 %472, 1
  %474 = add nsw i32 %470, %473
  store i32 %474, ptr %52, align 4, !tbaa !9
  %475 = load i32, ptr %51, align 4, !tbaa !9
  %476 = load i32, ptr %52, align 4, !tbaa !9
  %477 = icmp sge i32 %475, %476
  br i1 %477, label %478, label %480

478:                                              ; preds = %464
  %479 = load i32, ptr %51, align 4, !tbaa !9
  br label %482

480:                                              ; preds = %464
  %481 = load i32, ptr %52, align 4, !tbaa !9
  br label %482

482:                                              ; preds = %480, %478
  %483 = phi i32 [ %479, %478 ], [ %481, %480 ]
  store i32 %483, ptr %71, align 4, !tbaa !9
  br label %484

484:                                              ; preds = %482, %461, %455
  %485 = load i32, ptr %72, align 4, !tbaa !9
  %486 = load i32, ptr %75, align 4, !tbaa !9
  %487 = icmp sge i32 %485, %486
  br i1 %487, label %488, label %490

488:                                              ; preds = %484
  %489 = load i32, ptr %72, align 4, !tbaa !9
  br label %492

490:                                              ; preds = %484
  %491 = load i32, ptr %75, align 4, !tbaa !9
  br label %492

492:                                              ; preds = %490, %488
  %493 = phi i32 [ %489, %488 ], [ %491, %490 ]
  store i32 %493, ptr %72, align 4, !tbaa !9
  %494 = load i32, ptr %80, align 4, !tbaa !9
  %495 = icmp ne i32 %494, 0
  br i1 %495, label %519, label %496

496:                                              ; preds = %492
  %497 = load i32, ptr %76, align 4, !tbaa !9
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %519, label %499

499:                                              ; preds = %496
  %500 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %500, ptr %51, align 4, !tbaa !9
  %501 = load ptr, ptr %27, align 8, !tbaa !5
  %502 = load i32, ptr %501, align 4, !tbaa !9
  %503 = load ptr, ptr %27, align 8, !tbaa !5
  %504 = load i32, ptr %503, align 4, !tbaa !9
  %505 = mul nsw i32 %502, %504
  %506 = load ptr, ptr %27, align 8, !tbaa !5
  %507 = load i32, ptr %506, align 4, !tbaa !9
  %508 = shl i32 %507, 1
  %509 = add nsw i32 %505, %508
  store i32 %509, ptr %52, align 4, !tbaa !9
  %510 = load i32, ptr %51, align 4, !tbaa !9
  %511 = load i32, ptr %52, align 4, !tbaa !9
  %512 = icmp sge i32 %510, %511
  br i1 %512, label %513, label %515

513:                                              ; preds = %499
  %514 = load i32, ptr %51, align 4, !tbaa !9
  br label %517

515:                                              ; preds = %499
  %516 = load i32, ptr %52, align 4, !tbaa !9
  br label %517

517:                                              ; preds = %515, %513
  %518 = phi i32 [ %514, %513 ], [ %516, %515 ]
  store i32 %518, ptr %72, align 4, !tbaa !9
  br label %519

519:                                              ; preds = %517, %496, %492
  br label %618

520:                                              ; preds = %452, %444
  %521 = load ptr, ptr %27, align 8, !tbaa !5
  %522 = load i32, ptr %521, align 4, !tbaa !9
  %523 = shl i32 %522, 1
  store i32 %523, ptr %71, align 4, !tbaa !9
  %524 = load i32, ptr %80, align 4, !tbaa !9
  %525 = icmp ne i32 %524, 0
  br i1 %525, label %549, label %526

526:                                              ; preds = %520
  %527 = load i32, ptr %76, align 4, !tbaa !9
  %528 = icmp ne i32 %527, 0
  br i1 %528, label %549, label %529

529:                                              ; preds = %526
  %530 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %530, ptr %51, align 4, !tbaa !9
  %531 = load ptr, ptr %27, align 8, !tbaa !5
  %532 = load i32, ptr %531, align 4, !tbaa !9
  %533 = load ptr, ptr %27, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = mul nsw i32 %532, %534
  %536 = load ptr, ptr %27, align 8, !tbaa !5
  %537 = load i32, ptr %536, align 4, !tbaa !9
  %538 = shl i32 %537, 1
  %539 = add nsw i32 %535, %538
  store i32 %539, ptr %52, align 4, !tbaa !9
  %540 = load i32, ptr %51, align 4, !tbaa !9
  %541 = load i32, ptr %52, align 4, !tbaa !9
  %542 = icmp sge i32 %540, %541
  br i1 %542, label %543, label %545

543:                                              ; preds = %529
  %544 = load i32, ptr %51, align 4, !tbaa !9
  br label %547

545:                                              ; preds = %529
  %546 = load i32, ptr %52, align 4, !tbaa !9
  br label %547

547:                                              ; preds = %545, %543
  %548 = phi i32 [ %544, %543 ], [ %546, %545 ]
  store i32 %548, ptr %71, align 4, !tbaa !9
  br label %549

549:                                              ; preds = %547, %526, %520
  %550 = load i32, ptr %72, align 4, !tbaa !9
  %551 = load i32, ptr %75, align 4, !tbaa !9
  %552 = icmp sge i32 %550, %551
  br i1 %552, label %553, label %555

553:                                              ; preds = %549
  %554 = load i32, ptr %72, align 4, !tbaa !9
  br label %557

555:                                              ; preds = %549
  %556 = load i32, ptr %75, align 4, !tbaa !9
  br label %557

557:                                              ; preds = %555, %553
  %558 = phi i32 [ %554, %553 ], [ %556, %555 ]
  store i32 %558, ptr %72, align 4, !tbaa !9
  %559 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %559, ptr %51, align 4, !tbaa !9
  %560 = load ptr, ptr %27, align 8, !tbaa !5
  %561 = load i32, ptr %560, align 4, !tbaa !9
  %562 = load ptr, ptr %27, align 8, !tbaa !5
  %563 = load i32, ptr %562, align 4, !tbaa !9
  %564 = sub nsw i32 %563, 1
  %565 = load ptr, ptr %27, align 8, !tbaa !5
  %566 = load ptr, ptr %27, align 8, !tbaa !5
  %567 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.10, ptr noundef @.str.7, ptr noundef %565, ptr noundef @c__1, ptr noundef %566, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %568 = mul nsw i32 %564, %567
  %569 = add nsw i32 %561, %568
  store i32 %569, ptr %52, align 4, !tbaa !9
  %570 = load i32, ptr %51, align 4, !tbaa !9
  %571 = load i32, ptr %52, align 4, !tbaa !9
  %572 = icmp sge i32 %570, %571
  br i1 %572, label %573, label %575

573:                                              ; preds = %557
  %574 = load i32, ptr %51, align 4, !tbaa !9
  br label %577

575:                                              ; preds = %557
  %576 = load i32, ptr %52, align 4, !tbaa !9
  br label %577

577:                                              ; preds = %575, %573
  %578 = phi i32 [ %574, %573 ], [ %576, %575 ]
  store i32 %578, ptr %72, align 4, !tbaa !9
  %579 = load i32, ptr %80, align 4, !tbaa !9
  %580 = icmp ne i32 %579, 0
  br i1 %580, label %604, label %581

581:                                              ; preds = %577
  %582 = load i32, ptr %76, align 4, !tbaa !9
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %604, label %584

584:                                              ; preds = %581
  %585 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %585, ptr %51, align 4, !tbaa !9
  %586 = load ptr, ptr %27, align 8, !tbaa !5
  %587 = load i32, ptr %586, align 4, !tbaa !9
  %588 = load ptr, ptr %27, align 8, !tbaa !5
  %589 = load i32, ptr %588, align 4, !tbaa !9
  %590 = mul nsw i32 %587, %589
  %591 = load ptr, ptr %27, align 8, !tbaa !5
  %592 = load i32, ptr %591, align 4, !tbaa !9
  %593 = shl i32 %592, 1
  %594 = add nsw i32 %590, %593
  store i32 %594, ptr %52, align 4, !tbaa !9
  %595 = load i32, ptr %51, align 4, !tbaa !9
  %596 = load i32, ptr %52, align 4, !tbaa !9
  %597 = icmp sge i32 %595, %596
  br i1 %597, label %598, label %600

598:                                              ; preds = %584
  %599 = load i32, ptr %51, align 4, !tbaa !9
  br label %602

600:                                              ; preds = %584
  %601 = load i32, ptr %52, align 4, !tbaa !9
  br label %602

602:                                              ; preds = %600, %598
  %603 = phi i32 [ %599, %598 ], [ %601, %600 ]
  store i32 %603, ptr %72, align 4, !tbaa !9
  br label %604

604:                                              ; preds = %602, %581, %577
  %605 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %605, ptr %51, align 4, !tbaa !9
  %606 = load ptr, ptr %27, align 8, !tbaa !5
  %607 = load i32, ptr %606, align 4, !tbaa !9
  %608 = shl i32 %607, 1
  store i32 %608, ptr %52, align 4, !tbaa !9
  %609 = load i32, ptr %51, align 4, !tbaa !9
  %610 = load i32, ptr %52, align 4, !tbaa !9
  %611 = icmp sge i32 %609, %610
  br i1 %611, label %612, label %614

612:                                              ; preds = %604
  %613 = load i32, ptr %51, align 4, !tbaa !9
  br label %616

614:                                              ; preds = %604
  %615 = load i32, ptr %52, align 4, !tbaa !9
  br label %616

616:                                              ; preds = %614, %612
  %617 = phi i32 [ %613, %612 ], [ %615, %614 ]
  store i32 %617, ptr %72, align 4, !tbaa !9
  br label %618

618:                                              ; preds = %616, %519
  %619 = load i32, ptr %72, align 4, !tbaa !9
  %620 = load i32, ptr %71, align 4, !tbaa !9
  %621 = icmp sge i32 %619, %620
  br i1 %621, label %622, label %624

622:                                              ; preds = %618
  %623 = load i32, ptr %72, align 4, !tbaa !9
  br label %626

624:                                              ; preds = %618
  %625 = load i32, ptr %71, align 4, !tbaa !9
  br label %626

626:                                              ; preds = %624, %622
  %627 = phi i32 [ %623, %622 ], [ %625, %624 ]
  store i32 %627, ptr %72, align 4, !tbaa !9
  br label %628

628:                                              ; preds = %626, %279
  %629 = load i32, ptr %72, align 4, !tbaa !9
  %630 = sitofp i32 %629 to float
  %631 = load ptr, ptr %41, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.complex, ptr %631, i64 1
  %633 = getelementptr inbounds %struct.complex, ptr %632, i32 0, i32 0
  store float %630, ptr %633, align 4, !tbaa !11
  %634 = load ptr, ptr %41, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.complex, ptr %634, i64 1
  %636 = getelementptr inbounds %struct.complex, ptr %635, i32 0, i32 1
  store float 0.000000e+00, ptr %636, align 4, !tbaa !14
  %637 = load ptr, ptr %42, align 8, !tbaa !5
  %638 = load i32, ptr %637, align 4, !tbaa !9
  %639 = load i32, ptr %71, align 4, !tbaa !9
  %640 = icmp slt i32 %638, %639
  br i1 %640, label %641, label %646

641:                                              ; preds = %628
  %642 = load i32, ptr %78, align 4, !tbaa !9
  %643 = icmp ne i32 %642, 0
  br i1 %643, label %646, label %644

644:                                              ; preds = %641
  %645 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -20, ptr %645, align 4, !tbaa !9
  br label %646

646:                                              ; preds = %644, %641, %628
  br label %647

647:                                              ; preds = %646, %271
  %648 = load ptr, ptr %44, align 8, !tbaa !5
  %649 = load i32, ptr %648, align 4, !tbaa !9
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %656

651:                                              ; preds = %647
  %652 = load ptr, ptr %44, align 8, !tbaa !5
  %653 = load i32, ptr %652, align 4, !tbaa !9
  %654 = sub nsw i32 0, %653
  store i32 %654, ptr %51, align 4, !tbaa !9
  %655 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %51, i32 noundef 6)
  store i32 1, ptr %88, align 4
  br label %1445

656:                                              ; preds = %647
  %657 = load i32, ptr %78, align 4, !tbaa !9
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %659, label %660

659:                                              ; preds = %656
  store i32 1, ptr %88, align 4
  br label %1445

660:                                              ; preds = %656
  br label %661

661:                                              ; preds = %660
  %662 = load ptr, ptr %27, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  %664 = icmp eq i32 %663, 0
  br i1 %664, label %665, label %666

665:                                              ; preds = %661
  store i32 1, ptr %88, align 4
  br label %1445

666:                                              ; preds = %661
  %667 = call float @slamch_(ptr noundef @.str.5)
  store float %667, ptr %85, align 4, !tbaa !15
  %668 = call float @slamch_(ptr noundef @.str.4)
  store float %668, ptr %77, align 4, !tbaa !15
  %669 = load float, ptr %77, align 4, !tbaa !15
  %670 = fdiv float 1.000000e+00, %669
  store float %670, ptr %70, align 4, !tbaa !15
  call void @slabad_(ptr noundef %77, ptr noundef %70)
  %671 = load float, ptr %77, align 4, !tbaa !15
  %672 = fpext float %671 to double
  %673 = call double @sqrt(double noundef %672) #7
  %674 = load float, ptr %85, align 4, !tbaa !15
  %675 = fpext float %674 to double
  %676 = fdiv double %673, %675
  %677 = fptrunc double %676 to float
  store float %677, ptr %77, align 4, !tbaa !15
  %678 = load float, ptr %77, align 4, !tbaa !15
  %679 = fdiv float 1.000000e+00, %678
  store float %679, ptr %70, align 4, !tbaa !15
  store i32 0, ptr %66, align 4, !tbaa !9
  %680 = load ptr, ptr %27, align 8, !tbaa !5
  %681 = load ptr, ptr %27, align 8, !tbaa !5
  %682 = load ptr, ptr %28, align 8, !tbaa !5
  %683 = load i32, ptr %46, align 4, !tbaa !9
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds %struct.complex, ptr %682, i64 %684
  %686 = load ptr, ptr %29, align 8, !tbaa !5
  %687 = getelementptr inbounds [1 x float], ptr %84, i64 0, i64 0
  %688 = call float @clange_(ptr noundef @.str.12, ptr noundef %680, ptr noundef %681, ptr noundef %685, ptr noundef %686, ptr noundef %687)
  store float %688, ptr %59, align 4, !tbaa !15
  store i32 0, ptr %67, align 4, !tbaa !9
  %689 = load float, ptr %59, align 4, !tbaa !15
  %690 = fcmp ogt float %689, 0.000000e+00
  br i1 %690, label %691, label %697

691:                                              ; preds = %666
  %692 = load float, ptr %59, align 4, !tbaa !15
  %693 = load float, ptr %77, align 4, !tbaa !15
  %694 = fcmp olt float %692, %693
  br i1 %694, label %695, label %697

695:                                              ; preds = %691
  store i32 1, ptr %67, align 4, !tbaa !9
  %696 = load float, ptr %77, align 4, !tbaa !15
  store float %696, ptr %68, align 4, !tbaa !15
  br label %704

697:                                              ; preds = %691, %666
  %698 = load float, ptr %59, align 4, !tbaa !15
  %699 = load float, ptr %70, align 4, !tbaa !15
  %700 = fcmp ogt float %698, %699
  br i1 %700, label %701, label %703

701:                                              ; preds = %697
  store i32 1, ptr %67, align 4, !tbaa !9
  %702 = load float, ptr %70, align 4, !tbaa !15
  store float %702, ptr %68, align 4, !tbaa !15
  br label %703

703:                                              ; preds = %701, %697
  br label %704

704:                                              ; preds = %703, %695
  %705 = load i32, ptr %67, align 4, !tbaa !9
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %707, label %715

707:                                              ; preds = %704
  %708 = load ptr, ptr %27, align 8, !tbaa !5
  %709 = load ptr, ptr %27, align 8, !tbaa !5
  %710 = load ptr, ptr %28, align 8, !tbaa !5
  %711 = load i32, ptr %46, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds %struct.complex, ptr %710, i64 %712
  %714 = load ptr, ptr %29, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %59, ptr noundef %68, ptr noundef %708, ptr noundef %709, ptr noundef %713, ptr noundef %714, ptr noundef %60)
  br label %715

715:                                              ; preds = %707, %704
  %716 = load ptr, ptr %23, align 8, !tbaa !5
  %717 = load ptr, ptr %27, align 8, !tbaa !5
  %718 = load ptr, ptr %28, align 8, !tbaa !5
  %719 = load i32, ptr %46, align 4, !tbaa !9
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds %struct.complex, ptr %718, i64 %720
  %722 = load ptr, ptr %29, align 8, !tbaa !5
  %723 = load ptr, ptr %35, align 8, !tbaa !5
  %724 = load ptr, ptr %36, align 8, !tbaa !5
  %725 = load ptr, ptr %37, align 8, !tbaa !5
  %726 = getelementptr inbounds float, ptr %725, i64 1
  call void @cgebal_(ptr noundef %716, ptr noundef %717, ptr noundef %721, ptr noundef %722, ptr noundef %723, ptr noundef %724, ptr noundef %726, ptr noundef %60)
  %727 = load ptr, ptr %27, align 8, !tbaa !5
  %728 = load ptr, ptr %27, align 8, !tbaa !5
  %729 = load ptr, ptr %28, align 8, !tbaa !5
  %730 = load i32, ptr %46, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds %struct.complex, ptr %729, i64 %731
  %733 = load ptr, ptr %29, align 8, !tbaa !5
  %734 = getelementptr inbounds [1 x float], ptr %84, i64 0, i64 0
  %735 = call float @clange_(ptr noundef @.str.14, ptr noundef %727, ptr noundef %728, ptr noundef %732, ptr noundef %733, ptr noundef %734)
  %736 = load ptr, ptr %38, align 8, !tbaa !5
  store float %735, ptr %736, align 4, !tbaa !15
  %737 = load i32, ptr %67, align 4, !tbaa !9
  %738 = icmp ne i32 %737, 0
  br i1 %738, label %739, label %747

739:                                              ; preds = %715
  %740 = load ptr, ptr %38, align 8, !tbaa !5
  %741 = load float, ptr %740, align 4, !tbaa !15
  %742 = getelementptr inbounds [1 x float], ptr %84, i64 0, i64 0
  store float %741, ptr %742, align 4, !tbaa !15
  %743 = getelementptr inbounds [1 x float], ptr %84, i64 0, i64 0
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %68, ptr noundef %59, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %743, ptr noundef @c__1, ptr noundef %60)
  %744 = getelementptr inbounds [1 x float], ptr %84, i64 0, i64 0
  %745 = load float, ptr %744, align 4, !tbaa !15
  %746 = load ptr, ptr %38, align 8, !tbaa !5
  store float %745, ptr %746, align 4, !tbaa !15
  br label %747

747:                                              ; preds = %739, %715
  store i32 1, ptr %61, align 4, !tbaa !9
  %748 = load i32, ptr %61, align 4, !tbaa !9
  %749 = load ptr, ptr %27, align 8, !tbaa !5
  %750 = load i32, ptr %749, align 4, !tbaa !9
  %751 = add nsw i32 %748, %750
  store i32 %751, ptr %62, align 4, !tbaa !9
  %752 = load ptr, ptr %42, align 8, !tbaa !5
  %753 = load i32, ptr %752, align 4, !tbaa !9
  %754 = load i32, ptr %62, align 4, !tbaa !9
  %755 = sub nsw i32 %753, %754
  %756 = add nsw i32 %755, 1
  store i32 %756, ptr %51, align 4, !tbaa !9
  %757 = load ptr, ptr %27, align 8, !tbaa !5
  %758 = load ptr, ptr %35, align 8, !tbaa !5
  %759 = load ptr, ptr %36, align 8, !tbaa !5
  %760 = load ptr, ptr %28, align 8, !tbaa !5
  %761 = load i32, ptr %46, align 4, !tbaa !9
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds %struct.complex, ptr %760, i64 %762
  %764 = load ptr, ptr %29, align 8, !tbaa !5
  %765 = load ptr, ptr %41, align 8, !tbaa !5
  %766 = load i32, ptr %61, align 4, !tbaa !9
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds %struct.complex, ptr %765, i64 %767
  %769 = load ptr, ptr %41, align 8, !tbaa !5
  %770 = load i32, ptr %62, align 4, !tbaa !9
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds %struct.complex, ptr %769, i64 %771
  call void @cgehrd_(ptr noundef %757, ptr noundef %758, ptr noundef %759, ptr noundef %763, ptr noundef %764, ptr noundef %768, ptr noundef %772, ptr noundef %51, ptr noundef %60)
  %773 = load i32, ptr %73, align 4, !tbaa !9
  %774 = icmp ne i32 %773, 0
  br i1 %774, label %775, label %853

775:                                              ; preds = %747
  %776 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  store i8 76, ptr %776, align 1, !tbaa !16
  %777 = load ptr, ptr %27, align 8, !tbaa !5
  %778 = load ptr, ptr %27, align 8, !tbaa !5
  %779 = load ptr, ptr %28, align 8, !tbaa !5
  %780 = load i32, ptr %46, align 4, !tbaa !9
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds %struct.complex, ptr %779, i64 %781
  %783 = load ptr, ptr %29, align 8, !tbaa !5
  %784 = load ptr, ptr %31, align 8, !tbaa !5
  %785 = load i32, ptr %48, align 4, !tbaa !9
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds %struct.complex, ptr %784, i64 %786
  %788 = load ptr, ptr %32, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.8, ptr noundef %777, ptr noundef %778, ptr noundef %782, ptr noundef %783, ptr noundef %787, ptr noundef %788)
  %789 = load ptr, ptr %42, align 8, !tbaa !5
  %790 = load i32, ptr %789, align 4, !tbaa !9
  %791 = load i32, ptr %62, align 4, !tbaa !9
  %792 = sub nsw i32 %790, %791
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr %51, align 4, !tbaa !9
  %794 = load ptr, ptr %27, align 8, !tbaa !5
  %795 = load ptr, ptr %35, align 8, !tbaa !5
  %796 = load ptr, ptr %36, align 8, !tbaa !5
  %797 = load ptr, ptr %31, align 8, !tbaa !5
  %798 = load i32, ptr %48, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds %struct.complex, ptr %797, i64 %799
  %801 = load ptr, ptr %32, align 8, !tbaa !5
  %802 = load ptr, ptr %41, align 8, !tbaa !5
  %803 = load i32, ptr %61, align 4, !tbaa !9
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds %struct.complex, ptr %802, i64 %804
  %806 = load ptr, ptr %41, align 8, !tbaa !5
  %807 = load i32, ptr %62, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds %struct.complex, ptr %806, i64 %808
  call void @cunghr_(ptr noundef %794, ptr noundef %795, ptr noundef %796, ptr noundef %800, ptr noundef %801, ptr noundef %805, ptr noundef %809, ptr noundef %51, ptr noundef %60)
  %810 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %810, ptr %62, align 4, !tbaa !9
  %811 = load ptr, ptr %42, align 8, !tbaa !5
  %812 = load i32, ptr %811, align 4, !tbaa !9
  %813 = load i32, ptr %62, align 4, !tbaa !9
  %814 = sub nsw i32 %812, %813
  %815 = add nsw i32 %814, 1
  store i32 %815, ptr %51, align 4, !tbaa !9
  %816 = load ptr, ptr %27, align 8, !tbaa !5
  %817 = load ptr, ptr %35, align 8, !tbaa !5
  %818 = load ptr, ptr %36, align 8, !tbaa !5
  %819 = load ptr, ptr %28, align 8, !tbaa !5
  %820 = load i32, ptr %46, align 4, !tbaa !9
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds %struct.complex, ptr %819, i64 %821
  %823 = load ptr, ptr %29, align 8, !tbaa !5
  %824 = load ptr, ptr %30, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.complex, ptr %824, i64 1
  %826 = load ptr, ptr %31, align 8, !tbaa !5
  %827 = load i32, ptr %48, align 4, !tbaa !9
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds %struct.complex, ptr %826, i64 %828
  %830 = load ptr, ptr %32, align 8, !tbaa !5
  %831 = load ptr, ptr %41, align 8, !tbaa !5
  %832 = load i32, ptr %62, align 4, !tbaa !9
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds %struct.complex, ptr %831, i64 %833
  %835 = load ptr, ptr %44, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %816, ptr noundef %817, ptr noundef %818, ptr noundef %822, ptr noundef %823, ptr noundef %825, ptr noundef %829, ptr noundef %830, ptr noundef %834, ptr noundef %51, ptr noundef %835)
  %836 = load i32, ptr %79, align 4, !tbaa !9
  %837 = icmp ne i32 %836, 0
  br i1 %837, label %838, label %852

838:                                              ; preds = %775
  %839 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  store i8 66, ptr %839, align 1, !tbaa !16
  %840 = load ptr, ptr %27, align 8, !tbaa !5
  %841 = load ptr, ptr %27, align 8, !tbaa !5
  %842 = load ptr, ptr %31, align 8, !tbaa !5
  %843 = load i32, ptr %48, align 4, !tbaa !9
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds %struct.complex, ptr %842, i64 %844
  %846 = load ptr, ptr %32, align 8, !tbaa !5
  %847 = load ptr, ptr %33, align 8, !tbaa !5
  %848 = load i32, ptr %50, align 4, !tbaa !9
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds %struct.complex, ptr %847, i64 %849
  %851 = load ptr, ptr %34, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.15, ptr noundef %840, ptr noundef %841, ptr noundef %845, ptr noundef %846, ptr noundef %850, ptr noundef %851)
  br label %852

852:                                              ; preds = %838, %775
  br label %953

853:                                              ; preds = %747
  %854 = load i32, ptr %79, align 4, !tbaa !9
  %855 = icmp ne i32 %854, 0
  br i1 %855, label %856, label %917

856:                                              ; preds = %853
  %857 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  store i8 82, ptr %857, align 1, !tbaa !16
  %858 = load ptr, ptr %27, align 8, !tbaa !5
  %859 = load ptr, ptr %27, align 8, !tbaa !5
  %860 = load ptr, ptr %28, align 8, !tbaa !5
  %861 = load i32, ptr %46, align 4, !tbaa !9
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds %struct.complex, ptr %860, i64 %862
  %864 = load ptr, ptr %29, align 8, !tbaa !5
  %865 = load ptr, ptr %33, align 8, !tbaa !5
  %866 = load i32, ptr %50, align 4, !tbaa !9
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds %struct.complex, ptr %865, i64 %867
  %869 = load ptr, ptr %34, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.8, ptr noundef %858, ptr noundef %859, ptr noundef %863, ptr noundef %864, ptr noundef %868, ptr noundef %869)
  %870 = load ptr, ptr %42, align 8, !tbaa !5
  %871 = load i32, ptr %870, align 4, !tbaa !9
  %872 = load i32, ptr %62, align 4, !tbaa !9
  %873 = sub nsw i32 %871, %872
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr %51, align 4, !tbaa !9
  %875 = load ptr, ptr %27, align 8, !tbaa !5
  %876 = load ptr, ptr %35, align 8, !tbaa !5
  %877 = load ptr, ptr %36, align 8, !tbaa !5
  %878 = load ptr, ptr %33, align 8, !tbaa !5
  %879 = load i32, ptr %50, align 4, !tbaa !9
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds %struct.complex, ptr %878, i64 %880
  %882 = load ptr, ptr %34, align 8, !tbaa !5
  %883 = load ptr, ptr %41, align 8, !tbaa !5
  %884 = load i32, ptr %61, align 4, !tbaa !9
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds %struct.complex, ptr %883, i64 %885
  %887 = load ptr, ptr %41, align 8, !tbaa !5
  %888 = load i32, ptr %62, align 4, !tbaa !9
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds %struct.complex, ptr %887, i64 %889
  call void @cunghr_(ptr noundef %875, ptr noundef %876, ptr noundef %877, ptr noundef %881, ptr noundef %882, ptr noundef %886, ptr noundef %890, ptr noundef %51, ptr noundef %60)
  %891 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %891, ptr %62, align 4, !tbaa !9
  %892 = load ptr, ptr %42, align 8, !tbaa !5
  %893 = load i32, ptr %892, align 4, !tbaa !9
  %894 = load i32, ptr %62, align 4, !tbaa !9
  %895 = sub nsw i32 %893, %894
  %896 = add nsw i32 %895, 1
  store i32 %896, ptr %51, align 4, !tbaa !9
  %897 = load ptr, ptr %27, align 8, !tbaa !5
  %898 = load ptr, ptr %35, align 8, !tbaa !5
  %899 = load ptr, ptr %36, align 8, !tbaa !5
  %900 = load ptr, ptr %28, align 8, !tbaa !5
  %901 = load i32, ptr %46, align 4, !tbaa !9
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds %struct.complex, ptr %900, i64 %902
  %904 = load ptr, ptr %29, align 8, !tbaa !5
  %905 = load ptr, ptr %30, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.complex, ptr %905, i64 1
  %907 = load ptr, ptr %33, align 8, !tbaa !5
  %908 = load i32, ptr %50, align 4, !tbaa !9
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds %struct.complex, ptr %907, i64 %909
  %911 = load ptr, ptr %34, align 8, !tbaa !5
  %912 = load ptr, ptr %41, align 8, !tbaa !5
  %913 = load i32, ptr %62, align 4, !tbaa !9
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds %struct.complex, ptr %912, i64 %914
  %916 = load ptr, ptr %44, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %897, ptr noundef %898, ptr noundef %899, ptr noundef %903, ptr noundef %904, ptr noundef %906, ptr noundef %910, ptr noundef %911, ptr noundef %915, ptr noundef %51, ptr noundef %916)
  br label %952

917:                                              ; preds = %853
  %918 = load i32, ptr %80, align 4, !tbaa !9
  %919 = icmp ne i32 %918, 0
  br i1 %919, label %920, label %922

920:                                              ; preds = %917
  %921 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  store i8 69, ptr %921, align 1, !tbaa !16
  br label %924

922:                                              ; preds = %917
  %923 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  store i8 83, ptr %923, align 1, !tbaa !16
  br label %924

924:                                              ; preds = %922, %920
  %925 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %925, ptr %62, align 4, !tbaa !9
  %926 = load ptr, ptr %42, align 8, !tbaa !5
  %927 = load i32, ptr %926, align 4, !tbaa !9
  %928 = load i32, ptr %62, align 4, !tbaa !9
  %929 = sub nsw i32 %927, %928
  %930 = add nsw i32 %929, 1
  store i32 %930, ptr %51, align 4, !tbaa !9
  %931 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  %932 = load ptr, ptr %27, align 8, !tbaa !5
  %933 = load ptr, ptr %35, align 8, !tbaa !5
  %934 = load ptr, ptr %36, align 8, !tbaa !5
  %935 = load ptr, ptr %28, align 8, !tbaa !5
  %936 = load i32, ptr %46, align 4, !tbaa !9
  %937 = sext i32 %936 to i64
  %938 = getelementptr inbounds %struct.complex, ptr %935, i64 %937
  %939 = load ptr, ptr %29, align 8, !tbaa !5
  %940 = load ptr, ptr %30, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.complex, ptr %940, i64 1
  %942 = load ptr, ptr %33, align 8, !tbaa !5
  %943 = load i32, ptr %50, align 4, !tbaa !9
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds %struct.complex, ptr %942, i64 %944
  %946 = load ptr, ptr %34, align 8, !tbaa !5
  %947 = load ptr, ptr %41, align 8, !tbaa !5
  %948 = load i32, ptr %62, align 4, !tbaa !9
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds %struct.complex, ptr %947, i64 %949
  %951 = load ptr, ptr %44, align 8, !tbaa !5
  call void @chseqr_(ptr noundef %931, ptr noundef @.str.1, ptr noundef %932, ptr noundef %933, ptr noundef %934, ptr noundef %938, ptr noundef %939, ptr noundef %941, ptr noundef %945, ptr noundef %946, ptr noundef %950, ptr noundef %51, ptr noundef %951)
  br label %952

952:                                              ; preds = %924, %856
  br label %953

953:                                              ; preds = %952, %852
  %954 = load ptr, ptr %44, align 8, !tbaa !5
  %955 = load i32, ptr %954, align 4, !tbaa !9
  %956 = icmp ne i32 %955, 0
  br i1 %956, label %957, label %958

957:                                              ; preds = %953
  br label %1383

958:                                              ; preds = %953
  %959 = load i32, ptr %73, align 4, !tbaa !9
  %960 = icmp ne i32 %959, 0
  br i1 %960, label %964, label %961

961:                                              ; preds = %958
  %962 = load i32, ptr %79, align 4, !tbaa !9
  %963 = icmp ne i32 %962, 0
  br i1 %963, label %964, label %996

964:                                              ; preds = %961, %958
  %965 = load ptr, ptr %42, align 8, !tbaa !5
  %966 = load i32, ptr %965, align 4, !tbaa !9
  %967 = load i32, ptr %62, align 4, !tbaa !9
  %968 = sub nsw i32 %966, %967
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr %51, align 4, !tbaa !9
  %970 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  %971 = getelementptr inbounds [1 x i32], ptr %69, i64 0, i64 0
  %972 = load ptr, ptr %27, align 8, !tbaa !5
  %973 = load ptr, ptr %28, align 8, !tbaa !5
  %974 = load i32, ptr %46, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds %struct.complex, ptr %973, i64 %975
  %977 = load ptr, ptr %29, align 8, !tbaa !5
  %978 = load ptr, ptr %31, align 8, !tbaa !5
  %979 = load i32, ptr %48, align 4, !tbaa !9
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds %struct.complex, ptr %978, i64 %980
  %982 = load ptr, ptr %32, align 8, !tbaa !5
  %983 = load ptr, ptr %33, align 8, !tbaa !5
  %984 = load i32, ptr %50, align 4, !tbaa !9
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds %struct.complex, ptr %983, i64 %985
  %987 = load ptr, ptr %34, align 8, !tbaa !5
  %988 = load ptr, ptr %27, align 8, !tbaa !5
  %989 = load ptr, ptr %41, align 8, !tbaa !5
  %990 = load i32, ptr %62, align 4, !tbaa !9
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds %struct.complex, ptr %989, i64 %991
  %993 = load ptr, ptr %43, align 8, !tbaa !5
  %994 = getelementptr inbounds float, ptr %993, i64 1
  %995 = load ptr, ptr %27, align 8, !tbaa !5
  call void @ctrevc3_(ptr noundef %970, ptr noundef @.str.3, ptr noundef %971, ptr noundef %972, ptr noundef %976, ptr noundef %977, ptr noundef %981, ptr noundef %982, ptr noundef %986, ptr noundef %987, ptr noundef %988, ptr noundef %63, ptr noundef %992, ptr noundef %51, ptr noundef %994, ptr noundef %995, ptr noundef %60)
  br label %996

996:                                              ; preds = %964, %961
  %997 = load i32, ptr %80, align 4, !tbaa !9
  %998 = icmp ne i32 %997, 0
  br i1 %998, label %1030, label %999

999:                                              ; preds = %996
  %1000 = load ptr, ptr %26, align 8, !tbaa !5
  %1001 = getelementptr inbounds [1 x i32], ptr %69, i64 0, i64 0
  %1002 = load ptr, ptr %27, align 8, !tbaa !5
  %1003 = load ptr, ptr %28, align 8, !tbaa !5
  %1004 = load i32, ptr %46, align 4, !tbaa !9
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds %struct.complex, ptr %1003, i64 %1005
  %1007 = load ptr, ptr %29, align 8, !tbaa !5
  %1008 = load ptr, ptr %31, align 8, !tbaa !5
  %1009 = load i32, ptr %48, align 4, !tbaa !9
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds %struct.complex, ptr %1008, i64 %1010
  %1012 = load ptr, ptr %32, align 8, !tbaa !5
  %1013 = load ptr, ptr %33, align 8, !tbaa !5
  %1014 = load i32, ptr %50, align 4, !tbaa !9
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds %struct.complex, ptr %1013, i64 %1015
  %1017 = load ptr, ptr %34, align 8, !tbaa !5
  %1018 = load ptr, ptr %39, align 8, !tbaa !5
  %1019 = getelementptr inbounds float, ptr %1018, i64 1
  %1020 = load ptr, ptr %40, align 8, !tbaa !5
  %1021 = getelementptr inbounds float, ptr %1020, i64 1
  %1022 = load ptr, ptr %27, align 8, !tbaa !5
  %1023 = load ptr, ptr %41, align 8, !tbaa !5
  %1024 = load i32, ptr %62, align 4, !tbaa !9
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds %struct.complex, ptr %1023, i64 %1025
  %1027 = load ptr, ptr %27, align 8, !tbaa !5
  %1028 = load ptr, ptr %43, align 8, !tbaa !5
  %1029 = getelementptr inbounds float, ptr %1028, i64 1
  call void @ctrsna_(ptr noundef %1000, ptr noundef @.str.16, ptr noundef %1001, ptr noundef %1002, ptr noundef %1006, ptr noundef %1007, ptr noundef %1011, ptr noundef %1012, ptr noundef %1016, ptr noundef %1017, ptr noundef %1019, ptr noundef %1021, ptr noundef %1022, ptr noundef %63, ptr noundef %1026, ptr noundef %1027, ptr noundef %1029, ptr noundef %66)
  br label %1030

1030:                                             ; preds = %999, %996
  %1031 = load i32, ptr %73, align 4, !tbaa !9
  %1032 = icmp ne i32 %1031, 0
  br i1 %1032, label %1033, label %1206

1033:                                             ; preds = %1030
  %1034 = load ptr, ptr %23, align 8, !tbaa !5
  %1035 = load ptr, ptr %27, align 8, !tbaa !5
  %1036 = load ptr, ptr %35, align 8, !tbaa !5
  %1037 = load ptr, ptr %36, align 8, !tbaa !5
  %1038 = load ptr, ptr %37, align 8, !tbaa !5
  %1039 = getelementptr inbounds float, ptr %1038, i64 1
  %1040 = load ptr, ptr %27, align 8, !tbaa !5
  %1041 = load ptr, ptr %31, align 8, !tbaa !5
  %1042 = load i32, ptr %48, align 4, !tbaa !9
  %1043 = sext i32 %1042 to i64
  %1044 = getelementptr inbounds %struct.complex, ptr %1041, i64 %1043
  %1045 = load ptr, ptr %32, align 8, !tbaa !5
  call void @cgebak_(ptr noundef %1034, ptr noundef @.str.8, ptr noundef %1035, ptr noundef %1036, ptr noundef %1037, ptr noundef %1039, ptr noundef %1040, ptr noundef %1044, ptr noundef %1045, ptr noundef %60)
  %1046 = load ptr, ptr %27, align 8, !tbaa !5
  %1047 = load i32, ptr %1046, align 4, !tbaa !9
  store i32 %1047, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1048

1048:                                             ; preds = %1202, %1033
  %1049 = load i32, ptr %64, align 4, !tbaa !9
  %1050 = load i32, ptr %51, align 4, !tbaa !9
  %1051 = icmp sle i32 %1049, %1050
  br i1 %1051, label %1052, label %1205

1052:                                             ; preds = %1048
  %1053 = load ptr, ptr %27, align 8, !tbaa !5
  %1054 = load ptr, ptr %31, align 8, !tbaa !5
  %1055 = load i32, ptr %64, align 4, !tbaa !9
  %1056 = load i32, ptr %47, align 4, !tbaa !9
  %1057 = mul nsw i32 %1055, %1056
  %1058 = add nsw i32 %1057, 1
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds %struct.complex, ptr %1054, i64 %1059
  %1061 = call float @scnrm2_(ptr noundef %1053, ptr noundef %1060, ptr noundef @c__1)
  %1062 = fdiv float 1.000000e+00, %1061
  store float %1062, ptr %83, align 4, !tbaa !15
  %1063 = load ptr, ptr %27, align 8, !tbaa !5
  %1064 = load ptr, ptr %31, align 8, !tbaa !5
  %1065 = load i32, ptr %64, align 4, !tbaa !9
  %1066 = load i32, ptr %47, align 4, !tbaa !9
  %1067 = mul nsw i32 %1065, %1066
  %1068 = add nsw i32 %1067, 1
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds %struct.complex, ptr %1064, i64 %1069
  call void @csscal_(ptr noundef %1063, ptr noundef %83, ptr noundef %1070, ptr noundef @c__1)
  %1071 = load ptr, ptr %27, align 8, !tbaa !5
  %1072 = load i32, ptr %1071, align 4, !tbaa !9
  store i32 %1072, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %1073

1073:                                             ; preds = %1112, %1052
  %1074 = load i32, ptr %65, align 4, !tbaa !9
  %1075 = load i32, ptr %52, align 4, !tbaa !9
  %1076 = icmp sle i32 %1074, %1075
  br i1 %1076, label %1077, label %1115

1077:                                             ; preds = %1073
  %1078 = load i32, ptr %65, align 4, !tbaa !9
  %1079 = load i32, ptr %64, align 4, !tbaa !9
  %1080 = load i32, ptr %47, align 4, !tbaa !9
  %1081 = mul nsw i32 %1079, %1080
  %1082 = add nsw i32 %1078, %1081
  store i32 %1082, ptr %53, align 4, !tbaa !9
  %1083 = load ptr, ptr %31, align 8, !tbaa !5
  %1084 = load i32, ptr %53, align 4, !tbaa !9
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds %struct.complex, ptr %1083, i64 %1085
  %1087 = getelementptr inbounds %struct.complex, ptr %1086, i32 0, i32 0
  %1088 = load float, ptr %1087, align 4, !tbaa !11
  store float %1088, ptr %54, align 4, !tbaa !15
  %1089 = load ptr, ptr %31, align 8, !tbaa !5
  %1090 = load i32, ptr %65, align 4, !tbaa !9
  %1091 = load i32, ptr %64, align 4, !tbaa !9
  %1092 = load i32, ptr %47, align 4, !tbaa !9
  %1093 = mul nsw i32 %1091, %1092
  %1094 = add nsw i32 %1090, %1093
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds %struct.complex, ptr %1089, i64 %1095
  %1097 = call <2 x float> @Cf(ptr noundef %1096)
  store <2 x float> %1097, ptr %89, align 4
  %1098 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 0
  %1099 = load float, ptr %1098, align 4
  %1100 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 1
  %1101 = load float, ptr %1100, align 4
  store float %1101, ptr %55, align 4, !tbaa !15
  %1102 = load float, ptr %54, align 4, !tbaa !15
  %1103 = load float, ptr %54, align 4, !tbaa !15
  %1104 = load float, ptr %55, align 4, !tbaa !15
  %1105 = load float, ptr %55, align 4, !tbaa !15
  %1106 = fmul float %1104, %1105
  %1107 = call float @llvm.fmuladd.f32(float %1102, float %1103, float %1106)
  %1108 = load ptr, ptr %43, align 8, !tbaa !5
  %1109 = load i32, ptr %65, align 4, !tbaa !9
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds float, ptr %1108, i64 %1110
  store float %1107, ptr %1111, align 4, !tbaa !15
  br label %1112

1112:                                             ; preds = %1077
  %1113 = load i32, ptr %65, align 4, !tbaa !9
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr %65, align 4, !tbaa !9
  br label %1073, !llvm.loop !17

1115:                                             ; preds = %1073
  %1116 = load ptr, ptr %27, align 8, !tbaa !5
  %1117 = load ptr, ptr %43, align 8, !tbaa !5
  %1118 = getelementptr inbounds float, ptr %1117, i64 1
  %1119 = call i32 @isamax_(ptr noundef %1116, ptr noundef %1118, ptr noundef @c__1)
  store i32 %1119, ptr %65, align 4, !tbaa !9
  %1120 = load ptr, ptr %31, align 8, !tbaa !5
  %1121 = load i32, ptr %65, align 4, !tbaa !9
  %1122 = load i32, ptr %64, align 4, !tbaa !9
  %1123 = load i32, ptr %47, align 4, !tbaa !9
  %1124 = mul nsw i32 %1122, %1123
  %1125 = add nsw i32 %1121, %1124
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds %struct.complex, ptr %1120, i64 %1126
  %1128 = call <2 x float> @Cf(ptr noundef %1127)
  store <2 x float> %1128, ptr %90, align 4
  %1129 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 0
  %1130 = load float, ptr %1129, align 4
  %1131 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 1
  %1132 = load float, ptr %1131, align 4
  %1133 = fneg float %1132
  %1134 = call ptr @_pCf(ptr noundef %57)
  %1135 = getelementptr inbounds { float, float }, ptr %1134, i32 0, i32 0
  %1136 = getelementptr inbounds { float, float }, ptr %1134, i32 0, i32 1
  store float %1130, ptr %1135, align 4
  store float %1133, ptr %1136, align 4
  %1137 = load ptr, ptr %43, align 8, !tbaa !5
  %1138 = load i32, ptr %65, align 4, !tbaa !9
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds float, ptr %1137, i64 %1139
  %1141 = load float, ptr %1140, align 4, !tbaa !15
  %1142 = fpext float %1141 to double
  %1143 = call double @sqrt(double noundef %1142) #7
  %1144 = fptrunc double %1143 to float
  store float %1144, ptr %54, align 4, !tbaa !15
  %1145 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1146 = load float, ptr %1145, align 4, !tbaa !11
  %1147 = load float, ptr %54, align 4, !tbaa !15
  %1148 = fdiv float %1146, %1147
  %1149 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1148, ptr %1149, align 4, !tbaa !11
  %1150 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1151 = load float, ptr %1150, align 4, !tbaa !14
  %1152 = load float, ptr %54, align 4, !tbaa !15
  %1153 = fdiv float %1151, %1152
  %1154 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1153, ptr %1154, align 4, !tbaa !14
  %1155 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1156 = load float, ptr %1155, align 4, !tbaa !11
  %1157 = getelementptr inbounds %struct.complex, ptr %86, i32 0, i32 0
  store float %1156, ptr %1157, align 4, !tbaa !11
  %1158 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1159 = load float, ptr %1158, align 4, !tbaa !14
  %1160 = getelementptr inbounds %struct.complex, ptr %86, i32 0, i32 1
  store float %1159, ptr %1160, align 4, !tbaa !14
  %1161 = load ptr, ptr %27, align 8, !tbaa !5
  %1162 = load ptr, ptr %31, align 8, !tbaa !5
  %1163 = load i32, ptr %64, align 4, !tbaa !9
  %1164 = load i32, ptr %47, align 4, !tbaa !9
  %1165 = mul nsw i32 %1163, %1164
  %1166 = add nsw i32 %1165, 1
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds %struct.complex, ptr %1162, i64 %1167
  call void @cscal_(ptr noundef %1161, ptr noundef %86, ptr noundef %1168, ptr noundef @c__1)
  %1169 = load i32, ptr %65, align 4, !tbaa !9
  %1170 = load i32, ptr %64, align 4, !tbaa !9
  %1171 = load i32, ptr %47, align 4, !tbaa !9
  %1172 = mul nsw i32 %1170, %1171
  %1173 = add nsw i32 %1169, %1172
  store i32 %1173, ptr %52, align 4, !tbaa !9
  %1174 = load i32, ptr %65, align 4, !tbaa !9
  %1175 = load i32, ptr %64, align 4, !tbaa !9
  %1176 = load i32, ptr %47, align 4, !tbaa !9
  %1177 = mul nsw i32 %1175, %1176
  %1178 = add nsw i32 %1174, %1177
  store i32 %1178, ptr %53, align 4, !tbaa !9
  %1179 = load ptr, ptr %31, align 8, !tbaa !5
  %1180 = load i32, ptr %53, align 4, !tbaa !9
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds %struct.complex, ptr %1179, i64 %1181
  %1183 = getelementptr inbounds %struct.complex, ptr %1182, i32 0, i32 0
  %1184 = load float, ptr %1183, align 4, !tbaa !11
  store float %1184, ptr %54, align 4, !tbaa !15
  %1185 = load float, ptr %54, align 4, !tbaa !15
  %1186 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1185, ptr %1186, align 4, !tbaa !11
  %1187 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float 0.000000e+00, ptr %1187, align 4, !tbaa !14
  %1188 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1189 = load float, ptr %1188, align 4, !tbaa !11
  %1190 = load ptr, ptr %31, align 8, !tbaa !5
  %1191 = load i32, ptr %52, align 4, !tbaa !9
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds %struct.complex, ptr %1190, i64 %1192
  %1194 = getelementptr inbounds %struct.complex, ptr %1193, i32 0, i32 0
  store float %1189, ptr %1194, align 4, !tbaa !11
  %1195 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1196 = load float, ptr %1195, align 4, !tbaa !14
  %1197 = load ptr, ptr %31, align 8, !tbaa !5
  %1198 = load i32, ptr %52, align 4, !tbaa !9
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds %struct.complex, ptr %1197, i64 %1199
  %1201 = getelementptr inbounds %struct.complex, ptr %1200, i32 0, i32 1
  store float %1196, ptr %1201, align 4, !tbaa !14
  br label %1202

1202:                                             ; preds = %1115
  %1203 = load i32, ptr %64, align 4, !tbaa !9
  %1204 = add nsw i32 %1203, 1
  store i32 %1204, ptr %64, align 4, !tbaa !9
  br label %1048, !llvm.loop !19

1205:                                             ; preds = %1048
  br label %1206

1206:                                             ; preds = %1205, %1030
  %1207 = load i32, ptr %79, align 4, !tbaa !9
  %1208 = icmp ne i32 %1207, 0
  br i1 %1208, label %1209, label %1382

1209:                                             ; preds = %1206
  %1210 = load ptr, ptr %23, align 8, !tbaa !5
  %1211 = load ptr, ptr %27, align 8, !tbaa !5
  %1212 = load ptr, ptr %35, align 8, !tbaa !5
  %1213 = load ptr, ptr %36, align 8, !tbaa !5
  %1214 = load ptr, ptr %37, align 8, !tbaa !5
  %1215 = getelementptr inbounds float, ptr %1214, i64 1
  %1216 = load ptr, ptr %27, align 8, !tbaa !5
  %1217 = load ptr, ptr %33, align 8, !tbaa !5
  %1218 = load i32, ptr %50, align 4, !tbaa !9
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds %struct.complex, ptr %1217, i64 %1219
  %1221 = load ptr, ptr %34, align 8, !tbaa !5
  call void @cgebak_(ptr noundef %1210, ptr noundef @.str.9, ptr noundef %1211, ptr noundef %1212, ptr noundef %1213, ptr noundef %1215, ptr noundef %1216, ptr noundef %1220, ptr noundef %1221, ptr noundef %60)
  %1222 = load ptr, ptr %27, align 8, !tbaa !5
  %1223 = load i32, ptr %1222, align 4, !tbaa !9
  store i32 %1223, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1224

1224:                                             ; preds = %1378, %1209
  %1225 = load i32, ptr %64, align 4, !tbaa !9
  %1226 = load i32, ptr %51, align 4, !tbaa !9
  %1227 = icmp sle i32 %1225, %1226
  br i1 %1227, label %1228, label %1381

1228:                                             ; preds = %1224
  %1229 = load ptr, ptr %27, align 8, !tbaa !5
  %1230 = load ptr, ptr %33, align 8, !tbaa !5
  %1231 = load i32, ptr %64, align 4, !tbaa !9
  %1232 = load i32, ptr %49, align 4, !tbaa !9
  %1233 = mul nsw i32 %1231, %1232
  %1234 = add nsw i32 %1233, 1
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds %struct.complex, ptr %1230, i64 %1235
  %1237 = call float @scnrm2_(ptr noundef %1229, ptr noundef %1236, ptr noundef @c__1)
  %1238 = fdiv float 1.000000e+00, %1237
  store float %1238, ptr %83, align 4, !tbaa !15
  %1239 = load ptr, ptr %27, align 8, !tbaa !5
  %1240 = load ptr, ptr %33, align 8, !tbaa !5
  %1241 = load i32, ptr %64, align 4, !tbaa !9
  %1242 = load i32, ptr %49, align 4, !tbaa !9
  %1243 = mul nsw i32 %1241, %1242
  %1244 = add nsw i32 %1243, 1
  %1245 = sext i32 %1244 to i64
  %1246 = getelementptr inbounds %struct.complex, ptr %1240, i64 %1245
  call void @csscal_(ptr noundef %1239, ptr noundef %83, ptr noundef %1246, ptr noundef @c__1)
  %1247 = load ptr, ptr %27, align 8, !tbaa !5
  %1248 = load i32, ptr %1247, align 4, !tbaa !9
  store i32 %1248, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %1249

1249:                                             ; preds = %1288, %1228
  %1250 = load i32, ptr %65, align 4, !tbaa !9
  %1251 = load i32, ptr %52, align 4, !tbaa !9
  %1252 = icmp sle i32 %1250, %1251
  br i1 %1252, label %1253, label %1291

1253:                                             ; preds = %1249
  %1254 = load i32, ptr %65, align 4, !tbaa !9
  %1255 = load i32, ptr %64, align 4, !tbaa !9
  %1256 = load i32, ptr %49, align 4, !tbaa !9
  %1257 = mul nsw i32 %1255, %1256
  %1258 = add nsw i32 %1254, %1257
  store i32 %1258, ptr %53, align 4, !tbaa !9
  %1259 = load ptr, ptr %33, align 8, !tbaa !5
  %1260 = load i32, ptr %53, align 4, !tbaa !9
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds %struct.complex, ptr %1259, i64 %1261
  %1263 = getelementptr inbounds %struct.complex, ptr %1262, i32 0, i32 0
  %1264 = load float, ptr %1263, align 4, !tbaa !11
  store float %1264, ptr %54, align 4, !tbaa !15
  %1265 = load ptr, ptr %33, align 8, !tbaa !5
  %1266 = load i32, ptr %65, align 4, !tbaa !9
  %1267 = load i32, ptr %64, align 4, !tbaa !9
  %1268 = load i32, ptr %49, align 4, !tbaa !9
  %1269 = mul nsw i32 %1267, %1268
  %1270 = add nsw i32 %1266, %1269
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds %struct.complex, ptr %1265, i64 %1271
  %1273 = call <2 x float> @Cf(ptr noundef %1272)
  store <2 x float> %1273, ptr %91, align 4
  %1274 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 0
  %1275 = load float, ptr %1274, align 4
  %1276 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 1
  %1277 = load float, ptr %1276, align 4
  store float %1277, ptr %55, align 4, !tbaa !15
  %1278 = load float, ptr %54, align 4, !tbaa !15
  %1279 = load float, ptr %54, align 4, !tbaa !15
  %1280 = load float, ptr %55, align 4, !tbaa !15
  %1281 = load float, ptr %55, align 4, !tbaa !15
  %1282 = fmul float %1280, %1281
  %1283 = call float @llvm.fmuladd.f32(float %1278, float %1279, float %1282)
  %1284 = load ptr, ptr %43, align 8, !tbaa !5
  %1285 = load i32, ptr %65, align 4, !tbaa !9
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds float, ptr %1284, i64 %1286
  store float %1283, ptr %1287, align 4, !tbaa !15
  br label %1288

1288:                                             ; preds = %1253
  %1289 = load i32, ptr %65, align 4, !tbaa !9
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr %65, align 4, !tbaa !9
  br label %1249, !llvm.loop !20

1291:                                             ; preds = %1249
  %1292 = load ptr, ptr %27, align 8, !tbaa !5
  %1293 = load ptr, ptr %43, align 8, !tbaa !5
  %1294 = getelementptr inbounds float, ptr %1293, i64 1
  %1295 = call i32 @isamax_(ptr noundef %1292, ptr noundef %1294, ptr noundef @c__1)
  store i32 %1295, ptr %65, align 4, !tbaa !9
  %1296 = load ptr, ptr %33, align 8, !tbaa !5
  %1297 = load i32, ptr %65, align 4, !tbaa !9
  %1298 = load i32, ptr %64, align 4, !tbaa !9
  %1299 = load i32, ptr %49, align 4, !tbaa !9
  %1300 = mul nsw i32 %1298, %1299
  %1301 = add nsw i32 %1297, %1300
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds %struct.complex, ptr %1296, i64 %1302
  %1304 = call <2 x float> @Cf(ptr noundef %1303)
  store <2 x float> %1304, ptr %92, align 4
  %1305 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 0
  %1306 = load float, ptr %1305, align 4
  %1307 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 1
  %1308 = load float, ptr %1307, align 4
  %1309 = fneg float %1308
  %1310 = call ptr @_pCf(ptr noundef %57)
  %1311 = getelementptr inbounds { float, float }, ptr %1310, i32 0, i32 0
  %1312 = getelementptr inbounds { float, float }, ptr %1310, i32 0, i32 1
  store float %1306, ptr %1311, align 4
  store float %1309, ptr %1312, align 4
  %1313 = load ptr, ptr %43, align 8, !tbaa !5
  %1314 = load i32, ptr %65, align 4, !tbaa !9
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds float, ptr %1313, i64 %1315
  %1317 = load float, ptr %1316, align 4, !tbaa !15
  %1318 = fpext float %1317 to double
  %1319 = call double @sqrt(double noundef %1318) #7
  %1320 = fptrunc double %1319 to float
  store float %1320, ptr %54, align 4, !tbaa !15
  %1321 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1322 = load float, ptr %1321, align 4, !tbaa !11
  %1323 = load float, ptr %54, align 4, !tbaa !15
  %1324 = fdiv float %1322, %1323
  %1325 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1324, ptr %1325, align 4, !tbaa !11
  %1326 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1327 = load float, ptr %1326, align 4, !tbaa !14
  %1328 = load float, ptr %54, align 4, !tbaa !15
  %1329 = fdiv float %1327, %1328
  %1330 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1329, ptr %1330, align 4, !tbaa !14
  %1331 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1332 = load float, ptr %1331, align 4, !tbaa !11
  %1333 = getelementptr inbounds %struct.complex, ptr %86, i32 0, i32 0
  store float %1332, ptr %1333, align 4, !tbaa !11
  %1334 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1335 = load float, ptr %1334, align 4, !tbaa !14
  %1336 = getelementptr inbounds %struct.complex, ptr %86, i32 0, i32 1
  store float %1335, ptr %1336, align 4, !tbaa !14
  %1337 = load ptr, ptr %27, align 8, !tbaa !5
  %1338 = load ptr, ptr %33, align 8, !tbaa !5
  %1339 = load i32, ptr %64, align 4, !tbaa !9
  %1340 = load i32, ptr %49, align 4, !tbaa !9
  %1341 = mul nsw i32 %1339, %1340
  %1342 = add nsw i32 %1341, 1
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds %struct.complex, ptr %1338, i64 %1343
  call void @cscal_(ptr noundef %1337, ptr noundef %86, ptr noundef %1344, ptr noundef @c__1)
  %1345 = load i32, ptr %65, align 4, !tbaa !9
  %1346 = load i32, ptr %64, align 4, !tbaa !9
  %1347 = load i32, ptr %49, align 4, !tbaa !9
  %1348 = mul nsw i32 %1346, %1347
  %1349 = add nsw i32 %1345, %1348
  store i32 %1349, ptr %52, align 4, !tbaa !9
  %1350 = load i32, ptr %65, align 4, !tbaa !9
  %1351 = load i32, ptr %64, align 4, !tbaa !9
  %1352 = load i32, ptr %49, align 4, !tbaa !9
  %1353 = mul nsw i32 %1351, %1352
  %1354 = add nsw i32 %1350, %1353
  store i32 %1354, ptr %53, align 4, !tbaa !9
  %1355 = load ptr, ptr %33, align 8, !tbaa !5
  %1356 = load i32, ptr %53, align 4, !tbaa !9
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds %struct.complex, ptr %1355, i64 %1357
  %1359 = getelementptr inbounds %struct.complex, ptr %1358, i32 0, i32 0
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  store float %1360, ptr %54, align 4, !tbaa !15
  %1361 = load float, ptr %54, align 4, !tbaa !15
  %1362 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1361, ptr %1362, align 4, !tbaa !11
  %1363 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float 0.000000e+00, ptr %1363, align 4, !tbaa !14
  %1364 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1365 = load float, ptr %1364, align 4, !tbaa !11
  %1366 = load ptr, ptr %33, align 8, !tbaa !5
  %1367 = load i32, ptr %52, align 4, !tbaa !9
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds %struct.complex, ptr %1366, i64 %1368
  %1370 = getelementptr inbounds %struct.complex, ptr %1369, i32 0, i32 0
  store float %1365, ptr %1370, align 4, !tbaa !11
  %1371 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1372 = load float, ptr %1371, align 4, !tbaa !14
  %1373 = load ptr, ptr %33, align 8, !tbaa !5
  %1374 = load i32, ptr %52, align 4, !tbaa !9
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds %struct.complex, ptr %1373, i64 %1375
  %1377 = getelementptr inbounds %struct.complex, ptr %1376, i32 0, i32 1
  store float %1372, ptr %1377, align 4, !tbaa !14
  br label %1378

1378:                                             ; preds = %1291
  %1379 = load i32, ptr %64, align 4, !tbaa !9
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr %64, align 4, !tbaa !9
  br label %1224, !llvm.loop !21

1381:                                             ; preds = %1224
  br label %1382

1382:                                             ; preds = %1381, %1206
  br label %1383

1383:                                             ; preds = %1382, %957
  %1384 = load i32, ptr %67, align 4, !tbaa !9
  %1385 = icmp ne i32 %1384, 0
  br i1 %1385, label %1386, label %1436

1386:                                             ; preds = %1383
  %1387 = load ptr, ptr %27, align 8, !tbaa !5
  %1388 = load i32, ptr %1387, align 4, !tbaa !9
  %1389 = load ptr, ptr %44, align 8, !tbaa !5
  %1390 = load i32, ptr %1389, align 4, !tbaa !9
  %1391 = sub nsw i32 %1388, %1390
  store i32 %1391, ptr %51, align 4, !tbaa !9
  %1392 = load ptr, ptr %27, align 8, !tbaa !5
  %1393 = load i32, ptr %1392, align 4, !tbaa !9
  %1394 = load ptr, ptr %44, align 8, !tbaa !5
  %1395 = load i32, ptr %1394, align 4, !tbaa !9
  %1396 = sub nsw i32 %1393, %1395
  store i32 %1396, ptr %53, align 4, !tbaa !9
  %1397 = load i32, ptr %53, align 4, !tbaa !9
  %1398 = icmp sge i32 %1397, 1
  br i1 %1398, label %1399, label %1401

1399:                                             ; preds = %1386
  %1400 = load i32, ptr %53, align 4, !tbaa !9
  br label %1402

1401:                                             ; preds = %1386
  br label %1402

1402:                                             ; preds = %1401, %1399
  %1403 = phi i32 [ %1400, %1399 ], [ 1, %1401 ]
  store i32 %1403, ptr %52, align 4, !tbaa !9
  %1404 = load ptr, ptr %30, align 8, !tbaa !5
  %1405 = load ptr, ptr %44, align 8, !tbaa !5
  %1406 = load i32, ptr %1405, align 4, !tbaa !9
  %1407 = add nsw i32 %1406, 1
  %1408 = sext i32 %1407 to i64
  %1409 = getelementptr inbounds %struct.complex, ptr %1404, i64 %1408
  call void @clascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %68, ptr noundef %59, ptr noundef %51, ptr noundef @c__1, ptr noundef %1409, ptr noundef %52, ptr noundef %60)
  %1410 = load ptr, ptr %44, align 8, !tbaa !5
  %1411 = load i32, ptr %1410, align 4, !tbaa !9
  %1412 = icmp eq i32 %1411, 0
  br i1 %1412, label %1413, label %1428

1413:                                             ; preds = %1402
  %1414 = load i32, ptr %81, align 4, !tbaa !9
  %1415 = icmp ne i32 %1414, 0
  br i1 %1415, label %1419, label %1416

1416:                                             ; preds = %1413
  %1417 = load i32, ptr %74, align 4, !tbaa !9
  %1418 = icmp ne i32 %1417, 0
  br i1 %1418, label %1419, label %1427

1419:                                             ; preds = %1416, %1413
  %1420 = load i32, ptr %66, align 4, !tbaa !9
  %1421 = icmp eq i32 %1420, 0
  br i1 %1421, label %1422, label %1427

1422:                                             ; preds = %1419
  %1423 = load ptr, ptr %27, align 8, !tbaa !5
  %1424 = load ptr, ptr %40, align 8, !tbaa !5
  %1425 = getelementptr inbounds float, ptr %1424, i64 1
  %1426 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %68, ptr noundef %59, ptr noundef %1423, ptr noundef @c__1, ptr noundef %1425, ptr noundef %1426, ptr noundef %60)
  br label %1427

1427:                                             ; preds = %1422, %1419, %1416
  br label %1435

1428:                                             ; preds = %1402
  %1429 = load ptr, ptr %35, align 8, !tbaa !5
  %1430 = load i32, ptr %1429, align 4, !tbaa !9
  %1431 = sub nsw i32 %1430, 1
  store i32 %1431, ptr %51, align 4, !tbaa !9
  %1432 = load ptr, ptr %30, align 8, !tbaa !5
  %1433 = getelementptr inbounds %struct.complex, ptr %1432, i64 1
  %1434 = load ptr, ptr %27, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %68, ptr noundef %59, ptr noundef %51, ptr noundef @c__1, ptr noundef %1433, ptr noundef %1434, ptr noundef %60)
  br label %1435

1435:                                             ; preds = %1428, %1427
  br label %1436

1436:                                             ; preds = %1435, %1383
  %1437 = load i32, ptr %72, align 4, !tbaa !9
  %1438 = sitofp i32 %1437 to float
  %1439 = load ptr, ptr %41, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.complex, ptr %1439, i64 1
  %1441 = getelementptr inbounds %struct.complex, ptr %1440, i32 0, i32 0
  store float %1438, ptr %1441, align 4, !tbaa !11
  %1442 = load ptr, ptr %41, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.complex, ptr %1442, i64 1
  %1444 = getelementptr inbounds %struct.complex, ptr %1443, i32 0, i32 1
  store float 0.000000e+00, ptr %1444, align 4, !tbaa !14
  store i32 1, ptr %88, align 4
  br label %1445

1445:                                             ; preds = %1436, %665, %659, %651
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  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
  ret void
}

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

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

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

declare void @ctrevc3_(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, ptr noundef, ptr noundef, ptr noundef) #2

declare void @chseqr_(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 i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

declare void @ctrsna_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #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 = !{!13, !13, i64 0}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = distinct !{!21, !18}


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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cgeevx_(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 nocapture noundef writeonly %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr nocapture noundef readonly %19, ptr noundef %20, ptr noundef %21) local_unnamed_addr #0 {
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.complex, align 8
  %26 = alloca [1 x i8], align 1
  %27 = alloca float, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca float, align 4
  %32 = alloca [1 x i32], align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca [1 x i8], align 1
  %36 = alloca float, align 4
  %37 = alloca [1 x float], align 4
  %38 = alloca %struct.complex, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  %39 = getelementptr inbounds i8, ptr %7, i64 -8
  %40 = load i32, ptr %9, align 4, !tbaa !5
  %narrow = xor i32 %40, -1
  %41 = sext i32 %narrow to i64
  %42 = getelementptr inbounds %struct.complex, ptr %8, i64 %41
  %43 = load i32, ptr %11, align 4, !tbaa !5
  %narrow621 = xor i32 %43, -1
  %44 = sext i32 %narrow621 to i64
  %45 = getelementptr inbounds %struct.complex, ptr %10, i64 %44
  %46 = getelementptr inbounds i8, ptr %18, i64 -8
  %47 = getelementptr inbounds i8, ptr %20, i64 -4
  store i32 0, ptr %21, align 4, !tbaa !5
  %48 = load i32, ptr %19, align 4, !tbaa !5
  %49 = icmp eq i32 %48, -1
  %50 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #8
  %51 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #8
  %52 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #8
  %53 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.2) #8
  %54 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #8
  %55 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.3) #8
  %56 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #8
  %.not = icmp eq i32 %56, 0
  br i1 %.not, label %57, label %63

57:                                               ; preds = %22
  %58 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #8
  %.not595 = icmp eq i32 %58, 0
  br i1 %.not595, label %59, label %63

59:                                               ; preds = %57
  %60 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #8
  %.not596 = icmp eq i32 %60, 0
  br i1 %.not596, label %61, label %63

61:                                               ; preds = %59
  %62 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #8
  %.not597 = icmp eq i32 %62, 0
  br i1 %.not597, label %.thread638.sink.split, label %63

63:                                               ; preds = %61, %59, %57, %22
  %64 = icmp ne i32 %50, 0
  br i1 %64, label %67, label %65

65:                                               ; preds = %63
  %66 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #8
  %.not598 = icmp eq i32 %66, 0
  br i1 %.not598, label %.thread638.sink.split, label %67

67:                                               ; preds = %65, %63
  %68 = icmp ne i32 %51, 0
  br i1 %68, label %71, label %69

69:                                               ; preds = %67
  %70 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #8
  %.not599 = icmp eq i32 %70, 0
  br i1 %.not599, label %.thread638.sink.split, label %71

71:                                               ; preds = %69, %67
  %72 = icmp ne i32 %52, 0
  %73 = icmp ne i32 %53, 0
  %or.cond = select i1 %72, i1 true, i1 %73
  %74 = icmp ne i32 %55, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %74
  %75 = icmp ne i32 %54, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %75
  br i1 %or.cond5, label %76, label %.thread638.sink.split

76:                                               ; preds = %71
  %or.cond7 = select i1 %73, i1 true, i1 %74
  %or.cond7.not = xor i1 %or.cond7, true
  %or.cond9 = and i1 %64, %68
  %or.cond626 = or i1 %or.cond9, %or.cond7.not
  br i1 %or.cond626, label %77, label %.thread638.sink.split

77:                                               ; preds = %76
  %78 = load i32, ptr %4, align 4, !tbaa !5
  %79 = icmp slt i32 %78, 0
  br i1 %79, label %.thread638.sink.split, label %80

80:                                               ; preds = %77
  %81 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %78, i32 1)
  %82 = icmp slt i32 %81, %spec.select
  br i1 %82, label %.thread638.sink.split, label %83

83:                                               ; preds = %80
  %84 = load i32, ptr %9, align 4, !tbaa !5
  %85 = icmp slt i32 %84, 1
  %86 = icmp ult i32 %84, %78
  %or.cond649 = and i1 %64, %86
  %or.cond651 = or i1 %85, %or.cond649
  br i1 %or.cond651, label %.thread638.sink.split, label %87

87:                                               ; preds = %83
  %88 = load i32, ptr %11, align 4, !tbaa !5
  %89 = icmp slt i32 %88, 1
  %90 = icmp ult i32 %88, %78
  %or.cond650 = and i1 %68, %90
  %or.cond652 = or i1 %89, %or.cond650
  br i1 %or.cond652, label %.thread638.sink.split, label %91

91:                                               ; preds = %87
  %.pr = load i32, ptr %21, align 4, !tbaa !5
  %92 = icmp eq i32 %.pr, 0
  br i1 %92, label %93, label %.thread638

93:                                               ; preds = %91
  %94 = icmp eq i32 %78, 0
  br i1 %94, label %146, label %95

95:                                               ; preds = %93
  %96 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #8
  %97 = add i32 %96, 1
  %98 = mul i32 %97, %78
  %.not653 = icmp eq i32 %50, 0
  br i1 %.not653, label %103, label %99

99:                                               ; preds = %95
  call void @ctrevc3_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.3, ptr noundef nonnull %32, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %4, ptr noundef nonnull %29, ptr noundef %18, ptr noundef nonnull @c_n1, ptr noundef %20, ptr noundef nonnull @c_n1, ptr noundef nonnull %28) #8
  %100 = load float, ptr %18, align 4, !tbaa !9
  %101 = fptosi float %100 to i32
  %102 = call i32 @llvm.smax.i32(i32 %98, i32 %101)
  call void @chseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %18, ptr noundef nonnull @c_n1, ptr noundef nonnull %21) #8
  br label %.thread628

103:                                              ; preds = %95
  %.not600 = icmp eq i32 %51, 0
  br i1 %.not600, label %108, label %104

104:                                              ; preds = %103
  call void @ctrevc3_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.3, ptr noundef nonnull %32, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %4, ptr noundef nonnull %29, ptr noundef %18, ptr noundef nonnull @c_n1, ptr noundef %20, ptr noundef nonnull @c_n1, ptr noundef nonnull %28) #8
  %105 = load float, ptr %18, align 4, !tbaa !9
  %106 = fptosi float %105 to i32
  %107 = call i32 @llvm.smax.i32(i32 %98, i32 %106)
  call void @chseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %18, ptr noundef nonnull @c_n1, ptr noundef nonnull %21) #8
  br label %.thread628

108:                                              ; preds = %103
  %.not601 = icmp eq i32 %52, 0
  %.str.4..str.2 = select i1 %.not601, ptr @.str.4, ptr @.str.2
  tail call void @chseqr_(ptr noundef nonnull %.str.4..str.2, ptr noundef nonnull @.str.1, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %18, ptr noundef nonnull @c_n1, ptr noundef nonnull %21) #8
  %109 = load float, ptr %18, align 4, !tbaa !9
  %110 = fptosi float %109 to i32
  %111 = load i32, ptr %4, align 4, !tbaa !5
  %112 = shl i32 %111, 1
  br i1 %or.cond, label %.thread632, label %118

.thread628:                                       ; preds = %99, %104
  %.0.ph = phi i32 [ %107, %104 ], [ %102, %99 ]
  %113 = load float, ptr %18, align 4, !tbaa !9
  %114 = fptosi float %113 to i32
  %115 = load i32, ptr %4, align 4, !tbaa !5
  %116 = shl i32 %115, 1
  br i1 %or.cond, label %128, label %124

.thread632:                                       ; preds = %108
  %117 = tail call i32 @llvm.smax.i32(i32 %98, i32 %110)
  br label %143

118:                                              ; preds = %108
  %119 = add i32 %111, 2
  %120 = mul i32 %119, %111
  %121 = tail call i32 @llvm.smax.i32(i32 %112, i32 %120)
  %122 = tail call i32 @llvm.smax.i32(i32 %98, i32 %110)
  store i32 %122, ptr %23, align 4, !tbaa !5
  store i32 %120, ptr %24, align 4, !tbaa !5
  %123 = tail call i32 @llvm.smax.i32(i32 %122, i32 %120)
  br label %143

124:                                              ; preds = %.thread628
  %125 = add i32 %115, 2
  %126 = mul i32 %125, %115
  %127 = call i32 @llvm.smax.i32(i32 %116, i32 %126)
  br label %128

128:                                              ; preds = %124, %.thread628
  %.1578 = phi i32 [ %116, %.thread628 ], [ %127, %124 ]
  %129 = call i32 @llvm.smax.i32(i32 %.0.ph, i32 %114)
  store i32 %129, ptr %23, align 4, !tbaa !5
  %130 = add nsw i32 %115, -1
  %131 = call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #8
  %132 = mul nsw i32 %131, %130
  %133 = add nsw i32 %132, %115
  %134 = load i32, ptr %23, align 4
  %135 = call i32 @llvm.smax.i32(i32 %134, i32 %133)
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  br i1 %or.cond, label %140, label %136

136:                                              ; preds = %128
  %137 = add i32 %.pre, 2
  %138 = mul i32 %137, %.pre
  %139 = call i32 @llvm.smax.i32(i32 %135, i32 %138)
  br label %140

140:                                              ; preds = %136, %128
  %.1 = phi i32 [ %135, %128 ], [ %139, %136 ]
  store i32 %.1, ptr %23, align 4, !tbaa !5
  %141 = shl i32 %.pre, 1
  store i32 %141, ptr %24, align 4, !tbaa !5
  %142 = call i32 @llvm.smax.i32(i32 %.1, i32 %141)
  br label %143

143:                                              ; preds = %.thread632, %118, %140
  %144 = phi i32 [ %.pre, %140 ], [ %111, %118 ], [ %111, %.thread632 ]
  %.2579 = phi i32 [ %.1578, %140 ], [ %121, %118 ], [ %112, %.thread632 ]
  %.2 = phi i32 [ %142, %140 ], [ %123, %118 ], [ %117, %.thread632 ]
  %145 = call i32 @llvm.smax.i32(i32 %.2, i32 %.2579)
  br label %146

146:                                              ; preds = %93, %143
  %147 = phi i32 [ %144, %143 ], [ 0, %93 ]
  %.3580 = phi i32 [ %.2579, %143 ], [ 1, %93 ]
  %.3 = phi i32 [ %145, %143 ], [ 1, %93 ]
  %148 = sitofp i32 %.3 to float
  store float %148, ptr %18, align 4, !tbaa !9
  %149 = getelementptr inbounds i8, ptr %18, i64 4
  store float 0.000000e+00, ptr %149, align 4, !tbaa !12
  %150 = load i32, ptr %19, align 4, !tbaa !5
  %151 = icmp sge i32 %150, %.3580
  %or.cond21 = select i1 %151, i1 true, i1 %49
  br i1 %or.cond21, label %.thread, label %.thread638.sink.split

.thread:                                          ; preds = %146
  %.pr635.pr = load i32, ptr %21, align 4, !tbaa !5
  %.not613 = icmp eq i32 %.pr635.pr, 0
  br i1 %.not613, label %155, label %.thread638

.thread638.sink.split:                            ; preds = %146, %87, %83, %80, %77, %71, %76, %69, %65, %61
  %.sink = phi i32 [ -1, %61 ], [ -2, %65 ], [ -3, %69 ], [ -4, %76 ], [ -4, %71 ], [ -5, %77 ], [ -7, %80 ], [ -10, %83 ], [ -12, %87 ], [ -20, %146 ]
  store i32 %.sink, ptr %21, align 4, !tbaa !5
  br label %.thread638

.thread638:                                       ; preds = %.thread638.sink.split, %91, %.thread
  %152 = phi i32 [ %.pr635.pr, %.thread ], [ %.pr, %91 ], [ %.sink, %.thread638.sink.split ]
  %153 = sub nsw i32 0, %152
  store i32 %153, ptr %23, align 4, !tbaa !5
  %154 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %23, i32 noundef 6) #8
  br label %294

155:                                              ; preds = %.thread
  %156 = icmp eq i32 %147, 0
  %or.cond688 = select i1 %49, i1 true, i1 %156
  br i1 %or.cond688, label %294, label %157

157:                                              ; preds = %155
  %158 = call float @slamch_(ptr noundef nonnull @.str.5) #8
  %159 = call float @slamch_(ptr noundef nonnull @.str.4) #8
  store float %159, ptr %34, align 4, !tbaa !13
  %160 = fdiv float 1.000000e+00, %159
  store float %160, ptr %33, align 4, !tbaa !13
  call void @slabad_(ptr noundef nonnull %34, ptr noundef nonnull %33) #8
  %161 = load float, ptr %34, align 4, !tbaa !13
  %162 = fpext float %161 to double
  %163 = call double @sqrt(double noundef %162) #8
  %164 = fpext float %158 to double
  %165 = fdiv double %163, %164
  %166 = fptrunc double %165 to float
  store float %166, ptr %34, align 4, !tbaa !13
  %167 = fdiv float 1.000000e+00, %166
  store float %167, ptr %33, align 4, !tbaa !13
  store i32 0, ptr %30, align 4, !tbaa !5
  %168 = call float @clange_(ptr noundef nonnull @.str.12, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %37) #8
  store float %168, ptr %27, align 4, !tbaa !13
  %169 = fcmp ogt float %168, 0.000000e+00
  %170 = load float, ptr %34, align 4
  %171 = fcmp olt float %168, %170
  %or.cond655 = select i1 %169, i1 %171, i1 false
  br i1 %or.cond655, label %175, label %172

172:                                              ; preds = %157
  %173 = load float, ptr %33, align 4, !tbaa !13
  %174 = fcmp ogt float %168, %173
  br i1 %174, label %175, label %176

175:                                              ; preds = %157, %172
  %storemerge = phi float [ %173, %172 ], [ %170, %157 ]
  store float %storemerge, ptr %31, align 4, !tbaa !13
  call void @clascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %31, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %28) #8
  br label %176

176:                                              ; preds = %172, %175
  %.not614645 = phi i1 [ false, %175 ], [ true, %172 ]
  call void @cgebal_(ptr noundef %0, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef nonnull %28) #8
  %177 = call float @clange_(ptr noundef nonnull @.str.14, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %37) #8
  store float %177, ptr %15, align 4, !tbaa !13
  br i1 %.not614645, label %180, label %178

178:                                              ; preds = %176
  store float %177, ptr %37, align 4, !tbaa !13
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %28) #8
  %179 = load float, ptr %37, align 4, !tbaa !13
  store float %179, ptr %15, align 4, !tbaa !13
  br label %180

180:                                              ; preds = %178, %176
  %181 = load i32, ptr %4, align 4, !tbaa !5
  %182 = load i32, ptr %19, align 4, !tbaa !5
  %183 = sub i32 %182, %181
  store i32 %183, ptr %23, align 4, !tbaa !5
  %184 = sext i32 %181 to i64
  %185 = getelementptr %struct.complex, ptr %46, i64 %184
  %186 = getelementptr i8, ptr %185, i64 8
  call void @cgehrd_(ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %18, ptr noundef nonnull %186, ptr noundef nonnull %23, ptr noundef nonnull %28) #8
  br i1 %64, label %187, label %192

187:                                              ; preds = %180
  store i8 76, ptr %26, align 1, !tbaa !14
  call void @clacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef nonnull %9) #8
  %188 = load i32, ptr %19, align 4, !tbaa !5
  %189 = sub i32 %188, %181
  store i32 %189, ptr %23, align 4, !tbaa !5
  call void @cunghr_(ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %18, ptr noundef nonnull %186, ptr noundef nonnull %23, ptr noundef nonnull %28) #8
  %190 = load i32, ptr %19, align 4, !tbaa !5
  store i32 %190, ptr %23, align 4, !tbaa !5
  call void @chseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %18, ptr noundef nonnull %23, ptr noundef nonnull %21) #8
  %.not617 = icmp eq i32 %51, 0
  br i1 %.not617, label %199, label %191

191:                                              ; preds = %187
  store i8 66, ptr %26, align 1, !tbaa !14
  call void @clacpy_(ptr noundef nonnull @.str.15, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11) #8
  br label %199

192:                                              ; preds = %180
  %.not615 = icmp eq i32 %51, 0
  br i1 %.not615, label %197, label %193

193:                                              ; preds = %192
  store i8 82, ptr %26, align 1, !tbaa !14
  call void @clacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11) #8
  %194 = load i32, ptr %19, align 4, !tbaa !5
  %195 = sub i32 %194, %181
  store i32 %195, ptr %23, align 4, !tbaa !5
  call void @cunghr_(ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %18, ptr noundef nonnull %186, ptr noundef nonnull %23, ptr noundef nonnull %28) #8
  %196 = load i32, ptr %19, align 4, !tbaa !5
  store i32 %196, ptr %23, align 4, !tbaa !5
  call void @chseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %18, ptr noundef nonnull %23, ptr noundef nonnull %21) #8
  br label %199

197:                                              ; preds = %192
  %.not616 = icmp eq i32 %52, 0
  %. = select i1 %.not616, i8 83, i8 69
  store i8 %., ptr %35, align 1, !tbaa !14
  %198 = load i32, ptr %19, align 4, !tbaa !5
  store i32 %198, ptr %23, align 4, !tbaa !5
  call void @chseqr_(ptr noundef nonnull %35, ptr noundef nonnull @.str.1, ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %18, ptr noundef nonnull %23, ptr noundef nonnull %21) #8
  br label %199

199:                                              ; preds = %193, %197, %187, %191
  %200 = load i32, ptr %21, align 4, !tbaa !5
  %.not618 = icmp eq i32 %200, 0
  br i1 %.not618, label %201, label %.loopexit

201:                                              ; preds = %199
  %202 = or i32 %50, %51
  %or.cond23.not = icmp eq i32 %202, 0
  br i1 %or.cond23.not, label %205, label %203

203:                                              ; preds = %201
  %204 = load i32, ptr %19, align 4, !tbaa !5
  store i32 %204, ptr %23, align 4, !tbaa !5
  call void @ctrevc3_(ptr noundef nonnull %26, ptr noundef nonnull @.str.3, ptr noundef nonnull %32, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %4, ptr noundef nonnull %29, ptr noundef nonnull %18, ptr noundef nonnull %23, ptr noundef %20, ptr noundef nonnull %4, ptr noundef nonnull %28) #8
  br label %205

205:                                              ; preds = %201, %203
  %.not619 = icmp eq i32 %52, 0
  br i1 %.not619, label %206, label %207

206:                                              ; preds = %205
  call void @ctrsna_(ptr noundef %3, ptr noundef nonnull @.str.16, ptr noundef nonnull %32, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %16, ptr noundef %17, ptr noundef nonnull %4, ptr noundef nonnull %29, ptr noundef nonnull %18, ptr noundef nonnull %4, ptr noundef %20, ptr noundef nonnull %30) #8
  br label %207

207:                                              ; preds = %206, %205
  br i1 %64, label %208, label %.loopexit656

208:                                              ; preds = %207
  call void @cgebak_(ptr noundef %0, ptr noundef nonnull @.str.8, ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %28) #8
  %209 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %209, ptr %23, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %42, i64 8
  %.not620659 = icmp slt i32 %209, 1
  br i1 %.not620659, label %.loopexit656, label %.lr.ph662

.lr.ph662:                                        ; preds = %208
  %210 = sext i32 %40 to i64
  br label %211

211:                                              ; preds = %.lr.ph662, %._crit_edge
  %indvars.iv675 = phi i64 [ 1, %.lr.ph662 ], [ %indvars.iv.next676, %._crit_edge ]
  %212 = mul nsw i64 %indvars.iv675, %210
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %212
  %213 = call float @scnrm2_(ptr noundef nonnull %4, ptr noundef %gep, ptr noundef nonnull @c__1) #8
  %214 = fdiv float 1.000000e+00, %213
  store float %214, ptr %36, align 4, !tbaa !13
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep, ptr noundef nonnull @c__1) #8
  %215 = load i32, ptr %4, align 4, !tbaa !5
  %.not624657 = icmp slt i32 %215, 1
  br i1 %.not624657, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %211
  %invariant.gep684 = getelementptr %struct.complex, ptr %42, i64 %212
  %216 = zext nneg i32 %215 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %gep685 = getelementptr %struct.complex, ptr %invariant.gep684, i64 %indvars.iv
  %217 = load float, ptr %gep685, align 4, !tbaa !9
  %218 = call <2 x float> @Cf(ptr noundef nonnull %gep685)
  %219 = fmul <2 x float> %218, %218
  %220 = extractelement <2 x float> %219, i64 1
  %221 = call float @llvm.fmuladd.f32(float %217, float %217, float %220)
  %222 = getelementptr inbounds float, ptr %47, i64 %indvars.iv
  store float %221, ptr %222, align 4, !tbaa !13
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not624.not = icmp ult i64 %indvars.iv, %216
  br i1 %.not624.not, label %.lr.ph, label %._crit_edge, !llvm.loop !15

._crit_edge:                                      ; preds = %.lr.ph, %211
  %223 = call i32 @isamax_(ptr noundef nonnull %4, ptr noundef %20, ptr noundef nonnull @c__1) #8
  %224 = trunc nsw i64 %212 to i32
  %225 = add nsw i32 %223, %224
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds %struct.complex, ptr %42, i64 %226
  %228 = call <2 x float> @Cf(ptr noundef %227)
  %.sroa.029.0.vec.extract = extractelement <2 x float> %228, i64 0
  %.sroa.029.4.vec.extract = extractelement <2 x float> %228, i64 1
  %229 = fneg float %.sroa.029.4.vec.extract
  %230 = call ptr @_pCf(ptr noundef nonnull %25)
  %231 = getelementptr inbounds i8, ptr %230, i64 4
  store float %.sroa.029.0.vec.extract, ptr %230, align 4
  store float %229, ptr %231, align 4
  %232 = sext i32 %223 to i64
  %233 = getelementptr inbounds float, ptr %47, i64 %232
  %234 = load float, ptr %233, align 4, !tbaa !13
  %sqrtf625 = call float @sqrtf(float noundef %234) #3
  %235 = load <2 x float>, ptr %25, align 8, !tbaa !13
  %236 = insertelement <2 x float> poison, float %sqrtf625, i64 0
  %237 = shufflevector <2 x float> %236, <2 x float> poison, <2 x i32> zeroinitializer
  %238 = fdiv <2 x float> %235, %237
  store <2 x float> %238, ptr %38, align 8, !tbaa !13
  call void @cscal_(ptr noundef nonnull %4, ptr noundef nonnull %38, ptr noundef %gep, ptr noundef nonnull @c__1) #8
  store i32 %225, ptr %24, align 4, !tbaa !5
  %239 = getelementptr inbounds i8, ptr %227, i64 4
  store float 0.000000e+00, ptr %239, align 4, !tbaa !12
  %indvars.iv.next676 = add nuw nsw i64 %indvars.iv675, 1
  %240 = load i32, ptr %23, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %.not620.not = icmp slt i64 %indvars.iv675, %241
  br i1 %.not620.not, label %211, label %.loopexit656, !llvm.loop !17

.loopexit656:                                     ; preds = %._crit_edge, %208, %207
  br i1 %68, label %242, label %.loopexit

242:                                              ; preds = %.loopexit656
  call void @cgebak_(ptr noundef %0, ptr noundef nonnull @.str.9, ptr noundef nonnull %4, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef nonnull %4, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %28) #8
  %243 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %243, ptr %23, align 4, !tbaa !5
  %invariant.gep668 = getelementptr i8, ptr %45, i64 8
  %.not622670 = icmp slt i32 %243, 1
  br i1 %.not622670, label %.loopexit, label %.lr.ph673

.lr.ph673:                                        ; preds = %242
  %244 = sext i32 %43 to i64
  br label %245

245:                                              ; preds = %.lr.ph673, %._crit_edge667
  %indvars.iv681 = phi i64 [ 1, %.lr.ph673 ], [ %indvars.iv.next682, %._crit_edge667 ]
  %246 = mul nsw i64 %indvars.iv681, %244
  %gep669 = getelementptr %struct.complex, ptr %invariant.gep668, i64 %246
  %247 = call float @scnrm2_(ptr noundef nonnull %4, ptr noundef %gep669, ptr noundef nonnull @c__1) #8
  %248 = fdiv float 1.000000e+00, %247
  store float %248, ptr %36, align 4, !tbaa !13
  call void @csscal_(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep669, ptr noundef nonnull @c__1) #8
  %249 = load i32, ptr %4, align 4, !tbaa !5
  %.not623663 = icmp slt i32 %249, 1
  br i1 %.not623663, label %._crit_edge667, label %.lr.ph666.preheader

.lr.ph666.preheader:                              ; preds = %245
  %invariant.gep686 = getelementptr %struct.complex, ptr %45, i64 %246
  %250 = zext nneg i32 %249 to i64
  br label %.lr.ph666

.lr.ph666:                                        ; preds = %.lr.ph666.preheader, %.lr.ph666
  %indvars.iv678 = phi i64 [ 1, %.lr.ph666.preheader ], [ %indvars.iv.next679, %.lr.ph666 ]
  %gep687 = getelementptr %struct.complex, ptr %invariant.gep686, i64 %indvars.iv678
  %251 = load float, ptr %gep687, align 4, !tbaa !9
  %252 = call <2 x float> @Cf(ptr noundef nonnull %gep687)
  %253 = fmul <2 x float> %252, %252
  %254 = extractelement <2 x float> %253, i64 1
  %255 = call float @llvm.fmuladd.f32(float %251, float %251, float %254)
  %256 = getelementptr inbounds float, ptr %47, i64 %indvars.iv678
  store float %255, ptr %256, align 4, !tbaa !13
  %indvars.iv.next679 = add nuw nsw i64 %indvars.iv678, 1
  %.not623.not = icmp ult i64 %indvars.iv678, %250
  br i1 %.not623.not, label %.lr.ph666, label %._crit_edge667, !llvm.loop !18

._crit_edge667:                                   ; preds = %.lr.ph666, %245
  %257 = call i32 @isamax_(ptr noundef nonnull %4, ptr noundef %20, ptr noundef nonnull @c__1) #8
  %258 = trunc nsw i64 %246 to i32
  %259 = add nsw i32 %257, %258
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds %struct.complex, ptr %45, i64 %260
  %262 = call <2 x float> @Cf(ptr noundef %261)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %262, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %262, i64 1
  %263 = fneg float %.sroa.0.4.vec.extract
  %264 = call ptr @_pCf(ptr noundef nonnull %25)
  %265 = getelementptr inbounds i8, ptr %264, i64 4
  store float %.sroa.0.0.vec.extract, ptr %264, align 4
  store float %263, ptr %265, align 4
  %266 = sext i32 %257 to i64
  %267 = getelementptr inbounds float, ptr %47, i64 %266
  %268 = load float, ptr %267, align 4, !tbaa !13
  %sqrtf = call float @sqrtf(float noundef %268) #3
  %269 = load <2 x float>, ptr %25, align 8, !tbaa !13
  %270 = insertelement <2 x float> poison, float %sqrtf, i64 0
  %271 = shufflevector <2 x float> %270, <2 x float> poison, <2 x i32> zeroinitializer
  %272 = fdiv <2 x float> %269, %271
  store <2 x float> %272, ptr %38, align 8, !tbaa !13
  call void @cscal_(ptr noundef nonnull %4, ptr noundef nonnull %38, ptr noundef %gep669, ptr noundef nonnull @c__1) #8
  store i32 %259, ptr %24, align 4, !tbaa !5
  %273 = getelementptr inbounds i8, ptr %261, i64 4
  store float 0.000000e+00, ptr %273, align 4, !tbaa !12
  %indvars.iv.next682 = add nuw nsw i64 %indvars.iv681, 1
  %274 = load i32, ptr %23, align 4, !tbaa !5
  %275 = sext i32 %274 to i64
  %.not622.not = icmp slt i64 %indvars.iv681, %275
  br i1 %.not622.not, label %245, label %.loopexit, !llvm.loop !19

.loopexit:                                        ; preds = %._crit_edge667, %242, %.loopexit656, %199
  br i1 %.not614645, label %293, label %276

276:                                              ; preds = %.loopexit
  %277 = load i32, ptr %4, align 4, !tbaa !5
  %278 = load i32, ptr %21, align 4, !tbaa !5
  %279 = sub nsw i32 %277, %278
  store i32 %279, ptr %23, align 4, !tbaa !5
  %280 = call i32 @llvm.smax.i32(i32 %279, i32 1)
  store i32 %280, ptr %24, align 4, !tbaa !5
  %281 = sext i32 %278 to i64
  %282 = getelementptr %struct.complex, ptr %39, i64 %281
  %283 = getelementptr i8, ptr %282, i64 8
  call void @clascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull @c__1, ptr noundef %283, ptr noundef nonnull %24, ptr noundef nonnull %28) #8
  %284 = load i32, ptr %21, align 4, !tbaa !5
  %285 = icmp eq i32 %284, 0
  br i1 %285, label %286, label %290

286:                                              ; preds = %276
  %or.cond25 = select i1 %75, i1 true, i1 %74
  %287 = load i32, ptr %30, align 4
  %288 = icmp eq i32 %287, 0
  %or.cond27 = select i1 %or.cond25, i1 %288, i1 false
  br i1 %or.cond27, label %289, label %293

289:                                              ; preds = %286
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %17, ptr noundef nonnull %4, ptr noundef nonnull %28) #8
  br label %293

290:                                              ; preds = %276
  %291 = load i32, ptr %12, align 4, !tbaa !5
  %292 = add nsw i32 %291, -1
  store i32 %292, ptr %23, align 4, !tbaa !5
  call void @clascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %4, ptr noundef nonnull %28) #8
  br label %293

293:                                              ; preds = %290, %286, %289, %.loopexit
  store float %148, ptr %18, align 4, !tbaa !9
  store float 0.000000e+00, ptr %149, align 4, !tbaa !12
  br label %294

294:                                              ; preds = %155, %293, %.thread638
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  ret void
}

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

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

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

declare void @ctrevc3_(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, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @chseqr_(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 i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare void @clascl_(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 @cgebal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @slascl_(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 @cgehrd_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare void @ctrsna_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @cgebak_(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 float @scnrm2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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


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