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

; 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 }

@c__10 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@c__4 = external hidden global i64, align 8
@.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
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1

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

147:                                              ; preds = %23
  %148 = load ptr, ptr %44, align 8, !tbaa !5
  %149 = load i64, ptr %148, align 8, !tbaa !9
  %150 = icmp eq i64 %149, -1
  br i1 %150, label %155, label %151

151:                                              ; preds = %147
  %152 = load ptr, ptr %46, align 8, !tbaa !5
  %153 = load i64, ptr %152, align 8, !tbaa !9
  %154 = icmp eq i64 %153, -1
  br label %155

155:                                              ; preds = %151, %147, %23
  %156 = phi i1 [ true, %147 ], [ true, %23 ], [ %154, %151 ]
  %157 = zext i1 %156 to i32
  %158 = sext i32 %157 to i64
  store i64 %158, ptr %103, align 8, !tbaa !9
  store i64 1, ptr %52, align 8, !tbaa !9
  %159 = load ptr, ptr %28, align 8, !tbaa !5
  %160 = load i64, ptr %159, align 8, !tbaa !9
  %161 = mul nsw i64 %160, 24
  store i64 %161, ptr %53, align 8, !tbaa !9
  %162 = load i64, ptr %52, align 8, !tbaa !9
  %163 = load i64, ptr %53, align 8, !tbaa !9
  %164 = icmp sge i64 %162, %163
  br i1 %164, label %165, label %167

165:                                              ; preds = %155
  %166 = load i64, ptr %52, align 8, !tbaa !9
  br label %169

167:                                              ; preds = %155
  %168 = load i64, ptr %53, align 8, !tbaa !9
  br label %169

169:                                              ; preds = %167, %165
  %170 = phi i64 [ %166, %165 ], [ %168, %167 ]
  store i64 %170, ptr %98, align 8, !tbaa !9
  store i64 1, ptr %52, align 8, !tbaa !9
  %171 = load ptr, ptr %28, align 8, !tbaa !5
  %172 = load i64, ptr %171, align 8, !tbaa !9
  %173 = mul nsw i64 %172, 10
  store i64 %173, ptr %53, align 8, !tbaa !9
  %174 = load i64, ptr %52, align 8, !tbaa !9
  %175 = load i64, ptr %53, align 8, !tbaa !9
  %176 = icmp sge i64 %174, %175
  br i1 %176, label %177, label %179

177:                                              ; preds = %169
  %178 = load i64, ptr %52, align 8, !tbaa !9
  br label %181

179:                                              ; preds = %169
  %180 = load i64, ptr %53, align 8, !tbaa !9
  br label %181

181:                                              ; preds = %179, %177
  %182 = phi i64 [ %178, %177 ], [ %180, %179 ]
  store i64 %182, ptr %96, align 8, !tbaa !9
  store i64 1, ptr %52, align 8, !tbaa !9
  %183 = load ptr, ptr %28, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = shl i64 %184, 1
  store i64 %185, ptr %53, align 8, !tbaa !9
  %186 = load i64, ptr %52, align 8, !tbaa !9
  %187 = load i64, ptr %53, align 8, !tbaa !9
  %188 = icmp sge i64 %186, %187
  br i1 %188, label %189, label %191

189:                                              ; preds = %181
  %190 = load i64, ptr %52, align 8, !tbaa !9
  br label %193

191:                                              ; preds = %181
  %192 = load i64, ptr %53, align 8, !tbaa !9
  br label %193

193:                                              ; preds = %191, %189
  %194 = phi i64 [ %190, %189 ], [ %192, %191 ]
  store i64 %194, ptr %76, align 8, !tbaa !9
  %195 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 0, ptr %195, align 8, !tbaa !9
  %196 = load i64, ptr %78, align 8, !tbaa !9
  %197 = icmp ne i64 %196, 0
  br i1 %197, label %204, label %198

198:                                              ; preds = %193
  %199 = load ptr, ptr %25, align 8, !tbaa !5
  %200 = call i64 @lsame_(ptr noundef %199, ptr noundef @.str.1)
  %201 = icmp ne i64 %200, 0
  br i1 %201, label %204, label %202

202:                                              ; preds = %198
  %203 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -1, ptr %203, align 8, !tbaa !9
  br label %316

204:                                              ; preds = %198, %193
  %205 = load i64, ptr %79, align 8, !tbaa !9
  %206 = icmp ne i64 %205, 0
  br i1 %206, label %215, label %207

207:                                              ; preds = %204
  %208 = load i64, ptr %87, align 8, !tbaa !9
  %209 = icmp ne i64 %208, 0
  br i1 %209, label %215, label %210

210:                                              ; preds = %207
  %211 = load i64, ptr %80, align 8, !tbaa !9
  %212 = icmp ne i64 %211, 0
  br i1 %212, label %215, label %213

213:                                              ; preds = %210
  %214 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -2, ptr %214, align 8, !tbaa !9
  br label %315

215:                                              ; preds = %210, %207, %204
  %216 = load i64, ptr %77, align 8, !tbaa !9
  %217 = icmp ne i64 %216, 0
  br i1 %217, label %224, label %218

218:                                              ; preds = %215
  %219 = load ptr, ptr %27, align 8, !tbaa !5
  %220 = call i64 @lsame_(ptr noundef %219, ptr noundef @.str.6)
  %221 = icmp ne i64 %220, 0
  br i1 %221, label %224, label %222

222:                                              ; preds = %218
  %223 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -3, ptr %223, align 8, !tbaa !9
  br label %314

224:                                              ; preds = %218, %215
  %225 = load ptr, ptr %28, align 8, !tbaa !5
  %226 = load i64, ptr %225, align 8, !tbaa !9
  %227 = icmp slt i64 %226, 0
  br i1 %227, label %228, label %230

228:                                              ; preds = %224
  %229 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -4, ptr %229, align 8, !tbaa !9
  br label %313

230:                                              ; preds = %224
  %231 = load ptr, ptr %30, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = load ptr, ptr %28, align 8, !tbaa !5
  %234 = load i64, ptr %233, align 8, !tbaa !9
  %235 = icmp sge i64 1, %234
  br i1 %235, label %236, label %237

236:                                              ; preds = %230
  br label %240

237:                                              ; preds = %230
  %238 = load ptr, ptr %28, align 8, !tbaa !5
  %239 = load i64, ptr %238, align 8, !tbaa !9
  br label %240

240:                                              ; preds = %237, %236
  %241 = phi i64 [ 1, %236 ], [ %239, %237 ]
  %242 = icmp slt i64 %232, %241
  br i1 %242, label %243, label %245

243:                                              ; preds = %240
  %244 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -6, ptr %244, align 8, !tbaa !9
  br label %312

245:                                              ; preds = %240
  %246 = load i64, ptr %87, align 8, !tbaa !9
  %247 = icmp ne i64 %246, 0
  br i1 %247, label %248, label %261

248:                                              ; preds = %245
  %249 = load ptr, ptr %28, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = icmp sgt i64 %250, 0
  br i1 %251, label %252, label %260

252:                                              ; preds = %248
  %253 = load ptr, ptr %32, align 8, !tbaa !5
  %254 = load float, ptr %253, align 4, !tbaa !11
  %255 = load ptr, ptr %31, align 8, !tbaa !5
  %256 = load float, ptr %255, align 4, !tbaa !11
  %257 = fcmp ole float %254, %256
  br i1 %257, label %258, label %260

258:                                              ; preds = %252
  %259 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -8, ptr %259, align 8, !tbaa !9
  br label %260

260:                                              ; preds = %258, %252, %248
  br label %311

261:                                              ; preds = %245
  %262 = load i64, ptr %80, align 8, !tbaa !9
  %263 = icmp ne i64 %262, 0
  br i1 %263, label %264, label %310

264:                                              ; preds = %261
  %265 = load ptr, ptr %33, align 8, !tbaa !5
  %266 = load i64, ptr %265, align 8, !tbaa !9
  %267 = icmp slt i64 %266, 1
  br i1 %267, label %281, label %268

268:                                              ; preds = %264
  %269 = load ptr, ptr %33, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  %271 = load ptr, ptr %28, align 8, !tbaa !5
  %272 = load i64, ptr %271, align 8, !tbaa !9
  %273 = icmp sge i64 1, %272
  br i1 %273, label %274, label %275

274:                                              ; preds = %268
  br label %278

275:                                              ; preds = %268
  %276 = load ptr, ptr %28, align 8, !tbaa !5
  %277 = load i64, ptr %276, align 8, !tbaa !9
  br label %278

278:                                              ; preds = %275, %274
  %279 = phi i64 [ 1, %274 ], [ %277, %275 ]
  %280 = icmp sgt i64 %270, %279
  br i1 %280, label %281, label %283

281:                                              ; preds = %278, %264
  %282 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -9, ptr %282, align 8, !tbaa !9
  br label %309

283:                                              ; preds = %278
  %284 = load ptr, ptr %34, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = load ptr, ptr %28, align 8, !tbaa !5
  %287 = load i64, ptr %286, align 8, !tbaa !9
  %288 = load ptr, ptr %33, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = icmp sle i64 %287, %289
  br i1 %290, label %291, label %294

291:                                              ; preds = %283
  %292 = load ptr, ptr %28, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  br label %297

294:                                              ; preds = %283
  %295 = load ptr, ptr %33, align 8, !tbaa !5
  %296 = load i64, ptr %295, align 8, !tbaa !9
  br label %297

297:                                              ; preds = %294, %291
  %298 = phi i64 [ %293, %291 ], [ %296, %294 ]
  %299 = icmp slt i64 %285, %298
  br i1 %299, label %306, label %300

300:                                              ; preds = %297
  %301 = load ptr, ptr %34, align 8, !tbaa !5
  %302 = load i64, ptr %301, align 8, !tbaa !9
  %303 = load ptr, ptr %28, align 8, !tbaa !5
  %304 = load i64, ptr %303, align 8, !tbaa !9
  %305 = icmp sgt i64 %302, %304
  br i1 %305, label %306, label %308

306:                                              ; preds = %300, %297
  %307 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -10, ptr %307, align 8, !tbaa !9
  br label %308

308:                                              ; preds = %306, %300
  br label %309

309:                                              ; preds = %308, %281
  br label %310

310:                                              ; preds = %309, %261
  br label %311

311:                                              ; preds = %310, %260
  br label %312

312:                                              ; preds = %311, %243
  br label %313

313:                                              ; preds = %312, %228
  br label %314

314:                                              ; preds = %313, %222
  br label %315

315:                                              ; preds = %314, %213
  br label %316

316:                                              ; preds = %315, %202
  %317 = load ptr, ptr %47, align 8, !tbaa !5
  %318 = load i64, ptr %317, align 8, !tbaa !9
  %319 = icmp eq i64 %318, 0
  br i1 %319, label %320, label %336

320:                                              ; preds = %316
  %321 = load ptr, ptr %39, align 8, !tbaa !5
  %322 = load i64, ptr %321, align 8, !tbaa !9
  %323 = icmp slt i64 %322, 1
  br i1 %323, label %333, label %324

324:                                              ; preds = %320
  %325 = load i64, ptr %78, align 8, !tbaa !9
  %326 = icmp ne i64 %325, 0
  br i1 %326, label %327, label %335

327:                                              ; preds = %324
  %328 = load ptr, ptr %39, align 8, !tbaa !5
  %329 = load i64, ptr %328, align 8, !tbaa !9
  %330 = load ptr, ptr %28, align 8, !tbaa !5
  %331 = load i64, ptr %330, align 8, !tbaa !9
  %332 = icmp slt i64 %329, %331
  br i1 %332, label %333, label %335

333:                                              ; preds = %327, %320
  %334 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -15, ptr %334, align 8, !tbaa !9
  br label %335

335:                                              ; preds = %333, %327, %324
  br label %336

336:                                              ; preds = %335, %316
  %337 = load ptr, ptr %47, align 8, !tbaa !5
  %338 = load i64, ptr %337, align 8, !tbaa !9
  %339 = icmp eq i64 %338, 0
  br i1 %339, label %340, label %418

