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

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

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

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

135:                                              ; preds = %20
  %136 = load ptr, ptr %22, align 8, !tbaa !5
  %137 = call i64 @lsame_(ptr noundef %136, ptr noundef @.str.4)
  %138 = icmp ne i64 %137, 0
  br i1 %138, label %141, label %139

139:                                              ; preds = %135
  %140 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -1, ptr %140, align 8, !tbaa !9
  br label %253

141:                                              ; preds = %135, %20
  %142 = load i64, ptr %72, align 8, !tbaa !9
  %143 = icmp ne i64 %142, 0
  br i1 %143, label %152, label %144

144:                                              ; preds = %141
  %145 = load i64, ptr %76, align 8, !tbaa !9
  %146 = icmp ne i64 %145, 0
  br i1 %146, label %152, label %147

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

150:                                              ; preds = %147
  %151 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -2, ptr %151, align 8, !tbaa !9
  br label %252

152:                                              ; preds = %147, %144, %141
  %153 = load i64, ptr %70, align 8, !tbaa !9
  %154 = icmp ne i64 %153, 0
  br i1 %154, label %161, label %155

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

159:                                              ; preds = %155
  %160 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -3, ptr %160, align 8, !tbaa !9
  br label %251

161:                                              ; preds = %155, %152
  %162 = load ptr, ptr %25, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  %164 = icmp slt i64 %163, 0
  br i1 %164, label %165, label %167

165:                                              ; preds = %161
  %166 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -4, ptr %166, align 8, !tbaa !9
  br label %250

167:                                              ; preds = %161
  %168 = load ptr, ptr %27, align 8, !tbaa !5
  %169 = load i64, ptr %168, align 8, !tbaa !9
  %170 = load ptr, ptr %25, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = icmp sge i64 1, %171
  br i1 %172, label %173, label %174

173:                                              ; preds = %167
  br label %177

174:                                              ; preds = %167
  %175 = load ptr, ptr %25, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  br label %177

177:                                              ; preds = %174, %173
  %178 = phi i64 [ 1, %173 ], [ %176, %174 ]
  %179 = icmp slt i64 %169, %178
  br i1 %179, label %180, label %182

180:                                              ; preds = %177
  %181 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -6, ptr %181, align 8, !tbaa !9
  br label %249

182:                                              ; preds = %177
  %183 = load i64, ptr %76, align 8, !tbaa !9
  %184 = icmp ne i64 %183, 0
  br i1 %184, label %185, label %198

185:                                              ; preds = %182
  %186 = load ptr, ptr %25, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  %188 = icmp sgt i64 %187, 0
  br i1 %188, label %189, label %197

189:                                              ; preds = %185
  %190 = load ptr, ptr %29, align 8, !tbaa !5
  %191 = load float, ptr %190, align 4, !tbaa !11
  %192 = load ptr, ptr %28, align 8, !tbaa !5
  %193 = load float, ptr %192, align 4, !tbaa !11
  %194 = fcmp ole float %191, %193
  br i1 %194, label %195, label %197

195:                                              ; preds = %189
  %196 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -8, ptr %196, align 8, !tbaa !9
  br label %197

197:                                              ; preds = %195, %189, %185
  br label %248

198:                                              ; preds = %182
  %199 = load i64, ptr %73, align 8, !tbaa !9
  %200 = icmp ne i64 %199, 0
  br i1 %200, label %201, label %247

201:                                              ; preds = %198
  %202 = load ptr, ptr %30, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = icmp slt i64 %203, 1
  br i1 %204, label %218, label %205

205:                                              ; preds = %201
  %206 = load ptr, ptr %30, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = load ptr, ptr %25, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  %210 = icmp sge i64 1, %209
  br i1 %210, label %211, label %212

211:                                              ; preds = %205
  br label %215

212:                                              ; preds = %205
  %213 = load ptr, ptr %25, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  br label %215

215:                                              ; preds = %212, %211
  %216 = phi i64 [ 1, %211 ], [ %214, %212 ]
  %217 = icmp sgt i64 %207, %216
  br i1 %217, label %218, label %220

218:                                              ; preds = %215, %201
  %219 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -9, ptr %219, align 8, !tbaa !9
  br label %246

220:                                              ; preds = %215
  %221 = load ptr, ptr %31, align 8, !tbaa !5
  %222 = load i64, ptr %221, align 8, !tbaa !9
  %223 = load ptr, ptr %25, align 8, !tbaa !5
  %224 = load i64, ptr %223, align 8, !tbaa !9
  %225 = load ptr, ptr %30, align 8, !tbaa !5
  %226 = load i64, ptr %225, align 8, !tbaa !9
  %227 = icmp sle i64 %224, %226
  br i1 %227, label %228, label %231

228:                                              ; preds = %220
  %229 = load ptr, ptr %25, align 8, !tbaa !5
  %230 = load i64, ptr %229, align 8, !tbaa !9
  br label %234

231:                                              ; preds = %220
  %232 = load ptr, ptr %30, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  br label %234

234:                                              ; preds = %231, %228
  %235 = phi i64 [ %230, %228 ], [ %233, %231 ]
  %236 = icmp slt i64 %222, %235
  br i1 %236, label %243, label %237

237:                                              ; preds = %234
  %238 = load ptr, ptr %31, align 8, !tbaa !5
  %239 = load i64, ptr %238, align 8, !tbaa !9
  %240 = load ptr, ptr %25, align 8, !tbaa !5
  %241 = load i64, ptr %240, align 8, !tbaa !9
  %242 = icmp sgt i64 %239, %241
  br i1 %242, label %243, label %245

243:                                              ; preds = %237, %234
  %244 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -10, ptr %244, align 8, !tbaa !9
  br label %245

245:                                              ; preds = %243, %237
  br label %246

246:                                              ; preds = %245, %218
  br label %247

247:                                              ; preds = %246, %198
  br label %248

248:                                              ; preds = %247, %197
  br label %249

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

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

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

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

253:                                              ; preds = %252, %139
  %254 = load ptr, ptr %41, align 8, !tbaa !5
  %255 = load i64, ptr %254, align 8, !tbaa !9
  %256 = icmp eq i64 %255, 0
  br i1 %256, label %257, label %273

257:                                              ; preds = %253
  %258 = load ptr, ptr %36, align 8, !tbaa !5
  %259 = load i64, ptr %258, align 8, !tbaa !9
  %260 = icmp slt i64 %259, 1
  br i1 %260, label %270, label %261

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

264:                                              ; preds = %261
  %265 = load ptr, ptr %36, align 8, !tbaa !5
  %266 = load i64, ptr %265, align 8, !tbaa !9
  %267 = load ptr, ptr %25, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = icmp slt i64 %266, %268
  br i1 %269, label %270, label %272

270:                                              ; preds = %264, %257
  %271 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -15, ptr %271, align 8, !tbaa !9
  br label %272

272:                                              ; preds = %270, %264, %261
  br label %273

273:                                              ; preds = %272, %253
  %274 = load ptr, ptr %41, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  %276 = icmp eq i64 %275, 0
  br i1 %276, label %277, label %336

277:                                              ; preds = %273
  %278 = load ptr, ptr %25, align 8, !tbaa !5
  %279 = load i64, ptr %278, align 8, !tbaa !9
  %280 = icmp sle i64 %279, 1
  br i1 %280, label %281, label %286

281:                                              ; preds = %277
  store i64 1, ptr %85, align 8, !tbaa !9
  %282 = load i64, ptr %85, align 8, !tbaa !9
  %283 = sitofp i64 %282 to float
  %284 = load ptr, ptr %37, align 8, !tbaa !5
  %285 = getelementptr inbounds float, ptr %284, i64 1
  store float %283, ptr %285, align 4, !tbaa !11
  br label %325

286:                                              ; preds = %277
  %287 = load ptr, ptr %25, align 8, !tbaa !5
  %288 = load i64, ptr %287, align 8, !tbaa !9
  %289 = shl i64 %288, 3
  store i64 %289, ptr %85, align 8, !tbaa !9
  %290 = load ptr, ptr %24, align 8, !tbaa !5
  %291 = load ptr, ptr %25, align 8, !tbaa !5
  %292 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef %290, ptr noundef %291, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %292, ptr %52, align 8, !tbaa !9
  %293 = load i64, ptr %52, align 8, !tbaa !9
  store i64 %293, ptr %46, align 8, !tbaa !9
  %294 = load ptr, ptr %24, align 8, !tbaa !5
  %295 = load ptr, ptr %25, align 8, !tbaa !5
  %296 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef %294, ptr noundef %295, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %296, ptr %47, align 8, !tbaa !9
  %297 = load i64, ptr %46, align 8, !tbaa !9
  %298 = load i64, ptr %47, align 8, !tbaa !9
  %299 = icmp sge i64 %297, %298
  br i1 %299, label %300, label %302

300:                                              ; preds = %286
  %301 = load i64, ptr %46, align 8, !tbaa !9
  br label %304

302:                                              ; preds = %286
  %303 = load i64, ptr %47, align 8, !tbaa !9
  br label %304

304:                                              ; preds = %302, %300
  %305 = phi i64 [ %301, %300 ], [ %303, %302 ]
  store i64 %305, ptr %52, align 8, !tbaa !9
  %306 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %306, ptr %46, align 8, !tbaa !9
  %307 = load i64, ptr %52, align 8, !tbaa !9
  %308 = add nsw i64 %307, 3
  %309 = load ptr, ptr %25, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  %311 = mul nsw i64 %308, %310
  store i64 %311, ptr %47, align 8, !tbaa !9
  %312 = load i64, ptr %46, align 8, !tbaa !9
  %313 = load i64, ptr %47, align 8, !tbaa !9
  %314 = icmp sge i64 %312, %313
  br i1 %314, label %315, label %317

315:                                              ; preds = %304
  %316 = load i64, ptr %46, align 8, !tbaa !9
  br label %319

317:                                              ; preds = %304
  %318 = load i64, ptr %47, align 8, !tbaa !9
  br label %319

