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

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

%struct.complex = type { float, float }

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

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

138:                                              ; preds = %21
  %139 = load ptr, ptr %23, align 8, !tbaa !5
  %140 = call i64 @lsame_(ptr noundef %139, ptr noundef @.str.4)
  %141 = icmp ne i64 %140, 0
  br i1 %141, label %144, label %142

142:                                              ; preds = %138
  %143 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -1, ptr %143, align 8, !tbaa !9
  br label %256

144:                                              ; preds = %138, %21
  %145 = load i64, ptr %74, align 8, !tbaa !9
  %146 = icmp ne i64 %145, 0
  br i1 %146, label %155, label %147

147:                                              ; preds = %144
  %148 = load i64, ptr %78, align 8, !tbaa !9
  %149 = icmp ne i64 %148, 0
  br i1 %149, label %155, label %150

150:                                              ; preds = %147
  %151 = load i64, ptr %75, align 8, !tbaa !9
  %152 = icmp ne i64 %151, 0
  br i1 %152, label %155, label %153

153:                                              ; preds = %150
  %154 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -2, ptr %154, align 8, !tbaa !9
  br label %255

155:                                              ; preds = %150, %147, %144
  %156 = load i64, ptr %72, align 8, !tbaa !9
  %157 = icmp ne i64 %156, 0
  br i1 %157, label %164, label %158

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

162:                                              ; preds = %158
  %163 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -3, ptr %163, align 8, !tbaa !9
  br label %254

164:                                              ; preds = %158, %155
  %165 = load ptr, ptr %26, align 8, !tbaa !5
  %166 = load i64, ptr %165, align 8, !tbaa !9
  %167 = icmp slt i64 %166, 0
  br i1 %167, label %168, label %170

168:                                              ; preds = %164
  %169 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -4, ptr %169, align 8, !tbaa !9
  br label %253

170:                                              ; preds = %164
  %171 = load ptr, ptr %28, align 8, !tbaa !5
  %172 = load i64, ptr %171, align 8, !tbaa !9
  %173 = load ptr, ptr %26, align 8, !tbaa !5
  %174 = load i64, ptr %173, align 8, !tbaa !9
  %175 = icmp sge i64 1, %174
  br i1 %175, label %176, label %177

176:                                              ; preds = %170
  br label %180

177:                                              ; preds = %170
  %178 = load ptr, ptr %26, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  br label %180

180:                                              ; preds = %177, %176
  %181 = phi i64 [ 1, %176 ], [ %179, %177 ]
  %182 = icmp slt i64 %172, %181
  br i1 %182, label %183, label %185

183:                                              ; preds = %180
  %184 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -6, ptr %184, align 8, !tbaa !9
  br label %252

185:                                              ; preds = %180
  %186 = load i64, ptr %78, align 8, !tbaa !9
  %187 = icmp ne i64 %186, 0
  br i1 %187, label %188, label %201

188:                                              ; preds = %185
  %189 = load ptr, ptr %26, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = icmp sgt i64 %190, 0
  br i1 %191, label %192, label %200

192:                                              ; preds = %188
  %193 = load ptr, ptr %30, align 8, !tbaa !5
  %194 = load float, ptr %193, align 4, !tbaa !11
  %195 = load ptr, ptr %29, align 8, !tbaa !5
  %196 = load float, ptr %195, align 4, !tbaa !11
  %197 = fcmp ole float %194, %196
  br i1 %197, label %198, label %200

198:                                              ; preds = %192
  %199 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -8, ptr %199, align 8, !tbaa !9
  br label %200

200:                                              ; preds = %198, %192, %188
  br label %251

201:                                              ; preds = %185
  %202 = load i64, ptr %75, align 8, !tbaa !9
  %203 = icmp ne i64 %202, 0
  br i1 %203, label %204, label %250

204:                                              ; preds = %201
  %205 = load ptr, ptr %31, align 8, !tbaa !5
  %206 = load i64, ptr %205, align 8, !tbaa !9
  %207 = icmp slt i64 %206, 1
  br i1 %207, label %221, label %208

208:                                              ; preds = %204
  %209 = load ptr, ptr %31, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = load ptr, ptr %26, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  %213 = icmp sge i64 1, %212
  br i1 %213, label %214, label %215

214:                                              ; preds = %208
  br label %218

215:                                              ; preds = %208
  %216 = load ptr, ptr %26, align 8, !tbaa !5
  %217 = load i64, ptr %216, align 8, !tbaa !9
  br label %218

218:                                              ; preds = %215, %214
  %219 = phi i64 [ 1, %214 ], [ %217, %215 ]
  %220 = icmp sgt i64 %210, %219
  br i1 %220, label %221, label %223

221:                                              ; preds = %218, %204
  %222 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -9, ptr %222, align 8, !tbaa !9
  br label %249

223:                                              ; preds = %218
  %224 = load ptr, ptr %32, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = load ptr, ptr %26, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = load ptr, ptr %31, align 8, !tbaa !5
  %229 = load i64, ptr %228, align 8, !tbaa !9
  %230 = icmp sle i64 %227, %229
  br i1 %230, label %231, label %234

231:                                              ; preds = %223
  %232 = load ptr, ptr %26, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  br label %237

234:                                              ; preds = %223
  %235 = load ptr, ptr %31, align 8, !tbaa !5
  %236 = load i64, ptr %235, align 8, !tbaa !9
  br label %237

237:                                              ; preds = %234, %231
  %238 = phi i64 [ %233, %231 ], [ %236, %234 ]
  %239 = icmp slt i64 %225, %238
  br i1 %239, label %246, label %240

240:                                              ; preds = %237
  %241 = load ptr, ptr %32, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = load ptr, ptr %26, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = icmp sgt i64 %242, %244
  br i1 %245, label %246, label %248

246:                                              ; preds = %240, %237
  %247 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -10, ptr %247, align 8, !tbaa !9
  br label %248

248:                                              ; preds = %246, %240
  br label %249

249:                                              ; preds = %248, %221
  br label %250

250:                                              ; preds = %249, %201
  br label %251

251:                                              ; preds = %250, %200
  br label %252

252:                                              ; preds = %251, %183
  br label %253

253:                                              ; preds = %252, %168
  br label %254

254:                                              ; preds = %253, %162
  br label %255

255:                                              ; preds = %254, %153
  br label %256

256:                                              ; preds = %255, %142
  %257 = load ptr, ptr %43, align 8, !tbaa !5
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = icmp eq i64 %258, 0
  br i1 %259, label %260, label %276

260:                                              ; preds = %256
  %261 = load ptr, ptr %37, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp slt i64 %262, 1
  br i1 %263, label %273, label %264

264:                                              ; preds = %260
  %265 = load i64, ptr %73, align 8, !tbaa !9
  %266 = icmp ne i64 %265, 0
  br i1 %266, label %267, label %275

267:                                              ; preds = %264
  %268 = load ptr, ptr %37, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = load ptr, ptr %26, align 8, !tbaa !5
  %271 = load i64, ptr %270, align 8, !tbaa !9
  %272 = icmp slt i64 %269, %271
  br i1 %272, label %273, label %275

273:                                              ; preds = %267, %260
  %274 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -15, ptr %274, align 8, !tbaa !9
  br label %275

275:                                              ; preds = %273, %267, %264
  br label %276

276:                                              ; preds = %275, %256
  %277 = load ptr, ptr %43, align 8, !tbaa !5
  %278 = load i64, ptr %277, align 8, !tbaa !9
  %279 = icmp eq i64 %278, 0
  br i1 %279, label %280, label %346

280:                                              ; preds = %276
  %281 = load ptr, ptr %26, align 8, !tbaa !5
  %282 = load i64, ptr %281, align 8, !tbaa !9
  %283 = icmp sle i64 %282, 1
  br i1 %283, label %284, label %293

284:                                              ; preds = %280
  store i64 1, ptr %87, align 8, !tbaa !9
  %285 = load i64, ptr %87, align 8, !tbaa !9
  %286 = sitofp i64 %285 to float
  %287 = load ptr, ptr %38, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.complex, ptr %287, i64 1
  %289 = getelementptr inbounds %struct.complex, ptr %288, i32 0, i32 0
  store float %286, ptr %289, align 4, !tbaa !13
  %290 = load ptr, ptr %38, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.complex, ptr %290, i64 1
  %292 = getelementptr inbounds %struct.complex, ptr %291, i32 0, i32 1
  store float 0.000000e+00, ptr %292, align 4, !tbaa !15
  br label %335

293:                                              ; preds = %280
  %294 = load ptr, ptr %26, align 8, !tbaa !5
  %295 = load i64, ptr %294, align 8, !tbaa !9
  %296 = shl i64 %295, 1
  store i64 %296, ptr %87, align 8, !tbaa !9
  %297 = load ptr, ptr %25, align 8, !tbaa !5
  %298 = load ptr, ptr %26, align 8, !tbaa !5
  %299 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef %297, ptr noundef %298, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %299, ptr %54, align 8, !tbaa !9
  %300 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %300, ptr %48, align 8, !tbaa !9
  %301 = load ptr, ptr %25, align 8, !tbaa !5
  %302 = load ptr, ptr %26, align 8, !tbaa !5
  %303 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef %301, ptr noundef %302, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %303, ptr %49, align 8, !tbaa !9
  %304 = load i64, ptr %48, align 8, !tbaa !9
  %305 = load i64, ptr %49, align 8, !tbaa !9
  %306 = icmp sge i64 %304, %305
  br i1 %306, label %307, label %309

307:                                              ; preds = %293
  %308 = load i64, ptr %48, align 8, !tbaa !9
  br label %311

309:                                              ; preds = %293
  %310 = load i64, ptr %49, align 8, !tbaa !9
  br label %311

311:                                              ; preds = %309, %307
  %312 = phi i64 [ %308, %307 ], [ %310, %309 ]
  store i64 %312, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %48, align 8, !tbaa !9
  %313 = load i64, ptr %54, align 8, !tbaa !9
  %314 = add nsw i64 %313, 1
  %315 = load ptr, ptr %26, align 8, !tbaa !5
  %316 = load i64, ptr %315, align 8, !tbaa !9
  %317 = mul nsw i64 %314, %316
  store i64 %317, ptr %49, align 8, !tbaa !9
  %318 = load i64, ptr %48, align 8, !tbaa !9
  %319 = load i64, ptr %49, align 8, !tbaa !9
  %320 = icmp sge i64 %318, %319
  br i1 %320, label %321, label %323

321:                                              ; preds = %311
  %322 = load i64, ptr %48, align 8, !tbaa !9
  br label %325

323:                                              ; preds = %311
  %324 = load i64, ptr %49, align 8, !tbaa !9
  br label %325

325:                                              ; preds = %323, %321
  %326 = phi i64 [ %322, %321 ], [ %324, %323 ]
  store i64 %326, ptr %91, align 8, !tbaa !9
  %327 = load i64, ptr %91, align 8, !tbaa !9
  %328 = sitofp i64 %327 to float
  %329 = load ptr, ptr %38, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.complex, ptr %329, i64 1
  %331 = getelementptr inbounds %struct.complex, ptr %330, i32 0, i32 0
  store float %328, ptr %331, align 4, !tbaa !13
  %332 = load ptr, ptr %38, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.complex, ptr %332, i64 1
  %334 = getelementptr inbounds %struct.complex, ptr %333, i32 0, i32 1
  store float 0.000000e+00, ptr %334, align 4, !tbaa !15
  br label %335