340:                                              ; preds = %336
  %341 = load ptr, ptr %27, align 8, !tbaa !5
  %342 = load ptr, ptr %28, align 8, !tbaa !5
  %343 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef %341, ptr noundef %342, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %343, ptr %58, align 8, !tbaa !9
  %344 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %344, ptr %52, align 8, !tbaa !9
  %345 = load ptr, ptr %27, align 8, !tbaa !5
  %346 = load ptr, ptr %28, align 8, !tbaa !5
  %347 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef %345, ptr noundef %346, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %347, ptr %53, align 8, !tbaa !9
  %348 = load i64, ptr %52, align 8, !tbaa !9
  %349 = load i64, ptr %53, align 8, !tbaa !9
  %350 = icmp sge i64 %348, %349
  br i1 %350, label %351, label %353

351:                                              ; preds = %340
  %352 = load i64, ptr %52, align 8, !tbaa !9
  br label %355

353:                                              ; preds = %340
  %354 = load i64, ptr %53, align 8, !tbaa !9
  br label %355

355:                                              ; preds = %353, %351
  %356 = phi i64 [ %352, %351 ], [ %354, %353 ]
  store i64 %356, ptr %58, align 8, !tbaa !9
  %357 = load i64, ptr %58, align 8, !tbaa !9
  %358 = add nsw i64 %357, 1
  %359 = load ptr, ptr %28, align 8, !tbaa !5
  %360 = load i64, ptr %359, align 8, !tbaa !9
  %361 = mul nsw i64 %358, %360
  store i64 %361, ptr %52, align 8, !tbaa !9
  %362 = load i64, ptr %52, align 8, !tbaa !9
  %363 = load i64, ptr %76, align 8, !tbaa !9
  %364 = icmp sge i64 %362, %363
  br i1 %364, label %365, label %367

365:                                              ; preds = %355
  %366 = load i64, ptr %52, align 8, !tbaa !9
  br label %369

367:                                              ; preds = %355
  %368 = load i64, ptr %76, align 8, !tbaa !9
  br label %369

369:                                              ; preds = %367, %365
  %370 = phi i64 [ %366, %365 ], [ %368, %367 ]
  store i64 %370, ptr %104, align 8, !tbaa !9
  %371 = load i64, ptr %104, align 8, !tbaa !9
  %372 = sitofp i64 %371 to float
  %373 = load ptr, ptr %41, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.complex, ptr %373, i64 1
  %375 = getelementptr inbounds %struct.complex, ptr %374, i32 0, i32 0
  store float %372, ptr %375, align 4, !tbaa !13
  %376 = load ptr, ptr %41, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.complex, ptr %376, i64 1
  %378 = getelementptr inbounds %struct.complex, ptr %377, i32 0, i32 1
  store float 0.000000e+00, ptr %378, align 4, !tbaa !15
  %379 = load i64, ptr %98, align 8, !tbaa !9
  %380 = sitofp i64 %379 to float
  %381 = load ptr, ptr %43, align 8, !tbaa !5
  %382 = getelementptr inbounds float, ptr %381, i64 1
  store float %380, ptr %382, align 4, !tbaa !11
  %383 = load i64, ptr %96, align 8, !tbaa !9
  %384 = load ptr, ptr %45, align 8, !tbaa !5
  %385 = getelementptr inbounds i64, ptr %384, i64 1
  store i64 %383, ptr %385, align 8, !tbaa !9
  %386 = load ptr, ptr %42, align 8, !tbaa !5
  %387 = load i64, ptr %386, align 8, !tbaa !9
  %388 = load i64, ptr %76, align 8, !tbaa !9
  %389 = icmp slt i64 %387, %388
  br i1 %389, label %390, label %395

390:                                              ; preds = %369
  %391 = load i64, ptr %103, align 8, !tbaa !9
  %392 = icmp ne i64 %391, 0
  br i1 %392, label %395, label %393

393:                                              ; preds = %390
  %394 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -18, ptr %394, align 8, !tbaa !9
  br label %417

395:                                              ; preds = %390, %369
  %396 = load ptr, ptr %44, align 8, !tbaa !5
  %397 = load i64, ptr %396, align 8, !tbaa !9
  %398 = load i64, ptr %98, align 8, !tbaa !9
  %399 = icmp slt i64 %397, %398
  br i1 %399, label %400, label %405

400:                                              ; preds = %395
  %401 = load i64, ptr %103, align 8, !tbaa !9
  %402 = icmp ne i64 %401, 0
  br i1 %402, label %405, label %403

403:                                              ; preds = %400
  %404 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -20, ptr %404, align 8, !tbaa !9
  br label %416

405:                                              ; preds = %400, %395
  %406 = load ptr, ptr %46, align 8, !tbaa !5
  %407 = load i64, ptr %406, align 8, !tbaa !9
  %408 = load i64, ptr %96, align 8, !tbaa !9
  %409 = icmp slt i64 %407, %408
  br i1 %409, label %410, label %415

410:                                              ; preds = %405
  %411 = load i64, ptr %103, align 8, !tbaa !9
  %412 = icmp ne i64 %411, 0
  br i1 %412, label %415, label %413

413:                                              ; preds = %410
  %414 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -22, ptr %414, align 8, !tbaa !9
  br label %415

415:                                              ; preds = %413, %410, %405
  br label %416

416:                                              ; preds = %415, %403
  br label %417

417:                                              ; preds = %416, %393
  br label %418

418:                                              ; preds = %417, %336
  %419 = load ptr, ptr %47, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = icmp ne i64 %420, 0
  br i1 %421, label %422, label %427

422:                                              ; preds = %418
  %423 = load ptr, ptr %47, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = sub nsw i64 0, %424
  store i64 %425, ptr %52, align 8, !tbaa !9
  %426 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %52)
  store i32 0, ptr %24, align 4
  store i32 1, ptr %106, align 4
  br label %1116

427:                                              ; preds = %418
  %428 = load i64, ptr %103, align 8, !tbaa !9
  %429 = icmp ne i64 %428, 0
  br i1 %429, label %430, label %431

430:                                              ; preds = %427
  store i32 0, ptr %24, align 4
  store i32 1, ptr %106, align 4
  br label %1116

431:                                              ; preds = %427
  br label %432

432:                                              ; preds = %431
  %433 = load ptr, ptr %36, align 8, !tbaa !5
  store i64 0, ptr %433, align 8, !tbaa !9
  %434 = load ptr, ptr %28, align 8, !tbaa !5
  %435 = load i64, ptr %434, align 8, !tbaa !9
  %436 = icmp eq i64 %435, 0
  br i1 %436, label %437, label %444

437:                                              ; preds = %432
  %438 = load ptr, ptr %41, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.complex, ptr %438, i64 1
  %440 = getelementptr inbounds %struct.complex, ptr %439, i32 0, i32 0
  store float 1.000000e+00, ptr %440, align 4, !tbaa !13
  %441 = load ptr, ptr %41, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.complex, ptr %441, i64 1
  %443 = getelementptr inbounds %struct.complex, ptr %442, i32 0, i32 1
  store float 0.000000e+00, ptr %443, align 4, !tbaa !15
  store i32 0, ptr %24, align 4
  store i32 1, ptr %106, align 4
  br label %1116

444:                                              ; preds = %432
  %445 = load ptr, ptr %28, align 8, !tbaa !5
  %446 = load i64, ptr %445, align 8, !tbaa !9
  %447 = icmp eq i64 %446, 1
  br i1 %447, label %448, label %520

448:                                              ; preds = %444
  %449 = load ptr, ptr %41, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.complex, ptr %449, i64 1
  %451 = getelementptr inbounds %struct.complex, ptr %450, i32 0, i32 0
  store float 2.000000e+00, ptr %451, align 4, !tbaa !13
  %452 = load ptr, ptr %41, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.complex, ptr %452, i64 1
  %454 = getelementptr inbounds %struct.complex, ptr %453, i32 0, i32 1
  store float 0.000000e+00, ptr %454, align 4, !tbaa !15
  %455 = load i64, ptr %79, align 8, !tbaa !9
  %456 = icmp ne i64 %455, 0
  br i1 %456, label %460, label %457

457:                                              ; preds = %448
  %458 = load i64, ptr %80, align 8, !tbaa !9
  %459 = icmp ne i64 %458, 0
  br i1 %459, label %460, label %471

460:                                              ; preds = %457, %448
  %461 = load ptr, ptr %36, align 8, !tbaa !5
  store i64 1, ptr %461, align 8, !tbaa !9
  %462 = load i64, ptr %48, align 8, !tbaa !9
  %463 = add nsw i64 %462, 1
  store i64 %463, ptr %52, align 8, !tbaa !9
  %464 = load ptr, ptr %29, align 8, !tbaa !5
  %465 = load i64, ptr %52, align 8, !tbaa !9
  %466 = getelementptr inbounds %struct.complex, ptr %464, i64 %465
  %467 = getelementptr inbounds %struct.complex, ptr %466, i32 0, i32 0
  %468 = load float, ptr %467, align 4, !tbaa !13
  %469 = load ptr, ptr %37, align 8, !tbaa !5
  %470 = getelementptr inbounds float, ptr %469, i64 1
  store float %468, ptr %470, align 4, !tbaa !11
  br label %505

471:                                              ; preds = %457
  %472 = load i64, ptr %48, align 8, !tbaa !9
  %473 = add nsw i64 %472, 1
  store i64 %473, ptr %52, align 8, !tbaa !9
  %474 = load i64, ptr %48, align 8, !tbaa !9
  %475 = add nsw i64 %474, 1
  store i64 %475, ptr %53, align 8, !tbaa !9
  %476 = load ptr, ptr %31, align 8, !tbaa !5
  %477 = load float, ptr %476, align 4, !tbaa !11
  %478 = load ptr, ptr %29, align 8, !tbaa !5
  %479 = load i64, ptr %52, align 8, !tbaa !9
  %480 = getelementptr inbounds %struct.complex, ptr %478, i64 %479
  %481 = getelementptr inbounds %struct.complex, ptr %480, i32 0, i32 0
  %482 = load float, ptr %481, align 4, !tbaa !13
  %483 = fcmp olt float %477, %482
  br i1 %483, label %484, label %504

484:                                              ; preds = %471
  %485 = load ptr, ptr %32, align 8, !tbaa !5
  %486 = load float, ptr %485, align 4, !tbaa !11
  %487 = load ptr, ptr %29, align 8, !tbaa !5
  %488 = load i64, ptr %53, align 8, !tbaa !9
  %489 = getelementptr inbounds %struct.complex, ptr %487, i64 %488
  %490 = getelementptr inbounds %struct.complex, ptr %489, i32 0, i32 0
  %491 = load float, ptr %490, align 4, !tbaa !13
  %492 = fcmp oge float %486, %491
  br i1 %492, label %493, label %504

493:                                              ; preds = %484
  %494 = load ptr, ptr %36, align 8, !tbaa !5
  store i64 1, ptr %494, align 8, !tbaa !9
  %495 = load i64, ptr %48, align 8, !tbaa !9
  %496 = add nsw i64 %495, 1
  store i64 %496, ptr %52, align 8, !tbaa !9
  %497 = load ptr, ptr %29, align 8, !tbaa !5
  %498 = load i64, ptr %52, align 8, !tbaa !9
  %499 = getelementptr inbounds %struct.complex, ptr %497, i64 %498
  %500 = getelementptr inbounds %struct.complex, ptr %499, i32 0, i32 0
  %501 = load float, ptr %500, align 4, !tbaa !13
  %502 = load ptr, ptr %37, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  store float %501, ptr %503, align 4, !tbaa !11
  br label %504

504:                                              ; preds = %493, %484, %471
  br label %505

505:                                              ; preds = %504, %460
  %506 = load i64, ptr %78, align 8, !tbaa !9
  %507 = icmp ne i64 %506, 0
  br i1 %507, label %508, label %519

508:                                              ; preds = %505
  %509 = load i64, ptr %50, align 8, !tbaa !9
  %510 = add nsw i64 %509, 1
  store i64 %510, ptr %52, align 8, !tbaa !9
  %511 = load ptr, ptr %38, align 8, !tbaa !5
  %512 = load i64, ptr %52, align 8, !tbaa !9
  %513 = getelementptr inbounds %struct.complex, ptr %511, i64 %512
  %514 = getelementptr inbounds %struct.complex, ptr %513, i32 0, i32 0
  store float 1.000000e+00, ptr %514, align 4, !tbaa !13
  %515 = load ptr, ptr %38, align 8, !tbaa !5
  %516 = load i64, ptr %52, align 8, !tbaa !9
  %517 = getelementptr inbounds %struct.complex, ptr %515, i64 %516
  %518 = getelementptr inbounds %struct.complex, ptr %517, i32 0, i32 1
  store float 0.000000e+00, ptr %518, align 4, !tbaa !15
  br label %519

