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

; 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 [14 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cheevx_2stage_(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 i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca float, align 4
  %79 = alloca float, align 4
  %80 = alloca float, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca float, align 4
  %89 = alloca i32, align 4
  %90 = alloca float, align 4
  %91 = alloca float, align 4
  %92 = alloca float, align 4
  %93 = alloca i32, align 4
  %94 = alloca float, align 4
  %95 = 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #4
  %96 = load ptr, ptr %27, align 8, !tbaa !5
  %97 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %97, ptr %43, align 4, !tbaa !9
  %98 = load i32, ptr %43, align 4, !tbaa !9
  %99 = mul nsw i32 %98, 1
  %100 = add nsw i32 1, %99
  store i32 %100, ptr %44, align 4, !tbaa !9
  %101 = load i32, ptr %44, align 4, !tbaa !9
  %102 = load ptr, ptr %26, align 8, !tbaa !5
  %103 = sext i32 %101 to i64
  %104 = sub i64 0, %103
  %105 = getelementptr inbounds %struct.complex, ptr %102, i64 %104
  store ptr %105, ptr %26, align 8, !tbaa !5
  %106 = load ptr, ptr %34, align 8, !tbaa !5
  %107 = getelementptr inbounds float, ptr %106, i32 -1
  store ptr %107, ptr %34, align 8, !tbaa !5
  %108 = load ptr, ptr %36, align 8, !tbaa !5
  %109 = load i32, ptr %108, align 4, !tbaa !9
  store i32 %109, ptr %45, align 4, !tbaa !9
  %110 = load i32, ptr %45, align 4, !tbaa !9
  %111 = mul nsw i32 %110, 1
  %112 = add nsw i32 1, %111
  store i32 %112, ptr %46, align 4, !tbaa !9
  %113 = load i32, ptr %46, align 4, !tbaa !9
  %114 = load ptr, ptr %35, align 8, !tbaa !5
  %115 = sext i32 %113 to i64
  %116 = sub i64 0, %115
  %117 = getelementptr inbounds %struct.complex, ptr %114, i64 %116
  store ptr %117, ptr %35, align 8, !tbaa !5
  %118 = load ptr, ptr %37, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.complex, ptr %118, i32 -1
  store ptr %119, ptr %37, align 8, !tbaa !5
  %120 = load ptr, ptr %39, align 8, !tbaa !5
  %121 = getelementptr inbounds float, ptr %120, i32 -1
  store ptr %121, ptr %39, align 8, !tbaa !5
  %122 = load ptr, ptr %40, align 8, !tbaa !5
  %123 = getelementptr inbounds i32, ptr %122, i32 -1
  store ptr %123, ptr %40, align 8, !tbaa !5
  %124 = load ptr, ptr %41, align 8, !tbaa !5
  %125 = getelementptr inbounds i32, ptr %124, i32 -1
  store ptr %125, ptr %41, align 8, !tbaa !5
  %126 = load ptr, ptr %24, align 8, !tbaa !5
  %127 = call i32 @lsame_(ptr noundef %126, ptr noundef @.str)
  store i32 %127, ptr %67, align 4, !tbaa !9
  %128 = load ptr, ptr %22, align 8, !tbaa !5
  %129 = call i32 @lsame_(ptr noundef %128, ptr noundef @.str.1)
  store i32 %129, ptr %69, align 4, !tbaa !9
  %130 = load ptr, ptr %23, align 8, !tbaa !5
  %131 = call i32 @lsame_(ptr noundef %130, ptr noundef @.str.2)
  store i32 %131, ptr %73, align 4, !tbaa !9
  %132 = load ptr, ptr %23, align 8, !tbaa !5
  %133 = call i32 @lsame_(ptr noundef %132, ptr noundef @.str.1)
  store i32 %133, ptr %77, align 4, !tbaa !9
  %134 = load ptr, ptr %23, align 8, !tbaa !5
  %135 = call i32 @lsame_(ptr noundef %134, ptr noundef @.str.3)
  store i32 %135, ptr %74, align 4, !tbaa !9
  %136 = load ptr, ptr %38, align 8, !tbaa !5
  %137 = load i32, ptr %136, align 4, !tbaa !9
  %138 = icmp eq i32 %137, -1
  %139 = zext i1 %138 to i32
  store i32 %139, ptr %89, align 4, !tbaa !9
  %140 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %140, align 4, !tbaa !9
  %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 = %21
  %145 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -1, ptr %145, align 4, !tbaa !9
  br label %258

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

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

152:                                              ; preds = %149
  %153 = load i32, ptr %74, 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 %67, 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 %77, 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 %74, 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 %69, 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 %333

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 %66, align 4, !tbaa !9
  %287 = load i32, ptr %66, 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 %322

295:                                              ; preds = %282
  %296 = load ptr, ptr %22, align 8, !tbaa !5
  %297 = load ptr, ptr %25, align 8, !tbaa !5
  %298 = call i32 @ilaenv2stage_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef %296, ptr noundef %297, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i32 %298, ptr %71, align 4, !tbaa !9
  %299 = load ptr, ptr %22, align 8, !tbaa !5
  %300 = load ptr, ptr %25, align 8, !tbaa !5
  %301 = call i32 @ilaenv2stage_(ptr noundef @c__2, ptr noundef @.str.6, ptr noundef %299, ptr noundef %300, ptr noundef %71, ptr noundef @c_n1, ptr noundef @c_n1)
  store i32 %301, ptr %70, align 4, !tbaa !9
  %302 = load ptr, ptr %22, align 8, !tbaa !5
  %303 = load ptr, ptr %25, align 8, !tbaa !5
  %304 = call i32 @ilaenv2stage_(ptr noundef @c__3, ptr noundef @.str.6, ptr noundef %302, ptr noundef %303, ptr noundef %71, ptr noundef %70, ptr noundef @c_n1)
  store i32 %304, ptr %65, align 4, !tbaa !9
  %305 = load ptr, ptr %22, align 8, !tbaa !5
  %306 = load ptr, ptr %25, align 8, !tbaa !5
  %307 = call i32 @ilaenv2stage_(ptr noundef @c__4, ptr noundef @.str.6, ptr noundef %305, ptr noundef %306, ptr noundef %71, ptr noundef %70, ptr noundef @c_n1)
  store i32 %307, ptr %68, align 4, !tbaa !9
  %308 = load ptr, ptr %25, align 8, !tbaa !5
  %309 = load i32, ptr %308, align 4, !tbaa !9
  %310 = load i32, ptr %65, align 4, !tbaa !9
  %311 = add nsw i32 %309, %310
  %312 = load i32, ptr %68, align 4, !tbaa !9
  %313 = add nsw i32 %311, %312
  store i32 %313, ptr %66, align 4, !tbaa !9
  %314 = load i32, ptr %66, align 4, !tbaa !9
  %315 = sitofp i32 %314 to float
  %316 = load ptr, ptr %37, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.complex, ptr %316, i64 1
  %318 = getelementptr inbounds %struct.complex, ptr %317, i32 0, i32 0
  store float %315, ptr %318, align 4, !tbaa !13
  %319 = load ptr, ptr %37, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.complex, ptr %319, i64 1
  %321 = getelementptr inbounds %struct.complex, ptr %320, i32 0, i32 1
  store float 0.000000e+00, ptr %321, align 4, !tbaa !15
  br label %322

322:                                              ; preds = %295, %286
  %323 = load ptr, ptr %38, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = load i32, ptr %66, align 4, !tbaa !9
  %326 = icmp slt i32 %324, %325
  br i1 %326, label %327, label %332

327:                                              ; preds = %322
  %328 = load i32, ptr %89, align 4, !tbaa !9
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %332, label %330

330:                                              ; preds = %327
  %331 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -17, ptr %331, align 4, !tbaa !9
  br label %332

332:                                              ; preds = %330, %327, %322
  br label %333

333:                                              ; preds = %332, %278
  %334 = load ptr, ptr %42, align 8, !tbaa !5
  %335 = load i32, ptr %334, align 4, !tbaa !9
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %337, label %342

337:                                              ; preds = %333
  %338 = load ptr, ptr %42, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = sub nsw i32 0, %339
  store i32 %340, ptr %47, align 4, !tbaa !9
  %341 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %47, i32 noundef 13)
  store i32 1, ptr %95, align 4
  br label %1045

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

345:                                              ; preds = %342
  store i32 1, ptr %95, align 4
  br label %1045

346:                                              ; preds = %342
  br label %347

347:                                              ; preds = %346
  %348 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 0, ptr %348, align 4, !tbaa !9
  %349 = load ptr, ptr %25, align 8, !tbaa !5
  %350 = load i32, ptr %349, align 4, !tbaa !9
  %351 = icmp eq i32 %350, 0
  br i1 %351, label %352, label %353

352:                                              ; preds = %347
  store i32 1, ptr %95, align 4
  br label %1045

353:                                              ; preds = %347
  %354 = load ptr, ptr %25, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  %356 = icmp eq i32 %355, 1
  br i1 %356, label %357, label %433

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

360:                                              ; preds = %357
  %361 = load i32, ptr %74, align 4, !tbaa !9
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %363, label %375

363:                                              ; preds = %360, %357
  %364 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 1, ptr %364, align 4, !tbaa !9
  %365 = load i32, ptr %43, align 4, !tbaa !9
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr %47, align 4, !tbaa !9
  %367 = load ptr, ptr %26, align 8, !tbaa !5
  %368 = load i32, ptr %47, align 4, !tbaa !9
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds %struct.complex, ptr %367, i64 %369
  %371 = getelementptr inbounds %struct.complex, ptr %370, i32 0, i32 0
  %372 = load float, ptr %371, align 4, !tbaa !13
  %373 = load ptr, ptr %34, align 8, !tbaa !5
  %374 = getelementptr inbounds float, ptr %373, i64 1
  store float %372, ptr %374, align 4, !tbaa !11
  br label %416

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

378:                                              ; preds = %375
  %379 = load i32, ptr %43, align 4, !tbaa !9
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr %47, align 4, !tbaa !9
  %381 = load i32, ptr %43, align 4, !tbaa !9
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr %48, align 4, !tbaa !9
  %383 = load ptr, ptr %28, align 8, !tbaa !5
  %384 = load float, ptr %383, align 4, !tbaa !11
  %385 = load ptr, ptr %26, align 8, !tbaa !5
  %386 = load i32, ptr %47, align 4, !tbaa !9
  %387 = sext i32 %386 to i64
  %388 = getelementptr inbounds %struct.complex, ptr %385, i64 %387
  %389 = getelementptr inbounds %struct.complex, ptr %388, i32 0, i32 0
  %390 = load float, ptr %389, align 4, !tbaa !13
  %391 = fcmp olt float %384, %390
  br i1 %391, label %392, label %414

392:                                              ; preds = %378
  %393 = load ptr, ptr %29, align 8, !tbaa !5
  %394 = load float, ptr %393, align 4, !tbaa !11
  %395 = load ptr, ptr %26, align 8, !tbaa !5
  %396 = load i32, ptr %48, align 4, !tbaa !9
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds %struct.complex, ptr %395, i64 %397
  %399 = getelementptr inbounds %struct.complex, ptr %398, i32 0, i32 0
  %400 = load float, ptr %399, align 4, !tbaa !13
  %401 = fcmp oge float %394, %400
  br i1 %401, label %402, label %414

402:                                              ; preds = %392
  %403 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 1, ptr %403, align 4, !tbaa !9
  %404 = load i32, ptr %43, align 4, !tbaa !9
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr %47, align 4, !tbaa !9
  %406 = load ptr, ptr %26, align 8, !tbaa !5
  %407 = load i32, ptr %47, align 4, !tbaa !9
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds %struct.complex, ptr %406, i64 %408
  %410 = getelementptr inbounds %struct.complex, ptr %409, i32 0, i32 0
  %411 = load float, ptr %410, align 4, !tbaa !13
  %412 = load ptr, ptr %34, align 8, !tbaa !5
  %413 = getelementptr inbounds float, ptr %412, i64 1
  store float %411, ptr %413, align 4, !tbaa !11
  br label %414

414:                                              ; preds = %402, %392, %378
  br label %415

415:                                              ; preds = %414, %375
  br label %416

416:                                              ; preds = %415, %363
  %417 = load i32, ptr %69, align 4, !tbaa !9
  %418 = icmp ne i32 %417, 0
  br i1 %418, label %419, label %432

419:                                              ; preds = %416
  %420 = load i32, ptr %45, align 4, !tbaa !9
  %421 = add nsw i32 %420, 1
  store i32 %421, ptr %47, align 4, !tbaa !9
  %422 = load ptr, ptr %35, align 8, !tbaa !5
  %423 = load i32, ptr %47, align 4, !tbaa !9
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds %struct.complex, ptr %422, i64 %424
  %426 = getelementptr inbounds %struct.complex, ptr %425, i32 0, i32 0
  store float 1.000000e+00, ptr %426, align 4, !tbaa !13
  %427 = load ptr, ptr %35, align 8, !tbaa !5
  %428 = load i32, ptr %47, align 4, !tbaa !9
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds %struct.complex, ptr %427, i64 %429
  %431 = getelementptr inbounds %struct.complex, ptr %430, i32 0, i32 1
  store float 0.000000e+00, ptr %431, align 4, !tbaa !15
  br label %432

432:                                              ; preds = %419, %416
  store i32 1, ptr %95, align 4
  br label %1045

433:                                              ; preds = %353
  %434 = call float @slamch_(ptr noundef @.str.8)
  store float %434, ptr %78, align 4, !tbaa !11
  %435 = call float @slamch_(ptr noundef @.str.9)
  store float %435, ptr %90, align 4, !tbaa !11
  %436 = load float, ptr %78, align 4, !tbaa !11
  %437 = load float, ptr %90, align 4, !tbaa !11
  %438 = fdiv float %436, %437
  store float %438, ptr %88, align 4, !tbaa !11
  %439 = load float, ptr %88, align 4, !tbaa !11
  %440 = fdiv float 1.000000e+00, %439
  store float %440, ptr %80, align 4, !tbaa !11
  %441 = load float, ptr %88, align 4, !tbaa !11
  %442 = fpext float %441 to double
  %443 = call double @sqrt(double noundef %442) #4
  %444 = fptrunc double %443 to float
  store float %444, ptr %55, align 4, !tbaa !11
  %445 = load float, ptr %80, align 4, !tbaa !11
  %446 = fpext float %445 to double
  %447 = call double @sqrt(double noundef %446) #4
  %448 = fptrunc double %447 to float
  store float %448, ptr %49, align 4, !tbaa !11
  %449 = load float, ptr %78, align 4, !tbaa !11
  %450 = fpext float %449 to double
  %451 = call double @sqrt(double noundef %450) #4
  %452 = call double @sqrt(double noundef %451) #4
  %453 = fdiv double 1.000000e+00, %452
  %454 = fptrunc double %453 to float
  store float %454, ptr %50, align 4, !tbaa !11
  %455 = load float, ptr %49, align 4, !tbaa !11
  %456 = load float, ptr %50, align 4, !tbaa !11
  %457 = fcmp ole float %455, %456
  br i1 %457, label %458, label %460

458:                                              ; preds = %433
  %459 = load float, ptr %49, align 4, !tbaa !11
  br label %462

460:                                              ; preds = %433
  %461 = load float, ptr %50, align 4, !tbaa !11
  br label %462

462:                                              ; preds = %460, %458
  %463 = phi float [ %459, %458 ], [ %461, %460 ]
  store float %463, ptr %56, align 4, !tbaa !11
  store i32 0, ptr %75, align 4, !tbaa !9
  %464 = load ptr, ptr %32, align 8, !tbaa !5
  %465 = load float, ptr %464, align 4, !tbaa !11
  store float %465, ptr %79, align 4, !tbaa !11
  %466 = load i32, ptr %77, align 4, !tbaa !9
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %468, label %473

468:                                              ; preds = %462
  %469 = load ptr, ptr %28, align 8, !tbaa !5
  %470 = load float, ptr %469, align 4, !tbaa !11
  store float %470, ptr %91, align 4, !tbaa !11
  %471 = load ptr, ptr %29, align 8, !tbaa !5
  %472 = load float, ptr %471, align 4, !tbaa !11
  store float %472, ptr %92, align 4, !tbaa !11
  br label %473

473:                                              ; preds = %468, %462
  %474 = load ptr, ptr %24, align 8, !tbaa !5
  %475 = load ptr, ptr %25, align 8, !tbaa !5
  %476 = load ptr, ptr %26, align 8, !tbaa !5
  %477 = load i32, ptr %44, align 4, !tbaa !9
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds %struct.complex, ptr %476, i64 %478
  %480 = load ptr, ptr %27, align 8, !tbaa !5
  %481 = load ptr, ptr %39, align 8, !tbaa !5
  %482 = getelementptr inbounds float, ptr %481, i64 1
  %483 = call float @clanhe_(ptr noundef @.str.10, ptr noundef %474, ptr noundef %475, ptr noundef %479, ptr noundef %480, ptr noundef %482)
  store float %483, ptr %53, align 4, !tbaa !11
  %484 = load float, ptr %53, align 4, !tbaa !11
  %485 = fcmp ogt float %484, 0.000000e+00
  br i1 %485, label %486, label %494

486:                                              ; preds = %473
  %487 = load float, ptr %53, align 4, !tbaa !11
  %488 = load float, ptr %55, align 4, !tbaa !11
  %489 = fcmp olt float %487, %488
  br i1 %489, label %490, label %494

490:                                              ; preds = %486
  store i32 1, ptr %75, align 4, !tbaa !9
  %491 = load float, ptr %55, align 4, !tbaa !11
  %492 = load float, ptr %53, align 4, !tbaa !11
  %493 = fdiv float %491, %492
  store float %493, ptr %62, align 4, !tbaa !11
  br label %503

494:                                              ; preds = %486, %473
  %495 = load float, ptr %53, align 4, !tbaa !11
  %496 = load float, ptr %56, align 4, !tbaa !11
  %497 = fcmp ogt float %495, %496
  br i1 %497, label %498, label %502

498:                                              ; preds = %494
  store i32 1, ptr %75, align 4, !tbaa !9
  %499 = load float, ptr %56, align 4, !tbaa !11
  %500 = load float, ptr %53, align 4, !tbaa !11
  %501 = fdiv float %499, %500
  store float %501, ptr %62, align 4, !tbaa !11
  br label %502

502:                                              ; preds = %498, %494
  br label %503

503:                                              ; preds = %502, %490
  %504 = load i32, ptr %75, align 4, !tbaa !9
  %505 = icmp eq i32 %504, 1
  br i1 %505, label %506, label %575

506:                                              ; preds = %503
  %507 = load i32, ptr %67, align 4, !tbaa !9
  %508 = icmp ne i32 %507, 0
  br i1 %508, label %509, label %534

509:                                              ; preds = %506
  %510 = load ptr, ptr %25, align 8, !tbaa !5
  %511 = load i32, ptr %510, align 4, !tbaa !9
  store i32 %511, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %512

512:                                              ; preds = %530, %509
  %513 = load i32, ptr %60, align 4, !tbaa !9
  %514 = load i32, ptr %47, align 4, !tbaa !9
  %515 = icmp sle i32 %513, %514
  br i1 %515, label %516, label %533

516:                                              ; preds = %512
  %517 = load ptr, ptr %25, align 8, !tbaa !5
  %518 = load i32, ptr %517, align 4, !tbaa !9
  %519 = load i32, ptr %60, align 4, !tbaa !9
  %520 = sub nsw i32 %518, %519
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr %48, align 4, !tbaa !9
  %522 = load ptr, ptr %26, align 8, !tbaa !5
  %523 = load i32, ptr %60, align 4, !tbaa !9
  %524 = load i32, ptr %60, align 4, !tbaa !9
  %525 = load i32, ptr %43, align 4, !tbaa !9
  %526 = mul nsw i32 %524, %525
  %527 = add nsw i32 %523, %526
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds %struct.complex, ptr %522, i64 %528
  call void @csscal_(ptr noundef %48, ptr noundef %62, ptr noundef %529, ptr noundef @c__1)
  br label %530

530:                                              ; preds = %516
  %531 = load i32, ptr %60, align 4, !tbaa !9
  %532 = add nsw i32 %531, 1
  store i32 %532, ptr %60, align 4, !tbaa !9
  br label %512, !llvm.loop !16

533:                                              ; preds = %512
  br label %553

534:                                              ; preds = %506
  %535 = load ptr, ptr %25, align 8, !tbaa !5
  %536 = load i32, ptr %535, align 4, !tbaa !9
  store i32 %536, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %537

537:                                              ; preds = %549, %534
  %538 = load i32, ptr %60, align 4, !tbaa !9
  %539 = load i32, ptr %47, align 4, !tbaa !9
  %540 = icmp sle i32 %538, %539
  br i1 %540, label %541, label %552

541:                                              ; preds = %537
  %542 = load ptr, ptr %26, align 8, !tbaa !5
  %543 = load i32, ptr %60, align 4, !tbaa !9
  %544 = load i32, ptr %43, align 4, !tbaa !9
  %545 = mul nsw i32 %543, %544
  %546 = add nsw i32 %545, 1
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds %struct.complex, ptr %542, i64 %547
  call void @csscal_(ptr noundef %60, ptr noundef %62, ptr noundef %548, ptr noundef @c__1)
  br label %549

549:                                              ; preds = %541
  %550 = load i32, ptr %60, align 4, !tbaa !9
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr %60, align 4, !tbaa !9
  br label %537, !llvm.loop !18

552:                                              ; preds = %537
  br label %553

553:                                              ; preds = %552, %533
  %554 = load ptr, ptr %32, align 8, !tbaa !5
  %555 = load float, ptr %554, align 4, !tbaa !11
  %556 = fcmp ogt float %555, 0.000000e+00
  br i1 %556, label %557, label %562

557:                                              ; preds = %553
  %558 = load ptr, ptr %32, align 8, !tbaa !5
  %559 = load float, ptr %558, align 4, !tbaa !11
  %560 = load float, ptr %62, align 4, !tbaa !11
  %561 = fmul float %559, %560
  store float %561, ptr %79, align 4, !tbaa !11
  br label %562

562:                                              ; preds = %557, %553
  %563 = load i32, ptr %77, align 4, !tbaa !9
  %564 = icmp ne i32 %563, 0
  br i1 %564, label %565, label %574

565:                                              ; preds = %562
  %566 = load ptr, ptr %28, align 8, !tbaa !5
  %567 = load float, ptr %566, align 4, !tbaa !11
  %568 = load float, ptr %62, align 4, !tbaa !11
  %569 = fmul float %567, %568
  store float %569, ptr %91, align 4, !tbaa !11
  %570 = load ptr, ptr %29, align 8, !tbaa !5
  %571 = load float, ptr %570, align 4, !tbaa !11
  %572 = load float, ptr %62, align 4, !tbaa !11
  %573 = fmul float %571, %572
  store float %573, ptr %92, align 4, !tbaa !11
  br label %574

574:                                              ; preds = %565, %562
  br label %575

575:                                              ; preds = %574, %503
  store i32 1, ptr %51, align 4, !tbaa !9
  %576 = load i32, ptr %51, align 4, !tbaa !9
  %577 = load ptr, ptr %25, align 8, !tbaa !5
  %578 = load i32, ptr %577, align 4, !tbaa !9
  %579 = add nsw i32 %576, %578
  store i32 %579, ptr %52, align 4, !tbaa !9
  %580 = load i32, ptr %52, align 4, !tbaa !9
  %581 = load ptr, ptr %25, align 8, !tbaa !5
  %582 = load i32, ptr %581, align 4, !tbaa !9
  %583 = add nsw i32 %580, %582
  store i32 %583, ptr %84, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  %584 = load i32, ptr %83, align 4, !tbaa !9
  %585 = load ptr, ptr %25, align 8, !tbaa !5
  %586 = load i32, ptr %585, align 4, !tbaa !9
  %587 = add nsw i32 %584, %586
  store i32 %587, ptr %93, align 4, !tbaa !9
  %588 = load i32, ptr %93, align 4, !tbaa !9
  %589 = load i32, ptr %65, align 4, !tbaa !9
  %590 = add nsw i32 %588, %589
  store i32 %590, ptr %85, align 4, !tbaa !9
  %591 = load ptr, ptr %38, align 8, !tbaa !5
  %592 = load i32, ptr %591, align 4, !tbaa !9
  %593 = load i32, ptr %85, align 4, !tbaa !9
  %594 = sub nsw i32 %592, %593
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr %87, align 4, !tbaa !9
  %596 = load ptr, ptr %22, align 8, !tbaa !5
  %597 = load ptr, ptr %24, align 8, !tbaa !5
  %598 = load ptr, ptr %25, align 8, !tbaa !5
  %599 = load ptr, ptr %26, align 8, !tbaa !5
  %600 = load i32, ptr %44, align 4, !tbaa !9
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds %struct.complex, ptr %599, i64 %601
  %603 = load ptr, ptr %27, align 8, !tbaa !5
  %604 = load ptr, ptr %39, align 8, !tbaa !5
  %605 = load i32, ptr %51, align 4, !tbaa !9
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds float, ptr %604, i64 %606
  %608 = load ptr, ptr %39, align 8, !tbaa !5
  %609 = load i32, ptr %52, align 4, !tbaa !9
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds float, ptr %608, i64 %610
  %612 = load ptr, ptr %37, align 8, !tbaa !5
  %613 = load i32, ptr %83, align 4, !tbaa !9
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds %struct.complex, ptr %612, i64 %614
  %616 = load ptr, ptr %37, align 8, !tbaa !5
  %617 = load i32, ptr %93, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds %struct.complex, ptr %616, i64 %618
  %620 = load ptr, ptr %37, align 8, !tbaa !5
  %621 = load i32, ptr %85, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds %struct.complex, ptr %620, i64 %622
  call void @chetrd_2stage_(ptr noundef %596, ptr noundef %597, ptr noundef %598, ptr noundef %602, ptr noundef %603, ptr noundef %607, ptr noundef %611, ptr noundef %615, ptr noundef %619, ptr noundef %65, ptr noundef %623, ptr noundef %87, ptr noundef %63)
  store i32 0, ptr %57, align 4, !tbaa !9
  %624 = load i32, ptr %74, align 4, !tbaa !9
  %625 = icmp ne i32 %624, 0
  br i1 %625, label %626, label %638

626:                                              ; preds = %575
  %627 = load ptr, ptr %30, align 8, !tbaa !5
  %628 = load i32, ptr %627, align 4, !tbaa !9
  %629 = icmp eq i32 %628, 1
  br i1 %629, label %630, label %637

630:                                              ; preds = %626
  %631 = load ptr, ptr %31, align 8, !tbaa !5
  %632 = load i32, ptr %631, align 4, !tbaa !9
  %633 = load ptr, ptr %25, align 8, !tbaa !5
  %634 = load i32, ptr %633, align 4, !tbaa !9
  %635 = icmp eq i32 %632, %634
  br i1 %635, label %636, label %637

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

637:                                              ; preds = %636, %630, %626
  br label %638

638:                                              ; preds = %637, %575
  %639 = load i32, ptr %73, align 4, !tbaa !9
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %644, label %641

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

644:                                              ; preds = %641, %638
  %645 = load ptr, ptr %32, align 8, !tbaa !5
  %646 = load float, ptr %645, align 4, !tbaa !11
  %647 = fcmp ole float %646, 0.000000e+00
  br i1 %647, label %648, label %770

648:                                              ; preds = %644
  %649 = load ptr, ptr %25, align 8, !tbaa !5
  %650 = load ptr, ptr %39, align 8, !tbaa !5
  %651 = load i32, ptr %51, align 4, !tbaa !9
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds float, ptr %650, i64 %652
  %654 = load ptr, ptr %34, align 8, !tbaa !5
  %655 = getelementptr inbounds float, ptr %654, i64 1
  call void @scopy_(ptr noundef %649, ptr noundef %653, ptr noundef @c__1, ptr noundef %655, ptr noundef @c__1)
  %656 = load i32, ptr %84, align 4, !tbaa !9
  %657 = load ptr, ptr %25, align 8, !tbaa !5
  %658 = load i32, ptr %657, align 4, !tbaa !9
  %659 = shl i32 %658, 1
  %660 = add nsw i32 %656, %659
  store i32 %660, ptr %61, align 4, !tbaa !9
  %661 = load i32, ptr %69, align 4, !tbaa !9
  %662 = icmp ne i32 %661, 0
  br i1 %662, label %683, label %663

663:                                              ; preds = %648
  %664 = load ptr, ptr %25, align 8, !tbaa !5
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = sub nsw i32 %665, 1
  store i32 %666, ptr %47, align 4, !tbaa !9
  %667 = load ptr, ptr %39, align 8, !tbaa !5
  %668 = load i32, ptr %52, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %667, i64 %669
  %671 = load ptr, ptr %39, align 8, !tbaa !5
  %672 = load i32, ptr %61, align 4, !tbaa !9
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds float, ptr %671, i64 %673
  call void @scopy_(ptr noundef %47, ptr noundef %670, ptr noundef @c__1, ptr noundef %674, ptr noundef @c__1)
  %675 = load ptr, ptr %25, align 8, !tbaa !5
  %676 = load ptr, ptr %34, align 8, !tbaa !5
  %677 = getelementptr inbounds float, ptr %676, i64 1
  %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
  %682 = load ptr, ptr %42, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %675, ptr noundef %677, ptr noundef %681, ptr noundef %682)
  br label %760

