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

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

144:                                              ; preds = %140
  %145 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -1, ptr %145, align 4, !tbaa !9
  br label %258

146:                                              ; preds = %140, %21
  %147 = load i32, ptr %69, align 4, !tbaa !9
  %148 = icmp ne i32 %147, 0
  br i1 %148, label %157, label %149

149:                                              ; preds = %146
  %150 = load i32, ptr %73, align 4, !tbaa !9
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %157, label %152

152:                                              ; preds = %149
  %153 = load i32, ptr %70, align 4, !tbaa !9
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %157, label %155

155:                                              ; preds = %152
  %156 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -2, ptr %156, align 4, !tbaa !9
  br label %257

157:                                              ; preds = %152, %149, %146
  %158 = load i32, ptr %65, align 4, !tbaa !9
  %159 = icmp ne i32 %158, 0
  br i1 %159, label %166, label %160

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

164:                                              ; preds = %160
  %165 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -3, ptr %165, align 4, !tbaa !9
  br label %256

166:                                              ; preds = %160, %157
  %167 = load ptr, ptr %25, align 8, !tbaa !5
  %168 = load i32, ptr %167, align 4, !tbaa !9
  %169 = icmp slt i32 %168, 0
  br i1 %169, label %170, label %172

170:                                              ; preds = %166
  %171 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -4, ptr %171, align 4, !tbaa !9
  br label %255

172:                                              ; preds = %166
  %173 = load ptr, ptr %27, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  %175 = load ptr, ptr %25, align 8, !tbaa !5
  %176 = load i32, ptr %175, align 4, !tbaa !9
  %177 = icmp sge i32 1, %176
  br i1 %177, label %178, label %179

178:                                              ; preds = %172
  br label %182

179:                                              ; preds = %172
  %180 = load ptr, ptr %25, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  br label %182

182:                                              ; preds = %179, %178
  %183 = phi i32 [ 1, %178 ], [ %181, %179 ]
  %184 = icmp slt i32 %174, %183
  br i1 %184, label %185, label %187

185:                                              ; preds = %182
  %186 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -6, ptr %186, align 4, !tbaa !9
  br label %254

187:                                              ; preds = %182
  %188 = load i32, ptr %73, align 4, !tbaa !9
  %189 = icmp ne i32 %188, 0
  br i1 %189, label %190, label %203

190:                                              ; preds = %187
  %191 = load ptr, ptr %25, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  %193 = icmp sgt i32 %192, 0
  br i1 %193, label %194, label %202

194:                                              ; preds = %190
  %195 = load ptr, ptr %29, align 8, !tbaa !5
  %196 = load float, ptr %195, align 4, !tbaa !11
  %197 = load ptr, ptr %28, align 8, !tbaa !5
  %198 = load float, ptr %197, align 4, !tbaa !11
  %199 = fcmp ole float %196, %198
  br i1 %199, label %200, label %202

200:                                              ; preds = %194
  %201 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -8, ptr %201, align 4, !tbaa !9
  br label %202

202:                                              ; preds = %200, %194, %190
  br label %253

203:                                              ; preds = %187
  %204 = load i32, ptr %70, align 4, !tbaa !9
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %206, label %252

206:                                              ; preds = %203
  %207 = load ptr, ptr %30, align 8, !tbaa !5
  %208 = load i32, ptr %207, align 4, !tbaa !9
  %209 = icmp slt i32 %208, 1
  br i1 %209, label %223, label %210

210:                                              ; preds = %206
  %211 = load ptr, ptr %30, align 8, !tbaa !5
  %212 = load i32, ptr %211, align 4, !tbaa !9
  %213 = load ptr, ptr %25, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = icmp sge i32 1, %214
  br i1 %215, label %216, label %217

216:                                              ; preds = %210
  br label %220

217:                                              ; preds = %210
  %218 = load ptr, ptr %25, align 8, !tbaa !5
  %219 = load i32, ptr %218, align 4, !tbaa !9
  br label %220

220:                                              ; preds = %217, %216
  %221 = phi i32 [ 1, %216 ], [ %219, %217 ]
  %222 = icmp sgt i32 %212, %221
  br i1 %222, label %223, label %225

223:                                              ; preds = %220, %206
  %224 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -9, ptr %224, align 4, !tbaa !9
  br label %251

225:                                              ; preds = %220
  %226 = load ptr, ptr %31, align 8, !tbaa !5
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = load ptr, ptr %25, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = load ptr, ptr %30, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = icmp sle i32 %229, %231
  br i1 %232, label %233, label %236

233:                                              ; preds = %225
  %234 = load ptr, ptr %25, align 8, !tbaa !5
  %235 = load i32, ptr %234, align 4, !tbaa !9
  br label %239

236:                                              ; preds = %225
  %237 = load ptr, ptr %30, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  br label %239

239:                                              ; preds = %236, %233
  %240 = phi i32 [ %235, %233 ], [ %238, %236 ]
  %241 = icmp slt i32 %227, %240
  br i1 %241, label %248, label %242

242:                                              ; preds = %239
  %243 = load ptr, ptr %31, align 8, !tbaa !5
  %244 = load i32, ptr %243, align 4, !tbaa !9
  %245 = load ptr, ptr %25, align 8, !tbaa !5
  %246 = load i32, ptr %245, align 4, !tbaa !9
  %247 = icmp sgt i32 %244, %246
  br i1 %247, label %248, label %250

248:                                              ; preds = %242, %239
  %249 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -10, ptr %249, align 4, !tbaa !9
  br label %250

250:                                              ; preds = %248, %242
  br label %251

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

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

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

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

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

256:                                              ; preds = %255, %164
  br label %257

257:                                              ; preds = %256, %155
  br label %258

258:                                              ; preds = %257, %144
  %259 = load ptr, ptr %42, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp eq i32 %260, 0
  br i1 %261, label %262, label %278

262:                                              ; preds = %258
  %263 = load ptr, ptr %36, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp slt i32 %264, 1
  br i1 %265, label %275, label %266

266:                                              ; preds = %262
  %267 = load i32, ptr %66, align 4, !tbaa !9
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %277

269:                                              ; preds = %266
  %270 = load ptr, ptr %36, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 4, !tbaa !9
  %272 = load ptr, ptr %25, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = icmp slt i32 %271, %273
  br i1 %274, label %275, label %277

275:                                              ; preds = %269, %262
  %276 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -15, ptr %276, align 4, !tbaa !9
  br label %277

277:                                              ; preds = %275, %269, %266
  br label %278

278:                                              ; preds = %277, %258
  %279 = load ptr, ptr %42, align 8, !tbaa !5
  %280 = load i32, ptr %279, align 4, !tbaa !9
  %281 = icmp eq i32 %280, 0
  br i1 %281, label %282, label %348

282:                                              ; preds = %278
  %283 = load ptr, ptr %25, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  %285 = icmp sle i32 %284, 1
  br i1 %285, label %286, label %295

286:                                              ; preds = %282
  store i32 1, ptr %82, align 4, !tbaa !9
  %287 = load i32, ptr %82, align 4, !tbaa !9
  %288 = sitofp i32 %287 to float
  %289 = load ptr, ptr %37, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.complex, ptr %289, i64 1
  %291 = getelementptr inbounds %struct.complex, ptr %290, i32 0, i32 0
  store float %288, ptr %291, align 4, !tbaa !13
  %292 = load ptr, ptr %37, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.complex, ptr %292, i64 1
  %294 = getelementptr inbounds %struct.complex, ptr %293, i32 0, i32 1
  store float 0.000000e+00, ptr %294, align 4, !tbaa !15
  br label %337

295:                                              ; preds = %282
  %296 = load ptr, ptr %25, align 8, !tbaa !5
  %297 = load i32, ptr %296, align 4, !tbaa !9
  %298 = shl i32 %297, 1
  store i32 %298, ptr %82, align 4, !tbaa !9
  %299 = load ptr, ptr %24, align 8, !tbaa !5
  %300 = load ptr, ptr %25, align 8, !tbaa !5
  %301 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef %299, ptr noundef %300, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %301, ptr %67, align 4, !tbaa !9
  %302 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %302, ptr %47, align 4, !tbaa !9
  %303 = load ptr, ptr %24, align 8, !tbaa !5
  %304 = load ptr, ptr %25, align 8, !tbaa !5
  %305 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef %303, ptr noundef %304, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %305, ptr %48, align 4, !tbaa !9
  %306 = load i32, ptr %47, align 4, !tbaa !9
  %307 = load i32, ptr %48, align 4, !tbaa !9
  %308 = icmp sge i32 %306, %307
  br i1 %308, label %309, label %311

309:                                              ; preds = %295
  %310 = load i32, ptr %47, align 4, !tbaa !9
  br label %313

311:                                              ; preds = %295
  %312 = load i32, ptr %48, align 4, !tbaa !9
  br label %313

313:                                              ; preds = %311, %309
  %314 = phi i32 [ %310, %309 ], [ %312, %311 ]
  store i32 %314, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %47, align 4, !tbaa !9
  %315 = load i32, ptr %67, align 4, !tbaa !9
  %316 = add nsw i32 %315, 1
  %317 = load ptr, ptr %25, align 8, !tbaa !5
  %318 = load i32, ptr %317, align 4, !tbaa !9
  %319 = mul nsw i32 %316, %318
  store i32 %319, ptr %48, align 4, !tbaa !9
  %320 = load i32, ptr %47, align 4, !tbaa !9
  %321 = load i32, ptr %48, align 4, !tbaa !9
  %322 = icmp sge i32 %320, %321
  br i1 %322, label %323, label %325

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

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

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

337:                                              ; preds = %327, %286
  %338 = load ptr, ptr %38, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = load i32, ptr %82, align 4, !tbaa !9
  %341 = icmp slt i32 %339, %340
  br i1 %341, label %342, label %347

342:                                              ; preds = %337
  %343 = load i32, ptr %87, align 4, !tbaa !9
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %347, label %345

345:                                              ; preds = %342
  %346 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -17, ptr %346, align 4, !tbaa !9
  br label %347

347:                                              ; preds = %345, %342, %337
  br label %348

348:                                              ; preds = %347, %278
  %349 = load ptr, ptr %42, align 8, !tbaa !5
  %350 = load i32, ptr %349, align 4, !tbaa !9
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %357

352:                                              ; preds = %348
  %353 = load ptr, ptr %42, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = sub nsw i32 0, %354
  store i32 %355, ptr %47, align 4, !tbaa !9
  %356 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %47, i32 noundef 6)
  store i32 1, ptr %92, align 4
  br label %1052