519:                                              ; preds = %508, %505
  store i32 0, ptr %24, align 4
  store i32 1, ptr %106, align 4
  br label %1116

520:                                              ; preds = %444
  %521 = call double @slamch_(ptr noundef @.str.9)
  %522 = fptrunc double %521 to float
  store float %522, ptr %88, align 4, !tbaa !11
  %523 = call double @slamch_(ptr noundef @.str.10)
  %524 = fptrunc double %523 to float
  store float %524, ptr %60, align 4, !tbaa !11
  %525 = load float, ptr %88, align 4, !tbaa !11
  %526 = load float, ptr %60, align 4, !tbaa !11
  %527 = fdiv float %525, %526
  store float %527, ptr %102, align 4, !tbaa !11
  %528 = load float, ptr %102, align 4, !tbaa !11
  %529 = fdiv float 1.000000e+00, %528
  store float %529, ptr %90, align 4, !tbaa !11
  %530 = load float, ptr %102, align 4, !tbaa !11
  %531 = fpext float %530 to double
  %532 = call double @sqrt(double noundef %531) #4
  %533 = fptrunc double %532 to float
  store float %533, ptr %66, align 4, !tbaa !11
  %534 = load float, ptr %90, align 4, !tbaa !11
  %535 = fpext float %534 to double
  %536 = call double @sqrt(double noundef %535) #4
  %537 = fptrunc double %536 to float
  store float %537, ptr %54, align 4, !tbaa !11
  %538 = load float, ptr %88, align 4, !tbaa !11
  %539 = fpext float %538 to double
  %540 = call double @sqrt(double noundef %539) #4
  %541 = call double @sqrt(double noundef %540) #4
  %542 = fdiv double 1.000000e+00, %541
  %543 = fptrunc double %542 to float
  store float %543, ptr %55, align 4, !tbaa !11
  %544 = load float, ptr %54, align 4, !tbaa !11
  %545 = load float, ptr %55, align 4, !tbaa !11
  %546 = fcmp ole float %544, %545
  br i1 %546, label %547, label %549

547:                                              ; preds = %520
  %548 = load float, ptr %54, align 4, !tbaa !11
  br label %551

549:                                              ; preds = %520
  %550 = load float, ptr %55, align 4, !tbaa !11
  br label %551

551:                                              ; preds = %549, %547
  %552 = phi float [ %548, %547 ], [ %550, %549 ]
  %553 = fpext float %552 to double
  %554 = fptrunc double %553 to float
  store float %554, ptr %67, align 4, !tbaa !11
  store i64 0, ptr %81, align 8, !tbaa !9
  %555 = load ptr, ptr %35, align 8, !tbaa !5
  %556 = load float, ptr %555, align 4, !tbaa !11
  store float %556, ptr %89, align 4, !tbaa !11
  %557 = load i64, ptr %87, align 8, !tbaa !9
  %558 = icmp ne i64 %557, 0
  br i1 %558, label %559, label %564

559:                                              ; preds = %551
  %560 = load ptr, ptr %31, align 8, !tbaa !5
  %561 = load float, ptr %560, align 4, !tbaa !11
  store float %561, ptr %61, align 4, !tbaa !11
  %562 = load ptr, ptr %32, align 8, !tbaa !5
  %563 = load float, ptr %562, align 4, !tbaa !11
  store float %563, ptr %62, align 4, !tbaa !11
  br label %564

564:                                              ; preds = %559, %551
  %565 = load ptr, ptr %27, align 8, !tbaa !5
  %566 = load ptr, ptr %28, align 8, !tbaa !5
  %567 = load ptr, ptr %29, align 8, !tbaa !5
  %568 = load i64, ptr %49, align 8, !tbaa !9
  %569 = getelementptr inbounds %struct.complex, ptr %567, i64 %568
  %570 = load ptr, ptr %30, align 8, !tbaa !5
  %571 = load ptr, ptr %43, align 8, !tbaa !5
  %572 = getelementptr inbounds float, ptr %571, i64 1
  %573 = call double @clansy_(ptr noundef @.str.11, ptr noundef %565, ptr noundef %566, ptr noundef %569, ptr noundef %570, ptr noundef %572)
  %574 = fptrunc double %573 to float
  store float %574, ptr %64, align 4, !tbaa !11
  %575 = load float, ptr %64, align 4, !tbaa !11
  %576 = fcmp ogt float %575, 0.000000e+00
  br i1 %576, label %577, label %585

577:                                              ; preds = %564
  %578 = load float, ptr %64, align 4, !tbaa !11
  %579 = load float, ptr %66, align 4, !tbaa !11
  %580 = fcmp olt float %578, %579
  br i1 %580, label %581, label %585

581:                                              ; preds = %577
  store i64 1, ptr %81, align 8, !tbaa !9
  %582 = load float, ptr %66, align 4, !tbaa !11
  %583 = load float, ptr %64, align 4, !tbaa !11
  %584 = fdiv float %582, %583
  store float %584, ptr %72, align 4, !tbaa !11
  br label %594

585:                                              ; preds = %577, %564
  %586 = load float, ptr %64, align 4, !tbaa !11
  %587 = load float, ptr %67, align 4, !tbaa !11
  %588 = fcmp ogt float %586, %587
  br i1 %588, label %589, label %593

589:                                              ; preds = %585
  store i64 1, ptr %81, align 8, !tbaa !9
  %590 = load float, ptr %67, align 4, !tbaa !11
  %591 = load float, ptr %64, align 4, !tbaa !11
  %592 = fdiv float %590, %591
  store float %592, ptr %72, align 4, !tbaa !11
  br label %593

593:                                              ; preds = %589, %585
  br label %594

594:                                              ; preds = %593, %581
  %595 = load i64, ptr %81, align 8, !tbaa !9
  %596 = icmp eq i64 %595, 1
  br i1 %596, label %597, label %666

597:                                              ; preds = %594
  %598 = load i64, ptr %77, align 8, !tbaa !9
  %599 = icmp ne i64 %598, 0
  br i1 %599, label %600, label %625

600:                                              ; preds = %597
  %601 = load ptr, ptr %28, align 8, !tbaa !5
  %602 = load i64, ptr %601, align 8, !tbaa !9
  store i64 %602, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %603

603:                                              ; preds = %621, %600
  %604 = load i64, ptr %57, align 8, !tbaa !9
  %605 = load i64, ptr %52, align 8, !tbaa !9
  %606 = icmp sle i64 %604, %605
  br i1 %606, label %607, label %624

607:                                              ; preds = %603
  %608 = load ptr, ptr %28, align 8, !tbaa !5
  %609 = load i64, ptr %608, align 8, !tbaa !9
  %610 = load i64, ptr %57, align 8, !tbaa !9
  %611 = sub nsw i64 %609, %610
  %612 = add nsw i64 %611, 1
  store i64 %612, ptr %53, align 8, !tbaa !9
  %613 = load ptr, ptr %29, align 8, !tbaa !5
  %614 = load i64, ptr %57, align 8, !tbaa !9
  %615 = load i64, ptr %57, align 8, !tbaa !9
  %616 = load i64, ptr %48, align 8, !tbaa !9
  %617 = mul nsw i64 %615, %616
  %618 = add nsw i64 %614, %617
  %619 = getelementptr inbounds %struct.complex, ptr %613, i64 %618
  %620 = call i32 @f2c_csscal(ptr noundef %53, ptr noundef %72, ptr noundef %619, ptr noundef @c__1)
  br label %621

621:                                              ; preds = %607
  %622 = load i64, ptr %57, align 8, !tbaa !9
  %623 = add nsw i64 %622, 1
  store i64 %623, ptr %57, align 8, !tbaa !9
  br label %603, !llvm.loop !16

624:                                              ; preds = %603
  br label %644

625:                                              ; preds = %597
  %626 = load ptr, ptr %28, align 8, !tbaa !5
  %627 = load i64, ptr %626, align 8, !tbaa !9
  store i64 %627, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %628

628:                                              ; preds = %640, %625
  %629 = load i64, ptr %57, align 8, !tbaa !9
  %630 = load i64, ptr %52, align 8, !tbaa !9
  %631 = icmp sle i64 %629, %630
  br i1 %631, label %632, label %643

632:                                              ; preds = %628
  %633 = load ptr, ptr %29, align 8, !tbaa !5
  %634 = load i64, ptr %57, align 8, !tbaa !9
  %635 = load i64, ptr %48, align 8, !tbaa !9
  %636 = mul nsw i64 %634, %635
  %637 = add nsw i64 %636, 1
  %638 = getelementptr inbounds %struct.complex, ptr %633, i64 %637
  %639 = call i32 @f2c_csscal(ptr noundef %57, ptr noundef %72, ptr noundef %638, ptr noundef @c__1)
  br label %640

640:                                              ; preds = %632
  %641 = load i64, ptr %57, align 8, !tbaa !9
  %642 = add nsw i64 %641, 1
  store i64 %642, ptr %57, align 8, !tbaa !9
  br label %628, !llvm.loop !18

643:                                              ; preds = %628
  br label %644

644:                                              ; preds = %643, %624
  %645 = load ptr, ptr %35, align 8, !tbaa !5
  %646 = load float, ptr %645, align 4, !tbaa !11
  %647 = fcmp ogt float %646, 0.000000e+00
  br i1 %647, label %648, label %653

648:                                              ; preds = %644
  %649 = load ptr, ptr %35, align 8, !tbaa !5
  %650 = load float, ptr %649, align 4, !tbaa !11
  %651 = load float, ptr %72, align 4, !tbaa !11
  %652 = fmul float %650, %651
  store float %652, ptr %89, align 4, !tbaa !11
  br label %653

653:                                              ; preds = %648, %644
  %654 = load i64, ptr %87, align 8, !tbaa !9
  %655 = icmp ne i64 %654, 0
  br i1 %655, label %656, label %665

656:                                              ; preds = %653
  %657 = load ptr, ptr %31, align 8, !tbaa !5
  %658 = load float, ptr %657, align 4, !tbaa !11
  %659 = load float, ptr %72, align 4, !tbaa !11
  %660 = fmul float %658, %659
  store float %660, ptr %61, align 4, !tbaa !11
  %661 = load ptr, ptr %32, align 8, !tbaa !5
  %662 = load float, ptr %661, align 4, !tbaa !11
  %663 = load float, ptr %72, align 4, !tbaa !11
  %664 = fmul float %662, %663
  store float %664, ptr %62, align 4, !tbaa !11
  br label %665

665:                                              ; preds = %656, %653
  br label %666