683:                                              ; preds = %648
  %684 = load ptr, ptr %25, align 8, !tbaa !5
  %685 = load ptr, ptr %25, align 8, !tbaa !5
  %686 = load ptr, ptr %26, align 8, !tbaa !5
  %687 = load i32, ptr %44, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds %struct.complex, ptr %686, i64 %688
  %690 = load ptr, ptr %27, align 8, !tbaa !5
  %691 = load ptr, ptr %35, align 8, !tbaa !5
  %692 = load i32, ptr %46, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds %struct.complex, ptr %691, i64 %693
  %695 = load ptr, ptr %36, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.2, ptr noundef %684, ptr noundef %685, ptr noundef %689, ptr noundef %690, ptr noundef %694, ptr noundef %695)
  %696 = load ptr, ptr %24, align 8, !tbaa !5
  %697 = load ptr, ptr %25, 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
  %703 = load ptr, ptr %37, align 8, !tbaa !5
  %704 = load i32, ptr %83, align 4, !tbaa !9
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds %struct.complex, ptr %703, i64 %705
  %707 = load ptr, ptr %37, align 8, !tbaa !5
  %708 = load i32, ptr %85, align 4, !tbaa !9
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds %struct.complex, ptr %707, i64 %709
  call void @cungtr_(ptr noundef %696, ptr noundef %697, ptr noundef %701, ptr noundef %702, ptr noundef %706, ptr noundef %710, ptr noundef %87, ptr noundef %63)
  %711 = load ptr, ptr %25, align 8, !tbaa !5
  %712 = load i32, ptr %711, align 4, !tbaa !9
  %713 = sub nsw i32 %712, 1
  store i32 %713, ptr %47, align 4, !tbaa !9
  %714 = load ptr, ptr %39, align 8, !tbaa !5
  %715 = load i32, ptr %52, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds float, ptr %714, i64 %716
  %718 = load ptr, ptr %39, align 8, !tbaa !5
  %719 = load i32, ptr %61, align 4, !tbaa !9
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds float, ptr %718, i64 %720
  call void @scopy_(ptr noundef %47, ptr noundef %717, ptr noundef @c__1, ptr noundef %721, ptr noundef @c__1)
  %722 = load ptr, ptr %22, align 8, !tbaa !5
  %723 = load ptr, ptr %25, align 8, !tbaa !5
  %724 = load ptr, ptr %34, align 8, !tbaa !5
  %725 = getelementptr inbounds float, ptr %724, i64 1
  %726 = load ptr, ptr %39, align 8, !tbaa !5
  %727 = load i32, ptr %61, align 4, !tbaa !9
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds float, ptr %726, i64 %728
  %730 = load ptr, ptr %35, align 8, !tbaa !5
  %731 = load i32, ptr %46, align 4, !tbaa !9
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds %struct.complex, ptr %730, i64 %732
  %734 = load ptr, ptr %36, align 8, !tbaa !5
  %735 = load ptr, ptr %39, align 8, !tbaa !5
  %736 = load i32, ptr %84, align 4, !tbaa !9
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds float, ptr %735, i64 %737
  %739 = load ptr, ptr %42, align 8, !tbaa !5
  call void @csteqr_(ptr noundef %722, ptr noundef %723, ptr noundef %725, ptr noundef %729, ptr noundef %733, ptr noundef %734, ptr noundef %738, ptr noundef %739)
  %740 = load ptr, ptr %42, align 8, !tbaa !5
  %741 = load i32, ptr %740, align 4, !tbaa !9
  %742 = icmp eq i32 %741, 0
  br i1 %742, label %743, label %759