319:                                              ; preds = %317, %315
  %320 = phi i64 [ %316, %315 ], [ %318, %317 ]
  store i64 %320, ptr %90, align 8, !tbaa !9
  %321 = load i64, ptr %90, align 8, !tbaa !9
  %322 = sitofp i64 %321 to float
  %323 = load ptr, ptr %37, align 8, !tbaa !5
  %324 = getelementptr inbounds float, ptr %323, i64 1
  store float %322, ptr %324, align 4, !tbaa !11
  br label %325

325:                                              ; preds = %319, %281
  %326 = load ptr, ptr %38, align 8, !tbaa !5
  %327 = load i64, ptr %326, align 8, !tbaa !9
  %328 = load i64, ptr %85, align 8, !tbaa !9
  %329 = icmp slt i64 %327, %328
  br i1 %329, label %330, label %335

330:                                              ; preds = %325
  %331 = load i64, ptr %91, align 8, !tbaa !9
  %332 = icmp ne i64 %331, 0
  br i1 %332, label %335, label %333

333:                                              ; preds = %330
  %334 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -17, ptr %334, align 8, !tbaa !9
  br label %335

335:                                              ; preds = %333, %330, %325
  br label %336

336:                                              ; preds = %335, %273
  %337 = load ptr, ptr %41, align 8, !tbaa !5
  %338 = load i64, ptr %337, align 8, !tbaa !9
  %339 = icmp ne i64 %338, 0
  br i1 %339, label %340, label %345

340:                                              ; preds = %336
  %341 = load ptr, ptr %41, align 8, !tbaa !5
  %342 = load i64, ptr %341, align 8, !tbaa !9
  %343 = sub nsw i64 0, %342
  store i64 %343, ptr %46, align 8, !tbaa !9
  %344 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %46)
  store i32 0, ptr %21, align 4
  store i32 1, ptr %92, align 4
  br label %982

345:                                              ; preds = %336
  %346 = load i64, ptr %91, align 8, !tbaa !9
  %347 = icmp ne i64 %346, 0
  br i1 %347, label %348, label %349

348:                                              ; preds = %345
  store i32 0, ptr %21, align 4
  store i32 1, ptr %92, align 4
  br label %982

349:                                              ; preds = %345
  br label %350

350:                                              ; preds = %349
  %351 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 0, ptr %351, align 8, !tbaa !9
  %352 = load ptr, ptr %25, align 8, !tbaa !5
  %353 = load i64, ptr %352, align 8, !tbaa !9
  %354 = icmp eq i64 %353, 0
  br i1 %354, label %355, label %356

355:                                              ; preds = %350
  store i32 0, ptr %21, align 4
  store i32 1, ptr %92, align 4
  br label %982

356:                                              ; preds = %350
  %357 = load ptr, ptr %25, align 8, !tbaa !5
  %358 = load i64, ptr %357, align 8, !tbaa !9
  %359 = icmp eq i64 %358, 1
  br i1 %359, label %360, label %412

360:                                              ; preds = %356
  %361 = load i64, ptr %72, align 8, !tbaa !9
  %362 = icmp ne i64 %361, 0
  br i1 %362, label %366, label %363

363:                                              ; preds = %360
  %364 = load i64, ptr %73, align 8, !tbaa !9
  %365 = icmp ne i64 %364, 0
  br i1 %365, label %366, label %375

366:                                              ; preds = %363, %360
  %367 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 1, ptr %367, align 8, !tbaa !9
  %368 = load ptr, ptr %26, align 8, !tbaa !5
  %369 = load i64, ptr %42, align 8, !tbaa !9
  %370 = add nsw i64 %369, 1
  %371 = getelementptr inbounds float, ptr %368, i64 %370
  %372 = load float, ptr %371, align 4, !tbaa !11
  %373 = load ptr, ptr %34, align 8, !tbaa !5
  %374 = getelementptr inbounds float, ptr %373, i64 1
  store float %372, ptr %374, align 4, !tbaa !11
  br label %403

375:                                              ; preds = %363
  %376 = load ptr, ptr %28, align 8, !tbaa !5
  %377 = load float, ptr %376, align 4, !tbaa !11
  %378 = load ptr, ptr %26, align 8, !tbaa !5
  %379 = load i64, ptr %42, align 8, !tbaa !9
  %380 = add nsw i64 %379, 1
  %381 = getelementptr inbounds float, ptr %378, i64 %380
  %382 = load float, ptr %381, align 4, !tbaa !11
  %383 = fcmp olt float %377, %382
  br i1 %383, label %384, label %402

384:                                              ; preds = %375
  %385 = load ptr, ptr %29, align 8, !tbaa !5
  %386 = load float, ptr %385, align 4, !tbaa !11
  %387 = load ptr, ptr %26, align 8, !tbaa !5
  %388 = load i64, ptr %42, align 8, !tbaa !9
  %389 = add nsw i64 %388, 1
  %390 = getelementptr inbounds float, ptr %387, i64 %389
  %391 = load float, ptr %390, align 4, !tbaa !11
  %392 = fcmp oge float %386, %391
  br i1 %392, label %393, label %402

393:                                              ; preds = %384
  %394 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 1, ptr %394, align 8, !tbaa !9
  %395 = load ptr, ptr %26, align 8, !tbaa !5
  %396 = load i64, ptr %42, align 8, !tbaa !9
  %397 = add nsw i64 %396, 1
  %398 = getelementptr inbounds float, ptr %395, i64 %397
  %399 = load float, ptr %398, align 4, !tbaa !11
  %400 = load ptr, ptr %34, align 8, !tbaa !5
  %401 = getelementptr inbounds float, ptr %400, i64 1
  store float %399, ptr %401, align 4, !tbaa !11
  br label %402

402:                                              ; preds = %393, %384, %375
  br label %403

403:                                              ; preds = %402, %366
  %404 = load i64, ptr %71, align 8, !tbaa !9
  %405 = icmp ne i64 %404, 0
  br i1 %405, label %406, label %411

406:                                              ; preds = %403
  %407 = load ptr, ptr %35, align 8, !tbaa !5
  %408 = load i64, ptr %44, align 8, !tbaa !9
  %409 = add nsw i64 %408, 1
  %410 = getelementptr inbounds float, ptr %407, i64 %409
  store float 1.000000e+00, ptr %410, align 4, !tbaa !11
  br label %411

411:                                              ; preds = %406, %403
  store i32 0, ptr %21, align 4
  store i32 1, ptr %92, align 4
  br label %982

412:                                              ; preds = %356
  %413 = call double @slamch_(ptr noundef @.str.9)
  %414 = fptrunc double %413 to float
  store float %414, ptr %77, align 4, !tbaa !11
  %415 = call double @slamch_(ptr noundef @.str.10)
  %416 = fptrunc double %415 to float
  store float %416, ptr %54, align 4, !tbaa !11
  %417 = load float, ptr %77, align 4, !tbaa !11
  %418 = load float, ptr %54, align 4, !tbaa !11
  %419 = fdiv float %417, %418
  store float %419, ptr %89, align 4, !tbaa !11
  %420 = load float, ptr %89, align 4, !tbaa !11
  %421 = fdiv float 1.000000e+00, %420
  store float %421, ptr %79, align 4, !tbaa !11
  %422 = load float, ptr %89, align 4, !tbaa !11
  %423 = fpext float %422 to double
  %424 = call double @sqrt(double noundef %423) #4
  %425 = fptrunc double %424 to float
  store float %425, ptr %62, align 4, !tbaa !11
  %426 = load float, ptr %79, align 4, !tbaa !11
  %427 = fpext float %426 to double
  %428 = call double @sqrt(double noundef %427) #4
  %429 = fptrunc double %428 to float
  store float %429, ptr %48, align 4, !tbaa !11
  %430 = load float, ptr %77, align 4, !tbaa !11
  %431 = fpext float %430 to double
  %432 = call double @sqrt(double noundef %431) #4
  %433 = call double @sqrt(double noundef %432) #4
  %434 = fdiv double 1.000000e+00, %433
  %435 = fptrunc double %434 to float
  store float %435, ptr %49, align 4, !tbaa !11
  %436 = load float, ptr %48, align 4, !tbaa !11
  %437 = load float, ptr %49, align 4, !tbaa !11
  %438 = fcmp ole float %436, %437
  br i1 %438, label %439, label %441

439:                                              ; preds = %412
  %440 = load float, ptr %48, align 4, !tbaa !11
  br label %443

441:                                              ; preds = %412
  %442 = load float, ptr %49, align 4, !tbaa !11
  br label %443

443:                                              ; preds = %441, %439
  %444 = phi float [ %440, %439 ], [ %442, %441 ]
  %445 = fpext float %444 to double
  %446 = fptrunc double %445 to float
  store float %446, ptr %63, align 4, !tbaa !11
  store i64 0, ptr %74, align 8, !tbaa !9
  %447 = load ptr, ptr %32, align 8, !tbaa !5
  %448 = load float, ptr %447, align 4, !tbaa !11
  store float %448, ptr %78, align 4, !tbaa !11
  %449 = load i64, ptr %76, align 8, !tbaa !9
  %450 = icmp ne i64 %449, 0
  br i1 %450, label %451, label %456

451:                                              ; preds = %443
  %452 = load ptr, ptr %28, align 8, !tbaa !5
  %453 = load float, ptr %452, align 4, !tbaa !11
  store float %453, ptr %55, align 4, !tbaa !11
  %454 = load ptr, ptr %29, align 8, !tbaa !5
  %455 = load float, ptr %454, align 4, !tbaa !11
  store float %455, ptr %56, align 4, !tbaa !11
  br label %456