666:                                              ; preds = %665, %594
  store i64 1, ptr %91, align 8, !tbaa !9
  %667 = load i64, ptr %91, align 8, !tbaa !9
  %668 = load ptr, ptr %28, align 8, !tbaa !5
  %669 = load i64, ptr %668, align 8, !tbaa !9
  %670 = add nsw i64 %667, %669
  store i64 %670, ptr %75, align 8, !tbaa !9
  %671 = load ptr, ptr %42, align 8, !tbaa !5
  %672 = load i64, ptr %671, align 8, !tbaa !9
  %673 = load i64, ptr %75, align 8, !tbaa !9
  %674 = sub nsw i64 %672, %673
  %675 = add nsw i64 %674, 1
  store i64 %675, ptr %100, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  %676 = load i64, ptr %70, align 8, !tbaa !9
  %677 = load ptr, ptr %28, align 8, !tbaa !5
  %678 = load i64, ptr %677, align 8, !tbaa !9
  %679 = add nsw i64 %676, %678
  store i64 %679, ptr %71, align 8, !tbaa !9
  %680 = load i64, ptr %71, align 8, !tbaa !9
  %681 = load ptr, ptr %28, align 8, !tbaa !5
  %682 = load i64, ptr %681, align 8, !tbaa !9
  %683 = add nsw i64 %680, %682
  store i64 %683, ptr %84, align 8, !tbaa !9
  %684 = load i64, ptr %84, align 8, !tbaa !9
  %685 = load ptr, ptr %28, align 8, !tbaa !5
  %686 = load i64, ptr %685, align 8, !tbaa !9
  %687 = add nsw i64 %684, %686
  store i64 %687, ptr %86, align 8, !tbaa !9
  %688 = load i64, ptr %86, align 8, !tbaa !9
  %689 = load ptr, ptr %28, align 8, !tbaa !5
  %690 = load i64, ptr %689, align 8, !tbaa !9
  %691 = add nsw i64 %688, %690
  store i64 %691, ptr %95, align 8, !tbaa !9
  %692 = load ptr, ptr %44, align 8, !tbaa !5
  %693 = load i64, ptr %692, align 8, !tbaa !9
  %694 = load i64, ptr %95, align 8, !tbaa !9
  %695 = sub nsw i64 %693, %694
  %696 = add nsw i64 %695, 1
  store i64 %696, ptr %105, align 8, !tbaa !9
  store i64 1, ptr %83, align 8, !tbaa !9
  %697 = load i64, ptr %83, align 8, !tbaa !9
  %698 = load ptr, ptr %28, align 8, !tbaa !5
  %699 = load i64, ptr %698, align 8, !tbaa !9
  %700 = add nsw i64 %697, %699
  store i64 %700, ptr %92, align 8, !tbaa !9
  %701 = load i64, ptr %92, align 8, !tbaa !9
  %702 = load ptr, ptr %28, align 8, !tbaa !5
  %703 = load i64, ptr %702, align 8, !tbaa !9
  %704 = add nsw i64 %701, %703
  store i64 %704, ptr %85, align 8, !tbaa !9
  %705 = load i64, ptr %92, align 8, !tbaa !9
  %706 = load ptr, ptr %28, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = add nsw i64 %705, %707
  store i64 %708, ptr %93, align 8, !tbaa !9
  %709 = load ptr, ptr %27, align 8, !tbaa !5
  %710 = load ptr, ptr %28, align 8, !tbaa !5
  %711 = load ptr, ptr %29, align 8, !tbaa !5
  %712 = load i64, ptr %49, align 8, !tbaa !9
  %713 = getelementptr inbounds %struct.complex, ptr %711, i64 %712
  %714 = load ptr, ptr %30, align 8, !tbaa !5
  %715 = load ptr, ptr %43, align 8, !tbaa !5
  %716 = load i64, ptr %70, align 8, !tbaa !9
  %717 = getelementptr inbounds float, ptr %715, i64 %716
  %718 = load ptr, ptr %43, align 8, !tbaa !5
  %719 = load i64, ptr %71, align 8, !tbaa !9
  %720 = getelementptr inbounds float, ptr %718, i64 %719
  %721 = load ptr, ptr %41, align 8, !tbaa !5
  %722 = load i64, ptr %91, align 8, !tbaa !9
  %723 = getelementptr inbounds %struct.complex, ptr %721, i64 %722
  %724 = load ptr, ptr %41, align 8, !tbaa !5
  %725 = load i64, ptr %75, align 8, !tbaa !9
  %726 = getelementptr inbounds %struct.complex, ptr %724, i64 %725
  %727 = call i32 @chetrd_(ptr noundef %709, ptr noundef %710, ptr noundef %713, ptr noundef %714, ptr noundef %717, ptr noundef %720, ptr noundef %723, ptr noundef %726, ptr noundef %100, ptr noundef %73)
  store i64 0, ptr %68, align 8, !tbaa !9
  %728 = load i64, ptr %80, align 8, !tbaa !9
  %729 = icmp ne i64 %728, 0
  br i1 %729, label %730, label %742

730:                                              ; preds = %666
  %731 = load ptr, ptr %33, align 8, !tbaa !5
  %732 = load i64, ptr %731, align 8, !tbaa !9
  %733 = icmp eq i64 %732, 1
  br i1 %733, label %734, label %741

734:                                              ; preds = %730
  %735 = load ptr, ptr %34, align 8, !tbaa !5
  %736 = load i64, ptr %735, align 8, !tbaa !9
  %737 = load ptr, ptr %28, align 8, !tbaa !5
  %738 = load i64, ptr %737, align 8, !tbaa !9
  %739 = icmp eq i64 %736, %738
  br i1 %739, label %740, label %741

740:                                              ; preds = %734
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %741

741:                                              ; preds = %740, %734, %730
  br label %742

742:                                              ; preds = %741, %666
  %743 = load i64, ptr %79, align 8, !tbaa !9
  %744 = icmp ne i64 %743, 0
  br i1 %744, label %748, label %745

745:                                              ; preds = %742
  %746 = load i64, ptr %68, align 8, !tbaa !9
  %747 = icmp ne i64 %746, 0
  br i1 %747, label %748, label %883

748:                                              ; preds = %745, %742
  %749 = load i64, ptr %82, align 8, !tbaa !9
  %750 = icmp eq i64 %749, 1
  br i1 %750, label %751, label %883

751:                                              ; preds = %748
  %752 = load i64, ptr %78, align 8, !tbaa !9
  %753 = icmp ne i64 %752, 0
  br i1 %753, label %780, label %754

754:                                              ; preds = %751
  %755 = load ptr, ptr %28, align 8, !tbaa !5
  %756 = load ptr, ptr %43, align 8, !tbaa !5
  %757 = load i64, ptr %70, align 8, !tbaa !9
  %758 = getelementptr inbounds float, ptr %756, i64 %757
  %759 = load ptr, ptr %37, align 8, !tbaa !5
  %760 = getelementptr inbounds float, ptr %759, i64 1
  %761 = call i32 @f2c_scopy(ptr noundef %755, ptr noundef %758, ptr noundef @c__1, ptr noundef %760, ptr noundef @c__1)
  %762 = load ptr, ptr %28, align 8, !tbaa !5
  %763 = load i64, ptr %762, align 8, !tbaa !9
  %764 = sub nsw i64 %763, 1
  store i64 %764, ptr %52, align 8, !tbaa !9
  %765 = load ptr, ptr %43, align 8, !tbaa !5
  %766 = load i64, ptr %71, align 8, !tbaa !9
  %767 = getelementptr inbounds float, ptr %765, i64 %766
  %768 = load ptr, ptr %43, align 8, !tbaa !5
  %769 = load i64, ptr %86, align 8, !tbaa !9
  %770 = getelementptr inbounds float, ptr %768, i64 %769
  %771 = call i32 @f2c_scopy(ptr noundef %52, ptr noundef %767, ptr noundef @c__1, ptr noundef %770, ptr noundef @c__1)
  %772 = load ptr, ptr %28, align 8, !tbaa !5
  %773 = load ptr, ptr %37, align 8, !tbaa !5
  %774 = getelementptr inbounds float, ptr %773, i64 1
  %775 = load ptr, ptr %43, align 8, !tbaa !5
  %776 = load i64, ptr %86, align 8, !tbaa !9
  %777 = getelementptr inbounds float, ptr %775, i64 %776
  %778 = load ptr, ptr %47, align 8, !tbaa !5
  %779 = call i32 @ssterf_(ptr noundef %772, ptr noundef %774, ptr noundef %777, ptr noundef %778)
  br label %873

780:                                              ; preds = %751
  %781 = load ptr, ptr %28, align 8, !tbaa !5
  %782 = load i64, ptr %781, align 8, !tbaa !9
  %783 = sub nsw i64 %782, 1
  store i64 %783, ptr %52, align 8, !tbaa !9
  %784 = load ptr, ptr %43, align 8, !tbaa !5
  %785 = load i64, ptr %71, align 8, !tbaa !9
  %786 = getelementptr inbounds float, ptr %784, i64 %785
  %787 = load ptr, ptr %43, align 8, !tbaa !5
  %788 = load i64, ptr %86, align 8, !tbaa !9
  %789 = getelementptr inbounds float, ptr %787, i64 %788
  %790 = call i32 @f2c_scopy(ptr noundef %52, ptr noundef %786, ptr noundef @c__1, ptr noundef %789, ptr noundef @c__1)
  %791 = load ptr, ptr %28, align 8, !tbaa !5
  %792 = load ptr, ptr %43, align 8, !tbaa !5
  %793 = load i64, ptr %70, align 8, !tbaa !9
  %794 = getelementptr inbounds float, ptr %792, i64 %793
  %795 = load ptr, ptr %43, align 8, !tbaa !5
  %796 = load i64, ptr %84, align 8, !tbaa !9
  %797 = getelementptr inbounds float, ptr %795, i64 %796
  %798 = call i32 @f2c_scopy(ptr noundef %791, ptr noundef %794, ptr noundef @c__1, ptr noundef %797, ptr noundef @c__1)
  %799 = load ptr, ptr %35, align 8, !tbaa !5
  %800 = load float, ptr %799, align 4, !tbaa !11
  %801 = load ptr, ptr %28, align 8, !tbaa !5
  %802 = load i64, ptr %801, align 8, !tbaa !9
  %803 = sitofp i64 %802 to float
  %804 = fmul float %803, 2.000000e+00
  %805 = load float, ptr %60, align 4, !tbaa !11
  %806 = fmul float %804, %805
  %807 = fcmp ole float %800, %806
  br i1 %807, label %808, label %809

808:                                              ; preds = %780
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %810

809:                                              ; preds = %780
  store i64 0, ptr %97, align 8, !tbaa !9
  br label %810

810:                                              ; preds = %809, %808
  %811 = load ptr, ptr %25, align 8, !tbaa !5
  %812 = load ptr, ptr %28, align 8, !tbaa !5
  %813 = load ptr, ptr %43, align 8, !tbaa !5
  %814 = load i64, ptr %84, align 8, !tbaa !9
  %815 = getelementptr inbounds float, ptr %813, i64 %814
  %816 = load ptr, ptr %43, align 8, !tbaa !5
  %817 = load i64, ptr %86, align 8, !tbaa !9
  %818 = getelementptr inbounds float, ptr %816, i64 %817
  %819 = load ptr, ptr %31, align 8, !tbaa !5
  %820 = load ptr, ptr %32, align 8, !tbaa !5
  %821 = load ptr, ptr %33, align 8, !tbaa !5
  %822 = load ptr, ptr %34, align 8, !tbaa !5
  %823 = load ptr, ptr %36, align 8, !tbaa !5
  %824 = load ptr, ptr %37, align 8, !tbaa !5
  %825 = getelementptr inbounds float, ptr %824, i64 1
  %826 = load ptr, ptr %38, align 8, !tbaa !5
  %827 = load i64, ptr %51, align 8, !tbaa !9
  %828 = getelementptr inbounds %struct.complex, ptr %826, i64 %827
  %829 = load ptr, ptr %39, align 8, !tbaa !5
  %830 = load ptr, ptr %28, align 8, !tbaa !5
  %831 = load ptr, ptr %40, align 8, !tbaa !5
  %832 = getelementptr inbounds i64, ptr %831, i64 1
  %833 = load ptr, ptr %43, align 8, !tbaa !5
  %834 = load i64, ptr %95, align 8, !tbaa !9
  %835 = getelementptr inbounds float, ptr %833, i64 %834
  %836 = load ptr, ptr %45, align 8, !tbaa !5
  %837 = getelementptr inbounds i64, ptr %836, i64 1
  %838 = load ptr, ptr %46, align 8, !tbaa !5
  %839 = load ptr, ptr %47, align 8, !tbaa !5
  %840 = call i32 @cstemr_(ptr noundef %811, ptr noundef @.str.4, ptr noundef %812, ptr noundef %815, ptr noundef %818, ptr noundef %819, ptr noundef %820, ptr noundef %821, ptr noundef %822, ptr noundef %823, ptr noundef %825, ptr noundef %828, ptr noundef %829, ptr noundef %830, ptr noundef %832, ptr noundef %97, ptr noundef %835, ptr noundef %105, ptr noundef %837, ptr noundef %838, ptr noundef %839)
  %841 = load i64, ptr %78, align 8, !tbaa !9
  %842 = icmp ne i64 %841, 0
  br i1 %842, label %843, label %872

843:                                              ; preds = %810
  %844 = load ptr, ptr %47, align 8, !tbaa !5
  %845 = load i64, ptr %844, align 8, !tbaa !9
  %846 = icmp eq i64 %845, 0
  br i1 %846, label %847, label %872

