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

; 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
@c__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.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 [2 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

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

122:                                              ; preds = %14
  %123 = load ptr, ptr %15, align 8, !tbaa !5
  %124 = call i32 @lsame_(ptr noundef %123, ptr noundef @.str.1)
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %128, label %126

126:                                              ; preds = %122
  %127 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -1, ptr %127, align 4, !tbaa !9
  br label %193

128:                                              ; preds = %122, %14
  %129 = load i32, ptr %62, align 4, !tbaa !9
  %130 = icmp ne i32 %129, 0
  br i1 %130, label %137, label %131

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

135:                                              ; preds = %131
  %136 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -2, ptr %136, align 4, !tbaa !9
  br label %192

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

141:                                              ; preds = %137
  %142 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -3, ptr %142, align 4, !tbaa !9
  br label %191

143:                                              ; preds = %137
  %144 = load ptr, ptr %19, align 8, !tbaa !5
  %145 = load i32, ptr %144, align 4, !tbaa !9
  %146 = load ptr, ptr %17, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = icmp sge i32 1, %147
  br i1 %148, label %149, label %150

149:                                              ; preds = %143
  br label %153

150:                                              ; preds = %143
  %151 = load ptr, ptr %17, align 8, !tbaa !5
  %152 = load i32, ptr %151, align 4, !tbaa !9
  br label %153

153:                                              ; preds = %150, %149
  %154 = phi i32 [ 1, %149 ], [ %152, %150 ]
  %155 = icmp slt i32 %145, %154
  br i1 %155, label %156, label %158

156:                                              ; preds = %153
  %157 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -5, ptr %157, align 4, !tbaa !9
  br label %190

158:                                              ; preds = %153
  %159 = load ptr, ptr %22, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  %161 = icmp slt i32 %160, 1
  br i1 %161, label %171, label %162

162:                                              ; preds = %158
  %163 = load i32, ptr %57, align 4, !tbaa !9
  %164 = icmp ne i32 %163, 0
  br i1 %164, label %165, label %173

165:                                              ; preds = %162
  %166 = load ptr, ptr %22, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = load ptr, ptr %17, align 8, !tbaa !5
  %169 = load i32, ptr %168, align 4, !tbaa !9
  %170 = icmp slt i32 %167, %169
  br i1 %170, label %171, label %173

171:                                              ; preds = %165, %158
  %172 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -8, ptr %172, align 4, !tbaa !9
  br label %189

173:                                              ; preds = %165, %162
  %174 = load ptr, ptr %24, align 8, !tbaa !5
  %175 = load i32, ptr %174, align 4, !tbaa !9
  %176 = icmp slt i32 %175, 1
  br i1 %176, label %186, label %177

177:                                              ; preds = %173
  %178 = load i32, ptr %62, align 4, !tbaa !9
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %188

180:                                              ; preds = %177
  %181 = load ptr, ptr %24, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = load ptr, ptr %17, align 8, !tbaa !5
  %184 = load i32, ptr %183, align 4, !tbaa !9
  %185 = icmp slt i32 %182, %184
  br i1 %185, label %186, label %188

186:                                              ; preds = %180, %173
  %187 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -10, ptr %187, align 4, !tbaa !9
  br label %188

188:                                              ; preds = %186, %180, %177
  br label %189

189:                                              ; preds = %188, %171
  br label %190

190:                                              ; preds = %189, %156
  br label %191

191:                                              ; preds = %190, %141
  br label %192

192:                                              ; preds = %191, %135
  br label %193

193:                                              ; preds = %192, %126
  %194 = load ptr, ptr %28, align 8, !tbaa !5
  %195 = load i32, ptr %194, align 4, !tbaa !9
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %197, label %440

197:                                              ; preds = %193
  %198 = load ptr, ptr %17, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = icmp eq i32 %199, 0
  br i1 %200, label %201, label %202

201:                                              ; preds = %197
  store i32 1, ptr %55, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %421

202:                                              ; preds = %197
  %203 = load ptr, ptr %17, align 8, !tbaa !5
  %204 = load i32, ptr %203, align 4, !tbaa !9
  %205 = load ptr, ptr %17, align 8, !tbaa !5
  %206 = load i32, ptr %205, align 4, !tbaa !9
  %207 = load ptr, ptr %17, align 8, !tbaa !5
  %208 = load ptr, ptr %17, align 8, !tbaa !5
  %209 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %207, ptr noundef @c__1, ptr noundef %208, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %210 = mul nsw i32 %206, %209
  %211 = add nsw i32 %204, %210
  store i32 %211, ptr %56, align 4, !tbaa !9
  %212 = load ptr, ptr %17, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = shl i32 %213, 1
  store i32 %214, ptr %55, align 4, !tbaa !9
  %215 = load i32, ptr %57, align 4, !tbaa !9
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %217, label %296

217:                                              ; preds = %202
  %218 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %218, ptr %35, align 4, !tbaa !9
  %219 = load ptr, ptr %17, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = load ptr, ptr %17, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = sub nsw i32 %222, 1
  %224 = load ptr, ptr %17, align 8, !tbaa !5
  %225 = load ptr, ptr %17, align 8, !tbaa !5
  %226 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %224, ptr noundef @c__1, ptr noundef %225, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %227 = mul nsw i32 %223, %226
  %228 = add nsw i32 %220, %227
  store i32 %228, ptr %36, align 4, !tbaa !9
  %229 = load i32, ptr %35, align 4, !tbaa !9
  %230 = load i32, ptr %36, align 4, !tbaa !9
  %231 = icmp sge i32 %229, %230
  br i1 %231, label %232, label %234

232:                                              ; preds = %217
  %233 = load i32, ptr %35, align 4, !tbaa !9
  br label %236

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

236:                                              ; preds = %234, %232
  %237 = phi i32 [ %233, %232 ], [ %235, %234 ]
  store i32 %237, ptr %56, align 4, !tbaa !9
  %238 = getelementptr inbounds [1 x i32], ptr %53, i64 0, i64 0
  %239 = load ptr, ptr %17, align 8, !tbaa !5
  %240 = load ptr, ptr %18, align 8, !tbaa !5
  %241 = load i32, ptr %30, align 4, !tbaa !9
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds %struct.complex, ptr %240, i64 %242
  %244 = load ptr, ptr %19, align 8, !tbaa !5
  %245 = load ptr, ptr %21, align 8, !tbaa !5
  %246 = load i32, ptr %32, align 4, !tbaa !9
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds %struct.complex, ptr %245, i64 %247
  %249 = load ptr, ptr %22, align 8, !tbaa !5
  %250 = load ptr, ptr %23, align 8, !tbaa !5
  %251 = load i32, ptr %34, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds %struct.complex, ptr %250, i64 %252
  %254 = load ptr, ptr %24, align 8, !tbaa !5
  %255 = load ptr, ptr %17, align 8, !tbaa !5
  %256 = load ptr, ptr %25, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.complex, ptr %256, i64 1
  %258 = load ptr, ptr %27, align 8, !tbaa !5
  %259 = getelementptr inbounds float, ptr %258, i64 1
  call void @ctrevc3_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef %238, ptr noundef %239, ptr noundef %243, ptr noundef %244, ptr noundef %248, ptr noundef %249, ptr noundef %253, ptr noundef %254, ptr noundef %255, ptr noundef %48, ptr noundef %257, ptr noundef @c_n1, ptr noundef %259, ptr noundef @c_n1, ptr noundef %45)
  %260 = load ptr, ptr %25, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.complex, ptr %260, i64 1
  %262 = getelementptr inbounds %struct.complex, ptr %261, i32 0, i32 0
  %263 = load float, ptr %262, align 4, !tbaa !11
  %264 = fptosi float %263 to i32
  store i32 %264, ptr %69, align 4, !tbaa !9
  %265 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %265, ptr %35, align 4, !tbaa !9
  %266 = load ptr, ptr %17, align 8, !tbaa !5
  %267 = load i32, ptr %266, align 4, !tbaa !9
  %268 = load i32, ptr %69, align 4, !tbaa !9
  %269 = add nsw i32 %267, %268
  store i32 %269, ptr %36, align 4, !tbaa !9
  %270 = load i32, ptr %35, align 4, !tbaa !9
  %271 = load i32, ptr %36, align 4, !tbaa !9
  %272 = icmp sge i32 %270, %271
  br i1 %272, label %273, label %275

273:                                              ; preds = %236
  %274 = load i32, ptr %35, align 4, !tbaa !9
  br label %277

275:                                              ; preds = %236
  %276 = load i32, ptr %36, align 4, !tbaa !9
  br label %277

277:                                              ; preds = %275, %273
  %278 = phi i32 [ %274, %273 ], [ %276, %275 ]
  store i32 %278, ptr %56, align 4, !tbaa !9
  %279 = load ptr, ptr %17, align 8, !tbaa !5
  %280 = load ptr, ptr %17, align 8, !tbaa !5
  %281 = load ptr, ptr %18, align 8, !tbaa !5
  %282 = load i32, ptr %30, align 4, !tbaa !9
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds %struct.complex, ptr %281, i64 %283
  %285 = load ptr, ptr %19, align 8, !tbaa !5
  %286 = load ptr, ptr %20, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.complex, ptr %286, i64 1
  %288 = load ptr, ptr %21, align 8, !tbaa !5
  %289 = load i32, ptr %32, align 4, !tbaa !9
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds %struct.complex, ptr %288, i64 %290
  %292 = load ptr, ptr %22, align 8, !tbaa !5
  %293 = load ptr, ptr %25, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.complex, ptr %293, i64 1
  %295 = load ptr, ptr %28, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.7, ptr noundef @.str, ptr noundef %279, ptr noundef @c__1, ptr noundef %280, ptr noundef %284, ptr noundef %285, ptr noundef %287, ptr noundef %291, ptr noundef %292, ptr noundef %294, ptr noundef @c_n1, ptr noundef %295)
  br label %397

296:                                              ; preds = %202
  %297 = load i32, ptr %62, align 4, !tbaa !9
  %298 = icmp ne i32 %297, 0
  br i1 %298, label %299, label %378

299:                                              ; preds = %296
  %300 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %300, ptr %35, align 4, !tbaa !9
  %301 = load ptr, ptr %17, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  %303 = load ptr, ptr %17, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  %305 = sub nsw i32 %304, 1
  %306 = load ptr, ptr %17, align 8, !tbaa !5
  %307 = load ptr, ptr %17, align 8, !tbaa !5
  %308 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %306, ptr noundef @c__1, ptr noundef %307, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %309 = mul nsw i32 %305, %308
  %310 = add nsw i32 %302, %309
  store i32 %310, ptr %36, align 4, !tbaa !9
  %311 = load i32, ptr %35, align 4, !tbaa !9
  %312 = load i32, ptr %36, align 4, !tbaa !9
  %313 = icmp sge i32 %311, %312
  br i1 %313, label %314, label %316

314:                                              ; preds = %299
  %315 = load i32, ptr %35, align 4, !tbaa !9
  br label %318

316:                                              ; preds = %299
  %317 = load i32, ptr %36, align 4, !tbaa !9
  br label %318