456:                                              ; preds = %451, %443
  %457 = load ptr, ptr %24, align 8, !tbaa !5
  %458 = load ptr, ptr %25, align 8, !tbaa !5
  %459 = load ptr, ptr %26, align 8, !tbaa !5
  %460 = load i64, ptr %43, align 8, !tbaa !9
  %461 = getelementptr inbounds float, ptr %459, i64 %460
  %462 = load ptr, ptr %27, align 8, !tbaa !5
  %463 = load ptr, ptr %37, align 8, !tbaa !5
  %464 = getelementptr inbounds float, ptr %463, i64 1
  %465 = call double @slansy_(ptr noundef @.str.11, ptr noundef %457, ptr noundef %458, ptr noundef %461, ptr noundef %462, ptr noundef %464)
  %466 = fptrunc double %465 to float
  store float %466, ptr %60, align 4, !tbaa !11
  %467 = load float, ptr %60, align 4, !tbaa !11
  %468 = fcmp ogt float %467, 0.000000e+00
  br i1 %468, label %469, label %477

469:                                              ; preds = %456
  %470 = load float, ptr %60, align 4, !tbaa !11
  %471 = load float, ptr %62, align 4, !tbaa !11
  %472 = fcmp olt float %470, %471
  br i1 %472, label %473, label %477

473:                                              ; preds = %469
  store i64 1, ptr %74, align 8, !tbaa !9
  %474 = load float, ptr %62, align 4, !tbaa !11
  %475 = load float, ptr %60, align 4, !tbaa !11
  %476 = fdiv float %474, %475
  store float %476, ptr %67, align 4, !tbaa !11
  br label %486

477:                                              ; preds = %469, %456
  %478 = load float, ptr %60, align 4, !tbaa !11
  %479 = load float, ptr %63, align 4, !tbaa !11
  %480 = fcmp ogt float %478, %479
  br i1 %480, label %481, label %485

481:                                              ; preds = %477
  store i64 1, ptr %74, align 8, !tbaa !9
  %482 = load float, ptr %63, align 4, !tbaa !11
  %483 = load float, ptr %60, align 4, !tbaa !11
  %484 = fdiv float %482, %483
  store float %484, ptr %67, align 4, !tbaa !11
  br label %485

485:                                              ; preds = %481, %477
  br label %486

486:                                              ; preds = %485, %473
  %487 = load i64, ptr %74, align 8, !tbaa !9
  %488 = icmp eq i64 %487, 1
  br i1 %488, label %489, label %558

489:                                              ; preds = %486
  %490 = load i64, ptr %70, align 8, !tbaa !9
  %491 = icmp ne i64 %490, 0
  br i1 %491, label %492, label %517

492:                                              ; preds = %489
  %493 = load ptr, ptr %25, align 8, !tbaa !5
  %494 = load i64, ptr %493, align 8, !tbaa !9
  store i64 %494, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %495

495:                                              ; preds = %513, %492
  %496 = load i64, ptr %51, align 8, !tbaa !9
  %497 = load i64, ptr %46, align 8, !tbaa !9
  %498 = icmp sle i64 %496, %497
  br i1 %498, label %499, label %516

499:                                              ; preds = %495
  %500 = load ptr, ptr %25, align 8, !tbaa !5
  %501 = load i64, ptr %500, align 8, !tbaa !9
  %502 = load i64, ptr %51, align 8, !tbaa !9
  %503 = sub nsw i64 %501, %502
  %504 = add nsw i64 %503, 1
  store i64 %504, ptr %47, align 8, !tbaa !9
  %505 = load ptr, ptr %26, align 8, !tbaa !5
  %506 = load i64, ptr %51, align 8, !tbaa !9
  %507 = load i64, ptr %51, align 8, !tbaa !9
  %508 = load i64, ptr %42, align 8, !tbaa !9
  %509 = mul nsw i64 %507, %508
  %510 = add nsw i64 %506, %509
  %511 = getelementptr inbounds float, ptr %505, i64 %510
  %512 = call i32 @f2c_sscal(ptr noundef %47, ptr noundef %67, ptr noundef %511, ptr noundef @c__1)
  br label %513

513:                                              ; preds = %499
  %514 = load i64, ptr %51, align 8, !tbaa !9
  %515 = add nsw i64 %514, 1
  store i64 %515, ptr %51, align 8, !tbaa !9
  br label %495, !llvm.loop !13

516:                                              ; preds = %495
  br label %536

517:                                              ; preds = %489
  %518 = load ptr, ptr %25, align 8, !tbaa !5
  %519 = load i64, ptr %518, align 8, !tbaa !9
  store i64 %519, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %520

520:                                              ; preds = %532, %517
  %521 = load i64, ptr %51, align 8, !tbaa !9
  %522 = load i64, ptr %46, align 8, !tbaa !9
  %523 = icmp sle i64 %521, %522
  br i1 %523, label %524, label %535

524:                                              ; preds = %520
  %525 = load ptr, ptr %26, align 8, !tbaa !5
  %526 = load i64, ptr %51, align 8, !tbaa !9
  %527 = load i64, ptr %42, align 8, !tbaa !9
  %528 = mul nsw i64 %526, %527
  %529 = add nsw i64 %528, 1
  %530 = getelementptr inbounds float, ptr %525, i64 %529
  %531 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %67, ptr noundef %530, ptr noundef @c__1)
  br label %532

532:                                              ; preds = %524
  %533 = load i64, ptr %51, align 8, !tbaa !9
  %534 = add nsw i64 %533, 1
  store i64 %534, ptr %51, align 8, !tbaa !9
  br label %520, !llvm.loop !15

535:                                              ; preds = %520
  br label %536

536:                                              ; preds = %535, %516
  %537 = load ptr, ptr %32, align 8, !tbaa !5
  %538 = load float, ptr %537, align 4, !tbaa !11
  %539 = fcmp ogt float %538, 0.000000e+00
  br i1 %539, label %540, label %545

540:                                              ; preds = %536
  %541 = load ptr, ptr %32, align 8, !tbaa !5
  %542 = load float, ptr %541, align 4, !tbaa !11
  %543 = load float, ptr %67, align 4, !tbaa !11
  %544 = fmul float %542, %543
  store float %544, ptr %78, align 4, !tbaa !11
  br label %545

545:                                              ; preds = %540, %536
  %546 = load i64, ptr %76, align 8, !tbaa !9
  %547 = icmp ne i64 %546, 0
  br i1 %547, label %548, label %557

548:                                              ; preds = %545
  %549 = load ptr, ptr %28, align 8, !tbaa !5
  %550 = load float, ptr %549, align 4, !tbaa !11
  %551 = load float, ptr %67, align 4, !tbaa !11
  %552 = fmul float %550, %551
  store float %552, ptr %55, align 4, !tbaa !11
  %553 = load ptr, ptr %29, align 8, !tbaa !5
  %554 = load float, ptr %553, align 4, !tbaa !11
  %555 = load float, ptr %67, align 4, !tbaa !11
  %556 = fmul float %554, %555
  store float %556, ptr %56, align 4, !tbaa !11
  br label %557

557:                                              ; preds = %548, %545
  br label %558

558:                                              ; preds = %557, %486
  store i64 1, ptr %80, align 8, !tbaa !9
  %559 = load i64, ptr %80, align 8, !tbaa !9
  %560 = load ptr, ptr %25, align 8, !tbaa !5
  %561 = load i64, ptr %560, align 8, !tbaa !9
  %562 = add nsw i64 %559, %561
  store i64 %562, ptr %59, align 8, !tbaa !9
  %563 = load i64, ptr %59, align 8, !tbaa !9
  %564 = load ptr, ptr %25, align 8, !tbaa !5
  %565 = load i64, ptr %564, align 8, !tbaa !9
  %566 = add nsw i64 %563, %565
  store i64 %566, ptr %58, align 8, !tbaa !9
  %567 = load i64, ptr %58, align 8, !tbaa !9
  %568 = load ptr, ptr %25, align 8, !tbaa !5
  %569 = load i64, ptr %568, align 8, !tbaa !9
  %570 = add nsw i64 %567, %569
  store i64 %570, ptr %84, align 8, !tbaa !9
  %571 = load ptr, ptr %38, align 8, !tbaa !5
  %572 = load i64, ptr %571, align 8, !tbaa !9
  %573 = load i64, ptr %84, align 8, !tbaa !9
  %574 = sub nsw i64 %572, %573
  %575 = add nsw i64 %574, 1
  store i64 %575, ptr %87, align 8, !tbaa !9
  %576 = load ptr, ptr %24, align 8, !tbaa !5
  %577 = load ptr, ptr %25, align 8, !tbaa !5
  %578 = load ptr, ptr %26, align 8, !tbaa !5
  %579 = load i64, ptr %43, align 8, !tbaa !9
  %580 = getelementptr inbounds float, ptr %578, i64 %579
  %581 = load ptr, ptr %27, align 8, !tbaa !5
  %582 = load ptr, ptr %37, align 8, !tbaa !5
  %583 = load i64, ptr %58, align 8, !tbaa !9
  %584 = getelementptr inbounds float, ptr %582, i64 %583
  %585 = load ptr, ptr %37, align 8, !tbaa !5
  %586 = load i64, ptr %59, align 8, !tbaa !9
  %587 = getelementptr inbounds float, ptr %585, i64 %586
  %588 = load ptr, ptr %37, align 8, !tbaa !5
  %589 = load i64, ptr %80, align 8, !tbaa !9
  %590 = getelementptr inbounds float, ptr %588, i64 %589
  %591 = load ptr, ptr %37, align 8, !tbaa !5
  %592 = load i64, ptr %84, align 8, !tbaa !9
  %593 = getelementptr inbounds float, ptr %591, i64 %592
  %594 = call i32 @ssytrd_(ptr noundef %576, ptr noundef %577, ptr noundef %580, ptr noundef %581, ptr noundef %584, ptr noundef %587, ptr noundef %590, ptr noundef %593, ptr noundef %87, ptr noundef %68)
  store i64 0, ptr %64, align 8, !tbaa !9
  %595 = load i64, ptr %73, align 8, !tbaa !9
  %596 = icmp ne i64 %595, 0
  br i1 %596, label %597, label %609

597:                                              ; preds = %558
  %598 = load ptr, ptr %30, align 8, !tbaa !5
  %599 = load i64, ptr %598, align 8, !tbaa !9
  %600 = icmp eq i64 %599, 1
  br i1 %600, label %601, label %608