847:                                              ; preds = %843
  %848 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %848, ptr %94, align 8, !tbaa !9
  %849 = load ptr, ptr %42, align 8, !tbaa !5
  %850 = load i64, ptr %849, align 8, !tbaa !9
  %851 = load i64, ptr %94, align 8, !tbaa !9
  %852 = sub nsw i64 %850, %851
  %853 = add nsw i64 %852, 1
  store i64 %853, ptr %99, align 8, !tbaa !9
  %854 = load ptr, ptr %27, align 8, !tbaa !5
  %855 = load ptr, ptr %28, align 8, !tbaa !5
  %856 = load ptr, ptr %36, align 8, !tbaa !5
  %857 = load ptr, ptr %29, align 8, !tbaa !5
  %858 = load i64, ptr %49, align 8, !tbaa !9
  %859 = getelementptr inbounds %struct.complex, ptr %857, i64 %858
  %860 = load ptr, ptr %30, align 8, !tbaa !5
  %861 = load ptr, ptr %41, align 8, !tbaa !5
  %862 = load i64, ptr %91, align 8, !tbaa !9
  %863 = getelementptr inbounds %struct.complex, ptr %861, i64 %862
  %864 = load ptr, ptr %38, align 8, !tbaa !5
  %865 = load i64, ptr %51, align 8, !tbaa !9
  %866 = getelementptr inbounds %struct.complex, ptr %864, i64 %865
  %867 = load ptr, ptr %39, align 8, !tbaa !5
  %868 = load ptr, ptr %41, align 8, !tbaa !5
  %869 = load i64, ptr %94, align 8, !tbaa !9
  %870 = getelementptr inbounds %struct.complex, ptr %868, i64 %869
  %871 = call i32 @cunmtr_(ptr noundef @.str.2, ptr noundef %854, ptr noundef @.str.1, ptr noundef %855, ptr noundef %856, ptr noundef %859, ptr noundef %860, ptr noundef %863, ptr noundef %866, ptr noundef %867, ptr noundef %870, ptr noundef %99, ptr noundef %73)
  br label %872

872:                                              ; preds = %847, %843, %810
  br label %873

873:                                              ; preds = %872, %754
  %874 = load ptr, ptr %47, align 8, !tbaa !5
  %875 = load i64, ptr %874, align 8, !tbaa !9
  %876 = icmp eq i64 %875, 0
  br i1 %876, label %877, label %881

877:                                              ; preds = %873
  %878 = load ptr, ptr %28, align 8, !tbaa !5
  %879 = load i64, ptr %878, align 8, !tbaa !9
  %880 = load ptr, ptr %36, align 8, !tbaa !5
  store i64 %879, ptr %880, align 8, !tbaa !9
  br label %978

881:                                              ; preds = %873
  %882 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 0, ptr %882, align 8, !tbaa !9
  br label %883

883:                                              ; preds = %881, %748, %745
  %884 = load i64, ptr %78, align 8, !tbaa !9
  %885 = icmp ne i64 %884, 0
  br i1 %885, label %886, label %888

886:                                              ; preds = %883
  %887 = getelementptr inbounds [1 x i8], ptr %74, i64 0, i64 0
  store i8 66, ptr %887, align 1, !tbaa !19
  br label %890

888:                                              ; preds = %883
  %889 = getelementptr inbounds [1 x i8], ptr %74, i64 0, i64 0
  store i8 69, ptr %889, align 1, !tbaa !19
  br label %890

890:                                              ; preds = %888, %886
  %891 = load ptr, ptr %26, align 8, !tbaa !5
  %892 = getelementptr inbounds [1 x i8], ptr %74, i64 0, i64 0
  %893 = load ptr, ptr %28, align 8, !tbaa !5
  %894 = load ptr, ptr %33, align 8, !tbaa !5
  %895 = load ptr, ptr %34, align 8, !tbaa !5
  %896 = load ptr, ptr %43, align 8, !tbaa !5
  %897 = load i64, ptr %70, align 8, !tbaa !9
  %898 = getelementptr inbounds float, ptr %896, i64 %897
  %899 = load ptr, ptr %43, align 8, !tbaa !5
  %900 = load i64, ptr %71, align 8, !tbaa !9
  %901 = getelementptr inbounds float, ptr %899, i64 %900
  %902 = load ptr, ptr %36, align 8, !tbaa !5
  %903 = load ptr, ptr %37, align 8, !tbaa !5
  %904 = getelementptr inbounds float, ptr %903, i64 1
  %905 = load ptr, ptr %45, align 8, !tbaa !5
  %906 = load i64, ptr %83, align 8, !tbaa !9
  %907 = getelementptr inbounds i64, ptr %905, i64 %906
  %908 = load ptr, ptr %45, align 8, !tbaa !5
  %909 = load i64, ptr %92, align 8, !tbaa !9
  %910 = getelementptr inbounds i64, ptr %908, i64 %909
  %911 = load ptr, ptr %43, align 8, !tbaa !5
  %912 = load i64, ptr %95, align 8, !tbaa !9
  %913 = getelementptr inbounds float, ptr %911, i64 %912
  %914 = load ptr, ptr %45, align 8, !tbaa !5
  %915 = load i64, ptr %93, align 8, !tbaa !9
  %916 = getelementptr inbounds i64, ptr %914, i64 %915
  %917 = load ptr, ptr %47, align 8, !tbaa !5
  %918 = call i32 @sstebz_(ptr noundef %891, ptr noundef %892, ptr noundef %893, ptr noundef %61, ptr noundef %62, ptr noundef %894, ptr noundef %895, ptr noundef %89, ptr noundef %898, ptr noundef %901, ptr noundef %902, ptr noundef %101, ptr noundef %904, ptr noundef %907, ptr noundef %910, ptr noundef %913, ptr noundef %916, ptr noundef %917)
  %919 = load i64, ptr %78, align 8, !tbaa !9
  %920 = icmp ne i64 %919, 0
  br i1 %920, label %921, label %977

921:                                              ; preds = %890
  %922 = load ptr, ptr %28, align 8, !tbaa !5
  %923 = load ptr, ptr %43, align 8, !tbaa !5
  %924 = load i64, ptr %70, align 8, !tbaa !9
  %925 = getelementptr inbounds float, ptr %923, i64 %924
  %926 = load ptr, ptr %43, align 8, !tbaa !5
  %927 = load i64, ptr %71, align 8, !tbaa !9
  %928 = getelementptr inbounds float, ptr %926, i64 %927
  %929 = load ptr, ptr %36, align 8, !tbaa !5
  %930 = load ptr, ptr %37, align 8, !tbaa !5
  %931 = getelementptr inbounds float, ptr %930, i64 1
  %932 = load ptr, ptr %45, align 8, !tbaa !5
  %933 = load i64, ptr %83, align 8, !tbaa !9
  %934 = getelementptr inbounds i64, ptr %932, i64 %933
  %935 = load ptr, ptr %45, align 8, !tbaa !5
  %936 = load i64, ptr %92, align 8, !tbaa !9
  %937 = getelementptr inbounds i64, ptr %935, i64 %936
  %938 = load ptr, ptr %38, align 8, !tbaa !5
  %939 = load i64, ptr %51, align 8, !tbaa !9
  %940 = getelementptr inbounds %struct.complex, ptr %938, i64 %939
  %941 = load ptr, ptr %39, align 8, !tbaa !5
  %942 = load ptr, ptr %43, align 8, !tbaa !5
  %943 = load i64, ptr %95, align 8, !tbaa !9
  %944 = getelementptr inbounds float, ptr %942, i64 %943
  %945 = load ptr, ptr %45, align 8, !tbaa !5
  %946 = load i64, ptr %93, align 8, !tbaa !9
  %947 = getelementptr inbounds i64, ptr %945, i64 %946
  %948 = load ptr, ptr %45, align 8, !tbaa !5
  %949 = load i64, ptr %85, align 8, !tbaa !9
  %950 = getelementptr inbounds i64, ptr %948, i64 %949
  %951 = load ptr, ptr %47, align 8, !tbaa !5
  %952 = call i32 @cstein_(ptr noundef %922, ptr noundef %925, ptr noundef %928, ptr noundef %929, ptr noundef %931, ptr noundef %934, ptr noundef %937, ptr noundef %940, ptr noundef %941, ptr noundef %944, ptr noundef %947, ptr noundef %950, ptr noundef %951)
  %953 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %953, ptr %94, align 8, !tbaa !9
  %954 = load ptr, ptr %42, align 8, !tbaa !5
  %955 = load i64, ptr %954, align 8, !tbaa !9
  %956 = load i64, ptr %94, align 8, !tbaa !9
  %957 = sub nsw i64 %955, %956
  %958 = add nsw i64 %957, 1
  store i64 %958, ptr %99, align 8, !tbaa !9
  %959 = load ptr, ptr %27, align 8, !tbaa !5
  %960 = load ptr, ptr %28, align 8, !tbaa !5
  %961 = load ptr, ptr %36, align 8, !tbaa !5
  %962 = load ptr, ptr %29, align 8, !tbaa !5
  %963 = load i64, ptr %49, align 8, !tbaa !9
  %964 = getelementptr inbounds %struct.complex, ptr %962, i64 %963
  %965 = load ptr, ptr %30, align 8, !tbaa !5
  %966 = load ptr, ptr %41, align 8, !tbaa !5
  %967 = load i64, ptr %91, align 8, !tbaa !9
  %968 = getelementptr inbounds %struct.complex, ptr %966, i64 %967
  %969 = load ptr, ptr %38, align 8, !tbaa !5
  %970 = load i64, ptr %51, align 8, !tbaa !9
  %971 = getelementptr inbounds %struct.complex, ptr %969, i64 %970
  %972 = load ptr, ptr %39, align 8, !tbaa !5
  %973 = load ptr, ptr %41, align 8, !tbaa !5
  %974 = load i64, ptr %94, align 8, !tbaa !9
  %975 = getelementptr inbounds %struct.complex, ptr %973, i64 %974
  %976 = call i32 @cunmtr_(ptr noundef @.str.2, ptr noundef %959, ptr noundef @.str.1, ptr noundef %960, ptr noundef %961, ptr noundef %964, ptr noundef %965, ptr noundef %968, ptr noundef %971, ptr noundef %972, ptr noundef %975, ptr noundef %99, ptr noundef %73)
  br label %977

977:                                              ; preds = %921, %890
  br label %978

978:                                              ; preds = %977, %877
  %979 = load i64, ptr %81, align 8, !tbaa !9
  %980 = icmp eq i64 %979, 1
  br i1 %980, label %981, label %998

981:                                              ; preds = %978
  %982 = load ptr, ptr %47, align 8, !tbaa !5
  %983 = load i64, ptr %982, align 8, !tbaa !9
  %984 = icmp eq i64 %983, 0
  br i1 %984, label %985, label %988

985:                                              ; preds = %981
  %986 = load ptr, ptr %36, align 8, !tbaa !5
  %987 = load i64, ptr %986, align 8, !tbaa !9
  store i64 %987, ptr %65, align 8, !tbaa !9
  br label %992

988:                                              ; preds = %981
  %989 = load ptr, ptr %47, align 8, !tbaa !5
  %990 = load i64, ptr %989, align 8, !tbaa !9
  %991 = sub nsw i64 %990, 1
  store i64 %991, ptr %65, align 8, !tbaa !9
  br label %992

992:                                              ; preds = %988, %985
  %993 = load float, ptr %72, align 4, !tbaa !11
  %994 = fdiv float 1.000000e+00, %993
  store float %994, ptr %54, align 4, !tbaa !11
  %995 = load ptr, ptr %37, align 8, !tbaa !5
  %996 = getelementptr inbounds float, ptr %995, i64 1
  %997 = call i32 @f2c_sscal(ptr noundef %65, ptr noundef %54, ptr noundef %996, ptr noundef @c__1)
  br label %998

998:                                              ; preds = %992, %978
  %999 = load i64, ptr %78, align 8, !tbaa !9
  %1000 = icmp ne i64 %999, 0
  br i1 %1000, label %1001, label %1100

1001:                                             ; preds = %998
  %1002 = load ptr, ptr %36, align 8, !tbaa !5
  %1003 = load i64, ptr %1002, align 8, !tbaa !9
  %1004 = sub nsw i64 %1003, 1
  store i64 %1004, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1005

1005:                                             ; preds = %1096, %1001
  %1006 = load i64, ptr %57, align 8, !tbaa !9
  %1007 = load i64, ptr %52, align 8, !tbaa !9
  %1008 = icmp sle i64 %1006, %1007
  br i1 %1008, label %1009, label %1099