357:                                              ; preds = %348
  %358 = load i32, ptr %87, align 4, !tbaa !9
  %359 = icmp ne i32 %358, 0
  br i1 %359, label %360, label %361

360:                                              ; preds = %357
  store i32 1, ptr %92, align 4
  br label %1052

361:                                              ; preds = %357
  br label %362

362:                                              ; preds = %361
  %363 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 0, ptr %363, align 4, !tbaa !9
  %364 = load ptr, ptr %25, align 8, !tbaa !5
  %365 = load i32, ptr %364, align 4, !tbaa !9
  %366 = icmp eq i32 %365, 0
  br i1 %366, label %367, label %368

367:                                              ; preds = %362
  store i32 1, ptr %92, align 4
  br label %1052

368:                                              ; preds = %362
  %369 = load ptr, ptr %25, align 8, !tbaa !5
  %370 = load i32, ptr %369, align 4, !tbaa !9
  %371 = icmp eq i32 %370, 1
  br i1 %371, label %372, label %448

372:                                              ; preds = %368
  %373 = load i32, ptr %69, align 4, !tbaa !9
  %374 = icmp ne i32 %373, 0
  br i1 %374, label %378, label %375

375:                                              ; preds = %372
  %376 = load i32, ptr %70, align 4, !tbaa !9
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %390

378:                                              ; preds = %375, %372
  %379 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 1, ptr %379, align 4, !tbaa !9
  %380 = load i32, ptr %43, align 4, !tbaa !9
  %381 = add nsw i32 %380, 1
  store i32 %381, ptr %47, align 4, !tbaa !9
  %382 = load ptr, ptr %26, align 8, !tbaa !5
  %383 = load i32, ptr %47, align 4, !tbaa !9
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds %struct.complex, ptr %382, i64 %384
  %386 = getelementptr inbounds %struct.complex, ptr %385, i32 0, i32 0
  %387 = load float, ptr %386, align 4, !tbaa !13
  %388 = load ptr, ptr %34, align 8, !tbaa !5
  %389 = getelementptr inbounds float, ptr %388, i64 1
  store float %387, ptr %389, align 4, !tbaa !11
  br label %431

390:                                              ; preds = %375
  %391 = load i32, ptr %73, align 4, !tbaa !9
  %392 = icmp ne i32 %391, 0
  br i1 %392, label %393, label %430

393:                                              ; preds = %390
  %394 = load i32, ptr %43, align 4, !tbaa !9
  %395 = add nsw i32 %394, 1
  store i32 %395, ptr %47, align 4, !tbaa !9
  %396 = load i32, ptr %43, align 4, !tbaa !9
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr %48, align 4, !tbaa !9
  %398 = load ptr, ptr %28, align 8, !tbaa !5
  %399 = load float, ptr %398, align 4, !tbaa !11
  %400 = load ptr, ptr %26, align 8, !tbaa !5
  %401 = load i32, ptr %47, align 4, !tbaa !9
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds %struct.complex, ptr %400, i64 %402
  %404 = getelementptr inbounds %struct.complex, ptr %403, i32 0, i32 0
  %405 = load float, ptr %404, align 4, !tbaa !13
  %406 = fcmp olt float %399, %405
  br i1 %406, label %407, label %429

407:                                              ; preds = %393
  %408 = load ptr, ptr %29, align 8, !tbaa !5
  %409 = load float, ptr %408, align 4, !tbaa !11
  %410 = load ptr, ptr %26, align 8, !tbaa !5
  %411 = load i32, ptr %48, align 4, !tbaa !9
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds %struct.complex, ptr %410, i64 %412
  %414 = getelementptr inbounds %struct.complex, ptr %413, i32 0, i32 0
  %415 = load float, ptr %414, align 4, !tbaa !13
  %416 = fcmp oge float %409, %415
  br i1 %416, label %417, label %429

417:                                              ; preds = %407
  %418 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 1, ptr %418, align 4, !tbaa !9
  %419 = load i32, ptr %43, align 4, !tbaa !9
  %420 = add nsw i32 %419, 1
  store i32 %420, ptr %47, align 4, !tbaa !9
  %421 = load ptr, ptr %26, align 8, !tbaa !5
  %422 = load i32, ptr %47, align 4, !tbaa !9
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds %struct.complex, ptr %421, i64 %423
  %425 = getelementptr inbounds %struct.complex, ptr %424, i32 0, i32 0
  %426 = load float, ptr %425, align 4, !tbaa !13
  %427 = load ptr, ptr %34, align 8, !tbaa !5
  %428 = getelementptr inbounds float, ptr %427, i64 1
  store float %426, ptr %428, align 4, !tbaa !11
  br label %429

429:                                              ; preds = %417, %407, %393
  br label %430

430:                                              ; preds = %429, %390
  br label %431

431:                                              ; preds = %430, %378
  %432 = load i32, ptr %66, align 4, !tbaa !9
  %433 = icmp ne i32 %432, 0
  br i1 %433, label %434, label %447

434:                                              ; preds = %431
  %435 = load i32, ptr %45, align 4, !tbaa !9
  %436 = add nsw i32 %435, 1
  store i32 %436, ptr %47, align 4, !tbaa !9
  %437 = load ptr, ptr %35, align 8, !tbaa !5
  %438 = load i32, ptr %47, align 4, !tbaa !9
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds %struct.complex, ptr %437, i64 %439
  %441 = getelementptr inbounds %struct.complex, ptr %440, i32 0, i32 0
  store float 1.000000e+00, ptr %441, align 4, !tbaa !13
  %442 = load ptr, ptr %35, align 8, !tbaa !5
  %443 = load i32, ptr %47, align 4, !tbaa !9
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds %struct.complex, ptr %442, i64 %444
  %446 = getelementptr inbounds %struct.complex, ptr %445, i32 0, i32 1
  store float 0.000000e+00, ptr %446, align 4, !tbaa !15
  br label %447

447:                                              ; preds = %434, %431
  store i32 1, ptr %92, align 4
  br label %1052

448:                                              ; preds = %368
  %449 = call float @slamch_(ptr noundef @.str.9)
  store float %449, ptr %74, align 4, !tbaa !11
  %450 = call float @slamch_(ptr noundef @.str.10)
  store float %450, ptr %88, align 4, !tbaa !11
  %451 = load float, ptr %74, align 4, !tbaa !11
  %452 = load float, ptr %88, align 4, !tbaa !11
  %453 = fdiv float %451, %452
  store float %453, ptr %85, align 4, !tbaa !11
  %454 = load float, ptr %85, align 4, !tbaa !11
  %455 = fdiv float 1.000000e+00, %454
  store float %455, ptr %76, align 4, !tbaa !11
  %456 = load float, ptr %85, align 4, !tbaa !11
  %457 = fpext float %456 to double
  %458 = call double @sqrt(double noundef %457) #4
  %459 = fptrunc double %458 to float
  store float %459, ptr %55, align 4, !tbaa !11
  %460 = load float, ptr %76, align 4, !tbaa !11
  %461 = fpext float %460 to double
  %462 = call double @sqrt(double noundef %461) #4
  %463 = fptrunc double %462 to float
  store float %463, ptr %49, align 4, !tbaa !11
  %464 = load float, ptr %74, align 4, !tbaa !11
  %465 = fpext float %464 to double
  %466 = call double @sqrt(double noundef %465) #4
  %467 = call double @sqrt(double noundef %466) #4
  %468 = fdiv double 1.000000e+00, %467
  %469 = fptrunc double %468 to float
  store float %469, ptr %50, align 4, !tbaa !11
  %470 = load float, ptr %49, align 4, !tbaa !11
  %471 = load float, ptr %50, align 4, !tbaa !11
  %472 = fcmp ole float %470, %471
  br i1 %472, label %473, label %475

473:                                              ; preds = %448
  %474 = load float, ptr %49, align 4, !tbaa !11
  br label %477

475:                                              ; preds = %448
  %476 = load float, ptr %50, align 4, !tbaa !11
  br label %477

477:                                              ; preds = %475, %473
  %478 = phi float [ %474, %473 ], [ %476, %475 ]
  store float %478, ptr %56, align 4, !tbaa !11
  store i32 0, ptr %71, align 4, !tbaa !9
  %479 = load ptr, ptr %32, align 8, !tbaa !5
  %480 = load float, ptr %479, align 4, !tbaa !11
  store float %480, ptr %75, align 4, !tbaa !11
  %481 = load i32, ptr %73, align 4, !tbaa !9
  %482 = icmp ne i32 %481, 0
  br i1 %482, label %483, label %488

483:                                              ; preds = %477
  %484 = load ptr, ptr %28, align 8, !tbaa !5
  %485 = load float, ptr %484, align 4, !tbaa !11
  store float %485, ptr %89, align 4, !tbaa !11
  %486 = load ptr, ptr %29, align 8, !tbaa !5
  %487 = load float, ptr %486, align 4, !tbaa !11
  store float %487, ptr %90, align 4, !tbaa !11
  br label %488

488:                                              ; preds = %483, %477
  %489 = load ptr, ptr %24, align 8, !tbaa !5
  %490 = load ptr, ptr %25, align 8, !tbaa !5
  %491 = load ptr, ptr %26, align 8, !tbaa !5
  %492 = load i32, ptr %44, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds %struct.complex, ptr %491, i64 %493
  %495 = load ptr, ptr %27, align 8, !tbaa !5
  %496 = load ptr, ptr %39, align 8, !tbaa !5
  %497 = getelementptr inbounds float, ptr %496, i64 1
  %498 = call float @clanhe_(ptr noundef @.str.11, ptr noundef %489, ptr noundef %490, ptr noundef %494, ptr noundef %495, ptr noundef %497)
  store float %498, ptr %53, align 4, !tbaa !11
  %499 = load float, ptr %53, align 4, !tbaa !11
  %500 = fcmp ogt float %499, 0.000000e+00
  br i1 %500, label %501, label %509

501:                                              ; preds = %488
  %502 = load float, ptr %53, align 4, !tbaa !11
  %503 = load float, ptr %55, align 4, !tbaa !11
  %504 = fcmp olt float %502, %503
  br i1 %504, label %505, label %509

