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

; 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 [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b11 = external hidden global float, align 4
@c_b12 = external hidden global float, align 4
@c__2 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__49 = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @shseqr_(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) #0 {
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %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 [2 x ptr], align 16
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca [2 x i64], align 16
  %37 = alloca i64, align 8
  %38 = alloca float, align 4
  %39 = alloca [2 x i8], align 1
  %40 = alloca i64, align 8
  %41 = alloca [2401 x float], align 16
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca [49 x float], align 16
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i32, align 4
  store ptr %0, ptr %16, align 8, !tbaa !5
  store ptr %1, ptr %17, align 8, !tbaa !5
  store ptr %2, ptr %18, align 8, !tbaa !5
  store ptr %3, ptr %19, align 8, !tbaa !5
  store ptr %4, ptr %20, align 8, !tbaa !5
  store ptr %5, ptr %21, align 8, !tbaa !5
  store ptr %6, ptr %22, align 8, !tbaa !5
  store ptr %7, ptr %23, align 8, !tbaa !5
  store ptr %8, ptr %24, align 8, !tbaa !5
  store ptr %9, ptr %25, align 8, !tbaa !5
  store ptr %10, ptr %26, align 8, !tbaa !5
  store ptr %11, ptr %27, align 8, !tbaa !5
  store ptr %12, ptr %28, align 8, !tbaa !5
  store ptr %13, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.start.p0(i64 2, ptr %39) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 9604, ptr %41) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.start.p0(i64 196, ptr %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #3
  %50 = load ptr, ptr %22, align 8, !tbaa !5
  %51 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %51, ptr %31, align 8, !tbaa !9
  %52 = load i64, ptr %31, align 8, !tbaa !9
  %53 = add nsw i64 1, %52
  store i64 %53, ptr %32, align 8, !tbaa !9
  %54 = load i64, ptr %32, align 8, !tbaa !9
  %55 = load ptr, ptr %21, align 8, !tbaa !5
  %56 = sub i64 0, %54
  %57 = getelementptr inbounds float, ptr %55, i64 %56
  store ptr %57, ptr %21, align 8, !tbaa !5
  %58 = load ptr, ptr %23, align 8, !tbaa !5
  %59 = getelementptr inbounds float, ptr %58, i32 -1
  store ptr %59, ptr %23, align 8, !tbaa !5
  %60 = load ptr, ptr %24, align 8, !tbaa !5
  %61 = getelementptr inbounds float, ptr %60, i32 -1
  store ptr %61, ptr %24, align 8, !tbaa !5
  %62 = load ptr, ptr %26, align 8, !tbaa !5
  %63 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %63, ptr %33, align 8, !tbaa !9
  %64 = load i64, ptr %33, align 8, !tbaa !9
  %65 = add nsw i64 1, %64
  store i64 %65, ptr %34, align 8, !tbaa !9
  %66 = load i64, ptr %34, align 8, !tbaa !9
  %67 = load ptr, ptr %25, align 8, !tbaa !5
  %68 = sub i64 0, %66
  %69 = getelementptr inbounds float, ptr %67, i64 %68
  store ptr %69, ptr %25, align 8, !tbaa !5
  %70 = load ptr, ptr %27, align 8, !tbaa !5
  %71 = getelementptr inbounds float, ptr %70, i32 -1
  store ptr %71, ptr %27, align 8, !tbaa !5
  %72 = load ptr, ptr %16, align 8, !tbaa !5
  %73 = call i64 @lsame_(ptr noundef %72, ptr noundef @.str)
  store i64 %73, ptr %46, align 8, !tbaa !9
  %74 = load ptr, ptr %17, align 8, !tbaa !5
  %75 = call i64 @lsame_(ptr noundef %74, ptr noundef @.str.1)
  store i64 %75, ptr %44, align 8, !tbaa !9
  %76 = load i64, ptr %44, align 8, !tbaa !9
  %77 = icmp ne i64 %76, 0
  br i1 %77, label %82, label %78

78:                                               ; preds = %14
  %79 = load ptr, ptr %17, align 8, !tbaa !5
  %80 = call i64 @lsame_(ptr noundef %79, ptr noundef @.str.2)
  %81 = icmp ne i64 %80, 0
  br label %82

82:                                               ; preds = %78, %14
  %83 = phi i1 [ true, %14 ], [ %81, %78 ]
  %84 = zext i1 %83 to i32
  %85 = sext i32 %84 to i64
  store i64 %85, ptr %47, align 8, !tbaa !9
  %86 = load ptr, ptr %18, align 8, !tbaa !5
  %87 = load i64, ptr %86, align 8, !tbaa !9
  %88 = icmp sge i64 1, %87
  br i1 %88, label %89, label %90

89:                                               ; preds = %82
  br label %93

90:                                               ; preds = %82
  %91 = load ptr, ptr %18, align 8, !tbaa !5
  %92 = load i64, ptr %91, align 8, !tbaa !9
  br label %93

93:                                               ; preds = %90, %89
  %94 = phi i64 [ 1, %89 ], [ %92, %90 ]
  %95 = sitofp i64 %94 to float
  %96 = load ptr, ptr %27, align 8, !tbaa !5
  %97 = getelementptr inbounds float, ptr %96, i64 1
  store float %95, ptr %97, align 4, !tbaa !11
  %98 = load ptr, ptr %28, align 8, !tbaa !5
  %99 = load i64, ptr %98, align 8, !tbaa !9
  %100 = icmp eq i64 %99, -1
  %101 = zext i1 %100 to i32
  %102 = sext i32 %101 to i64
  store i64 %102, ptr %48, align 8, !tbaa !9
  %103 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 0, ptr %103, align 8, !tbaa !9
  %104 = load ptr, ptr %16, align 8, !tbaa !5
  %105 = call i64 @lsame_(ptr noundef %104, ptr noundef @.str.3)
  %106 = icmp ne i64 %105, 0
  br i1 %106, label %112, label %107

107:                                              ; preds = %93
  %108 = load i64, ptr %46, align 8, !tbaa !9
  %109 = icmp ne i64 %108, 0
  br i1 %109, label %112, label %110

110:                                              ; preds = %107
  %111 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -1, ptr %111, align 8, !tbaa !9
  br label %233

112:                                              ; preds = %107, %93
  %113 = load ptr, ptr %17, align 8, !tbaa !5
  %114 = call i64 @lsame_(ptr noundef %113, ptr noundef @.str.4)
  %115 = icmp ne i64 %114, 0
  br i1 %115, label %121, label %116

116:                                              ; preds = %112
  %117 = load i64, ptr %47, align 8, !tbaa !9
  %118 = icmp ne i64 %117, 0
  br i1 %118, label %121, label %119

119:                                              ; preds = %116
  %120 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -2, ptr %120, align 8, !tbaa !9
  br label %232

121:                                              ; preds = %116, %112
  %122 = load ptr, ptr %18, align 8, !tbaa !5
  %123 = load i64, ptr %122, align 8, !tbaa !9
  %124 = icmp slt i64 %123, 0
  br i1 %124, label %125, label %127

125:                                              ; preds = %121
  %126 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -3, ptr %126, align 8, !tbaa !9
  br label %231

127:                                              ; preds = %121
  %128 = load ptr, ptr %19, align 8, !tbaa !5
  %129 = load i64, ptr %128, align 8, !tbaa !9
  %130 = icmp slt i64 %129, 1
  br i1 %130, label %144, label %131

131:                                              ; preds = %127
  %132 = load ptr, ptr %19, align 8, !tbaa !5
  %133 = load i64, ptr %132, align 8, !tbaa !9
  %134 = load ptr, ptr %18, align 8, !tbaa !5
  %135 = load i64, ptr %134, align 8, !tbaa !9
  %136 = icmp sge i64 1, %135
  br i1 %136, label %137, label %138

137:                                              ; preds = %131
  br label %141

138:                                              ; preds = %131
  %139 = load ptr, ptr %18, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  br label %141

141:                                              ; preds = %138, %137
  %142 = phi i64 [ 1, %137 ], [ %140, %138 ]
  %143 = icmp sgt i64 %133, %142
  br i1 %143, label %144, label %146

144:                                              ; preds = %141, %127
  %145 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -4, ptr %145, align 8, !tbaa !9
  br label %230

146:                                              ; preds = %141
  %147 = load ptr, ptr %20, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  %149 = load ptr, ptr %19, align 8, !tbaa !5
  %150 = load i64, ptr %149, align 8, !tbaa !9
  %151 = load ptr, ptr %18, align 8, !tbaa !5
  %152 = load i64, ptr %151, align 8, !tbaa !9
  %153 = icmp sle i64 %150, %152
  br i1 %153, label %154, label %157

154:                                              ; preds = %146
  %155 = load ptr, ptr %19, align 8, !tbaa !5
  %156 = load i64, ptr %155, align 8, !tbaa !9
  br label %160

157:                                              ; preds = %146
  %158 = load ptr, ptr %18, align 8, !tbaa !5
  %159 = load i64, ptr %158, align 8, !tbaa !9
  br label %160

160:                                              ; preds = %157, %154
  %161 = phi i64 [ %156, %154 ], [ %159, %157 ]
  %162 = icmp slt i64 %148, %161
  br i1 %162, label %169, label %163

163:                                              ; preds = %160
  %164 = load ptr, ptr %20, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = load ptr, ptr %18, align 8, !tbaa !5
  %167 = load i64, ptr %166, align 8, !tbaa !9
  %168 = icmp sgt i64 %165, %167
  br i1 %168, label %169, label %171

169:                                              ; preds = %163, %160
  %170 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -5, ptr %170, align 8, !tbaa !9
  br label %229

171:                                              ; preds = %163
  %172 = load ptr, ptr %22, align 8, !tbaa !5
  %173 = load i64, ptr %172, align 8, !tbaa !9
  %174 = load ptr, ptr %18, align 8, !tbaa !5
  %175 = load i64, ptr %174, align 8, !tbaa !9
  %176 = icmp sge i64 1, %175
  br i1 %176, label %177, label %178

177:                                              ; preds = %171
  br label %181

178:                                              ; preds = %171
  %179 = load ptr, ptr %18, align 8, !tbaa !5
  %180 = load i64, ptr %179, align 8, !tbaa !9
  br label %181

181:                                              ; preds = %178, %177
  %182 = phi i64 [ 1, %177 ], [ %180, %178 ]
  %183 = icmp slt i64 %173, %182
  br i1 %183, label %184, label %186

184:                                              ; preds = %181
  %185 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -7, ptr %185, align 8, !tbaa !9
  br label %228

186:                                              ; preds = %181
  %187 = load ptr, ptr %26, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = icmp slt i64 %188, 1
  br i1 %189, label %206, label %190

190:                                              ; preds = %186
  %191 = load i64, ptr %47, align 8, !tbaa !9
  %192 = icmp ne i64 %191, 0
  br i1 %192, label %193, label %208

193:                                              ; preds = %190
  %194 = load ptr, ptr %26, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  %196 = load ptr, ptr %18, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  %198 = icmp sge i64 1, %197
  br i1 %198, label %199, label %200

199:                                              ; preds = %193
  br label %203

200:                                              ; preds = %193
  %201 = load ptr, ptr %18, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  br label %203

203:                                              ; preds = %200, %199
  %204 = phi i64 [ 1, %199 ], [ %202, %200 ]
  %205 = icmp slt i64 %195, %204
  br i1 %205, label %206, label %208

206:                                              ; preds = %203, %186
  %207 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -11, ptr %207, align 8, !tbaa !9
  br label %227

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

214:                                              ; preds = %208
  br label %218

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

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

221:                                              ; preds = %218
  %222 = load i64, ptr %48, align 8, !tbaa !9
  %223 = icmp ne i64 %222, 0
  br i1 %223, label %226, label %224

224:                                              ; preds = %221
  %225 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -13, ptr %225, align 8, !tbaa !9
  br label %226

226:                                              ; preds = %224, %221, %218
  br label %227

227:                                              ; preds = %226, %206
  br label %228

228:                                              ; preds = %227, %184
  br label %229

229:                                              ; preds = %228, %169
  br label %230

230:                                              ; preds = %229, %144
  br label %231

231:                                              ; preds = %230, %125
  br label %232

232:                                              ; preds = %231, %119
  br label %233

233:                                              ; preds = %232, %110
  %234 = load ptr, ptr %29, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = icmp ne i64 %235, 0
  br i1 %236, label %237, label %242

237:                                              ; preds = %233
  %238 = load ptr, ptr %29, align 8, !tbaa !5
  %239 = load i64, ptr %238, align 8, !tbaa !9
  %240 = sub nsw i64 0, %239
  store i64 %240, ptr %35, align 8, !tbaa !9
  %241 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %35)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %49, align 4
  br label %608