1009:                                             ; preds = %1005
  store i64 0, ptr %56, align 8, !tbaa !9
  %1010 = load ptr, ptr %37, align 8, !tbaa !5
  %1011 = load i64, ptr %57, align 8, !tbaa !9
  %1012 = getelementptr inbounds float, ptr %1010, i64 %1011
  %1013 = load float, ptr %1012, align 4, !tbaa !11
  store float %1013, ptr %63, align 4, !tbaa !11
  %1014 = load ptr, ptr %36, align 8, !tbaa !5
  %1015 = load i64, ptr %1014, align 8, !tbaa !9
  store i64 %1015, ptr %53, align 8, !tbaa !9
  %1016 = load i64, ptr %57, align 8, !tbaa !9
  %1017 = add nsw i64 %1016, 1
  store i64 %1017, ptr %59, align 8, !tbaa !9
  br label %1018

1018:                                             ; preds = %1036, %1009
  %1019 = load i64, ptr %59, align 8, !tbaa !9
  %1020 = load i64, ptr %53, align 8, !tbaa !9
  %1021 = icmp sle i64 %1019, %1020
  br i1 %1021, label %1022, label %1039

1022:                                             ; preds = %1018
  %1023 = load ptr, ptr %37, align 8, !tbaa !5
  %1024 = load i64, ptr %59, align 8, !tbaa !9
  %1025 = getelementptr inbounds float, ptr %1023, i64 %1024
  %1026 = load float, ptr %1025, align 4, !tbaa !11
  %1027 = load float, ptr %63, align 4, !tbaa !11
  %1028 = fcmp olt float %1026, %1027
  br i1 %1028, label %1029, label %1035

1029:                                             ; preds = %1022
  %1030 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %1030, ptr %56, align 8, !tbaa !9
  %1031 = load ptr, ptr %37, align 8, !tbaa !5
  %1032 = load i64, ptr %59, align 8, !tbaa !9
  %1033 = getelementptr inbounds float, ptr %1031, i64 %1032
  %1034 = load float, ptr %1033, align 4, !tbaa !11
  store float %1034, ptr %63, align 4, !tbaa !11
  br label %1035

1035:                                             ; preds = %1029, %1022
  br label %1036

1036:                                             ; preds = %1035
  %1037 = load i64, ptr %59, align 8, !tbaa !9
  %1038 = add nsw i64 %1037, 1
  store i64 %1038, ptr %59, align 8, !tbaa !9
  br label %1018, !llvm.loop !20

1039:                                             ; preds = %1018
  %1040 = load i64, ptr %56, align 8, !tbaa !9
  %1041 = icmp ne i64 %1040, 0
  br i1 %1041, label %1042, label %1095

1042:                                             ; preds = %1039
  %1043 = load ptr, ptr %45, align 8, !tbaa !5
  %1044 = load i64, ptr %83, align 8, !tbaa !9
  %1045 = load i64, ptr %56, align 8, !tbaa !9
  %1046 = add nsw i64 %1044, %1045
  %1047 = sub nsw i64 %1046, 1
  %1048 = getelementptr inbounds i64, ptr %1043, i64 %1047
  %1049 = load i64, ptr %1048, align 8, !tbaa !9
  store i64 %1049, ptr %69, align 8, !tbaa !9
  %1050 = load ptr, ptr %37, align 8, !tbaa !5
  %1051 = load i64, ptr %57, align 8, !tbaa !9
  %1052 = getelementptr inbounds float, ptr %1050, i64 %1051
  %1053 = load float, ptr %1052, align 4, !tbaa !11
  %1054 = load ptr, ptr %37, align 8, !tbaa !5
  %1055 = load i64, ptr %56, align 8, !tbaa !9
  %1056 = getelementptr inbounds float, ptr %1054, i64 %1055
  store float %1053, ptr %1056, align 4, !tbaa !11
  %1057 = load ptr, ptr %45, align 8, !tbaa !5
  %1058 = load i64, ptr %83, align 8, !tbaa !9
  %1059 = load i64, ptr %57, align 8, !tbaa !9
  %1060 = add nsw i64 %1058, %1059
  %1061 = sub nsw i64 %1060, 1
  %1062 = getelementptr inbounds i64, ptr %1057, i64 %1061
  %1063 = load i64, ptr %1062, align 8, !tbaa !9
  %1064 = load ptr, ptr %45, align 8, !tbaa !5
  %1065 = load i64, ptr %83, align 8, !tbaa !9
  %1066 = load i64, ptr %56, align 8, !tbaa !9
  %1067 = add nsw i64 %1065, %1066
  %1068 = sub nsw i64 %1067, 1
  %1069 = getelementptr inbounds i64, ptr %1064, i64 %1068
  store i64 %1063, ptr %1069, align 8, !tbaa !9
  %1070 = load float, ptr %63, align 4, !tbaa !11
  %1071 = load ptr, ptr %37, align 8, !tbaa !5
  %1072 = load i64, ptr %57, align 8, !tbaa !9
  %1073 = getelementptr inbounds float, ptr %1071, i64 %1072
  store float %1070, ptr %1073, align 4, !tbaa !11
  %1074 = load i64, ptr %69, align 8, !tbaa !9
  %1075 = load ptr, ptr %45, align 8, !tbaa !5
  %1076 = load i64, ptr %83, align 8, !tbaa !9
  %1077 = load i64, ptr %57, align 8, !tbaa !9
  %1078 = add nsw i64 %1076, %1077
  %1079 = sub nsw i64 %1078, 1
  %1080 = getelementptr inbounds i64, ptr %1075, i64 %1079
  store i64 %1074, ptr %1080, align 8, !tbaa !9
  %1081 = load ptr, ptr %28, align 8, !tbaa !5
  %1082 = load ptr, ptr %38, align 8, !tbaa !5
  %1083 = load i64, ptr %56, align 8, !tbaa !9
  %1084 = load i64, ptr %50, align 8, !tbaa !9
  %1085 = mul nsw i64 %1083, %1084
  %1086 = add nsw i64 %1085, 1
  %1087 = getelementptr inbounds %struct.complex, ptr %1082, i64 %1086
  %1088 = load ptr, ptr %38, align 8, !tbaa !5
  %1089 = load i64, ptr %57, align 8, !tbaa !9
  %1090 = load i64, ptr %50, align 8, !tbaa !9
  %1091 = mul nsw i64 %1089, %1090
  %1092 = add nsw i64 %1091, 1
  %1093 = getelementptr inbounds %struct.complex, ptr %1088, i64 %1092
  %1094 = call i32 @f2c_cswap(ptr noundef %1081, ptr noundef %1087, ptr noundef @c__1, ptr noundef %1093, ptr noundef @c__1)
  br label %1095

1095:                                             ; preds = %1042, %1039
  br label %1096

1096:                                             ; preds = %1095
  %1097 = load i64, ptr %57, align 8, !tbaa !9
  %1098 = add nsw i64 %1097, 1
  store i64 %1098, ptr %57, align 8, !tbaa !9
  br label %1005, !llvm.loop !21

1099:                                             ; preds = %1005
  br label %1100

1100:                                             ; preds = %1099, %998
  %1101 = load i64, ptr %104, align 8, !tbaa !9
  %1102 = sitofp i64 %1101 to float
  %1103 = load ptr, ptr %41, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.complex, ptr %1103, i64 1
  %1105 = getelementptr inbounds %struct.complex, ptr %1104, i32 0, i32 0
  store float %1102, ptr %1105, align 4, !tbaa !13
  %1106 = load ptr, ptr %41, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.complex, ptr %1106, i64 1
  %1108 = getelementptr inbounds %struct.complex, ptr %1107, i32 0, i32 1
  store float 0.000000e+00, ptr %1108, align 4, !tbaa !15
  %1109 = load i64, ptr %98, align 8, !tbaa !9
  %1110 = sitofp i64 %1109 to float
  %1111 = load ptr, ptr %43, align 8, !tbaa !5
  %1112 = getelementptr inbounds float, ptr %1111, i64 1
  store float %1110, ptr %1112, align 4, !tbaa !11
  %1113 = load i64, ptr %96, align 8, !tbaa !9
  %1114 = load ptr, ptr %45, align 8, !tbaa !5
  %1115 = getelementptr inbounds i64, ptr %1114, i64 1
  store i64 %1113, ptr %1115, align 8, !tbaa !9
  store i32 0, ptr %24, align 4
  store i32 1, ptr %106, align 4
  br label %1116

1116:                                             ; preds = %1100, %519, %437, %430, %422
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  %1117 = load i32, ptr %24, align 4
  ret i32 %1117
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@c__10 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@c__4 = external hidden global i64, align 8
@.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
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1

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

58:                                               ; preds = %23
  %59 = load i64, ptr %19, align 8, !tbaa !5
  %60 = icmp eq i64 %59, -1
  br i1 %60, label %64, label %61

61:                                               ; preds = %58
  %62 = load i64, ptr %21, align 8, !tbaa !5
  %63 = icmp eq i64 %62, -1
  br label %64

64:                                               ; preds = %61, %58, %23
  %65 = phi i1 [ true, %58 ], [ true, %23 ], [ %63, %61 ]
  %66 = load i64, ptr %3, align 8, !tbaa !5
  %67 = mul nsw i64 %66, 24
  %68 = icmp slt i64 %66, 1
  %69 = select i1 %68, i64 1, i64 %67
  %70 = mul nsw i64 %66, 10
  %71 = select i1 %68, i64 1, i64 %70
  %72 = shl i64 %66, 1
  %73 = tail call i64 @llvm.smax.i64(i64 %72, i64 1)
  store i64 0, ptr %22, align 8, !tbaa !5
  %.not = icmp ne i64 %52, 0
  br i1 %.not, label %76, label %74

74:                                               ; preds = %64
  %75 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not422 = icmp eq i64 %75, 0
  br i1 %.not422, label %.thread457.sink.split, label %76

76:                                               ; preds = %74, %64
  %77 = icmp ne i64 %53, 0
  %78 = icmp ne i64 %54, 0
  %or.cond = select i1 %77, i1 true, i1 %78
  %79 = icmp ne i64 %55, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %79
  br i1 %or.cond3, label %80, label %.thread457.sink.split

80:                                               ; preds = %76
  %.not423 = icmp eq i64 %51, 0
  br i1 %.not423, label %81, label %83

81:                                               ; preds = %80
  %82 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.6) #5
  %.not424 = icmp eq i64 %82, 0
  br i1 %.not424, label %.thread457.sink.split, label %83

83:                                               ; preds = %81, %80
  %84 = load i64, ptr %3, align 8, !tbaa !5
  %85 = icmp slt i64 %84, 0
  br i1 %85, label %.thread457.sink.split, label %86

86:                                               ; preds = %83
  %87 = load i64, ptr %5, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %84, i64 1)
  %88 = icmp slt i64 %87, %spec.select
  br i1 %88, label %.thread457.sink.split, label %89

89:                                               ; preds = %86
  br i1 %78, label %90, label %95

90:                                               ; preds = %89
  %.not471 = icmp eq i64 %84, 0
  br i1 %.not471, label %104, label %91

91:                                               ; preds = %90
  %92 = load float, ptr %7, align 4, !tbaa !9
  %93 = load float, ptr %6, align 4, !tbaa !9
  %94 = fcmp ugt float %92, %93
  br i1 %94, label %104, label %.thread457.sink.split

95:                                               ; preds = %89
  br i1 %79, label %96, label %104

96:                                               ; preds = %95
  %97 = load i64, ptr %8, align 8, !tbaa !5
  %98 = icmp slt i64 %97, 1
  %99 = icmp ugt i64 %97, %spec.select
  %or.cond469 = or i1 %98, %99
  br i1 %or.cond469, label %.thread457.sink.split, label %100

100:                                              ; preds = %96
  %101 = load i64, ptr %9, align 8, !tbaa !5
  %. = tail call i64 @llvm.umin.i64(i64 %84, i64 %97)
  %102 = icmp slt i64 %101, %.
  %103 = icmp ugt i64 %101, %84
  %or.cond470 = or i1 %102, %103
  br i1 %or.cond470, label %.thread457.sink.split, label %104

104:                                              ; preds = %100, %91, %90, %95
  %.pr = load i64, ptr %22, align 8, !tbaa !5
  %105 = icmp eq i64 %.pr, 0
  br i1 %105, label %106, label %.thread457