743:                                              ; preds = %683
  %744 = load ptr, ptr %25, align 8, !tbaa !5
  %745 = load i32, ptr %744, align 4, !tbaa !9
  store i32 %745, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %746

746:                                              ; preds = %755, %743
  %747 = load i32, ptr %59, align 4, !tbaa !9
  %748 = load i32, ptr %47, align 4, !tbaa !9
  %749 = icmp sle i32 %747, %748
  br i1 %749, label %750, label %758

750:                                              ; preds = %746
  %751 = load ptr, ptr %41, align 8, !tbaa !5
  %752 = load i32, ptr %59, align 4, !tbaa !9
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds i32, ptr %751, i64 %753
  store i32 0, ptr %754, align 4, !tbaa !9
  br label %755

755:                                              ; preds = %750
  %756 = load i32, ptr %59, align 4, !tbaa !9
  %757 = add nsw i32 %756, 1
  store i32 %757, ptr %59, align 4, !tbaa !9
  br label %746, !llvm.loop !19

758:                                              ; preds = %746
  br label %759

759:                                              ; preds = %758, %683
  br label %760

760:                                              ; preds = %759, %663
  %761 = load ptr, ptr %42, align 8, !tbaa !5
  %762 = load i32, ptr %761, align 4, !tbaa !9
  %763 = icmp eq i32 %762, 0
  br i1 %763, label %764, label %768