601:                                              ; preds = %597
  %602 = load ptr, ptr %31, align 8, !tbaa !5
  %603 = load i64, ptr %602, align 8, !tbaa !9
  %604 = load ptr, ptr %25, align 8, !tbaa !5
  %605 = load i64, ptr %604, align 8, !tbaa !9
  %606 = icmp eq i64 %603, %605
  br i1 %606, label %607, label %608

607:                                              ; preds = %601
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %608

608:                                              ; preds = %607, %601, %597
  br label %609

609:                                              ; preds = %608, %558
  %610 = load i64, ptr %72, align 8, !tbaa !9
  %611 = icmp ne i64 %610, 0
  br i1 %611, label %615, label %612

612:                                              ; preds = %609
  %613 = load i64, ptr %64, align 8, !tbaa !9
  %614 = icmp ne i64 %613, 0
  br i1 %614, label %615, label %733

615:                                              ; preds = %612, %609
  %616 = load ptr, ptr %32, align 8, !tbaa !5
  %617 = load float, ptr %616, align 4, !tbaa !11
  %618 = fcmp ole float %617, 0.000000e+00
  br i1 %618, label %619, label %733

619:                                              ; preds = %615
  %620 = load ptr, ptr %25, align 8, !tbaa !5
  %621 = load ptr, ptr %37, align 8, !tbaa !5
  %622 = load i64, ptr %58, align 8, !tbaa !9
  %623 = getelementptr inbounds float, ptr %621, i64 %622
  %624 = load ptr, ptr %34, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 1
  %626 = call i32 @f2c_scopy(ptr noundef %620, ptr noundef %623, ptr noundef @c__1, ptr noundef %625, ptr noundef @c__1)
  %627 = load i64, ptr %84, align 8, !tbaa !9
  %628 = load ptr, ptr %25, align 8, !tbaa !5
  %629 = load i64, ptr %628, align 8, !tbaa !9
  %630 = shl i64 %629, 1
  %631 = add nsw i64 %627, %630
  store i64 %631, ptr %66, align 8, !tbaa !9
  %632 = load i64, ptr %71, align 8, !tbaa !9
  %633 = icmp ne i64 %632, 0
  br i1 %633, label %653, label %634

634:                                              ; preds = %619
  %635 = load ptr, ptr %25, align 8, !tbaa !5
  %636 = load i64, ptr %635, align 8, !tbaa !9
  %637 = sub nsw i64 %636, 1
  store i64 %637, ptr %46, align 8, !tbaa !9
  %638 = load ptr, ptr %37, align 8, !tbaa !5
  %639 = load i64, ptr %59, align 8, !tbaa !9
  %640 = getelementptr inbounds float, ptr %638, i64 %639
  %641 = load ptr, ptr %37, align 8, !tbaa !5
  %642 = load i64, ptr %66, align 8, !tbaa !9
  %643 = getelementptr inbounds float, ptr %641, i64 %642
  %644 = call i32 @f2c_scopy(ptr noundef %46, ptr noundef %640, ptr noundef @c__1, ptr noundef %643, ptr noundef @c__1)
  %645 = load ptr, ptr %25, align 8, !tbaa !5
  %646 = load ptr, ptr %34, align 8, !tbaa !5
  %647 = getelementptr inbounds float, ptr %646, i64 1
  %648 = load ptr, ptr %37, align 8, !tbaa !5
  %649 = load i64, ptr %66, align 8, !tbaa !9
  %650 = getelementptr inbounds float, ptr %648, i64 %649
  %651 = load ptr, ptr %41, align 8, !tbaa !5
  %652 = call i32 @ssterf_(ptr noundef %645, ptr noundef %647, ptr noundef %650, ptr noundef %651)
  br label %723

653:                                              ; preds = %619
  %654 = load ptr, ptr %25, align 8, !tbaa !5
  %655 = load ptr, ptr %25, align 8, !tbaa !5
  %656 = load ptr, ptr %26, align 8, !tbaa !5
  %657 = load i64, ptr %43, align 8, !tbaa !9
  %658 = getelementptr inbounds float, ptr %656, i64 %657
  %659 = load ptr, ptr %27, align 8, !tbaa !5
  %660 = load ptr, ptr %35, align 8, !tbaa !5
  %661 = load i64, ptr %45, align 8, !tbaa !9
  %662 = getelementptr inbounds float, ptr %660, i64 %661
  %663 = load ptr, ptr %36, align 8, !tbaa !5
  %664 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %654, ptr noundef %655, ptr noundef %658, ptr noundef %659, ptr noundef %662, ptr noundef %663)
  %665 = load ptr, ptr %24, align 8, !tbaa !5
  %666 = load ptr, ptr %25, align 8, !tbaa !5
  %667 = load ptr, ptr %35, align 8, !tbaa !5
  %668 = load i64, ptr %45, align 8, !tbaa !9
  %669 = getelementptr inbounds float, ptr %667, i64 %668
  %670 = load ptr, ptr %36, align 8, !tbaa !5
  %671 = load ptr, ptr %37, align 8, !tbaa !5
  %672 = load i64, ptr %80, align 8, !tbaa !9
  %673 = getelementptr inbounds float, ptr %671, i64 %672
  %674 = load ptr, ptr %37, align 8, !tbaa !5
  %675 = load i64, ptr %84, align 8, !tbaa !9
  %676 = getelementptr inbounds float, ptr %674, i64 %675
  %677 = call i32 @sorgtr_(ptr noundef %665, ptr noundef %666, ptr noundef %669, ptr noundef %670, ptr noundef %673, ptr noundef %676, ptr noundef %87, ptr noundef %68)
  %678 = load ptr, ptr %25, align 8, !tbaa !5
  %679 = load i64, ptr %678, align 8, !tbaa !9
  %680 = sub nsw i64 %679, 1
  store i64 %680, ptr %46, align 8, !tbaa !9
  %681 = load ptr, ptr %37, align 8, !tbaa !5
  %682 = load i64, ptr %59, align 8, !tbaa !9
  %683 = getelementptr inbounds float, ptr %681, i64 %682
  %684 = load ptr, ptr %37, align 8, !tbaa !5
  %685 = load i64, ptr %66, align 8, !tbaa !9
  %686 = getelementptr inbounds float, ptr %684, i64 %685
  %687 = call i32 @f2c_scopy(ptr noundef %46, ptr noundef %683, ptr noundef @c__1, ptr noundef %686, ptr noundef @c__1)
  %688 = load ptr, ptr %22, align 8, !tbaa !5
  %689 = load ptr, ptr %25, align 8, !tbaa !5
  %690 = load ptr, ptr %34, align 8, !tbaa !5
  %691 = getelementptr inbounds float, ptr %690, i64 1
  %692 = load ptr, ptr %37, align 8, !tbaa !5
  %693 = load i64, ptr %66, align 8, !tbaa !9
  %694 = getelementptr inbounds float, ptr %692, i64 %693
  %695 = load ptr, ptr %35, align 8, !tbaa !5
  %696 = load i64, ptr %45, align 8, !tbaa !9
  %697 = getelementptr inbounds float, ptr %695, i64 %696
  %698 = load ptr, ptr %36, align 8, !tbaa !5
  %699 = load ptr, ptr %37, align 8, !tbaa !5
  %700 = load i64, ptr %84, align 8, !tbaa !9
  %701 = getelementptr inbounds float, ptr %699, i64 %700
  %702 = load ptr, ptr %41, align 8, !tbaa !5
  %703 = call i32 @ssteqr_(ptr noundef %688, ptr noundef %689, ptr noundef %691, ptr noundef %694, ptr noundef %697, ptr noundef %698, ptr noundef %701, ptr noundef %702)
  %704 = load ptr, ptr %41, align 8, !tbaa !5
  %705 = load i64, ptr %704, align 8, !tbaa !9
  %706 = icmp eq i64 %705, 0
  br i1 %706, label %707, label %722

707:                                              ; preds = %653
  %708 = load ptr, ptr %25, align 8, !tbaa !5
  %709 = load i64, ptr %708, align 8, !tbaa !9
  store i64 %709, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %710

710:                                              ; preds = %718, %707
  %711 = load i64, ptr %50, align 8, !tbaa !9
  %712 = load i64, ptr %46, align 8, !tbaa !9
  %713 = icmp sle i64 %711, %712
  br i1 %713, label %714, label %721

714:                                              ; preds = %710
  %715 = load ptr, ptr %40, align 8, !tbaa !5
  %716 = load i64, ptr %50, align 8, !tbaa !9
  %717 = getelementptr inbounds i64, ptr %715, i64 %716
  store i64 0, ptr %717, align 8, !tbaa !9
  br label %718

718:                                              ; preds = %714
  %719 = load i64, ptr %50, align 8, !tbaa !9
  %720 = add nsw i64 %719, 1
  store i64 %720, ptr %50, align 8, !tbaa !9
  br label %710, !llvm.loop !16

721:                                              ; preds = %710
  br label %722

722:                                              ; preds = %721, %653
  br label %723

723:                                              ; preds = %722, %634
  %724 = load ptr, ptr %41, align 8, !tbaa !5
  %725 = load i64, ptr %724, align 8, !tbaa !9
  %726 = icmp eq i64 %725, 0
  br i1 %726, label %727, label %731

727:                                              ; preds = %723
  %728 = load ptr, ptr %25, align 8, !tbaa !5
  %729 = load i64, ptr %728, align 8, !tbaa !9
  %730 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 %729, ptr %730, align 8, !tbaa !9
  br label %835

731:                                              ; preds = %723
  %732 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %732, align 8, !tbaa !9
  br label %733

733:                                              ; preds = %731, %615, %612
  %734 = load i64, ptr %71, align 8, !tbaa !9
  %735 = icmp ne i64 %734, 0
  br i1 %735, label %736, label %738

736:                                              ; preds = %733
  %737 = getelementptr inbounds [1 x i8], ptr %69, i64 0, i64 0
  store i8 66, ptr %737, align 1, !tbaa !17
  br label %740