505:                                              ; preds = %501
  store i32 1, ptr %71, align 4, !tbaa !9
  %506 = load float, ptr %55, align 4, !tbaa !11
  %507 = load float, ptr %53, align 4, !tbaa !11
  %508 = fdiv float %506, %507
  store float %508, ptr %62, align 4, !tbaa !11
  br label %518

509:                                              ; preds = %501, %488
  %510 = load float, ptr %53, align 4, !tbaa !11
  %511 = load float, ptr %56, align 4, !tbaa !11
  %512 = fcmp ogt float %510, %511
  br i1 %512, label %513, label %517

513:                                              ; preds = %509
  store i32 1, ptr %71, align 4, !tbaa !9
  %514 = load float, ptr %56, align 4, !tbaa !11
  %515 = load float, ptr %53, align 4, !tbaa !11
  %516 = fdiv float %514, %515
  store float %516, ptr %62, align 4, !tbaa !11
  br label %517

517:                                              ; preds = %513, %509
  br label %518

518:                                              ; preds = %517, %505
  %519 = load i32, ptr %71, align 4, !tbaa !9
  %520 = icmp eq i32 %519, 1
  br i1 %520, label %521, label %590

521:                                              ; preds = %518
  %522 = load i32, ptr %65, align 4, !tbaa !9
  %523 = icmp ne i32 %522, 0
  br i1 %523, label %524, label %549

524:                                              ; preds = %521
  %525 = load ptr, ptr %25, align 8, !tbaa !5
  %526 = load i32, ptr %525, align 4, !tbaa !9
  store i32 %526, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %527

527:                                              ; preds = %545, %524
  %528 = load i32, ptr %60, align 4, !tbaa !9
  %529 = load i32, ptr %47, align 4, !tbaa !9
  %530 = icmp sle i32 %528, %529
  br i1 %530, label %531, label %548

531:                                              ; preds = %527
  %532 = load ptr, ptr %25, align 8, !tbaa !5
  %533 = load i32, ptr %532, align 4, !tbaa !9
  %534 = load i32, ptr %60, align 4, !tbaa !9
  %535 = sub nsw i32 %533, %534
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr %48, align 4, !tbaa !9
  %537 = load ptr, ptr %26, align 8, !tbaa !5
  %538 = load i32, ptr %60, align 4, !tbaa !9
  %539 = load i32, ptr %60, align 4, !tbaa !9
  %540 = load i32, ptr %43, align 4, !tbaa !9
  %541 = mul nsw i32 %539, %540
  %542 = add nsw i32 %538, %541
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds %struct.complex, ptr %537, i64 %543
  call void @csscal_(ptr noundef %48, ptr noundef %62, ptr noundef %544, ptr noundef @c__1)
  br label %545

545:                                              ; preds = %531
  %546 = load i32, ptr %60, align 4, !tbaa !9
  %547 = add nsw i32 %546, 1
  store i32 %547, ptr %60, align 4, !tbaa !9
  br label %527, !llvm.loop !16

548:                                              ; preds = %527
  br label %568

549:                                              ; preds = %521
  %550 = load ptr, ptr %25, align 8, !tbaa !5
  %551 = load i32, ptr %550, align 4, !tbaa !9
  store i32 %551, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %552

552:                                              ; preds = %564, %549
  %553 = load i32, ptr %60, align 4, !tbaa !9
  %554 = load i32, ptr %47, align 4, !tbaa !9
  %555 = icmp sle i32 %553, %554
  br i1 %555, label %556, label %567

556:                                              ; preds = %552
  %557 = load ptr, ptr %26, align 8, !tbaa !5
  %558 = load i32, ptr %60, align 4, !tbaa !9
  %559 = load i32, ptr %43, align 4, !tbaa !9
  %560 = mul nsw i32 %558, %559
  %561 = add nsw i32 %560, 1
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds %struct.complex, ptr %557, i64 %562
  call void @csscal_(ptr noundef %60, ptr noundef %62, ptr noundef %563, ptr noundef @c__1)
  br label %564

564:                                              ; preds = %556
  %565 = load i32, ptr %60, align 4, !tbaa !9
  %566 = add nsw i32 %565, 1
  store i32 %566, ptr %60, align 4, !tbaa !9
  br label %552, !llvm.loop !18

567:                                              ; preds = %552
  br label %568

568:                                              ; preds = %567, %548
  %569 = load ptr, ptr %32, align 8, !tbaa !5
  %570 = load float, ptr %569, align 4, !tbaa !11
  %571 = fcmp ogt float %570, 0.000000e+00
  br i1 %571, label %572, label %577

572:                                              ; preds = %568
  %573 = load ptr, ptr %32, align 8, !tbaa !5
  %574 = load float, ptr %573, align 4, !tbaa !11
  %575 = load float, ptr %62, align 4, !tbaa !11
  %576 = fmul float %574, %575
  store float %576, ptr %75, align 4, !tbaa !11
  br label %577

577:                                              ; preds = %572, %568
  %578 = load i32, ptr %73, align 4, !tbaa !9
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %589

580:                                              ; preds = %577
  %581 = load ptr, ptr %28, align 8, !tbaa !5
  %582 = load float, ptr %581, align 4, !tbaa !11
  %583 = load float, ptr %62, align 4, !tbaa !11
  %584 = fmul float %582, %583
  store float %584, ptr %89, align 4, !tbaa !11
  %585 = load ptr, ptr %29, align 8, !tbaa !5
  %586 = load float, ptr %585, align 4, !tbaa !11
  %587 = load float, ptr %62, align 4, !tbaa !11
  %588 = fmul float %586, %587
  store float %588, ptr %90, align 4, !tbaa !11
  br label %589

589:                                              ; preds = %580, %577
  br label %590

590:                                              ; preds = %589, %518
  store i32 1, ptr %51, align 4, !tbaa !9
  %591 = load i32, ptr %51, align 4, !tbaa !9
  %592 = load ptr, ptr %25, align 8, !tbaa !5
  %593 = load i32, ptr %592, align 4, !tbaa !9
  %594 = add nsw i32 %591, %593
  store i32 %594, ptr %52, align 4, !tbaa !9
  %595 = load i32, ptr %52, align 4, !tbaa !9
  %596 = load ptr, ptr %25, align 8, !tbaa !5
  %597 = load i32, ptr %596, align 4, !tbaa !9
  %598 = add nsw i32 %595, %597
  store i32 %598, ptr %80, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  %599 = load i32, ptr %79, align 4, !tbaa !9
  %600 = load ptr, ptr %25, align 8, !tbaa !5
  %601 = load i32, ptr %600, align 4, !tbaa !9
  %602 = add nsw i32 %599, %601
  store i32 %602, ptr %81, align 4, !tbaa !9
  %603 = load ptr, ptr %38, align 8, !tbaa !5
  %604 = load i32, ptr %603, align 4, !tbaa !9
  %605 = load i32, ptr %81, align 4, !tbaa !9
  %606 = sub nsw i32 %604, %605
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr %84, align 4, !tbaa !9
  %608 = load ptr, ptr %24, align 8, !tbaa !5
  %609 = load ptr, ptr %25, align 8, !tbaa !5
  %610 = load ptr, ptr %26, align 8, !tbaa !5
  %611 = load i32, ptr %44, align 4, !tbaa !9
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds %struct.complex, ptr %610, i64 %612
  %614 = load ptr, ptr %27, align 8, !tbaa !5
  %615 = load ptr, ptr %39, align 8, !tbaa !5
  %616 = load i32, ptr %51, align 4, !tbaa !9
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds float, ptr %615, i64 %617
  %619 = load ptr, ptr %39, align 8, !tbaa !5
  %620 = load i32, ptr %52, align 4, !tbaa !9
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds float, ptr %619, i64 %621
  %623 = load ptr, ptr %37, align 8, !tbaa !5
  %624 = load i32, ptr %79, align 4, !tbaa !9
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds %struct.complex, ptr %623, i64 %625
  %627 = load ptr, ptr %37, align 8, !tbaa !5
  %628 = load i32, ptr %81, align 4, !tbaa !9
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds %struct.complex, ptr %627, i64 %629
  call void @chetrd_(ptr noundef %608, ptr noundef %609, ptr noundef %613, ptr noundef %614, ptr noundef %618, ptr noundef %622, ptr noundef %626, ptr noundef %630, ptr noundef %84, ptr noundef %63)
  store i32 0, ptr %57, align 4, !tbaa !9
  %631 = load i32, ptr %70, align 4, !tbaa !9
  %632 = icmp ne i32 %631, 0
  br i1 %632, label %633, label %645

633:                                              ; preds = %590
  %634 = load ptr, ptr %30, align 8, !tbaa !5
  %635 = load i32, ptr %634, align 4, !tbaa !9
  %636 = icmp eq i32 %635, 1
  br i1 %636, label %637, label %644

637:                                              ; preds = %633
  %638 = load ptr, ptr %31, align 8, !tbaa !5
  %639 = load i32, ptr %638, align 4, !tbaa !9
  %640 = load ptr, ptr %25, align 8, !tbaa !5
  %641 = load i32, ptr %640, align 4, !tbaa !9
  %642 = icmp eq i32 %639, %641
  br i1 %642, label %643, label %644

643:                                              ; preds = %637
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %644

644:                                              ; preds = %643, %637, %633
  br label %645

645:                                              ; preds = %644, %590
  %646 = load i32, ptr %69, align 4, !tbaa !9
  %647 = icmp ne i32 %646, 0
  br i1 %647, label %651, label %648

648:                                              ; preds = %645
  %649 = load i32, ptr %57, align 4, !tbaa !9
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %777

651:                                              ; preds = %648, %645
  %652 = load ptr, ptr %32, align 8, !tbaa !5
  %653 = load float, ptr %652, align 4, !tbaa !11
  %654 = fcmp ole float %653, 0.000000e+00
  br i1 %654, label %655, label %777

655:                                              ; preds = %651
  %656 = load ptr, ptr %25, align 8, !tbaa !5
  %657 = load ptr, ptr %39, align 8, !tbaa !5
  %658 = load i32, ptr %51, align 4, !tbaa !9
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds float, ptr %657, i64 %659
  %661 = load ptr, ptr %34, align 8, !tbaa !5
  %662 = getelementptr inbounds float, ptr %661, i64 1
  call void @scopy_(ptr noundef %656, ptr noundef %660, ptr noundef @c__1, ptr noundef %662, ptr noundef @c__1)
  %663 = load i32, ptr %80, align 4, !tbaa !9
  %664 = load ptr, ptr %25, align 8, !tbaa !5
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = shl i32 %665, 1
  %667 = add nsw i32 %663, %666
  store i32 %667, ptr %61, align 4, !tbaa !9
  %668 = load i32, ptr %66, align 4, !tbaa !9
  %669 = icmp ne i32 %668, 0
  br i1 %669, label %690, label %670