318:                                              ; preds = %316, %314
  %319 = phi i32 [ %315, %314 ], [ %317, %316 ]
  store i32 %319, ptr %56, align 4, !tbaa !9
  %320 = getelementptr inbounds [1 x i32], ptr %53, i64 0, i64 0
  %321 = load ptr, ptr %17, align 8, !tbaa !5
  %322 = load ptr, ptr %18, align 8, !tbaa !5
  %323 = load i32, ptr %30, align 4, !tbaa !9
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds %struct.complex, ptr %322, i64 %324
  %326 = load ptr, ptr %19, align 8, !tbaa !5
  %327 = load ptr, ptr %21, align 8, !tbaa !5
  %328 = load i32, ptr %32, align 4, !tbaa !9
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds %struct.complex, ptr %327, i64 %329
  %331 = load ptr, ptr %22, align 8, !tbaa !5
  %332 = load ptr, ptr %23, align 8, !tbaa !5
  %333 = load i32, ptr %34, align 4, !tbaa !9
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds %struct.complex, ptr %332, i64 %334
  %336 = load ptr, ptr %24, align 8, !tbaa !5
  %337 = load ptr, ptr %17, align 8, !tbaa !5
  %338 = load ptr, ptr %25, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.complex, ptr %338, i64 1
  %340 = load ptr, ptr %27, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 1
  call void @ctrevc3_(ptr noundef @.str.8, ptr noundef @.str.6, ptr noundef %320, ptr noundef %321, ptr noundef %325, ptr noundef %326, ptr noundef %330, ptr noundef %331, ptr noundef %335, ptr noundef %336, ptr noundef %337, ptr noundef %48, ptr noundef %339, ptr noundef @c_n1, ptr noundef %341, ptr noundef @c_n1, ptr noundef %45)
  %342 = load ptr, ptr %25, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.complex, ptr %342, i64 1
  %344 = getelementptr inbounds %struct.complex, ptr %343, i32 0, i32 0
  %345 = load float, ptr %344, align 4, !tbaa !11
  %346 = fptosi float %345 to i32
  store i32 %346, ptr %69, align 4, !tbaa !9
  %347 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %347, ptr %35, align 4, !tbaa !9
  %348 = load ptr, ptr %17, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = load i32, ptr %69, align 4, !tbaa !9
  %351 = add nsw i32 %349, %350
  store i32 %351, ptr %36, align 4, !tbaa !9
  %352 = load i32, ptr %35, align 4, !tbaa !9
  %353 = load i32, ptr %36, align 4, !tbaa !9
  %354 = icmp sge i32 %352, %353
  br i1 %354, label %355, label %357

355:                                              ; preds = %318
  %356 = load i32, ptr %35, align 4, !tbaa !9
  br label %359

357:                                              ; preds = %318
  %358 = load i32, ptr %36, align 4, !tbaa !9
  br label %359

359:                                              ; preds = %357, %355
  %360 = phi i32 [ %356, %355 ], [ %358, %357 ]
  store i32 %360, ptr %56, align 4, !tbaa !9
  %361 = load ptr, ptr %17, align 8, !tbaa !5
  %362 = load ptr, ptr %17, align 8, !tbaa !5
  %363 = load ptr, ptr %18, align 8, !tbaa !5
  %364 = load i32, ptr %30, align 4, !tbaa !9
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds %struct.complex, ptr %363, i64 %365
  %367 = load ptr, ptr %19, align 8, !tbaa !5
  %368 = load ptr, ptr %20, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.complex, ptr %368, i64 1
  %370 = load ptr, ptr %23, align 8, !tbaa !5
  %371 = load i32, ptr %34, align 4, !tbaa !9
  %372 = sext i32 %371 to i64
  %373 = getelementptr inbounds %struct.complex, ptr %370, i64 %372
  %374 = load ptr, ptr %24, align 8, !tbaa !5
  %375 = load ptr, ptr %25, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.complex, ptr %375, i64 1
  %377 = load ptr, ptr %28, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.7, ptr noundef @.str, ptr noundef %361, ptr noundef @c__1, ptr noundef %362, ptr noundef %366, ptr noundef %367, ptr noundef %369, ptr noundef %373, ptr noundef %374, ptr noundef %376, ptr noundef @c_n1, ptr noundef %377)
  br label %396

378:                                              ; preds = %296
  %379 = load ptr, ptr %17, align 8, !tbaa !5
  %380 = load ptr, ptr %17, align 8, !tbaa !5
  %381 = load ptr, ptr %18, align 8, !tbaa !5
  %382 = load i32, ptr %30, align 4, !tbaa !9
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds %struct.complex, ptr %381, i64 %383
  %385 = load ptr, ptr %19, align 8, !tbaa !5
  %386 = load ptr, ptr %20, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.complex, ptr %386, i64 1
  %388 = load ptr, ptr %23, align 8, !tbaa !5
  %389 = load i32, ptr %34, align 4, !tbaa !9
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds %struct.complex, ptr %388, i64 %390
  %392 = load ptr, ptr %24, align 8, !tbaa !5
  %393 = load ptr, ptr %25, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.complex, ptr %393, i64 1
  %395 = load ptr, ptr %28, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.9, ptr noundef @.str.1, ptr noundef %379, ptr noundef @c__1, ptr noundef %380, ptr noundef %384, ptr noundef %385, ptr noundef %387, ptr noundef %391, ptr noundef %392, ptr noundef %394, ptr noundef @c_n1, ptr noundef %395)
  br label %396

396:                                              ; preds = %378, %359
  br label %397

397:                                              ; preds = %396, %277
  %398 = load ptr, ptr %25, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.complex, ptr %398, i64 1
  %400 = getelementptr inbounds %struct.complex, ptr %399, i32 0, i32 0
  %401 = load float, ptr %400, align 4, !tbaa !11
  %402 = fptosi float %401 to i32
  store i32 %402, ptr %59, align 4, !tbaa !9
  %403 = load i32, ptr %56, align 4, !tbaa !9
  %404 = load i32, ptr %59, align 4, !tbaa !9
  %405 = icmp sge i32 %403, %404
  br i1 %405, label %406, label %408

406:                                              ; preds = %397
  %407 = load i32, ptr %56, align 4, !tbaa !9
  br label %410

408:                                              ; preds = %397
  %409 = load i32, ptr %59, align 4, !tbaa !9
  br label %410

410:                                              ; preds = %408, %406
  %411 = phi i32 [ %407, %406 ], [ %409, %408 ]
  store i32 %411, ptr %35, align 4, !tbaa !9
  %412 = load i32, ptr %35, align 4, !tbaa !9
  %413 = load i32, ptr %55, align 4, !tbaa !9
  %414 = icmp sge i32 %412, %413
  br i1 %414, label %415, label %417

415:                                              ; preds = %410
  %416 = load i32, ptr %35, align 4, !tbaa !9
  br label %419

417:                                              ; preds = %410
  %418 = load i32, ptr %55, align 4, !tbaa !9
  br label %419

419:                                              ; preds = %417, %415
  %420 = phi i32 [ %416, %415 ], [ %418, %417 ]
  store i32 %420, ptr %56, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %419, %201
  %422 = load i32, ptr %56, align 4, !tbaa !9
  %423 = sitofp i32 %422 to float
  %424 = load ptr, ptr %25, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.complex, ptr %424, i64 1
  %426 = getelementptr inbounds %struct.complex, ptr %425, i32 0, i32 0
  store float %423, ptr %426, align 4, !tbaa !11
  %427 = load ptr, ptr %25, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.complex, ptr %427, i64 1
  %429 = getelementptr inbounds %struct.complex, ptr %428, i32 0, i32 1
  store float 0.000000e+00, ptr %429, align 4, !tbaa !14
  %430 = load ptr, ptr %26, align 8, !tbaa !5
  %431 = load i32, ptr %430, align 4, !tbaa !9
  %432 = load i32, ptr %55, align 4, !tbaa !9
  %433 = icmp slt i32 %431, %432
  br i1 %433, label %434, label %439

434:                                              ; preds = %421
  %435 = load i32, ptr %61, align 4, !tbaa !9
  %436 = icmp ne i32 %435, 0
  br i1 %436, label %439, label %437

437:                                              ; preds = %434
  %438 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -12, ptr %438, align 4, !tbaa !9
  br label %439

439:                                              ; preds = %437, %434, %421
  br label %440

440:                                              ; preds = %439, %193
  %441 = load ptr, ptr %28, align 8, !tbaa !5
  %442 = load i32, ptr %441, align 4, !tbaa !9
  %443 = icmp ne i32 %442, 0
  br i1 %443, label %444, label %449

444:                                              ; preds = %440
  %445 = load ptr, ptr %28, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = sub nsw i32 0, %446
  store i32 %447, ptr %35, align 4, !tbaa !9
  %448 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %35, i32 noundef 6)
  store i32 1, ptr %70, align 4
  br label %1166

449:                                              ; preds = %440
  %450 = load i32, ptr %61, align 4, !tbaa !9
  %451 = icmp ne i32 %450, 0
  br i1 %451, label %452, label %453

452:                                              ; preds = %449
  store i32 1, ptr %70, align 4
  br label %1166

453:                                              ; preds = %449
  br label %454

454:                                              ; preds = %453
  %455 = load ptr, ptr %17, align 8, !tbaa !5
  %456 = load i32, ptr %455, align 4, !tbaa !9
  %457 = icmp eq i32 %456, 0
  br i1 %457, label %458, label %459

458:                                              ; preds = %454
  store i32 1, ptr %70, align 4
  br label %1166

459:                                              ; preds = %454
  %460 = call float @slamch_(ptr noundef @.str.11)
  store float %460, ptr %67, align 4, !tbaa !15
  %461 = call float @slamch_(ptr noundef @.str.7)
  store float %461, ptr %58, align 4, !tbaa !15
  %462 = load float, ptr %58, align 4, !tbaa !15
  %463 = fdiv float 1.000000e+00, %462
  store float %463, ptr %54, align 4, !tbaa !15
  call void @slabad_(ptr noundef %58, ptr noundef %54)
  %464 = load float, ptr %58, align 4, !tbaa !15
  %465 = fpext float %464 to double
  %466 = call double @sqrt(double noundef %465) #7
  %467 = load float, ptr %67, align 4, !tbaa !15
  %468 = fpext float %467 to double
  %469 = fdiv double %466, %468
  %470 = fptrunc double %469 to float
  store float %470, ptr %58, align 4, !tbaa !15
  %471 = load float, ptr %58, align 4, !tbaa !15
  %472 = fdiv float 1.000000e+00, %471
  store float %472, ptr %54, align 4, !tbaa !15
  %473 = load ptr, ptr %17, align 8, !tbaa !5
  %474 = load ptr, ptr %17, align 8, !tbaa !5
  %475 = load ptr, ptr %18, align 8, !tbaa !5
  %476 = load i32, ptr %30, align 4, !tbaa !9
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds %struct.complex, ptr %475, i64 %477
  %479 = load ptr, ptr %19, align 8, !tbaa !5
  %480 = getelementptr inbounds [1 x float], ptr %66, i64 0, i64 0
  %481 = call float @clange_(ptr noundef @.str.12, ptr noundef %473, ptr noundef %474, ptr noundef %478, ptr noundef %479, ptr noundef %480)
  store float %481, ptr %44, align 4, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !9
  %482 = load float, ptr %44, align 4, !tbaa !15
  %483 = fcmp ogt float %482, 0.000000e+00
  br i1 %483, label %484, label %490

484:                                              ; preds = %459
  %485 = load float, ptr %44, align 4, !tbaa !15
  %486 = load float, ptr %58, align 4, !tbaa !15
  %487 = fcmp olt float %485, %486
  br i1 %487, label %488, label %490