738:                                              ; preds = %733
  %739 = getelementptr inbounds [1 x i8], ptr %69, i64 0, i64 0
  store i8 69, ptr %739, align 1, !tbaa !17
  br label %740

740:                                              ; preds = %738, %736
  store i64 1, ptr %75, align 8, !tbaa !9
  %741 = load i64, ptr %75, align 8, !tbaa !9
  %742 = load ptr, ptr %25, align 8, !tbaa !5
  %743 = load i64, ptr %742, align 8, !tbaa !9
  %744 = add nsw i64 %741, %743
  store i64 %744, ptr %81, align 8, !tbaa !9
  %745 = load i64, ptr %81, align 8, !tbaa !9
  %746 = load ptr, ptr %25, align 8, !tbaa !5
  %747 = load i64, ptr %746, align 8, !tbaa !9
  %748 = add nsw i64 %745, %747
  store i64 %748, ptr %82, align 8, !tbaa !9
  %749 = load ptr, ptr %23, align 8, !tbaa !5
  %750 = getelementptr inbounds [1 x i8], ptr %69, i64 0, i64 0
  %751 = load ptr, ptr %25, align 8, !tbaa !5
  %752 = load ptr, ptr %30, align 8, !tbaa !5
  %753 = load ptr, ptr %31, align 8, !tbaa !5
  %754 = load ptr, ptr %37, align 8, !tbaa !5
  %755 = load i64, ptr %58, align 8, !tbaa !9
  %756 = getelementptr inbounds float, ptr %754, i64 %755
  %757 = load ptr, ptr %37, align 8, !tbaa !5
  %758 = load i64, ptr %59, align 8, !tbaa !9
  %759 = getelementptr inbounds float, ptr %757, i64 %758
  %760 = load ptr, ptr %33, align 8, !tbaa !5
  %761 = load ptr, ptr %34, align 8, !tbaa !5
  %762 = getelementptr inbounds float, ptr %761, i64 1
  %763 = load ptr, ptr %39, align 8, !tbaa !5
  %764 = load i64, ptr %75, align 8, !tbaa !9
  %765 = getelementptr inbounds i64, ptr %763, i64 %764
  %766 = load ptr, ptr %39, align 8, !tbaa !5
  %767 = load i64, ptr %81, align 8, !tbaa !9
  %768 = getelementptr inbounds i64, ptr %766, i64 %767
  %769 = load ptr, ptr %37, align 8, !tbaa !5
  %770 = load i64, ptr %84, align 8, !tbaa !9
  %771 = getelementptr inbounds float, ptr %769, i64 %770
  %772 = load ptr, ptr %39, align 8, !tbaa !5
  %773 = load i64, ptr %82, align 8, !tbaa !9
  %774 = getelementptr inbounds i64, ptr %772, i64 %773
  %775 = load ptr, ptr %41, align 8, !tbaa !5
  %776 = call i32 @sstebz_(ptr noundef %749, ptr noundef %750, ptr noundef %751, ptr noundef %55, ptr noundef %56, ptr noundef %752, ptr noundef %753, ptr noundef %78, ptr noundef %756, ptr noundef %759, ptr noundef %760, ptr noundef %88, ptr noundef %762, ptr noundef %765, ptr noundef %768, ptr noundef %771, ptr noundef %774, ptr noundef %775)
  %777 = load i64, ptr %71, align 8, !tbaa !9
  %778 = icmp ne i64 %777, 0
  br i1 %778, label %779, label %834

779:                                              ; preds = %740
  %780 = load ptr, ptr %25, align 8, !tbaa !5
  %781 = load ptr, ptr %37, align 8, !tbaa !5
  %782 = load i64, ptr %58, align 8, !tbaa !9
  %783 = getelementptr inbounds float, ptr %781, i64 %782
  %784 = load ptr, ptr %37, align 8, !tbaa !5
  %785 = load i64, ptr %59, align 8, !tbaa !9
  %786 = getelementptr inbounds float, ptr %784, i64 %785
  %787 = load ptr, ptr %33, align 8, !tbaa !5
  %788 = load ptr, ptr %34, align 8, !tbaa !5
  %789 = getelementptr inbounds float, ptr %788, i64 1
  %790 = load ptr, ptr %39, align 8, !tbaa !5
  %791 = load i64, ptr %75, align 8, !tbaa !9
  %792 = getelementptr inbounds i64, ptr %790, i64 %791
  %793 = load ptr, ptr %39, align 8, !tbaa !5
  %794 = load i64, ptr %81, align 8, !tbaa !9
  %795 = getelementptr inbounds i64, ptr %793, i64 %794
  %796 = load ptr, ptr %35, align 8, !tbaa !5
  %797 = load i64, ptr %45, align 8, !tbaa !9
  %798 = getelementptr inbounds float, ptr %796, i64 %797
  %799 = load ptr, ptr %36, align 8, !tbaa !5
  %800 = load ptr, ptr %37, align 8, !tbaa !5
  %801 = load i64, ptr %84, align 8, !tbaa !9
  %802 = getelementptr inbounds float, ptr %800, i64 %801
  %803 = load ptr, ptr %39, align 8, !tbaa !5
  %804 = load i64, ptr %82, align 8, !tbaa !9
  %805 = getelementptr inbounds i64, ptr %803, i64 %804
  %806 = load ptr, ptr %40, align 8, !tbaa !5
  %807 = getelementptr inbounds i64, ptr %806, i64 1
  %808 = load ptr, ptr %41, align 8, !tbaa !5
  %809 = call i32 @sstein_(ptr noundef %780, ptr noundef %783, ptr noundef %786, ptr noundef %787, ptr noundef %789, ptr noundef %792, ptr noundef %795, ptr noundef %798, ptr noundef %799, ptr noundef %802, ptr noundef %805, ptr noundef %807, ptr noundef %808)
  %810 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %810, ptr %83, align 8, !tbaa !9
  %811 = load ptr, ptr %38, align 8, !tbaa !5
  %812 = load i64, ptr %811, align 8, !tbaa !9
  %813 = load i64, ptr %83, align 8, !tbaa !9
  %814 = sub nsw i64 %812, %813
  %815 = add nsw i64 %814, 1
  store i64 %815, ptr %86, align 8, !tbaa !9
  %816 = load ptr, ptr %24, align 8, !tbaa !5
  %817 = load ptr, ptr %25, align 8, !tbaa !5
  %818 = load ptr, ptr %33, align 8, !tbaa !5
  %819 = load ptr, ptr %26, align 8, !tbaa !5
  %820 = load i64, ptr %43, align 8, !tbaa !9
  %821 = getelementptr inbounds float, ptr %819, i64 %820
  %822 = load ptr, ptr %27, align 8, !tbaa !5
  %823 = load ptr, ptr %37, align 8, !tbaa !5
  %824 = load i64, ptr %80, align 8, !tbaa !9
  %825 = getelementptr inbounds float, ptr %823, i64 %824
  %826 = load ptr, ptr %35, align 8, !tbaa !5
  %827 = load i64, ptr %45, align 8, !tbaa !9
  %828 = getelementptr inbounds float, ptr %826, i64 %827
  %829 = load ptr, ptr %36, align 8, !tbaa !5
  %830 = load ptr, ptr %37, align 8, !tbaa !5
  %831 = load i64, ptr %83, align 8, !tbaa !9
  %832 = getelementptr inbounds float, ptr %830, i64 %831
  %833 = call i32 @sormtr_(ptr noundef @.str, ptr noundef %816, ptr noundef @.str.4, ptr noundef %817, ptr noundef %818, ptr noundef %821, ptr noundef %822, ptr noundef %825, ptr noundef %828, ptr noundef %829, ptr noundef %832, ptr noundef %86, ptr noundef %68)
  br label %834

834:                                              ; preds = %779, %740
  br label %835

835:                                              ; preds = %834, %727
  %836 = load i64, ptr %74, align 8, !tbaa !9
  %837 = icmp eq i64 %836, 1
  br i1 %837, label %838, label %855

838:                                              ; preds = %835
  %839 = load ptr, ptr %41, align 8, !tbaa !5
  %840 = load i64, ptr %839, align 8, !tbaa !9
  %841 = icmp eq i64 %840, 0
  br i1 %841, label %842, label %845

842:                                              ; preds = %838
  %843 = load ptr, ptr %33, align 8, !tbaa !5
  %844 = load i64, ptr %843, align 8, !tbaa !9
  store i64 %844, ptr %61, align 8, !tbaa !9
  br label %849

845:                                              ; preds = %838
  %846 = load ptr, ptr %41, align 8, !tbaa !5
  %847 = load i64, ptr %846, align 8, !tbaa !9
  %848 = sub nsw i64 %847, 1
  store i64 %848, ptr %61, align 8, !tbaa !9
  br label %849

849:                                              ; preds = %845, %842
  %850 = load float, ptr %67, align 4, !tbaa !11
  %851 = fdiv float 1.000000e+00, %850
  store float %851, ptr %48, align 4, !tbaa !11
  %852 = load ptr, ptr %34, align 8, !tbaa !5
  %853 = getelementptr inbounds float, ptr %852, i64 1
  %854 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %48, ptr noundef %853, ptr noundef @c__1)
  br label %855

855:                                              ; preds = %849, %835
  %856 = load i64, ptr %71, align 8, !tbaa !9
  %857 = icmp ne i64 %856, 0
  br i1 %857, label %858, label %977

858:                                              ; preds = %855
  %859 = load ptr, ptr %33, align 8, !tbaa !5
  %860 = load i64, ptr %859, align 8, !tbaa !9
  %861 = sub nsw i64 %860, 1
  store i64 %861, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %862

862:                                              ; preds = %973, %858
  %863 = load i64, ptr %51, align 8, !tbaa !9
  %864 = load i64, ptr %46, align 8, !tbaa !9
  %865 = icmp sle i64 %863, %864
  br i1 %865, label %866, label %976