764:                                              ; preds = %760
  %765 = load ptr, ptr %25, align 8, !tbaa !5
  %766 = load i32, ptr %765, align 4, !tbaa !9
  %767 = load ptr, ptr %33, align 8, !tbaa !5
  store i32 %766, ptr %767, align 4, !tbaa !9
  br label %880

768:                                              ; preds = %760
  %769 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %769, align 4, !tbaa !9
  br label %770

770:                                              ; preds = %768, %644, %641
  %771 = load i32, ptr %69, align 4, !tbaa !9
  %772 = icmp ne i32 %771, 0
  br i1 %772, label %773, label %775

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

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

777:                                              ; preds = %775, %773
  store i32 1, ptr %76, align 4, !tbaa !9
  %778 = load i32, ptr %76, align 4, !tbaa !9
  %779 = load ptr, ptr %25, align 8, !tbaa !5
  %780 = load i32, ptr %779, align 4, !tbaa !9
  %781 = add nsw i32 %778, %780
  store i32 %781, ptr %82, align 4, !tbaa !9
  %782 = load i32, ptr %82, align 4, !tbaa !9
  %783 = load ptr, ptr %25, align 8, !tbaa !5
  %784 = load i32, ptr %783, align 4, !tbaa !9
  %785 = add nsw i32 %782, %784
  store i32 %785, ptr %81, align 4, !tbaa !9
  %786 = load ptr, ptr %23, align 8, !tbaa !5
  %787 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  %788 = load ptr, ptr %25, align 8, !tbaa !5
  %789 = load ptr, ptr %30, align 8, !tbaa !5
  %790 = load ptr, ptr %31, align 8, !tbaa !5
  %791 = load ptr, ptr %39, align 8, !tbaa !5
  %792 = load i32, ptr %51, align 4, !tbaa !9
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds float, ptr %791, i64 %793
  %795 = load ptr, ptr %39, align 8, !tbaa !5
  %796 = load i32, ptr %52, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds float, ptr %795, i64 %797
  %799 = load ptr, ptr %33, align 8, !tbaa !5
  %800 = load ptr, ptr %34, align 8, !tbaa !5
  %801 = getelementptr inbounds float, ptr %800, i64 1
  %802 = load ptr, ptr %40, align 8, !tbaa !5
  %803 = load i32, ptr %76, align 4, !tbaa !9
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds i32, ptr %802, i64 %804
  %806 = load ptr, ptr %40, align 8, !tbaa !5
  %807 = load i32, ptr %82, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds i32, ptr %806, i64 %808
  %810 = load ptr, ptr %39, align 8, !tbaa !5
  %811 = load i32, ptr %84, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds float, ptr %810, i64 %812
  %814 = load ptr, ptr %40, align 8, !tbaa !5
  %815 = load i32, ptr %81, align 4, !tbaa !9
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds i32, ptr %814, i64 %816
  %818 = load ptr, ptr %42, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %786, ptr noundef %787, ptr noundef %788, ptr noundef %91, ptr noundef %92, ptr noundef %789, ptr noundef %790, ptr noundef %79, ptr noundef %794, ptr noundef %798, ptr noundef %799, ptr noundef %86, ptr noundef %801, ptr noundef %805, ptr noundef %809, ptr noundef %813, ptr noundef %817, ptr noundef %818)
  %819 = load i32, ptr %69, align 4, !tbaa !9
  %820 = icmp ne i32 %819, 0
  br i1 %820, label %821, label %879

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