242:                                              ; preds = %233
  %243 = load ptr, ptr %18, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = icmp eq i64 %244, 0
  br i1 %245, label %246, label %247

246:                                              ; preds = %242
  store i32 0, ptr %15, align 4
  store i32 1, ptr %49, align 4
  br label %608

247:                                              ; preds = %242
  %248 = load i64, ptr %48, align 8, !tbaa !9
  %249 = icmp ne i64 %248, 0
  br i1 %249, label %250, label %300

250:                                              ; preds = %247
  %251 = load ptr, ptr %18, align 8, !tbaa !5
  %252 = load ptr, ptr %19, align 8, !tbaa !5
  %253 = load ptr, ptr %20, align 8, !tbaa !5
  %254 = load ptr, ptr %21, align 8, !tbaa !5
  %255 = load i64, ptr %32, align 8, !tbaa !9
  %256 = getelementptr inbounds float, ptr %254, i64 %255
  %257 = load ptr, ptr %22, align 8, !tbaa !5
  %258 = load ptr, ptr %23, align 8, !tbaa !5
  %259 = getelementptr inbounds float, ptr %258, i64 1
  %260 = load ptr, ptr %24, align 8, !tbaa !5
  %261 = getelementptr inbounds float, ptr %260, i64 1
  %262 = load ptr, ptr %19, align 8, !tbaa !5
  %263 = load ptr, ptr %20, align 8, !tbaa !5
  %264 = load ptr, ptr %25, align 8, !tbaa !5
  %265 = load i64, ptr %34, align 8, !tbaa !9
  %266 = getelementptr inbounds float, ptr %264, i64 %265
  %267 = load ptr, ptr %26, align 8, !tbaa !5
  %268 = load ptr, ptr %27, align 8, !tbaa !5
  %269 = getelementptr inbounds float, ptr %268, i64 1
  %270 = load ptr, ptr %28, align 8, !tbaa !5
  %271 = load ptr, ptr %29, align 8, !tbaa !5
  %272 = call i32 @slaqr0_(ptr noundef %46, ptr noundef %47, ptr noundef %251, ptr noundef %252, ptr noundef %253, ptr noundef %256, ptr noundef %257, ptr noundef %259, ptr noundef %261, ptr noundef %262, ptr noundef %263, ptr noundef %266, ptr noundef %267, ptr noundef %269, ptr noundef %270, ptr noundef %271)
  %273 = load ptr, ptr %18, align 8, !tbaa !5
  %274 = load i64, ptr %273, align 8, !tbaa !9
  %275 = icmp sge i64 1, %274
  br i1 %275, label %276, label %277