670:                                              ; preds = %655
  %671 = load ptr, ptr %25, align 8, !tbaa !5
  %672 = load i32, ptr %671, align 4, !tbaa !9
  %673 = sub nsw i32 %672, 1
  store i32 %673, ptr %47, align 4, !tbaa !9
  %674 = load ptr, ptr %39, align 8, !tbaa !5
  %675 = load i32, ptr %52, align 4, !tbaa !9
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds float, ptr %674, i64 %676
  %678 = load ptr, ptr %39, align 8, !tbaa !5
  %679 = load i32, ptr %61, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds float, ptr %678, i64 %680
  call void @scopy_(ptr noundef %47, ptr noundef %677, ptr noundef @c__1, ptr noundef %681, ptr noundef @c__1)
  %682 = load ptr, ptr %25, align 8, !tbaa !5
  %683 = load ptr, ptr %34, align 8, !tbaa !5
  %684 = getelementptr inbounds float, ptr %683, i64 1
  %685 = load ptr, ptr %39, align 8, !tbaa !5
  %686 = load i32, ptr %61, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %685, i64 %687
  %689 = load ptr, ptr %42, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %682, ptr noundef %684, ptr noundef %688, ptr noundef %689)
  br label %767

690:                                              ; preds = %655
  %691 = load ptr, ptr %25, align 8, !tbaa !5
  %692 = load ptr, ptr %25, align 8, !tbaa !5
  %693 = load ptr, ptr %26, align 8, !tbaa !5
  %694 = load i32, ptr %44, align 4, !tbaa !9
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds %struct.complex, ptr %693, i64 %695
  %697 = load ptr, ptr %27, align 8, !tbaa !5
  %698 = load ptr, ptr %35, align 8, !tbaa !5
  %699 = load i32, ptr %46, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds %struct.complex, ptr %698, i64 %700
  %702 = load ptr, ptr %36, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.2, ptr noundef %691, ptr noundef %692, ptr noundef %696, ptr noundef %697, ptr noundef %701, ptr noundef %702)
  %703 = load ptr, ptr %24, align 8, !tbaa !5
  %704 = load ptr, ptr %25, align 8, !tbaa !5
  %705 = load ptr, ptr %35, align 8, !tbaa !5
  %706 = load i32, ptr %46, align 4, !tbaa !9
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds %struct.complex, ptr %705, i64 %707
  %709 = load ptr, ptr %36, align 8, !tbaa !5
  %710 = load ptr, ptr %37, align 8, !tbaa !5
  %711 = load i32, ptr %79, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds %struct.complex, ptr %710, i64 %712
  %714 = load ptr, ptr %37, align 8, !tbaa !5
  %715 = load i32, ptr %81, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds %struct.complex, ptr %714, i64 %716
  call void @cungtr_(ptr noundef %703, ptr noundef %704, ptr noundef %708, ptr noundef %709, ptr noundef %713, ptr noundef %717, ptr noundef %84, ptr noundef %63)
  %718 = load ptr, ptr %25, align 8, !tbaa !5
  %719 = load i32, ptr %718, align 4, !tbaa !9
  %720 = sub nsw i32 %719, 1
  store i32 %720, ptr %47, align 4, !tbaa !9
  %721 = load ptr, ptr %39, align 8, !tbaa !5
  %722 = load i32, ptr %52, align 4, !tbaa !9
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds float, ptr %721, i64 %723
  %725 = load ptr, ptr %39, align 8, !tbaa !5
  %726 = load i32, ptr %61, align 4, !tbaa !9
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds float, ptr %725, i64 %727
  call void @scopy_(ptr noundef %47, ptr noundef %724, ptr noundef @c__1, ptr noundef %728, ptr noundef @c__1)
  %729 = load ptr, ptr %22, align 8, !tbaa !5
  %730 = load ptr, ptr %25, align 8, !tbaa !5
  %731 = load ptr, ptr %34, align 8, !tbaa !5
  %732 = getelementptr inbounds float, ptr %731, i64 1
  %733 = load ptr, ptr %39, align 8, !tbaa !5
  %734 = load i32, ptr %61, align 4, !tbaa !9
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds float, ptr %733, i64 %735
  %737 = load ptr, ptr %35, align 8, !tbaa !5
  %738 = load i32, ptr %46, align 4, !tbaa !9
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds %struct.complex, ptr %737, i64 %739
  %741 = load ptr, ptr %36, align 8, !tbaa !5
  %742 = load ptr, ptr %39, align 8, !tbaa !5
  %743 = load i32, ptr %80, align 4, !tbaa !9
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds float, ptr %742, i64 %744
  %746 = load ptr, ptr %42, align 8, !tbaa !5
  call void @csteqr_(ptr noundef %729, ptr noundef %730, ptr noundef %732, ptr noundef %736, ptr noundef %740, ptr noundef %741, ptr noundef %745, ptr noundef %746)
  %747 = load ptr, ptr %42, align 8, !tbaa !5
  %748 = load i32, ptr %747, align 4, !tbaa !9
  %749 = icmp eq i32 %748, 0
  br i1 %749, label %750, label %766

750:                                              ; preds = %690
  %751 = load ptr, ptr %25, align 8, !tbaa !5
  %752 = load i32, ptr %751, align 4, !tbaa !9
  store i32 %752, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %753

753:                                              ; preds = %762, %750
  %754 = load i32, ptr %59, align 4, !tbaa !9
  %755 = load i32, ptr %47, align 4, !tbaa !9
  %756 = icmp sle i32 %754, %755
  br i1 %756, label %757, label %765

757:                                              ; preds = %753
  %758 = load ptr, ptr %41, align 8, !tbaa !5
  %759 = load i32, ptr %59, align 4, !tbaa !9
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds i32, ptr %758, i64 %760
  store i32 0, ptr %761, align 4, !tbaa !9
  br label %762

762:                                              ; preds = %757
  %763 = load i32, ptr %59, align 4, !tbaa !9
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr %59, align 4, !tbaa !9
  br label %753, !llvm.loop !19

765:                                              ; preds = %753
  br label %766

766:                                              ; preds = %765, %690
  br label %767

767:                                              ; preds = %766, %670
  %768 = load ptr, ptr %42, align 8, !tbaa !5
  %769 = load i32, ptr %768, align 4, !tbaa !9
  %770 = icmp eq i32 %769, 0
  br i1 %770, label %771, label %775

771:                                              ; preds = %767
  %772 = load ptr, ptr %25, align 8, !tbaa !5
  %773 = load i32, ptr %772, align 4, !tbaa !9
  %774 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 %773, ptr %774, align 4, !tbaa !9
  br label %887

775:                                              ; preds = %767
  %776 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %776, align 4, !tbaa !9
  br label %777

777:                                              ; preds = %775, %651, %648
  %778 = load i32, ptr %66, align 4, !tbaa !9
  %779 = icmp ne i32 %778, 0
  br i1 %779, label %780, label %782

780:                                              ; preds = %777
  %781 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  store i8 66, ptr %781, align 1, !tbaa !20
  br label %784

782:                                              ; preds = %777
  %783 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  store i8 69, ptr %783, align 1, !tbaa !20
  br label %784

784:                                              ; preds = %782, %780
  store i32 1, ptr %72, align 4, !tbaa !9
  %785 = load i32, ptr %72, align 4, !tbaa !9
  %786 = load ptr, ptr %25, align 8, !tbaa !5
  %787 = load i32, ptr %786, align 4, !tbaa !9
  %788 = add nsw i32 %785, %787
  store i32 %788, ptr %78, align 4, !tbaa !9
  %789 = load i32, ptr %78, align 4, !tbaa !9
  %790 = load ptr, ptr %25, align 8, !tbaa !5
  %791 = load i32, ptr %790, align 4, !tbaa !9
  %792 = add nsw i32 %789, %791
  store i32 %792, ptr %77, align 4, !tbaa !9
  %793 = load ptr, ptr %23, align 8, !tbaa !5
  %794 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  %795 = load ptr, ptr %25, align 8, !tbaa !5
  %796 = load ptr, ptr %30, align 8, !tbaa !5
  %797 = load ptr, ptr %31, align 8, !tbaa !5
  %798 = load ptr, ptr %39, align 8, !tbaa !5
  %799 = load i32, ptr %51, align 4, !tbaa !9
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds float, ptr %798, i64 %800
  %802 = load ptr, ptr %39, align 8, !tbaa !5
  %803 = load i32, ptr %52, align 4, !tbaa !9
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds float, ptr %802, i64 %804
  %806 = load ptr, ptr %33, align 8, !tbaa !5
  %807 = load ptr, ptr %34, align 8, !tbaa !5
  %808 = getelementptr inbounds float, ptr %807, i64 1
  %809 = load ptr, ptr %40, align 8, !tbaa !5
  %810 = load i32, ptr %72, align 4, !tbaa !9
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds i32, ptr %809, i64 %811
  %813 = load ptr, ptr %40, align 8, !tbaa !5
  %814 = load i32, ptr %78, align 4, !tbaa !9
  %815 = sext i32 %814 to i64
  %816 = getelementptr inbounds i32, ptr %813, i64 %815
  %817 = load ptr, ptr %39, align 8, !tbaa !5
  %818 = load i32, ptr %80, align 4, !tbaa !9
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds float, ptr %817, i64 %819
  %821 = load ptr, ptr %40, align 8, !tbaa !5
  %822 = load i32, ptr %77, align 4, !tbaa !9
  %823 = sext i32 %822 to i64
  %824 = getelementptr inbounds i32, ptr %821, i64 %823
  %825 = load ptr, ptr %42, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %793, ptr noundef %794, ptr noundef %795, ptr noundef %89, ptr noundef %90, ptr noundef %796, ptr noundef %797, ptr noundef %75, ptr noundef %801, ptr noundef %805, ptr noundef %806, ptr noundef %83, ptr noundef %808, ptr noundef %812, ptr noundef %816, ptr noundef %820, ptr noundef %824, ptr noundef %825)
  %826 = load i32, ptr %66, align 4, !tbaa !9
  %827 = icmp ne i32 %826, 0
  br i1 %827, label %828, label %886