879:                                              ; preds = %821, %777
  br label %880

880:                                              ; preds = %879, %764
  %881 = load i32, ptr %75, align 4, !tbaa !9
  %882 = icmp eq i32 %881, 1
  br i1 %882, label %883, label %899

883:                                              ; preds = %880
  %884 = load ptr, ptr %42, align 8, !tbaa !5
  %885 = load i32, ptr %884, align 4, !tbaa !9
  %886 = icmp eq i32 %885, 0
  br i1 %886, label %887, label %890

887:                                              ; preds = %883
  %888 = load ptr, ptr %33, align 8, !tbaa !5
  %889 = load i32, ptr %888, align 4, !tbaa !9
  store i32 %889, ptr %54, align 4, !tbaa !9
  br label %894

890:                                              ; preds = %883
  %891 = load ptr, ptr %42, align 8, !tbaa !5
  %892 = load i32, ptr %891, align 4, !tbaa !9
  %893 = sub nsw i32 %892, 1
  store i32 %893, ptr %54, align 4, !tbaa !9
  br label %894

894:                                              ; preds = %890, %887
  %895 = load float, ptr %62, align 4, !tbaa !11
  %896 = fdiv float 1.000000e+00, %895
  store float %896, ptr %49, align 4, !tbaa !11
  %897 = load ptr, ptr %34, align 8, !tbaa !5
  %898 = getelementptr inbounds float, ptr %897, i64 1
  call void @sscal_(ptr noundef %54, ptr noundef %49, ptr noundef %898, ptr noundef @c__1)
  br label %899

899:                                              ; preds = %894, %880
  %900 = load i32, ptr %69, align 4, !tbaa !9
  %901 = icmp ne i32 %900, 0
  br i1 %901, label %902, label %1036

902:                                              ; preds = %899
  %903 = load ptr, ptr %33, align 8, !tbaa !5
  %904 = load i32, ptr %903, align 4, !tbaa !9
  %905 = sub nsw i32 %904, 1
  store i32 %905, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %906

906:                                              ; preds = %1032, %902
  %907 = load i32, ptr %60, align 4, !tbaa !9
  %908 = load i32, ptr %47, align 4, !tbaa !9
  %909 = icmp sle i32 %907, %908
  br i1 %909, label %910, label %1035

910:                                              ; preds = %906
  store i32 0, ptr %59, align 4, !tbaa !9
  %911 = load ptr, ptr %34, align 8, !tbaa !5
  %912 = load i32, ptr %60, align 4, !tbaa !9
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %911, i64 %913
  %915 = load float, ptr %914, align 4, !tbaa !11
  store float %915, ptr %94, align 4, !tbaa !11
  %916 = load ptr, ptr %33, align 8, !tbaa !5
  %917 = load i32, ptr %916, align 4, !tbaa !9
  store i32 %917, ptr %48, align 4, !tbaa !9
  %918 = load i32, ptr %60, align 4, !tbaa !9
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr %72, align 4, !tbaa !9
  br label %920

920:                                              ; preds = %940, %910
  %921 = load i32, ptr %72, align 4, !tbaa !9
  %922 = load i32, ptr %48, align 4, !tbaa !9
  %923 = icmp sle i32 %921, %922
  br i1 %923, label %924, label %943

924:                                              ; preds = %920
  %925 = load ptr, ptr %34, align 8, !tbaa !5
  %926 = load i32, ptr %72, align 4, !tbaa !9
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds float, ptr %925, i64 %927
  %929 = load float, ptr %928, align 4, !tbaa !11
  %930 = load float, ptr %94, align 4, !tbaa !11
  %931 = fcmp olt float %929, %930
  br i1 %931, label %932, label %939

932:                                              ; preds = %924
  %933 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %933, ptr %59, align 4, !tbaa !9
  %934 = load ptr, ptr %34, align 8, !tbaa !5
  %935 = load i32, ptr %72, align 4, !tbaa !9
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds float, ptr %934, i64 %936
  %938 = load float, ptr %937, align 4, !tbaa !11
  store float %938, ptr %94, align 4, !tbaa !11
  br label %939

939:                                              ; preds = %932, %924
  br label %940

940:                                              ; preds = %939
  %941 = load i32, ptr %72, align 4, !tbaa !9
  %942 = add nsw i32 %941, 1
  store i32 %942, ptr %72, align 4, !tbaa !9
  br label %920, !llvm.loop !21

943:                                              ; preds = %920
  %944 = load i32, ptr %59, align 4, !tbaa !9
  %945 = icmp ne i32 %944, 0
  br i1 %945, label %946, label %1031

946:                                              ; preds = %943
  %947 = load ptr, ptr %40, align 8, !tbaa !5
  %948 = load i32, ptr %76, align 4, !tbaa !9
  %949 = load i32, ptr %59, align 4, !tbaa !9
  %950 = add nsw i32 %948, %949
  %951 = sub nsw i32 %950, 1
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds i32, ptr %947, i64 %952
  %954 = load i32, ptr %953, align 4, !tbaa !9
  store i32 %954, ptr %58, align 4, !tbaa !9
  %955 = load ptr, ptr %34, align 8, !tbaa !5
  %956 = load i32, ptr %60, align 4, !tbaa !9
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds float, ptr %955, i64 %957
  %959 = load float, ptr %958, align 4, !tbaa !11
  %960 = load ptr, ptr %34, align 8, !tbaa !5
  %961 = load i32, ptr %59, align 4, !tbaa !9
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds float, ptr %960, i64 %962
  store float %959, ptr %963, align 4, !tbaa !11
  %964 = load ptr, ptr %40, align 8, !tbaa !5
  %965 = load i32, ptr %76, align 4, !tbaa !9
  %966 = load i32, ptr %60, align 4, !tbaa !9
  %967 = add nsw i32 %965, %966
  %968 = sub nsw i32 %967, 1
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds i32, ptr %964, i64 %969
  %971 = load i32, ptr %970, align 4, !tbaa !9
  %972 = load ptr, ptr %40, align 8, !tbaa !5
  %973 = load i32, ptr %76, align 4, !tbaa !9
  %974 = load i32, ptr %59, align 4, !tbaa !9
  %975 = add nsw i32 %973, %974
  %976 = sub nsw i32 %975, 1
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds i32, ptr %972, i64 %977
  store i32 %971, ptr %978, align 4, !tbaa !9
  %979 = load float, ptr %94, align 4, !tbaa !11
  %980 = load ptr, ptr %34, align 8, !tbaa !5
  %981 = load i32, ptr %60, align 4, !tbaa !9
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds float, ptr %980, i64 %982
  store float %979, ptr %983, align 4, !tbaa !11
  %984 = load i32, ptr %58, align 4, !tbaa !9
  %985 = load ptr, ptr %40, align 8, !tbaa !5
  %986 = load i32, ptr %76, align 4, !tbaa !9
  %987 = load i32, ptr %60, align 4, !tbaa !9
  %988 = add nsw i32 %986, %987
  %989 = sub nsw i32 %988, 1
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds i32, ptr %985, i64 %990
  store i32 %984, ptr %991, align 4, !tbaa !9
  %992 = load ptr, ptr %25, align 8, !tbaa !5
  %993 = load ptr, ptr %35, align 8, !tbaa !5
  %994 = load i32, ptr %59, align 4, !tbaa !9
  %995 = load i32, ptr %45, align 4, !tbaa !9
  %996 = mul nsw i32 %994, %995
  %997 = add nsw i32 %996, 1
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds %struct.complex, ptr %993, i64 %998
  %1000 = load ptr, ptr %35, align 8, !tbaa !5
  %1001 = load i32, ptr %60, 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
  call void @cswap_(ptr noundef %992, ptr noundef %999, ptr noundef @c__1, ptr noundef %1006, ptr noundef @c__1)
  %1007 = load ptr, ptr %42, align 8, !tbaa !5
  %1008 = load i32, ptr %1007, align 4, !tbaa !9
  %1009 = icmp ne i32 %1008, 0
  br i1 %1009, label %1010, label %1030

1010:                                             ; preds = %946
  %1011 = load ptr, ptr %41, align 8, !tbaa !5
  %1012 = load i32, ptr %59, align 4, !tbaa !9
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds i32, ptr %1011, i64 %1013
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  store i32 %1015, ptr %58, align 4, !tbaa !9
  %1016 = load ptr, ptr %41, align 8, !tbaa !5
  %1017 = load i32, ptr %60, align 4, !tbaa !9
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds i32, ptr %1016, i64 %1018
  %1020 = load i32, ptr %1019, align 4, !tbaa !9
  %1021 = load ptr, ptr %41, align 8, !tbaa !5
  %1022 = load i32, ptr %59, align 4, !tbaa !9
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds i32, ptr %1021, i64 %1023
  store i32 %1020, ptr %1024, align 4, !tbaa !9
  %1025 = load i32, ptr %58, align 4, !tbaa !9
  %1026 = load ptr, ptr %41, align 8, !tbaa !5
  %1027 = load i32, ptr %60, align 4, !tbaa !9
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds i32, ptr %1026, i64 %1028
  store i32 %1025, ptr %1029, align 4, !tbaa !9
  br label %1030