866:                                              ; preds = %862
  store i64 0, ptr %50, align 8, !tbaa !9
  %867 = load ptr, ptr %34, align 8, !tbaa !5
  %868 = load i64, ptr %51, align 8, !tbaa !9
  %869 = getelementptr inbounds float, ptr %867, i64 %868
  %870 = load float, ptr %869, align 4, !tbaa !11
  store float %870, ptr %57, align 4, !tbaa !11
  %871 = load ptr, ptr %33, align 8, !tbaa !5
  %872 = load i64, ptr %871, align 8, !tbaa !9
  store i64 %872, ptr %47, align 8, !tbaa !9
  %873 = load i64, ptr %51, align 8, !tbaa !9
  %874 = add nsw i64 %873, 1
  store i64 %874, ptr %53, align 8, !tbaa !9
  br label %875

875:                                              ; preds = %893, %866
  %876 = load i64, ptr %53, align 8, !tbaa !9
  %877 = load i64, ptr %47, align 8, !tbaa !9
  %878 = icmp sle i64 %876, %877
  br i1 %878, label %879, label %896

879:                                              ; preds = %875
  %880 = load ptr, ptr %34, align 8, !tbaa !5
  %881 = load i64, ptr %53, align 8, !tbaa !9
  %882 = getelementptr inbounds float, ptr %880, i64 %881
  %883 = load float, ptr %882, align 4, !tbaa !11
  %884 = load float, ptr %57, align 4, !tbaa !11
  %885 = fcmp olt float %883, %884
  br i1 %885, label %886, label %892

886:                                              ; preds = %879
  %887 = load i64, ptr %53, align 8, !tbaa !9
  store i64 %887, ptr %50, align 8, !tbaa !9
  %888 = load ptr, ptr %34, align 8, !tbaa !5
  %889 = load i64, ptr %53, align 8, !tbaa !9
  %890 = getelementptr inbounds float, ptr %888, i64 %889
  %891 = load float, ptr %890, align 4, !tbaa !11
  store float %891, ptr %57, align 4, !tbaa !11
  br label %892

892:                                              ; preds = %886, %879
  br label %893

893:                                              ; preds = %892
  %894 = load i64, ptr %53, align 8, !tbaa !9
  %895 = add nsw i64 %894, 1
  store i64 %895, ptr %53, align 8, !tbaa !9
  br label %875, !llvm.loop !18

896:                                              ; preds = %875
  %897 = load i64, ptr %50, align 8, !tbaa !9
  %898 = icmp ne i64 %897, 0
  br i1 %898, label %899, label %972

899:                                              ; preds = %896
  %900 = load ptr, ptr %39, align 8, !tbaa !5
  %901 = load i64, ptr %75, align 8, !tbaa !9
  %902 = load i64, ptr %50, align 8, !tbaa !9
  %903 = add nsw i64 %901, %902
  %904 = sub nsw i64 %903, 1
  %905 = getelementptr inbounds i64, ptr %900, i64 %904
  %906 = load i64, ptr %905, align 8, !tbaa !9
  store i64 %906, ptr %65, align 8, !tbaa !9
  %907 = load ptr, ptr %34, align 8, !tbaa !5
  %908 = load i64, ptr %51, align 8, !tbaa !9
  %909 = getelementptr inbounds float, ptr %907, i64 %908
  %910 = load float, ptr %909, align 4, !tbaa !11
  %911 = load ptr, ptr %34, align 8, !tbaa !5
  %912 = load i64, ptr %50, align 8, !tbaa !9
  %913 = getelementptr inbounds float, ptr %911, i64 %912
  store float %910, ptr %913, align 4, !tbaa !11
  %914 = load ptr, ptr %39, align 8, !tbaa !5
  %915 = load i64, ptr %75, align 8, !tbaa !9
  %916 = load i64, ptr %51, align 8, !tbaa !9
  %917 = add nsw i64 %915, %916
  %918 = sub nsw i64 %917, 1
  %919 = getelementptr inbounds i64, ptr %914, i64 %918
  %920 = load i64, ptr %919, align 8, !tbaa !9
  %921 = load ptr, ptr %39, align 8, !tbaa !5
  %922 = load i64, ptr %75, align 8, !tbaa !9
  %923 = load i64, ptr %50, align 8, !tbaa !9
  %924 = add nsw i64 %922, %923
  %925 = sub nsw i64 %924, 1
  %926 = getelementptr inbounds i64, ptr %921, i64 %925
  store i64 %920, ptr %926, align 8, !tbaa !9
  %927 = load float, ptr %57, align 4, !tbaa !11
  %928 = load ptr, ptr %34, align 8, !tbaa !5
  %929 = load i64, ptr %51, align 8, !tbaa !9
  %930 = getelementptr inbounds float, ptr %928, i64 %929
  store float %927, ptr %930, align 4, !tbaa !11
  %931 = load i64, ptr %65, align 8, !tbaa !9
  %932 = load ptr, ptr %39, align 8, !tbaa !5
  %933 = load i64, ptr %75, align 8, !tbaa !9
  %934 = load i64, ptr %51, align 8, !tbaa !9
  %935 = add nsw i64 %933, %934
  %936 = sub nsw i64 %935, 1
  %937 = getelementptr inbounds i64, ptr %932, i64 %936
  store i64 %931, ptr %937, align 8, !tbaa !9
  %938 = load ptr, ptr %25, align 8, !tbaa !5
  %939 = load ptr, ptr %35, align 8, !tbaa !5
  %940 = load i64, ptr %50, align 8, !tbaa !9
  %941 = load i64, ptr %44, align 8, !tbaa !9
  %942 = mul nsw i64 %940, %941
  %943 = add nsw i64 %942, 1
  %944 = getelementptr inbounds float, ptr %939, i64 %943
  %945 = load ptr, ptr %35, align 8, !tbaa !5
  %946 = load i64, ptr %51, align 8, !tbaa !9
  %947 = load i64, ptr %44, align 8, !tbaa !9
  %948 = mul nsw i64 %946, %947
  %949 = add nsw i64 %948, 1
  %950 = getelementptr inbounds float, ptr %945, i64 %949
  %951 = call i32 @f2c_sswap(ptr noundef %938, ptr noundef %944, ptr noundef @c__1, ptr noundef %950, ptr noundef @c__1)
  %952 = load ptr, ptr %41, align 8, !tbaa !5
  %953 = load i64, ptr %952, align 8, !tbaa !9
  %954 = icmp ne i64 %953, 0
  br i1 %954, label %955, label %971

955:                                              ; preds = %899
  %956 = load ptr, ptr %40, align 8, !tbaa !5
  %957 = load i64, ptr %50, align 8, !tbaa !9
  %958 = getelementptr inbounds i64, ptr %956, i64 %957
  %959 = load i64, ptr %958, align 8, !tbaa !9
  store i64 %959, ptr %65, align 8, !tbaa !9
  %960 = load ptr, ptr %40, align 8, !tbaa !5
  %961 = load i64, ptr %51, align 8, !tbaa !9
  %962 = getelementptr inbounds i64, ptr %960, i64 %961
  %963 = load i64, ptr %962, align 8, !tbaa !9
  %964 = load ptr, ptr %40, align 8, !tbaa !5
  %965 = load i64, ptr %50, align 8, !tbaa !9
  %966 = getelementptr inbounds i64, ptr %964, i64 %965
  store i64 %963, ptr %966, align 8, !tbaa !9
  %967 = load i64, ptr %65, align 8, !tbaa !9
  %968 = load ptr, ptr %40, align 8, !tbaa !5
  %969 = load i64, ptr %51, align 8, !tbaa !9
  %970 = getelementptr inbounds i64, ptr %968, i64 %969
  store i64 %967, ptr %970, align 8, !tbaa !9
  br label %971

971:                                              ; preds = %955, %899
  br label %972

972:                                              ; preds = %971, %896
  br label %973

973:                                              ; preds = %972
  %974 = load i64, ptr %51, align 8, !tbaa !9
  %975 = add nsw i64 %974, 1
  store i64 %975, ptr %51, align 8, !tbaa !9
  br label %862, !llvm.loop !19

976:                                              ; preds = %862
  br label %977

977:                                              ; preds = %976, %855
  %978 = load i64, ptr %90, align 8, !tbaa !9
  %979 = sitofp i64 %978 to float
  %980 = load ptr, ptr %37, align 8, !tbaa !5
  %981 = getelementptr inbounds float, ptr %980, i64 1
  store float %979, ptr %981, align 4, !tbaa !11
  store i32 0, ptr %21, align 4
  store i32 1, ptr %92, align 4
  br label %982

982:                                              ; preds = %977, %411, %355, %348, %340
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  %983 = load i32, ptr %21, align 4
  ret i32 %983
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