335:                                              ; preds = %325, %284
  %336 = load ptr, ptr %39, align 8, !tbaa !5
  %337 = load i64, ptr %336, align 8, !tbaa !9
  %338 = load i64, ptr %87, align 8, !tbaa !9
  %339 = icmp slt i64 %337, %338
  br i1 %339, label %340, label %345

340:                                              ; preds = %335
  %341 = load i64, ptr %92, align 8, !tbaa !9
  %342 = icmp ne i64 %341, 0
  br i1 %342, label %345, label %343

343:                                              ; preds = %340
  %344 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -17, ptr %344, align 8, !tbaa !9
  br label %345

345:                                              ; preds = %343, %340, %335
  br label %346

346:                                              ; preds = %345, %276
  %347 = load ptr, ptr %43, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = icmp ne i64 %348, 0
  br i1 %349, label %350, label %355

350:                                              ; preds = %346
  %351 = load ptr, ptr %43, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  %353 = sub nsw i64 0, %352
  store i64 %353, ptr %48, align 8, !tbaa !9
  %354 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %48)
  store i32 0, ptr %22, align 4
  store i32 1, ptr %93, align 4
  br label %1008

355:                                              ; preds = %346
  %356 = load i64, ptr %92, align 8, !tbaa !9
  %357 = icmp ne i64 %356, 0
  br i1 %357, label %358, label %359

358:                                              ; preds = %355
  store i32 0, ptr %22, align 4
  store i32 1, ptr %93, align 4
  br label %1008

359:                                              ; preds = %355
  br label %360

360:                                              ; preds = %359
  %361 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 0, ptr %361, align 8, !tbaa !9
  %362 = load ptr, ptr %26, align 8, !tbaa !5
  %363 = load i64, ptr %362, align 8, !tbaa !9
  %364 = icmp eq i64 %363, 0
  br i1 %364, label %365, label %366

365:                                              ; preds = %360
  store i32 0, ptr %22, align 4
  store i32 1, ptr %93, align 4
  br label %1008

366:                                              ; preds = %360
  %367 = load ptr, ptr %26, align 8, !tbaa !5
  %368 = load i64, ptr %367, align 8, !tbaa !9
  %369 = icmp eq i64 %368, 1
  br i1 %369, label %370, label %440

370:                                              ; preds = %366
  %371 = load i64, ptr %74, align 8, !tbaa !9
  %372 = icmp ne i64 %371, 0
  br i1 %372, label %376, label %373

373:                                              ; preds = %370
  %374 = load i64, ptr %75, align 8, !tbaa !9
  %375 = icmp ne i64 %374, 0
  br i1 %375, label %376, label %387

376:                                              ; preds = %373, %370
  %377 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 1, ptr %377, align 8, !tbaa !9
  %378 = load i64, ptr %44, align 8, !tbaa !9
  %379 = add nsw i64 %378, 1
  store i64 %379, ptr %48, align 8, !tbaa !9
  %380 = load ptr, ptr %27, align 8, !tbaa !5
  %381 = load i64, ptr %48, align 8, !tbaa !9
  %382 = getelementptr inbounds %struct.complex, ptr %380, i64 %381
  %383 = getelementptr inbounds %struct.complex, ptr %382, i32 0, i32 0
  %384 = load float, ptr %383, align 4, !tbaa !13
  %385 = load ptr, ptr %35, align 8, !tbaa !5
  %386 = getelementptr inbounds float, ptr %385, i64 1
  store float %384, ptr %386, align 4, !tbaa !11
  br label %425

387:                                              ; preds = %373
  %388 = load i64, ptr %78, align 8, !tbaa !9
  %389 = icmp ne i64 %388, 0
  br i1 %389, label %390, label %424

390:                                              ; preds = %387
  %391 = load i64, ptr %44, align 8, !tbaa !9
  %392 = add nsw i64 %391, 1
  store i64 %392, ptr %48, align 8, !tbaa !9
  %393 = load i64, ptr %44, align 8, !tbaa !9
  %394 = add nsw i64 %393, 1
  store i64 %394, ptr %49, align 8, !tbaa !9
  %395 = load ptr, ptr %29, align 8, !tbaa !5
  %396 = load float, ptr %395, align 4, !tbaa !11
  %397 = load ptr, ptr %27, align 8, !tbaa !5
  %398 = load i64, ptr %48, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct.complex, ptr %397, i64 %398
  %400 = getelementptr inbounds %struct.complex, ptr %399, i32 0, i32 0
  %401 = load float, ptr %400, align 4, !tbaa !13
  %402 = fcmp olt float %396, %401
  br i1 %402, label %403, label %423

403:                                              ; preds = %390
  %404 = load ptr, ptr %30, align 8, !tbaa !5
  %405 = load float, ptr %404, align 4, !tbaa !11
  %406 = load ptr, ptr %27, align 8, !tbaa !5
  %407 = load i64, ptr %49, align 8, !tbaa !9
  %408 = getelementptr inbounds %struct.complex, ptr %406, i64 %407
  %409 = getelementptr inbounds %struct.complex, ptr %408, i32 0, i32 0
  %410 = load float, ptr %409, align 4, !tbaa !13
  %411 = fcmp oge float %405, %410
  br i1 %411, label %412, label %423

412:                                              ; preds = %403
  %413 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 1, ptr %413, align 8, !tbaa !9
  %414 = load i64, ptr %44, align 8, !tbaa !9
  %415 = add nsw i64 %414, 1
  store i64 %415, ptr %48, align 8, !tbaa !9
  %416 = load ptr, ptr %27, align 8, !tbaa !5
  %417 = load i64, ptr %48, align 8, !tbaa !9
  %418 = getelementptr inbounds %struct.complex, ptr %416, i64 %417
  %419 = getelementptr inbounds %struct.complex, ptr %418, i32 0, i32 0
  %420 = load float, ptr %419, align 4, !tbaa !13
  %421 = load ptr, ptr %35, align 8, !tbaa !5
  %422 = getelementptr inbounds float, ptr %421, i64 1
  store float %420, ptr %422, align 4, !tbaa !11
  br label %423

423:                                              ; preds = %412, %403, %390
  br label %424

424:                                              ; preds = %423, %387
  br label %425

425:                                              ; preds = %424, %376
  %426 = load i64, ptr %73, align 8, !tbaa !9
  %427 = icmp ne i64 %426, 0
  br i1 %427, label %428, label %439

428:                                              ; preds = %425
  %429 = load i64, ptr %46, align 8, !tbaa !9
  %430 = add nsw i64 %429, 1
  store i64 %430, ptr %48, align 8, !tbaa !9
  %431 = load ptr, ptr %36, align 8, !tbaa !5
  %432 = load i64, ptr %48, align 8, !tbaa !9
  %433 = getelementptr inbounds %struct.complex, ptr %431, i64 %432
  %434 = getelementptr inbounds %struct.complex, ptr %433, i32 0, i32 0
  store float 1.000000e+00, ptr %434, align 4, !tbaa !13
  %435 = load ptr, ptr %36, align 8, !tbaa !5
  %436 = load i64, ptr %48, align 8, !tbaa !9
  %437 = getelementptr inbounds %struct.complex, ptr %435, i64 %436
  %438 = getelementptr inbounds %struct.complex, ptr %437, i32 0, i32 1
  store float 0.000000e+00, ptr %438, align 4, !tbaa !15
  br label %439

439:                                              ; preds = %428, %425
  store i32 0, ptr %22, align 4
  store i32 1, ptr %93, align 4
  br label %1008

440:                                              ; preds = %366
  %441 = call double @slamch_(ptr noundef @.str.9)
  %442 = fptrunc double %441 to float
  store float %442, ptr %79, align 4, !tbaa !11
  %443 = call double @slamch_(ptr noundef @.str.10)
  %444 = fptrunc double %443 to float
  store float %444, ptr %56, align 4, !tbaa !11
  %445 = load float, ptr %79, align 4, !tbaa !11
  %446 = load float, ptr %56, align 4, !tbaa !11
  %447 = fdiv float %445, %446
  store float %447, ptr %90, align 4, !tbaa !11
  %448 = load float, ptr %90, align 4, !tbaa !11
  %449 = fdiv float 1.000000e+00, %448
  store float %449, ptr %81, align 4, !tbaa !11
  %450 = load float, ptr %90, align 4, !tbaa !11
  %451 = fpext float %450 to double
  %452 = call double @sqrt(double noundef %451) #4
  %453 = fptrunc double %452 to float
  store float %453, ptr %64, align 4, !tbaa !11
  %454 = load float, ptr %81, align 4, !tbaa !11
  %455 = fpext float %454 to double
  %456 = call double @sqrt(double noundef %455) #4
  %457 = fptrunc double %456 to float
  store float %457, ptr %50, align 4, !tbaa !11
  %458 = load float, ptr %79, align 4, !tbaa !11
  %459 = fpext float %458 to double
  %460 = call double @sqrt(double noundef %459) #4
  %461 = call double @sqrt(double noundef %460) #4
  %462 = fdiv double 1.000000e+00, %461
  %463 = fptrunc double %462 to float
  store float %463, ptr %51, align 4, !tbaa !11
  %464 = load float, ptr %50, align 4, !tbaa !11
  %465 = load float, ptr %51, align 4, !tbaa !11
  %466 = fcmp ole float %464, %465
  br i1 %466, label %467, label %469

467:                                              ; preds = %440
  %468 = load float, ptr %50, align 4, !tbaa !11
  br label %471

469:                                              ; preds = %440
  %470 = load float, ptr %51, align 4, !tbaa !11
  br label %471

471:                                              ; preds = %469, %467
  %472 = phi float [ %468, %467 ], [ %470, %469 ]
  %473 = fpext float %472 to double
  %474 = fptrunc double %473 to float
  store float %474, ptr %65, align 4, !tbaa !11
  store i64 0, ptr %76, align 8, !tbaa !9
  %475 = load ptr, ptr %33, align 8, !tbaa !5
  %476 = load float, ptr %475, align 4, !tbaa !11
  store float %476, ptr %80, align 4, !tbaa !11
  %477 = load i64, ptr %78, align 8, !tbaa !9
  %478 = icmp ne i64 %477, 0
  br i1 %478, label %479, label %484

479:                                              ; preds = %471
  %480 = load ptr, ptr %29, align 8, !tbaa !5
  %481 = load float, ptr %480, align 4, !tbaa !11
  store float %481, ptr %57, align 4, !tbaa !11
  %482 = load ptr, ptr %30, align 8, !tbaa !5
  %483 = load float, ptr %482, align 4, !tbaa !11
  store float %483, ptr %58, align 4, !tbaa !11
  br label %484