276:                                              ; preds = %250
  br label %280

277:                                              ; preds = %250
  %278 = load ptr, ptr %18, align 8, !tbaa !5
  %279 = load i64, ptr %278, align 8, !tbaa !9
  br label %280

280:                                              ; preds = %277, %276
  %281 = phi i64 [ 1, %276 ], [ %279, %277 ]
  %282 = sitofp i64 %281 to float
  store float %282, ptr %38, align 4, !tbaa !11
  %283 = load float, ptr %38, align 4, !tbaa !11
  %284 = load ptr, ptr %27, align 8, !tbaa !5
  %285 = getelementptr inbounds float, ptr %284, i64 1
  %286 = load float, ptr %285, align 4, !tbaa !11
  %287 = fcmp oge float %283, %286
  br i1 %287, label %288, label %290

288:                                              ; preds = %280
  %289 = load float, ptr %38, align 4, !tbaa !11
  br label %294

290:                                              ; preds = %280
  %291 = load ptr, ptr %27, align 8, !tbaa !5
  %292 = getelementptr inbounds float, ptr %291, i64 1
  %293 = load float, ptr %292, align 4, !tbaa !11
  br label %294

294:                                              ; preds = %290, %288
  %295 = phi float [ %289, %288 ], [ %293, %290 ]
  %296 = fpext float %295 to double
  %297 = fptrunc double %296 to float
  %298 = load ptr, ptr %27, align 8, !tbaa !5
  %299 = getelementptr inbounds float, ptr %298, i64 1
  store float %297, ptr %299, align 4, !tbaa !11
  store i32 0, ptr %15, align 4
  store i32 1, ptr %49, align 4
  br label %608

300:                                              ; preds = %247
  %301 = load ptr, ptr %19, align 8, !tbaa !5
  %302 = load i64, ptr %301, align 8, !tbaa !9
  %303 = sub nsw i64 %302, 1
  store i64 %303, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %304

304:                                              ; preds = %323, %300
  %305 = load i64, ptr %40, align 8, !tbaa !9
  %306 = load i64, ptr %35, align 8, !tbaa !9
  %307 = icmp sle i64 %305, %306
  br i1 %307, label %308, label %326

308:                                              ; preds = %304
  %309 = load ptr, ptr %21, align 8, !tbaa !5
  %310 = load i64, ptr %40, align 8, !tbaa !9
  %311 = load i64, ptr %40, align 8, !tbaa !9
  %312 = load i64, ptr %31, align 8, !tbaa !9
  %313 = mul nsw i64 %311, %312
  %314 = add nsw i64 %310, %313
  %315 = getelementptr inbounds float, ptr %309, i64 %314
  %316 = load float, ptr %315, align 4, !tbaa !11
  %317 = load ptr, ptr %23, align 8, !tbaa !5
  %318 = load i64, ptr %40, align 8, !tbaa !9
  %319 = getelementptr inbounds float, ptr %317, i64 %318
  store float %316, ptr %319, align 4, !tbaa !11
  %320 = load ptr, ptr %24, align 8, !tbaa !5
  %321 = load i64, ptr %40, align 8, !tbaa !9
  %322 = getelementptr inbounds float, ptr %320, i64 %321
  store float 0.000000e+00, ptr %322, align 4, !tbaa !11
  br label %323

323:                                              ; preds = %308
  %324 = load i64, ptr %40, align 8, !tbaa !9
  %325 = add nsw i64 %324, 1
  store i64 %325, ptr %40, align 8, !tbaa !9
  br label %304, !llvm.loop !13

326:                                              ; preds = %304
  %327 = load ptr, ptr %18, align 8, !tbaa !5
  %328 = load i64, ptr %327, align 8, !tbaa !9
  store i64 %328, ptr %35, align 8, !tbaa !9
  %329 = load ptr, ptr %20, align 8, !tbaa !5
  %330 = load i64, ptr %329, align 8, !tbaa !9
  %331 = add nsw i64 %330, 1
  store i64 %331, ptr %40, align 8, !tbaa !9
  br label %332

332:                                              ; preds = %351, %326
  %333 = load i64, ptr %40, align 8, !tbaa !9
  %334 = load i64, ptr %35, align 8, !tbaa !9
  %335 = icmp sle i64 %333, %334
  br i1 %335, label %336, label %354

336:                                              ; preds = %332
  %337 = load ptr, ptr %21, align 8, !tbaa !5
  %338 = load i64, ptr %40, align 8, !tbaa !9
  %339 = load i64, ptr %40, align 8, !tbaa !9
  %340 = load i64, ptr %31, align 8, !tbaa !9
  %341 = mul nsw i64 %339, %340
  %342 = add nsw i64 %338, %341
  %343 = getelementptr inbounds float, ptr %337, i64 %342
  %344 = load float, ptr %343, align 4, !tbaa !11
  %345 = load ptr, ptr %23, align 8, !tbaa !5
  %346 = load i64, ptr %40, align 8, !tbaa !9
  %347 = getelementptr inbounds float, ptr %345, i64 %346
  store float %344, ptr %347, align 4, !tbaa !11
  %348 = load ptr, ptr %24, align 8, !tbaa !5
  %349 = load i64, ptr %40, align 8, !tbaa !9
  %350 = getelementptr inbounds float, ptr %348, i64 %349
  store float 0.000000e+00, ptr %350, align 4, !tbaa !11
  br label %351

351:                                              ; preds = %336
  %352 = load i64, ptr %40, align 8, !tbaa !9
  %353 = add nsw i64 %352, 1
  store i64 %353, ptr %40, align 8, !tbaa !9
  br label %332, !llvm.loop !15

354:                                              ; preds = %332
  %355 = load i64, ptr %44, align 8, !tbaa !9
  %356 = icmp ne i64 %355, 0
  br i1 %356, label %357, label %365

357:                                              ; preds = %354
  %358 = load ptr, ptr %18, align 8, !tbaa !5
  %359 = load ptr, ptr %18, align 8, !tbaa !5
  %360 = load ptr, ptr %25, align 8, !tbaa !5
  %361 = load i64, ptr %34, align 8, !tbaa !9
  %362 = getelementptr inbounds float, ptr %360, i64 %361
  %363 = load ptr, ptr %26, align 8, !tbaa !5
  %364 = call i32 @slaset_(ptr noundef @.str.6, ptr noundef %358, ptr noundef %359, ptr noundef @c_b11, ptr noundef @c_b12, ptr noundef %362, ptr noundef %363)
  br label %365

365:                                              ; preds = %357, %354
  %366 = load ptr, ptr %19, align 8, !tbaa !5
  %367 = load i64, ptr %366, align 8, !tbaa !9
  %368 = load ptr, ptr %20, align 8, !tbaa !5
  %369 = load i64, ptr %368, align 8, !tbaa !9
  %370 = icmp eq i64 %367, %369
  br i1 %370, label %371, label %390