declare double @slansy_(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 @ssytrd_(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 @slacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @ssteqr_(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 @sstein_(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 @sormtr_(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_sswap(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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = !{!7, !7, i64 0}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}


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

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

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

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

54:                                               ; preds = %52, %20
  %55 = icmp ne i64 %47, 0
  %56 = icmp ne i64 %48, 0
  %or.cond = select i1 %55, i1 true, i1 %56
  %57 = icmp ne i64 %49, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %57
  br i1 %or.cond3, label %58, label %.thread416.sink.split

58:                                               ; preds = %54
  %.not382 = icmp eq i64 %45, 0
  br i1 %.not382, label %59, label %61

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

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

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

67:                                               ; preds = %64
  br i1 %56, label %68, label %73

68:                                               ; preds = %67
  %.not430 = icmp eq i64 %62, 0
  br i1 %.not430, label %82, label %69

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

73:                                               ; preds = %67
  br i1 %57, label %74, label %82

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

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

82:                                               ; preds = %78, %69, %68, %73
  %.pr = load i64, ptr %19, align 8, !tbaa !5
  %83 = icmp eq i64 %.pr, 0
  br i1 %83, label %84, label %.thread416

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

.thread:                                          ; preds = %84
  %88 = icmp ult i64 %62, 2
  br i1 %88, label %99, label %89

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

99:                                               ; preds = %.thread, %89
  %storemerge = phi float [ %98, %89 ], [ 1.000000e+00, %.thread ]
  %.0354 = phi i64 [ %90, %89 ], [ 1, %.thread ]
  %.0353 = phi i64 [ %97, %89 ], [ undef, %.thread ]
  store float %storemerge, ptr %15, align 4, !tbaa !9
  %100 = load i64, ptr %16, align 8, !tbaa !5
  %101 = icmp sge i64 %100, %.0354
  %or.cond5 = select i1 %101, i1 true, i1 %51
  br i1 %or.cond5, label %.thread411, label %.thread416.sink.split

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

.thread416.sink.split:                            ; preds = %99, %84, %78, %74, %69, %64, %61, %59, %54, %52
  %.sink = phi i64 [ -1, %52 ], [ -2, %54 ], [ -3, %59 ], [ -4, %61 ], [ -6, %64 ], [ -8, %69 ], [ -9, %74 ], [ -10, %78 ], [ -15, %84 ], [ -17, %99 ]
  store i64 %.sink, ptr %19, align 8, !tbaa !5
  br label %.thread416

.thread416:                                       ; preds = %.thread416.sink.split, %82, %.thread411
  %102 = phi i64 [ %.pr413.pr, %.thread411 ], [ %.pr, %82 ], [ %.sink, %.thread416.sink.split ]
  %103 = sub nsw i64 0, %102
  store i64 %103, ptr %21, align 8, !tbaa !5
  %104 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %21) #6
  br label %286

105:                                              ; preds = %.thread411
  br i1 %51, label %286, label %106

106:                                              ; preds = %105
  store i64 0, ptr %11, align 8, !tbaa !5
  %107 = load i64, ptr %3, align 8, !tbaa !5
  switch i64 %107, label %121 [
    i64 0, label %286
    i64 1, label %108
  ]

108:                                              ; preds = %106
  %or.cond7 = select i1 %55, i1 true, i1 %57
  br i1 %or.cond7, label %109, label %111

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

111:                                              ; preds = %108
  %112 = load float, ptr %6, align 4, !tbaa !9
  %113 = load float, ptr %4, align 4, !tbaa !9
  %114 = fcmp olt float %112, %113
  br i1 %114, label %115, label %119

115:                                              ; preds = %111
  %116 = load float, ptr %7, align 4, !tbaa !9
  %117 = fcmp ult float %116, %113
  br i1 %117, label %119, label %118

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

.sink.split:                                      ; preds = %109, %118
  %.sink464 = phi float [ %113, %118 ], [ %110, %109 ]
  store float %.sink464, ptr %12, align 4, !tbaa !9
  br label %119

119:                                              ; preds = %.sink.split, %111, %115
  br i1 %.not, label %120, label %286

120:                                              ; preds = %119
  store float 1.000000e+00, ptr %13, align 4, !tbaa !9
  br label %286

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

136:                                              ; preds = %121
  %137 = load float, ptr %6, align 4, !tbaa !9
  store float %137, ptr %25, align 4, !tbaa !9
  %138 = load float, ptr %7, align 4, !tbaa !9
  store float %138, ptr %26, align 4, !tbaa !9
  br label %139

139:                                              ; preds = %136, %121
  %140 = tail call double @slansy_(ptr noundef nonnull @.str.11, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %15) #6
  %141 = fptrunc double %140 to float
  %142 = fcmp ogt float %141, 0.000000e+00
  %143 = fcmp ogt float %sqrtf, %141
  %or.cond405 = select i1 %142, i1 %143, i1 false
  br i1 %or.cond405, label %146, label %144

144:                                              ; preds = %139
  %145 = fcmp olt float %134, %141
  br i1 %145, label %146, label %177

146:                                              ; preds = %144, %139
  %.pn = phi float [ %sqrtf, %139 ], [ %134, %144 ]
  %storemerge431 = fdiv float %.pn, %141
  store float %storemerge431, ptr %28, align 4, !tbaa !9
  %147 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %147, ptr %21, align 8, !tbaa !5
  br i1 %.not382, label %159, label %148

148:                                              ; preds = %146
  store i64 1, ptr %24, align 8, !tbaa !5
  %.not394436 = icmp slt i64 %147, 1
  br i1 %.not394436, label %.loopexit434, label %.lr.ph

.lr.ph:                                           ; preds = %148
  %149 = add i64 %35, 1
  br label %150

150:                                              ; preds = %.lr.ph, %150
  %storemerge393437 = phi i64 [ 1, %.lr.ph ], [ %157, %150 ]
  %151 = load i64, ptr %3, align 8, !tbaa !5
  %reass.sub = sub i64 %151, %storemerge393437
  %152 = add i64 %reass.sub, 1
  store i64 %152, ptr %22, align 8, !tbaa !5
  %153 = mul i64 %storemerge393437, %149
  %154 = getelementptr inbounds float, ptr %37, i64 %153
  %155 = call i32 @f2c_sscal(ptr noundef nonnull %22, ptr noundef nonnull %28, ptr noundef %154, ptr noundef nonnull @c__1) #6
  %156 = load i64, ptr %24, align 8, !tbaa !5
  %157 = add nsw i64 %156, 1
  store i64 %157, ptr %24, align 8, !tbaa !5
  %158 = load i64, ptr %21, align 8, !tbaa !5
  %.not394.not = icmp slt i64 %156, %158
  br i1 %.not394.not, label %150, label %.loopexit434, !llvm.loop !11

159:                                              ; preds = %146
  %invariant.gep = getelementptr i8, ptr %37, i64 4
  store i64 1, ptr %24, align 8, !tbaa !5
  %.not392438 = icmp slt i64 %147, 1
  br i1 %.not392438, label %.loopexit434, label %.lr.ph440

.lr.ph440:                                        ; preds = %159, %.lr.ph440
  %storemerge391439 = phi i64 [ %163, %.lr.ph440 ], [ 1, %159 ]
  %160 = mul nsw i64 %storemerge391439, %35
  %gep = getelementptr float, ptr %invariant.gep, i64 %160
  %161 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %28, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %162 = load i64, ptr %24, align 8, !tbaa !5
  %163 = add nsw i64 %162, 1
  store i64 %163, ptr %24, align 8, !tbaa !5
  %164 = load i64, ptr %21, align 8, !tbaa !5
  %.not392.not = icmp slt i64 %162, %164
  br i1 %.not392.not, label %.lr.ph440, label %.loopexit434, !llvm.loop !13

.loopexit434:                                     ; preds = %150, %.lr.ph440, %148, %159
  %165 = load float, ptr %10, align 4, !tbaa !9
  %166 = fcmp ogt float %165, 0.000000e+00
  br i1 %166, label %167, label %170

167:                                              ; preds = %.loopexit434
  %168 = load float, ptr %28, align 4, !tbaa !9
  %169 = fmul float %165, %168
  store float %169, ptr %31, align 4, !tbaa !9
  br label %170

170:                                              ; preds = %167, %.loopexit434
  br i1 %.not389, label %177, label %171

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

177:                                              ; preds = %144, %170, %171
  %178 = phi i1 [ true, %170 ], [ true, %171 ], [ false, %144 ]
  %179 = load i64, ptr %3, align 8, !tbaa !5
  %reass.add = shl i64 %179, 1
  %180 = or disjoint i64 %reass.add, 1
  %181 = add nsw i64 %180, %179
  %182 = load i64, ptr %16, align 8, !tbaa !5
  %183 = add i64 %182, 1
  %184 = sub i64 %183, %181
  store i64 %184, ptr %33, align 8, !tbaa !5
  %185 = getelementptr float, ptr %15, i64 %reass.add
  %186 = getelementptr float, ptr %15, i64 %179
  %187 = getelementptr inbounds float, ptr %42, i64 %181
  %188 = call i32 @ssytrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %185, ptr noundef %186, ptr noundef nonnull %15, ptr noundef nonnull %187, ptr noundef nonnull %33, ptr noundef nonnull %29) #6
  %.not395 = icmp eq i64 %49, 0
  br i1 %.not395, label %196, label %189

189:                                              ; preds = %177
  %190 = load i64, ptr %8, align 8, !tbaa !5
  %191 = icmp eq i64 %190, 1
  br i1 %191, label %192, label %196

192:                                              ; preds = %189
  %193 = load i64, ptr %9, align 8, !tbaa !5
  %194 = load i64, ptr %3, align 8, !tbaa !5
  %195 = icmp eq i64 %193, %194
  br label %196

196:                                              ; preds = %192, %189, %177
  %197 = phi i1 [ false, %189 ], [ false, %177 ], [ %195, %192 ]
  %or.cond9 = or i1 %55, %197
  br i1 %or.cond9, label %198, label %227

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

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

206:                                              ; preds = %201
  %207 = add nsw i64 %203, -1
  store i64 %207, ptr %21, align 8, !tbaa !5
  %208 = getelementptr inbounds float, ptr %42, i64 %205
  %209 = call i32 @f2c_scopy(ptr noundef nonnull %21, ptr noundef %186, ptr noundef nonnull @c__1, ptr noundef nonnull %208, ptr noundef nonnull @c__1) #6
  %210 = call i32 @ssterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %208, ptr noundef nonnull %19) #6
  br label %.loopexit433

211:                                              ; preds = %201
  %212 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %13, ptr noundef nonnull %14) #6
  %213 = call i32 @sorgtr_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %187, ptr noundef nonnull %33, ptr noundef nonnull %29) #6
  %214 = load i64, ptr %3, align 8, !tbaa !5
  %215 = add nsw i64 %214, -1
  store i64 %215, ptr %21, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %42, i64 %205
  %217 = call i32 @f2c_scopy(ptr noundef nonnull %21, ptr noundef %186, ptr noundef nonnull @c__1, ptr noundef nonnull %216, ptr noundef nonnull @c__1) #6
  %218 = call i32 @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %216, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %187, ptr noundef nonnull %19) #6
  %219 = load i64, ptr %19, align 8, !tbaa !5
  %220 = icmp eq i64 %219, 0
  br i1 %220, label %221, label %.thread423