828:                                              ; preds = %784
  %829 = load ptr, ptr %25, align 8, !tbaa !5
  %830 = load ptr, ptr %39, align 8, !tbaa !5
  %831 = load i32, ptr %51, align 4, !tbaa !9
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds float, ptr %830, i64 %832
  %834 = load ptr, ptr %39, align 8, !tbaa !5
  %835 = load i32, ptr %52, align 4, !tbaa !9
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds float, ptr %834, i64 %836
  %838 = load ptr, ptr %33, align 8, !tbaa !5
  %839 = load ptr, ptr %34, align 8, !tbaa !5
  %840 = getelementptr inbounds float, ptr %839, i64 1
  %841 = load ptr, ptr %40, align 8, !tbaa !5
  %842 = load i32, ptr %72, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds i32, ptr %841, i64 %843
  %845 = load ptr, ptr %40, align 8, !tbaa !5
  %846 = load i32, ptr %78, align 4, !tbaa !9
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds i32, ptr %845, i64 %847
  %849 = load ptr, ptr %35, align 8, !tbaa !5
  %850 = load i32, ptr %46, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds %struct.complex, ptr %849, i64 %851
  %853 = load ptr, ptr %36, align 8, !tbaa !5
  %854 = load ptr, ptr %39, align 8, !tbaa !5
  %855 = load i32, ptr %80, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %854, i64 %856
  %858 = load ptr, ptr %40, align 8, !tbaa !5
  %859 = load i32, ptr %77, align 4, !tbaa !9
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds i32, ptr %858, i64 %860
  %862 = load ptr, ptr %41, align 8, !tbaa !5
  %863 = getelementptr inbounds i32, ptr %862, i64 1
  %864 = load ptr, ptr %42, align 8, !tbaa !5
  call void @cstein_(ptr noundef %829, ptr noundef %833, ptr noundef %837, ptr noundef %838, ptr noundef %840, ptr noundef %844, ptr noundef %848, ptr noundef %852, ptr noundef %853, ptr noundef %857, ptr noundef %861, ptr noundef %863, ptr noundef %864)
  %865 = load ptr, ptr %24, align 8, !tbaa !5
  %866 = load ptr, ptr %25, align 8, !tbaa !5
  %867 = load ptr, ptr %33, align 8, !tbaa !5
  %868 = load ptr, ptr %26, align 8, !tbaa !5
  %869 = load i32, ptr %44, align 4, !tbaa !9
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds %struct.complex, ptr %868, i64 %870
  %872 = load ptr, ptr %27, align 8, !tbaa !5
  %873 = load ptr, ptr %37, align 8, !tbaa !5
  %874 = load i32, ptr %79, align 4, !tbaa !9
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds %struct.complex, ptr %873, i64 %875
  %877 = load ptr, ptr %35, align 8, !tbaa !5
  %878 = load i32, ptr %46, align 4, !tbaa !9
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds %struct.complex, ptr %877, i64 %879
  %881 = load ptr, ptr %36, align 8, !tbaa !5
  %882 = load ptr, ptr %37, align 8, !tbaa !5
  %883 = load i32, ptr %81, align 4, !tbaa !9
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds %struct.complex, ptr %882, i64 %884
  call void @cunmtr_(ptr noundef @.str, ptr noundef %865, ptr noundef @.str.4, ptr noundef %866, ptr noundef %867, ptr noundef %871, ptr noundef %872, ptr noundef %876, ptr noundef %880, ptr noundef %881, ptr noundef %885, ptr noundef %84, ptr noundef %63)
  br label %886

886:                                              ; preds = %828, %784
  br label %887

887:                                              ; preds = %886, %771
  %888 = load i32, ptr %71, align 4, !tbaa !9
  %889 = icmp eq i32 %888, 1
  br i1 %889, label %890, label %906

890:                                              ; preds = %887
  %891 = load ptr, ptr %42, align 8, !tbaa !5
  %892 = load i32, ptr %891, align 4, !tbaa !9
  %893 = icmp eq i32 %892, 0
  br i1 %893, label %894, label %897

894:                                              ; preds = %890
  %895 = load ptr, ptr %33, align 8, !tbaa !5
  %896 = load i32, ptr %895, align 4, !tbaa !9
  store i32 %896, ptr %54, align 4, !tbaa !9
  br label %901

897:                                              ; preds = %890
  %898 = load ptr, ptr %42, align 8, !tbaa !5
  %899 = load i32, ptr %898, align 4, !tbaa !9
  %900 = sub nsw i32 %899, 1
  store i32 %900, ptr %54, align 4, !tbaa !9
  br label %901

901:                                              ; preds = %897, %894
  %902 = load float, ptr %62, align 4, !tbaa !11
  %903 = fdiv float 1.000000e+00, %902
  store float %903, ptr %49, align 4, !tbaa !11
  %904 = load ptr, ptr %34, align 8, !tbaa !5
  %905 = getelementptr inbounds float, ptr %904, i64 1
  call void @sscal_(ptr noundef %54, ptr noundef %49, ptr noundef %905, ptr noundef @c__1)
  br label %906

906:                                              ; preds = %901, %887
  %907 = load i32, ptr %66, align 4, !tbaa !9
  %908 = icmp ne i32 %907, 0
  br i1 %908, label %909, label %1043

909:                                              ; preds = %906
  %910 = load ptr, ptr %33, align 8, !tbaa !5
  %911 = load i32, ptr %910, align 4, !tbaa !9
  %912 = sub nsw i32 %911, 1
  store i32 %912, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %913

913:                                              ; preds = %1039, %909
  %914 = load i32, ptr %60, align 4, !tbaa !9
  %915 = load i32, ptr %47, align 4, !tbaa !9
  %916 = icmp sle i32 %914, %915
  br i1 %916, label %917, label %1042

917:                                              ; preds = %913
  store i32 0, ptr %59, align 4, !tbaa !9
  %918 = load ptr, ptr %34, align 8, !tbaa !5
  %919 = load i32, ptr %60, align 4, !tbaa !9
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds float, ptr %918, i64 %920
  %922 = load float, ptr %921, align 4, !tbaa !11
  store float %922, ptr %91, align 4, !tbaa !11
  %923 = load ptr, ptr %33, align 8, !tbaa !5
  %924 = load i32, ptr %923, align 4, !tbaa !9
  store i32 %924, ptr %48, align 4, !tbaa !9
  %925 = load i32, ptr %60, align 4, !tbaa !9
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr %68, align 4, !tbaa !9
  br label %927

927:                                              ; preds = %947, %917
  %928 = load i32, ptr %68, align 4, !tbaa !9
  %929 = load i32, ptr %48, align 4, !tbaa !9
  %930 = icmp sle i32 %928, %929
  br i1 %930, label %931, label %950

931:                                              ; preds = %927
  %932 = load ptr, ptr %34, align 8, !tbaa !5
  %933 = load i32, ptr %68, align 4, !tbaa !9
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds float, ptr %932, i64 %934
  %936 = load float, ptr %935, align 4, !tbaa !11
  %937 = load float, ptr %91, align 4, !tbaa !11
  %938 = fcmp olt float %936, %937
  br i1 %938, label %939, label %946

939:                                              ; preds = %931
  %940 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %940, ptr %59, align 4, !tbaa !9
  %941 = load ptr, ptr %34, align 8, !tbaa !5
  %942 = load i32, ptr %68, align 4, !tbaa !9
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds float, ptr %941, i64 %943
  %945 = load float, ptr %944, align 4, !tbaa !11
  store float %945, ptr %91, align 4, !tbaa !11
  br label %946

946:                                              ; preds = %939, %931
  br label %947

947:                                              ; preds = %946
  %948 = load i32, ptr %68, align 4, !tbaa !9
  %949 = add nsw i32 %948, 1
  store i32 %949, ptr %68, align 4, !tbaa !9
  br label %927, !llvm.loop !21

950:                                              ; preds = %927
  %951 = load i32, ptr %59, align 4, !tbaa !9
  %952 = icmp ne i32 %951, 0
  br i1 %952, label %953, label %1038

953:                                              ; preds = %950
  %954 = load ptr, ptr %40, align 8, !tbaa !5
  %955 = load i32, ptr %72, align 4, !tbaa !9
  %956 = load i32, ptr %59, align 4, !tbaa !9
  %957 = add nsw i32 %955, %956
  %958 = sub nsw i32 %957, 1
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds i32, ptr %954, i64 %959
  %961 = load i32, ptr %960, align 4, !tbaa !9
  store i32 %961, ptr %58, align 4, !tbaa !9
  %962 = load ptr, ptr %34, align 8, !tbaa !5
  %963 = load i32, ptr %60, align 4, !tbaa !9
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds float, ptr %962, i64 %964
  %966 = load float, ptr %965, align 4, !tbaa !11
  %967 = load ptr, ptr %34, align 8, !tbaa !5
  %968 = load i32, ptr %59, align 4, !tbaa !9
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds float, ptr %967, i64 %969
  store float %966, ptr %970, align 4, !tbaa !11
  %971 = load ptr, ptr %40, align 8, !tbaa !5
  %972 = load i32, ptr %72, align 4, !tbaa !9
  %973 = load i32, ptr %60, align 4, !tbaa !9
  %974 = add nsw i32 %972, %973
  %975 = sub nsw i32 %974, 1
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds i32, ptr %971, i64 %976
  %978 = load i32, ptr %977, align 4, !tbaa !9
  %979 = load ptr, ptr %40, align 8, !tbaa !5
  %980 = load i32, ptr %72, align 4, !tbaa !9
  %981 = load i32, ptr %59, align 4, !tbaa !9
  %982 = add nsw i32 %980, %981
  %983 = sub nsw i32 %982, 1
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds i32, ptr %979, i64 %984
  store i32 %978, ptr %985, align 4, !tbaa !9
  %986 = load float, ptr %91, align 4, !tbaa !11
  %987 = load ptr, ptr %34, align 8, !tbaa !5
  %988 = load i32, ptr %60, align 4, !tbaa !9
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds float, ptr %987, i64 %989
  store float %986, ptr %990, align 4, !tbaa !11
  %991 = load i32, ptr %58, align 4, !tbaa !9
  %992 = load ptr, ptr %40, align 8, !tbaa !5
  %993 = load i32, ptr %72, align 4, !tbaa !9
  %994 = load i32, ptr %60, align 4, !tbaa !9
  %995 = add nsw i32 %993, %994
  %996 = sub nsw i32 %995, 1
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds i32, ptr %992, i64 %997
  store i32 %991, ptr %998, align 4, !tbaa !9
  %999 = load ptr, ptr %25, align 8, !tbaa !5
  %1000 = load ptr, ptr %35, align 8, !tbaa !5
  %1001 = load i32, ptr %59, align 4, !tbaa !9
  %1002 = load i32, ptr %45, align 4, !tbaa !9
  %1003 = mul nsw i32 %1001, %1002
  %1004 = add nsw i32 %1003, 1
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds %struct.complex, ptr %1000, i64 %1005
  %1007 = load ptr, ptr %35, align 8, !tbaa !5
  %1008 = load i32, ptr %60, align 4, !tbaa !9
  %1009 = load i32, ptr %45, align 4, !tbaa !9
  %1010 = mul nsw i32 %1008, %1009
  %1011 = add nsw i32 %1010, 1
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds %struct.complex, ptr %1007, i64 %1012
  call void @cswap_(ptr noundef %999, ptr noundef %1006, ptr noundef @c__1, ptr noundef %1013, ptr noundef @c__1)
  %1014 = load ptr, ptr %42, align 8, !tbaa !5
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1037