488:                                              ; preds = %484
  store i32 1, ptr %51, align 4, !tbaa !9
  %489 = load float, ptr %58, align 4, !tbaa !15
  store float %489, ptr %52, align 4, !tbaa !15
  br label %497

490:                                              ; preds = %484, %459
  %491 = load float, ptr %44, align 4, !tbaa !15
  %492 = load float, ptr %54, align 4, !tbaa !15
  %493 = fcmp ogt float %491, %492
  br i1 %493, label %494, label %496

494:                                              ; preds = %490
  store i32 1, ptr %51, align 4, !tbaa !9
  %495 = load float, ptr %54, align 4, !tbaa !15
  store float %495, ptr %52, align 4, !tbaa !15
  br label %496

496:                                              ; preds = %494, %490
  br label %497

497:                                              ; preds = %496, %488
  %498 = load i32, ptr %51, align 4, !tbaa !9
  %499 = icmp ne i32 %498, 0
  br i1 %499, label %500, label %508

500:                                              ; preds = %497
  %501 = load ptr, ptr %17, align 8, !tbaa !5
  %502 = load ptr, ptr %17, align 8, !tbaa !5
  %503 = load ptr, ptr %18, align 8, !tbaa !5
  %504 = load i32, ptr %30, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds %struct.complex, ptr %503, i64 %505
  %507 = load ptr, ptr %19, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %44, ptr noundef %52, ptr noundef %501, ptr noundef %502, ptr noundef %506, ptr noundef %507, ptr noundef %45)
  br label %508

508:                                              ; preds = %500, %497
  store i32 1, ptr %42, align 4, !tbaa !9
  %509 = load ptr, ptr %17, align 8, !tbaa !5
  %510 = load ptr, ptr %18, align 8, !tbaa !5
  %511 = load i32, ptr %30, align 4, !tbaa !9
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds %struct.complex, ptr %510, i64 %512
  %514 = load ptr, ptr %19, align 8, !tbaa !5
  %515 = load ptr, ptr %27, align 8, !tbaa !5
  %516 = load i32, ptr %42, align 4, !tbaa !9
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds float, ptr %515, i64 %517
  call void @cgebal_(ptr noundef @.str.6, ptr noundef %509, ptr noundef %513, ptr noundef %514, ptr noundef %65, ptr noundef %63, ptr noundef %518, ptr noundef %45)
  store i32 1, ptr %46, align 4, !tbaa !9
  %519 = load i32, ptr %46, align 4, !tbaa !9
  %520 = load ptr, ptr %17, align 8, !tbaa !5
  %521 = load i32, ptr %520, align 4, !tbaa !9
  %522 = add nsw i32 %519, %521
  store i32 %522, ptr %47, align 4, !tbaa !9
  %523 = load ptr, ptr %26, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !9
  %525 = load i32, ptr %47, align 4, !tbaa !9
  %526 = sub nsw i32 %524, %525
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr %35, align 4, !tbaa !9
  %528 = load ptr, ptr %17, align 8, !tbaa !5
  %529 = load ptr, ptr %18, align 8, !tbaa !5
  %530 = load i32, ptr %30, align 4, !tbaa !9
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds %struct.complex, ptr %529, i64 %531
  %533 = load ptr, ptr %19, align 8, !tbaa !5
  %534 = load ptr, ptr %25, align 8, !tbaa !5
  %535 = load i32, ptr %46, align 4, !tbaa !9
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds %struct.complex, ptr %534, i64 %536
  %538 = load ptr, ptr %25, align 8, !tbaa !5
  %539 = load i32, ptr %47, align 4, !tbaa !9
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds %struct.complex, ptr %538, i64 %540
  call void @cgehrd_(ptr noundef %528, ptr noundef %65, ptr noundef %63, ptr noundef %532, ptr noundef %533, ptr noundef %537, ptr noundef %541, ptr noundef %35, ptr noundef %45)
  %542 = load i32, ptr %57, align 4, !tbaa !9
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %618

544:                                              ; preds = %508
  %545 = getelementptr inbounds [1 x i8], ptr %43, i64 0, i64 0
  store i8 76, ptr %545, align 1, !tbaa !16
  %546 = load ptr, ptr %17, align 8, !tbaa !5
  %547 = load ptr, ptr %17, align 8, !tbaa !5
  %548 = load ptr, ptr %18, align 8, !tbaa !5
  %549 = load i32, ptr %30, align 4, !tbaa !9
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds %struct.complex, ptr %548, i64 %550
  %552 = load ptr, ptr %19, align 8, !tbaa !5
  %553 = load ptr, ptr %21, align 8, !tbaa !5
  %554 = load i32, ptr %32, align 4, !tbaa !9
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds %struct.complex, ptr %553, i64 %555
  %557 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.5, ptr noundef %546, ptr noundef %547, ptr noundef %551, ptr noundef %552, ptr noundef %556, ptr noundef %557)
  %558 = load ptr, ptr %26, align 8, !tbaa !5
  %559 = load i32, ptr %558, align 4, !tbaa !9
  %560 = load i32, ptr %47, align 4, !tbaa !9
  %561 = sub nsw i32 %559, %560
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr %35, align 4, !tbaa !9
  %563 = load ptr, ptr %17, align 8, !tbaa !5
  %564 = load ptr, ptr %21, align 8, !tbaa !5
  %565 = load i32, ptr %32, align 4, !tbaa !9
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds %struct.complex, ptr %564, i64 %566
  %568 = load ptr, ptr %22, align 8, !tbaa !5
  %569 = load ptr, ptr %25, align 8, !tbaa !5
  %570 = load i32, ptr %46, align 4, !tbaa !9
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds %struct.complex, ptr %569, i64 %571
  %573 = load ptr, ptr %25, align 8, !tbaa !5
  %574 = load i32, ptr %47, align 4, !tbaa !9
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds %struct.complex, ptr %573, i64 %575
  call void @cunghr_(ptr noundef %563, ptr noundef %65, ptr noundef %63, ptr noundef %567, ptr noundef %568, ptr noundef %572, ptr noundef %576, ptr noundef %35, ptr noundef %45)
  %577 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %577, ptr %47, align 4, !tbaa !9
  %578 = load ptr, ptr %26, align 8, !tbaa !5
  %579 = load i32, ptr %578, align 4, !tbaa !9
  %580 = load i32, ptr %47, align 4, !tbaa !9
  %581 = sub nsw i32 %579, %580
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr %35, align 4, !tbaa !9
  %583 = load ptr, ptr %17, align 8, !tbaa !5
  %584 = load ptr, ptr %18, align 8, !tbaa !5
  %585 = load i32, ptr %30, align 4, !tbaa !9
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds %struct.complex, ptr %584, i64 %586
  %588 = load ptr, ptr %19, align 8, !tbaa !5
  %589 = load ptr, ptr %20, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.complex, ptr %589, i64 1
  %591 = load ptr, ptr %21, align 8, !tbaa !5
  %592 = load i32, ptr %32, align 4, !tbaa !9
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds %struct.complex, ptr %591, i64 %593
  %595 = load ptr, ptr %22, align 8, !tbaa !5
  %596 = load ptr, ptr %25, align 8, !tbaa !5
  %597 = load i32, ptr %47, align 4, !tbaa !9
  %598 = sext i32 %597 to i64
  %599 = getelementptr inbounds %struct.complex, ptr %596, i64 %598
  %600 = load ptr, ptr %28, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.7, ptr noundef @.str, ptr noundef %583, ptr noundef %65, ptr noundef %63, ptr noundef %587, ptr noundef %588, ptr noundef %590, ptr noundef %594, ptr noundef %595, ptr noundef %599, ptr noundef %35, ptr noundef %600)
  %601 = load i32, ptr %62, align 4, !tbaa !9
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %603, label %617

603:                                              ; preds = %544
  %604 = getelementptr inbounds [1 x i8], ptr %43, i64 0, i64 0
  store i8 66, ptr %604, align 1, !tbaa !16
  %605 = load ptr, ptr %17, align 8, !tbaa !5
  %606 = load ptr, ptr %17, align 8, !tbaa !5
  %607 = load ptr, ptr %21, align 8, !tbaa !5
  %608 = load i32, ptr %32, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds %struct.complex, ptr %607, i64 %609
  %611 = load ptr, ptr %22, align 8, !tbaa !5
  %612 = load ptr, ptr %23, align 8, !tbaa !5
  %613 = load i32, ptr %34, align 4, !tbaa !9
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds %struct.complex, ptr %612, i64 %614
  %616 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.14, ptr noundef %605, ptr noundef %606, ptr noundef %610, ptr noundef %611, ptr noundef %615, ptr noundef %616)
  br label %617

617:                                              ; preds = %603, %544
  br label %704

618:                                              ; preds = %508
  %619 = load i32, ptr %62, align 4, !tbaa !9
  %620 = icmp ne i32 %619, 0
  br i1 %620, label %621, label %678

621:                                              ; preds = %618
  %622 = getelementptr inbounds [1 x i8], ptr %43, i64 0, i64 0
  store i8 82, ptr %622, align 1, !tbaa !16
  %623 = load ptr, ptr %17, align 8, !tbaa !5
  %624 = load ptr, ptr %17, align 8, !tbaa !5
  %625 = load ptr, ptr %18, align 8, !tbaa !5
  %626 = load i32, ptr %30, align 4, !tbaa !9
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds %struct.complex, ptr %625, i64 %627
  %629 = load ptr, ptr %19, align 8, !tbaa !5
  %630 = load ptr, ptr %23, align 8, !tbaa !5
  %631 = load i32, ptr %34, align 4, !tbaa !9
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds %struct.complex, ptr %630, i64 %632
  %634 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.5, ptr noundef %623, ptr noundef %624, ptr noundef %628, ptr noundef %629, ptr noundef %633, ptr noundef %634)
  %635 = load ptr, ptr %26, align 8, !tbaa !5
  %636 = load i32, ptr %635, align 4, !tbaa !9
  %637 = load i32, ptr %47, align 4, !tbaa !9
  %638 = sub nsw i32 %636, %637
  %639 = add nsw i32 %638, 1
  store i32 %639, ptr %35, align 4, !tbaa !9
  %640 = load ptr, ptr %17, align 8, !tbaa !5
  %641 = load ptr, ptr %23, align 8, !tbaa !5
  %642 = load i32, ptr %34, align 4, !tbaa !9
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds %struct.complex, ptr %641, i64 %643
  %645 = load ptr, ptr %24, align 8, !tbaa !5
  %646 = load ptr, ptr %25, align 8, !tbaa !5
  %647 = load i32, ptr %46, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds %struct.complex, ptr %646, i64 %648
  %650 = load ptr, ptr %25, align 8, !tbaa !5
  %651 = load i32, ptr %47, align 4, !tbaa !9
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds %struct.complex, ptr %650, i64 %652
  call void @cunghr_(ptr noundef %640, ptr noundef %65, ptr noundef %63, ptr noundef %644, ptr noundef %645, ptr noundef %649, ptr noundef %653, ptr noundef %35, ptr noundef %45)
  %654 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %654, ptr %47, align 4, !tbaa !9
  %655 = load ptr, ptr %26, align 8, !tbaa !5
  %656 = load i32, ptr %655, align 4, !tbaa !9
  %657 = load i32, ptr %47, align 4, !tbaa !9
  %658 = sub nsw i32 %656, %657
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr %35, align 4, !tbaa !9
  %660 = load ptr, ptr %17, align 8, !tbaa !5
  %661 = load ptr, ptr %18, align 8, !tbaa !5
  %662 = load i32, ptr %30, align 4, !tbaa !9
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds %struct.complex, ptr %661, i64 %663
  %665 = load ptr, ptr %19, align 8, !tbaa !5
  %666 = load ptr, ptr %20, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.complex, ptr %666, i64 1
  %668 = load ptr, ptr %23, align 8, !tbaa !5
  %669 = load i32, ptr %34, align 4, !tbaa !9
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds %struct.complex, ptr %668, i64 %670
  %672 = load ptr, ptr %24, align 8, !tbaa !5
  %673 = load ptr, ptr %25, align 8, !tbaa !5
  %674 = load i32, ptr %47, align 4, !tbaa !9
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds %struct.complex, ptr %673, i64 %675
  %677 = load ptr, ptr %28, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.7, ptr noundef @.str, ptr noundef %660, ptr noundef %65, ptr noundef %63, ptr noundef %664, ptr noundef %665, ptr noundef %667, ptr noundef %671, ptr noundef %672, ptr noundef %676, ptr noundef %35, ptr noundef %677)
  br label %703