484:                                              ; preds = %479, %471
  %485 = load ptr, ptr %25, align 8, !tbaa !5
  %486 = load ptr, ptr %26, align 8, !tbaa !5
  %487 = load ptr, ptr %27, align 8, !tbaa !5
  %488 = load i64, ptr %45, align 8, !tbaa !9
  %489 = getelementptr inbounds %struct.complex, ptr %487, i64 %488
  %490 = load ptr, ptr %28, align 8, !tbaa !5
  %491 = load ptr, ptr %40, align 8, !tbaa !5
  %492 = getelementptr inbounds float, ptr %491, i64 1
  %493 = call double @clanhe_(ptr noundef @.str.11, ptr noundef %485, ptr noundef %486, ptr noundef %489, ptr noundef %490, ptr noundef %492)
  %494 = fptrunc double %493 to float
  store float %494, ptr %62, align 4, !tbaa !11
  %495 = load float, ptr %62, align 4, !tbaa !11
  %496 = fcmp ogt float %495, 0.000000e+00
  br i1 %496, label %497, label %505

497:                                              ; preds = %484
  %498 = load float, ptr %62, align 4, !tbaa !11
  %499 = load float, ptr %64, align 4, !tbaa !11
  %500 = fcmp olt float %498, %499
  br i1 %500, label %501, label %505

501:                                              ; preds = %497
  store i64 1, ptr %76, align 8, !tbaa !9
  %502 = load float, ptr %64, align 4, !tbaa !11
  %503 = load float, ptr %62, align 4, !tbaa !11
  %504 = fdiv float %502, %503
  store float %504, ptr %69, align 4, !tbaa !11
  br label %514

505:                                              ; preds = %497, %484
  %506 = load float, ptr %62, align 4, !tbaa !11
  %507 = load float, ptr %65, align 4, !tbaa !11
  %508 = fcmp ogt float %506, %507
  br i1 %508, label %509, label %513

509:                                              ; preds = %505
  store i64 1, ptr %76, align 8, !tbaa !9
  %510 = load float, ptr %65, align 4, !tbaa !11
  %511 = load float, ptr %62, align 4, !tbaa !11
  %512 = fdiv float %510, %511
  store float %512, ptr %69, align 4, !tbaa !11
  br label %513

513:                                              ; preds = %509, %505
  br label %514

514:                                              ; preds = %513, %501
  %515 = load i64, ptr %76, align 8, !tbaa !9
  %516 = icmp eq i64 %515, 1
  br i1 %516, label %517, label %586

517:                                              ; preds = %514
  %518 = load i64, ptr %72, align 8, !tbaa !9
  %519 = icmp ne i64 %518, 0
  br i1 %519, label %520, label %545

520:                                              ; preds = %517
  %521 = load ptr, ptr %26, align 8, !tbaa !5
  %522 = load i64, ptr %521, align 8, !tbaa !9
  store i64 %522, ptr %48, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %523

523:                                              ; preds = %541, %520
  %524 = load i64, ptr %53, align 8, !tbaa !9
  %525 = load i64, ptr %48, align 8, !tbaa !9
  %526 = icmp sle i64 %524, %525
  br i1 %526, label %527, label %544

527:                                              ; preds = %523
  %528 = load ptr, ptr %26, align 8, !tbaa !5
  %529 = load i64, ptr %528, align 8, !tbaa !9
  %530 = load i64, ptr %53, align 8, !tbaa !9
  %531 = sub nsw i64 %529, %530
  %532 = add nsw i64 %531, 1
  store i64 %532, ptr %49, align 8, !tbaa !9
  %533 = load ptr, ptr %27, align 8, !tbaa !5
  %534 = load i64, ptr %53, align 8, !tbaa !9
  %535 = load i64, ptr %53, align 8, !tbaa !9
  %536 = load i64, ptr %44, align 8, !tbaa !9
  %537 = mul nsw i64 %535, %536
  %538 = add nsw i64 %534, %537
  %539 = getelementptr inbounds %struct.complex, ptr %533, i64 %538
  %540 = call i32 @f2c_csscal(ptr noundef %49, ptr noundef %69, ptr noundef %539, ptr noundef @c__1)
  br label %541

541:                                              ; preds = %527
  %542 = load i64, ptr %53, align 8, !tbaa !9
  %543 = add nsw i64 %542, 1
  store i64 %543, ptr %53, align 8, !tbaa !9
  br label %523, !llvm.loop !16

544:                                              ; preds = %523
  br label %564

545:                                              ; preds = %517
  %546 = load ptr, ptr %26, align 8, !tbaa !5
  %547 = load i64, ptr %546, align 8, !tbaa !9
  store i64 %547, ptr %48, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %548

548:                                              ; preds = %560, %545
  %549 = load i64, ptr %53, align 8, !tbaa !9
  %550 = load i64, ptr %48, align 8, !tbaa !9
  %551 = icmp sle i64 %549, %550
  br i1 %551, label %552, label %563

552:                                              ; preds = %548
  %553 = load ptr, ptr %27, align 8, !tbaa !5
  %554 = load i64, ptr %53, align 8, !tbaa !9
  %555 = load i64, ptr %44, align 8, !tbaa !9
  %556 = mul nsw i64 %554, %555
  %557 = add nsw i64 %556, 1
  %558 = getelementptr inbounds %struct.complex, ptr %553, i64 %557
  %559 = call i32 @f2c_csscal(ptr noundef %53, ptr noundef %69, ptr noundef %558, ptr noundef @c__1)
  br label %560

560:                                              ; preds = %552
  %561 = load i64, ptr %53, align 8, !tbaa !9
  %562 = add nsw i64 %561, 1
  store i64 %562, ptr %53, align 8, !tbaa !9
  br label %548, !llvm.loop !18

563:                                              ; preds = %548
  br label %564

564:                                              ; preds = %563, %544
  %565 = load ptr, ptr %33, align 8, !tbaa !5
  %566 = load float, ptr %565, align 4, !tbaa !11
  %567 = fcmp ogt float %566, 0.000000e+00
  br i1 %567, label %568, label %573

568:                                              ; preds = %564
  %569 = load ptr, ptr %33, align 8, !tbaa !5
  %570 = load float, ptr %569, align 4, !tbaa !11
  %571 = load float, ptr %69, align 4, !tbaa !11
  %572 = fmul float %570, %571
  store float %572, ptr %80, align 4, !tbaa !11
  br label %573

573:                                              ; preds = %568, %564
  %574 = load i64, ptr %78, align 8, !tbaa !9
  %575 = icmp ne i64 %574, 0
  br i1 %575, label %576, label %585

576:                                              ; preds = %573
  %577 = load ptr, ptr %29, align 8, !tbaa !5
  %578 = load float, ptr %577, align 4, !tbaa !11
  %579 = load float, ptr %69, align 4, !tbaa !11
  %580 = fmul float %578, %579
  store float %580, ptr %57, align 4, !tbaa !11
  %581 = load ptr, ptr %30, align 8, !tbaa !5
  %582 = load float, ptr %581, align 4, !tbaa !11
  %583 = load float, ptr %69, align 4, !tbaa !11
  %584 = fmul float %582, %583
  store float %584, ptr %58, align 4, !tbaa !11
  br label %585

585:                                              ; preds = %576, %573
  br label %586

586:                                              ; preds = %585, %514
  store i64 1, ptr %60, align 8, !tbaa !9
  %587 = load i64, ptr %60, align 8, !tbaa !9
  %588 = load ptr, ptr %26, align 8, !tbaa !5
  %589 = load i64, ptr %588, align 8, !tbaa !9
  %590 = add nsw i64 %587, %589
  store i64 %590, ptr %61, align 8, !tbaa !9
  %591 = load i64, ptr %61, align 8, !tbaa !9
  %592 = load ptr, ptr %26, align 8, !tbaa !5
  %593 = load i64, ptr %592, align 8, !tbaa !9
  %594 = add nsw i64 %591, %593
  store i64 %594, ptr %85, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  %595 = load i64, ptr %84, align 8, !tbaa !9
  %596 = load ptr, ptr %26, align 8, !tbaa !5
  %597 = load i64, ptr %596, align 8, !tbaa !9
  %598 = add nsw i64 %595, %597
  store i64 %598, ptr %86, align 8, !tbaa !9
  %599 = load ptr, ptr %39, align 8, !tbaa !5
  %600 = load i64, ptr %599, align 8, !tbaa !9
  %601 = load i64, ptr %86, align 8, !tbaa !9
  %602 = sub nsw i64 %600, %601
  %603 = add nsw i64 %602, 1
  store i64 %603, ptr %89, align 8, !tbaa !9
  %604 = load ptr, ptr %25, align 8, !tbaa !5
  %605 = load ptr, ptr %26, align 8, !tbaa !5
  %606 = load ptr, ptr %27, align 8, !tbaa !5
  %607 = load i64, ptr %45, align 8, !tbaa !9
  %608 = getelementptr inbounds %struct.complex, ptr %606, i64 %607
  %609 = load ptr, ptr %28, align 8, !tbaa !5
  %610 = load ptr, ptr %40, align 8, !tbaa !5
  %611 = load i64, ptr %60, align 8, !tbaa !9
  %612 = getelementptr inbounds float, ptr %610, i64 %611
  %613 = load ptr, ptr %40, align 8, !tbaa !5
  %614 = load i64, ptr %61, align 8, !tbaa !9
  %615 = getelementptr inbounds float, ptr %613, i64 %614
  %616 = load ptr, ptr %38, align 8, !tbaa !5
  %617 = load i64, ptr %84, align 8, !tbaa !9
  %618 = getelementptr inbounds %struct.complex, ptr %616, i64 %617
  %619 = load ptr, ptr %38, align 8, !tbaa !5
  %620 = load i64, ptr %86, align 8, !tbaa !9
  %621 = getelementptr inbounds %struct.complex, ptr %619, i64 %620
  %622 = call i32 @chetrd_(ptr noundef %604, ptr noundef %605, ptr noundef %608, ptr noundef %609, ptr noundef %612, ptr noundef %615, ptr noundef %618, ptr noundef %621, ptr noundef %89, ptr noundef %70)
  store i64 0, ptr %66, align 8, !tbaa !9
  %623 = load i64, ptr %75, align 8, !tbaa !9
  %624 = icmp ne i64 %623, 0
  br i1 %624, label %625, label %637

625:                                              ; preds = %586
  %626 = load ptr, ptr %31, align 8, !tbaa !5
  %627 = load i64, ptr %626, align 8, !tbaa !9
  %628 = icmp eq i64 %627, 1
  br i1 %628, label %629, label %636

629:                                              ; preds = %625
  %630 = load ptr, ptr %32, align 8, !tbaa !5
  %631 = load i64, ptr %630, align 8, !tbaa !9
  %632 = load ptr, ptr %26, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  %634 = icmp eq i64 %631, %633
  br i1 %634, label %635, label %636

635:                                              ; preds = %629
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %636

636:                                              ; preds = %635, %629, %625
  br label %637

637:                                              ; preds = %636, %586
  %638 = load i64, ptr %74, align 8, !tbaa !9
  %639 = icmp ne i64 %638, 0
  br i1 %639, label %643, label %640