1017:                                             ; preds = %953
  %1018 = load ptr, ptr %41, align 8, !tbaa !5
  %1019 = load i32, ptr %59, align 4, !tbaa !9
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds i32, ptr %1018, i64 %1020
  %1022 = load i32, ptr %1021, align 4, !tbaa !9
  store i32 %1022, ptr %58, align 4, !tbaa !9
  %1023 = load ptr, ptr %41, align 8, !tbaa !5
  %1024 = load i32, ptr %60, align 4, !tbaa !9
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds i32, ptr %1023, i64 %1025
  %1027 = load i32, ptr %1026, align 4, !tbaa !9
  %1028 = load ptr, ptr %41, align 8, !tbaa !5
  %1029 = load i32, ptr %59, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds i32, ptr %1028, i64 %1030
  store i32 %1027, ptr %1031, align 4, !tbaa !9
  %1032 = load i32, ptr %58, align 4, !tbaa !9
  %1033 = load ptr, ptr %41, align 8, !tbaa !5
  %1034 = load i32, ptr %60, align 4, !tbaa !9
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds i32, ptr %1033, i64 %1035
  store i32 %1032, ptr %1036, align 4, !tbaa !9
  br label %1037

1037:                                             ; preds = %1017, %953
  br label %1038

1038:                                             ; preds = %1037, %950
  br label %1039

1039:                                             ; preds = %1038
  %1040 = load i32, ptr %60, align 4, !tbaa !9
  %1041 = add nsw i32 %1040, 1
  store i32 %1041, ptr %60, align 4, !tbaa !9
  br label %913, !llvm.loop !22

1042:                                             ; preds = %913
  br label %1043

1043:                                             ; preds = %1042, %906
  %1044 = load i32, ptr %86, align 4, !tbaa !9
  %1045 = sitofp i32 %1044 to float
  %1046 = load ptr, ptr %37, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.complex, ptr %1046, i64 1
  %1048 = getelementptr inbounds %struct.complex, ptr %1047, i32 0, i32 0
  store float %1045, ptr %1048, align 4, !tbaa !13
  %1049 = load ptr, ptr %37, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.complex, ptr %1049, i64 1
  %1051 = getelementptr inbounds %struct.complex, ptr %1050, i32 0, i32 1
  store float 0.000000e+00, ptr %1051, align 4, !tbaa !15
  store i32 1, ptr %92, align 4
  br label %1052

1052:                                             ; preds = %1043, %447, %367, %360, %352
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare void @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 = !{!"int", !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 i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.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 void @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 i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca float, align 4
  %28 = alloca i32, align 4
  %29 = alloca [1 x i8], align 1
  %30 = alloca float, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  %35 = load i32, ptr %5, align 4, !tbaa !5
  %36 = add i32 %35, 1
  %narrow = xor i32 %35, -1
  %37 = sext i32 %narrow to i64
  %38 = getelementptr inbounds %struct.complex, ptr %4, i64 %37
  %39 = getelementptr inbounds i8, ptr %12, i64 -4
  %40 = load i32, ptr %14, align 4, !tbaa !5
  %41 = add nsw i32 %40, 1
  %narrow403 = xor i32 %40, -1
  %42 = sext i32 %narrow403 to i64
  %43 = getelementptr inbounds %struct.complex, ptr %13, i64 %42
  %44 = getelementptr inbounds i8, ptr %15, i64 -8
  %45 = getelementptr inbounds i8, ptr %17, i64 -4
  %46 = getelementptr inbounds i8, ptr %18, i64 -4
  %47 = getelementptr inbounds i8, ptr %19, i64 -4
  %48 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %49 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %50 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #6
  %51 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %52 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %53 = load i32, ptr %16, align 4, !tbaa !5
  %54 = icmp eq i32 %53, -1
  store i32 0, ptr %20, align 4, !tbaa !5
  %.not = icmp ne i32 %49, 0
  br i1 %.not, label %57, label %55

55:                                               ; preds = %21
  %56 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not381 = icmp eq i32 %56, 0
  br i1 %.not381, label %.thread416.sink.split, label %57

57:                                               ; preds = %55, %21
  %58 = icmp ne i32 %50, 0
  %59 = icmp ne i32 %51, 0
  %or.cond = select i1 %58, i1 true, i1 %59
  %60 = icmp ne i32 %52, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %60
  br i1 %or.cond3, label %61, label %.thread416.sink.split

61:                                               ; preds = %57
  %.not382 = icmp eq i32 %48, 0
  br i1 %.not382, label %62, label %64

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

64:                                               ; preds = %62, %61
  %65 = load i32, ptr %3, align 4, !tbaa !5
  %66 = icmp slt i32 %65, 0
  br i1 %66, label %.thread416.sink.split, label %67

67:                                               ; preds = %64
  %68 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %65, i32 1)
  %69 = icmp slt i32 %68, %spec.select
  br i1 %69, label %.thread416.sink.split, label %70

70:                                               ; preds = %67
  br i1 %59, label %71, label %76

71:                                               ; preds = %70
  %.not430 = icmp eq i32 %65, 0
  br i1 %.not430, label %85, label %72

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

76:                                               ; preds = %70
  br i1 %60, label %77, label %85

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

81:                                               ; preds = %77
  %82 = load i32, ptr %9, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %65, i32 %78)
  %83 = icmp slt i32 %82, %.
  %84 = icmp ugt i32 %82, %65
  %or.cond429 = or i1 %83, %84
  br i1 %or.cond429, label %.thread416.sink.split, label %85

85:                                               ; preds = %81, %72, %71, %76
  %.pr = load i32, ptr %20, align 4, !tbaa !5
  %86 = icmp eq i32 %.pr, 0
  br i1 %86, label %87, label %.thread416

87:                                               ; preds = %85
  %88 = load i32, ptr %14, align 4, !tbaa !5
  %89 = icmp slt i32 %88, 1
  %90 = icmp ult i32 %88, %65
  %or.cond464 = and i1 %.not, %90
  %or.cond468 = or i1 %89, %or.cond464
  br i1 %or.cond468, label %.thread416.sink.split, label %.thread

.thread:                                          ; preds = %87
  %91 = icmp ult i32 %65, 2
  br i1 %91, label %102, label %92

92:                                               ; preds = %.thread
  %93 = shl nuw i32 %65, 1
  %94 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #6
  %95 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #6
  %96 = tail call i32 @llvm.smax.i32(i32 %94, i32 %95)
  store i32 1, ptr %22, align 4, !tbaa !5
  %97 = add nsw i32 %96, 1
  %98 = load i32, ptr %3, align 4, !tbaa !5
  %99 = mul nsw i32 %97, %98
  store i32 %99, ptr %23, align 4, !tbaa !5
  %100 = tail call i32 @llvm.smax.i32(i32 %99, i32 1)
  %101 = uitofp nneg i32 %100 to float
  br label %102

102:                                              ; preds = %.thread, %92
  %.sink = phi float [ %101, %92 ], [ 1.000000e+00, %.thread ]
  %.0356 = phi i32 [ %93, %92 ], [ 1, %.thread ]
  %.0354 = phi i32 [ %100, %92 ], [ undef, %.thread ]
  store float %.sink, ptr %15, align 4
  %103 = getelementptr inbounds i8, ptr %15, i64 4
  store float 0.000000e+00, ptr %103, align 4
  %104 = load i32, ptr %16, align 4, !tbaa !5
  %105 = icmp sge i32 %104, %.0356
  %or.cond5 = select i1 %105, i1 true, i1 %54
  br i1 %or.cond5, label %.thread411, label %.thread416.sink.split

.thread411:                                       ; preds = %102
  %.pr413.pr = load i32, ptr %20, align 4, !tbaa !5
  %.not386 = icmp eq i32 %.pr413.pr, 0
  br i1 %.not386, label %109, label %.thread416

.thread416.sink.split:                            ; preds = %102, %87, %81, %77, %72, %67, %64, %62, %57, %55
  %.sink465 = phi i32 [ -1, %55 ], [ -2, %57 ], [ -3, %62 ], [ -4, %64 ], [ -6, %67 ], [ -8, %72 ], [ -9, %77 ], [ -10, %81 ], [ -15, %87 ], [ -17, %102 ]
  store i32 %.sink465, ptr %20, align 4, !tbaa !5
  br label %.thread416

.thread416:                                       ; preds = %.thread416.sink.split, %85, %.thread411
  %106 = phi i32 [ %.pr413.pr, %.thread411 ], [ %.pr, %85 ], [ %.sink465, %.thread416.sink.split ]
  %107 = sub nsw i32 0, %106
  store i32 %107, ptr %22, align 4, !tbaa !5
  %108 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %22, i32 noundef 6) #6
  br label %296

109:                                              ; preds = %.thread411
  br i1 %54, label %296, label %110

110:                                              ; preds = %109
  store i32 0, ptr %11, align 4, !tbaa !5
  %111 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %111, label %131 [
    i32 0, label %296
    i32 1, label %112
  ]

112:                                              ; preds = %110
  %or.cond7 = select i1 %58, i1 true, i1 %60
  br i1 %or.cond7, label %113, label %115

113:                                              ; preds = %112
  store i32 1, ptr %11, align 4, !tbaa !5
  %114 = load float, ptr %4, align 4, !tbaa !11
  br label %.sink.split