678:                                              ; preds = %618
  %679 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %679, ptr %47, align 4, !tbaa !9
  %680 = load ptr, ptr %26, align 8, !tbaa !5
  %681 = load i32, ptr %680, align 4, !tbaa !9
  %682 = load i32, ptr %47, align 4, !tbaa !9
  %683 = sub nsw i32 %681, %682
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr %35, align 4, !tbaa !9
  %685 = load ptr, ptr %17, align 8, !tbaa !5
  %686 = load ptr, ptr %18, align 8, !tbaa !5
  %687 = load i32, ptr %30, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds %struct.complex, ptr %686, i64 %688
  %690 = load ptr, ptr %19, align 8, !tbaa !5
  %691 = load ptr, ptr %20, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.complex, ptr %691, i64 1
  %693 = load ptr, ptr %23, align 8, !tbaa !5
  %694 = load i32, ptr %34, align 4, !tbaa !9
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds %struct.complex, ptr %693, i64 %695
  %697 = load ptr, ptr %24, align 8, !tbaa !5
  %698 = load ptr, ptr %25, align 8, !tbaa !5
  %699 = load i32, ptr %47, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds %struct.complex, ptr %698, i64 %700
  %702 = load ptr, ptr %28, align 8, !tbaa !5
  call void @chseqr_(ptr noundef @.str.9, ptr noundef @.str.1, ptr noundef %685, ptr noundef %65, ptr noundef %63, ptr noundef %689, ptr noundef %690, ptr noundef %692, ptr noundef %696, ptr noundef %697, ptr noundef %701, ptr noundef %35, ptr noundef %702)
  br label %703

703:                                              ; preds = %678, %621
  br label %704

704:                                              ; preds = %703, %617
  %705 = load ptr, ptr %28, align 8, !tbaa !5
  %706 = load i32, ptr %705, align 4, !tbaa !9
  %707 = icmp ne i32 %706, 0
  br i1 %707, label %708, label %709

708:                                              ; preds = %704
  br label %1120

709:                                              ; preds = %704
  %710 = load i32, ptr %57, align 4, !tbaa !9
  %711 = icmp ne i32 %710, 0
  br i1 %711, label %715, label %712

712:                                              ; preds = %709
  %713 = load i32, ptr %62, align 4, !tbaa !9
  %714 = icmp ne i32 %713, 0
  br i1 %714, label %715, label %753

715:                                              ; preds = %712, %709
  %716 = load i32, ptr %42, align 4, !tbaa !9
  %717 = load ptr, ptr %17, align 8, !tbaa !5
  %718 = load i32, ptr %717, align 4, !tbaa !9
  %719 = add nsw i32 %716, %718
  store i32 %719, ptr %60, align 4, !tbaa !9
  %720 = load ptr, ptr %26, align 8, !tbaa !5
  %721 = load i32, ptr %720, align 4, !tbaa !9
  %722 = load i32, ptr %47, align 4, !tbaa !9
  %723 = sub nsw i32 %721, %722
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr %35, align 4, !tbaa !9
  %725 = getelementptr inbounds [1 x i8], ptr %43, i64 0, i64 0
  %726 = getelementptr inbounds [1 x i32], ptr %53, i64 0, i64 0
  %727 = load ptr, ptr %17, align 8, !tbaa !5
  %728 = load ptr, ptr %18, align 8, !tbaa !5
  %729 = load i32, ptr %30, align 4, !tbaa !9
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds %struct.complex, ptr %728, i64 %730
  %732 = load ptr, ptr %19, align 8, !tbaa !5
  %733 = load ptr, ptr %21, align 8, !tbaa !5
  %734 = load i32, ptr %32, align 4, !tbaa !9
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds %struct.complex, ptr %733, i64 %735
  %737 = load ptr, ptr %22, align 8, !tbaa !5
  %738 = load ptr, ptr %23, align 8, !tbaa !5
  %739 = load i32, ptr %34, align 4, !tbaa !9
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds %struct.complex, ptr %738, i64 %740
  %742 = load ptr, ptr %24, align 8, !tbaa !5
  %743 = load ptr, ptr %17, align 8, !tbaa !5
  %744 = load ptr, ptr %25, align 8, !tbaa !5
  %745 = load i32, ptr %47, align 4, !tbaa !9
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds %struct.complex, ptr %744, i64 %746
  %748 = load ptr, ptr %27, align 8, !tbaa !5
  %749 = load i32, ptr %60, align 4, !tbaa !9
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds float, ptr %748, i64 %750
  %752 = load ptr, ptr %17, align 8, !tbaa !5
  call void @ctrevc3_(ptr noundef %725, ptr noundef @.str.6, ptr noundef %726, ptr noundef %727, ptr noundef %731, ptr noundef %732, ptr noundef %736, ptr noundef %737, ptr noundef %741, ptr noundef %742, ptr noundef %743, ptr noundef %48, ptr noundef %747, ptr noundef %35, ptr noundef %751, ptr noundef %752, ptr noundef %45)
  br label %753

753:                                              ; preds = %715, %712
  %754 = load i32, ptr %57, align 4, !tbaa !9
  %755 = icmp ne i32 %754, 0
  br i1 %755, label %756, label %936

756:                                              ; preds = %753
  %757 = load ptr, ptr %17, align 8, !tbaa !5
  %758 = load ptr, ptr %27, align 8, !tbaa !5
  %759 = load i32, ptr %42, align 4, !tbaa !9
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds float, ptr %758, i64 %760
  %762 = load ptr, ptr %17, align 8, !tbaa !5
  %763 = load ptr, ptr %21, align 8, !tbaa !5
  %764 = load i32, ptr %32, align 4, !tbaa !9
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds %struct.complex, ptr %763, i64 %765
  %767 = load ptr, ptr %22, align 8, !tbaa !5
  call void @cgebak_(ptr noundef @.str.6, ptr noundef @.str.5, ptr noundef %757, ptr noundef %65, ptr noundef %63, ptr noundef %761, ptr noundef %762, ptr noundef %766, ptr noundef %767, ptr noundef %45)
  %768 = load ptr, ptr %17, align 8, !tbaa !5
  %769 = load i32, ptr %768, align 4, !tbaa !9
  store i32 %769, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %770

770:                                              ; preds = %932, %756
  %771 = load i32, ptr %49, align 4, !tbaa !9
  %772 = load i32, ptr %35, align 4, !tbaa !9
  %773 = icmp sle i32 %771, %772
  br i1 %773, label %774, label %935

774:                                              ; preds = %770
  %775 = load ptr, ptr %17, align 8, !tbaa !5
  %776 = load ptr, ptr %21, align 8, !tbaa !5
  %777 = load i32, ptr %49, align 4, !tbaa !9
  %778 = load i32, ptr %31, align 4, !tbaa !9
  %779 = mul nsw i32 %777, %778
  %780 = add nsw i32 %779, 1
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds %struct.complex, ptr %776, i64 %781
  %783 = call float @scnrm2_(ptr noundef %775, ptr noundef %782, ptr noundef @c__1)
  %784 = fdiv float 1.000000e+00, %783
  store float %784, ptr %64, align 4, !tbaa !15
  %785 = load ptr, ptr %17, align 8, !tbaa !5
  %786 = load ptr, ptr %21, align 8, !tbaa !5
  %787 = load i32, ptr %49, align 4, !tbaa !9
  %788 = load i32, ptr %31, align 4, !tbaa !9
  %789 = mul nsw i32 %787, %788
  %790 = add nsw i32 %789, 1
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds %struct.complex, ptr %786, i64 %791
  call void @csscal_(ptr noundef %785, ptr noundef %64, ptr noundef %792, ptr noundef @c__1)
  %793 = load ptr, ptr %17, align 8, !tbaa !5
  %794 = load i32, ptr %793, align 4, !tbaa !9
  store i32 %794, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %795

795:                                              ; preds = %837, %774
  %796 = load i32, ptr %50, align 4, !tbaa !9
  %797 = load i32, ptr %36, align 4, !tbaa !9
  %798 = icmp sle i32 %796, %797
  br i1 %798, label %799, label %840

799:                                              ; preds = %795
  %800 = load i32, ptr %50, align 4, !tbaa !9
  %801 = load i32, ptr %49, align 4, !tbaa !9
  %802 = load i32, ptr %31, align 4, !tbaa !9
  %803 = mul nsw i32 %801, %802
  %804 = add nsw i32 %800, %803
  store i32 %804, ptr %37, align 4, !tbaa !9
  %805 = load ptr, ptr %21, align 8, !tbaa !5
  %806 = load i32, ptr %37, align 4, !tbaa !9
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds %struct.complex, ptr %805, i64 %807
  %809 = getelementptr inbounds %struct.complex, ptr %808, i32 0, i32 0
  %810 = load float, ptr %809, align 4, !tbaa !11
  store float %810, ptr %38, align 4, !tbaa !15
  %811 = load ptr, ptr %21, align 8, !tbaa !5
  %812 = load i32, ptr %50, align 4, !tbaa !9
  %813 = load i32, ptr %49, align 4, !tbaa !9
  %814 = load i32, ptr %31, align 4, !tbaa !9
  %815 = mul nsw i32 %813, %814
  %816 = add nsw i32 %812, %815
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds %struct.complex, ptr %811, i64 %817
  %819 = call <2 x float> @Cf(ptr noundef %818)
  store <2 x float> %819, ptr %71, align 4
  %820 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %821 = load float, ptr %820, align 4
  %822 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %823 = load float, ptr %822, align 4
  store float %823, ptr %39, align 4, !tbaa !15
  %824 = load float, ptr %38, align 4, !tbaa !15
  %825 = load float, ptr %38, align 4, !tbaa !15
  %826 = load float, ptr %39, align 4, !tbaa !15
  %827 = load float, ptr %39, align 4, !tbaa !15
  %828 = fmul float %826, %827
  %829 = call float @llvm.fmuladd.f32(float %824, float %825, float %828)
  %830 = load ptr, ptr %27, align 8, !tbaa !5
  %831 = load i32, ptr %60, align 4, !tbaa !9
  %832 = load i32, ptr %50, align 4, !tbaa !9
  %833 = add nsw i32 %831, %832
  %834 = sub nsw i32 %833, 1
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds float, ptr %830, i64 %835
  store float %829, ptr %836, align 4, !tbaa !15
  br label %837