371:                                              ; preds = %365
  %372 = load ptr, ptr %21, align 8, !tbaa !5
  %373 = load ptr, ptr %19, align 8, !tbaa !5
  %374 = load i64, ptr %373, align 8, !tbaa !9
  %375 = load ptr, ptr %19, align 8, !tbaa !5
  %376 = load i64, ptr %375, align 8, !tbaa !9
  %377 = load i64, ptr %31, align 8, !tbaa !9
  %378 = mul nsw i64 %376, %377
  %379 = add nsw i64 %374, %378
  %380 = getelementptr inbounds float, ptr %372, i64 %379
  %381 = load float, ptr %380, align 4, !tbaa !11
  %382 = load ptr, ptr %23, align 8, !tbaa !5
  %383 = load ptr, ptr %19, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  %385 = getelementptr inbounds float, ptr %382, i64 %384
  store float %381, ptr %385, align 4, !tbaa !11
  %386 = load ptr, ptr %24, align 8, !tbaa !5
  %387 = load ptr, ptr %19, align 8, !tbaa !5
  %388 = load i64, ptr %387, align 8, !tbaa !9
  %389 = getelementptr inbounds float, ptr %386, i64 %388
  store float 0.000000e+00, ptr %389, align 4, !tbaa !11
  store i32 0, ptr %15, align 4
  store i32 1, ptr %49, align 4
  br label %608

390:                                              ; preds = %365
  %391 = getelementptr inbounds [2 x i64], ptr %36, i64 0, i64 0
  store i64 1, ptr %391, align 16, !tbaa !9
  %392 = load ptr, ptr %16, align 8, !tbaa !5
  %393 = getelementptr inbounds [2 x ptr], ptr %30, i64 0, i64 0
  store ptr %392, ptr %393, align 16, !tbaa !5
  %394 = getelementptr inbounds [2 x i64], ptr %36, i64 0, i64 1
  store i64 1, ptr %394, align 8, !tbaa !9
  %395 = load ptr, ptr %17, align 8, !tbaa !5
  %396 = getelementptr inbounds [2 x ptr], ptr %30, i64 0, i64 1
  store ptr %395, ptr %396, align 8, !tbaa !5
  %397 = getelementptr inbounds [2 x i8], ptr %39, i64 0, i64 0
  %398 = getelementptr inbounds [2 x ptr], ptr %30, i64 0, i64 0
  %399 = getelementptr inbounds [2 x i64], ptr %36, i64 0, i64 0
  %400 = call i32 @s_cat(ptr noundef %397, ptr noundef %398, ptr noundef %399, ptr noundef @c__2, i64 noundef 2)
  %401 = getelementptr inbounds [2 x i8], ptr %39, i64 0, i64 0
  %402 = load ptr, ptr %18, align 8, !tbaa !5
  %403 = load ptr, ptr %19, align 8, !tbaa !5
  %404 = load ptr, ptr %20, align 8, !tbaa !5
  %405 = load ptr, ptr %28, align 8, !tbaa !5
  %406 = call i64 @ilaenv_(ptr noundef @c__12, ptr noundef @.str.5, ptr noundef %401, ptr noundef %402, ptr noundef %403, ptr noundef %404, ptr noundef %405)
  store i64 %406, ptr %43, align 8, !tbaa !9
  %407 = load i64, ptr %43, align 8, !tbaa !9
  %408 = icmp sge i64 11, %407
  br i1 %408, label %409, label %410

409:                                              ; preds = %390
  br label %412

410:                                              ; preds = %390
  %411 = load i64, ptr %43, align 8, !tbaa !9
  br label %412

412:                                              ; preds = %410, %409
  %413 = phi i64 [ 11, %409 ], [ %411, %410 ]
  store i64 %413, ptr %43, align 8, !tbaa !9
  %414 = load ptr, ptr %18, align 8, !tbaa !5
  %415 = load i64, ptr %414, align 8, !tbaa !9
  %416 = load i64, ptr %43, align 8, !tbaa !9
  %417 = icmp sgt i64 %415, %416
  br i1 %417, label %418, label %441

418:                                              ; preds = %412
  %419 = load ptr, ptr %18, align 8, !tbaa !5
  %420 = load ptr, ptr %19, align 8, !tbaa !5
  %421 = load ptr, ptr %20, align 8, !tbaa !5
  %422 = load ptr, ptr %21, align 8, !tbaa !5
  %423 = load i64, ptr %32, align 8, !tbaa !9
  %424 = getelementptr inbounds float, ptr %422, i64 %423
  %425 = load ptr, ptr %22, align 8, !tbaa !5
  %426 = load ptr, ptr %23, align 8, !tbaa !5
  %427 = getelementptr inbounds float, ptr %426, i64 1
  %428 = load ptr, ptr %24, align 8, !tbaa !5
  %429 = getelementptr inbounds float, ptr %428, i64 1
  %430 = load ptr, ptr %19, align 8, !tbaa !5
  %431 = load ptr, ptr %20, align 8, !tbaa !5
  %432 = load ptr, ptr %25, align 8, !tbaa !5
  %433 = load i64, ptr %34, align 8, !tbaa !9
  %434 = getelementptr inbounds float, ptr %432, i64 %433
  %435 = load ptr, ptr %26, align 8, !tbaa !5
  %436 = load ptr, ptr %27, align 8, !tbaa !5
  %437 = getelementptr inbounds float, ptr %436, i64 1
  %438 = load ptr, ptr %28, align 8, !tbaa !5
  %439 = load ptr, ptr %29, align 8, !tbaa !5
  %440 = call i32 @slaqr0_(ptr noundef %46, ptr noundef %47, ptr noundef %419, ptr noundef %420, ptr noundef %421, ptr noundef %424, ptr noundef %425, ptr noundef %427, ptr noundef %429, ptr noundef %430, ptr noundef %431, ptr noundef %434, ptr noundef %435, ptr noundef %437, ptr noundef %438, ptr noundef %439)
  br label %553

441:                                              ; preds = %412
  %442 = load ptr, ptr %18, align 8, !tbaa !5
  %443 = load ptr, ptr %19, align 8, !tbaa !5
  %444 = load ptr, ptr %20, align 8, !tbaa !5
  %445 = load ptr, ptr %21, align 8, !tbaa !5
  %446 = load i64, ptr %32, align 8, !tbaa !9
  %447 = getelementptr inbounds float, ptr %445, i64 %446
  %448 = load ptr, ptr %22, align 8, !tbaa !5
  %449 = load ptr, ptr %23, align 8, !tbaa !5
  %450 = getelementptr inbounds float, ptr %449, i64 1
  %451 = load ptr, ptr %24, align 8, !tbaa !5
  %452 = getelementptr inbounds float, ptr %451, i64 1
  %453 = load ptr, ptr %19, align 8, !tbaa !5
  %454 = load ptr, ptr %20, align 8, !tbaa !5
  %455 = load ptr, ptr %25, align 8, !tbaa !5
  %456 = load i64, ptr %34, align 8, !tbaa !9
  %457 = getelementptr inbounds float, ptr %455, i64 %456
  %458 = load ptr, ptr %26, align 8, !tbaa !5
  %459 = load ptr, ptr %29, align 8, !tbaa !5
  %460 = call i32 @slahqr_(ptr noundef %46, ptr noundef %47, ptr noundef %442, ptr noundef %443, ptr noundef %444, ptr noundef %447, ptr noundef %448, ptr noundef %450, ptr noundef %452, ptr noundef %453, ptr noundef %454, ptr noundef %457, ptr noundef %458, ptr noundef %459)
  %461 = load ptr, ptr %29, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = icmp sgt i64 %462, 0
  br i1 %463, label %464, label %552