1030:                                             ; preds = %1010, %946
  br label %1031

1031:                                             ; preds = %1030, %943
  br label %1032

1032:                                             ; preds = %1031
  %1033 = load i32, ptr %60, align 4, !tbaa !9
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr %60, align 4, !tbaa !9
  br label %906, !llvm.loop !22

1035:                                             ; preds = %906
  br label %1036

1036:                                             ; preds = %1035, %899
  %1037 = load i32, ptr %66, align 4, !tbaa !9
  %1038 = sitofp i32 %1037 to float
  %1039 = load ptr, ptr %37, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.complex, ptr %1039, i64 1
  %1041 = getelementptr inbounds %struct.complex, ptr %1040, i32 0, i32 0
  store float %1038, ptr %1041, align 4, !tbaa !13
  %1042 = load ptr, ptr %37, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.complex, ptr %1042, i64 1
  %1044 = getelementptr inbounds %struct.complex, ptr %1043, i32 0, i32 1
  store float 0.000000e+00, ptr %1044, align 4, !tbaa !15
  store i32 1, ptr %95, align 4
  br label %1045

1045:                                             ; preds = %1036, %432, %352, %345, %337
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  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 @ilaenv2stage_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare float @slamch_(ptr noundef) #2

; 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_2stage_(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 @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 [14 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cheevx_2stage_(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 i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca float, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca float, align 4
  %37 = 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
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  %38 = load i32, ptr %5, align 4, !tbaa !5
  %39 = add i32 %38, 1
  %narrow = xor i32 %38, -1
  %40 = sext i32 %narrow to i64
  %41 = getelementptr inbounds %struct.complex, ptr %4, i64 %40
  %42 = getelementptr inbounds i8, ptr %12, i64 -4
  %43 = load i32, ptr %14, align 4, !tbaa !5
  %44 = add nsw i32 %43, 1
  %narrow409 = xor i32 %43, -1
  %45 = sext i32 %narrow409 to i64
  %46 = getelementptr inbounds %struct.complex, ptr %13, i64 %45
  %47 = getelementptr inbounds i8, ptr %15, i64 -8
  %48 = getelementptr inbounds i8, ptr %17, i64 -4
  %49 = getelementptr inbounds i8, ptr %18, i64 -4
  %50 = getelementptr inbounds i8, ptr %19, i64 -4
  %51 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %52 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %53 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #6
  %54 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %55 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %56 = load i32, ptr %16, align 4, !tbaa !5
  %57 = icmp eq i32 %56, -1
  store i32 0, ptr %20, align 4, !tbaa !5
  %58 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not = icmp eq i32 %58, 0
  br i1 %.not, label %.thread422.sink.split, label %59

59:                                               ; preds = %21
  %60 = icmp ne i32 %53, 0
  %61 = icmp ne i32 %54, 0
  %or.cond = select i1 %60, i1 true, i1 %61
  %62 = icmp ne i32 %55, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %62
  br i1 %or.cond3, label %63, label %.thread422.sink.split

63:                                               ; preds = %59
  %.not384 = icmp eq i32 %51, 0
  br i1 %.not384, label %64, label %66

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

66:                                               ; preds = %64, %63
  %67 = load i32, ptr %3, align 4, !tbaa !5
  %68 = icmp slt i32 %67, 0
  br i1 %68, label %.thread422.sink.split, label %69

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

72:                                               ; preds = %69
  br i1 %61, label %73, label %78

73:                                               ; preds = %72
  %.not436 = icmp eq i32 %67, 0
  br i1 %.not436, label %87, label %74

74:                                               ; preds = %73
  %75 = load float, ptr %7, align 4, !tbaa !9
  %76 = load float, ptr %6, align 4, !tbaa !9
  %77 = fcmp ugt float %75, %76
  br i1 %77, label %87, label %.thread422.sink.split

78:                                               ; preds = %72
  br i1 %62, label %79, label %87

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

83:                                               ; preds = %79
  %84 = load i32, ptr %9, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %67, i32 %80)
  %85 = icmp slt i32 %84, %.
  %86 = icmp ugt i32 %84, %67
  %or.cond435 = or i1 %85, %86
  br i1 %or.cond435, label %.thread422.sink.split, label %87

87:                                               ; preds = %83, %74, %73, %78
  %.pr = load i32, ptr %20, align 4, !tbaa !5
  %88 = icmp eq i32 %.pr, 0
  br i1 %88, label %89, label %.thread422

89:                                               ; preds = %87
  %90 = load i32, ptr %14, align 4, !tbaa !5
  %91 = icmp slt i32 %90, 1
  br i1 %91, label %.thread422.sink.split, label %92

92:                                               ; preds = %89
  %.not387 = icmp ne i32 %52, 0
  %93 = icmp ult i32 %90, %67
  %or.cond471 = and i1 %.not387, %93
  br i1 %or.cond471, label %.thread422.sink.split, label %.thread

.thread:                                          ; preds = %92
  %94 = icmp ult i32 %67, 2
  br i1 %94, label %105, label %95

95:                                               ; preds = %.thread
  %96 = tail call i32 @ilaenv2stage_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #6
  store i32 %96, ptr %32, align 4, !tbaa !5
  %97 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__2, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %32, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #6
  store i32 %97, ptr %31, align 4, !tbaa !5
  %98 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__3, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull @c_n1) #6
  store i32 %98, ptr %30, align 4, !tbaa !5
  %99 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__4, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull @c_n1) #6
  %100 = load i32, ptr %3, align 4, !tbaa !5
  %101 = load i32, ptr %30, align 4, !tbaa !5
  %102 = add i32 %100, %99
  %103 = add i32 %102, %101
  %104 = sitofp i32 %103 to float
  br label %105

105:                                              ; preds = %.thread, %95
  %.sink = phi float [ %104, %95 ], [ 1.000000e+00, %.thread ]
  %.0362 = phi i32 [ %103, %95 ], [ 1, %.thread ]
  store float %.sink, ptr %15, align 4
  %106 = getelementptr inbounds i8, ptr %15, i64 4
  store float 0.000000e+00, ptr %106, align 4
  %107 = load i32, ptr %16, align 4, !tbaa !5
  %108 = icmp sge i32 %107, %.0362
  %or.cond5 = select i1 %108, i1 true, i1 %57
  br i1 %or.cond5, label %.thread417, label %.thread422.sink.split

.thread417:                                       ; preds = %105
  %.pr419.pr = load i32, ptr %20, align 4, !tbaa !5
  %.not388 = icmp eq i32 %.pr419.pr, 0
  br i1 %.not388, label %112, label %.thread422

.thread422.sink.split:                            ; preds = %105, %89, %92, %83, %79, %74, %69, %66, %64, %59, %21
  %.sink472 = phi i32 [ -1, %21 ], [ -2, %59 ], [ -3, %64 ], [ -4, %66 ], [ -6, %69 ], [ -8, %74 ], [ -9, %79 ], [ -10, %83 ], [ -15, %92 ], [ -15, %89 ], [ -17, %105 ]
  store i32 %.sink472, ptr %20, align 4, !tbaa !5
  br label %.thread422

.thread422:                                       ; preds = %.thread422.sink.split, %87, %.thread417
  %109 = phi i32 [ %.pr419.pr, %.thread417 ], [ %.pr, %87 ], [ %.sink472, %.thread422.sink.split ]
  %110 = sub nsw i32 0, %109
  store i32 %110, ptr %22, align 4, !tbaa !5
  %111 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %22, i32 noundef 13) #6
  br label %303

112:                                              ; preds = %.thread417
  br i1 %57, label %303, label %113

113:                                              ; preds = %112
  store i32 0, ptr %11, align 4, !tbaa !5
  %114 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %114, label %134 [
    i32 0, label %303
    i32 1, label %115
  ]

115:                                              ; preds = %113
  %or.cond7 = select i1 %60, i1 true, i1 %62
  br i1 %or.cond7, label %116, label %118

116:                                              ; preds = %115
  store i32 1, ptr %11, align 4, !tbaa !5
  %117 = load float, ptr %4, align 4, !tbaa !11
  br label %.sink.split

118:                                              ; preds = %115
  %.not407 = icmp eq i32 %54, 0
  br i1 %.not407, label %130, label %119

119:                                              ; preds = %118
  %120 = load float, ptr %6, align 4, !tbaa !9
  %121 = sext i32 %39 to i64
  %122 = getelementptr inbounds %struct.complex, ptr %41, i64 %121
  %123 = load float, ptr %122, align 4, !tbaa !11
  %124 = fcmp olt float %120, %123
  br i1 %124, label %125, label %130

125:                                              ; preds = %119
  %126 = load float, ptr %7, align 4, !tbaa !9
  %127 = load float, ptr %4, align 4, !tbaa !11
  %128 = fcmp ult float %126, %127
  br i1 %128, label %130, label %129

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