837:                                              ; preds = %799
  %838 = load i32, ptr %50, align 4, !tbaa !9
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr %50, align 4, !tbaa !9
  br label %795, !llvm.loop !17

840:                                              ; preds = %795
  %841 = load ptr, ptr %17, align 8, !tbaa !5
  %842 = load ptr, ptr %27, align 8, !tbaa !5
  %843 = load i32, ptr %60, align 4, !tbaa !9
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds float, ptr %842, i64 %844
  %846 = call i32 @isamax_(ptr noundef %841, ptr noundef %845, ptr noundef @c__1)
  store i32 %846, ptr %50, align 4, !tbaa !9
  %847 = load ptr, ptr %21, align 8, !tbaa !5
  %848 = load i32, ptr %50, align 4, !tbaa !9
  %849 = load i32, ptr %49, align 4, !tbaa !9
  %850 = load i32, ptr %31, align 4, !tbaa !9
  %851 = mul nsw i32 %849, %850
  %852 = add nsw i32 %848, %851
  %853 = sext i32 %852 to i64
  %854 = getelementptr inbounds %struct.complex, ptr %847, i64 %853
  %855 = call <2 x float> @Cf(ptr noundef %854)
  store <2 x float> %855, ptr %72, align 4
  %856 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %857 = load float, ptr %856, align 4
  %858 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %859 = load float, ptr %858, align 4
  %860 = fneg float %859
  %861 = call ptr @_pCf(ptr noundef %41)
  %862 = getelementptr inbounds { float, float }, ptr %861, i32 0, i32 0
  %863 = getelementptr inbounds { float, float }, ptr %861, i32 0, i32 1
  store float %857, ptr %862, align 4
  store float %860, ptr %863, align 4
  %864 = load ptr, ptr %27, align 8, !tbaa !5
  %865 = load i32, ptr %60, align 4, !tbaa !9
  %866 = load i32, ptr %50, align 4, !tbaa !9
  %867 = add nsw i32 %865, %866
  %868 = sub nsw i32 %867, 1
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds float, ptr %864, i64 %869
  %871 = load float, ptr %870, align 4, !tbaa !15
  %872 = fpext float %871 to double
  %873 = call double @sqrt(double noundef %872) #7
  %874 = fptrunc double %873 to float
  store float %874, ptr %38, align 4, !tbaa !15
  %875 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %876 = load float, ptr %875, align 4, !tbaa !11
  %877 = load float, ptr %38, align 4, !tbaa !15
  %878 = fdiv float %876, %877
  %879 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %878, ptr %879, align 4, !tbaa !11
  %880 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %881 = load float, ptr %880, align 4, !tbaa !14
  %882 = load float, ptr %38, align 4, !tbaa !15
  %883 = fdiv float %881, %882
  %884 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %883, ptr %884, align 4, !tbaa !14
  %885 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %886 = load float, ptr %885, align 4, !tbaa !11
  %887 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 0
  store float %886, ptr %887, align 4, !tbaa !11
  %888 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %889 = load float, ptr %888, align 4, !tbaa !14
  %890 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 1
  store float %889, ptr %890, align 4, !tbaa !14
  %891 = load ptr, ptr %17, align 8, !tbaa !5
  %892 = load ptr, ptr %21, align 8, !tbaa !5
  %893 = load i32, ptr %49, align 4, !tbaa !9
  %894 = load i32, ptr %31, align 4, !tbaa !9
  %895 = mul nsw i32 %893, %894
  %896 = add nsw i32 %895, 1
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds %struct.complex, ptr %892, i64 %897
  call void @cscal_(ptr noundef %891, ptr noundef %68, ptr noundef %898, ptr noundef @c__1)
  %899 = load i32, ptr %50, align 4, !tbaa !9
  %900 = load i32, ptr %49, align 4, !tbaa !9
  %901 = load i32, ptr %31, align 4, !tbaa !9
  %902 = mul nsw i32 %900, %901
  %903 = add nsw i32 %899, %902
  store i32 %903, ptr %36, align 4, !tbaa !9
  %904 = load i32, ptr %50, align 4, !tbaa !9
  %905 = load i32, ptr %49, align 4, !tbaa !9
  %906 = load i32, ptr %31, align 4, !tbaa !9
  %907 = mul nsw i32 %905, %906
  %908 = add nsw i32 %904, %907
  store i32 %908, ptr %37, align 4, !tbaa !9
  %909 = load ptr, ptr %21, align 8, !tbaa !5
  %910 = load i32, ptr %37, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds %struct.complex, ptr %909, i64 %911
  %913 = getelementptr inbounds %struct.complex, ptr %912, i32 0, i32 0
  %914 = load float, ptr %913, align 4, !tbaa !11
  store float %914, ptr %38, align 4, !tbaa !15
  %915 = load float, ptr %38, align 4, !tbaa !15
  %916 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %915, ptr %916, align 4, !tbaa !11
  %917 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float 0.000000e+00, ptr %917, align 4, !tbaa !14
  %918 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %919 = load float, ptr %918, align 4, !tbaa !11
  %920 = load ptr, ptr %21, align 8, !tbaa !5
  %921 = load i32, ptr %36, align 4, !tbaa !9
  %922 = sext i32 %921 to i64
  %923 = getelementptr inbounds %struct.complex, ptr %920, i64 %922
  %924 = getelementptr inbounds %struct.complex, ptr %923, i32 0, i32 0
  store float %919, ptr %924, align 4, !tbaa !11
  %925 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %926 = load float, ptr %925, align 4, !tbaa !14
  %927 = load ptr, ptr %21, align 8, !tbaa !5
  %928 = load i32, ptr %36, align 4, !tbaa !9
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds %struct.complex, ptr %927, i64 %929
  %931 = getelementptr inbounds %struct.complex, ptr %930, i32 0, i32 1
  store float %926, ptr %931, align 4, !tbaa !14
  br label %932

932:                                              ; preds = %840
  %933 = load i32, ptr %49, align 4, !tbaa !9
  %934 = add nsw i32 %933, 1
  store i32 %934, ptr %49, align 4, !tbaa !9
  br label %770, !llvm.loop !19

935:                                              ; preds = %770
  br label %936

936:                                              ; preds = %935, %753
  %937 = load i32, ptr %62, align 4, !tbaa !9
  %938 = icmp ne i32 %937, 0
  br i1 %938, label %939, label %1119

939:                                              ; preds = %936
  %940 = load ptr, ptr %17, align 8, !tbaa !5
  %941 = load ptr, ptr %27, align 8, !tbaa !5
  %942 = load i32, ptr %42, align 4, !tbaa !9
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds float, ptr %941, i64 %943
  %945 = load ptr, ptr %17, align 8, !tbaa !5
  %946 = load ptr, ptr %23, align 8, !tbaa !5
  %947 = load i32, ptr %34, align 4, !tbaa !9
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds %struct.complex, ptr %946, i64 %948
  %950 = load ptr, ptr %24, align 8, !tbaa !5
  call void @cgebak_(ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %940, ptr noundef %65, ptr noundef %63, ptr noundef %944, ptr noundef %945, ptr noundef %949, ptr noundef %950, ptr noundef %45)
  %951 = load ptr, ptr %17, align 8, !tbaa !5
  %952 = load i32, ptr %951, align 4, !tbaa !9
  store i32 %952, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %953

953:                                              ; preds = %1115, %939
  %954 = load i32, ptr %49, align 4, !tbaa !9
  %955 = load i32, ptr %35, align 4, !tbaa !9
  %956 = icmp sle i32 %954, %955
  br i1 %956, label %957, label %1118

957:                                              ; preds = %953
  %958 = load ptr, ptr %17, align 8, !tbaa !5
  %959 = load ptr, ptr %23, align 8, !tbaa !5
  %960 = load i32, ptr %49, align 4, !tbaa !9
  %961 = load i32, ptr %33, align 4, !tbaa !9
  %962 = mul nsw i32 %960, %961
  %963 = add nsw i32 %962, 1
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds %struct.complex, ptr %959, i64 %964
  %966 = call float @scnrm2_(ptr noundef %958, ptr noundef %965, ptr noundef @c__1)
  %967 = fdiv float 1.000000e+00, %966
  store float %967, ptr %64, align 4, !tbaa !15
  %968 = load ptr, ptr %17, align 8, !tbaa !5
  %969 = load ptr, ptr %23, align 8, !tbaa !5
  %970 = load i32, ptr %49, align 4, !tbaa !9
  %971 = load i32, ptr %33, align 4, !tbaa !9
  %972 = mul nsw i32 %970, %971
  %973 = add nsw i32 %972, 1
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds %struct.complex, ptr %969, i64 %974
  call void @csscal_(ptr noundef %968, ptr noundef %64, ptr noundef %975, ptr noundef @c__1)
  %976 = load ptr, ptr %17, align 8, !tbaa !5
  %977 = load i32, ptr %976, align 4, !tbaa !9
  store i32 %977, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %978

978:                                              ; preds = %1020, %957
  %979 = load i32, ptr %50, align 4, !tbaa !9
  %980 = load i32, ptr %36, align 4, !tbaa !9
  %981 = icmp sle i32 %979, %980
  br i1 %981, label %982, label %1023

982:                                              ; preds = %978
  %983 = load i32, ptr %50, align 4, !tbaa !9
  %984 = load i32, ptr %49, align 4, !tbaa !9
  %985 = load i32, ptr %33, align 4, !tbaa !9
  %986 = mul nsw i32 %984, %985
  %987 = add nsw i32 %983, %986
  store i32 %987, ptr %37, align 4, !tbaa !9
  %988 = load ptr, ptr %23, align 8, !tbaa !5
  %989 = load i32, ptr %37, align 4, !tbaa !9
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds %struct.complex, ptr %988, i64 %990
  %992 = getelementptr inbounds %struct.complex, ptr %991, i32 0, i32 0
  %993 = load float, ptr %992, align 4, !tbaa !11
  store float %993, ptr %38, align 4, !tbaa !15
  %994 = load ptr, ptr %23, align 8, !tbaa !5
  %995 = load i32, ptr %50, align 4, !tbaa !9
  %996 = load i32, ptr %49, align 4, !tbaa !9
  %997 = load i32, ptr %33, align 4, !tbaa !9
  %998 = mul nsw i32 %996, %997
  %999 = add nsw i32 %995, %998
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds %struct.complex, ptr %994, i64 %1000
  %1002 = call <2 x float> @Cf(ptr noundef %1001)
  store <2 x float> %1002, ptr %73, align 4
  %1003 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %1004 = load float, ptr %1003, align 4
  %1005 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %1006 = load float, ptr %1005, align 4
  store float %1006, ptr %39, align 4, !tbaa !15
  %1007 = load float, ptr %38, align 4, !tbaa !15
  %1008 = load float, ptr %38, align 4, !tbaa !15
  %1009 = load float, ptr %39, align 4, !tbaa !15
  %1010 = load float, ptr %39, align 4, !tbaa !15
  %1011 = fmul float %1009, %1010
  %1012 = call float @llvm.fmuladd.f32(float %1007, float %1008, float %1011)
  %1013 = load ptr, ptr %27, align 8, !tbaa !5
  %1014 = load i32, ptr %60, align 4, !tbaa !9
  %1015 = load i32, ptr %50, align 4, !tbaa !9
  %1016 = add nsw i32 %1014, %1015
  %1017 = sub nsw i32 %1016, 1
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds float, ptr %1013, i64 %1018
  store float %1012, ptr %1019, align 4, !tbaa !15
  br label %1020