640:                                              ; preds = %637
  %641 = load i64, ptr %66, align 8, !tbaa !9
  %642 = icmp ne i64 %641, 0
  br i1 %642, label %643, label %761

643:                                              ; preds = %640, %637
  %644 = load ptr, ptr %33, align 8, !tbaa !5
  %645 = load float, ptr %644, align 4, !tbaa !11
  %646 = fcmp ole float %645, 0.000000e+00
  br i1 %646, label %647, label %761

647:                                              ; preds = %643
  %648 = load ptr, ptr %26, align 8, !tbaa !5
  %649 = load ptr, ptr %40, align 8, !tbaa !5
  %650 = load i64, ptr %60, align 8, !tbaa !9
  %651 = getelementptr inbounds float, ptr %649, i64 %650
  %652 = load ptr, ptr %35, align 8, !tbaa !5
  %653 = getelementptr inbounds float, ptr %652, i64 1
  %654 = call i32 @f2c_scopy(ptr noundef %648, ptr noundef %651, ptr noundef @c__1, ptr noundef %653, ptr noundef @c__1)
  %655 = load i64, ptr %85, align 8, !tbaa !9
  %656 = load ptr, ptr %26, align 8, !tbaa !5
  %657 = load i64, ptr %656, align 8, !tbaa !9
  %658 = shl i64 %657, 1
  %659 = add nsw i64 %655, %658
  store i64 %659, ptr %68, align 8, !tbaa !9
  %660 = load i64, ptr %73, align 8, !tbaa !9
  %661 = icmp ne i64 %660, 0
  br i1 %661, label %681, label %662

662:                                              ; preds = %647
  %663 = load ptr, ptr %26, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = sub nsw i64 %664, 1
  store i64 %665, ptr %48, align 8, !tbaa !9
  %666 = load ptr, ptr %40, align 8, !tbaa !5
  %667 = load i64, ptr %61, align 8, !tbaa !9
  %668 = getelementptr inbounds float, ptr %666, i64 %667
  %669 = load ptr, ptr %40, align 8, !tbaa !5
  %670 = load i64, ptr %68, align 8, !tbaa !9
  %671 = getelementptr inbounds float, ptr %669, i64 %670
  %672 = call i32 @f2c_scopy(ptr noundef %48, ptr noundef %668, ptr noundef @c__1, ptr noundef %671, ptr noundef @c__1)
  %673 = load ptr, ptr %26, align 8, !tbaa !5
  %674 = load ptr, ptr %35, align 8, !tbaa !5
  %675 = getelementptr inbounds float, ptr %674, i64 1
  %676 = load ptr, ptr %40, align 8, !tbaa !5
  %677 = load i64, ptr %68, align 8, !tbaa !9
  %678 = getelementptr inbounds float, ptr %676, i64 %677
  %679 = load ptr, ptr %43, align 8, !tbaa !5
  %680 = call i32 @ssterf_(ptr noundef %673, ptr noundef %675, ptr noundef %678, ptr noundef %679)
  br label %751

681:                                              ; preds = %647
  %682 = load ptr, ptr %26, align 8, !tbaa !5
  %683 = load ptr, ptr %26, align 8, !tbaa !5
  %684 = load ptr, ptr %27, align 8, !tbaa !5
  %685 = load i64, ptr %45, align 8, !tbaa !9
  %686 = getelementptr inbounds %struct.complex, ptr %684, i64 %685
  %687 = load ptr, ptr %28, align 8, !tbaa !5
  %688 = load ptr, ptr %36, align 8, !tbaa !5
  %689 = load i64, ptr %47, align 8, !tbaa !9
  %690 = getelementptr inbounds %struct.complex, ptr %688, i64 %689
  %691 = load ptr, ptr %37, align 8, !tbaa !5
  %692 = call i32 @clacpy_(ptr noundef @.str.2, ptr noundef %682, ptr noundef %683, ptr noundef %686, ptr noundef %687, ptr noundef %690, ptr noundef %691)
  %693 = load ptr, ptr %25, align 8, !tbaa !5
  %694 = load ptr, ptr %26, align 8, !tbaa !5
  %695 = load ptr, ptr %36, align 8, !tbaa !5
  %696 = load i64, ptr %47, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct.complex, ptr %695, i64 %696
  %698 = load ptr, ptr %37, align 8, !tbaa !5
  %699 = load ptr, ptr %38, align 8, !tbaa !5
  %700 = load i64, ptr %84, align 8, !tbaa !9
  %701 = getelementptr inbounds %struct.complex, ptr %699, i64 %700
  %702 = load ptr, ptr %38, align 8, !tbaa !5
  %703 = load i64, ptr %86, align 8, !tbaa !9
  %704 = getelementptr inbounds %struct.complex, ptr %702, i64 %703
  %705 = call i32 @cungtr_(ptr noundef %693, ptr noundef %694, ptr noundef %697, ptr noundef %698, ptr noundef %701, ptr noundef %704, ptr noundef %89, ptr noundef %70)
  %706 = load ptr, ptr %26, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = sub nsw i64 %707, 1
  store i64 %708, ptr %48, align 8, !tbaa !9
  %709 = load ptr, ptr %40, align 8, !tbaa !5
  %710 = load i64, ptr %61, align 8, !tbaa !9
  %711 = getelementptr inbounds float, ptr %709, i64 %710
  %712 = load ptr, ptr %40, align 8, !tbaa !5
  %713 = load i64, ptr %68, align 8, !tbaa !9
  %714 = getelementptr inbounds float, ptr %712, i64 %713
  %715 = call i32 @f2c_scopy(ptr noundef %48, ptr noundef %711, ptr noundef @c__1, ptr noundef %714, ptr noundef @c__1)
  %716 = load ptr, ptr %23, align 8, !tbaa !5
  %717 = load ptr, ptr %26, align 8, !tbaa !5
  %718 = load ptr, ptr %35, align 8, !tbaa !5
  %719 = getelementptr inbounds float, ptr %718, i64 1
  %720 = load ptr, ptr %40, align 8, !tbaa !5
  %721 = load i64, ptr %68, align 8, !tbaa !9
  %722 = getelementptr inbounds float, ptr %720, i64 %721
  %723 = load ptr, ptr %36, align 8, !tbaa !5
  %724 = load i64, ptr %47, align 8, !tbaa !9
  %725 = getelementptr inbounds %struct.complex, ptr %723, i64 %724
  %726 = load ptr, ptr %37, align 8, !tbaa !5
  %727 = load ptr, ptr %40, align 8, !tbaa !5
  %728 = load i64, ptr %85, align 8, !tbaa !9
  %729 = getelementptr inbounds float, ptr %727, i64 %728
  %730 = load ptr, ptr %43, align 8, !tbaa !5
  %731 = call i32 @csteqr_(ptr noundef %716, ptr noundef %717, ptr noundef %719, ptr noundef %722, ptr noundef %725, ptr noundef %726, ptr noundef %729, ptr noundef %730)
  %732 = load ptr, ptr %43, align 8, !tbaa !5
  %733 = load i64, ptr %732, align 8, !tbaa !9
  %734 = icmp eq i64 %733, 0
  br i1 %734, label %735, label %750

735:                                              ; preds = %681
  %736 = load ptr, ptr %26, align 8, !tbaa !5
  %737 = load i64, ptr %736, align 8, !tbaa !9
  store i64 %737, ptr %48, align 8, !tbaa !9
  store i64 1, ptr %52, align 8, !tbaa !9
  br label %738

738:                                              ; preds = %746, %735
  %739 = load i64, ptr %52, align 8, !tbaa !9
  %740 = load i64, ptr %48, align 8, !tbaa !9
  %741 = icmp sle i64 %739, %740
  br i1 %741, label %742, label %749

742:                                              ; preds = %738
  %743 = load ptr, ptr %42, align 8, !tbaa !5
  %744 = load i64, ptr %52, align 8, !tbaa !9
  %745 = getelementptr inbounds i64, ptr %743, i64 %744
  store i64 0, ptr %745, align 8, !tbaa !9
  br label %746

746:                                              ; preds = %742
  %747 = load i64, ptr %52, align 8, !tbaa !9
  %748 = add nsw i64 %747, 1
  store i64 %748, ptr %52, align 8, !tbaa !9
  br label %738, !llvm.loop !19

749:                                              ; preds = %738
  br label %750

750:                                              ; preds = %749, %681
  br label %751

751:                                              ; preds = %750, %662
  %752 = load ptr, ptr %43, align 8, !tbaa !5
  %753 = load i64, ptr %752, align 8, !tbaa !9
  %754 = icmp eq i64 %753, 0
  br i1 %754, label %755, label %759

755:                                              ; preds = %751
  %756 = load ptr, ptr %26, align 8, !tbaa !5
  %757 = load i64, ptr %756, align 8, !tbaa !9
  %758 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 %757, ptr %758, align 8, !tbaa !9
  br label %857

759:                                              ; preds = %751
  %760 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 0, ptr %760, align 8, !tbaa !9
  br label %761

761:                                              ; preds = %759, %643, %640
  %762 = load i64, ptr %73, align 8, !tbaa !9
  %763 = icmp ne i64 %762, 0
  br i1 %763, label %764, label %766

764:                                              ; preds = %761
  %765 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  store i8 66, ptr %765, align 1, !tbaa !20
  br label %768

766:                                              ; preds = %761
  %767 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  store i8 69, ptr %767, align 1, !tbaa !20
  br label %768

768:                                              ; preds = %766, %764
  store i64 1, ptr %77, align 8, !tbaa !9
  %769 = load i64, ptr %77, align 8, !tbaa !9
  %770 = load ptr, ptr %26, align 8, !tbaa !5
  %771 = load i64, ptr %770, align 8, !tbaa !9
  %772 = add nsw i64 %769, %771
  store i64 %772, ptr %83, align 8, !tbaa !9
  %773 = load i64, ptr %83, align 8, !tbaa !9
  %774 = load ptr, ptr %26, align 8, !tbaa !5
  %775 = load i64, ptr %774, align 8, !tbaa !9
  %776 = add nsw i64 %773, %775
  store i64 %776, ptr %82, align 8, !tbaa !9
  %777 = load ptr, ptr %24, align 8, !tbaa !5
  %778 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  %779 = load ptr, ptr %26, align 8, !tbaa !5
  %780 = load ptr, ptr %31, align 8, !tbaa !5
  %781 = load ptr, ptr %32, align 8, !tbaa !5
  %782 = load ptr, ptr %40, align 8, !tbaa !5
  %783 = load i64, ptr %60, align 8, !tbaa !9
  %784 = getelementptr inbounds float, ptr %782, i64 %783
  %785 = load ptr, ptr %40, align 8, !tbaa !5
  %786 = load i64, ptr %61, align 8, !tbaa !9
  %787 = getelementptr inbounds float, ptr %785, i64 %786
  %788 = load ptr, ptr %34, align 8, !tbaa !5
  %789 = load ptr, ptr %35, align 8, !tbaa !5
  %790 = getelementptr inbounds float, ptr %789, i64 1
  %791 = load ptr, ptr %41, align 8, !tbaa !5
  %792 = load i64, ptr %77, align 8, !tbaa !9
  %793 = getelementptr inbounds i64, ptr %791, i64 %792
  %794 = load ptr, ptr %41, align 8, !tbaa !5
  %795 = load i64, ptr %83, align 8, !tbaa !9
  %796 = getelementptr inbounds i64, ptr %794, i64 %795
  %797 = load ptr, ptr %40, align 8, !tbaa !5
  %798 = load i64, ptr %85, align 8, !tbaa !9
  %799 = getelementptr inbounds float, ptr %797, i64 %798
  %800 = load ptr, ptr %41, align 8, !tbaa !5
  %801 = load i64, ptr %82, align 8, !tbaa !9
  %802 = getelementptr inbounds i64, ptr %800, i64 %801
  %803 = load ptr, ptr %43, align 8, !tbaa !5
  %804 = call i32 @sstebz_(ptr noundef %777, ptr noundef %778, ptr noundef %779, ptr noundef %57, ptr noundef %58, ptr noundef %780, ptr noundef %781, ptr noundef %80, ptr noundef %784, ptr noundef %787, ptr noundef %788, ptr noundef %88, ptr noundef %790, ptr noundef %793, ptr noundef %796, ptr noundef %799, ptr noundef %802, ptr noundef %803)
  %805 = load i64, ptr %73, align 8, !tbaa !9
  %806 = icmp ne i64 %805, 0
  br i1 %806, label %807, label %856