464:                                              ; preds = %441
  %465 = load ptr, ptr %29, align 8, !tbaa !5
  %466 = load i64, ptr %465, align 8, !tbaa !9
  store i64 %466, ptr %42, align 8, !tbaa !9
  %467 = load ptr, ptr %18, align 8, !tbaa !5
  %468 = load i64, ptr %467, align 8, !tbaa !9
  %469 = icmp sge i64 %468, 49
  br i1 %469, label %470, label %492

470:                                              ; preds = %464
  %471 = load ptr, ptr %18, align 8, !tbaa !5
  %472 = load ptr, ptr %19, align 8, !tbaa !5
  %473 = load ptr, ptr %21, align 8, !tbaa !5
  %474 = load i64, ptr %32, align 8, !tbaa !9
  %475 = getelementptr inbounds float, ptr %473, i64 %474
  %476 = load ptr, ptr %22, align 8, !tbaa !5
  %477 = load ptr, ptr %23, align 8, !tbaa !5
  %478 = getelementptr inbounds float, ptr %477, i64 1
  %479 = load ptr, ptr %24, align 8, !tbaa !5
  %480 = getelementptr inbounds float, ptr %479, i64 1
  %481 = load ptr, ptr %19, align 8, !tbaa !5
  %482 = load ptr, ptr %20, align 8, !tbaa !5
  %483 = load ptr, ptr %25, align 8, !tbaa !5
  %484 = load i64, ptr %34, align 8, !tbaa !9
  %485 = getelementptr inbounds float, ptr %483, i64 %484
  %486 = load ptr, ptr %26, align 8, !tbaa !5
  %487 = load ptr, ptr %27, align 8, !tbaa !5
  %488 = getelementptr inbounds float, ptr %487, i64 1
  %489 = load ptr, ptr %28, align 8, !tbaa !5
  %490 = load ptr, ptr %29, align 8, !tbaa !5
  %491 = call i32 @slaqr0_(ptr noundef %46, ptr noundef %47, ptr noundef %471, ptr noundef %472, ptr noundef %42, ptr noundef %475, ptr noundef %476, ptr noundef %478, ptr noundef %480, ptr noundef %481, ptr noundef %482, ptr noundef %485, ptr noundef %486, ptr noundef %488, ptr noundef %489, ptr noundef %490)
  br label %551

492:                                              ; preds = %464
  %493 = load ptr, ptr %18, align 8, !tbaa !5
  %494 = load ptr, ptr %18, align 8, !tbaa !5
  %495 = load ptr, ptr %21, align 8, !tbaa !5
  %496 = load i64, ptr %32, align 8, !tbaa !9
  %497 = getelementptr inbounds float, ptr %495, i64 %496
  %498 = load ptr, ptr %22, align 8, !tbaa !5
  %499 = getelementptr inbounds [2401 x float], ptr %41, i64 0, i64 0
  %500 = call i32 @slacpy_(ptr noundef @.str.6, ptr noundef %493, ptr noundef %494, ptr noundef %497, ptr noundef %498, ptr noundef %499, ptr noundef @c__49)
  %501 = load ptr, ptr %18, align 8, !tbaa !5
  %502 = load i64, ptr %501, align 8, !tbaa !9
  %503 = add nsw i64 %502, 1
  %504 = load ptr, ptr %18, align 8, !tbaa !5
  %505 = load i64, ptr %504, align 8, !tbaa !9
  %506 = mul nsw i64 %505, 49
  %507 = add nsw i64 %503, %506
  %508 = sub nsw i64 %507, 50
  %509 = getelementptr inbounds [2401 x float], ptr %41, i64 0, i64 %508
  store float 0.000000e+00, ptr %509, align 4, !tbaa !11
  %510 = load ptr, ptr %18, align 8, !tbaa !5
  %511 = load i64, ptr %510, align 8, !tbaa !9
  %512 = sub nsw i64 49, %511
  store i64 %512, ptr %35, align 8, !tbaa !9
  %513 = load ptr, ptr %18, align 8, !tbaa !5
  %514 = load i64, ptr %513, align 8, !tbaa !9
  %515 = add nsw i64 %514, 1
  %516 = mul nsw i64 %515, 49
  %517 = sub nsw i64 %516, 49
  %518 = getelementptr inbounds [2401 x float], ptr %41, i64 0, i64 %517
  %519 = call i32 @slaset_(ptr noundef @.str.6, ptr noundef @c__49, ptr noundef %35, ptr noundef @c_b11, ptr noundef @c_b11, ptr noundef %518, ptr noundef @c__49)
  %520 = load ptr, ptr %19, align 8, !tbaa !5
  %521 = getelementptr inbounds [2401 x float], ptr %41, i64 0, i64 0
  %522 = load ptr, ptr %23, align 8, !tbaa !5
  %523 = getelementptr inbounds float, ptr %522, i64 1
  %524 = load ptr, ptr %24, align 8, !tbaa !5
  %525 = getelementptr inbounds float, ptr %524, i64 1
  %526 = load ptr, ptr %19, align 8, !tbaa !5
  %527 = load ptr, ptr %20, align 8, !tbaa !5
  %528 = load ptr, ptr %25, align 8, !tbaa !5
  %529 = load i64, ptr %34, align 8, !tbaa !9
  %530 = getelementptr inbounds float, ptr %528, i64 %529
  %531 = load ptr, ptr %26, align 8, !tbaa !5
  %532 = getelementptr inbounds [49 x float], ptr %45, i64 0, i64 0
  %533 = load ptr, ptr %29, align 8, !tbaa !5
  %534 = call i32 @slaqr0_(ptr noundef %46, ptr noundef %47, ptr noundef @c__49, ptr noundef %520, ptr noundef %42, ptr noundef %521, ptr noundef @c__49, ptr noundef %523, ptr noundef %525, ptr noundef %526, ptr noundef %527, ptr noundef %530, ptr noundef %531, ptr noundef %532, ptr noundef @c__49, ptr noundef %533)
  %535 = load i64, ptr %46, align 8, !tbaa !9
  %536 = icmp ne i64 %535, 0
  br i1 %536, label %541, label %537

537:                                              ; preds = %492
  %538 = load ptr, ptr %29, align 8, !tbaa !5
  %539 = load i64, ptr %538, align 8, !tbaa !9
  %540 = icmp ne i64 %539, 0
  br i1 %540, label %541, label %550

541:                                              ; preds = %537, %492
  %542 = load ptr, ptr %18, align 8, !tbaa !5
  %543 = load ptr, ptr %18, align 8, !tbaa !5
  %544 = getelementptr inbounds [2401 x float], ptr %41, i64 0, i64 0
  %545 = load ptr, ptr %21, align 8, !tbaa !5
  %546 = load i64, ptr %32, align 8, !tbaa !9
  %547 = getelementptr inbounds float, ptr %545, i64 %546
  %548 = load ptr, ptr %22, align 8, !tbaa !5
  %549 = call i32 @slacpy_(ptr noundef @.str.6, ptr noundef %542, ptr noundef %543, ptr noundef %544, ptr noundef @c__49, ptr noundef %547, ptr noundef %548)
  br label %550