1020:                                             ; preds = %982
  %1021 = load i32, ptr %50, align 4, !tbaa !9
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr %50, align 4, !tbaa !9
  br label %978, !llvm.loop !20

1023:                                             ; preds = %978
  %1024 = load ptr, ptr %17, align 8, !tbaa !5
  %1025 = load ptr, ptr %27, align 8, !tbaa !5
  %1026 = load i32, ptr %60, align 4, !tbaa !9
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds float, ptr %1025, i64 %1027
  %1029 = call i32 @isamax_(ptr noundef %1024, ptr noundef %1028, ptr noundef @c__1)
  store i32 %1029, ptr %50, align 4, !tbaa !9
  %1030 = load ptr, ptr %23, align 8, !tbaa !5
  %1031 = load i32, ptr %50, align 4, !tbaa !9
  %1032 = load i32, ptr %49, align 4, !tbaa !9
  %1033 = load i32, ptr %33, align 4, !tbaa !9
  %1034 = mul nsw i32 %1032, %1033
  %1035 = add nsw i32 %1031, %1034
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds %struct.complex, ptr %1030, i64 %1036
  %1038 = call <2 x float> @Cf(ptr noundef %1037)
  store <2 x float> %1038, ptr %74, align 4
  %1039 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %1040 = load float, ptr %1039, align 4
  %1041 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %1042 = load float, ptr %1041, align 4
  %1043 = fneg float %1042
  %1044 = call ptr @_pCf(ptr noundef %41)
  %1045 = getelementptr inbounds { float, float }, ptr %1044, i32 0, i32 0
  %1046 = getelementptr inbounds { float, float }, ptr %1044, i32 0, i32 1
  store float %1040, ptr %1045, align 4
  store float %1043, ptr %1046, align 4
  %1047 = load ptr, ptr %27, align 8, !tbaa !5
  %1048 = load i32, ptr %60, align 4, !tbaa !9
  %1049 = load i32, ptr %50, align 4, !tbaa !9
  %1050 = add nsw i32 %1048, %1049
  %1051 = sub nsw i32 %1050, 1
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds float, ptr %1047, i64 %1052
  %1054 = load float, ptr %1053, align 4, !tbaa !15
  %1055 = fpext float %1054 to double
  %1056 = call double @sqrt(double noundef %1055) #7
  %1057 = fptrunc double %1056 to float
  store float %1057, ptr %38, align 4, !tbaa !15
  %1058 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1059 = load float, ptr %1058, align 4, !tbaa !11
  %1060 = load float, ptr %38, align 4, !tbaa !15
  %1061 = fdiv float %1059, %1060
  %1062 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %1061, ptr %1062, align 4, !tbaa !11
  %1063 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1064 = load float, ptr %1063, align 4, !tbaa !14
  %1065 = load float, ptr %38, align 4, !tbaa !15
  %1066 = fdiv float %1064, %1065
  %1067 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %1066, ptr %1067, align 4, !tbaa !14
  %1068 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1069 = load float, ptr %1068, align 4, !tbaa !11
  %1070 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 0
  store float %1069, ptr %1070, align 4, !tbaa !11
  %1071 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1072 = load float, ptr %1071, align 4, !tbaa !14
  %1073 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 1
  store float %1072, ptr %1073, align 4, !tbaa !14
  %1074 = load ptr, ptr %17, align 8, !tbaa !5
  %1075 = load ptr, ptr %23, align 8, !tbaa !5
  %1076 = load i32, ptr %49, align 4, !tbaa !9
  %1077 = load i32, ptr %33, align 4, !tbaa !9
  %1078 = mul nsw i32 %1076, %1077
  %1079 = add nsw i32 %1078, 1
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds %struct.complex, ptr %1075, i64 %1080
  call void @cscal_(ptr noundef %1074, ptr noundef %68, ptr noundef %1081, ptr noundef @c__1)
  %1082 = load i32, ptr %50, align 4, !tbaa !9
  %1083 = load i32, ptr %49, align 4, !tbaa !9
  %1084 = load i32, ptr %33, align 4, !tbaa !9
  %1085 = mul nsw i32 %1083, %1084
  %1086 = add nsw i32 %1082, %1085
  store i32 %1086, ptr %36, align 4, !tbaa !9
  %1087 = load i32, ptr %50, align 4, !tbaa !9
  %1088 = load i32, ptr %49, align 4, !tbaa !9
  %1089 = load i32, ptr %33, align 4, !tbaa !9
  %1090 = mul nsw i32 %1088, %1089
  %1091 = add nsw i32 %1087, %1090
  store i32 %1091, ptr %37, align 4, !tbaa !9
  %1092 = load ptr, ptr %23, align 8, !tbaa !5
  %1093 = load i32, ptr %37, align 4, !tbaa !9
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds %struct.complex, ptr %1092, i64 %1094
  %1096 = getelementptr inbounds %struct.complex, ptr %1095, i32 0, i32 0
  %1097 = load float, ptr %1096, align 4, !tbaa !11
  store float %1097, ptr %38, align 4, !tbaa !15
  %1098 = load float, ptr %38, align 4, !tbaa !15
  %1099 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %1098, ptr %1099, align 4, !tbaa !11
  %1100 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float 0.000000e+00, ptr %1100, align 4, !tbaa !14
  %1101 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1102 = load float, ptr %1101, align 4, !tbaa !11
  %1103 = load ptr, ptr %23, align 8, !tbaa !5
  %1104 = load i32, ptr %36, align 4, !tbaa !9
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds %struct.complex, ptr %1103, i64 %1105
  %1107 = getelementptr inbounds %struct.complex, ptr %1106, i32 0, i32 0
  store float %1102, ptr %1107, align 4, !tbaa !11
  %1108 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1109 = load float, ptr %1108, align 4, !tbaa !14
  %1110 = load ptr, ptr %23, align 8, !tbaa !5
  %1111 = load i32, ptr %36, align 4, !tbaa !9
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds %struct.complex, ptr %1110, i64 %1112
  %1114 = getelementptr inbounds %struct.complex, ptr %1113, i32 0, i32 1
  store float %1109, ptr %1114, align 4, !tbaa !14
  br label %1115

1115:                                             ; preds = %1023
  %1116 = load i32, ptr %49, align 4, !tbaa !9
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr %49, align 4, !tbaa !9
  br label %953, !llvm.loop !21

1118:                                             ; preds = %953
  br label %1119

1119:                                             ; preds = %1118, %936
  br label %1120

1120:                                             ; preds = %1119, %708
  %1121 = load i32, ptr %51, align 4, !tbaa !9
  %1122 = icmp ne i32 %1121, 0
  br i1 %1122, label %1123, label %1157

1123:                                             ; preds = %1120
  %1124 = load ptr, ptr %17, align 8, !tbaa !5
  %1125 = load i32, ptr %1124, align 4, !tbaa !9
  %1126 = load ptr, ptr %28, align 8, !tbaa !5
  %1127 = load i32, ptr %1126, align 4, !tbaa !9
  %1128 = sub nsw i32 %1125, %1127
  store i32 %1128, ptr %35, align 4, !tbaa !9
  %1129 = load ptr, ptr %17, align 8, !tbaa !5
  %1130 = load i32, ptr %1129, align 4, !tbaa !9
  %1131 = load ptr, ptr %28, align 8, !tbaa !5
  %1132 = load i32, ptr %1131, align 4, !tbaa !9
  %1133 = sub nsw i32 %1130, %1132
  store i32 %1133, ptr %37, align 4, !tbaa !9
  %1134 = load i32, ptr %37, align 4, !tbaa !9
  %1135 = icmp sge i32 %1134, 1
  br i1 %1135, label %1136, label %1138

1136:                                             ; preds = %1123
  %1137 = load i32, ptr %37, align 4, !tbaa !9
  br label %1139

1138:                                             ; preds = %1123
  br label %1139

1139:                                             ; preds = %1138, %1136
  %1140 = phi i32 [ %1137, %1136 ], [ 1, %1138 ]
  store i32 %1140, ptr %36, align 4, !tbaa !9
  %1141 = load ptr, ptr %20, align 8, !tbaa !5
  %1142 = load ptr, ptr %28, align 8, !tbaa !5
  %1143 = load i32, ptr %1142, align 4, !tbaa !9
  %1144 = add nsw i32 %1143, 1
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds %struct.complex, ptr %1141, i64 %1145
  call void @clascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %52, ptr noundef %44, ptr noundef %35, ptr noundef @c__1, ptr noundef %1146, ptr noundef %36, ptr noundef %45)
  %1147 = load ptr, ptr %28, align 8, !tbaa !5
  %1148 = load i32, ptr %1147, align 4, !tbaa !9
  %1149 = icmp sgt i32 %1148, 0
  br i1 %1149, label %1150, label %1156

1150:                                             ; preds = %1139
  %1151 = load i32, ptr %65, align 4, !tbaa !9
  %1152 = sub nsw i32 %1151, 1
  store i32 %1152, ptr %35, align 4, !tbaa !9
  %1153 = load ptr, ptr %20, align 8, !tbaa !5
  %1154 = getelementptr inbounds %struct.complex, ptr %1153, i64 1
  %1155 = load ptr, ptr %17, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %52, ptr noundef %44, ptr noundef %35, ptr noundef @c__1, ptr noundef %1154, ptr noundef %1155, ptr noundef %45)
  br label %1156

1156:                                             ; preds = %1150, %1139
  br label %1157

1157:                                             ; preds = %1156, %1120
  %1158 = load i32, ptr %56, align 4, !tbaa !9
  %1159 = sitofp i32 %1158 to float
  %1160 = load ptr, ptr %25, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.complex, ptr %1160, i64 1
  %1162 = getelementptr inbounds %struct.complex, ptr %1161, i32 0, i32 0
  store float %1159, ptr %1162, align 4, !tbaa !11
  %1163 = load ptr, ptr %25, align 8, !tbaa !5
  %1164 = getelementptr inbounds %struct.complex, ptr %1163, i64 1
  %1165 = getelementptr inbounds %struct.complex, ptr %1164, i32 0, i32 1
  store float 0.000000e+00, ptr %1165, align 4, !tbaa !14
  store i32 1, ptr %70, align 4
  br label %1166

1166:                                             ; preds = %1157, %458, %452, %444
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #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 @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 @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
@c__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.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 [2 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

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

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

47:                                               ; preds = %45, %14
  %.not460 = icmp ne i32 %43, 0
  br i1 %.not460, label %50, label %48

48:                                               ; preds = %47
  %49 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #8
  %.not461 = icmp eq i32 %49, 0
  br i1 %.not461, label %.thread484.sink.split, label %50

50:                                               ; preds = %48, %47
  %51 = load i32, ptr %2, align 4, !tbaa !5
  %52 = icmp slt i32 %51, 0
  br i1 %52, label %.thread484.sink.split, label %53

53:                                               ; preds = %50
  %54 = load i32, ptr %4, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %51, i32 1)
  %55 = icmp slt i32 %54, %spec.select
  br i1 %55, label %.thread484.sink.split, label %56