106:                                              ; preds = %104
  %107 = load i64, ptr %14, align 8, !tbaa !5
  %108 = icmp slt i64 %107, 1
  %109 = icmp ult i64 %107, %84
  %or.cond501 = and i1 %.not, %109
  %or.cond504 = or i1 %108, %or.cond501
  br i1 %or.cond504, label %.thread457.sink.split, label %.thread

.thread:                                          ; preds = %106
  %110 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.7, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  %111 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  store i64 %111, ptr %25, align 8, !tbaa !5
  %112 = tail call i64 @llvm.smax.i64(i64 %110, i64 %111)
  %113 = add nsw i64 %112, 1
  %114 = load i64, ptr %3, align 8, !tbaa !5
  %115 = mul nsw i64 %113, %114
  store i64 %115, ptr %24, align 8, !tbaa !5
  %116 = tail call i64 @llvm.smax.i64(i64 %115, i64 %73)
  %117 = uitofp nneg i64 %116 to float
  store float %117, ptr %16, align 4, !tbaa !11
  %118 = getelementptr inbounds i8, ptr %16, i64 4
  store float 0.000000e+00, ptr %118, align 4, !tbaa !13
  %119 = sitofp i64 %69 to float
  store float %119, ptr %18, align 4, !tbaa !9
  store i64 %71, ptr %20, align 8, !tbaa !5
  %120 = load i64, ptr %17, align 8, !tbaa !5
  %121 = icmp sge i64 %120, %73
  %or.cond5 = select i1 %121, i1 true, i1 %65
  br i1 %or.cond5, label %122, label %.thread457.sink.split

122:                                              ; preds = %.thread
  %123 = load i64, ptr %19, align 8, !tbaa !5
  %124 = icmp sge i64 %123, %69
  %or.cond7 = select i1 %124, i1 true, i1 %65
  br i1 %or.cond7, label %125, label %.thread457.sink.split

125:                                              ; preds = %122
  %126 = load i64, ptr %21, align 8, !tbaa !5
  %127 = icmp sge i64 %126, %71
  %or.cond9 = select i1 %127, i1 true, i1 %65
  br i1 %or.cond9, label %.thread452, label %.thread457.sink.split

.thread452:                                       ; preds = %125
  %.pr454.pr = load i64, ptr %22, align 8, !tbaa !5
  %.not428 = icmp eq i64 %.pr454.pr, 0
  br i1 %.not428, label %131, label %.thread457

.thread457.sink.split:                            ; preds = %125, %122, %.thread, %106, %100, %96, %91, %86, %83, %81, %76, %74
  %.sink = phi i64 [ -1, %74 ], [ -2, %76 ], [ -3, %81 ], [ -4, %83 ], [ -6, %86 ], [ -8, %91 ], [ -9, %96 ], [ -10, %100 ], [ -15, %106 ], [ -18, %.thread ], [ -20, %122 ], [ -22, %125 ]
  store i64 %.sink, ptr %22, align 8, !tbaa !5
  br label %.thread457

.thread457:                                       ; preds = %.thread457.sink.split, %104, %.thread452
  %128 = phi i64 [ %.pr454.pr, %.thread452 ], [ %.pr, %104 ], [ %.sink, %.thread457.sink.split ]
  %129 = sub nsw i64 0, %128
  store i64 %129, ptr %24, align 8, !tbaa !5
  %130 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %24) #5
  br label %312

131:                                              ; preds = %.thread452
  br i1 %65, label %312, label %132

132:                                              ; preds = %131
  store i64 0, ptr %11, align 8, !tbaa !5
  %133 = load i64, ptr %3, align 8, !tbaa !5
  switch i64 %133, label %148 [
    i64 0, label %134
    i64 1, label %135
  ]

134:                                              ; preds = %132
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %16, align 4, !tbaa !9
  br label %312

135:                                              ; preds = %132
  store <2 x float> <float 2.000000e+00, float 0.000000e+00>, ptr %16, align 4, !tbaa !9
  %or.cond11 = select i1 %77, i1 true, i1 %79
  br i1 %or.cond11, label %136, label %138

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

138:                                              ; preds = %135
  %139 = load float, ptr %6, align 4, !tbaa !9
  %140 = load float, ptr %4, align 4, !tbaa !11
  %141 = fcmp olt float %139, %140
  br i1 %141, label %142, label %146

142:                                              ; preds = %138
  %143 = load float, ptr %7, align 4, !tbaa !9
  %144 = fcmp ult float %143, %140
  br i1 %144, label %146, label %145

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

.sink.split:                                      ; preds = %136, %145
  %.sink502 = phi float [ %140, %145 ], [ %137, %136 ]
  store float %.sink502, ptr %12, align 4, !tbaa !9
  br label %146

146:                                              ; preds = %.sink.split, %138, %142
  br i1 %.not, label %147, label %312

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

148:                                              ; preds = %132
  %149 = tail call double @slamch_(ptr noundef nonnull @.str.9) #5
  %150 = fptrunc double %149 to float
  %151 = tail call double @slamch_(ptr noundef nonnull @.str.10) #5
  %152 = fptrunc double %151 to float
  %153 = fdiv float %150, %152
  %154 = fdiv float 1.000000e+00, %153
  %sqrtf = tail call float @sqrtf(float noundef %153) #3
  %sqrtf429 = tail call float @sqrtf(float noundef %154) #3
  store float %sqrtf429, ptr %26, align 4, !tbaa !9
  %155 = fpext float %150 to double
  %156 = tail call double @sqrt(double noundef %155) #5
  %157 = tail call double @sqrt(double noundef %156) #5
  %158 = fdiv double 1.000000e+00, %157
  %159 = fptrunc double %158 to float
  %160 = fcmp ole float %sqrtf429, %159
  %161 = select i1 %160, float %sqrtf429, float %159
  %162 = load float, ptr %10, align 4, !tbaa !9
  store float %162, ptr %34, align 4, !tbaa !9
  %.not430 = icmp eq i64 %54, 0
  br i1 %.not430, label %166, label %163

163:                                              ; preds = %148
  %164 = load float, ptr %6, align 4, !tbaa !9
  store float %164, ptr %28, align 4, !tbaa !9
  %165 = load float, ptr %7, align 4, !tbaa !9
  store float %165, ptr %29, align 4, !tbaa !9
  br label %166

166:                                              ; preds = %163, %148
  %167 = tail call double @clansy_(ptr noundef nonnull @.str.11, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %18) #5
  %168 = fptrunc double %167 to float
  %169 = fcmp ogt float %168, 0.000000e+00
  %170 = fcmp ogt float %sqrtf, %168
  %or.cond445 = select i1 %169, i1 %170, i1 false
  br i1 %or.cond445, label %173, label %171

171:                                              ; preds = %166
  %172 = fcmp olt float %161, %168
  br i1 %172, label %173, label %202

173:                                              ; preds = %171, %166
  %.pn = phi float [ %sqrtf, %166 ], [ %161, %171 ]
  %storemerge472 = fdiv float %.pn, %168
  store float %storemerge472, ptr %31, align 4, !tbaa !9
  %174 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %174, ptr %24, align 8, !tbaa !5
  br i1 %.not423, label %184, label %175

175:                                              ; preds = %173
  store i64 1, ptr %27, align 8, !tbaa !5
  %.not434476 = icmp slt i64 %174, 1
  br i1 %.not434476, label %.loopexit474, label %.lr.ph

.lr.ph:                                           ; preds = %175, %.lr.ph
  %storemerge433477 = phi i64 [ %182, %.lr.ph ], [ 1, %175 ]
  %176 = load i64, ptr %3, align 8, !tbaa !5
  %reass.sub = sub i64 %176, %storemerge433477
  %177 = add i64 %reass.sub, 1
  store i64 %177, ptr %25, align 8, !tbaa !5
  %178 = mul i64 %storemerge433477, %41
  %179 = getelementptr inbounds %struct.complex, ptr %43, i64 %178
  %180 = call i32 @f2c_csscal(ptr noundef nonnull %25, ptr noundef nonnull %31, ptr noundef %179, ptr noundef nonnull @c__1) #5
  %181 = load i64, ptr %27, align 8, !tbaa !5
  %182 = add nsw i64 %181, 1
  store i64 %182, ptr %27, align 8, !tbaa !5
  %183 = load i64, ptr %24, align 8, !tbaa !5
  %.not434.not = icmp slt i64 %181, %183
  br i1 %.not434.not, label %.lr.ph, label %.loopexit474, !llvm.loop !14

184:                                              ; preds = %173
  %invariant.gep = getelementptr i8, ptr %43, i64 8
  store i64 1, ptr %27, align 8, !tbaa !5
  %.not432478 = icmp slt i64 %174, 1
  br i1 %.not432478, label %.loopexit474, label %.lr.ph480

.lr.ph480:                                        ; preds = %184, %.lr.ph480
  %storemerge479 = phi i64 [ %188, %.lr.ph480 ], [ 1, %184 ]
  %185 = mul nsw i64 %storemerge479, %40
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %185
  %186 = call i32 @f2c_csscal(ptr noundef nonnull %27, ptr noundef nonnull %31, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %187 = load i64, ptr %27, align 8, !tbaa !5
  %188 = add nsw i64 %187, 1
  store i64 %188, ptr %27, align 8, !tbaa !5
  %189 = load i64, ptr %24, align 8, !tbaa !5
  %.not432.not = icmp slt i64 %187, %189
  br i1 %.not432.not, label %.lr.ph480, label %.loopexit474, !llvm.loop !16

.loopexit474:                                     ; preds = %.lr.ph, %.lr.ph480, %175, %184
  %190 = load float, ptr %10, align 4, !tbaa !9
  %191 = fcmp ogt float %190, 0.000000e+00
  br i1 %191, label %192, label %195

192:                                              ; preds = %.loopexit474
  %193 = load float, ptr %31, align 4, !tbaa !9
  %194 = fmul float %190, %193
  store float %194, ptr %34, align 4, !tbaa !9
  br label %195

195:                                              ; preds = %192, %.loopexit474
  br i1 %.not430, label %202, label %196

196:                                              ; preds = %195
  %197 = load float, ptr %6, align 4, !tbaa !9
  %198 = load float, ptr %31, align 4, !tbaa !9
  %199 = fmul float %197, %198
  store float %199, ptr %28, align 4, !tbaa !9
  %200 = load float, ptr %7, align 4, !tbaa !9
  %201 = fmul float %198, %200
  store float %201, ptr %29, align 4, !tbaa !9
  br label %202

202:                                              ; preds = %171, %195, %196
  %203 = phi i1 [ true, %195 ], [ true, %196 ], [ false, %171 ]
  %204 = load i64, ptr %3, align 8, !tbaa !5
  %205 = load i64, ptr %17, align 8, !tbaa !5
  %206 = sub i64 %205, %204
  store i64 %206, ptr %37, align 8, !tbaa !5
  %reass.add = shl i64 %204, 1
  %207 = or disjoint i64 %reass.add, 1
  %208 = add nsw i64 %207, %204
  %209 = add nsw i64 %208, %204
  %210 = load i64, ptr %19, align 8, !tbaa !5
  %211 = add i64 %210, 1
  %212 = sub i64 %211, %209
  store i64 %212, ptr %39, align 8, !tbaa !5
  %213 = getelementptr float, ptr %18, i64 %204
  %214 = getelementptr %struct.complex, ptr %16, i64 %204
  %215 = call i32 @chetrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef %213, ptr noundef nonnull %16, ptr noundef %214, ptr noundef nonnull %37, ptr noundef nonnull %32) #5
  %.not435 = icmp eq i64 %55, 0
  br i1 %.not435, label %223, label %216

216:                                              ; preds = %202
  %217 = load i64, ptr %8, align 8, !tbaa !5
  %218 = icmp eq i64 %217, 1
  br i1 %218, label %219, label %223

219:                                              ; preds = %216
  %220 = load i64, ptr %9, align 8, !tbaa !5
  %221 = load i64, ptr %3, align 8, !tbaa !5
  %222 = icmp eq i64 %220, %221
  br label %223

223:                                              ; preds = %219, %216, %202
  %224 = phi i1 [ false, %216 ], [ false, %202 ], [ %222, %219 ]
  %or.cond13 = or i1 %77, %224
  %225 = icmp eq i64 %50, 1
  %or.cond15 = select i1 %or.cond13, i1 %225, i1 false
  br i1 %or.cond15, label %226, label %259

226:                                              ; preds = %223
  br i1 %.not, label %234, label %227