550:                                              ; preds = %541, %537
  br label %551

551:                                              ; preds = %550, %470
  br label %552

552:                                              ; preds = %551, %441
  br label %553

553:                                              ; preds = %552, %418
  %554 = load i64, ptr %46, align 8, !tbaa !9
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %560, label %556

556:                                              ; preds = %553
  %557 = load ptr, ptr %29, align 8, !tbaa !5
  %558 = load i64, ptr %557, align 8, !tbaa !9
  %559 = icmp ne i64 %558, 0
  br i1 %559, label %560, label %577

560:                                              ; preds = %556, %553
  %561 = load ptr, ptr %18, align 8, !tbaa !5
  %562 = load i64, ptr %561, align 8, !tbaa !9
  %563 = icmp sgt i64 %562, 2
  br i1 %563, label %564, label %577

564:                                              ; preds = %560
  %565 = load ptr, ptr %18, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  %567 = sub nsw i64 %566, 2
  store i64 %567, ptr %35, align 8, !tbaa !9
  %568 = load ptr, ptr %18, align 8, !tbaa !5
  %569 = load i64, ptr %568, align 8, !tbaa !9
  %570 = sub nsw i64 %569, 2
  store i64 %570, ptr %37, align 8, !tbaa !9
  %571 = load ptr, ptr %21, align 8, !tbaa !5
  %572 = load i64, ptr %31, align 8, !tbaa !9
  %573 = add nsw i64 %572, 3
  %574 = getelementptr inbounds float, ptr %571, i64 %573
  %575 = load ptr, ptr %22, align 8, !tbaa !5
  %576 = call i32 @slaset_(ptr noundef @.str.7, ptr noundef %35, ptr noundef %37, ptr noundef @c_b11, ptr noundef @c_b11, ptr noundef %574, ptr noundef %575)
  br label %577

577:                                              ; preds = %564, %560, %556
  %578 = load ptr, ptr %18, align 8, !tbaa !5
  %579 = load i64, ptr %578, align 8, !tbaa !9
  %580 = icmp sge i64 1, %579
  br i1 %580, label %581, label %582

581:                                              ; preds = %577
  br label %585

582:                                              ; preds = %577
  %583 = load ptr, ptr %18, align 8, !tbaa !5
  %584 = load i64, ptr %583, align 8, !tbaa !9
  br label %585

585:                                              ; preds = %582, %581
  %586 = phi i64 [ 1, %581 ], [ %584, %582 ]
  %587 = sitofp i64 %586 to float
  store float %587, ptr %38, align 4, !tbaa !11
  %588 = load float, ptr %38, align 4, !tbaa !11
  %589 = load ptr, ptr %27, align 8, !tbaa !5
  %590 = getelementptr inbounds float, ptr %589, i64 1
  %591 = load float, ptr %590, align 4, !tbaa !11
  %592 = fcmp oge float %588, %591
  br i1 %592, label %593, label %595

593:                                              ; preds = %585
  %594 = load float, ptr %38, align 4, !tbaa !11
  br label %599

595:                                              ; preds = %585
  %596 = load ptr, ptr %27, align 8, !tbaa !5
  %597 = getelementptr inbounds float, ptr %596, i64 1
  %598 = load float, ptr %597, align 4, !tbaa !11
  br label %599

599:                                              ; preds = %595, %593
  %600 = phi float [ %594, %593 ], [ %598, %595 ]
  %601 = fpext float %600 to double
  %602 = fptrunc double %601 to float
  %603 = load ptr, ptr %27, align 8, !tbaa !5
  %604 = getelementptr inbounds float, ptr %603, i64 1
  store float %602, ptr %604, align 4, !tbaa !11
  br label %605

605:                                              ; preds = %599
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606
  store i32 0, ptr %15, align 4
  store i32 1, ptr %49, align 4
  br label %608

608:                                              ; preds = %607, %371, %294, %246, %237
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 196, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 9604, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #3
  %609 = load i32, ptr %15, align 4
  ret i32 %609
}

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

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