221:                                              ; preds = %211
  %222 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %222, ptr %21, align 8, !tbaa !5
  %.not396441 = icmp slt i64 %222, 1
  br i1 %.not396441, label %.loopexit433, label %.lr.ph443.preheader

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

.loopexit433:                                     ; preds = %.lr.ph443.preheader, %221, %206
  %.pr422 = load i64, ptr %19, align 8, !tbaa !5
  %224 = icmp eq i64 %.pr422, 0
  br i1 %224, label %225, label %.thread423

225:                                              ; preds = %.loopexit433
  %226 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %226, ptr %11, align 8, !tbaa !5
  br label %237

.thread423:                                       ; preds = %211, %.loopexit433
  store i64 0, ptr %19, align 8, !tbaa !5
  br label %227

227:                                              ; preds = %196, %.thread423, %198
  %.407 = select i1 %.not, i8 66, i8 69
  store i8 %.407, ptr %30, align 1, !tbaa !14
  %228 = load i64, ptr %3, align 8, !tbaa !5
  %229 = getelementptr i64, ptr %17, i64 %228
  %.idx = shl i64 %228, 4
  %230 = getelementptr i8, ptr %17, i64 %.idx
  %231 = call i32 @sstebz_(ptr noundef %1, ptr noundef nonnull %30, ptr noundef nonnull %3, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %31, ptr noundef nonnull %185, ptr noundef %186, ptr noundef nonnull %11, ptr noundef nonnull %34, ptr noundef %12, ptr noundef %17, ptr noundef %229, ptr noundef nonnull %187, ptr noundef %230, ptr noundef nonnull %19) #6
  br i1 %.not, label %232, label %237

232:                                              ; preds = %227
  %233 = call i32 @sstein_(ptr noundef nonnull %3, ptr noundef nonnull %185, ptr noundef %186, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %17, ptr noundef %229, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %187, ptr noundef %230, ptr noundef %18, ptr noundef nonnull %19) #6
  %234 = load i64, ptr %16, align 8, !tbaa !5
  %235 = sub i64 %234, %179
  store i64 %235, ptr %32, align 8, !tbaa !5
  %236 = call i32 @sormtr_(ptr noundef nonnull @.str, ptr noundef %2, ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %15, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %186, ptr noundef nonnull %32, ptr noundef nonnull %29) #6
  br label %237

237:                                              ; preds = %227, %232, %225
  br i1 %178, label %238, label %249

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

241:                                              ; preds = %238
  %242 = load i64, ptr %11, align 8, !tbaa !5
  br label %245

243:                                              ; preds = %238
  %244 = add nsw i64 %239, -1
  br label %245

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

249:                                              ; preds = %245, %237
  br i1 %.not, label %250, label %.loopexit

250:                                              ; preds = %249
  %251 = load i64, ptr %11, align 8, !tbaa !5
  %252 = add nsw i64 %251, -1
  store i64 %252, ptr %21, align 8, !tbaa !5
  %invariant.gep450 = getelementptr i8, ptr %41, i64 4
  store i64 1, ptr %24, align 8, !tbaa !5
  %.not400454 = icmp slt i64 %251, 2
  br i1 %.not400454, label %.loopexit, label %.lr.ph457

.lr.ph457:                                        ; preds = %250, %._crit_edge.thread
  %storemerge399455 = phi i64 [ %283, %._crit_edge.thread ], [ 1, %250 ]
  %253 = getelementptr inbounds float, ptr %38, i64 %storemerge399455
  %254 = load float, ptr %253, align 4, !tbaa !9
  %255 = load i64, ptr %11, align 8, !tbaa !5
  store i64 %255, ptr %22, align 8, !tbaa !5
  %.not401.not444 = icmp slt i64 %storemerge399455, %255
  br i1 %.not401.not444, label %.lr.ph448.preheader, label %._crit_edge.thread

.lr.ph448.preheader:                              ; preds = %.lr.ph457
  %256 = sub i64 %255, %storemerge399455
  %.neg = add i64 %storemerge399455, 1
  %xtraiter = and i64 %256, 1
  %257 = icmp eq i64 %255, %.neg
  br i1 %257, label %._crit_edge.unr-lcssa, label %.lr.ph448.preheader.new

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

.lr.ph448:                                        ; preds = %.lr.ph448, %.lr.ph448.preheader.new
  %.1356447 = phi i64 [ 0, %.lr.ph448.preheader.new ], [ %.2.1, %.lr.ph448 ]
  %.0357.in446 = phi i64 [ %storemerge399455, %.lr.ph448.preheader.new ], [ %.0357.1, %.lr.ph448 ]
  %.0358445 = phi float [ %254, %.lr.ph448.preheader.new ], [ %.1359.1, %.lr.ph448 ]
  %niter = phi i64 [ 0, %.lr.ph448.preheader.new ], [ %niter.next.1, %.lr.ph448 ]
  %.0357 = add nsw i64 %.0357.in446, 1
  %258 = getelementptr float, ptr %12, i64 %.0357.in446
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = fcmp olt float %259, %.0358445
  %.1359 = select i1 %260, float %259, float %.0358445
  %.2 = select i1 %260, i64 %.0357, i64 %.1356447
  %.0357.1 = add nsw i64 %.0357.in446, 2
  %261 = getelementptr float, ptr %12, i64 %.0357
  %262 = load float, ptr %261, align 4, !tbaa !9
  %263 = fcmp olt float %262, %.1359
  %.1359.1 = select i1 %263, float %262, float %.1359
  %.2.1 = select i1 %263, i64 %.0357.1, i64 %.2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph448, !llvm.loop !15

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph448, %.lr.ph448.preheader
  %.1359.lcssa.ph = phi float [ poison, %.lr.ph448.preheader ], [ %.1359.1, %.lr.ph448 ]
  %.2.lcssa.ph = phi i64 [ poison, %.lr.ph448.preheader ], [ %.2.1, %.lr.ph448 ]
  %.1356447.unr = phi i64 [ 0, %.lr.ph448.preheader ], [ %.2.1, %.lr.ph448 ]
  %.0357.in446.unr = phi i64 [ %storemerge399455, %.lr.ph448.preheader ], [ %.0357.1, %.lr.ph448 ]
  %.0358445.unr = phi float [ %254, %.lr.ph448.preheader ], [ %.1359.1, %.lr.ph448 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph448.epil

.lr.ph448.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %.0357.epil = add nsw i64 %.0357.in446.unr, 1
  %264 = getelementptr float, ptr %12, i64 %.0357.in446.unr
  %265 = load float, ptr %264, align 4, !tbaa !9
  %266 = fcmp olt float %265, %.0358445.unr
  %.1359.epil = select i1 %266, float %265, float %.0358445.unr
  %.2.epil = select i1 %266, i64 %.0357.epil, i64 %.1356447.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph448.epil
  %.1359.lcssa = phi float [ %.1359.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1359.epil, %.lr.ph448.epil ]
  %.2.lcssa = phi i64 [ %.2.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2.epil, %.lr.ph448.epil ]
  %.not402 = icmp eq i64 %.2.lcssa, 0
  br i1 %.not402, label %._crit_edge.thread, label %267

267:                                              ; preds = %._crit_edge
  %268 = getelementptr inbounds i64, ptr %43, i64 %.2.lcssa
  %269 = load i64, ptr %268, align 8, !tbaa !5
  %270 = getelementptr inbounds float, ptr %38, i64 %.2.lcssa
  store float %254, ptr %270, align 4, !tbaa !9
  %271 = getelementptr inbounds i64, ptr %43, i64 %storemerge399455
  %272 = load i64, ptr %271, align 8, !tbaa !5
  store i64 %272, ptr %268, align 8, !tbaa !5
  store float %.1359.lcssa, ptr %253, align 4, !tbaa !9
  store i64 %269, ptr %271, align 8, !tbaa !5
  %273 = mul nsw i64 %.2.lcssa, %39
  %gep451 = getelementptr float, ptr %invariant.gep450, i64 %273
  %274 = mul nsw i64 %storemerge399455, %39
  %gep453 = getelementptr float, ptr %invariant.gep450, i64 %274
  %275 = call i32 @f2c_sswap(ptr noundef nonnull %3, ptr noundef %gep451, ptr noundef nonnull @c__1, ptr noundef %gep453, ptr noundef nonnull @c__1) #6
  %276 = load i64, ptr %19, align 8, !tbaa !5
  %.not403 = icmp eq i64 %276, 0
  %.pre = load i64, ptr %24, align 8, !tbaa !5
  br i1 %.not403, label %._crit_edge.thread, label %277

277:                                              ; preds = %267
  %278 = getelementptr inbounds i64, ptr %44, i64 %.2.lcssa
  %279 = load i64, ptr %278, align 8, !tbaa !5
  %280 = getelementptr inbounds i64, ptr %44, i64 %.pre
  %281 = load i64, ptr %280, align 8, !tbaa !5
  store i64 %281, ptr %278, align 8, !tbaa !5
  store i64 %279, ptr %280, align 8, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph457, %._crit_edge, %277, %267
  %282 = phi i64 [ %storemerge399455, %._crit_edge ], [ %.pre, %277 ], [ %.pre, %267 ], [ %storemerge399455, %.lr.ph457 ]
  %283 = add nsw i64 %282, 1
  store i64 %283, ptr %24, align 8, !tbaa !5
  %284 = load i64, ptr %21, align 8, !tbaa !5
  %.not400.not = icmp slt i64 %282, %284
  br i1 %.not400.not, label %.lr.ph457, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %._crit_edge.thread, %250, %249
  %285 = sitofp i64 %.0353 to float
  store float %285, ptr %15, align 4, !tbaa !9
  br label %286

286:                                              ; preds = %119, %120, %106, %105, %.loopexit, %.thread416
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

declare double @slansy_(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 @ssytrd_(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 @slacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @ssteqr_(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 @sstein_(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 @sormtr_(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_sswap(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

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

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


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