807:                                              ; preds = %768
  %808 = load ptr, ptr %26, align 8, !tbaa !5
  %809 = load ptr, ptr %40, align 8, !tbaa !5
  %810 = load i64, ptr %60, align 8, !tbaa !9
  %811 = getelementptr inbounds float, ptr %809, i64 %810
  %812 = load ptr, ptr %40, align 8, !tbaa !5
  %813 = load i64, ptr %61, align 8, !tbaa !9
  %814 = getelementptr inbounds float, ptr %812, i64 %813
  %815 = load ptr, ptr %34, align 8, !tbaa !5
  %816 = load ptr, ptr %35, align 8, !tbaa !5
  %817 = getelementptr inbounds float, ptr %816, i64 1
  %818 = load ptr, ptr %41, align 8, !tbaa !5
  %819 = load i64, ptr %77, align 8, !tbaa !9
  %820 = getelementptr inbounds i64, ptr %818, i64 %819
  %821 = load ptr, ptr %41, align 8, !tbaa !5
  %822 = load i64, ptr %83, align 8, !tbaa !9
  %823 = getelementptr inbounds i64, ptr %821, i64 %822
  %824 = load ptr, ptr %36, align 8, !tbaa !5
  %825 = load i64, ptr %47, align 8, !tbaa !9
  %826 = getelementptr inbounds %struct.complex, ptr %824, i64 %825
  %827 = load ptr, ptr %37, align 8, !tbaa !5
  %828 = load ptr, ptr %40, align 8, !tbaa !5
  %829 = load i64, ptr %85, align 8, !tbaa !9
  %830 = getelementptr inbounds float, ptr %828, i64 %829
  %831 = load ptr, ptr %41, align 8, !tbaa !5
  %832 = load i64, ptr %82, align 8, !tbaa !9
  %833 = getelementptr inbounds i64, ptr %831, i64 %832
  %834 = load ptr, ptr %42, align 8, !tbaa !5
  %835 = getelementptr inbounds i64, ptr %834, i64 1
  %836 = load ptr, ptr %43, align 8, !tbaa !5
  %837 = call i32 @cstein_(ptr noundef %808, ptr noundef %811, ptr noundef %814, ptr noundef %815, ptr noundef %817, ptr noundef %820, ptr noundef %823, ptr noundef %826, ptr noundef %827, ptr noundef %830, ptr noundef %833, ptr noundef %835, ptr noundef %836)
  %838 = load ptr, ptr %25, align 8, !tbaa !5
  %839 = load ptr, ptr %26, align 8, !tbaa !5
  %840 = load ptr, ptr %34, align 8, !tbaa !5
  %841 = load ptr, ptr %27, align 8, !tbaa !5
  %842 = load i64, ptr %45, align 8, !tbaa !9
  %843 = getelementptr inbounds %struct.complex, ptr %841, i64 %842
  %844 = load ptr, ptr %28, align 8, !tbaa !5
  %845 = load ptr, ptr %38, align 8, !tbaa !5
  %846 = load i64, ptr %84, align 8, !tbaa !9
  %847 = getelementptr inbounds %struct.complex, ptr %845, i64 %846
  %848 = load ptr, ptr %36, align 8, !tbaa !5
  %849 = load i64, ptr %47, align 8, !tbaa !9
  %850 = getelementptr inbounds %struct.complex, ptr %848, i64 %849
  %851 = load ptr, ptr %37, align 8, !tbaa !5
  %852 = load ptr, ptr %38, align 8, !tbaa !5
  %853 = load i64, ptr %86, align 8, !tbaa !9
  %854 = getelementptr inbounds %struct.complex, ptr %852, i64 %853
  %855 = call i32 @cunmtr_(ptr noundef @.str, ptr noundef %838, ptr noundef @.str.4, ptr noundef %839, ptr noundef %840, ptr noundef %843, ptr noundef %844, ptr noundef %847, ptr noundef %850, ptr noundef %851, ptr noundef %854, ptr noundef %89, ptr noundef %70)
  br label %856

856:                                              ; preds = %807, %768
  br label %857

857:                                              ; preds = %856, %755
  %858 = load i64, ptr %76, align 8, !tbaa !9
  %859 = icmp eq i64 %858, 1
  br i1 %859, label %860, label %877

860:                                              ; preds = %857
  %861 = load ptr, ptr %43, align 8, !tbaa !5
  %862 = load i64, ptr %861, align 8, !tbaa !9
  %863 = icmp eq i64 %862, 0
  br i1 %863, label %864, label %867

864:                                              ; preds = %860
  %865 = load ptr, ptr %34, align 8, !tbaa !5
  %866 = load i64, ptr %865, align 8, !tbaa !9
  store i64 %866, ptr %63, align 8, !tbaa !9
  br label %871

867:                                              ; preds = %860
  %868 = load ptr, ptr %43, align 8, !tbaa !5
  %869 = load i64, ptr %868, align 8, !tbaa !9
  %870 = sub nsw i64 %869, 1
  store i64 %870, ptr %63, align 8, !tbaa !9
  br label %871

871:                                              ; preds = %867, %864
  %872 = load float, ptr %69, align 4, !tbaa !11
  %873 = fdiv float 1.000000e+00, %872
  store float %873, ptr %50, align 4, !tbaa !11
  %874 = load ptr, ptr %35, align 8, !tbaa !5
  %875 = getelementptr inbounds float, ptr %874, i64 1
  %876 = call i32 @f2c_sscal(ptr noundef %63, ptr noundef %50, ptr noundef %875, ptr noundef @c__1)
  br label %877

877:                                              ; preds = %871, %857
  %878 = load i64, ptr %73, align 8, !tbaa !9
  %879 = icmp ne i64 %878, 0
  br i1 %879, label %880, label %999

880:                                              ; preds = %877
  %881 = load ptr, ptr %34, align 8, !tbaa !5
  %882 = load i64, ptr %881, align 8, !tbaa !9
  %883 = sub nsw i64 %882, 1
  store i64 %883, ptr %48, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %884

884:                                              ; preds = %995, %880
  %885 = load i64, ptr %53, align 8, !tbaa !9
  %886 = load i64, ptr %48, align 8, !tbaa !9
  %887 = icmp sle i64 %885, %886
  br i1 %887, label %888, label %998

888:                                              ; preds = %884
  store i64 0, ptr %52, align 8, !tbaa !9
  %889 = load ptr, ptr %35, align 8, !tbaa !5
  %890 = load i64, ptr %53, align 8, !tbaa !9
  %891 = getelementptr inbounds float, ptr %889, i64 %890
  %892 = load float, ptr %891, align 4, !tbaa !11
  store float %892, ptr %59, align 4, !tbaa !11
  %893 = load ptr, ptr %34, align 8, !tbaa !5
  %894 = load i64, ptr %893, align 8, !tbaa !9
  store i64 %894, ptr %49, align 8, !tbaa !9
  %895 = load i64, ptr %53, align 8, !tbaa !9
  %896 = add nsw i64 %895, 1
  store i64 %896, ptr %55, align 8, !tbaa !9
  br label %897

897:                                              ; preds = %915, %888
  %898 = load i64, ptr %55, align 8, !tbaa !9
  %899 = load i64, ptr %49, align 8, !tbaa !9
  %900 = icmp sle i64 %898, %899
  br i1 %900, label %901, label %918

901:                                              ; preds = %897
  %902 = load ptr, ptr %35, align 8, !tbaa !5
  %903 = load i64, ptr %55, align 8, !tbaa !9
  %904 = getelementptr inbounds float, ptr %902, i64 %903
  %905 = load float, ptr %904, align 4, !tbaa !11
  %906 = load float, ptr %59, align 4, !tbaa !11
  %907 = fcmp olt float %905, %906
  br i1 %907, label %908, label %914

908:                                              ; preds = %901
  %909 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %909, ptr %52, align 8, !tbaa !9
  %910 = load ptr, ptr %35, align 8, !tbaa !5
  %911 = load i64, ptr %55, align 8, !tbaa !9
  %912 = getelementptr inbounds float, ptr %910, i64 %911
  %913 = load float, ptr %912, align 4, !tbaa !11
  store float %913, ptr %59, align 4, !tbaa !11
  br label %914

914:                                              ; preds = %908, %901
  br label %915

915:                                              ; preds = %914
  %916 = load i64, ptr %55, align 8, !tbaa !9
  %917 = add nsw i64 %916, 1
  store i64 %917, ptr %55, align 8, !tbaa !9
  br label %897, !llvm.loop !21

918:                                              ; preds = %897
  %919 = load i64, ptr %52, align 8, !tbaa !9
  %920 = icmp ne i64 %919, 0
  br i1 %920, label %921, label %994