declare i32 @s_cat(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

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

declare i32 @slahqr_(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 @slacpy_(ptr noundef, ptr noundef, 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 }

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


; 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 [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b11 = external hidden global float, align 4
@c_b12 = external hidden global float, align 4
@c__2 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__49 = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @shseqr_(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) local_unnamed_addr #0 {
  %15 = alloca [2 x ptr], align 16
  %16 = alloca i64, align 8
  %17 = alloca [2 x i64], align 16
  %18 = alloca i64, align 8
  %19 = alloca [2 x i8], align 1
  %20 = alloca [2401 x float], align 16
  %21 = alloca i64, align 8
  %22 = alloca [49 x float], align 16
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 9604, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 196, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #4
  %25 = load i64, ptr %6, align 8, !tbaa !5
  %26 = xor i64 %25, -1
  %27 = getelementptr inbounds float, ptr %5, i64 %26
  %28 = getelementptr inbounds i8, ptr %7, i64 -4
  %29 = getelementptr inbounds i8, ptr %8, i64 -4
  %30 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  store i64 %30, ptr %23, align 8, !tbaa !5
  %31 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #4
  %.not = icmp eq i64 %31, 0
  br i1 %.not, label %32, label %35

32:                                               ; preds = %14
  %33 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %34 = icmp ne i64 %33, 0
  br label %35

35:                                               ; preds = %32, %14
  %36 = phi i1 [ true, %14 ], [ %34, %32 ]
  %37 = zext i1 %36 to i64
  store i64 %37, ptr %24, align 8, !tbaa !5
  %38 = load i64, ptr %2, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.smax.i64(i64 %38, i64 1)
  %39 = uitofp nneg i64 %spec.select to float
  store float %39, ptr %11, align 4, !tbaa !9
  %40 = load i64, ptr %12, align 8, !tbaa !5
  %41 = icmp eq i64 %40, -1
  store i64 0, ptr %13, align 8, !tbaa !5
  %42 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #4
  %43 = icmp ne i64 %42, 0
  %44 = icmp ne i64 %30, 0
  %or.cond = select i1 %43, i1 true, i1 %44
  br i1 %or.cond, label %45, label %.thread.sink.split

45:                                               ; preds = %35
  %46 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %47 = icmp ne i64 %46, 0
  %or.cond3 = select i1 %47, i1 true, i1 %36
  br i1 %or.cond3, label %48, label %.thread.sink.split

48:                                               ; preds = %45
  %49 = load i64, ptr %2, align 8, !tbaa !5
  %50 = icmp slt i64 %49, 0
  br i1 %50, label %.thread.sink.split, label %51

51:                                               ; preds = %48
  %52 = load i64, ptr %3, align 8, !tbaa !5
  %53 = icmp slt i64 %52, 1
  br i1 %53, label %.thread.sink.split, label %54

54:                                               ; preds = %51
  %spec.select248 = tail call i64 @llvm.umax.i64(i64 %49, i64 1)
  %55 = icmp ugt i64 %52, %spec.select248
  br i1 %55, label %.thread.sink.split, label %56

56:                                               ; preds = %54
  %57 = load i64, ptr %4, align 8, !tbaa !5
  %. = tail call i64 @llvm.umin.i64(i64 %52, i64 %49)
  %58 = icmp slt i64 %57, %.
  %59 = icmp ugt i64 %57, %49
  %or.cond261 = or i1 %58, %59
  br i1 %or.cond261, label %.thread.sink.split, label %60

60:                                               ; preds = %56
  %61 = load i64, ptr %6, align 8, !tbaa !5
  %62 = icmp slt i64 %61, %spec.select248
  br i1 %62, label %.thread.sink.split, label %63

63:                                               ; preds = %60
  %64 = load i64, ptr %10, align 8, !tbaa !5
  %65 = icmp slt i64 %64, 1
  %66 = icmp ugt i64 %49, %64
  %or.cond262 = and i1 %36, %66
  %or.cond273 = select i1 %65, i1 true, i1 %or.cond262
  br i1 %or.cond273, label %.thread.sink.split, label %67

67:                                               ; preds = %63
  %68 = load i64, ptr %12, align 8, !tbaa !5
  %69 = icmp sge i64 %68, %spec.select248
  %or.cond5 = select i1 %69, i1 true, i1 %41
  br i1 %or.cond5, label %70, label %.thread.sink.split

70:                                               ; preds = %67
  %.pr = load i64, ptr %13, align 8, !tbaa !5
  %.not241 = icmp eq i64 %.pr, 0
  br i1 %.not241, label %74, label %.thread

.thread.sink.split:                               ; preds = %67, %63, %60, %56, %51, %54, %48, %45, %35
  %.sink = phi i64 [ -1, %35 ], [ -2, %45 ], [ -3, %48 ], [ -4, %54 ], [ -4, %51 ], [ -5, %56 ], [ -7, %60 ], [ -11, %63 ], [ -13, %67 ]
  store i64 %.sink, ptr %13, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %70
  %71 = phi i64 [ %.pr, %70 ], [ %.sink, %.thread.sink.split ]
  %72 = sub nsw i64 0, %71
  store i64 %72, ptr %16, align 8, !tbaa !5
  %73 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %16) #4
  br label %188

74:                                               ; preds = %70
  %75 = icmp eq i64 %49, 0
  br i1 %75, label %188, label %76

76:                                               ; preds = %74
  br i1 %41, label %77, label %85

77:                                               ; preds = %76
  %78 = call i32 @slaqr0_(ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #4
  %79 = load i64, ptr %2, align 8, !tbaa !5
  %80 = icmp slt i64 %79, 2
  %81 = uitofp nneg i64 %79 to float
  %82 = select i1 %80, float 1.000000e+00, float %81
  %83 = load float, ptr %11, align 4, !tbaa !9
  %.inv263 = fcmp oge float %82, %83
  %84 = select i1 %.inv263, float %82, float %83
  store float %84, ptr %11, align 4, !tbaa !9
  br label %188

85:                                               ; preds = %76
  %.not242.not264.not = icmp eq i64 %52, 1
  br i1 %.not242.not264.not, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %85
  %86 = add i64 %25, 1
  %87 = add nsw i64 %52, -1
  %xtraiter = and i64 %87, 1
  %88 = icmp eq i64 %52, 2
  br i1 %88, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.lr.ph
  %unroll_iter = and i64 %87, -2
  br label %89

89:                                               ; preds = %89, %.lr.ph.new
  %.0220265 = phi i64 [ 1, %.lr.ph.new ], [ %101, %89 ]
  %niter = phi i64 [ 0, %.lr.ph.new ], [ %niter.next.1, %89 ]
  %90 = mul i64 %.0220265, %86
  %91 = getelementptr inbounds float, ptr %27, i64 %90
  %92 = load float, ptr %91, align 4, !tbaa !9
  %93 = getelementptr inbounds float, ptr %28, i64 %.0220265
  store float %92, ptr %93, align 4, !tbaa !9
  %94 = getelementptr inbounds float, ptr %29, i64 %.0220265
  store float 0.000000e+00, ptr %94, align 4, !tbaa !9
  %95 = add nuw nsw i64 %.0220265, 1
  %96 = mul i64 %95, %86
  %97 = getelementptr inbounds float, ptr %27, i64 %96
  %98 = load float, ptr %97, align 4, !tbaa !9
  %99 = getelementptr float, ptr %7, i64 %.0220265
  store float %98, ptr %99, align 4, !tbaa !9
  %100 = getelementptr float, ptr %8, i64 %.0220265
  store float 0.000000e+00, ptr %100, align 4, !tbaa !9
  %101 = add nuw nsw i64 %.0220265, 2
  %niter.next.1 = add nuw i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %89, !llvm.loop !11

._crit_edge.loopexit.unr-lcssa:                   ; preds = %89, %.lr.ph
  %.0220265.unr = phi i64 [ 1, %.lr.ph ], [ %101, %89 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %._crit_edge.loopexit.epilog-lcssa

._crit_edge.loopexit.epilog-lcssa:                ; preds = %._crit_edge.loopexit.unr-lcssa
  %102 = mul i64 %.0220265.unr, %86
  %103 = getelementptr inbounds float, ptr %27, i64 %102
  %104 = load float, ptr %103, align 4, !tbaa !9
  %105 = getelementptr inbounds float, ptr %28, i64 %.0220265.unr
  store float %104, ptr %105, align 4, !tbaa !9
  %106 = getelementptr inbounds float, ptr %29, i64 %.0220265.unr
  store float 0.000000e+00, ptr %106, align 4, !tbaa !9
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit.epilog-lcssa, %._crit_edge.loopexit.unr-lcssa, %85
  store i64 %49, ptr %16, align 8, !tbaa !5
  %.not243.not266 = icmp slt i64 %57, %49
  br i1 %.not243.not266, label %.lr.ph269, label %._crit_edge270

.lr.ph269:                                        ; preds = %._crit_edge
  %107 = add i64 %25, 1
  %108 = sub i64 %49, %57
  %.neg = add i64 %57, 1
  %xtraiter274 = and i64 %108, 1
  %lcmp.mod275.not = icmp eq i64 %xtraiter274, 0
  br i1 %lcmp.mod275.not, label %.prol.loopexit, label %.prol.loopexit.unr-lcssa

.prol.loopexit.unr-lcssa:                         ; preds = %.lr.ph269
  %.1.prol = add nsw i64 %57, 1
  %109 = mul i64 %.1.prol, %107
  %110 = getelementptr inbounds float, ptr %27, i64 %109
  %111 = load float, ptr %110, align 4, !tbaa !9
  %112 = getelementptr float, ptr %7, i64 %57
  store float %111, ptr %112, align 4, !tbaa !9
  %113 = getelementptr float, ptr %8, i64 %57
  store float 0.000000e+00, ptr %113, align 4, !tbaa !9
  br label %.prol.loopexit

.prol.loopexit:                                   ; preds = %.prol.loopexit.unr-lcssa, %.lr.ph269
  %.1.in267.unr = phi i64 [ %57, %.lr.ph269 ], [ %.1.prol, %.prol.loopexit.unr-lcssa ]
  %114 = icmp eq i64 %49, %.neg
  br i1 %114, label %._crit_edge270, label %.lr.ph269.new

.lr.ph269.new:                                    ; preds = %.prol.loopexit, %.lr.ph269.new
  %.1.in267 = phi i64 [ %.1.1, %.lr.ph269.new ], [ %.1.in267.unr, %.prol.loopexit ]
  %.1 = add nsw i64 %.1.in267, 1
  %115 = mul i64 %.1, %107
  %116 = getelementptr inbounds float, ptr %27, i64 %115
  %117 = load float, ptr %116, align 4, !tbaa !9
  %118 = getelementptr float, ptr %7, i64 %.1.in267
  store float %117, ptr %118, align 4, !tbaa !9
  %119 = getelementptr float, ptr %8, i64 %.1.in267
  store float 0.000000e+00, ptr %119, align 4, !tbaa !9
  %.1.1 = add nsw i64 %.1.in267, 2
  %120 = mul i64 %.1.1, %107
  %121 = getelementptr inbounds float, ptr %27, i64 %120
  %122 = load float, ptr %121, align 4, !tbaa !9
  %123 = getelementptr float, ptr %7, i64 %.1
  store float %122, ptr %123, align 4, !tbaa !9
  %124 = getelementptr float, ptr %8, i64 %.1
  store float 0.000000e+00, ptr %124, align 4, !tbaa !9
  %exitcond271.not.1 = icmp eq i64 %.1.1, %49
  br i1 %exitcond271.not.1, label %._crit_edge270, label %.lr.ph269.new, !llvm.loop !13

._crit_edge270:                                   ; preds = %.prol.loopexit, %.lr.ph269.new, %._crit_edge
  br i1 %.not, label %127, label %125

125:                                              ; preds = %._crit_edge270
  %126 = tail call i32 @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b12, ptr noundef %9, ptr noundef nonnull %10) #4
  %.pre = load i64, ptr %3, align 8, !tbaa !5
  %.pre272 = load i64, ptr %4, align 8, !tbaa !5
  br label %127

127:                                              ; preds = %125, %._crit_edge270
  %128 = phi i64 [ %.pre272, %125 ], [ %57, %._crit_edge270 ]
  %129 = phi i64 [ %.pre, %125 ], [ %52, %._crit_edge270 ]
  %130 = icmp eq i64 %129, %128
  br i1 %130, label %131, label %138

131:                                              ; preds = %127
  %132 = add i64 %25, 1
  %133 = mul i64 %128, %132
  %134 = getelementptr inbounds float, ptr %27, i64 %133
  %135 = load float, ptr %134, align 4, !tbaa !9
  %136 = getelementptr inbounds float, ptr %28, i64 %128
  store float %135, ptr %136, align 4, !tbaa !9
  %137 = getelementptr inbounds float, ptr %29, i64 %128
  store float 0.000000e+00, ptr %137, align 4, !tbaa !9
  br label %188

138:                                              ; preds = %127
  store i64 1, ptr %17, align 16, !tbaa !5
  store ptr %0, ptr %15, align 16, !tbaa !14
  %139 = getelementptr inbounds i8, ptr %17, i64 8
  store i64 1, ptr %139, align 8, !tbaa !5
  %140 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %1, ptr %140, align 8, !tbaa !14
  %141 = call i32 @s_cat(ptr noundef nonnull %19, ptr noundef nonnull %15, ptr noundef nonnull %17, ptr noundef nonnull @c__2, i64 noundef 2) #4
  %142 = call i64 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.5, ptr noundef nonnull %19, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %12) #4
  %143 = call i64 @llvm.smax.i64(i64 %142, i64 11)
  %144 = load i64, ptr %2, align 8, !tbaa !5
  %145 = icmp sgt i64 %144, %143
  br i1 %145, label %146, label %148

146:                                              ; preds = %138
  %147 = call i32 @slaqr0_(ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #4
  br label %173

148:                                              ; preds = %138
  %149 = call i32 @slahqr_(ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %13) #4
  %150 = load i64, ptr %13, align 8, !tbaa !5
  %151 = icmp sgt i64 %150, 0
  br i1 %151, label %152, label %173

152:                                              ; preds = %148
  store i64 %150, ptr %21, align 8, !tbaa !5
  %153 = load i64, ptr %2, align 8, !tbaa !5
  %154 = icmp sgt i64 %153, 48
  br i1 %154, label %155, label %157

155:                                              ; preds = %152
  %156 = call i32 @slaqr0_(ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #4
  br label %173

157:                                              ; preds = %152
  %158 = call i32 @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull @c__49) #4
  %159 = load i64, ptr %2, align 8, !tbaa !5
  %160 = mul nsw i64 %159, 49
  %161 = add i64 %159, -49
  %162 = add i64 %161, %160
  %163 = getelementptr inbounds [2401 x float], ptr %20, i64 0, i64 %162
  store float 0.000000e+00, ptr %163, align 4, !tbaa !9
  %164 = sub nsw i64 49, %159
  store i64 %164, ptr %16, align 8, !tbaa !5
  %165 = getelementptr inbounds [2401 x float], ptr %20, i64 0, i64 %160
  %166 = call i32 @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull @c__49, ptr noundef nonnull %16, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef nonnull %165, ptr noundef nonnull @c__49) #4
  %167 = call i32 @slaqr0_(ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull @c__49, ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull @c__49, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %22, ptr noundef nonnull @c__49, ptr noundef nonnull %13) #4
  %168 = load i64, ptr %23, align 8, !tbaa !5
  %.not244 = icmp eq i64 %168, 0
  br i1 %.not244, label %169, label %171

169:                                              ; preds = %157
  %170 = load i64, ptr %13, align 8, !tbaa !5
  %.not245 = icmp eq i64 %170, 0
  br i1 %.not245, label %.thread259, label %171

171:                                              ; preds = %169, %157
  %172 = call i32 @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %20, ptr noundef nonnull @c__49, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %173

173:                                              ; preds = %148, %171, %155, %146
  %.pr254 = load i64, ptr %23, align 8, !tbaa !5
  %.not246 = icmp eq i64 %.pr254, 0
  br i1 %.not246, label %174, label %175

174:                                              ; preds = %173
  %.pr258 = load i64, ptr %13, align 8, !tbaa !5
  %.not247 = icmp eq i64 %.pr258, 0
  br i1 %.not247, label %.thread259, label %175

175:                                              ; preds = %174, %173
  %176 = load i64, ptr %2, align 8, !tbaa !5
  %177 = icmp sgt i64 %176, 2
  br i1 %177, label %178, label %.thread259

178:                                              ; preds = %175
  %179 = add nsw i64 %176, -2
  store i64 %179, ptr %16, align 8, !tbaa !5
  store i64 %179, ptr %18, align 8, !tbaa !5
  %180 = getelementptr inbounds i8, ptr %5, i64 8
  %181 = call i32 @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef nonnull %180, ptr noundef nonnull %6) #4
  br label %.thread259

.thread259:                                       ; preds = %169, %178, %175, %174
  %182 = load i64, ptr %2, align 8, !tbaa !5
  %183 = icmp slt i64 %182, 2
  %184 = uitofp nneg i64 %182 to float
  %185 = select i1 %183, float 1.000000e+00, float %184
  %186 = load float, ptr %11, align 4, !tbaa !9
  %.inv = fcmp oge float %185, %186
  %187 = select i1 %.inv, float %185, float %186
  store float %187, ptr %11, align 4, !tbaa !9
  br label %188

188:                                              ; preds = %74, %.thread259, %131, %77, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 196, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 9604, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #4
  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 i32 @xerbla_(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s_cat(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 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 @slahqr_(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 @slacpy_(ptr noundef, ptr noundef, 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) #3

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

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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"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 = !{!15, !15, i64 0}
!15 = !{!"any pointer", !7, i64 0}


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