.sink.split:                                      ; preds = %116, %129
  %.sink473 = phi float [ %127, %129 ], [ %117, %116 ]
  store float %.sink473, ptr %12, align 4, !tbaa !9
  br label %130

130:                                              ; preds = %.sink.split, %118, %125, %119
  br i1 %.not387, label %131, label %303

131:                                              ; preds = %130
  store float 1.000000e+00, ptr %13, align 4, !tbaa !11
  %132 = sext i32 %44 to i64
  %133 = getelementptr inbounds %struct.complex, ptr %46, i64 %132, i32 1
  store float 0.000000e+00, ptr %133, align 4, !tbaa !13
  br label %303

134:                                              ; preds = %113
  %135 = call float @slamch_(ptr noundef nonnull @.str.8) #6
  %136 = call float @slamch_(ptr noundef nonnull @.str.9) #6
  %137 = fdiv float %135, %136
  %138 = fdiv float 1.000000e+00, %137
  %sqrtf = call float @sqrtf(float noundef %137) #3
  %sqrtf389 = call float @sqrtf(float noundef %138) #3
  store float %sqrtf389, ptr %24, align 4, !tbaa !9
  %139 = fpext float %135 to double
  %140 = call double @sqrt(double noundef %139) #6
  %141 = call double @sqrt(double noundef %140) #6
  %142 = fdiv double 1.000000e+00, %141
  %143 = fptrunc double %142 to float
  %144 = fcmp ole float %sqrtf389, %143
  %145 = select i1 %144, float %sqrtf389, float %143
  %146 = load float, ptr %10, align 4, !tbaa !9
  store float %146, ptr %33, align 4, !tbaa !9
  %.not390 = icmp eq i32 %54, 0
  br i1 %.not390, label %150, label %147

147:                                              ; preds = %134
  %148 = load float, ptr %6, align 4, !tbaa !9
  store float %148, ptr %36, align 4, !tbaa !9
  %149 = load float, ptr %7, align 4, !tbaa !9
  store float %149, ptr %37, align 4, !tbaa !9
  br label %150

150:                                              ; preds = %147, %134
  %151 = call float @clanhe_(ptr noundef nonnull @.str.10, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %17) #6
  %152 = fcmp ogt float %151, 0.000000e+00
  %153 = fcmp olt float %151, %sqrtf
  %or.cond411 = select i1 %152, i1 %153, i1 false
  br i1 %or.cond411, label %156, label %154

154:                                              ; preds = %150
  %155 = fcmp ogt float %151, %145
  br i1 %155, label %156, label %185

156:                                              ; preds = %154, %150
  %.pn = phi float [ %sqrtf, %150 ], [ %145, %154 ]
  %storemerge437 = fdiv float %.pn, %151
  store float %storemerge437, ptr %27, align 4, !tbaa !9
  %157 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %157, ptr %22, align 4, !tbaa !5
  br i1 %.not384, label %167, label %158

158:                                              ; preds = %156
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not394441 = icmp slt i32 %157, 1
  br i1 %.not394441, label %.loopexit439, label %.lr.ph

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

167:                                              ; preds = %156
  %invariant.gep = getelementptr i8, ptr %41, i64 8
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not392443 = icmp slt i32 %157, 1
  br i1 %.not392443, label %.loopexit439, label %.lr.ph445

.lr.ph445:                                        ; preds = %167, %.lr.ph445
  %storemerge444 = phi i32 [ %171, %.lr.ph445 ], [ 1, %167 ]
  %168 = mul nsw i32 %storemerge444, %38
  %169 = sext i32 %168 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %169
  call void @csscal_(ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %170 = load i32, ptr %26, align 4, !tbaa !5
  %171 = add nsw i32 %170, 1
  store i32 %171, ptr %26, align 4, !tbaa !5
  %172 = load i32, ptr %22, align 4, !tbaa !5
  %.not392.not = icmp slt i32 %170, %172
  br i1 %.not392.not, label %.lr.ph445, label %.loopexit439, !llvm.loop !16

.loopexit439:                                     ; preds = %.lr.ph, %.lr.ph445, %158, %167
  %173 = load float, ptr %10, align 4, !tbaa !9
  %174 = fcmp ogt float %173, 0.000000e+00
  br i1 %174, label %175, label %178

175:                                              ; preds = %.loopexit439
  %176 = load float, ptr %27, align 4, !tbaa !9
  %177 = fmul float %173, %176
  store float %177, ptr %33, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %175, %.loopexit439
  br i1 %.not390, label %185, label %179

179:                                              ; preds = %178
  %180 = load float, ptr %6, align 4, !tbaa !9
  %181 = load float, ptr %27, align 4, !tbaa !9
  %182 = fmul float %180, %181
  store float %182, ptr %36, align 4, !tbaa !9
  %183 = load float, ptr %7, align 4, !tbaa !9
  %184 = fmul float %181, %183
  store float %184, ptr %37, align 4, !tbaa !9
  br label %185

185:                                              ; preds = %154, %178, %179
  %186 = phi i1 [ true, %178 ], [ true, %179 ], [ false, %154 ]
  %187 = load i32, ptr %3, align 4, !tbaa !5
  %188 = add nsw i32 %187, 1
  %189 = add nsw i32 %188, %187
  %190 = load i32, ptr %30, align 4, !tbaa !5
  %191 = add nsw i32 %188, %190
  %192 = load i32, ptr %16, align 4, !tbaa !5
  %reass.sub463 = sub i32 %192, %191
  %193 = add i32 %reass.sub463, 1
  store i32 %193, ptr %35, align 4, !tbaa !5
  %194 = sext i32 %188 to i64
  %195 = getelementptr inbounds float, ptr %48, i64 %194
  %196 = getelementptr inbounds %struct.complex, ptr %47, i64 %194
  %197 = sext i32 %191 to i64
  %198 = getelementptr inbounds %struct.complex, ptr %47, i64 %197
  call void @chetrd_2stage_(ptr noundef %0, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %17, ptr noundef nonnull %195, ptr noundef nonnull %15, ptr noundef nonnull %196, ptr noundef nonnull %30, ptr noundef nonnull %198, ptr noundef nonnull %35, ptr noundef nonnull %28) #6
  %.not395 = icmp eq i32 %55, 0
  br i1 %.not395, label %206, label %199

199:                                              ; preds = %185
  %200 = load i32, ptr %8, align 4, !tbaa !5
  %201 = icmp eq i32 %200, 1
  br i1 %201, label %202, label %206

202:                                              ; preds = %199
  %203 = load i32, ptr %9, align 4, !tbaa !5
  %204 = load i32, ptr %3, align 4, !tbaa !5
  %205 = icmp eq i32 %203, %204
  br label %206

206:                                              ; preds = %202, %199, %185
  %207 = phi i1 [ false, %199 ], [ false, %185 ], [ %205, %202 ]
  %or.cond9 = or i1 %60, %207
  br i1 %or.cond9, label %208, label %235

208:                                              ; preds = %206
  %209 = load float, ptr %10, align 4, !tbaa !9
  %210 = fcmp ugt float %209, 0.000000e+00
  br i1 %210, label %235, label %211

211:                                              ; preds = %208
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %17, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull @c__1) #6
  %212 = load i32, ptr %3, align 4, !tbaa !5
  %213 = shl i32 %212, 1
  %214 = add nsw i32 %213, %189
  br i1 %.not387, label %219, label %215

215:                                              ; preds = %211
  %216 = add nsw i32 %212, -1
  store i32 %216, ptr %22, align 4, !tbaa !5
  %217 = sext i32 %214 to i64
  %218 = getelementptr inbounds float, ptr %48, i64 %217
  call void @scopy_(ptr noundef nonnull %22, ptr noundef nonnull %195, ptr noundef nonnull @c__1, ptr noundef nonnull %218, ptr noundef nonnull @c__1) #6
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %218, ptr noundef nonnull %20) #6
  br label %.loopexit438

219:                                              ; preds = %211
  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 %198, ptr noundef nonnull %35, ptr noundef nonnull %28) #6
  %220 = load i32, ptr %3, align 4, !tbaa !5
  %221 = add nsw i32 %220, -1
  store i32 %221, ptr %22, align 4, !tbaa !5
  %222 = sext i32 %214 to i64
  %223 = getelementptr inbounds float, ptr %48, i64 %222
  call void @scopy_(ptr noundef nonnull %22, ptr noundef nonnull %195, ptr noundef nonnull @c__1, ptr noundef nonnull %223, ptr noundef nonnull @c__1) #6
  %224 = sext i32 %189 to i64
  %225 = getelementptr inbounds float, ptr %48, i64 %224
  call void @csteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %223, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %225, ptr noundef nonnull %20) #6
  %226 = load i32, ptr %20, align 4, !tbaa !5
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %228, label %.thread429

228:                                              ; preds = %219
  %229 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %229, ptr %22, align 4, !tbaa !5
  %.not397446 = icmp slt i32 %229, 1
  br i1 %.not397446, label %.loopexit438, label %.lr.ph448.preheader

.lr.ph448.preheader:                              ; preds = %228
  %230 = zext nneg i32 %229 to i64
  %231 = shl nuw nsw i64 %230, 2
  call void @llvm.memset.p0.i64(ptr align 4 %19, i8 0, i64 %231, i1 false), !tbaa !5
  br label %.loopexit438

.loopexit438:                                     ; preds = %.lr.ph448.preheader, %228, %215
  %.pr428 = load i32, ptr %20, align 4, !tbaa !5
  %232 = icmp eq i32 %.pr428, 0
  br i1 %232, label %233, label %.thread429