115:                                              ; preds = %112
  %.not402 = icmp eq i32 %51, 0
  br i1 %.not402, label %127, label %116

116:                                              ; preds = %115
  %117 = load float, ptr %6, align 4, !tbaa !9
  %118 = sext i32 %36 to i64
  %119 = getelementptr inbounds %struct.complex, ptr %38, i64 %118
  %120 = load float, ptr %119, align 4, !tbaa !11
  %121 = fcmp olt float %117, %120
  br i1 %121, label %122, label %127

122:                                              ; preds = %116
  %123 = load float, ptr %7, align 4, !tbaa !9
  %124 = load float, ptr %4, align 4, !tbaa !11
  %125 = fcmp ult float %123, %124
  br i1 %125, label %127, label %126

126:                                              ; preds = %122
  store i32 1, ptr %11, align 4, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %113, %126
  %.sink466 = phi float [ %124, %126 ], [ %114, %113 ]
  store float %.sink466, ptr %12, align 4, !tbaa !9
  br label %127

127:                                              ; preds = %.sink.split, %115, %122, %116
  br i1 %.not, label %128, label %296

128:                                              ; preds = %127
  store float 1.000000e+00, ptr %13, align 4, !tbaa !11
  %129 = sext i32 %41 to i64
  %130 = getelementptr inbounds %struct.complex, ptr %43, i64 %129, i32 1
  store float 0.000000e+00, ptr %130, align 4, !tbaa !13
  br label %296

131:                                              ; preds = %110
  %132 = tail call float @slamch_(ptr noundef nonnull @.str.9) #6
  %133 = tail call float @slamch_(ptr noundef nonnull @.str.10) #6
  %134 = fdiv float %132, %133
  %135 = fdiv float 1.000000e+00, %134
  %sqrtf = tail call float @sqrtf(float noundef %134) #3
  %sqrtf387 = tail call float @sqrtf(float noundef %135) #3
  store float %sqrtf387, ptr %24, align 4, !tbaa !9
  %136 = fpext float %132 to double
  %137 = tail call double @sqrt(double noundef %136) #6
  %138 = tail call double @sqrt(double noundef %137) #6
  %139 = fdiv double 1.000000e+00, %138
  %140 = fptrunc double %139 to float
  %141 = fcmp ole float %sqrtf387, %140
  %142 = select i1 %141, float %sqrtf387, float %140
  %143 = load float, ptr %10, align 4, !tbaa !9
  store float %143, ptr %30, align 4, !tbaa !9
  %.not388 = icmp eq i32 %51, 0
  br i1 %.not388, label %147, label %144

144:                                              ; preds = %131
  %145 = load float, ptr %6, align 4, !tbaa !9
  store float %145, ptr %33, align 4, !tbaa !9
  %146 = load float, ptr %7, align 4, !tbaa !9
  store float %146, ptr %34, align 4, !tbaa !9
  br label %147

147:                                              ; preds = %144, %131
  %148 = tail call float @clanhe_(ptr noundef nonnull @.str.11, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %17) #6
  %149 = fcmp ogt float %148, 0.000000e+00
  %150 = fcmp olt float %148, %sqrtf
  %or.cond405 = select i1 %149, i1 %150, i1 false
  br i1 %or.cond405, label %153, label %151

151:                                              ; preds = %147
  %152 = fcmp ogt float %148, %142
  br i1 %152, label %153, label %182

153:                                              ; preds = %151, %147
  %.pn = phi float [ %sqrtf, %147 ], [ %142, %151 ]
  %storemerge431 = fdiv float %.pn, %148
  store float %storemerge431, ptr %27, align 4, !tbaa !9
  %154 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %154, ptr %22, align 4, !tbaa !5
  br i1 %.not382, label %164, label %155

155:                                              ; preds = %153
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not392435 = icmp slt i32 %154, 1
  br i1 %.not392435, label %.loopexit433, label %.lr.ph

.lr.ph:                                           ; preds = %155, %.lr.ph
  %storemerge391436 = phi i32 [ %162, %.lr.ph ], [ 1, %155 ]
  %156 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %156, %storemerge391436
  %157 = add i32 %reass.sub, 1
  store i32 %157, ptr %23, align 4, !tbaa !5
  %158 = mul i32 %storemerge391436, %36
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds %struct.complex, ptr %38, i64 %159
  call void @csscal_(ptr noundef nonnull %23, ptr noundef nonnull %27, ptr noundef %160, ptr noundef nonnull @c__1) #6
  %161 = load i32, ptr %26, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr %26, align 4, !tbaa !5
  %163 = load i32, ptr %22, align 4, !tbaa !5
  %.not392.not = icmp slt i32 %161, %163
  br i1 %.not392.not, label %.lr.ph, label %.loopexit433, !llvm.loop !14

164:                                              ; preds = %153
  %invariant.gep = getelementptr i8, ptr %38, i64 8
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not390437 = icmp slt i32 %154, 1
  br i1 %.not390437, label %.loopexit433, label %.lr.ph439

.lr.ph439:                                        ; preds = %164, %.lr.ph439
  %storemerge438 = phi i32 [ %168, %.lr.ph439 ], [ 1, %164 ]
  %165 = mul nsw i32 %storemerge438, %35
  %166 = sext i32 %165 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %166
  call void @csscal_(ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %167 = load i32, ptr %26, align 4, !tbaa !5
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr %26, align 4, !tbaa !5
  %169 = load i32, ptr %22, align 4, !tbaa !5
  %.not390.not = icmp slt i32 %167, %169
  br i1 %.not390.not, label %.lr.ph439, label %.loopexit433, !llvm.loop !16

.loopexit433:                                     ; preds = %.lr.ph, %.lr.ph439, %155, %164
  %170 = load float, ptr %10, align 4, !tbaa !9
  %171 = fcmp ogt float %170, 0.000000e+00
  br i1 %171, label %172, label %175

172:                                              ; preds = %.loopexit433
  %173 = load float, ptr %27, align 4, !tbaa !9
  %174 = fmul float %170, %173
  store float %174, ptr %30, align 4, !tbaa !9
  br label %175

175:                                              ; preds = %172, %.loopexit433
  br i1 %.not388, label %182, label %176

176:                                              ; preds = %175
  %177 = load float, ptr %6, align 4, !tbaa !9
  %178 = load float, ptr %27, align 4, !tbaa !9
  %179 = fmul float %177, %178
  store float %179, ptr %33, align 4, !tbaa !9
  %180 = load float, ptr %7, align 4, !tbaa !9
  %181 = fmul float %178, %180
  store float %181, ptr %34, align 4, !tbaa !9
  br label %182

182:                                              ; preds = %151, %175, %176
  %183 = phi i1 [ true, %175 ], [ true, %176 ], [ false, %151 ]
  %184 = load i32, ptr %3, align 4, !tbaa !5
  %185 = add nsw i32 %184, 1
  %186 = add nsw i32 %185, %184
  %187 = load i32, ptr %16, align 4, !tbaa !5
  %188 = sub i32 %187, %184
  store i32 %188, ptr %32, align 4, !tbaa !5
  %189 = sext i32 %185 to i64
  %190 = getelementptr inbounds float, ptr %45, i64 %189
  %191 = getelementptr inbounds %struct.complex, ptr %44, i64 %189
  call void @chetrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %17, ptr noundef nonnull %190, ptr noundef nonnull %15, ptr noundef nonnull %191, ptr noundef nonnull %32, ptr noundef nonnull %28) #6
  %.not393 = icmp eq i32 %52, 0
  br i1 %.not393, label %199, label %192

192:                                              ; preds = %182
  %193 = load i32, ptr %8, align 4, !tbaa !5
  %194 = icmp eq i32 %193, 1
  br i1 %194, label %195, label %199

195:                                              ; preds = %192
  %196 = load i32, ptr %9, align 4, !tbaa !5
  %197 = load i32, ptr %3, align 4, !tbaa !5
  %198 = icmp eq i32 %196, %197
  br label %199

199:                                              ; preds = %195, %192, %182
  %200 = phi i1 [ false, %192 ], [ false, %182 ], [ %198, %195 ]
  %or.cond9 = or i1 %58, %200
  br i1 %or.cond9, label %201, label %228

201:                                              ; preds = %199
  %202 = load float, ptr %10, align 4, !tbaa !9
  %203 = fcmp ugt float %202, 0.000000e+00
  br i1 %203, label %228, label %204

204:                                              ; preds = %201
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %17, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull @c__1) #6
  %205 = load i32, ptr %3, align 4, !tbaa !5
  %206 = shl i32 %205, 1
  %207 = add nsw i32 %206, %186
  br i1 %.not, label %212, label %208

208:                                              ; preds = %204
  %209 = add nsw i32 %205, -1
  store i32 %209, ptr %22, align 4, !tbaa !5
  %210 = sext i32 %207 to i64
  %211 = getelementptr inbounds float, ptr %45, i64 %210
  call void @scopy_(ptr noundef nonnull %22, ptr noundef nonnull %190, ptr noundef nonnull @c__1, ptr noundef nonnull %211, ptr noundef nonnull @c__1) #6
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %211, ptr noundef nonnull %20) #6
  br label %.loopexit432

212:                                              ; preds = %204
  call void @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
  call void @cungtr_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %191, ptr noundef nonnull %32, ptr noundef nonnull %28) #6
  %213 = load i32, ptr %3, align 4, !tbaa !5
  %214 = add nsw i32 %213, -1
  store i32 %214, ptr %22, align 4, !tbaa !5
  %215 = sext i32 %207 to i64
  %216 = getelementptr inbounds float, ptr %45, i64 %215
  call void @scopy_(ptr noundef nonnull %22, ptr noundef nonnull %190, ptr noundef nonnull @c__1, ptr noundef nonnull %216, ptr noundef nonnull @c__1) #6
  %217 = sext i32 %186 to i64
  %218 = getelementptr inbounds float, ptr %45, i64 %217
  call void @csteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %216, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %218, ptr noundef nonnull %20) #6
  %219 = load i32, ptr %20, align 4, !tbaa !5
  %220 = icmp eq i32 %219, 0
  br i1 %220, label %221, label %.thread423

221:                                              ; preds = %212
  %222 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %222, ptr %22, align 4, !tbaa !5
  %.not394440 = icmp slt i32 %222, 1
  br i1 %.not394440, label %.loopexit432, label %.lr.ph442.preheader