921:                                              ; preds = %918
  %922 = load ptr, ptr %41, align 8, !tbaa !5
  %923 = load i64, ptr %77, align 8, !tbaa !9
  %924 = load i64, ptr %52, align 8, !tbaa !9
  %925 = add nsw i64 %923, %924
  %926 = sub nsw i64 %925, 1
  %927 = getelementptr inbounds i64, ptr %922, i64 %926
  %928 = load i64, ptr %927, align 8, !tbaa !9
  store i64 %928, ptr %67, align 8, !tbaa !9
  %929 = load ptr, ptr %35, align 8, !tbaa !5
  %930 = load i64, ptr %53, align 8, !tbaa !9
  %931 = getelementptr inbounds float, ptr %929, i64 %930
  %932 = load float, ptr %931, align 4, !tbaa !11
  %933 = load ptr, ptr %35, align 8, !tbaa !5
  %934 = load i64, ptr %52, align 8, !tbaa !9
  %935 = getelementptr inbounds float, ptr %933, i64 %934
  store float %932, ptr %935, align 4, !tbaa !11
  %936 = load ptr, ptr %41, align 8, !tbaa !5
  %937 = load i64, ptr %77, align 8, !tbaa !9
  %938 = load i64, ptr %53, align 8, !tbaa !9
  %939 = add nsw i64 %937, %938
  %940 = sub nsw i64 %939, 1
  %941 = getelementptr inbounds i64, ptr %936, i64 %940
  %942 = load i64, ptr %941, align 8, !tbaa !9
  %943 = load ptr, ptr %41, align 8, !tbaa !5
  %944 = load i64, ptr %77, align 8, !tbaa !9
  %945 = load i64, ptr %52, align 8, !tbaa !9
  %946 = add nsw i64 %944, %945
  %947 = sub nsw i64 %946, 1
  %948 = getelementptr inbounds i64, ptr %943, i64 %947
  store i64 %942, ptr %948, align 8, !tbaa !9
  %949 = load float, ptr %59, align 4, !tbaa !11
  %950 = load ptr, ptr %35, align 8, !tbaa !5
  %951 = load i64, ptr %53, align 8, !tbaa !9
  %952 = getelementptr inbounds float, ptr %950, i64 %951
  store float %949, ptr %952, align 4, !tbaa !11
  %953 = load i64, ptr %67, align 8, !tbaa !9
  %954 = load ptr, ptr %41, align 8, !tbaa !5
  %955 = load i64, ptr %77, align 8, !tbaa !9
  %956 = load i64, ptr %53, align 8, !tbaa !9
  %957 = add nsw i64 %955, %956
  %958 = sub nsw i64 %957, 1
  %959 = getelementptr inbounds i64, ptr %954, i64 %958
  store i64 %953, ptr %959, align 8, !tbaa !9
  %960 = load ptr, ptr %26, align 8, !tbaa !5
  %961 = load ptr, ptr %36, align 8, !tbaa !5
  %962 = load i64, ptr %52, align 8, !tbaa !9
  %963 = load i64, ptr %46, align 8, !tbaa !9
  %964 = mul nsw i64 %962, %963
  %965 = add nsw i64 %964, 1
  %966 = getelementptr inbounds %struct.complex, ptr %961, i64 %965
  %967 = load ptr, ptr %36, align 8, !tbaa !5
  %968 = load i64, ptr %53, align 8, !tbaa !9
  %969 = load i64, ptr %46, align 8, !tbaa !9
  %970 = mul nsw i64 %968, %969
  %971 = add nsw i64 %970, 1
  %972 = getelementptr inbounds %struct.complex, ptr %967, i64 %971
  %973 = call i32 @f2c_cswap(ptr noundef %960, ptr noundef %966, ptr noundef @c__1, ptr noundef %972, ptr noundef @c__1)
  %974 = load ptr, ptr %43, align 8, !tbaa !5
  %975 = load i64, ptr %974, align 8, !tbaa !9
  %976 = icmp ne i64 %975, 0
  br i1 %976, label %977, label %993

977:                                              ; preds = %921
  %978 = load ptr, ptr %42, align 8, !tbaa !5
  %979 = load i64, ptr %52, align 8, !tbaa !9
  %980 = getelementptr inbounds i64, ptr %978, i64 %979
  %981 = load i64, ptr %980, align 8, !tbaa !9
  store i64 %981, ptr %67, align 8, !tbaa !9
  %982 = load ptr, ptr %42, align 8, !tbaa !5
  %983 = load i64, ptr %53, align 8, !tbaa !9
  %984 = getelementptr inbounds i64, ptr %982, i64 %983
  %985 = load i64, ptr %984, align 8, !tbaa !9
  %986 = load ptr, ptr %42, align 8, !tbaa !5
  %987 = load i64, ptr %52, align 8, !tbaa !9
  %988 = getelementptr inbounds i64, ptr %986, i64 %987
  store i64 %985, ptr %988, align 8, !tbaa !9
  %989 = load i64, ptr %67, align 8, !tbaa !9
  %990 = load ptr, ptr %42, align 8, !tbaa !5
  %991 = load i64, ptr %53, align 8, !tbaa !9
  %992 = getelementptr inbounds i64, ptr %990, i64 %991
  store i64 %989, ptr %992, align 8, !tbaa !9
  br label %993

993:                                              ; preds = %977, %921
  br label %994

994:                                              ; preds = %993, %918
  br label %995

995:                                              ; preds = %994
  %996 = load i64, ptr %53, align 8, !tbaa !9
  %997 = add nsw i64 %996, 1
  store i64 %997, ptr %53, align 8, !tbaa !9
  br label %884, !llvm.loop !22

998:                                              ; preds = %884
  br label %999

999:                                              ; preds = %998, %877
  %1000 = load i64, ptr %91, align 8, !tbaa !9
  %1001 = sitofp i64 %1000 to float
  %1002 = load ptr, ptr %38, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.complex, ptr %1002, i64 1
  %1004 = getelementptr inbounds %struct.complex, ptr %1003, i32 0, i32 0
  store float %1001, ptr %1004, align 4, !tbaa !13
  %1005 = load ptr, ptr %38, align 8, !tbaa !5
  %1006 = getelementptr inbounds %struct.complex, ptr %1005, i64 1
  %1007 = getelementptr inbounds %struct.complex, ptr %1006, i32 0, i32 1
  store float 0.000000e+00, ptr %1007, align 4, !tbaa !15
  store i32 0, ptr %22, align 4
  store i32 1, ptr %93, align 4
  br label %1008