233:                                              ; preds = %.loopexit438
  %234 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %234, ptr %11, align 4, !tbaa !5
  br label %246

.thread429:                                       ; preds = %219, %.loopexit438
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %235

235:                                              ; preds = %206, %.thread429, %208
  %.413 = select i1 %.not387, i8 66, i8 69
  store i8 %.413, ptr %29, align 1, !tbaa !17
  %236 = load i32, ptr %3, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  %238 = add nsw i32 %237, %236
  %239 = sext i32 %237 to i64
  %240 = getelementptr inbounds i32, ptr %49, i64 %239
  %241 = sext i32 %189 to i64
  %242 = getelementptr inbounds float, ptr %48, i64 %241
  %243 = sext i32 %238 to i64
  %244 = getelementptr inbounds i32, ptr %49, i64 %243
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %33, ptr noundef %17, ptr noundef nonnull %195, ptr noundef nonnull %11, ptr noundef nonnull %34, ptr noundef %12, ptr noundef %18, ptr noundef nonnull %240, ptr noundef nonnull %242, ptr noundef nonnull %244, ptr noundef nonnull %20) #6
  br i1 %.not387, label %245, label %246

245:                                              ; preds = %235
  call void @cstein_(ptr noundef nonnull %3, ptr noundef %17, ptr noundef nonnull %195, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %18, ptr noundef nonnull %240, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %242, ptr noundef nonnull %244, 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 %198, ptr noundef nonnull %35, ptr noundef nonnull %28) #6
  br label %246

246:                                              ; preds = %235, %245, %233
  br i1 %186, label %247, label %257

247:                                              ; preds = %246
  %248 = load i32, ptr %20, align 4, !tbaa !5
  %249 = icmp eq i32 %248, 0
  br i1 %249, label %250, label %252

250:                                              ; preds = %247
  %251 = load i32, ptr %11, align 4, !tbaa !5
  br label %254

252:                                              ; preds = %247
  %253 = add nsw i32 %248, -1
  br label %254

254:                                              ; preds = %252, %250
  %storemerge400 = phi i32 [ %253, %252 ], [ %251, %250 ]
  store i32 %storemerge400, ptr %25, align 4, !tbaa !5
  %255 = load float, ptr %27, align 4, !tbaa !9
  %256 = fdiv float 1.000000e+00, %255
  store float %256, 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 %257

257:                                              ; preds = %254, %246
  br i1 %.not387, label %258, label %.loopexit

258:                                              ; preds = %257
  %259 = load i32, ptr %11, align 4, !tbaa !5
  %260 = add nsw i32 %259, -1
  store i32 %260, ptr %22, align 4, !tbaa !5
  %invariant.gep455 = getelementptr i8, ptr %46, i64 8
  store i32 1, ptr %26, align 4, !tbaa !5
  %.not403459 = icmp slt i32 %259, 2
  br i1 %.not403459, label %.loopexit, label %.lr.ph462

.lr.ph462:                                        ; preds = %258, %._crit_edge.thread
  %storemerge402460 = phi i32 [ %300, %._crit_edge.thread ], [ 1, %258 ]
  %261 = sext i32 %storemerge402460 to i64
  %262 = getelementptr inbounds float, ptr %42, i64 %261
  %263 = load float, ptr %262, align 4, !tbaa !9
  %264 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %264, ptr %23, align 4, !tbaa !5
  %.not404.not449 = icmp slt i32 %storemerge402460, %264
  br i1 %.not404.not449, label %.lr.ph453.preheader, label %._crit_edge.thread

.lr.ph453.preheader:                              ; preds = %.lr.ph462
  %wide.trip.count = sext i32 %264 to i64
  %265 = sub nsw i64 %wide.trip.count, %261
  %xtraiter = and i64 %265, 1
  %266 = add nsw i64 %wide.trip.count, -1
  %267 = icmp eq i64 %266, %261
  br i1 %267, label %._crit_edge.unr-lcssa, label %.lr.ph453.preheader.new

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

.lr.ph453:                                        ; preds = %.lr.ph453, %.lr.ph453.preheader.new
  %indvars.iv = phi i64 [ %261, %.lr.ph453.preheader.new ], [ %indvars.iv.next.1, %.lr.ph453 ]
  %.0452 = phi float [ %263, %.lr.ph453.preheader.new ], [ %.1.1, %.lr.ph453 ]
  %.1361451 = phi i32 [ 0, %.lr.ph453.preheader.new ], [ %.2.1, %.lr.ph453 ]
  %niter = phi i64 [ 0, %.lr.ph453.preheader.new ], [ %niter.next.1, %.lr.ph453 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %268 = getelementptr float, ptr %12, i64 %indvars.iv
  %269 = load float, ptr %268, align 4, !tbaa !9
  %270 = fcmp olt float %269, %.0452
  %271 = trunc nsw i64 %indvars.iv.next to i32
  %.2 = select i1 %270, i32 %271, i32 %.1361451
  %.1 = select i1 %270, float %269, float %.0452
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, 2
  %272 = getelementptr float, ptr %12, i64 %indvars.iv.next
  %273 = load float, ptr %272, align 4, !tbaa !9
  %274 = fcmp olt float %273, %.1
  %275 = trunc nsw i64 %indvars.iv.next.1 to i32
  %.2.1 = select i1 %274, i32 %275, i32 %.2
  %.1.1 = select i1 %274, float %273, 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.ph453, !llvm.loop !18

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph453, %.lr.ph453.preheader
  %.2.lcssa.ph = phi i32 [ poison, %.lr.ph453.preheader ], [ %.2.1, %.lr.ph453 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph453.preheader ], [ %.1.1, %.lr.ph453 ]
  %indvars.iv.unr = phi i64 [ %261, %.lr.ph453.preheader ], [ %indvars.iv.next.1, %.lr.ph453 ]
  %.0452.unr = phi float [ %263, %.lr.ph453.preheader ], [ %.1.1, %.lr.ph453 ]
  %.1361451.unr = phi i32 [ 0, %.lr.ph453.preheader ], [ %.2.1, %.lr.ph453 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph453.epil

.lr.ph453.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %276 = getelementptr float, ptr %12, i64 %indvars.iv.unr
  %277 = load float, ptr %276, align 4, !tbaa !9
  %278 = fcmp olt float %277, %.0452.unr
  %279 = trunc i64 %indvars.iv.unr to i32
  %280 = add i32 %279, 1
  %.2.epil = select i1 %278, i32 %280, i32 %.1361451.unr
  %.1.epil = select i1 %278, float %277, float %.0452.unr
  br label %._crit_edge

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

281:                                              ; preds = %._crit_edge
  %282 = sext i32 %.2.lcssa to i64
  %283 = getelementptr inbounds i32, ptr %49, i64 %282
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = getelementptr inbounds float, ptr %42, i64 %282
  store float %263, ptr %285, align 4, !tbaa !9
  %286 = getelementptr inbounds i32, ptr %49, i64 %261
  %287 = load i32, ptr %286, align 4, !tbaa !5
  store i32 %287, ptr %283, align 4, !tbaa !5
  store float %.1.lcssa, ptr %262, align 4, !tbaa !9
  store i32 %284, ptr %286, align 4, !tbaa !5
  %288 = mul nsw i32 %.2.lcssa, %43
  %289 = sext i32 %288 to i64
  %gep456 = getelementptr %struct.complex, ptr %invariant.gep455, i64 %289
  %290 = mul nsw i32 %storemerge402460, %43
  %291 = sext i32 %290 to i64
  %gep458 = getelementptr %struct.complex, ptr %invariant.gep455, i64 %291
  call void @cswap_(ptr noundef nonnull %3, ptr noundef %gep456, ptr noundef nonnull @c__1, ptr noundef %gep458, ptr noundef nonnull @c__1) #6
  %292 = load i32, ptr %20, align 4, !tbaa !5
  %.not406 = icmp eq i32 %292, 0
  %.pre = load i32, ptr %26, align 4, !tbaa !5
  br i1 %.not406, label %._crit_edge.thread, label %293

293:                                              ; preds = %281
  %294 = getelementptr inbounds i32, ptr %50, i64 %282
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = sext i32 %.pre to i64
  %297 = getelementptr inbounds i32, ptr %50, i64 %296
  %298 = load i32, ptr %297, align 4, !tbaa !5
  store i32 %298, ptr %294, align 4, !tbaa !5
  store i32 %295, ptr %297, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph462, %._crit_edge, %293, %281
  %299 = phi i32 [ %storemerge402460, %._crit_edge ], [ %.pre, %293 ], [ %.pre, %281 ], [ %storemerge402460, %.lr.ph462 ]
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr %26, align 4, !tbaa !5
  %301 = load i32, ptr %22, align 4, !tbaa !5
  %.not403.not = icmp slt i32 %299, %301
  br i1 %.not403.not, label %.lr.ph462, label %.loopexit, !llvm.loop !19

.loopexit:                                        ; preds = %._crit_edge.thread, %258, %257
  %302 = sitofp i32 %.0362 to float
  store float %302, ptr %15, align 4, !tbaa !11
  store float 0.000000e+00, ptr %106, align 4, !tbaa !13
  br label %303

303:                                              ; preds = %130, %131, %113, %112, %.loopexit, %.thread422
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  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 @ilaenv2stage_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

; 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_2stage_(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 @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

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