56:                                               ; preds = %53
  %57 = load i32, ptr %7, align 4, !tbaa !5
  %58 = icmp slt i32 %57, 1
  %59 = icmp ult i32 %57, %51
  %or.cond500 = and i1 %44, %59
  %or.cond502 = or i1 %58, %or.cond500
  br i1 %or.cond502, label %.thread484.sink.split, label %60

60:                                               ; preds = %56
  %61 = load i32, ptr %9, align 4, !tbaa !5
  %62 = icmp slt i32 %61, 1
  %63 = icmp ult i32 %61, %51
  %or.cond501 = and i1 %.not460, %63
  %or.cond503 = or i1 %62, %or.cond501
  br i1 %or.cond503, label %.thread484.sink.split, label %64

64:                                               ; preds = %60
  %.pr = load i32, ptr %13, align 4, !tbaa !5
  %65 = icmp eq i32 %.pr, 0
  br i1 %65, label %66, label %.thread484

66:                                               ; preds = %64
  %67 = icmp eq i32 %51, 0
  br i1 %67, label %104, label %68

68:                                               ; preds = %66
  %69 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #8
  %70 = add i32 %69, 1
  %71 = mul i32 %70, %51
  %72 = load i32, ptr %2, align 4, !tbaa !5
  %73 = shl i32 %72, 1
  br i1 %44, label %74, label %85

74:                                               ; preds = %68
  store i32 %71, ptr %15, align 4, !tbaa !5
  %75 = add nsw i32 %72, -1
  %76 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #8
  %77 = mul nsw i32 %76, %75
  %78 = add nsw i32 %77, %72
  %79 = tail call i32 @llvm.smax.i32(i32 %71, i32 %78)
  call void @ctrevc3_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef %10, ptr noundef nonnull @c_n1, ptr noundef %12, ptr noundef nonnull @c_n1, ptr noundef nonnull %20) #8
  %80 = load float, ptr %10, align 4, !tbaa !9
  %81 = fptosi float %80 to i32
  store i32 %79, ptr %15, align 4, !tbaa !5
  %82 = load i32, ptr %2, align 4, !tbaa !5
  %83 = add nsw i32 %82, %81
  store i32 %83, ptr %16, align 4, !tbaa !5
  %84 = call i32 @llvm.smax.i32(i32 %79, i32 %83)
  call void @chseqr_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %10, ptr noundef nonnull @c_n1, ptr noundef nonnull %13) #8
  br label %98

85:                                               ; preds = %68
  %.not462 = icmp eq i32 %43, 0
  br i1 %.not462, label %97, label %86

86:                                               ; preds = %85
  store i32 %71, ptr %15, align 4, !tbaa !5
  %87 = add nsw i32 %72, -1
  %88 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #8
  %89 = mul nsw i32 %88, %87
  %90 = add nsw i32 %89, %72
  %91 = tail call i32 @llvm.smax.i32(i32 %71, i32 %90)
  call void @ctrevc3_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.6, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef %10, ptr noundef nonnull @c_n1, ptr noundef %12, ptr noundef nonnull @c_n1, ptr noundef nonnull %20) #8
  %92 = load float, ptr %10, align 4, !tbaa !9
  %93 = fptosi float %92 to i32
  store i32 %91, ptr %15, align 4, !tbaa !5
  %94 = load i32, ptr %2, align 4, !tbaa !5
  %95 = add nsw i32 %94, %93
  store i32 %95, ptr %16, align 4, !tbaa !5
  %96 = call i32 @llvm.smax.i32(i32 %91, i32 %95)
  call void @chseqr_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull @c_n1, ptr noundef nonnull %13) #8
  br label %98

97:                                               ; preds = %85
  tail call void @chseqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c_n1, ptr noundef nonnull %13) #8
  br label %98

98:                                               ; preds = %86, %97, %74
  %.0444 = phi i32 [ %84, %74 ], [ %96, %86 ], [ %71, %97 ]
  %99 = load float, ptr %10, align 4, !tbaa !9
  %100 = fptosi float %99 to i32
  %101 = call i32 @llvm.smax.i32(i32 %.0444, i32 %100)
  store i32 %101, ptr %15, align 4, !tbaa !5
  %102 = call i32 @llvm.smax.i32(i32 %101, i32 %73)
  %103 = sitofp i32 %102 to float
  br label %104

104:                                              ; preds = %66, %98
  %.0445 = phi i32 [ %73, %98 ], [ 1, %66 ]
  %.1 = phi float [ %103, %98 ], [ 1.000000e+00, %66 ]
  store float %.1, ptr %10, align 4, !tbaa !9
  %105 = getelementptr inbounds i8, ptr %10, i64 4
  store float 0.000000e+00, ptr %105, align 4, !tbaa !12
  %106 = load i32, ptr %11, align 4, !tbaa !5
  %107 = icmp sge i32 %106, %.0445
  %or.cond = select i1 %107, i1 true, i1 %41
  br i1 %or.cond, label %.thread, label %.thread484.sink.split

.thread:                                          ; preds = %104
  %.pr481.pr = load i32, ptr %13, align 4, !tbaa !5
  %.not469 = icmp eq i32 %.pr481.pr, 0
  br i1 %.not469, label %111, label %.thread484

.thread484.sink.split:                            ; preds = %104, %60, %56, %53, %50, %48, %45
  %.sink = phi i32 [ -1, %45 ], [ -2, %48 ], [ -3, %50 ], [ -5, %53 ], [ -8, %56 ], [ -10, %60 ], [ -12, %104 ]
  store i32 %.sink, ptr %13, align 4, !tbaa !5
  br label %.thread484

.thread484:                                       ; preds = %.thread484.sink.split, %64, %.thread
  %108 = phi i32 [ %.pr481.pr, %.thread ], [ %.pr, %64 ], [ %.sink, %.thread484.sink.split ]
  %109 = sub nsw i32 0, %108
  store i32 %109, ptr %15, align 4, !tbaa !5
  %110 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %15, i32 noundef 6) #8
  br label %242

111:                                              ; preds = %.thread
  br i1 %41, label %242, label %112

112:                                              ; preds = %111
  %113 = load i32, ptr %2, align 4, !tbaa !5
  %114 = icmp eq i32 %113, 0
  br i1 %114, label %242, label %115

115:                                              ; preds = %112
  %116 = call float @slamch_(ptr noundef nonnull @.str.11) #8
  %117 = call float @slamch_(ptr noundef nonnull @.str.7) #8
  store float %117, ptr %25, align 4, !tbaa !13
  %118 = fdiv float 1.000000e+00, %117
  store float %118, ptr %24, align 4, !tbaa !13
  call void @slabad_(ptr noundef nonnull %25, ptr noundef nonnull %24) #8
  %119 = load float, ptr %25, align 4, !tbaa !13
  %120 = fpext float %119 to double
  %121 = call double @sqrt(double noundef %120) #8
  %122 = fpext float %116 to double
  %123 = fdiv double %121, %122
  %124 = fptrunc double %123 to float
  store float %124, ptr %25, align 4, !tbaa !13
  %125 = fdiv float 1.000000e+00, %124
  store float %125, ptr %24, align 4, !tbaa !13
  %126 = call float @clange_(ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %29) #8
  store float %126, ptr %19, align 4, !tbaa !13
  %127 = fcmp ogt float %126, 0.000000e+00
  %128 = load float, ptr %25, align 4
  %129 = fcmp olt float %126, %128
  %or.cond505 = select i1 %127, i1 %129, i1 false
  br i1 %or.cond505, label %133, label %130

130:                                              ; preds = %115
  %131 = load float, ptr %24, align 4, !tbaa !13
  %132 = fcmp ogt float %126, %131
  br i1 %132, label %133, label %134

133:                                              ; preds = %115, %130
  %storemerge = phi float [ %131, %130 ], [ %128, %115 ]
  store float %storemerge, ptr %22, 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 %19, ptr noundef nonnull %22, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %20) #8
  br label %134

134:                                              ; preds = %130, %133
  %.not470491 = phi i1 [ false, %133 ], [ true, %130 ]
  call void @cgebal_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %12, ptr noundef nonnull %20) #8
  %135 = load i32, ptr %2, align 4, !tbaa !5
  %136 = load i32, ptr %11, align 4, !tbaa !5
  %137 = sub i32 %136, %135
  store i32 %137, ptr %15, align 4, !tbaa !5
  %138 = sext i32 %135 to i64
  %139 = getelementptr %struct.complex, ptr %38, i64 %138
  %140 = getelementptr i8, ptr %139, i64 8
  call void @cgehrd_(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef nonnull %140, ptr noundef nonnull %15, ptr noundef nonnull %20) #8
  br i1 %44, label %141, label %146

141:                                              ; preds = %134
  store i8 76, ptr %18, align 1, !tbaa !14
  call void @clacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7) #8
  %142 = load i32, ptr %11, align 4, !tbaa !5
  %143 = sub i32 %142, %135
  store i32 %143, ptr %15, align 4, !tbaa !5
  call void @cunghr_(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %10, ptr noundef nonnull %140, ptr noundef nonnull %15, ptr noundef nonnull %20) #8
  %144 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %144, ptr %15, align 4, !tbaa !5
  call void @chseqr_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %10, ptr noundef nonnull %15, ptr noundef nonnull %13) #8
  %.not472 = icmp eq i32 %43, 0
  br i1 %.not472, label %153, label %145

145:                                              ; preds = %141
  store i8 66, ptr %18, align 1, !tbaa !14
  call void @clacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9) #8
  br label %153

146:                                              ; preds = %134
  %.not471 = icmp eq i32 %43, 0
  br i1 %.not471, label %151, label %147

147:                                              ; preds = %146
  store i8 82, ptr %18, align 1, !tbaa !14
  call void @clacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9) #8
  %148 = load i32, ptr %11, align 4, !tbaa !5
  %149 = sub i32 %148, %135
  store i32 %149, ptr %15, align 4, !tbaa !5
  call void @cunghr_(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %140, ptr noundef nonnull %15, ptr noundef nonnull %20) #8
  %150 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %150, ptr %15, align 4, !tbaa !5
  call void @chseqr_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %15, ptr noundef nonnull %13) #8
  br label %153

151:                                              ; preds = %146
  %152 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %152, ptr %15, align 4, !tbaa !5
  call void @chseqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %15, ptr noundef nonnull %13) #8
  br label %153

153:                                              ; preds = %147, %151, %141, %145
  %154 = load i32, ptr %13, align 4, !tbaa !5
  %.not473 = icmp ne i32 %154, 0
  %155 = or i32 %42, %43
  %or.cond3.not = icmp eq i32 %155, 0
  %or.cond547 = select i1 %.not473, i1 true, i1 %or.cond3.not
  br i1 %or.cond547, label %.thread495, label %156

156:                                              ; preds = %153
  %157 = load i32, ptr %2, align 4, !tbaa !5
  %158 = add nsw i32 %157, 1
  %159 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %159, ptr %15, align 4, !tbaa !5
  %160 = sext i32 %158 to i64
  %161 = getelementptr inbounds float, ptr %39, i64 %160
  call void @ctrevc3_(ptr noundef nonnull %18, ptr noundef nonnull @.str.6, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %10, ptr noundef nonnull %15, ptr noundef nonnull %161, ptr noundef nonnull %2, ptr noundef nonnull %20) #8
  br i1 %44, label %162, label %.loopexit