.lr.ph442.preheader:                              ; preds = %221
  %223 = zext nneg i32 %222 to i64
  %224 = shl nuw nsw i64 %223, 2
  call void @llvm.memset.p0.i64(ptr align 4 %19, i8 0, i64 %224, i1 false), !tbaa !5
  br label %.loopexit432

.loopexit432:                                     ; preds = %.lr.ph442.preheader, %221, %208
  %.pr422 = load i32, ptr %20, align 4, !tbaa !5
  %225 = icmp eq i32 %.pr422, 0
  br i1 %225, label %226, label %.thread423

226:                                              ; preds = %.loopexit432
  %227 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %227, ptr %11, align 4, !tbaa !5
  br label %239

.thread423:                                       ; preds = %212, %.loopexit432
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %228

228:                                              ; preds = %199, %.thread423, %201
  %.407 = select i1 %.not, i8 66, i8 69
  store i8 %.407, ptr %29, align 1, !tbaa !17
  %229 = load i32, ptr %3, align 4, !tbaa !5
  %230 = add nsw i32 %229, 1
  %231 = add nsw i32 %230, %229
  %232 = sext i32 %230 to i64
  %233 = getelementptr inbounds i32, ptr %46, i64 %232
  %234 = sext i32 %186 to i64
  %235 = getelementptr inbounds float, ptr %45, i64 %234
  %236 = sext i32 %231 to i64
  %237 = getelementptr inbounds i32, ptr %46, i64 %236
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %30, ptr noundef %17, ptr noundef nonnull %190, ptr noundef nonnull %11, ptr noundef nonnull %31, ptr noundef %12, ptr noundef %18, ptr noundef nonnull %233, ptr noundef nonnull %235, ptr noundef nonnull %237, ptr noundef nonnull %20) #6
  br i1 %.not, label %238, label %239

238:                                              ; preds = %228
  call void @cstein_(ptr noundef nonnull %3, ptr noundef %17, ptr noundef nonnull %190, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %18, ptr noundef nonnull %233, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %235, ptr noundef nonnull %237, ptr noundef %19, ptr noundef nonnull %20) #6
  call void @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 nonnull %191, ptr noundef nonnull %32, ptr noundef nonnull %28) #6
  br label %239

239:                                              ; preds = %228, %238, %226
  br i1 %183, label %240, label %250

240:                                              ; preds = %239
  %241 = load i32, ptr %20, align 4, !tbaa !5
  %242 = icmp eq i32 %241, 0
  br i1 %242, label %243, label %245

243:                                              ; preds = %240
  %244 = load i32, ptr %11, align 4, !tbaa !5
  br label %247

245:                                              ; preds = %240
  %246 = add nsw i32 %241, -1
  br label %247

247:                                              ; preds = %245, %243
  %storemerge396 = phi i32 [ %246, %245 ], [ %244, %243 ]
  store i32 %storemerge396, ptr %25, align 4, !tbaa !5
  %248 = load float, ptr %27, align 4, !tbaa !9
  %249 = fdiv float 1.000000e+00, %248
  store float %249, ptr %24, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %24, ptr noundef %12, ptr noundef nonnull @c__1) #6
  br label %250

250:                                              ; preds = %247, %239
  br i1 %.not, label %251, label %.loopexit

251:                                              ; preds = %250
  %252 = load i32, ptr %11, align 4, !tbaa !5
  %253 = add nsw i32 %252, -1
  store i32 %253, ptr %22, align 4, !tbaa !5
  %invariant.gep449 = getelementptr i8, ptr %43, i64 8
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not398453 = icmp slt i32 %252, 2
  br i1 %.not398453, label %.loopexit, label %.lr.ph456

.lr.ph456:                                        ; preds = %251, %._crit_edge.thread
  %storemerge397454 = phi i32 [ %293, %._crit_edge.thread ], [ 1, %251 ]
  %254 = sext i32 %storemerge397454 to i64
  %255 = getelementptr inbounds float, ptr %39, i64 %254
  %256 = load float, ptr %255, align 4, !tbaa !9
  %257 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %257, ptr %23, align 4, !tbaa !5
  %.not399.not443 = icmp slt i32 %storemerge397454, %257
  br i1 %.not399.not443, label %.lr.ph447.preheader, label %._crit_edge.thread

.lr.ph447.preheader:                              ; preds = %.lr.ph456
  %wide.trip.count = sext i32 %257 to i64
  %258 = sub nsw i64 %wide.trip.count, %254
  %xtraiter = and i64 %258, 1
  %259 = add nsw i64 %wide.trip.count, -1
  %260 = icmp eq i64 %259, %254
  br i1 %260, label %._crit_edge.unr-lcssa, label %.lr.ph447.preheader.new

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

.lr.ph447:                                        ; preds = %.lr.ph447, %.lr.ph447.preheader.new
  %indvars.iv = phi i64 [ %254, %.lr.ph447.preheader.new ], [ %indvars.iv.next.1, %.lr.ph447 ]
  %.0446 = phi float [ %256, %.lr.ph447.preheader.new ], [ %.1.1, %.lr.ph447 ]
  %.1359445 = phi i32 [ 0, %.lr.ph447.preheader.new ], [ %.2.1, %.lr.ph447 ]
  %niter = phi i64 [ 0, %.lr.ph447.preheader.new ], [ %niter.next.1, %.lr.ph447 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %261 = getelementptr float, ptr %12, i64 %indvars.iv
  %262 = load float, ptr %261, align 4, !tbaa !9
  %263 = fcmp olt float %262, %.0446
  %264 = trunc nsw i64 %indvars.iv.next to i32
  %.2 = select i1 %263, i32 %264, i32 %.1359445
  %.1 = select i1 %263, float %262, float %.0446
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, 2
  %265 = getelementptr float, ptr %12, i64 %indvars.iv.next
  %266 = load float, ptr %265, align 4, !tbaa !9
  %267 = fcmp olt float %266, %.1
  %268 = trunc nsw i64 %indvars.iv.next.1 to i32
  %.2.1 = select i1 %267, i32 %268, i32 %.2
  %.1.1 = select i1 %267, float %266, float %.1
  %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 !18

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph447, %.lr.ph447.preheader
  %.2.lcssa.ph = phi i32 [ poison, %.lr.ph447.preheader ], [ %.2.1, %.lr.ph447 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph447.preheader ], [ %.1.1, %.lr.ph447 ]
  %indvars.iv.unr = phi i64 [ %254, %.lr.ph447.preheader ], [ %indvars.iv.next.1, %.lr.ph447 ]
  %.0446.unr = phi float [ %256, %.lr.ph447.preheader ], [ %.1.1, %.lr.ph447 ]
  %.1359445.unr = phi i32 [ 0, %.lr.ph447.preheader ], [ %.2.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
  %269 = getelementptr float, ptr %12, i64 %indvars.iv.unr
  %270 = load float, ptr %269, align 4, !tbaa !9
  %271 = fcmp olt float %270, %.0446.unr
  %272 = trunc i64 %indvars.iv.unr to i32
  %273 = add i32 %272, 1
  %.2.epil = select i1 %271, i32 %273, i32 %.1359445.unr
  %.1.epil = select i1 %271, float %270, float %.0446.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph447.epil
  %.2.lcssa = phi i32 [ %.2.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2.epil, %.lr.ph447.epil ]
  %.1.lcssa = phi float [ %.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1.epil, %.lr.ph447.epil ]
  %.not400 = icmp eq i32 %.2.lcssa, 0
  br i1 %.not400, label %._crit_edge.thread, label %274

274:                                              ; preds = %._crit_edge
  %275 = sext i32 %.2.lcssa to i64
  %276 = getelementptr inbounds i32, ptr %46, i64 %275
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = getelementptr inbounds float, ptr %39, i64 %275
  store float %256, ptr %278, align 4, !tbaa !9
  %279 = getelementptr inbounds i32, ptr %46, i64 %254
  %280 = load i32, ptr %279, align 4, !tbaa !5
  store i32 %280, ptr %276, align 4, !tbaa !5
  store float %.1.lcssa, ptr %255, align 4, !tbaa !9
  store i32 %277, ptr %279, align 4, !tbaa !5
  %281 = mul nsw i32 %.2.lcssa, %40
  %282 = sext i32 %281 to i64
  %gep450 = getelementptr %struct.complex, ptr %invariant.gep449, i64 %282
  %283 = mul nsw i32 %storemerge397454, %40
  %284 = sext i32 %283 to i64
  %gep452 = getelementptr %struct.complex, ptr %invariant.gep449, i64 %284
  call void @cswap_(ptr noundef nonnull %3, ptr noundef %gep450, ptr noundef nonnull @c__1, ptr noundef %gep452, ptr noundef nonnull @c__1) #6
  %285 = load i32, ptr %20, align 4, !tbaa !5
  %.not401 = icmp eq i32 %285, 0
  %.pre = load i32, ptr %26, align 4, !tbaa !5
  br i1 %.not401, label %._crit_edge.thread, label %286

286:                                              ; preds = %274
  %287 = getelementptr inbounds i32, ptr %47, i64 %275
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = sext i32 %.pre to i64
  %290 = getelementptr inbounds i32, ptr %47, i64 %289
  %291 = load i32, ptr %290, align 4, !tbaa !5
  store i32 %291, ptr %287, align 4, !tbaa !5
  store i32 %288, ptr %290, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph456, %._crit_edge, %286, %274
  %292 = phi i32 [ %storemerge397454, %._crit_edge ], [ %.pre, %286 ], [ %.pre, %274 ], [ %storemerge397454, %.lr.ph456 ]
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr %26, align 4, !tbaa !5
  %294 = load i32, ptr %22, align 4, !tbaa !5
  %.not398.not = icmp slt i32 %292, %294
  br i1 %.not398.not, label %.lr.ph456, label %.loopexit, !llvm.loop !19

.loopexit:                                        ; preds = %._crit_edge.thread, %251, %250
  %295 = sitofp i32 %.0354 to float
  store float %295, ptr %15, align 4, !tbaa !11
  store float 0.000000e+00, ptr %103, align 4, !tbaa !13
  br label %296

296:                                              ; preds = %127, %128, %110, %109, %.loopexit, %.thread416
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

declare void @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 i32 @llvm.smax.i32(i32, i32) #4

declare float @sqrtf(float) local_unnamed_addr

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #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 = !{!"int", !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 = !{!12, !10, i64 4}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = !{!7, !7, i64 0}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}


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