1008:                                             ; preds = %999, %439, %365, %358, %350
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  %1009 = load i32, ptr %22, align 4
  ret i32 %1009
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare i32 @cstein_(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 @cunmtr_(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 @f2c_sscal(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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


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

%struct.complex = type { float, float }

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

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

53:                                               ; preds = %21
  %54 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not382 = icmp eq i64 %54, 0
  br i1 %.not382, label %.thread416.sink.split, label %55

55:                                               ; preds = %53, %21
  %56 = icmp ne i64 %48, 0
  %57 = icmp ne i64 %49, 0
  %or.cond = select i1 %56, i1 true, i1 %57
  %58 = icmp ne i64 %50, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %58
  br i1 %or.cond3, label %59, label %.thread416.sink.split

59:                                               ; preds = %55
  %.not383 = icmp eq i64 %46, 0
  br i1 %.not383, label %60, label %62

60:                                               ; preds = %59
  %61 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #6
  %.not384 = icmp eq i64 %61, 0
  br i1 %.not384, label %.thread416.sink.split, label %62

62:                                               ; preds = %60, %59
  %63 = load i64, ptr %3, align 8, !tbaa !5
  %64 = icmp slt i64 %63, 0
  br i1 %64, label %.thread416.sink.split, label %65

65:                                               ; preds = %62
  %66 = load i64, ptr %5, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %63, i64 1)
  %67 = icmp slt i64 %66, %spec.select
  br i1 %67, label %.thread416.sink.split, label %68

68:                                               ; preds = %65
  br i1 %57, label %69, label %74

69:                                               ; preds = %68
  %.not430 = icmp eq i64 %63, 0
  br i1 %.not430, label %83, label %70

70:                                               ; preds = %69
  %71 = load float, ptr %7, align 4, !tbaa !9
  %72 = load float, ptr %6, align 4, !tbaa !9
  %73 = fcmp ugt float %71, %72
  br i1 %73, label %83, label %.thread416.sink.split

74:                                               ; preds = %68
  br i1 %58, label %75, label %83

75:                                               ; preds = %74
  %76 = load i64, ptr %8, align 8, !tbaa !5
  %77 = icmp slt i64 %76, 1
  %78 = icmp ugt i64 %76, %spec.select
  %or.cond428 = or i1 %77, %78
  br i1 %or.cond428, label %.thread416.sink.split, label %79

79:                                               ; preds = %75
  %80 = load i64, ptr %9, align 8, !tbaa !5
  %. = tail call i64 @llvm.umin.i64(i64 %63, i64 %76)
  %81 = icmp slt i64 %80, %.
  %82 = icmp ugt i64 %80, %63
  %or.cond429 = or i1 %81, %82
  br i1 %or.cond429, label %.thread416.sink.split, label %83

83:                                               ; preds = %79, %70, %69, %74
  %.pr = load i64, ptr %20, align 8, !tbaa !5
  %84 = icmp eq i64 %.pr, 0
  br i1 %84, label %85, label %.thread416

85:                                               ; preds = %83
  %86 = load i64, ptr %14, align 8, !tbaa !5
  %87 = icmp slt i64 %86, 1
  %88 = icmp ult i64 %86, %63
  %or.cond462 = and i1 %.not, %88
  %or.cond466 = or i1 %87, %or.cond462
  br i1 %or.cond466, label %.thread416.sink.split, label %.thread

.thread:                                          ; preds = %85
  %89 = icmp ult i64 %63, 2
  br i1 %89, label %100, label %90

90:                                               ; preds = %.thread
  %91 = shl nuw i64 %63, 1
  %92 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #6
  %93 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.7, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #6
  %94 = tail call i64 @llvm.smax.i64(i64 %92, i64 %93)
  store i64 1, ptr %22, align 8, !tbaa !5
  %95 = add nsw i64 %94, 1
  %96 = load i64, ptr %3, align 8, !tbaa !5
  %97 = mul nsw i64 %95, %96
  store i64 %97, ptr %23, align 8, !tbaa !5
  %98 = tail call i64 @llvm.smax.i64(i64 %97, i64 1)
  %99 = uitofp nneg i64 %98 to float
  br label %100

100:                                              ; preds = %.thread, %90
  %.sink = phi float [ %99, %90 ], [ 1.000000e+00, %.thread ]
  %.0356 = phi i64 [ %91, %90 ], [ 1, %.thread ]
  %.0355 = phi i64 [ %98, %90 ], [ undef, %.thread ]
  store float %.sink, ptr %15, align 4
  %101 = getelementptr inbounds i8, ptr %15, i64 4
  store float 0.000000e+00, ptr %101, align 4
  %102 = load i64, ptr %16, align 8, !tbaa !5
  %103 = icmp sge i64 %102, %.0356
  %or.cond5 = select i1 %103, i1 true, i1 %52
  br i1 %or.cond5, label %.thread411, label %.thread416.sink.split

.thread411:                                       ; preds = %100
  %.pr413.pr = load i64, ptr %20, align 8, !tbaa !5
  %.not387 = icmp eq i64 %.pr413.pr, 0
  br i1 %.not387, label %107, label %.thread416

.thread416.sink.split:                            ; preds = %100, %85, %79, %75, %70, %65, %62, %60, %55, %53
  %.sink463 = phi i64 [ -1, %53 ], [ -2, %55 ], [ -3, %60 ], [ -4, %62 ], [ -6, %65 ], [ -8, %70 ], [ -9, %75 ], [ -10, %79 ], [ -15, %85 ], [ -17, %100 ]
  store i64 %.sink463, ptr %20, align 8, !tbaa !5
  br label %.thread416

.thread416:                                       ; preds = %.thread416.sink.split, %83, %.thread411
  %104 = phi i64 [ %.pr413.pr, %.thread411 ], [ %.pr, %83 ], [ %.sink463, %.thread416.sink.split ]
  %105 = sub nsw i64 0, %104
  store i64 %105, ptr %22, align 8, !tbaa !5
  %106 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %22) #6
  br label %284

107:                                              ; preds = %.thread411
  br i1 %52, label %284, label %108

108:                                              ; preds = %107
  store i64 0, ptr %11, align 8, !tbaa !5
  %109 = load i64, ptr %3, align 8, !tbaa !5
  switch i64 %109, label %124 [
    i64 0, label %284
    i64 1, label %110
  ]

110:                                              ; preds = %108
  %or.cond7 = select i1 %56, i1 true, i1 %58
  br i1 %or.cond7, label %111, label %113

111:                                              ; preds = %110
  store i64 1, ptr %11, align 8, !tbaa !5
  %112 = load float, ptr %4, align 4, !tbaa !11
  br label %.sink.split

113:                                              ; preds = %110
  %.not403 = icmp eq i64 %49, 0
  br i1 %.not403, label %122, label %114

114:                                              ; preds = %113
  %115 = load float, ptr %6, align 4, !tbaa !9
  %116 = load float, ptr %4, align 4, !tbaa !11
  %117 = fcmp olt float %115, %116
  br i1 %117, label %118, label %122

118:                                              ; preds = %114
  %119 = load float, ptr %7, align 4, !tbaa !9
  %120 = fcmp ult float %119, %116
  br i1 %120, label %122, label %121

121:                                              ; preds = %118
  store i64 1, ptr %11, align 8, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %111, %121
  %.sink464 = phi float [ %116, %121 ], [ %112, %111 ]
  store float %.sink464, ptr %12, align 4, !tbaa !9
  br label %122

122:                                              ; preds = %.sink.split, %113, %118, %114
  br i1 %.not, label %123, label %284

123:                                              ; preds = %122
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %13, align 4, !tbaa !9
  br label %284

124:                                              ; preds = %108
  %125 = tail call double @slamch_(ptr noundef nonnull @.str.9) #6
  %126 = fptrunc double %125 to float
  %127 = tail call double @slamch_(ptr noundef nonnull @.str.10) #6
  %128 = fptrunc double %127 to float
  %129 = fdiv float %126, %128
  %130 = fdiv float 1.000000e+00, %129
  %sqrtf = tail call float @sqrtf(float noundef %129) #3
  %sqrtf388 = tail call float @sqrtf(float noundef %130) #3
  store float %sqrtf388, ptr %24, align 4, !tbaa !9
  %131 = fpext float %126 to double
  %132 = tail call double @sqrt(double noundef %131) #6
  %133 = tail call double @sqrt(double noundef %132) #6
  %134 = fdiv double 1.000000e+00, %133
  %135 = fptrunc double %134 to float
  %136 = fcmp ole float %sqrtf388, %135
  %137 = select i1 %136, float %sqrtf388, float %135
  %138 = load float, ptr %10, align 4, !tbaa !9
  store float %138, ptr %32, align 4, !tbaa !9
  %.not389 = icmp eq i64 %49, 0
  br i1 %.not389, label %142, label %139

139:                                              ; preds = %124
  %140 = load float, ptr %6, align 4, !tbaa !9
  store float %140, ptr %26, align 4, !tbaa !9
  %141 = load float, ptr %7, align 4, !tbaa !9
  store float %141, ptr %27, align 4, !tbaa !9
  br label %142

142:                                              ; preds = %139, %124
  %143 = tail call double @clanhe_(ptr noundef nonnull @.str.11, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %17) #6
  %144 = fptrunc double %143 to float
  %145 = fcmp ogt float %144, 0.000000e+00
  %146 = fcmp ogt float %sqrtf, %144
  %or.cond405 = select i1 %145, i1 %146, i1 false
  br i1 %or.cond405, label %149, label %147

147:                                              ; preds = %142
  %148 = fcmp olt float %137, %144
  br i1 %148, label %149, label %178

149:                                              ; preds = %147, %142
  %.pn = phi float [ %sqrtf, %142 ], [ %137, %147 ]
  %storemerge431 = fdiv float %.pn, %144
  store float %storemerge431, ptr %29, align 4, !tbaa !9
  %150 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %150, ptr %22, align 8, !tbaa !5
  br i1 %.not383, label %160, label %151

151:                                              ; preds = %149
  store i64 1, ptr %25, align 8, !tbaa !5
  %.not393435 = icmp slt i64 %150, 1
  br i1 %.not393435, label %.loopexit433, label %.lr.ph

.lr.ph:                                           ; preds = %151, %.lr.ph
  %storemerge392436 = phi i64 [ %158, %.lr.ph ], [ 1, %151 ]
  %152 = load i64, ptr %3, align 8, !tbaa !5
  %reass.sub = sub i64 %152, %storemerge392436
  %153 = add i64 %reass.sub, 1
  store i64 %153, ptr %23, align 8, !tbaa !5
  %154 = mul i64 %storemerge392436, %36
  %155 = getelementptr inbounds %struct.complex, ptr %38, i64 %154
  %156 = call i32 @f2c_csscal(ptr noundef nonnull %23, ptr noundef nonnull %29, ptr noundef %155, ptr noundef nonnull @c__1) #6
  %157 = load i64, ptr %25, align 8, !tbaa !5
  %158 = add nsw i64 %157, 1
  store i64 %158, ptr %25, align 8, !tbaa !5
  %159 = load i64, ptr %22, align 8, !tbaa !5
  %.not393.not = icmp slt i64 %157, %159
  br i1 %.not393.not, label %.lr.ph, label %.loopexit433, !llvm.loop !13

160:                                              ; preds = %149
  %invariant.gep = getelementptr i8, ptr %38, i64 8
  store i64 1, ptr %25, align 8, !tbaa !5
  %.not391437 = icmp slt i64 %150, 1
  br i1 %.not391437, label %.loopexit433, label %.lr.ph439

.lr.ph439:                                        ; preds = %160, %.lr.ph439
  %storemerge438 = phi i64 [ %164, %.lr.ph439 ], [ 1, %160 ]
  %161 = mul nsw i64 %storemerge438, %35
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %161
  %162 = call i32 @f2c_csscal(ptr noundef nonnull %25, ptr noundef nonnull %29, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %163 = load i64, ptr %25, align 8, !tbaa !5
  %164 = add nsw i64 %163, 1
  store i64 %164, ptr %25, align 8, !tbaa !5
  %165 = load i64, ptr %22, align 8, !tbaa !5
  %.not391.not = icmp slt i64 %163, %165
  br i1 %.not391.not, label %.lr.ph439, label %.loopexit433, !llvm.loop !15

.loopexit433:                                     ; preds = %.lr.ph, %.lr.ph439, %151, %160
  %166 = load float, ptr %10, align 4, !tbaa !9
  %167 = fcmp ogt float %166, 0.000000e+00
  br i1 %167, label %168, label %171

168:                                              ; preds = %.loopexit433
  %169 = load float, ptr %29, align 4, !tbaa !9
  %170 = fmul float %166, %169
  store float %170, ptr %32, align 4, !tbaa !9
  br label %171

171:                                              ; preds = %168, %.loopexit433
  br i1 %.not389, label %178, label %172

172:                                              ; preds = %171
  %173 = load float, ptr %6, align 4, !tbaa !9
  %174 = load float, ptr %29, align 4, !tbaa !9
  %175 = fmul float %173, %174
  store float %175, ptr %26, align 4, !tbaa !9
  %176 = load float, ptr %7, align 4, !tbaa !9
  %177 = fmul float %174, %176
  store float %177, ptr %27, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %147, %171, %172
  %179 = phi i1 [ true, %171 ], [ true, %172 ], [ false, %147 ]
  %180 = load i64, ptr %3, align 8, !tbaa !5
  %reass.add = shl i64 %180, 1
  %181 = or disjoint i64 %reass.add, 1
  %182 = load i64, ptr %16, align 8, !tbaa !5
  %183 = sub i64 %182, %180
  store i64 %183, ptr %34, align 8, !tbaa !5
  %184 = getelementptr float, ptr %17, i64 %180
  %185 = getelementptr %struct.complex, ptr %15, i64 %180
  %186 = call i32 @chetrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %17, ptr noundef %184, ptr noundef nonnull %15, ptr noundef %185, ptr noundef nonnull %34, ptr noundef nonnull %30) #6
  %.not394 = icmp eq i64 %50, 0
  br i1 %.not394, label %194, label %187

187:                                              ; preds = %178
  %188 = load i64, ptr %8, align 8, !tbaa !5
  %189 = icmp eq i64 %188, 1
  br i1 %189, label %190, label %194

190:                                              ; preds = %187
  %191 = load i64, ptr %9, align 8, !tbaa !5
  %192 = load i64, ptr %3, align 8, !tbaa !5
  %193 = icmp eq i64 %191, %192
  br label %194

194:                                              ; preds = %190, %187, %178
  %195 = phi i1 [ false, %187 ], [ false, %178 ], [ %193, %190 ]
  %or.cond9 = or i1 %56, %195
  br i1 %or.cond9, label %196, label %226

196:                                              ; preds = %194
  %197 = load float, ptr %10, align 4, !tbaa !9
  %198 = fcmp ugt float %197, 0.000000e+00
  br i1 %198, label %226, label %199

199:                                              ; preds = %196
  %200 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef %17, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull @c__1) #6
  %201 = load i64, ptr %3, align 8, !tbaa !5
  %202 = shl i64 %201, 1
  %203 = add nsw i64 %202, %181
  br i1 %.not, label %209, label %204

204:                                              ; preds = %199
  %205 = add nsw i64 %201, -1
  store i64 %205, ptr %22, align 8, !tbaa !5
  %206 = getelementptr inbounds float, ptr %43, i64 %203
  %207 = call i32 @f2c_scopy(ptr noundef nonnull %22, ptr noundef %184, ptr noundef nonnull @c__1, ptr noundef nonnull %206, ptr noundef nonnull @c__1) #6
  %208 = call i32 @ssterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %206, ptr noundef nonnull %20) #6
  br label %.loopexit432

209:                                              ; preds = %199
  %210 = call i32 @clacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %13, ptr noundef nonnull %14) #6
  %211 = call i32 @cungtr_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %185, ptr noundef nonnull %34, ptr noundef nonnull %30) #6
  %212 = load i64, ptr %3, align 8, !tbaa !5
  %213 = add nsw i64 %212, -1
  store i64 %213, ptr %22, align 8, !tbaa !5
  %214 = getelementptr inbounds float, ptr %43, i64 %203
  %215 = call i32 @f2c_scopy(ptr noundef nonnull %22, ptr noundef %184, ptr noundef nonnull @c__1, ptr noundef nonnull %214, ptr noundef nonnull @c__1) #6
  %216 = getelementptr float, ptr %17, i64 %reass.add
  %217 = call i32 @csteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %214, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %216, ptr noundef nonnull %20) #6
  %218 = load i64, ptr %20, align 8, !tbaa !5
  %219 = icmp eq i64 %218, 0
  br i1 %219, label %220, label %.thread423