227:                                              ; preds = %226
  %228 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull @c__1) #5
  %229 = load i64, ptr %3, align 8, !tbaa !5
  %230 = add nsw i64 %229, -1
  store i64 %230, ptr %24, align 8, !tbaa !5
  %231 = getelementptr inbounds float, ptr %48, i64 %208
  %232 = call i32 @f2c_scopy(ptr noundef nonnull %24, ptr noundef %213, ptr noundef nonnull @c__1, ptr noundef nonnull %231, ptr noundef nonnull @c__1) #5
  %233 = call i32 @ssterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %231, ptr noundef nonnull %22) #5
  br label %255

234:                                              ; preds = %226
  %235 = load i64, ptr %3, align 8, !tbaa !5
  %236 = add nsw i64 %235, -1
  store i64 %236, ptr %24, align 8, !tbaa !5
  %237 = getelementptr inbounds float, ptr %48, i64 %208
  %238 = call i32 @f2c_scopy(ptr noundef nonnull %24, ptr noundef %213, ptr noundef nonnull @c__1, ptr noundef nonnull %237, ptr noundef nonnull @c__1) #5
  %239 = getelementptr float, ptr %18, i64 %reass.add
  %240 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef %239, ptr noundef nonnull @c__1) #5
  %241 = load float, ptr %10, align 4, !tbaa !9
  %242 = load i64, ptr %3, align 8, !tbaa !5
  %243 = sitofp i64 %242 to float
  %244 = fmul float %243, 2.000000e+00
  %245 = fmul float %244, %152
  %246 = fcmp ole float %241, %245
  %.447 = zext i1 %246 to i64
  store i64 %.447, ptr %35, align 8, !tbaa !5
  %247 = getelementptr inbounds float, ptr %48, i64 %209
  %248 = call i32 @cstemr_(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef %239, ptr noundef nonnull %237, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %35, ptr noundef nonnull %247, ptr noundef nonnull %39, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %22) #5
  %249 = load i64, ptr %22, align 8, !tbaa !5
  %250 = icmp eq i64 %249, 0
  br i1 %250, label %251, label %.thread464

251:                                              ; preds = %234
  %252 = load i64, ptr %17, align 8, !tbaa !5
  %253 = sub i64 %252, %204
  store i64 %253, ptr %36, align 8, !tbaa !5
  %254 = call i32 @cunmtr_(ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %214, ptr noundef nonnull %36, ptr noundef nonnull %32) #5
  br label %255

255:                                              ; preds = %251, %227
  %.pr463 = load i64, ptr %22, align 8, !tbaa !5
  %256 = icmp eq i64 %.pr463, 0
  br i1 %256, label %257, label %.thread464

257:                                              ; preds = %255
  %258 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %258, ptr %11, align 8, !tbaa !5
  br label %269

.thread464:                                       ; preds = %234, %255
  store i64 0, ptr %22, align 8, !tbaa !5
  br label %259

259:                                              ; preds = %223, %.thread464
  %.448 = select i1 %.not, i8 66, i8 69
  store i8 %.448, ptr %33, align 1, !tbaa !17
  %260 = getelementptr i64, ptr %20, i64 %204
  %261 = getelementptr inbounds float, ptr %48, i64 %209
  %.idx = shl i64 %204, 4
  %262 = getelementptr i8, ptr %20, i64 %.idx
  %263 = call i32 @sstebz_(ptr noundef %1, ptr noundef nonnull %33, ptr noundef nonnull %3, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %34, ptr noundef nonnull %18, ptr noundef %213, ptr noundef nonnull %11, ptr noundef nonnull %38, ptr noundef %12, ptr noundef nonnull %20, ptr noundef %260, ptr noundef nonnull %261, ptr noundef %262, ptr noundef nonnull %22) #5
  br i1 %.not, label %264, label %269

264:                                              ; preds = %259
  %265 = call i32 @cstein_(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef %213, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %20, ptr noundef %260, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %261, ptr noundef %262, ptr noundef %262, ptr noundef nonnull %22) #5
  %266 = load i64, ptr %17, align 8, !tbaa !5
  %267 = sub i64 %266, %204
  store i64 %267, ptr %36, align 8, !tbaa !5
  %268 = call i32 @cunmtr_(ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %214, ptr noundef nonnull %36, ptr noundef nonnull %32) #5
  br label %269

269:                                              ; preds = %259, %264, %257
  br i1 %203, label %270, label %281

270:                                              ; preds = %269
  %271 = load i64, ptr %22, align 8, !tbaa !5
  %272 = icmp eq i64 %271, 0
  br i1 %272, label %273, label %275

273:                                              ; preds = %270
  %274 = load i64, ptr %11, align 8, !tbaa !5
  br label %277

275:                                              ; preds = %270
  %276 = add nsw i64 %271, -1
  br label %277

277:                                              ; preds = %275, %273
  %storemerge439 = phi i64 [ %276, %275 ], [ %274, %273 ]
  store i64 %storemerge439, ptr %30, align 8, !tbaa !5
  %278 = load float, ptr %31, align 4, !tbaa !9
  %279 = fdiv float 1.000000e+00, %278
  store float %279, ptr %26, align 4, !tbaa !9
  %280 = call i32 @f2c_sscal(ptr noundef nonnull %30, ptr noundef nonnull %26, ptr noundef %12, ptr noundef nonnull @c__1) #5
  br label %281

281:                                              ; preds = %277, %269
  br i1 %.not, label %282, label %.loopexit

282:                                              ; preds = %281
  %283 = load i64, ptr %11, align 8, !tbaa !5
  %284 = add nsw i64 %283, -1
  store i64 %284, ptr %24, align 8, !tbaa !5
  %invariant.gep487 = getelementptr i8, ptr %47, i64 8
  store i64 1, ptr %27, align 8, !tbaa !5
  %.not441491 = icmp slt i64 %283, 2
  br i1 %.not441491, label %.loopexit, label %.lr.ph494

.lr.ph494:                                        ; preds = %282, %._crit_edge.thread
  %285 = phi i64 [ %309, %._crit_edge.thread ], [ %284, %282 ]
  %storemerge440492 = phi i64 [ %311, %._crit_edge.thread ], [ 1, %282 ]
  %286 = getelementptr inbounds float, ptr %44, i64 %storemerge440492
  %287 = load float, ptr %286, align 4, !tbaa !9
  %288 = load i64, ptr %11, align 8, !tbaa !5
  store i64 %288, ptr %25, align 8, !tbaa !5
  %.not442.not481 = icmp slt i64 %storemerge440492, %288
  br i1 %.not442.not481, label %.lr.ph485.preheader, label %._crit_edge.thread

.lr.ph485.preheader:                              ; preds = %.lr.ph494
  %289 = sub i64 %288, %storemerge440492
  %.neg = add i64 %storemerge440492, 1
  %xtraiter = and i64 %289, 1
  %290 = icmp eq i64 %288, %.neg
  br i1 %290, label %._crit_edge.unr-lcssa, label %.lr.ph485.preheader.new

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

.lr.ph485:                                        ; preds = %.lr.ph485, %.lr.ph485.preheader.new
  %.0399484 = phi i64 [ 0, %.lr.ph485.preheader.new ], [ %.1.1, %.lr.ph485 ]
  %.0400.in483 = phi i64 [ %storemerge440492, %.lr.ph485.preheader.new ], [ %.0400.1, %.lr.ph485 ]
  %.0401482 = phi float [ %287, %.lr.ph485.preheader.new ], [ %.1402.1, %.lr.ph485 ]
  %niter = phi i64 [ 0, %.lr.ph485.preheader.new ], [ %niter.next.1, %.lr.ph485 ]
  %.0400 = add nsw i64 %.0400.in483, 1
  %291 = getelementptr float, ptr %12, i64 %.0400.in483
  %292 = load float, ptr %291, align 4, !tbaa !9
  %293 = fcmp olt float %292, %.0401482
  %.1402 = select i1 %293, float %292, float %.0401482
  %.1 = select i1 %293, i64 %.0400, i64 %.0399484
  %.0400.1 = add nsw i64 %.0400.in483, 2
  %294 = getelementptr float, ptr %12, i64 %.0400
  %295 = load float, ptr %294, align 4, !tbaa !9
  %296 = fcmp olt float %295, %.1402
  %.1402.1 = select i1 %296, float %295, float %.1402
  %.1.1 = select i1 %296, i64 %.0400.1, i64 %.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.ph485, !llvm.loop !18

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph485, %.lr.ph485.preheader
  %.1402.lcssa.ph = phi float [ poison, %.lr.ph485.preheader ], [ %.1402.1, %.lr.ph485 ]
  %.1.lcssa.ph = phi i64 [ poison, %.lr.ph485.preheader ], [ %.1.1, %.lr.ph485 ]
  %.0399484.unr = phi i64 [ 0, %.lr.ph485.preheader ], [ %.1.1, %.lr.ph485 ]
  %.0400.in483.unr = phi i64 [ %storemerge440492, %.lr.ph485.preheader ], [ %.0400.1, %.lr.ph485 ]
  %.0401482.unr = phi float [ %287, %.lr.ph485.preheader ], [ %.1402.1, %.lr.ph485 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph485.epil

.lr.ph485.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %.0400.epil = add nsw i64 %.0400.in483.unr, 1
  %297 = getelementptr float, ptr %12, i64 %.0400.in483.unr
  %298 = load float, ptr %297, align 4, !tbaa !9
  %299 = fcmp olt float %298, %.0401482.unr
  %.1402.epil = select i1 %299, float %298, float %.0401482.unr
  %.1.epil = select i1 %299, i64 %.0400.epil, i64 %.0399484.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph485.epil
  %.1402.lcssa = phi float [ %.1402.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1402.epil, %.lr.ph485.epil ]
  %.1.lcssa = phi i64 [ %.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1.epil, %.lr.ph485.epil ]
  %.not443 = icmp eq i64 %.1.lcssa, 0
  br i1 %.not443, label %._crit_edge.thread, label %300

300:                                              ; preds = %._crit_edge
  %301 = getelementptr inbounds i64, ptr %49, i64 %.1.lcssa
  %302 = load i64, ptr %301, align 8, !tbaa !5
  %303 = getelementptr inbounds float, ptr %44, i64 %.1.lcssa
  store float %287, ptr %303, align 4, !tbaa !9
  %304 = getelementptr inbounds i64, ptr %49, i64 %storemerge440492
  %305 = load i64, ptr %304, align 8, !tbaa !5
  store i64 %305, ptr %301, align 8, !tbaa !5
  store float %.1402.lcssa, ptr %286, align 4, !tbaa !9
  store i64 %302, ptr %304, align 8, !tbaa !5
  %306 = mul nsw i64 %.1.lcssa, %45
  %gep488 = getelementptr %struct.complex, ptr %invariant.gep487, i64 %306
  %307 = mul nsw i64 %storemerge440492, %45
  %gep490 = getelementptr %struct.complex, ptr %invariant.gep487, i64 %307
  %308 = call i32 @f2c_cswap(ptr noundef nonnull %3, ptr noundef %gep488, ptr noundef nonnull @c__1, ptr noundef %gep490, ptr noundef nonnull @c__1) #5
  %.pre = load i64, ptr %27, align 8, !tbaa !5
  %.pre496 = load i64, ptr %24, align 8, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph494, %._crit_edge, %300
  %309 = phi i64 [ %285, %._crit_edge ], [ %.pre496, %300 ], [ %285, %.lr.ph494 ]
  %310 = phi i64 [ %storemerge440492, %._crit_edge ], [ %.pre, %300 ], [ %storemerge440492, %.lr.ph494 ]
  %311 = add nsw i64 %310, 1
  store i64 %311, ptr %27, align 8, !tbaa !5
  %.not441.not = icmp slt i64 %310, %309
  br i1 %.not441.not, label %.lr.ph494, label %.loopexit, !llvm.loop !19

.loopexit:                                        ; preds = %._crit_edge.thread, %282, %281
  store float %117, ptr %16, align 4, !tbaa !11
  store float 0.000000e+00, ptr %118, align 4, !tbaa !13
  store float %119, ptr %18, align 4, !tbaa !9
  store i64 %71, ptr %20, align 8, !tbaa !5
  br label %312

312:                                              ; preds = %146, %147, %131, %.loopexit, %134, %.thread457
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"", !10, i64 0, !10, i64 4}
!13 = !{!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,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass