; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

141:                                              ; preds = %137
  %142 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -1, ptr %142, align 4, !tbaa !9
  br label %255

143:                                              ; preds = %137, %20
  %144 = load i32, ptr %67, align 4, !tbaa !9
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %154, label %146

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

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

152:                                              ; preds = %149
  %153 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -2, ptr %153, align 4, !tbaa !9
  br label %254

154:                                              ; preds = %149, %146, %143
  %155 = load i32, ptr %63, align 4, !tbaa !9
  %156 = icmp ne i32 %155, 0
  br i1 %156, label %163, label %157

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

161:                                              ; preds = %157
  %162 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -3, ptr %162, align 4, !tbaa !9
  br label %253

163:                                              ; preds = %157, %154
  %164 = load ptr, ptr %24, align 8, !tbaa !5
  %165 = load i32, ptr %164, align 4, !tbaa !9
  %166 = icmp slt i32 %165, 0
  br i1 %166, label %167, label %169

167:                                              ; preds = %163
  %168 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -4, ptr %168, align 4, !tbaa !9
  br label %252

169:                                              ; preds = %163
  %170 = load ptr, ptr %26, align 8, !tbaa !5
  %171 = load i32, ptr %170, align 4, !tbaa !9
  %172 = load ptr, ptr %24, align 8, !tbaa !5
  %173 = load i32, ptr %172, align 4, !tbaa !9
  %174 = icmp sge i32 1, %173
  br i1 %174, label %175, label %176

175:                                              ; preds = %169
  br label %179

176:                                              ; preds = %169
  %177 = load ptr, ptr %24, align 8, !tbaa !5
  %178 = load i32, ptr %177, align 4, !tbaa !9
  br label %179

179:                                              ; preds = %176, %175
  %180 = phi i32 [ 1, %175 ], [ %178, %176 ]
  %181 = icmp slt i32 %171, %180
  br i1 %181, label %182, label %184

182:                                              ; preds = %179
  %183 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -6, ptr %183, align 4, !tbaa !9
  br label %251

184:                                              ; preds = %179
  %185 = load i32, ptr %71, align 4, !tbaa !9
  %186 = icmp ne i32 %185, 0
  br i1 %186, label %187, label %200

187:                                              ; preds = %184
  %188 = load ptr, ptr %24, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = icmp sgt i32 %189, 0
  br i1 %190, label %191, label %199

191:                                              ; preds = %187
  %192 = load ptr, ptr %28, align 8, !tbaa !5
  %193 = load float, ptr %192, align 4, !tbaa !11
  %194 = load ptr, ptr %27, align 8, !tbaa !5
  %195 = load float, ptr %194, align 4, !tbaa !11
  %196 = fcmp ole float %193, %195
  br i1 %196, label %197, label %199

197:                                              ; preds = %191
  %198 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -8, ptr %198, align 4, !tbaa !9
  br label %199

199:                                              ; preds = %197, %191, %187
  br label %250

200:                                              ; preds = %184
  %201 = load i32, ptr %68, align 4, !tbaa !9
  %202 = icmp ne i32 %201, 0
  br i1 %202, label %203, label %249

203:                                              ; preds = %200
  %204 = load ptr, ptr %29, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  %206 = icmp slt i32 %205, 1
  br i1 %206, label %220, label %207

207:                                              ; preds = %203
  %208 = load ptr, ptr %29, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !9
  %210 = load ptr, ptr %24, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = icmp sge i32 1, %211
  br i1 %212, label %213, label %214

213:                                              ; preds = %207
  br label %217

214:                                              ; preds = %207
  %215 = load ptr, ptr %24, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  br label %217

217:                                              ; preds = %214, %213
  %218 = phi i32 [ 1, %213 ], [ %216, %214 ]
  %219 = icmp sgt i32 %209, %218
  br i1 %219, label %220, label %222

220:                                              ; preds = %217, %203
  %221 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -9, ptr %221, align 4, !tbaa !9
  br label %248

222:                                              ; preds = %217
  %223 = load ptr, ptr %30, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = load ptr, ptr %24, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = load ptr, ptr %29, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = icmp sle i32 %226, %228
  br i1 %229, label %230, label %233

230:                                              ; preds = %222
  %231 = load ptr, ptr %24, align 8, !tbaa !5
  %232 = load i32, ptr %231, align 4, !tbaa !9
  br label %236

233:                                              ; preds = %222
  %234 = load ptr, ptr %29, align 8, !tbaa !5
  %235 = load i32, ptr %234, align 4, !tbaa !9
  br label %236

236:                                              ; preds = %233, %230
  %237 = phi i32 [ %232, %230 ], [ %235, %233 ]
  %238 = icmp slt i32 %224, %237
  br i1 %238, label %245, label %239

239:                                              ; preds = %236
  %240 = load ptr, ptr %30, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = load ptr, ptr %24, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = icmp sgt i32 %241, %243
  br i1 %244, label %245, label %247

245:                                              ; preds = %239, %236
  %246 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -10, ptr %246, align 4, !tbaa !9
  br label %247

247:                                              ; preds = %245, %239
  br label %248

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

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

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

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

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

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

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

255:                                              ; preds = %254, %141
  %256 = load ptr, ptr %40, align 8, !tbaa !5
  %257 = load i32, ptr %256, align 4, !tbaa !9
  %258 = icmp eq i32 %257, 0
  br i1 %258, label %259, label %275

259:                                              ; preds = %255
  %260 = load ptr, ptr %35, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !9
  %262 = icmp slt i32 %261, 1
  br i1 %262, label %272, label %263

263:                                              ; preds = %259
  %264 = load i32, ptr %64, align 4, !tbaa !9
  %265 = icmp ne i32 %264, 0
  br i1 %265, label %266, label %274

266:                                              ; preds = %263
  %267 = load ptr, ptr %35, align 8, !tbaa !5
  %268 = load i32, ptr %267, align 4, !tbaa !9
  %269 = load ptr, ptr %24, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = icmp slt i32 %268, %270
  br i1 %271, label %272, label %274

272:                                              ; preds = %266, %259
  %273 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -15, ptr %273, align 4, !tbaa !9
  br label %274

274:                                              ; preds = %272, %266, %263
  br label %275

275:                                              ; preds = %274, %255
  %276 = load ptr, ptr %40, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = icmp eq i32 %277, 0
  br i1 %278, label %279, label %338

279:                                              ; preds = %275
  %280 = load ptr, ptr %24, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  %282 = icmp sle i32 %281, 1
  br i1 %282, label %283, label %288

283:                                              ; preds = %279
  store i32 1, ptr %80, align 4, !tbaa !9
  %284 = load i32, ptr %80, align 4, !tbaa !9
  %285 = sitofp i32 %284 to float
  %286 = load ptr, ptr %36, align 8, !tbaa !5
  %287 = getelementptr inbounds float, ptr %286, i64 1
  store float %285, ptr %287, align 4, !tbaa !11
  br label %327

288:                                              ; preds = %279
  %289 = load ptr, ptr %24, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = shl i32 %290, 3
  store i32 %291, ptr %80, align 4, !tbaa !9
  %292 = load ptr, ptr %23, align 8, !tbaa !5
  %293 = load ptr, ptr %24, align 8, !tbaa !5
  %294 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef %292, ptr noundef %293, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %294, ptr %65, align 4, !tbaa !9
  %295 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %295, ptr %45, align 4, !tbaa !9
  %296 = load ptr, ptr %23, align 8, !tbaa !5
  %297 = load ptr, ptr %24, align 8, !tbaa !5
  %298 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef %296, ptr noundef %297, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %298, ptr %46, align 4, !tbaa !9
  %299 = load i32, ptr %45, align 4, !tbaa !9
  %300 = load i32, ptr %46, align 4, !tbaa !9
  %301 = icmp sge i32 %299, %300
  br i1 %301, label %302, label %304

302:                                              ; preds = %288
  %303 = load i32, ptr %45, align 4, !tbaa !9
  br label %306

304:                                              ; preds = %288
  %305 = load i32, ptr %46, align 4, !tbaa !9
  br label %306

306:                                              ; preds = %304, %302
  %307 = phi i32 [ %303, %302 ], [ %305, %304 ]
  store i32 %307, ptr %65, align 4, !tbaa !9
  %308 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %308, ptr %45, align 4, !tbaa !9
  %309 = load i32, ptr %65, align 4, !tbaa !9
  %310 = add nsw i32 %309, 3
  %311 = load ptr, ptr %24, align 8, !tbaa !5
  %312 = load i32, ptr %311, align 4, !tbaa !9
  %313 = mul nsw i32 %310, %312
  store i32 %313, ptr %46, align 4, !tbaa !9
  %314 = load i32, ptr %45, align 4, !tbaa !9
  %315 = load i32, ptr %46, align 4, !tbaa !9
  %316 = icmp sge i32 %314, %315
  br i1 %316, label %317, label %319

317:                                              ; preds = %306
  %318 = load i32, ptr %45, align 4, !tbaa !9
  br label %321

319:                                              ; preds = %306
  %320 = load i32, ptr %46, align 4, !tbaa !9
  br label %321

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

327:                                              ; preds = %321, %283
  %328 = load ptr, ptr %37, align 8, !tbaa !5
  %329 = load i32, ptr %328, align 4, !tbaa !9
  %330 = load i32, ptr %80, align 4, !tbaa !9
  %331 = icmp slt i32 %329, %330
  br i1 %331, label %332, label %337

332:                                              ; preds = %327
  %333 = load i32, ptr %86, align 4, !tbaa !9
  %334 = icmp ne i32 %333, 0
  br i1 %334, label %337, label %335

335:                                              ; preds = %332
  %336 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -17, ptr %336, align 4, !tbaa !9
  br label %337

337:                                              ; preds = %335, %332, %327
  br label %338

338:                                              ; preds = %337, %275
  %339 = load ptr, ptr %40, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = icmp ne i32 %340, 0
  br i1 %341, label %342, label %347

342:                                              ; preds = %338
  %343 = load ptr, ptr %40, align 8, !tbaa !5
  %344 = load i32, ptr %343, align 4, !tbaa !9
  %345 = sub nsw i32 0, %344
  store i32 %345, ptr %45, align 4, !tbaa !9
  %346 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %45, i32 noundef 6)
  store i32 1, ptr %91, align 4
  br label %1025

347:                                              ; preds = %338
  %348 = load i32, ptr %86, align 4, !tbaa !9
  %349 = icmp ne i32 %348, 0
  br i1 %349, label %350, label %351

350:                                              ; preds = %347
  store i32 1, ptr %91, align 4
  br label %1025

351:                                              ; preds = %347
  br label %352

352:                                              ; preds = %351
  %353 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 0, ptr %353, align 4, !tbaa !9
  %354 = load ptr, ptr %24, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  %356 = icmp eq i32 %355, 0
  br i1 %356, label %357, label %358

357:                                              ; preds = %352
  store i32 1, ptr %91, align 4
  br label %1025

358:                                              ; preds = %352
  %359 = load ptr, ptr %24, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = icmp eq i32 %360, 1
  br i1 %361, label %362, label %419

362:                                              ; preds = %358
  %363 = load i32, ptr %67, align 4, !tbaa !9
  %364 = icmp ne i32 %363, 0
  br i1 %364, label %368, label %365

365:                                              ; preds = %362
  %366 = load i32, ptr %68, align 4, !tbaa !9
  %367 = icmp ne i32 %366, 0
  br i1 %367, label %368, label %378

368:                                              ; preds = %365, %362
  %369 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 1, ptr %369, align 4, !tbaa !9
  %370 = load ptr, ptr %25, align 8, !tbaa !5
  %371 = load i32, ptr %41, align 4, !tbaa !9
  %372 = add nsw i32 %371, 1
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds float, ptr %370, i64 %373
  %375 = load float, ptr %374, align 4, !tbaa !11
  %376 = load ptr, ptr %33, align 8, !tbaa !5
  %377 = getelementptr inbounds float, ptr %376, i64 1
  store float %375, ptr %377, align 4, !tbaa !11
  br label %409

378:                                              ; preds = %365
  %379 = load ptr, ptr %27, align 8, !tbaa !5
  %380 = load float, ptr %379, align 4, !tbaa !11
  %381 = load ptr, ptr %25, align 8, !tbaa !5
  %382 = load i32, ptr %41, align 4, !tbaa !9
  %383 = add nsw i32 %382, 1
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds float, ptr %381, i64 %384
  %386 = load float, ptr %385, align 4, !tbaa !11
  %387 = fcmp olt float %380, %386
  br i1 %387, label %388, label %408

388:                                              ; preds = %378
  %389 = load ptr, ptr %28, align 8, !tbaa !5
  %390 = load float, ptr %389, align 4, !tbaa !11
  %391 = load ptr, ptr %25, align 8, !tbaa !5
  %392 = load i32, ptr %41, align 4, !tbaa !9
  %393 = add nsw i32 %392, 1
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds float, ptr %391, i64 %394
  %396 = load float, ptr %395, align 4, !tbaa !11
  %397 = fcmp oge float %390, %396
  br i1 %397, label %398, label %408

398:                                              ; preds = %388
  %399 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 1, ptr %399, align 4, !tbaa !9
  %400 = load ptr, ptr %25, align 8, !tbaa !5
  %401 = load i32, ptr %41, align 4, !tbaa !9
  %402 = add nsw i32 %401, 1
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds float, ptr %400, i64 %403
  %405 = load float, ptr %404, align 4, !tbaa !11
  %406 = load ptr, ptr %33, align 8, !tbaa !5
  %407 = getelementptr inbounds float, ptr %406, i64 1
  store float %405, ptr %407, align 4, !tbaa !11
  br label %408

408:                                              ; preds = %398, %388, %378
  br label %409

409:                                              ; preds = %408, %368
  %410 = load i32, ptr %64, align 4, !tbaa !9
  %411 = icmp ne i32 %410, 0
  br i1 %411, label %412, label %418

412:                                              ; preds = %409
  %413 = load ptr, ptr %34, align 8, !tbaa !5
  %414 = load i32, ptr %43, align 4, !tbaa !9
  %415 = add nsw i32 %414, 1
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds float, ptr %413, i64 %416
  store float 1.000000e+00, ptr %417, align 4, !tbaa !11
  br label %418

418:                                              ; preds = %412, %409
  store i32 1, ptr %91, align 4
  br label %1025

419:                                              ; preds = %358
  %420 = call float @slamch_(ptr noundef @.str.9)
  store float %420, ptr %72, align 4, !tbaa !11
  %421 = call float @slamch_(ptr noundef @.str.10)
  store float %421, ptr %87, align 4, !tbaa !11
  %422 = load float, ptr %72, align 4, !tbaa !11
  %423 = load float, ptr %87, align 4, !tbaa !11
  %424 = fdiv float %422, %423
  store float %424, ptr %84, align 4, !tbaa !11
  %425 = load float, ptr %84, align 4, !tbaa !11
  %426 = fdiv float 1.000000e+00, %425
  store float %426, ptr %74, align 4, !tbaa !11
  %427 = load float, ptr %84, align 4, !tbaa !11
  %428 = fpext float %427 to double
  %429 = call double @sqrt(double noundef %428) #4
  %430 = fptrunc double %429 to float
  store float %430, ptr %53, align 4, !tbaa !11
  %431 = load float, ptr %74, align 4, !tbaa !11
  %432 = fpext float %431 to double
  %433 = call double @sqrt(double noundef %432) #4
  %434 = fptrunc double %433 to float
  store float %434, ptr %47, align 4, !tbaa !11
  %435 = load float, ptr %72, align 4, !tbaa !11
  %436 = fpext float %435 to double
  %437 = call double @sqrt(double noundef %436) #4
  %438 = call double @sqrt(double noundef %437) #4
  %439 = fdiv double 1.000000e+00, %438
  %440 = fptrunc double %439 to float
  store float %440, ptr %48, align 4, !tbaa !11
  %441 = load float, ptr %47, align 4, !tbaa !11
  %442 = load float, ptr %48, align 4, !tbaa !11
  %443 = fcmp ole float %441, %442
  br i1 %443, label %444, label %446

444:                                              ; preds = %419
  %445 = load float, ptr %47, align 4, !tbaa !11
  br label %448

446:                                              ; preds = %419
  %447 = load float, ptr %48, align 4, !tbaa !11
  br label %448

448:                                              ; preds = %446, %444
  %449 = phi float [ %445, %444 ], [ %447, %446 ]
  store float %449, ptr %54, align 4, !tbaa !11
  store i32 0, ptr %69, align 4, !tbaa !9
  %450 = load ptr, ptr %31, align 8, !tbaa !5
  %451 = load float, ptr %450, align 4, !tbaa !11
  store float %451, ptr %73, align 4, !tbaa !11
  %452 = load i32, ptr %71, align 4, !tbaa !9
  %453 = icmp ne i32 %452, 0
  br i1 %453, label %454, label %459

454:                                              ; preds = %448
  %455 = load ptr, ptr %27, align 8, !tbaa !5
  %456 = load float, ptr %455, align 4, !tbaa !11
  store float %456, ptr %88, align 4, !tbaa !11
  %457 = load ptr, ptr %28, align 8, !tbaa !5
  %458 = load float, ptr %457, align 4, !tbaa !11
  store float %458, ptr %89, align 4, !tbaa !11
  br label %459

459:                                              ; preds = %454, %448
  %460 = load ptr, ptr %23, align 8, !tbaa !5
  %461 = load ptr, ptr %24, align 8, !tbaa !5
  %462 = load ptr, ptr %25, align 8, !tbaa !5
  %463 = load i32, ptr %42, align 4, !tbaa !9
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds float, ptr %462, i64 %464
  %466 = load ptr, ptr %26, align 8, !tbaa !5
  %467 = load ptr, ptr %36, align 8, !tbaa !5
  %468 = getelementptr inbounds float, ptr %467, i64 1
  %469 = call float @slansy_(ptr noundef @.str.11, ptr noundef %460, ptr noundef %461, ptr noundef %465, ptr noundef %466, ptr noundef %468)
  store float %469, ptr %51, align 4, !tbaa !11
  %470 = load float, ptr %51, align 4, !tbaa !11
  %471 = fcmp ogt float %470, 0.000000e+00
  br i1 %471, label %472, label %480

472:                                              ; preds = %459
  %473 = load float, ptr %51, align 4, !tbaa !11
  %474 = load float, ptr %53, align 4, !tbaa !11
  %475 = fcmp olt float %473, %474
  br i1 %475, label %476, label %480

476:                                              ; preds = %472
  store i32 1, ptr %69, align 4, !tbaa !9
  %477 = load float, ptr %53, align 4, !tbaa !11
  %478 = load float, ptr %51, align 4, !tbaa !11
  %479 = fdiv float %477, %478
  store float %479, ptr %60, align 4, !tbaa !11
  br label %489

480:                                              ; preds = %472, %459
  %481 = load float, ptr %51, align 4, !tbaa !11
  %482 = load float, ptr %54, align 4, !tbaa !11
  %483 = fcmp ogt float %481, %482
  br i1 %483, label %484, label %488

484:                                              ; preds = %480
  store i32 1, ptr %69, align 4, !tbaa !9
  %485 = load float, ptr %54, align 4, !tbaa !11
  %486 = load float, ptr %51, align 4, !tbaa !11
  %487 = fdiv float %485, %486
  store float %487, ptr %60, align 4, !tbaa !11
  br label %488

488:                                              ; preds = %484, %480
  br label %489

489:                                              ; preds = %488, %476
  %490 = load i32, ptr %69, align 4, !tbaa !9
  %491 = icmp eq i32 %490, 1
  br i1 %491, label %492, label %561

492:                                              ; preds = %489
  %493 = load i32, ptr %63, align 4, !tbaa !9
  %494 = icmp ne i32 %493, 0
  br i1 %494, label %495, label %520

495:                                              ; preds = %492
  %496 = load ptr, ptr %24, align 8, !tbaa !5
  %497 = load i32, ptr %496, align 4, !tbaa !9
  store i32 %497, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %498

498:                                              ; preds = %516, %495
  %499 = load i32, ptr %58, align 4, !tbaa !9
  %500 = load i32, ptr %45, align 4, !tbaa !9
  %501 = icmp sle i32 %499, %500
  br i1 %501, label %502, label %519

502:                                              ; preds = %498
  %503 = load ptr, ptr %24, align 8, !tbaa !5
  %504 = load i32, ptr %503, align 4, !tbaa !9
  %505 = load i32, ptr %58, align 4, !tbaa !9
  %506 = sub nsw i32 %504, %505
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr %46, align 4, !tbaa !9
  %508 = load ptr, ptr %25, align 8, !tbaa !5
  %509 = load i32, ptr %58, align 4, !tbaa !9
  %510 = load i32, ptr %58, align 4, !tbaa !9
  %511 = load i32, ptr %41, align 4, !tbaa !9
  %512 = mul nsw i32 %510, %511
  %513 = add nsw i32 %509, %512
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %508, i64 %514
  call void @sscal_(ptr noundef %46, ptr noundef %60, ptr noundef %515, ptr noundef @c__1)
  br label %516

516:                                              ; preds = %502
  %517 = load i32, ptr %58, align 4, !tbaa !9
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr %58, align 4, !tbaa !9
  br label %498, !llvm.loop !13

519:                                              ; preds = %498
  br label %539

520:                                              ; preds = %492
  %521 = load ptr, ptr %24, align 8, !tbaa !5
  %522 = load i32, ptr %521, align 4, !tbaa !9
  store i32 %522, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %523

523:                                              ; preds = %535, %520
  %524 = load i32, ptr %58, align 4, !tbaa !9
  %525 = load i32, ptr %45, align 4, !tbaa !9
  %526 = icmp sle i32 %524, %525
  br i1 %526, label %527, label %538

527:                                              ; preds = %523
  %528 = load ptr, ptr %25, align 8, !tbaa !5
  %529 = load i32, ptr %58, align 4, !tbaa !9
  %530 = load i32, ptr %41, align 4, !tbaa !9
  %531 = mul nsw i32 %529, %530
  %532 = add nsw i32 %531, 1
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds float, ptr %528, i64 %533
  call void @sscal_(ptr noundef %58, ptr noundef %60, ptr noundef %534, ptr noundef @c__1)
  br label %535

535:                                              ; preds = %527
  %536 = load i32, ptr %58, align 4, !tbaa !9
  %537 = add nsw i32 %536, 1
  store i32 %537, ptr %58, align 4, !tbaa !9
  br label %523, !llvm.loop !15

538:                                              ; preds = %523
  br label %539

539:                                              ; preds = %538, %519
  %540 = load ptr, ptr %31, align 8, !tbaa !5
  %541 = load float, ptr %540, align 4, !tbaa !11
  %542 = fcmp ogt float %541, 0.000000e+00
  br i1 %542, label %543, label %548

543:                                              ; preds = %539
  %544 = load ptr, ptr %31, align 8, !tbaa !5
  %545 = load float, ptr %544, align 4, !tbaa !11
  %546 = load float, ptr %60, align 4, !tbaa !11
  %547 = fmul float %545, %546
  store float %547, ptr %73, align 4, !tbaa !11
  br label %548

548:                                              ; preds = %543, %539
  %549 = load i32, ptr %71, align 4, !tbaa !9
  %550 = icmp ne i32 %549, 0
  br i1 %550, label %551, label %560

551:                                              ; preds = %548
  %552 = load ptr, ptr %27, align 8, !tbaa !5
  %553 = load float, ptr %552, align 4, !tbaa !11
  %554 = load float, ptr %60, align 4, !tbaa !11
  %555 = fmul float %553, %554
  store float %555, ptr %88, align 4, !tbaa !11
  %556 = load ptr, ptr %28, align 8, !tbaa !5
  %557 = load float, ptr %556, align 4, !tbaa !11
  %558 = load float, ptr %60, align 4, !tbaa !11
  %559 = fmul float %557, %558
  store float %559, ptr %89, align 4, !tbaa !11
  br label %560

560:                                              ; preds = %551, %548
  br label %561

561:                                              ; preds = %560, %489
  store i32 1, ptr %75, align 4, !tbaa !9
  %562 = load i32, ptr %75, align 4, !tbaa !9
  %563 = load ptr, ptr %24, align 8, !tbaa !5
  %564 = load i32, ptr %563, align 4, !tbaa !9
  %565 = add nsw i32 %562, %564
  store i32 %565, ptr %50, align 4, !tbaa !9
  %566 = load i32, ptr %50, align 4, !tbaa !9
  %567 = load ptr, ptr %24, align 8, !tbaa !5
  %568 = load i32, ptr %567, align 4, !tbaa !9
  %569 = add nsw i32 %566, %568
  store i32 %569, ptr %49, align 4, !tbaa !9
  %570 = load i32, ptr %49, align 4, !tbaa !9
  %571 = load ptr, ptr %24, align 8, !tbaa !5
  %572 = load i32, ptr %571, align 4, !tbaa !9
  %573 = add nsw i32 %570, %572
  store i32 %573, ptr %79, align 4, !tbaa !9
  %574 = load ptr, ptr %37, align 8, !tbaa !5
  %575 = load i32, ptr %574, align 4, !tbaa !9
  %576 = load i32, ptr %79, align 4, !tbaa !9
  %577 = sub nsw i32 %575, %576
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr %82, align 4, !tbaa !9
  %579 = load ptr, ptr %23, align 8, !tbaa !5
  %580 = load ptr, ptr %24, align 8, !tbaa !5
  %581 = load ptr, ptr %25, align 8, !tbaa !5
  %582 = load i32, ptr %42, align 4, !tbaa !9
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds float, ptr %581, i64 %583
  %585 = load ptr, ptr %26, align 8, !tbaa !5
  %586 = load ptr, ptr %36, align 8, !tbaa !5
  %587 = load i32, ptr %49, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds float, ptr %586, i64 %588
  %590 = load ptr, ptr %36, align 8, !tbaa !5
  %591 = load i32, ptr %50, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds float, ptr %590, i64 %592
  %594 = load ptr, ptr %36, align 8, !tbaa !5
  %595 = load i32, ptr %75, align 4, !tbaa !9
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds float, ptr %594, i64 %596
  %598 = load ptr, ptr %36, align 8, !tbaa !5
  %599 = load i32, ptr %79, align 4, !tbaa !9
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %598, i64 %600
  call void @ssytrd_(ptr noundef %579, ptr noundef %580, ptr noundef %584, ptr noundef %585, ptr noundef %589, ptr noundef %593, ptr noundef %597, ptr noundef %601, ptr noundef %82, ptr noundef %61)
  store i32 0, ptr %55, align 4, !tbaa !9
  %602 = load i32, ptr %68, align 4, !tbaa !9
  %603 = icmp ne i32 %602, 0
  br i1 %603, label %604, label %616

604:                                              ; preds = %561
  %605 = load ptr, ptr %29, align 8, !tbaa !5
  %606 = load i32, ptr %605, align 4, !tbaa !9
  %607 = icmp eq i32 %606, 1
  br i1 %607, label %608, label %615

608:                                              ; preds = %604
  %609 = load ptr, ptr %30, align 8, !tbaa !5
  %610 = load i32, ptr %609, align 4, !tbaa !9
  %611 = load ptr, ptr %24, align 8, !tbaa !5
  %612 = load i32, ptr %611, align 4, !tbaa !9
  %613 = icmp eq i32 %610, %612
  br i1 %613, label %614, label %615

614:                                              ; preds = %608
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %615

615:                                              ; preds = %614, %608, %604
  br label %616

616:                                              ; preds = %615, %561
  %617 = load i32, ptr %67, align 4, !tbaa !9
  %618 = icmp ne i32 %617, 0
  br i1 %618, label %622, label %619

619:                                              ; preds = %616
  %620 = load i32, ptr %55, align 4, !tbaa !9
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %748

622:                                              ; preds = %619, %616
  %623 = load ptr, ptr %31, align 8, !tbaa !5
  %624 = load float, ptr %623, align 4, !tbaa !11
  %625 = fcmp ole float %624, 0.000000e+00
  br i1 %625, label %626, label %748

626:                                              ; preds = %622
  %627 = load ptr, ptr %24, align 8, !tbaa !5
  %628 = load ptr, ptr %36, align 8, !tbaa !5
  %629 = load i32, ptr %49, align 4, !tbaa !9
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds float, ptr %628, i64 %630
  %632 = load ptr, ptr %33, align 8, !tbaa !5
  %633 = getelementptr inbounds float, ptr %632, i64 1
  call void @scopy_(ptr noundef %627, ptr noundef %631, ptr noundef @c__1, ptr noundef %633, ptr noundef @c__1)
  %634 = load i32, ptr %79, align 4, !tbaa !9
  %635 = load ptr, ptr %24, align 8, !tbaa !5
  %636 = load i32, ptr %635, align 4, !tbaa !9
  %637 = shl i32 %636, 1
  %638 = add nsw i32 %634, %637
  store i32 %638, ptr %59, align 4, !tbaa !9
  %639 = load i32, ptr %64, align 4, !tbaa !9
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %661, label %641

641:                                              ; preds = %626
  %642 = load ptr, ptr %24, align 8, !tbaa !5
  %643 = load i32, ptr %642, align 4, !tbaa !9
  %644 = sub nsw i32 %643, 1
  store i32 %644, ptr %45, align 4, !tbaa !9
  %645 = load ptr, ptr %36, align 8, !tbaa !5
  %646 = load i32, ptr %50, align 4, !tbaa !9
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds float, ptr %645, i64 %647
  %649 = load ptr, ptr %36, align 8, !tbaa !5
  %650 = load i32, ptr %59, align 4, !tbaa !9
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds float, ptr %649, i64 %651
  call void @scopy_(ptr noundef %45, ptr noundef %648, ptr noundef @c__1, ptr noundef %652, ptr noundef @c__1)
  %653 = load ptr, ptr %24, align 8, !tbaa !5
  %654 = load ptr, ptr %33, align 8, !tbaa !5
  %655 = getelementptr inbounds float, ptr %654, i64 1
  %656 = load ptr, ptr %36, align 8, !tbaa !5
  %657 = load i32, ptr %59, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %656, i64 %658
  %660 = load ptr, ptr %40, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %653, ptr noundef %655, ptr noundef %659, ptr noundef %660)
  br label %738

661:                                              ; preds = %626
  %662 = load ptr, ptr %24, align 8, !tbaa !5
  %663 = load ptr, ptr %24, align 8, !tbaa !5
  %664 = load ptr, ptr %25, align 8, !tbaa !5
  %665 = load i32, ptr %42, align 4, !tbaa !9
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %664, i64 %666
  %668 = load ptr, ptr %26, align 8, !tbaa !5
  %669 = load ptr, ptr %34, align 8, !tbaa !5
  %670 = load i32, ptr %44, align 4, !tbaa !9
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds float, ptr %669, i64 %671
  %673 = load ptr, ptr %35, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.2, ptr noundef %662, ptr noundef %663, ptr noundef %667, ptr noundef %668, ptr noundef %672, ptr noundef %673)
  %674 = load ptr, ptr %23, align 8, !tbaa !5
  %675 = load ptr, ptr %24, align 8, !tbaa !5
  %676 = load ptr, ptr %34, align 8, !tbaa !5
  %677 = load i32, ptr %44, align 4, !tbaa !9
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds float, ptr %676, i64 %678
  %680 = load ptr, ptr %35, align 8, !tbaa !5
  %681 = load ptr, ptr %36, align 8, !tbaa !5
  %682 = load i32, ptr %75, align 4, !tbaa !9
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds float, ptr %681, i64 %683
  %685 = load ptr, ptr %36, align 8, !tbaa !5
  %686 = load i32, ptr %79, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %685, i64 %687
  call void @sorgtr_(ptr noundef %674, ptr noundef %675, ptr noundef %679, ptr noundef %680, ptr noundef %684, ptr noundef %688, ptr noundef %82, ptr noundef %61)
  %689 = load ptr, ptr %24, align 8, !tbaa !5
  %690 = load i32, ptr %689, align 4, !tbaa !9
  %691 = sub nsw i32 %690, 1
  store i32 %691, ptr %45, align 4, !tbaa !9
  %692 = load ptr, ptr %36, align 8, !tbaa !5
  %693 = load i32, ptr %50, align 4, !tbaa !9
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %692, i64 %694
  %696 = load ptr, ptr %36, align 8, !tbaa !5
  %697 = load i32, ptr %59, align 4, !tbaa !9
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds float, ptr %696, i64 %698
  call void @scopy_(ptr noundef %45, ptr noundef %695, ptr noundef @c__1, ptr noundef %699, ptr noundef @c__1)
  %700 = load ptr, ptr %21, align 8, !tbaa !5
  %701 = load ptr, ptr %24, align 8, !tbaa !5
  %702 = load ptr, ptr %33, align 8, !tbaa !5
  %703 = getelementptr inbounds float, ptr %702, i64 1
  %704 = load ptr, ptr %36, align 8, !tbaa !5
  %705 = load i32, ptr %59, align 4, !tbaa !9
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds float, ptr %704, i64 %706
  %708 = load ptr, ptr %34, align 8, !tbaa !5
  %709 = load i32, ptr %44, align 4, !tbaa !9
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds float, ptr %708, i64 %710
  %712 = load ptr, ptr %35, align 8, !tbaa !5
  %713 = load ptr, ptr %36, align 8, !tbaa !5
  %714 = load i32, ptr %79, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds float, ptr %713, i64 %715
  %717 = load ptr, ptr %40, align 8, !tbaa !5
  call void @ssteqr_(ptr noundef %700, ptr noundef %701, ptr noundef %703, ptr noundef %707, ptr noundef %711, ptr noundef %712, ptr noundef %716, ptr noundef %717)
  %718 = load ptr, ptr %40, align 8, !tbaa !5
  %719 = load i32, ptr %718, align 4, !tbaa !9
  %720 = icmp eq i32 %719, 0
  br i1 %720, label %721, label %737

721:                                              ; preds = %661
  %722 = load ptr, ptr %24, align 8, !tbaa !5
  %723 = load i32, ptr %722, align 4, !tbaa !9
  store i32 %723, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %724

724:                                              ; preds = %733, %721
  %725 = load i32, ptr %57, align 4, !tbaa !9
  %726 = load i32, ptr %45, align 4, !tbaa !9
  %727 = icmp sle i32 %725, %726
  br i1 %727, label %728, label %736

728:                                              ; preds = %724
  %729 = load ptr, ptr %39, align 8, !tbaa !5
  %730 = load i32, ptr %57, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds i32, ptr %729, i64 %731
  store i32 0, ptr %732, align 4, !tbaa !9
  br label %733

733:                                              ; preds = %728
  %734 = load i32, ptr %57, align 4, !tbaa !9
  %735 = add nsw i32 %734, 1
  store i32 %735, ptr %57, align 4, !tbaa !9
  br label %724, !llvm.loop !16

736:                                              ; preds = %724
  br label %737

737:                                              ; preds = %736, %661
  br label %738

738:                                              ; preds = %737, %641
  %739 = load ptr, ptr %40, align 8, !tbaa !5
  %740 = load i32, ptr %739, align 4, !tbaa !9
  %741 = icmp eq i32 %740, 0
  br i1 %741, label %742, label %746

742:                                              ; preds = %738
  %743 = load ptr, ptr %24, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 %744, ptr %745, align 4, !tbaa !9
  br label %864

746:                                              ; preds = %738
  %747 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %747, align 4, !tbaa !9
  br label %748

748:                                              ; preds = %746, %622, %619
  %749 = load i32, ptr %64, align 4, !tbaa !9
  %750 = icmp ne i32 %749, 0
  br i1 %750, label %751, label %753

751:                                              ; preds = %748
  %752 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  store i8 66, ptr %752, align 1, !tbaa !17
  br label %755

753:                                              ; preds = %748
  %754 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  store i8 69, ptr %754, align 1, !tbaa !17
  br label %755

755:                                              ; preds = %753, %751
  store i32 1, ptr %70, align 4, !tbaa !9
  %756 = load i32, ptr %70, align 4, !tbaa !9
  %757 = load ptr, ptr %24, align 8, !tbaa !5
  %758 = load i32, ptr %757, align 4, !tbaa !9
  %759 = add nsw i32 %756, %758
  store i32 %759, ptr %76, align 4, !tbaa !9
  %760 = load i32, ptr %76, align 4, !tbaa !9
  %761 = load ptr, ptr %24, align 8, !tbaa !5
  %762 = load i32, ptr %761, align 4, !tbaa !9
  %763 = add nsw i32 %760, %762
  store i32 %763, ptr %77, align 4, !tbaa !9
  %764 = load ptr, ptr %22, align 8, !tbaa !5
  %765 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  %766 = load ptr, ptr %24, align 8, !tbaa !5
  %767 = load ptr, ptr %29, align 8, !tbaa !5
  %768 = load ptr, ptr %30, align 8, !tbaa !5
  %769 = load ptr, ptr %36, align 8, !tbaa !5
  %770 = load i32, ptr %49, align 4, !tbaa !9
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds float, ptr %769, i64 %771
  %773 = load ptr, ptr %36, align 8, !tbaa !5
  %774 = load i32, ptr %50, align 4, !tbaa !9
  %775 = sext i32 %774 to i64
  %776 = getelementptr inbounds float, ptr %773, i64 %775
  %777 = load ptr, ptr %32, align 8, !tbaa !5
  %778 = load ptr, ptr %33, align 8, !tbaa !5
  %779 = getelementptr inbounds float, ptr %778, i64 1
  %780 = load ptr, ptr %38, align 8, !tbaa !5
  %781 = load i32, ptr %70, align 4, !tbaa !9
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds i32, ptr %780, i64 %782
  %784 = load ptr, ptr %38, align 8, !tbaa !5
  %785 = load i32, ptr %76, align 4, !tbaa !9
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds i32, ptr %784, i64 %786
  %788 = load ptr, ptr %36, align 8, !tbaa !5
  %789 = load i32, ptr %79, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds float, ptr %788, i64 %790
  %792 = load ptr, ptr %38, align 8, !tbaa !5
  %793 = load i32, ptr %77, align 4, !tbaa !9
  %794 = sext i32 %793 to i64
  %795 = getelementptr inbounds i32, ptr %792, i64 %794
  %796 = load ptr, ptr %40, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %764, ptr noundef %765, ptr noundef %766, ptr noundef %88, ptr noundef %89, ptr noundef %767, ptr noundef %768, ptr noundef %73, ptr noundef %772, ptr noundef %776, ptr noundef %777, ptr noundef %83, ptr noundef %779, ptr noundef %783, ptr noundef %787, ptr noundef %791, ptr noundef %795, ptr noundef %796)
  %797 = load i32, ptr %64, align 4, !tbaa !9
  %798 = icmp ne i32 %797, 0
  br i1 %798, label %799, label %863

799:                                              ; preds = %755
  %800 = load ptr, ptr %24, align 8, !tbaa !5
  %801 = load ptr, ptr %36, align 8, !tbaa !5
  %802 = load i32, ptr %49, align 4, !tbaa !9
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds float, ptr %801, i64 %803
  %805 = load ptr, ptr %36, align 8, !tbaa !5
  %806 = load i32, ptr %50, align 4, !tbaa !9
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds float, ptr %805, i64 %807
  %809 = load ptr, ptr %32, align 8, !tbaa !5
  %810 = load ptr, ptr %33, align 8, !tbaa !5
  %811 = getelementptr inbounds float, ptr %810, i64 1
  %812 = load ptr, ptr %38, align 8, !tbaa !5
  %813 = load i32, ptr %70, align 4, !tbaa !9
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds i32, ptr %812, i64 %814
  %816 = load ptr, ptr %38, align 8, !tbaa !5
  %817 = load i32, ptr %76, align 4, !tbaa !9
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds i32, ptr %816, i64 %818
  %820 = load ptr, ptr %34, align 8, !tbaa !5
  %821 = load i32, ptr %44, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %820, i64 %822
  %824 = load ptr, ptr %35, align 8, !tbaa !5
  %825 = load ptr, ptr %36, align 8, !tbaa !5
  %826 = load i32, ptr %79, align 4, !tbaa !9
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds float, ptr %825, i64 %827
  %829 = load ptr, ptr %38, align 8, !tbaa !5
  %830 = load i32, ptr %77, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds i32, ptr %829, i64 %831
  %833 = load ptr, ptr %39, align 8, !tbaa !5
  %834 = getelementptr inbounds i32, ptr %833, i64 1
  %835 = load ptr, ptr %40, align 8, !tbaa !5
  call void @sstein_(ptr noundef %800, ptr noundef %804, ptr noundef %808, ptr noundef %809, ptr noundef %811, ptr noundef %815, ptr noundef %819, ptr noundef %823, ptr noundef %824, ptr noundef %828, ptr noundef %832, ptr noundef %834, ptr noundef %835)
  %836 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %836, ptr %78, align 4, !tbaa !9
  %837 = load ptr, ptr %37, align 8, !tbaa !5
  %838 = load i32, ptr %837, align 4, !tbaa !9
  %839 = load i32, ptr %78, align 4, !tbaa !9
  %840 = sub nsw i32 %838, %839
  %841 = add nsw i32 %840, 1
  store i32 %841, ptr %81, align 4, !tbaa !9
  %842 = load ptr, ptr %23, align 8, !tbaa !5
  %843 = load ptr, ptr %24, align 8, !tbaa !5
  %844 = load ptr, ptr %32, align 8, !tbaa !5
  %845 = load ptr, ptr %25, align 8, !tbaa !5
  %846 = load i32, ptr %42, align 4, !tbaa !9
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds float, ptr %845, i64 %847
  %849 = load ptr, ptr %26, align 8, !tbaa !5
  %850 = load ptr, ptr %36, align 8, !tbaa !5
  %851 = load i32, ptr %75, align 4, !tbaa !9
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds float, ptr %850, i64 %852
  %854 = load ptr, ptr %34, align 8, !tbaa !5
  %855 = load i32, ptr %44, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %854, i64 %856
  %858 = load ptr, ptr %35, align 8, !tbaa !5
  %859 = load ptr, ptr %36, align 8, !tbaa !5
  %860 = load i32, ptr %78, align 4, !tbaa !9
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds float, ptr %859, i64 %861
  call void @sormtr_(ptr noundef @.str, ptr noundef %842, ptr noundef @.str.4, ptr noundef %843, ptr noundef %844, ptr noundef %848, ptr noundef %849, ptr noundef %853, ptr noundef %857, ptr noundef %858, ptr noundef %862, ptr noundef %81, ptr noundef %61)
  br label %863

863:                                              ; preds = %799, %755
  br label %864

864:                                              ; preds = %863, %742
  %865 = load i32, ptr %69, align 4, !tbaa !9
  %866 = icmp eq i32 %865, 1
  br i1 %866, label %867, label %883

867:                                              ; preds = %864
  %868 = load ptr, ptr %40, align 8, !tbaa !5
  %869 = load i32, ptr %868, align 4, !tbaa !9
  %870 = icmp eq i32 %869, 0
  br i1 %870, label %871, label %874

871:                                              ; preds = %867
  %872 = load ptr, ptr %32, align 8, !tbaa !5
  %873 = load i32, ptr %872, align 4, !tbaa !9
  store i32 %873, ptr %52, align 4, !tbaa !9
  br label %878

874:                                              ; preds = %867
  %875 = load ptr, ptr %40, align 8, !tbaa !5
  %876 = load i32, ptr %875, align 4, !tbaa !9
  %877 = sub nsw i32 %876, 1
  store i32 %877, ptr %52, align 4, !tbaa !9
  br label %878

878:                                              ; preds = %874, %871
  %879 = load float, ptr %60, align 4, !tbaa !11
  %880 = fdiv float 1.000000e+00, %879
  store float %880, ptr %47, align 4, !tbaa !11
  %881 = load ptr, ptr %33, align 8, !tbaa !5
  %882 = getelementptr inbounds float, ptr %881, i64 1
  call void @sscal_(ptr noundef %52, ptr noundef %47, ptr noundef %882, ptr noundef @c__1)
  br label %883

883:                                              ; preds = %878, %864
  %884 = load i32, ptr %64, align 4, !tbaa !9
  %885 = icmp ne i32 %884, 0
  br i1 %885, label %886, label %1020

886:                                              ; preds = %883
  %887 = load ptr, ptr %32, align 8, !tbaa !5
  %888 = load i32, ptr %887, align 4, !tbaa !9
  %889 = sub nsw i32 %888, 1
  store i32 %889, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %890

890:                                              ; preds = %1016, %886
  %891 = load i32, ptr %58, align 4, !tbaa !9
  %892 = load i32, ptr %45, align 4, !tbaa !9
  %893 = icmp sle i32 %891, %892
  br i1 %893, label %894, label %1019

894:                                              ; preds = %890
  store i32 0, ptr %57, align 4, !tbaa !9
  %895 = load ptr, ptr %33, align 8, !tbaa !5
  %896 = load i32, ptr %58, align 4, !tbaa !9
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds float, ptr %895, i64 %897
  %899 = load float, ptr %898, align 4, !tbaa !11
  store float %899, ptr %90, align 4, !tbaa !11
  %900 = load ptr, ptr %32, align 8, !tbaa !5
  %901 = load i32, ptr %900, align 4, !tbaa !9
  store i32 %901, ptr %46, align 4, !tbaa !9
  %902 = load i32, ptr %58, align 4, !tbaa !9
  %903 = add nsw i32 %902, 1
  store i32 %903, ptr %66, align 4, !tbaa !9
  br label %904

904:                                              ; preds = %924, %894
  %905 = load i32, ptr %66, align 4, !tbaa !9
  %906 = load i32, ptr %46, align 4, !tbaa !9
  %907 = icmp sle i32 %905, %906
  br i1 %907, label %908, label %927

908:                                              ; preds = %904
  %909 = load ptr, ptr %33, align 8, !tbaa !5
  %910 = load i32, ptr %66, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds float, ptr %909, i64 %911
  %913 = load float, ptr %912, align 4, !tbaa !11
  %914 = load float, ptr %90, align 4, !tbaa !11
  %915 = fcmp olt float %913, %914
  br i1 %915, label %916, label %923

916:                                              ; preds = %908
  %917 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %917, ptr %57, align 4, !tbaa !9
  %918 = load ptr, ptr %33, align 8, !tbaa !5
  %919 = load i32, ptr %66, align 4, !tbaa !9
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds float, ptr %918, i64 %920
  %922 = load float, ptr %921, align 4, !tbaa !11
  store float %922, ptr %90, align 4, !tbaa !11
  br label %923

923:                                              ; preds = %916, %908
  br label %924

924:                                              ; preds = %923
  %925 = load i32, ptr %66, align 4, !tbaa !9
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr %66, align 4, !tbaa !9
  br label %904, !llvm.loop !18

927:                                              ; preds = %904
  %928 = load i32, ptr %57, align 4, !tbaa !9
  %929 = icmp ne i32 %928, 0
  br i1 %929, label %930, label %1015

930:                                              ; preds = %927
  %931 = load ptr, ptr %38, align 8, !tbaa !5
  %932 = load i32, ptr %70, align 4, !tbaa !9
  %933 = load i32, ptr %57, align 4, !tbaa !9
  %934 = add nsw i32 %932, %933
  %935 = sub nsw i32 %934, 1
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds i32, ptr %931, i64 %936
  %938 = load i32, ptr %937, align 4, !tbaa !9
  store i32 %938, ptr %56, align 4, !tbaa !9
  %939 = load ptr, ptr %33, align 8, !tbaa !5
  %940 = load i32, ptr %58, align 4, !tbaa !9
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds float, ptr %939, i64 %941
  %943 = load float, ptr %942, align 4, !tbaa !11
  %944 = load ptr, ptr %33, align 8, !tbaa !5
  %945 = load i32, ptr %57, align 4, !tbaa !9
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds float, ptr %944, i64 %946
  store float %943, ptr %947, align 4, !tbaa !11
  %948 = load ptr, ptr %38, align 8, !tbaa !5
  %949 = load i32, ptr %70, align 4, !tbaa !9
  %950 = load i32, ptr %58, align 4, !tbaa !9
  %951 = add nsw i32 %949, %950
  %952 = sub nsw i32 %951, 1
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds i32, ptr %948, i64 %953
  %955 = load i32, ptr %954, align 4, !tbaa !9
  %956 = load ptr, ptr %38, align 8, !tbaa !5
  %957 = load i32, ptr %70, align 4, !tbaa !9
  %958 = load i32, ptr %57, align 4, !tbaa !9
  %959 = add nsw i32 %957, %958
  %960 = sub nsw i32 %959, 1
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds i32, ptr %956, i64 %961
  store i32 %955, ptr %962, align 4, !tbaa !9
  %963 = load float, ptr %90, align 4, !tbaa !11
  %964 = load ptr, ptr %33, align 8, !tbaa !5
  %965 = load i32, ptr %58, align 4, !tbaa !9
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds float, ptr %964, i64 %966
  store float %963, ptr %967, align 4, !tbaa !11
  %968 = load i32, ptr %56, align 4, !tbaa !9
  %969 = load ptr, ptr %38, align 8, !tbaa !5
  %970 = load i32, ptr %70, align 4, !tbaa !9
  %971 = load i32, ptr %58, align 4, !tbaa !9
  %972 = add nsw i32 %970, %971
  %973 = sub nsw i32 %972, 1
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds i32, ptr %969, i64 %974
  store i32 %968, ptr %975, align 4, !tbaa !9
  %976 = load ptr, ptr %24, align 8, !tbaa !5
  %977 = load ptr, ptr %34, align 8, !tbaa !5
  %978 = load i32, ptr %57, align 4, !tbaa !9
  %979 = load i32, ptr %43, align 4, !tbaa !9
  %980 = mul nsw i32 %978, %979
  %981 = add nsw i32 %980, 1
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds float, ptr %977, i64 %982
  %984 = load ptr, ptr %34, align 8, !tbaa !5
  %985 = load i32, ptr %58, align 4, !tbaa !9
  %986 = load i32, ptr %43, align 4, !tbaa !9
  %987 = mul nsw i32 %985, %986
  %988 = add nsw i32 %987, 1
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds float, ptr %984, i64 %989
  call void @sswap_(ptr noundef %976, ptr noundef %983, ptr noundef @c__1, ptr noundef %990, ptr noundef @c__1)
  %991 = load ptr, ptr %40, align 8, !tbaa !5
  %992 = load i32, ptr %991, align 4, !tbaa !9
  %993 = icmp ne i32 %992, 0
  br i1 %993, label %994, label %1014

994:                                              ; preds = %930
  %995 = load ptr, ptr %39, align 8, !tbaa !5
  %996 = load i32, ptr %57, align 4, !tbaa !9
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds i32, ptr %995, i64 %997
  %999 = load i32, ptr %998, align 4, !tbaa !9
  store i32 %999, ptr %56, align 4, !tbaa !9
  %1000 = load ptr, ptr %39, align 8, !tbaa !5
  %1001 = load i32, ptr %58, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds i32, ptr %1000, i64 %1002
  %1004 = load i32, ptr %1003, align 4, !tbaa !9
  %1005 = load ptr, ptr %39, align 8, !tbaa !5
  %1006 = load i32, ptr %57, align 4, !tbaa !9
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds i32, ptr %1005, i64 %1007
  store i32 %1004, ptr %1008, align 4, !tbaa !9
  %1009 = load i32, ptr %56, align 4, !tbaa !9
  %1010 = load ptr, ptr %39, align 8, !tbaa !5
  %1011 = load i32, ptr %58, align 4, !tbaa !9
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds i32, ptr %1010, i64 %1012
  store i32 %1009, ptr %1013, align 4, !tbaa !9
  br label %1014

1014:                                             ; preds = %994, %930
  br label %1015

1015:                                             ; preds = %1014, %927
  br label %1016

1016:                                             ; preds = %1015
  %1017 = load i32, ptr %58, align 4, !tbaa !9
  %1018 = add nsw i32 %1017, 1
  store i32 %1018, ptr %58, align 4, !tbaa !9
  br label %890, !llvm.loop !19

1019:                                             ; preds = %890
  br label %1020

1020:                                             ; preds = %1019, %883
  %1021 = load i32, ptr %85, align 4, !tbaa !9
  %1022 = sitofp i32 %1021 to float
  %1023 = load ptr, ptr %36, align 8, !tbaa !5
  %1024 = getelementptr inbounds float, ptr %1023, i64 1
  store float %1022, ptr %1024, align 4, !tbaa !11
  store i32 1, ptr %91, align 4
  br label %1025

1025:                                             ; preds = %1020, %418, %357, %350, %342
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare void @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 void @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 void @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 = !{!"int", !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 i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

54:                                               ; preds = %52, %20
  %55 = icmp ne i32 %47, 0
  %56 = icmp ne i32 %48, 0
  %or.cond = select i1 %55, i1 true, i1 %56
  %57 = icmp ne i32 %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
  %.not381 = icmp eq i32 %45, 0
  br i1 %.not381, label %59, label %61

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

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

64:                                               ; preds = %61
  %65 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %62, i32 1)
  %66 = icmp slt i32 %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 i32 %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 i32, ptr %8, align 4, !tbaa !5
  %76 = icmp slt i32 %75, 1
  %77 = icmp ugt i32 %75, %spec.select
  %or.cond428 = or i1 %76, %77
  br i1 %or.cond428, label %.thread416.sink.split, label %78

78:                                               ; preds = %74
  %79 = load i32, ptr %9, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %62, i32 %75)
  %80 = icmp slt i32 %79, %.
  %81 = icmp ugt i32 %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 i32, ptr %19, align 4, !tbaa !5
  %83 = icmp eq i32 %.pr, 0
  br i1 %83, label %84, label %.thread416

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

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

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

99:                                               ; preds = %.thread, %89
  %storemerge = phi float [ %98, %89 ], [ 1.000000e+00, %.thread ]
  %.0354 = phi i32 [ %90, %89 ], [ 1, %.thread ]
  %.0352 = phi i32 [ %97, %89 ], [ undef, %.thread ]
  store float %storemerge, ptr %15, align 4, !tbaa !9
  %100 = load i32, ptr %16, align 4, !tbaa !5
  %101 = icmp sge i32 %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 i32, ptr %19, align 4, !tbaa !5
  %.not386 = icmp eq i32 %.pr413.pr, 0
  br i1 %.not386, label %105, label %.thread416

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

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

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

106:                                              ; preds = %105
  store i32 0, ptr %11, align 4, !tbaa !5
  %107 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %107, label %121 [
    i32 0, label %291
    i32 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 i32 1, ptr %11, align 4, !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 i32 1, ptr %11, align 4, !tbaa !5
  br label %.sink.split

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

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

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

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

134:                                              ; preds = %121
  %135 = load float, ptr %6, align 4, !tbaa !9
  store float %135, ptr %33, align 4, !tbaa !9
  %136 = load float, ptr %7, align 4, !tbaa !9
  store float %136, ptr %34, align 4, !tbaa !9
  br label %137

137:                                              ; preds = %134, %121
  %138 = tail call float @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
  %139 = fcmp ogt float %138, 0.000000e+00
  %140 = fcmp olt float %138, %sqrtf
  %or.cond405 = select i1 %139, i1 %140, i1 false
  br i1 %or.cond405, label %143, label %141

141:                                              ; preds = %137
  %142 = fcmp ogt float %138, %132
  br i1 %142, label %143, label %174

143:                                              ; preds = %141, %137
  %.pn = phi float [ %sqrtf, %137 ], [ %132, %141 ]
  %storemerge431 = fdiv float %.pn, %138
  store float %storemerge431, ptr %26, align 4, !tbaa !9
  %144 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %144, ptr %21, align 4, !tbaa !5
  br i1 %.not381, label %156, label %145

145:                                              ; preds = %143
  store i32 1, ptr %25, align 4, !tbaa !5
  %.not393436 = icmp slt i32 %144, 1
  br i1 %.not393436, label %.loopexit434, label %.lr.ph

.lr.ph:                                           ; preds = %145
  %146 = add i32 %35, 1
  br label %147

147:                                              ; preds = %.lr.ph, %147
  %storemerge392437 = phi i32 [ 1, %.lr.ph ], [ %154, %147 ]
  %148 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %148, %storemerge392437
  %149 = add i32 %reass.sub, 1
  store i32 %149, ptr %22, align 4, !tbaa !5
  %150 = mul i32 %storemerge392437, %146
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds float, ptr %37, i64 %151
  call void @sscal_(ptr noundef nonnull %22, ptr noundef nonnull %26, ptr noundef %152, ptr noundef nonnull @c__1) #6
  %153 = load i32, ptr %25, align 4, !tbaa !5
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr %25, align 4, !tbaa !5
  %155 = load i32, ptr %21, align 4, !tbaa !5
  %.not393.not = icmp slt i32 %153, %155
  br i1 %.not393.not, label %147, label %.loopexit434, !llvm.loop !11

156:                                              ; preds = %143
  %invariant.gep = getelementptr i8, ptr %37, i64 4
  store i32 1, ptr %25, align 4, !tbaa !5
  %.not391438 = icmp slt i32 %144, 1
  br i1 %.not391438, label %.loopexit434, label %.lr.ph440

.lr.ph440:                                        ; preds = %156, %.lr.ph440
  %storemerge390439 = phi i32 [ %160, %.lr.ph440 ], [ 1, %156 ]
  %157 = mul nsw i32 %storemerge390439, %35
  %158 = sext i32 %157 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %158
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %159 = load i32, ptr %25, align 4, !tbaa !5
  %160 = add nsw i32 %159, 1
  store i32 %160, ptr %25, align 4, !tbaa !5
  %161 = load i32, ptr %21, align 4, !tbaa !5
  %.not391.not = icmp slt i32 %159, %161
  br i1 %.not391.not, label %.lr.ph440, label %.loopexit434, !llvm.loop !13

.loopexit434:                                     ; preds = %147, %.lr.ph440, %145, %156
  %162 = load float, ptr %10, align 4, !tbaa !9
  %163 = fcmp ogt float %162, 0.000000e+00
  br i1 %163, label %164, label %167

164:                                              ; preds = %.loopexit434
  %165 = load float, ptr %26, align 4, !tbaa !9
  %166 = fmul float %162, %165
  store float %166, ptr %29, align 4, !tbaa !9
  br label %167

167:                                              ; preds = %164, %.loopexit434
  br i1 %.not388, label %174, label %168

168:                                              ; preds = %167
  %169 = load float, ptr %6, align 4, !tbaa !9
  %170 = load float, ptr %26, align 4, !tbaa !9
  %171 = fmul float %169, %170
  store float %171, ptr %33, align 4, !tbaa !9
  %172 = load float, ptr %7, align 4, !tbaa !9
  %173 = fmul float %170, %172
  store float %173, ptr %34, align 4, !tbaa !9
  br label %174

174:                                              ; preds = %141, %167, %168
  %175 = phi i1 [ true, %167 ], [ true, %168 ], [ false, %141 ]
  %176 = load i32, ptr %3, align 4, !tbaa !5
  %177 = add nsw i32 %176, 1
  %178 = add nsw i32 %177, %176
  %179 = add nsw i32 %178, %176
  %180 = load i32, ptr %16, align 4, !tbaa !5
  %181 = add i32 %180, 1
  %182 = sub i32 %181, %179
  store i32 %182, ptr %31, align 4, !tbaa !5
  %183 = sext i32 %178 to i64
  %184 = getelementptr inbounds float, ptr %42, i64 %183
  %185 = sext i32 %177 to i64
  %186 = getelementptr inbounds float, ptr %42, i64 %185
  %187 = sext i32 %179 to i64
  %188 = getelementptr inbounds float, ptr %42, i64 %187
  call void @ssytrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %184, ptr noundef nonnull %186, ptr noundef nonnull %15, ptr noundef nonnull %188, ptr noundef nonnull %31, ptr noundef nonnull %27) #6
  %.not394 = icmp eq i32 %49, 0
  br i1 %.not394, label %196, label %189

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

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

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

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

201:                                              ; preds = %198
  call void @scopy_(ptr noundef nonnull %3, ptr noundef nonnull %184, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull @c__1) #6
  %202 = load i32, ptr %3, align 4, !tbaa !5
  %203 = shl i32 %202, 1
  %204 = add nsw i32 %203, %179
  br i1 %.not, label %209, label %205

205:                                              ; preds = %201
  %206 = add nsw i32 %202, -1
  store i32 %206, ptr %21, align 4, !tbaa !5
  %207 = sext i32 %204 to i64
  %208 = getelementptr inbounds float, ptr %42, i64 %207
  call void @scopy_(ptr noundef nonnull %21, ptr noundef nonnull %186, ptr noundef nonnull @c__1, ptr noundef nonnull %208, ptr noundef nonnull @c__1) #6
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %208, ptr noundef nonnull %19) #6
  br label %.loopexit433

209:                                              ; preds = %201
  call void @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
  call void @sorgtr_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %188, ptr noundef nonnull %31, ptr noundef nonnull %27) #6
  %210 = load i32, ptr %3, align 4, !tbaa !5
  %211 = add nsw i32 %210, -1
  store i32 %211, ptr %21, align 4, !tbaa !5
  %212 = sext i32 %204 to i64
  %213 = getelementptr inbounds float, ptr %42, i64 %212
  call void @scopy_(ptr noundef nonnull %21, ptr noundef nonnull %186, ptr noundef nonnull @c__1, ptr noundef nonnull %213, ptr noundef nonnull @c__1) #6
  call void @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %213, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %188, ptr noundef nonnull %19) #6
  %214 = load i32, ptr %19, align 4, !tbaa !5
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %.thread423

216:                                              ; preds = %209
  %217 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %217, ptr %21, align 4, !tbaa !5
  %.not395441 = icmp slt i32 %217, 1
  br i1 %.not395441, label %.loopexit433, label %.lr.ph443.preheader

.lr.ph443.preheader:                              ; preds = %216
  %218 = zext nneg i32 %217 to i64
  %219 = shl nuw nsw i64 %218, 2
  call void @llvm.memset.p0.i64(ptr align 4 %18, i8 0, i64 %219, i1 false), !tbaa !5
  br label %.loopexit433

.loopexit433:                                     ; preds = %.lr.ph443.preheader, %216, %205
  %.pr422 = load i32, ptr %19, align 4, !tbaa !5
  %220 = icmp eq i32 %.pr422, 0
  br i1 %220, label %221, label %.thread423

221:                                              ; preds = %.loopexit433
  %222 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %222, ptr %11, align 4, !tbaa !5
  br label %234

.thread423:                                       ; preds = %209, %.loopexit433
  store i32 0, ptr %19, align 4, !tbaa !5
  br label %223

223:                                              ; preds = %196, %.thread423, %198
  %.407 = select i1 %.not, i8 66, i8 69
  store i8 %.407, ptr %28, align 1, !tbaa !14
  %224 = load i32, ptr %3, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  %226 = add nsw i32 %225, %224
  %227 = sext i32 %225 to i64
  %228 = getelementptr inbounds i32, ptr %43, i64 %227
  %229 = sext i32 %226 to i64
  %230 = getelementptr inbounds i32, ptr %43, i64 %229
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %28, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %29, ptr noundef nonnull %184, ptr noundef nonnull %186, ptr noundef nonnull %11, ptr noundef nonnull %32, ptr noundef %12, ptr noundef %17, ptr noundef nonnull %228, ptr noundef nonnull %188, ptr noundef nonnull %230, ptr noundef nonnull %19) #6
  br i1 %.not, label %231, label %234

231:                                              ; preds = %223
  call void @sstein_(ptr noundef nonnull %3, ptr noundef nonnull %184, ptr noundef nonnull %186, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %17, ptr noundef nonnull %228, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %188, ptr noundef nonnull %230, ptr noundef %18, ptr noundef nonnull %19) #6
  %232 = load i32, ptr %16, align 4, !tbaa !5
  %233 = sub i32 %232, %176
  store i32 %233, ptr %30, align 4, !tbaa !5
  call void @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 nonnull %186, ptr noundef nonnull %30, ptr noundef nonnull %27) #6
  br label %234

234:                                              ; preds = %223, %231, %221
  br i1 %175, label %235, label %245

235:                                              ; preds = %234
  %236 = load i32, ptr %19, align 4, !tbaa !5
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %240

238:                                              ; preds = %235
  %239 = load i32, ptr %11, align 4, !tbaa !5
  br label %242

240:                                              ; preds = %235
  %241 = add nsw i32 %236, -1
  br label %242

242:                                              ; preds = %240, %238
  %storemerge397 = phi i32 [ %241, %240 ], [ %239, %238 ]
  store i32 %storemerge397, ptr %24, align 4, !tbaa !5
  %243 = load float, ptr %26, align 4, !tbaa !9
  %244 = fdiv float 1.000000e+00, %243
  store float %244, ptr %23, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef %12, ptr noundef nonnull @c__1) #6
  br label %245

245:                                              ; preds = %242, %234
  br i1 %.not, label %246, label %.loopexit

246:                                              ; preds = %245
  %247 = load i32, ptr %11, align 4, !tbaa !5
  %248 = add nsw i32 %247, -1
  store i32 %248, ptr %21, align 4, !tbaa !5
  %invariant.gep450 = getelementptr i8, ptr %41, i64 4
  store i32 1, ptr %25, align 4, !tbaa !5
  %.not399454 = icmp slt i32 %247, 2
  br i1 %.not399454, label %.loopexit, label %.lr.ph457

.lr.ph457:                                        ; preds = %246, %._crit_edge.thread
  %storemerge398455 = phi i32 [ %288, %._crit_edge.thread ], [ 1, %246 ]
  %249 = sext i32 %storemerge398455 to i64
  %250 = getelementptr inbounds float, ptr %38, i64 %249
  %251 = load float, ptr %250, align 4, !tbaa !9
  %252 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %252, ptr %22, align 4, !tbaa !5
  %.not400.not444 = icmp slt i32 %storemerge398455, %252
  br i1 %.not400.not444, label %.lr.ph448.preheader, label %._crit_edge.thread

.lr.ph448.preheader:                              ; preds = %.lr.ph457
  %wide.trip.count = sext i32 %252 to i64
  %253 = sub nsw i64 %wide.trip.count, %249
  %xtraiter = and i64 %253, 1
  %254 = add nsw i64 %wide.trip.count, -1
  %255 = icmp eq i64 %254, %249
  br i1 %255, label %._crit_edge.unr-lcssa, label %.lr.ph448.preheader.new

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

.lr.ph448:                                        ; preds = %.lr.ph448, %.lr.ph448.preheader.new
  %indvars.iv = phi i64 [ %249, %.lr.ph448.preheader.new ], [ %indvars.iv.next.1, %.lr.ph448 ]
  %.0447 = phi float [ %251, %.lr.ph448.preheader.new ], [ %.1.1, %.lr.ph448 ]
  %.1357446 = phi i32 [ 0, %.lr.ph448.preheader.new ], [ %.2.1, %.lr.ph448 ]
  %niter = phi i64 [ 0, %.lr.ph448.preheader.new ], [ %niter.next.1, %.lr.ph448 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %256 = getelementptr float, ptr %12, i64 %indvars.iv
  %257 = load float, ptr %256, align 4, !tbaa !9
  %258 = fcmp olt float %257, %.0447
  %259 = trunc nsw i64 %indvars.iv.next to i32
  %.2 = select i1 %258, i32 %259, i32 %.1357446
  %.1 = select i1 %258, float %257, float %.0447
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, 2
  %260 = getelementptr float, ptr %12, i64 %indvars.iv.next
  %261 = load float, ptr %260, align 4, !tbaa !9
  %262 = fcmp olt float %261, %.1
  %263 = trunc nsw i64 %indvars.iv.next.1 to i32
  %.2.1 = select i1 %262, i32 %263, i32 %.2
  %.1.1 = select i1 %262, float %261, float %.1
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph448, !llvm.loop !15

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph448, %.lr.ph448.preheader
  %.2.lcssa.ph = phi i32 [ poison, %.lr.ph448.preheader ], [ %.2.1, %.lr.ph448 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph448.preheader ], [ %.1.1, %.lr.ph448 ]
  %indvars.iv.unr = phi i64 [ %249, %.lr.ph448.preheader ], [ %indvars.iv.next.1, %.lr.ph448 ]
  %.0447.unr = phi float [ %251, %.lr.ph448.preheader ], [ %.1.1, %.lr.ph448 ]
  %.1357446.unr = phi i32 [ 0, %.lr.ph448.preheader ], [ %.2.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
  %264 = getelementptr float, ptr %12, i64 %indvars.iv.unr
  %265 = load float, ptr %264, align 4, !tbaa !9
  %266 = fcmp olt float %265, %.0447.unr
  %267 = trunc i64 %indvars.iv.unr to i32
  %268 = add i32 %267, 1
  %.2.epil = select i1 %266, i32 %268, i32 %.1357446.unr
  %.1.epil = select i1 %266, float %265, float %.0447.unr
  br label %._crit_edge

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

269:                                              ; preds = %._crit_edge
  %270 = sext i32 %.2.lcssa to i64
  %271 = getelementptr inbounds i32, ptr %43, i64 %270
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = getelementptr inbounds float, ptr %38, i64 %270
  store float %251, ptr %273, align 4, !tbaa !9
  %274 = getelementptr inbounds i32, ptr %43, i64 %249
  %275 = load i32, ptr %274, align 4, !tbaa !5
  store i32 %275, ptr %271, align 4, !tbaa !5
  store float %.1.lcssa, ptr %250, align 4, !tbaa !9
  store i32 %272, ptr %274, align 4, !tbaa !5
  %276 = mul nsw i32 %.2.lcssa, %39
  %277 = sext i32 %276 to i64
  %gep451 = getelementptr float, ptr %invariant.gep450, i64 %277
  %278 = mul nsw i32 %storemerge398455, %39
  %279 = sext i32 %278 to i64
  %gep453 = getelementptr float, ptr %invariant.gep450, i64 %279
  call void @sswap_(ptr noundef nonnull %3, ptr noundef %gep451, ptr noundef nonnull @c__1, ptr noundef %gep453, ptr noundef nonnull @c__1) #6
  %280 = load i32, ptr %19, align 4, !tbaa !5
  %.not402 = icmp eq i32 %280, 0
  %.pre = load i32, ptr %25, align 4, !tbaa !5
  br i1 %.not402, label %._crit_edge.thread, label %281

281:                                              ; preds = %269
  %282 = getelementptr inbounds i32, ptr %44, i64 %270
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = sext i32 %.pre to i64
  %285 = getelementptr inbounds i32, ptr %44, i64 %284
  %286 = load i32, ptr %285, align 4, !tbaa !5
  store i32 %286, ptr %282, align 4, !tbaa !5
  store i32 %283, ptr %285, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph457, %._crit_edge, %281, %269
  %287 = phi i32 [ %storemerge398455, %._crit_edge ], [ %.pre, %281 ], [ %.pre, %269 ], [ %storemerge398455, %.lr.ph457 ]
  %288 = add nsw i32 %287, 1
  store i32 %288, ptr %25, align 4, !tbaa !5
  %289 = load i32, ptr %21, align 4, !tbaa !5
  %.not399.not = icmp slt i32 %287, %289
  br i1 %.not399.not, label %.lr.ph457, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %._crit_edge.thread, %246, %245
  %290 = sitofp i32 %.0352 to float
  store float %290, ptr %15, align 4, !tbaa !9
  br label %291

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

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

declare float @slansy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = 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