220:                                              ; preds = %209
  %221 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %221, ptr %22, align 8, !tbaa !5
  %.not395440 = icmp slt i64 %221, 1
  br i1 %.not395440, label %.loopexit432, label %.lr.ph442.preheader

.lr.ph442.preheader:                              ; preds = %220
  %222 = shl nuw i64 %221, 3
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 %222, i1 false), !tbaa !5
  br label %.loopexit432

.loopexit432:                                     ; preds = %.lr.ph442.preheader, %220, %204
  %.pr422 = load i64, ptr %20, align 8, !tbaa !5
  %223 = icmp eq i64 %.pr422, 0
  br i1 %223, label %224, label %.thread423

224:                                              ; preds = %.loopexit432
  %225 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %225, ptr %11, align 8, !tbaa !5
  br label %235

.thread423:                                       ; preds = %209, %.loopexit432
  store i64 0, ptr %20, align 8, !tbaa !5
  br label %226

226:                                              ; preds = %194, %.thread423, %196
  %.407 = select i1 %.not, i8 66, i8 69
  store i8 %.407, ptr %31, align 1, !tbaa !16
  %227 = load i64, ptr %3, align 8, !tbaa !5
  %228 = getelementptr i64, ptr %18, i64 %227
  %229 = getelementptr float, ptr %17, i64 %reass.add
  %.idx = shl i64 %227, 4
  %230 = getelementptr i8, ptr %18, i64 %.idx
  %231 = call i32 @sstebz_(ptr noundef %1, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %32, ptr noundef %17, ptr noundef %184, ptr noundef nonnull %11, ptr noundef nonnull %33, ptr noundef %12, ptr noundef %18, ptr noundef %228, ptr noundef nonnull %229, ptr noundef %230, ptr noundef nonnull %20) #6
  br i1 %.not, label %232, label %235

232:                                              ; preds = %226
  %233 = call i32 @cstein_(ptr noundef nonnull %3, ptr noundef %17, ptr noundef %184, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %18, ptr noundef %228, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %229, ptr noundef %230, ptr noundef %19, ptr noundef nonnull %20) #6
  %234 = call i32 @cunmtr_(ptr noundef nonnull @.str, ptr noundef %2, ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %15, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %185, ptr noundef nonnull %34, ptr noundef nonnull %30) #6
  br label %235

235:                                              ; preds = %226, %232, %224
  br i1 %179, label %236, label %247

236:                                              ; preds = %235
  %237 = load i64, ptr %20, align 8, !tbaa !5
  %238 = icmp eq i64 %237, 0
  br i1 %238, label %239, label %241

239:                                              ; preds = %236
  %240 = load i64, ptr %11, align 8, !tbaa !5
  br label %243

241:                                              ; preds = %236
  %242 = add nsw i64 %237, -1
  br label %243

243:                                              ; preds = %241, %239
  %storemerge397 = phi i64 [ %242, %241 ], [ %240, %239 ]
  store i64 %storemerge397, ptr %28, align 8, !tbaa !5
  %244 = load float, ptr %29, align 4, !tbaa !9
  %245 = fdiv float 1.000000e+00, %244
  store float %245, ptr %24, align 4, !tbaa !9
  %246 = call i32 @f2c_sscal(ptr noundef nonnull %28, ptr noundef nonnull %24, ptr noundef %12, ptr noundef nonnull @c__1) #6
  br label %247

247:                                              ; preds = %243, %235
  br i1 %.not, label %248, label %.loopexit

248:                                              ; preds = %247
  %249 = load i64, ptr %11, align 8, !tbaa !5
  %250 = add nsw i64 %249, -1
  store i64 %250, ptr %22, align 8, !tbaa !5
  %invariant.gep449 = getelementptr i8, ptr %42, i64 8
  store i64 1, ptr %25, align 8, !tbaa !5
  %.not399453 = icmp slt i64 %249, 2
  br i1 %.not399453, label %.loopexit, label %.lr.ph456

.lr.ph456:                                        ; preds = %248, %._crit_edge.thread
  %storemerge398454 = phi i64 [ %281, %._crit_edge.thread ], [ 1, %248 ]
  %251 = getelementptr inbounds float, ptr %39, i64 %storemerge398454
  %252 = load float, ptr %251, align 4, !tbaa !9
  %253 = load i64, ptr %11, align 8, !tbaa !5
  store i64 %253, ptr %23, align 8, !tbaa !5
  %.not400.not443 = icmp slt i64 %storemerge398454, %253
  br i1 %.not400.not443, label %.lr.ph447.preheader, label %._crit_edge.thread

.lr.ph447.preheader:                              ; preds = %.lr.ph456
  %254 = sub i64 %253, %storemerge398454
  %.neg = add i64 %storemerge398454, 1
  %xtraiter = and i64 %254, 1
  %255 = icmp eq i64 %253, %.neg
  br i1 %255, label %._crit_edge.unr-lcssa, label %.lr.ph447.preheader.new

.lr.ph447.preheader.new:                          ; preds = %.lr.ph447.preheader
  %unroll_iter = and i64 %254, -2
  br label %.lr.ph447

.lr.ph447:                                        ; preds = %.lr.ph447, %.lr.ph447.preheader.new
  %.1358446 = phi i64 [ 0, %.lr.ph447.preheader.new ], [ %.2.1, %.lr.ph447 ]
  %.0359.in445 = phi i64 [ %storemerge398454, %.lr.ph447.preheader.new ], [ %.0359.1, %.lr.ph447 ]
  %.0360444 = phi float [ %252, %.lr.ph447.preheader.new ], [ %.1361.1, %.lr.ph447 ]
  %niter = phi i64 [ 0, %.lr.ph447.preheader.new ], [ %niter.next.1, %.lr.ph447 ]
  %.0359 = add nsw i64 %.0359.in445, 1
  %256 = getelementptr float, ptr %12, i64 %.0359.in445
  %257 = load float, ptr %256, align 4, !tbaa !9
  %258 = fcmp olt float %257, %.0360444
  %.1361 = select i1 %258, float %257, float %.0360444
  %.2 = select i1 %258, i64 %.0359, i64 %.1358446
  %.0359.1 = add nsw i64 %.0359.in445, 2
  %259 = getelementptr float, ptr %12, i64 %.0359
  %260 = load float, ptr %259, align 4, !tbaa !9
  %261 = fcmp olt float %260, %.1361
  %.1361.1 = select i1 %261, float %260, float %.1361
  %.2.1 = select i1 %261, i64 %.0359.1, i64 %.2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph447, !llvm.loop !17

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph447, %.lr.ph447.preheader
  %.1361.lcssa.ph = phi float [ poison, %.lr.ph447.preheader ], [ %.1361.1, %.lr.ph447 ]
  %.2.lcssa.ph = phi i64 [ poison, %.lr.ph447.preheader ], [ %.2.1, %.lr.ph447 ]
  %.1358446.unr = phi i64 [ 0, %.lr.ph447.preheader ], [ %.2.1, %.lr.ph447 ]
  %.0359.in445.unr = phi i64 [ %storemerge398454, %.lr.ph447.preheader ], [ %.0359.1, %.lr.ph447 ]
  %.0360444.unr = phi float [ %252, %.lr.ph447.preheader ], [ %.1361.1, %.lr.ph447 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph447.epil

.lr.ph447.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %.0359.epil = add nsw i64 %.0359.in445.unr, 1
  %262 = getelementptr float, ptr %12, i64 %.0359.in445.unr
  %263 = load float, ptr %262, align 4, !tbaa !9
  %264 = fcmp olt float %263, %.0360444.unr
  %.1361.epil = select i1 %264, float %263, float %.0360444.unr
  %.2.epil = select i1 %264, i64 %.0359.epil, i64 %.1358446.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph447.epil
  %.1361.lcssa = phi float [ %.1361.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1361.epil, %.lr.ph447.epil ]
  %.2.lcssa = phi i64 [ %.2.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2.epil, %.lr.ph447.epil ]
  %.not401 = icmp eq i64 %.2.lcssa, 0
  br i1 %.not401, label %._crit_edge.thread, label %265

265:                                              ; preds = %._crit_edge
  %266 = getelementptr inbounds i64, ptr %44, i64 %.2.lcssa
  %267 = load i64, ptr %266, align 8, !tbaa !5
  %268 = getelementptr inbounds float, ptr %39, i64 %.2.lcssa
  store float %252, ptr %268, align 4, !tbaa !9
  %269 = getelementptr inbounds i64, ptr %44, i64 %storemerge398454
  %270 = load i64, ptr %269, align 8, !tbaa !5
  store i64 %270, ptr %266, align 8, !tbaa !5
  store float %.1361.lcssa, ptr %251, align 4, !tbaa !9
  store i64 %267, ptr %269, align 8, !tbaa !5
  %271 = mul nsw i64 %.2.lcssa, %40
  %gep450 = getelementptr %struct.complex, ptr %invariant.gep449, i64 %271
  %272 = mul nsw i64 %storemerge398454, %40
  %gep452 = getelementptr %struct.complex, ptr %invariant.gep449, i64 %272
  %273 = call i32 @f2c_cswap(ptr noundef nonnull %3, ptr noundef %gep450, ptr noundef nonnull @c__1, ptr noundef %gep452, ptr noundef nonnull @c__1) #6
  %274 = load i64, ptr %20, align 8, !tbaa !5
  %.not402 = icmp eq i64 %274, 0
  %.pre = load i64, ptr %25, align 8, !tbaa !5
  br i1 %.not402, label %._crit_edge.thread, label %275

275:                                              ; preds = %265
  %276 = getelementptr inbounds i64, ptr %45, i64 %.2.lcssa
  %277 = load i64, ptr %276, align 8, !tbaa !5
  %278 = getelementptr inbounds i64, ptr %45, i64 %.pre
  %279 = load i64, ptr %278, align 8, !tbaa !5
  store i64 %279, ptr %276, align 8, !tbaa !5
  store i64 %277, ptr %278, align 8, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph456, %._crit_edge, %275, %265
  %280 = phi i64 [ %storemerge398454, %._crit_edge ], [ %.pre, %275 ], [ %.pre, %265 ], [ %storemerge398454, %.lr.ph456 ]
  %281 = add nsw i64 %280, 1
  store i64 %281, ptr %25, align 8, !tbaa !5
  %282 = load i64, ptr %22, align 8, !tbaa !5
  %.not399.not = icmp slt i64 %280, %282
  br i1 %.not399.not, label %.lr.ph456, label %.loopexit, !llvm.loop !18

.loopexit:                                        ; preds = %._crit_edge.thread, %248, %247
  %283 = sitofp i64 %.0355 to float
  store float %283, ptr %15, align 4, !tbaa !11
  store float 0.000000e+00, ptr %101, align 4, !tbaa !19
  br label %284

284:                                              ; preds = %122, %123, %108, %107, %.loopexit, %.thread416
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  ret i32 0
}

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

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

declare i64 @ilaenv_(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) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @chetrd_(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 @f2c_scopy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

declare i32 @cstein_(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 @cunmtr_(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 @f2c_sscal(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

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

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


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