162:                                              ; preds = %156
  call void @cgebak_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.5, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %12, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %20) #8
  %163 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %163, ptr %15, align 4, !tbaa !5
  %invariant.gep508 = getelementptr i8, ptr %34, i64 8
  %invariant.gep510 = getelementptr i8, ptr %12, i64 -8
  %.not474512 = icmp slt i32 %163, 1
  br i1 %.not474512, label %.loopexit, label %.lr.ph515

.lr.ph515:                                        ; preds = %162
  %164 = sext i32 %32 to i64
  %invariant.gep542 = getelementptr float, ptr %invariant.gep510, i64 %160
  br label %165

165:                                              ; preds = %.lr.ph515, %._crit_edge
  %indvars.iv532 = phi i64 [ 1, %.lr.ph515 ], [ %indvars.iv.next533, %._crit_edge ]
  %166 = mul nsw i64 %indvars.iv532, %164
  %gep509 = getelementptr %struct.complex, ptr %invariant.gep508, i64 %166
  %167 = call float @scnrm2_(ptr noundef nonnull %2, ptr noundef %gep509, ptr noundef nonnull @c__1) #8
  %168 = fdiv float 1.000000e+00, %167
  store float %168, ptr %27, align 4, !tbaa !13
  call void @csscal_(ptr noundef nonnull %2, ptr noundef nonnull %27, ptr noundef %gep509, ptr noundef nonnull @c__1) #8
  %169 = load i32, ptr %2, align 4, !tbaa !5
  %.not478506 = icmp slt i32 %169, 1
  br i1 %.not478506, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %165
  %invariant.gep = getelementptr %struct.complex, ptr %34, i64 %166
  %170 = zext nneg i32 %169 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 ]
  %gep541 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv
  %171 = load float, ptr %gep541, align 4, !tbaa !9
  %172 = call <2 x float> @Cf(ptr noundef nonnull %gep541)
  %173 = fmul <2 x float> %172, %172
  %174 = extractelement <2 x float> %173, i64 1
  %175 = call float @llvm.fmuladd.f32(float %171, float %171, float %174)
  %gep543 = getelementptr float, ptr %invariant.gep542, i64 %indvars.iv
  store float %175, ptr %gep543, align 4, !tbaa !13
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not478.not = icmp ult i64 %indvars.iv, %170
  br i1 %.not478.not, label %.lr.ph, label %._crit_edge, !llvm.loop !15

._crit_edge:                                      ; preds = %.lr.ph, %165
  %176 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef nonnull %161, ptr noundef nonnull @c__1) #8
  %177 = trunc nsw i64 %166 to i32
  %178 = add nsw i32 %176, %177
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds %struct.complex, ptr %34, i64 %179
  %181 = call <2 x float> @Cf(ptr noundef %180)
  %.sroa.05.0.vec.extract = extractelement <2 x float> %181, i64 0
  %.sroa.05.4.vec.extract = extractelement <2 x float> %181, i64 1
  %182 = fneg float %.sroa.05.4.vec.extract
  %183 = call ptr @_pCf(ptr noundef nonnull %17)
  %184 = getelementptr inbounds i8, ptr %183, i64 4
  store float %.sroa.05.0.vec.extract, ptr %183, align 4
  store float %182, ptr %184, align 4
  %185 = add nsw i32 %176, %158
  %186 = sext i32 %185 to i64
  %gep511 = getelementptr float, ptr %invariant.gep510, i64 %186
  %187 = load float, ptr %gep511, align 4, !tbaa !13
  %sqrtf479 = call float @sqrtf(float noundef %187) #3
  %188 = load <2 x float>, ptr %17, align 8, !tbaa !13
  %189 = insertelement <2 x float> poison, float %sqrtf479, i64 0
  %190 = shufflevector <2 x float> %189, <2 x float> poison, <2 x i32> zeroinitializer
  %191 = fdiv <2 x float> %188, %190
  store <2 x float> %191, ptr %30, align 8, !tbaa !13
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %30, ptr noundef %gep509, ptr noundef nonnull @c__1) #8
  store i32 %178, ptr %16, align 4, !tbaa !5
  %192 = getelementptr inbounds i8, ptr %180, i64 4
  store float 0.000000e+00, ptr %192, align 4, !tbaa !12
  %indvars.iv.next533 = add nuw nsw i64 %indvars.iv532, 1
  %193 = load i32, ptr %15, align 4, !tbaa !5
  %194 = sext i32 %193 to i64
  %.not474.not = icmp slt i64 %indvars.iv532, %194
  br i1 %.not474.not, label %165, label %.loopexit, !llvm.loop !17

.loopexit:                                        ; preds = %._crit_edge, %162, %156
  br i1 %.not460, label %195, label %.thread495

195:                                              ; preds = %.loopexit
  call void @cgebak_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef %12, ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %20) #8
  %196 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %196, ptr %15, align 4, !tbaa !5
  %invariant.gep523 = getelementptr i8, ptr %37, i64 8
  %invariant.gep525 = getelementptr i8, ptr %12, i64 -8
  %.not476527 = icmp slt i32 %196, 1
  br i1 %.not476527, label %.thread495, label %.lr.ph530

.lr.ph530:                                        ; preds = %195
  %197 = sext i32 %35 to i64
  %invariant.gep545 = getelementptr float, ptr %invariant.gep525, i64 %160
  br label %198

198:                                              ; preds = %.lr.ph530, %._crit_edge522
  %indvars.iv538 = phi i64 [ 1, %.lr.ph530 ], [ %indvars.iv.next539, %._crit_edge522 ]
  %199 = mul nsw i64 %indvars.iv538, %197
  %gep524 = getelementptr %struct.complex, ptr %invariant.gep523, i64 %199
  %200 = call float @scnrm2_(ptr noundef nonnull %2, ptr noundef %gep524, ptr noundef nonnull @c__1) #8
  %201 = fdiv float 1.000000e+00, %200
  store float %201, ptr %27, align 4, !tbaa !13
  call void @csscal_(ptr noundef nonnull %2, ptr noundef nonnull %27, ptr noundef %gep524, ptr noundef nonnull @c__1) #8
  %202 = load i32, ptr %2, align 4, !tbaa !5
  %.not477518 = icmp slt i32 %202, 1
  br i1 %.not477518, label %._crit_edge522, label %.lr.ph521.preheader

.lr.ph521.preheader:                              ; preds = %198
  %invariant.gep544 = getelementptr %struct.complex, ptr %37, i64 %199
  %203 = zext nneg i32 %202 to i64
  br label %.lr.ph521

.lr.ph521:                                        ; preds = %.lr.ph521.preheader, %.lr.ph521
  %indvars.iv535 = phi i64 [ 1, %.lr.ph521.preheader ], [ %indvars.iv.next536, %.lr.ph521 ]
  %gep = getelementptr %struct.complex, ptr %invariant.gep544, i64 %indvars.iv535
  %204 = load float, ptr %gep, align 4, !tbaa !9
  %205 = call <2 x float> @Cf(ptr noundef nonnull %gep)
  %206 = fmul <2 x float> %205, %205
  %207 = extractelement <2 x float> %206, i64 1
  %208 = call float @llvm.fmuladd.f32(float %204, float %204, float %207)
  %gep546 = getelementptr float, ptr %invariant.gep545, i64 %indvars.iv535
  store float %208, ptr %gep546, align 4, !tbaa !13
  %indvars.iv.next536 = add nuw nsw i64 %indvars.iv535, 1
  %.not477.not = icmp ult i64 %indvars.iv535, %203
  br i1 %.not477.not, label %.lr.ph521, label %._crit_edge522, !llvm.loop !18

._crit_edge522:                                   ; preds = %.lr.ph521, %198
  %209 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef nonnull %161, ptr noundef nonnull @c__1) #8
  %210 = trunc nsw i64 %199 to i32
  %211 = add nsw i32 %209, %210
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds %struct.complex, ptr %37, i64 %212
  %214 = call <2 x float> @Cf(ptr noundef %213)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %214, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %214, i64 1
  %215 = fneg float %.sroa.0.4.vec.extract
  %216 = call ptr @_pCf(ptr noundef nonnull %17)
  %217 = getelementptr inbounds i8, ptr %216, i64 4
  store float %.sroa.0.0.vec.extract, ptr %216, align 4
  store float %215, ptr %217, align 4
  %218 = add nsw i32 %209, %158
  %219 = sext i32 %218 to i64
  %gep526 = getelementptr float, ptr %invariant.gep525, i64 %219
  %220 = load float, ptr %gep526, align 4, !tbaa !13
  %sqrtf = call float @sqrtf(float noundef %220) #3
  %221 = load <2 x float>, ptr %17, align 8, !tbaa !13
  %222 = insertelement <2 x float> poison, float %sqrtf, i64 0
  %223 = shufflevector <2 x float> %222, <2 x float> poison, <2 x i32> zeroinitializer
  %224 = fdiv <2 x float> %221, %223
  store <2 x float> %224, ptr %30, align 8, !tbaa !13
  call void @cscal_(ptr noundef nonnull %2, ptr noundef nonnull %30, ptr noundef %gep524, ptr noundef nonnull @c__1) #8
  store i32 %211, ptr %16, align 4, !tbaa !5
  %225 = getelementptr inbounds i8, ptr %213, i64 4
  store float 0.000000e+00, ptr %225, align 4, !tbaa !12
  %indvars.iv.next539 = add nuw nsw i64 %indvars.iv538, 1
  %226 = load i32, ptr %15, align 4, !tbaa !5
  %227 = sext i32 %226 to i64
  %.not476.not = icmp slt i64 %indvars.iv538, %227
  br i1 %.not476.not, label %198, label %.thread495, !llvm.loop !19

.thread495:                                       ; preds = %._crit_edge522, %195, %.loopexit, %153
  br i1 %.not470491, label %241, label %228

228:                                              ; preds = %.thread495
  %229 = load i32, ptr %2, align 4, !tbaa !5
  %230 = load i32, ptr %13, align 4, !tbaa !5
  %231 = sub nsw i32 %229, %230
  store i32 %231, ptr %15, align 4, !tbaa !5
  %232 = call i32 @llvm.smax.i32(i32 %231, i32 1)
  store i32 %232, ptr %16, align 4, !tbaa !5
  %233 = sext i32 %230 to i64
  %234 = getelementptr %struct.complex, ptr %31, i64 %233
  %235 = getelementptr i8, ptr %234, i64 8
  call void @clascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull %19, ptr noundef nonnull %15, ptr noundef nonnull @c__1, ptr noundef %235, ptr noundef nonnull %16, ptr noundef nonnull %20) #8
  %236 = load i32, ptr %13, align 4, !tbaa !5
  %237 = icmp sgt i32 %236, 0
  br i1 %237, label %238, label %241

238:                                              ; preds = %228
  %239 = load i32, ptr %28, align 4, !tbaa !5
  %240 = add nsw i32 %239, -1
  store i32 %240, ptr %15, 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 %22, ptr noundef nonnull %19, ptr noundef nonnull %15, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %2, ptr noundef nonnull %20) #8
  br label %241

241:                                              ; preds = %228, %238, %.thread495
  store float %.1, ptr %10, align 4, !tbaa !9
  store float 0.000000e+00, ptr %105, align 4, !tbaa !12
  br label %242

242:                                              ; preds = %112, %111, %241, %.thread484
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 4, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #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 @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 @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