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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

; Function Attrs: nounwind uwtable
define dso_local void @ssyevx_2stage_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19) #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 i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca float, align 4
  %77 = alloca float, align 4
  %78 = alloca float, 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 i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca float, align 4
  %88 = alloca i32, align 4
  %89 = alloca float, align 4
  %90 = alloca float, align 4
  %91 = alloca float, align 4
  %92 = alloca i32, align 4
  %93 = alloca float, align 4
  %94 = 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #4
  %95 = load ptr, ptr %26, align 8, !tbaa !5
  %96 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %96, ptr %41, align 4, !tbaa !9
  %97 = load i32, ptr %41, align 4, !tbaa !9
  %98 = mul nsw i32 %97, 1
  %99 = add nsw i32 1, %98
  store i32 %99, ptr %42, align 4, !tbaa !9
  %100 = load i32, ptr %42, align 4, !tbaa !9
  %101 = load ptr, ptr %25, align 8, !tbaa !5
  %102 = sext i32 %100 to i64
  %103 = sub i64 0, %102
  %104 = getelementptr inbounds float, ptr %101, i64 %103
  store ptr %104, ptr %25, align 8, !tbaa !5
  %105 = load ptr, ptr %33, align 8, !tbaa !5
  %106 = getelementptr inbounds float, ptr %105, i32 -1
  store ptr %106, ptr %33, align 8, !tbaa !5
  %107 = load ptr, ptr %35, align 8, !tbaa !5
  %108 = load i32, ptr %107, align 4, !tbaa !9
  store i32 %108, ptr %43, align 4, !tbaa !9
  %109 = load i32, ptr %43, align 4, !tbaa !9
  %110 = mul nsw i32 %109, 1
  %111 = add nsw i32 1, %110
  store i32 %111, ptr %44, align 4, !tbaa !9
  %112 = load i32, ptr %44, align 4, !tbaa !9
  %113 = load ptr, ptr %34, align 8, !tbaa !5
  %114 = sext i32 %112 to i64
  %115 = sub i64 0, %114
  %116 = getelementptr inbounds float, ptr %113, i64 %115
  store ptr %116, ptr %34, align 8, !tbaa !5
  %117 = load ptr, ptr %36, align 8, !tbaa !5
  %118 = getelementptr inbounds float, ptr %117, i32 -1
  store ptr %118, ptr %36, align 8, !tbaa !5
  %119 = load ptr, ptr %38, align 8, !tbaa !5
  %120 = getelementptr inbounds i32, ptr %119, i32 -1
  store ptr %120, ptr %38, align 8, !tbaa !5
  %121 = load ptr, ptr %39, align 8, !tbaa !5
  %122 = getelementptr inbounds i32, ptr %121, i32 -1
  store ptr %122, ptr %39, align 8, !tbaa !5
  %123 = load ptr, ptr %23, align 8, !tbaa !5
  %124 = call i32 @lsame_(ptr noundef %123, ptr noundef @.str)
  store i32 %124, ptr %65, align 4, !tbaa !9
  %125 = load ptr, ptr %21, align 8, !tbaa !5
  %126 = call i32 @lsame_(ptr noundef %125, ptr noundef @.str.1)
  store i32 %126, ptr %67, align 4, !tbaa !9
  %127 = load ptr, ptr %22, align 8, !tbaa !5
  %128 = call i32 @lsame_(ptr noundef %127, ptr noundef @.str.2)
  store i32 %128, ptr %71, align 4, !tbaa !9
  %129 = load ptr, ptr %22, align 8, !tbaa !5
  %130 = call i32 @lsame_(ptr noundef %129, ptr noundef @.str.1)
  store i32 %130, ptr %75, align 4, !tbaa !9
  %131 = load ptr, ptr %22, align 8, !tbaa !5
  %132 = call i32 @lsame_(ptr noundef %131, ptr noundef @.str.3)
  store i32 %132, ptr %72, align 4, !tbaa !9
  %133 = load ptr, ptr %37, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  %135 = icmp eq i32 %134, -1
  %136 = zext i1 %135 to i32
  store i32 %136, ptr %88, align 4, !tbaa !9
  %137 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %137, align 4, !tbaa !9
  %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 = %20
  %142 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -1, ptr %142, align 4, !tbaa !9
  br label %255

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

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

149:                                              ; preds = %146
  %150 = load i32, ptr %72, 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 %65, 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 %75, 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 %72, 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 %67, 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 %335

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 %64, align 4, !tbaa !9
  %284 = load i32, ptr %64, 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 %324

288:                                              ; preds = %279
  %289 = load ptr, ptr %21, align 8, !tbaa !5
  %290 = load ptr, ptr %24, align 8, !tbaa !5
  %291 = call i32 @ilaenv2stage_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef %289, ptr noundef %290, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1)
  store i32 %291, ptr %69, align 4, !tbaa !9
  %292 = load ptr, ptr %21, align 8, !tbaa !5
  %293 = load ptr, ptr %24, align 8, !tbaa !5
  %294 = call i32 @ilaenv2stage_(ptr noundef @c__2, ptr noundef @.str.6, ptr noundef %292, ptr noundef %293, ptr noundef %69, ptr noundef @c_n1, ptr noundef @c_n1)
  store i32 %294, ptr %68, align 4, !tbaa !9
  %295 = load ptr, ptr %21, align 8, !tbaa !5
  %296 = load ptr, ptr %24, align 8, !tbaa !5
  %297 = call i32 @ilaenv2stage_(ptr noundef @c__3, ptr noundef @.str.6, ptr noundef %295, ptr noundef %296, ptr noundef %69, ptr noundef %68, ptr noundef @c_n1)
  store i32 %297, ptr %63, align 4, !tbaa !9
  %298 = load ptr, ptr %21, align 8, !tbaa !5
  %299 = load ptr, ptr %24, align 8, !tbaa !5
  %300 = call i32 @ilaenv2stage_(ptr noundef @c__4, ptr noundef @.str.6, ptr noundef %298, ptr noundef %299, ptr noundef %69, ptr noundef %68, ptr noundef @c_n1)
  store i32 %300, ptr %66, align 4, !tbaa !9
  %301 = load ptr, ptr %24, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  %303 = shl i32 %302, 3
  store i32 %303, ptr %45, align 4, !tbaa !9
  %304 = load ptr, ptr %24, align 8, !tbaa !5
  %305 = load i32, ptr %304, align 4, !tbaa !9
  %306 = mul nsw i32 %305, 3
  %307 = load i32, ptr %63, align 4, !tbaa !9
  %308 = add nsw i32 %306, %307
  %309 = load i32, ptr %66, align 4, !tbaa !9
  %310 = add nsw i32 %308, %309
  store i32 %310, ptr %46, align 4, !tbaa !9
  %311 = load i32, ptr %45, align 4, !tbaa !9
  %312 = load i32, ptr %46, align 4, !tbaa !9
  %313 = icmp sge i32 %311, %312
  br i1 %313, label %314, label %316

314:                                              ; preds = %288
  %315 = load i32, ptr %45, align 4, !tbaa !9
  br label %318

316:                                              ; preds = %288
  %317 = load i32, ptr %46, align 4, !tbaa !9
  br label %318

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

324:                                              ; preds = %318, %283
  %325 = load ptr, ptr %37, align 8, !tbaa !5
  %326 = load i32, ptr %325, align 4, !tbaa !9
  %327 = load i32, ptr %64, align 4, !tbaa !9
  %328 = icmp slt i32 %326, %327
  br i1 %328, label %329, label %334

329:                                              ; preds = %324
  %330 = load i32, ptr %88, align 4, !tbaa !9
  %331 = icmp ne i32 %330, 0
  br i1 %331, label %334, label %332

332:                                              ; preds = %329
  %333 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -17, ptr %333, align 4, !tbaa !9
  br label %334

334:                                              ; preds = %332, %329, %324
  br label %335

335:                                              ; preds = %334, %275
  %336 = load ptr, ptr %40, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 4, !tbaa !9
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %344

339:                                              ; preds = %335
  %340 = load ptr, ptr %40, align 8, !tbaa !5
  %341 = load i32, ptr %340, align 4, !tbaa !9
  %342 = sub nsw i32 0, %341
  store i32 %342, ptr %45, align 4, !tbaa !9
  %343 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %45, i32 noundef 13)
  store i32 1, ptr %94, align 4
  br label %1030

344:                                              ; preds = %335
  %345 = load i32, ptr %88, align 4, !tbaa !9
  %346 = icmp ne i32 %345, 0
  br i1 %346, label %347, label %348

347:                                              ; preds = %344
  store i32 1, ptr %94, align 4
  br label %1030

348:                                              ; preds = %344
  br label %349

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

354:                                              ; preds = %349
  store i32 1, ptr %94, align 4
  br label %1030

355:                                              ; preds = %349
  %356 = load ptr, ptr %24, align 8, !tbaa !5
  %357 = load i32, ptr %356, align 4, !tbaa !9
  %358 = icmp eq i32 %357, 1
  br i1 %358, label %359, label %416

359:                                              ; preds = %355
  %360 = load i32, ptr %71, align 4, !tbaa !9
  %361 = icmp ne i32 %360, 0
  br i1 %361, label %365, label %362

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

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

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

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

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

405:                                              ; preds = %395, %385, %375
  br label %406

406:                                              ; preds = %405, %365
  %407 = load i32, ptr %67, align 4, !tbaa !9
  %408 = icmp ne i32 %407, 0
  br i1 %408, label %409, label %415

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

415:                                              ; preds = %409, %406
  store i32 1, ptr %94, align 4
  br label %1030

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

441:                                              ; preds = %416
  %442 = load float, ptr %47, align 4, !tbaa !11
  br label %445

443:                                              ; preds = %416
  %444 = load float, ptr %48, align 4, !tbaa !11
  br label %445

445:                                              ; preds = %443, %441
  %446 = phi float [ %442, %441 ], [ %444, %443 ]
  store float %446, ptr %54, align 4, !tbaa !11
  store i32 0, ptr %73, align 4, !tbaa !9
  %447 = load ptr, ptr %31, align 8, !tbaa !5
  %448 = load float, ptr %447, align 4, !tbaa !11
  store float %448, ptr %77, align 4, !tbaa !11
  %449 = load i32, ptr %75, align 4, !tbaa !9
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %451, label %456

451:                                              ; preds = %445
  %452 = load ptr, ptr %27, align 8, !tbaa !5
  %453 = load float, ptr %452, align 4, !tbaa !11
  store float %453, ptr %90, align 4, !tbaa !11
  %454 = load ptr, ptr %28, align 8, !tbaa !5
  %455 = load float, ptr %454, align 4, !tbaa !11
  store float %455, ptr %91, align 4, !tbaa !11
  br label %456

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

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

473:                                              ; preds = %469
  store i32 1, ptr %73, align 4, !tbaa !9
  %474 = load float, ptr %53, align 4, !tbaa !11
  %475 = load float, ptr %51, align 4, !tbaa !11
  %476 = fdiv float %474, %475
  store float %476, ptr %60, align 4, !tbaa !11
  br label %486

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

481:                                              ; preds = %477
  store i32 1, ptr %73, align 4, !tbaa !9
  %482 = load float, ptr %54, align 4, !tbaa !11
  %483 = load float, ptr %51, align 4, !tbaa !11
  %484 = fdiv float %482, %483
  store float %484, ptr %60, align 4, !tbaa !11
  br label %485

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

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

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

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

495:                                              ; preds = %513, %492
  %496 = load i32, ptr %58, align 4, !tbaa !9
  %497 = load i32, ptr %45, align 4, !tbaa !9
  %498 = icmp sle i32 %496, %497
  br i1 %498, label %499, label %516

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

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

516:                                              ; preds = %495
  br label %536

517:                                              ; preds = %489
  %518 = load ptr, ptr %24, align 8, !tbaa !5
  %519 = load i32, ptr %518, align 4, !tbaa !9
  store i32 %519, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %520

520:                                              ; preds = %532, %517
  %521 = load i32, ptr %58, align 4, !tbaa !9
  %522 = load i32, ptr %45, align 4, !tbaa !9
  %523 = icmp sle i32 %521, %522
  br i1 %523, label %524, label %535

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

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

535:                                              ; preds = %520
  br label %536

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

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

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

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

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

558:                                              ; preds = %557, %486
  store i32 1, ptr %79, align 4, !tbaa !9
  %559 = load i32, ptr %79, align 4, !tbaa !9
  %560 = load ptr, ptr %24, align 8, !tbaa !5
  %561 = load i32, ptr %560, align 4, !tbaa !9
  %562 = add nsw i32 %559, %561
  store i32 %562, ptr %50, align 4, !tbaa !9
  %563 = load i32, ptr %50, align 4, !tbaa !9
  %564 = load ptr, ptr %24, align 8, !tbaa !5
  %565 = load i32, ptr %564, align 4, !tbaa !9
  %566 = add nsw i32 %563, %565
  store i32 %566, ptr %49, align 4, !tbaa !9
  %567 = load i32, ptr %49, align 4, !tbaa !9
  %568 = load ptr, ptr %24, align 8, !tbaa !5
  %569 = load i32, ptr %568, align 4, !tbaa !9
  %570 = add nsw i32 %567, %569
  store i32 %570, ptr %92, align 4, !tbaa !9
  %571 = load i32, ptr %92, align 4, !tbaa !9
  %572 = load i32, ptr %63, align 4, !tbaa !9
  %573 = add nsw i32 %571, %572
  store i32 %573, ptr %83, 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 %83, align 4, !tbaa !9
  %577 = sub nsw i32 %575, %576
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr %85, align 4, !tbaa !9
  %579 = load ptr, ptr %21, align 8, !tbaa !5
  %580 = load ptr, ptr %23, align 8, !tbaa !5
  %581 = load ptr, ptr %24, align 8, !tbaa !5
  %582 = load ptr, ptr %25, align 8, !tbaa !5
  %583 = load i32, ptr %42, align 4, !tbaa !9
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds float, ptr %582, i64 %584
  %586 = load ptr, ptr %26, align 8, !tbaa !5
  %587 = load ptr, ptr %36, align 8, !tbaa !5
  %588 = load i32, ptr %49, align 4, !tbaa !9
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds float, ptr %587, i64 %589
  %591 = load ptr, ptr %36, align 8, !tbaa !5
  %592 = load i32, ptr %50, align 4, !tbaa !9
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds float, ptr %591, i64 %593
  %595 = load ptr, ptr %36, align 8, !tbaa !5
  %596 = load i32, ptr %79, align 4, !tbaa !9
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds float, ptr %595, i64 %597
  %599 = load ptr, ptr %36, align 8, !tbaa !5
  %600 = load i32, ptr %92, align 4, !tbaa !9
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds float, ptr %599, i64 %601
  %603 = load ptr, ptr %36, align 8, !tbaa !5
  %604 = load i32, ptr %83, align 4, !tbaa !9
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds float, ptr %603, i64 %605
  call void @ssytrd_2stage_(ptr noundef %579, ptr noundef %580, ptr noundef %581, ptr noundef %585, ptr noundef %586, ptr noundef %590, ptr noundef %594, ptr noundef %598, ptr noundef %602, ptr noundef %63, ptr noundef %606, ptr noundef %85, ptr noundef %61)
  store i32 0, ptr %55, align 4, !tbaa !9
  %607 = load i32, ptr %72, align 4, !tbaa !9
  %608 = icmp ne i32 %607, 0
  br i1 %608, label %609, label %621

609:                                              ; preds = %558
  %610 = load ptr, ptr %29, align 8, !tbaa !5
  %611 = load i32, ptr %610, align 4, !tbaa !9
  %612 = icmp eq i32 %611, 1
  br i1 %612, label %613, label %620

613:                                              ; preds = %609
  %614 = load ptr, ptr %30, align 8, !tbaa !5
  %615 = load i32, ptr %614, align 4, !tbaa !9
  %616 = load ptr, ptr %24, align 8, !tbaa !5
  %617 = load i32, ptr %616, align 4, !tbaa !9
  %618 = icmp eq i32 %615, %617
  br i1 %618, label %619, label %620

619:                                              ; preds = %613
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %620

620:                                              ; preds = %619, %613, %609
  br label %621

621:                                              ; preds = %620, %558
  %622 = load i32, ptr %71, align 4, !tbaa !9
  %623 = icmp ne i32 %622, 0
  br i1 %623, label %627, label %624

624:                                              ; preds = %621
  %625 = load i32, ptr %55, align 4, !tbaa !9
  %626 = icmp ne i32 %625, 0
  br i1 %626, label %627, label %753

627:                                              ; preds = %624, %621
  %628 = load ptr, ptr %31, align 8, !tbaa !5
  %629 = load float, ptr %628, align 4, !tbaa !11
  %630 = fcmp ole float %629, 0.000000e+00
  br i1 %630, label %631, label %753

631:                                              ; preds = %627
  %632 = load ptr, ptr %24, align 8, !tbaa !5
  %633 = load ptr, ptr %36, align 8, !tbaa !5
  %634 = load i32, ptr %49, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds float, ptr %633, i64 %635
  %637 = load ptr, ptr %33, align 8, !tbaa !5
  %638 = getelementptr inbounds float, ptr %637, i64 1
  call void @scopy_(ptr noundef %632, ptr noundef %636, ptr noundef @c__1, ptr noundef %638, ptr noundef @c__1)
  %639 = load i32, ptr %83, align 4, !tbaa !9
  %640 = load ptr, ptr %24, align 8, !tbaa !5
  %641 = load i32, ptr %640, align 4, !tbaa !9
  %642 = shl i32 %641, 1
  %643 = add nsw i32 %639, %642
  store i32 %643, ptr %59, align 4, !tbaa !9
  %644 = load i32, ptr %67, align 4, !tbaa !9
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %666, label %646

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

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

726:                                              ; preds = %666
  %727 = load ptr, ptr %24, align 8, !tbaa !5
  %728 = load i32, ptr %727, align 4, !tbaa !9
  store i32 %728, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %729

729:                                              ; preds = %738, %726
  %730 = load i32, ptr %57, align 4, !tbaa !9
  %731 = load i32, ptr %45, align 4, !tbaa !9
  %732 = icmp sle i32 %730, %731
  br i1 %732, label %733, label %741

733:                                              ; preds = %729
  %734 = load ptr, ptr %39, align 8, !tbaa !5
  %735 = load i32, ptr %57, align 4, !tbaa !9
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds i32, ptr %734, i64 %736
  store i32 0, ptr %737, align 4, !tbaa !9
  br label %738

738:                                              ; preds = %733
  %739 = load i32, ptr %57, align 4, !tbaa !9
  %740 = add nsw i32 %739, 1
  store i32 %740, ptr %57, align 4, !tbaa !9
  br label %729, !llvm.loop !16

741:                                              ; preds = %729
  br label %742

742:                                              ; preds = %741, %666
  br label %743

743:                                              ; preds = %742, %646
  %744 = load ptr, ptr %40, align 8, !tbaa !5
  %745 = load i32, ptr %744, align 4, !tbaa !9
  %746 = icmp eq i32 %745, 0
  br i1 %746, label %747, label %751

747:                                              ; preds = %743
  %748 = load ptr, ptr %24, align 8, !tbaa !5
  %749 = load i32, ptr %748, align 4, !tbaa !9
  %750 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 %749, ptr %750, align 4, !tbaa !9
  br label %869

751:                                              ; preds = %743
  %752 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %752, align 4, !tbaa !9
  br label %753

753:                                              ; preds = %751, %627, %624
  %754 = load i32, ptr %67, align 4, !tbaa !9
  %755 = icmp ne i32 %754, 0
  br i1 %755, label %756, label %758

756:                                              ; preds = %753
  %757 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  store i8 66, ptr %757, align 1, !tbaa !17
  br label %760

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

760:                                              ; preds = %758, %756
  store i32 1, ptr %74, align 4, !tbaa !9
  %761 = load i32, ptr %74, align 4, !tbaa !9
  %762 = load ptr, ptr %24, align 8, !tbaa !5
  %763 = load i32, ptr %762, align 4, !tbaa !9
  %764 = add nsw i32 %761, %763
  store i32 %764, ptr %80, align 4, !tbaa !9
  %765 = load i32, ptr %80, align 4, !tbaa !9
  %766 = load ptr, ptr %24, align 8, !tbaa !5
  %767 = load i32, ptr %766, align 4, !tbaa !9
  %768 = add nsw i32 %765, %767
  store i32 %768, ptr %81, align 4, !tbaa !9
  %769 = load ptr, ptr %22, align 8, !tbaa !5
  %770 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  %771 = load ptr, ptr %24, align 8, !tbaa !5
  %772 = load ptr, ptr %29, align 8, !tbaa !5
  %773 = load ptr, ptr %30, align 8, !tbaa !5
  %774 = load ptr, ptr %36, align 8, !tbaa !5
  %775 = load i32, ptr %49, align 4, !tbaa !9
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds float, ptr %774, i64 %776
  %778 = load ptr, ptr %36, align 8, !tbaa !5
  %779 = load i32, ptr %50, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds float, ptr %778, i64 %780
  %782 = load ptr, ptr %32, align 8, !tbaa !5
  %783 = load ptr, ptr %33, align 8, !tbaa !5
  %784 = getelementptr inbounds float, ptr %783, i64 1
  %785 = load ptr, ptr %38, align 8, !tbaa !5
  %786 = load i32, ptr %74, align 4, !tbaa !9
  %787 = sext i32 %786 to i64
  %788 = getelementptr inbounds i32, ptr %785, i64 %787
  %789 = load ptr, ptr %38, align 8, !tbaa !5
  %790 = load i32, ptr %80, align 4, !tbaa !9
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds i32, ptr %789, i64 %791
  %793 = load ptr, ptr %36, align 8, !tbaa !5
  %794 = load i32, ptr %83, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds float, ptr %793, i64 %795
  %797 = load ptr, ptr %38, align 8, !tbaa !5
  %798 = load i32, ptr %81, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds i32, ptr %797, i64 %799
  %801 = load ptr, ptr %40, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %769, ptr noundef %770, ptr noundef %771, ptr noundef %90, ptr noundef %91, ptr noundef %772, ptr noundef %773, ptr noundef %77, ptr noundef %777, ptr noundef %781, ptr noundef %782, ptr noundef %86, ptr noundef %784, ptr noundef %788, ptr noundef %792, ptr noundef %796, ptr noundef %800, ptr noundef %801)
  %802 = load i32, ptr %67, align 4, !tbaa !9
  %803 = icmp ne i32 %802, 0
  br i1 %803, label %804, label %868

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

868:                                              ; preds = %804, %760
  br label %869

869:                                              ; preds = %868, %747
  %870 = load i32, ptr %73, align 4, !tbaa !9
  %871 = icmp eq i32 %870, 1
  br i1 %871, label %872, label %888

872:                                              ; preds = %869
  %873 = load ptr, ptr %40, align 8, !tbaa !5
  %874 = load i32, ptr %873, align 4, !tbaa !9
  %875 = icmp eq i32 %874, 0
  br i1 %875, label %876, label %879

876:                                              ; preds = %872
  %877 = load ptr, ptr %32, align 8, !tbaa !5
  %878 = load i32, ptr %877, align 4, !tbaa !9
  store i32 %878, ptr %52, align 4, !tbaa !9
  br label %883

879:                                              ; preds = %872
  %880 = load ptr, ptr %40, align 8, !tbaa !5
  %881 = load i32, ptr %880, align 4, !tbaa !9
  %882 = sub nsw i32 %881, 1
  store i32 %882, ptr %52, align 4, !tbaa !9
  br label %883

883:                                              ; preds = %879, %876
  %884 = load float, ptr %60, align 4, !tbaa !11
  %885 = fdiv float 1.000000e+00, %884
  store float %885, ptr %47, align 4, !tbaa !11
  %886 = load ptr, ptr %33, align 8, !tbaa !5
  %887 = getelementptr inbounds float, ptr %886, i64 1
  call void @sscal_(ptr noundef %52, ptr noundef %47, ptr noundef %887, ptr noundef @c__1)
  br label %888

888:                                              ; preds = %883, %869
  %889 = load i32, ptr %67, align 4, !tbaa !9
  %890 = icmp ne i32 %889, 0
  br i1 %890, label %891, label %1025

891:                                              ; preds = %888
  %892 = load ptr, ptr %32, align 8, !tbaa !5
  %893 = load i32, ptr %892, align 4, !tbaa !9
  %894 = sub nsw i32 %893, 1
  store i32 %894, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %895

895:                                              ; preds = %1021, %891
  %896 = load i32, ptr %58, align 4, !tbaa !9
  %897 = load i32, ptr %45, align 4, !tbaa !9
  %898 = icmp sle i32 %896, %897
  br i1 %898, label %899, label %1024

899:                                              ; preds = %895
  store i32 0, ptr %57, align 4, !tbaa !9
  %900 = load ptr, ptr %33, align 8, !tbaa !5
  %901 = load i32, ptr %58, align 4, !tbaa !9
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds float, ptr %900, i64 %902
  %904 = load float, ptr %903, align 4, !tbaa !11
  store float %904, ptr %93, align 4, !tbaa !11
  %905 = load ptr, ptr %32, align 8, !tbaa !5
  %906 = load i32, ptr %905, align 4, !tbaa !9
  store i32 %906, ptr %46, align 4, !tbaa !9
  %907 = load i32, ptr %58, align 4, !tbaa !9
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr %70, align 4, !tbaa !9
  br label %909

909:                                              ; preds = %929, %899
  %910 = load i32, ptr %70, align 4, !tbaa !9
  %911 = load i32, ptr %46, align 4, !tbaa !9
  %912 = icmp sle i32 %910, %911
  br i1 %912, label %913, label %932

913:                                              ; preds = %909
  %914 = load ptr, ptr %33, align 8, !tbaa !5
  %915 = load i32, ptr %70, align 4, !tbaa !9
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds float, ptr %914, i64 %916
  %918 = load float, ptr %917, align 4, !tbaa !11
  %919 = load float, ptr %93, align 4, !tbaa !11
  %920 = fcmp olt float %918, %919
  br i1 %920, label %921, label %928

921:                                              ; preds = %913
  %922 = load i32, ptr %70, align 4, !tbaa !9
  store i32 %922, ptr %57, align 4, !tbaa !9
  %923 = load ptr, ptr %33, align 8, !tbaa !5
  %924 = load i32, ptr %70, align 4, !tbaa !9
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds float, ptr %923, i64 %925
  %927 = load float, ptr %926, align 4, !tbaa !11
  store float %927, ptr %93, align 4, !tbaa !11
  br label %928

928:                                              ; preds = %921, %913
  br label %929

929:                                              ; preds = %928
  %930 = load i32, ptr %70, align 4, !tbaa !9
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr %70, align 4, !tbaa !9
  br label %909, !llvm.loop !18

932:                                              ; preds = %909
  %933 = load i32, ptr %57, align 4, !tbaa !9
  %934 = icmp ne i32 %933, 0
  br i1 %934, label %935, label %1020

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

999:                                              ; preds = %935
  %1000 = load ptr, ptr %39, align 8, !tbaa !5
  %1001 = load i32, ptr %57, 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
  store i32 %1004, ptr %56, align 4, !tbaa !9
  %1005 = load ptr, ptr %39, align 8, !tbaa !5
  %1006 = load i32, ptr %58, align 4, !tbaa !9
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds i32, ptr %1005, i64 %1007
  %1009 = load i32, ptr %1008, align 4, !tbaa !9
  %1010 = load ptr, ptr %39, align 8, !tbaa !5
  %1011 = load i32, ptr %57, 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
  %1014 = load i32, ptr %56, align 4, !tbaa !9
  %1015 = load ptr, ptr %39, align 8, !tbaa !5
  %1016 = load i32, ptr %58, align 4, !tbaa !9
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds i32, ptr %1015, i64 %1017
  store i32 %1014, ptr %1018, align 4, !tbaa !9
  br label %1019

1019:                                             ; preds = %999, %935
  br label %1020

1020:                                             ; preds = %1019, %932
  br label %1021

1021:                                             ; preds = %1020
  %1022 = load i32, ptr %58, align 4, !tbaa !9
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr %58, align 4, !tbaa !9
  br label %895, !llvm.loop !19

1024:                                             ; preds = %895
  br label %1025

1025:                                             ; preds = %1024, %888
  %1026 = load i32, ptr %64, align 4, !tbaa !9
  %1027 = sitofp i32 %1026 to float
  %1028 = load ptr, ptr %36, align 8, !tbaa !5
  %1029 = getelementptr inbounds float, ptr %1028, i64 1
  store float %1027, ptr %1029, align 4, !tbaa !11
  store i32 1, ptr %94, align 4
  br label %1030

1030:                                             ; preds = %1025, %415, %354, %347, %339
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 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 @ilaenv2stage_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

56:                                               ; preds = %20
  %57 = icmp ne i32 %50, 0
  %58 = icmp ne i32 %51, 0
  %or.cond = select i1 %57, i1 true, i1 %58
  %59 = icmp ne i32 %52, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %59
  br i1 %or.cond3, label %60, label %.thread422.sink.split

60:                                               ; preds = %56
  %.not383 = icmp eq i32 %48, 0
  br i1 %.not383, label %61, label %63

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

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

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

69:                                               ; preds = %66
  br i1 %58, label %70, label %75

70:                                               ; preds = %69
  %.not436 = icmp eq i32 %64, 0
  br i1 %.not436, label %84, label %71

71:                                               ; preds = %70
  %72 = load float, ptr %7, align 4, !tbaa !9
  %73 = load float, ptr %6, align 4, !tbaa !9
  %74 = fcmp ugt float %72, %73
  br i1 %74, label %84, label %.thread422.sink.split

75:                                               ; preds = %69
  br i1 %59, label %76, label %84

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

80:                                               ; preds = %76
  %81 = load i32, ptr %9, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %64, i32 %77)
  %82 = icmp slt i32 %81, %.
  %83 = icmp ugt i32 %81, %64
  %or.cond435 = or i1 %82, %83
  br i1 %or.cond435, label %.thread422.sink.split, label %84

84:                                               ; preds = %80, %71, %70, %75
  %.pr = load i32, ptr %19, align 4, !tbaa !5
  %85 = icmp eq i32 %.pr, 0
  br i1 %85, label %86, label %.thread422

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

89:                                               ; preds = %86
  %.not386 = icmp ne i32 %49, 0
  %90 = icmp ult i32 %87, %64
  %or.cond471 = and i1 %.not386, %90
  br i1 %or.cond471, label %.thread422.sink.split, label %.thread

.thread:                                          ; preds = %89
  %91 = icmp ult i32 %64, 2
  br i1 %91, label %105, label %92

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

105:                                              ; preds = %.thread, %92
  %storemerge = phi float [ %104, %92 ], [ 1.000000e+00, %.thread ]
  %.0360 = phi i32 [ %103, %92 ], [ 1, %.thread ]
  store float %storemerge, ptr %15, align 4, !tbaa !9
  %106 = load i32, ptr %16, align 4, !tbaa !5
  %107 = icmp sge i32 %106, %.0360
  %or.cond5 = select i1 %107, i1 true, i1 %54
  br i1 %or.cond5, label %.thread417, label %.thread422.sink.split

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

.thread422.sink.split:                            ; preds = %105, %86, %89, %80, %76, %71, %66, %63, %61, %56, %20
  %.sink = phi i32 [ -1, %20 ], [ -2, %56 ], [ -3, %61 ], [ -4, %63 ], [ -6, %66 ], [ -8, %71 ], [ -9, %76 ], [ -10, %80 ], [ -15, %89 ], [ -15, %86 ], [ -17, %105 ]
  store i32 %.sink, ptr %19, align 4, !tbaa !5
  br label %.thread422

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

111:                                              ; preds = %.thread417
  br i1 %54, label %301, label %112

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

114:                                              ; preds = %112
  %or.cond7 = select i1 %57, i1 true, i1 %59
  br i1 %or.cond7, label %115, label %117

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

117:                                              ; preds = %114
  %118 = load float, ptr %6, align 4, !tbaa !9
  %119 = load float, ptr %4, align 4, !tbaa !9
  %120 = fcmp olt float %118, %119
  br i1 %120, label %121, label %125

121:                                              ; preds = %117
  %122 = load float, ptr %7, align 4, !tbaa !9
  %123 = fcmp ult float %122, %119
  br i1 %123, label %125, label %124

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

.sink.split:                                      ; preds = %115, %124
  %.sink472 = phi float [ %119, %124 ], [ %116, %115 ]
  store float %.sink472, ptr %12, align 4, !tbaa !9
  br label %125

125:                                              ; preds = %.sink.split, %117, %121
  br i1 %.not386, label %126, label %301

126:                                              ; preds = %125
  store float 1.000000e+00, ptr %13, align 4, !tbaa !9
  br label %301

127:                                              ; preds = %112
  %128 = call float @slamch_(ptr noundef nonnull @.str.8) #6
  %129 = call float @slamch_(ptr noundef nonnull @.str.9) #6
  %130 = fdiv float %128, %129
  %131 = fdiv float 1.000000e+00, %130
  %sqrtf = call float @sqrtf(float noundef %130) #3
  %sqrtf389 = call float @sqrtf(float noundef %131) #3
  store float %sqrtf389, ptr %23, align 4, !tbaa !9
  %132 = fpext float %128 to double
  %133 = call double @sqrt(double noundef %132) #6
  %134 = call double @sqrt(double noundef %133) #6
  %135 = fdiv double 1.000000e+00, %134
  %136 = fptrunc double %135 to float
  %137 = fcmp ole float %sqrtf389, %136
  %138 = select i1 %137, float %sqrtf389, float %136
  %139 = load float, ptr %10, align 4, !tbaa !9
  store float %139, ptr %32, align 4, !tbaa !9
  %.not390 = icmp eq i32 %51, 0
  br i1 %.not390, label %143, label %140

140:                                              ; preds = %127
  %141 = load float, ptr %6, align 4, !tbaa !9
  store float %141, ptr %36, align 4, !tbaa !9
  %142 = load float, ptr %7, align 4, !tbaa !9
  store float %142, ptr %37, align 4, !tbaa !9
  br label %143

143:                                              ; preds = %140, %127
  %144 = call float @slansy_(ptr noundef nonnull @.str.10, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %15) #6
  %145 = fcmp ogt float %144, 0.000000e+00
  %146 = fcmp olt float %144, %sqrtf
  %or.cond411 = select i1 %145, i1 %146, i1 false
  br i1 %or.cond411, label %149, label %147

147:                                              ; preds = %143
  %148 = fcmp ogt float %144, %138
  br i1 %148, label %149, label %180

149:                                              ; preds = %147, %143
  %.pn = phi float [ %sqrtf, %143 ], [ %138, %147 ]
  %storemerge437 = fdiv float %.pn, %144
  store float %storemerge437, ptr %26, align 4, !tbaa !9
  %150 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %150, ptr %21, align 4, !tbaa !5
  br i1 %.not383, label %162, label %151

151:                                              ; preds = %149
  store i32 1, ptr %25, align 4, !tbaa !5
  %.not395442 = icmp slt i32 %150, 1
  br i1 %.not395442, label %.loopexit440, label %.lr.ph

.lr.ph:                                           ; preds = %151
  %152 = add i32 %38, 1
  br label %153

153:                                              ; preds = %.lr.ph, %153
  %storemerge394443 = phi i32 [ 1, %.lr.ph ], [ %160, %153 ]
  %154 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %154, %storemerge394443
  %155 = add i32 %reass.sub, 1
  store i32 %155, ptr %22, align 4, !tbaa !5
  %156 = mul i32 %storemerge394443, %152
  %157 = sext i32 %156 to i64
  %158 = getelementptr inbounds float, ptr %40, i64 %157
  call void @sscal_(ptr noundef nonnull %22, ptr noundef nonnull %26, ptr noundef %158, 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
  %.not395.not = icmp slt i32 %159, %161
  br i1 %.not395.not, label %153, label %.loopexit440, !llvm.loop !11

162:                                              ; preds = %149
  %invariant.gep = getelementptr i8, ptr %40, i64 4
  store i32 1, ptr %25, align 4, !tbaa !5
  %.not393444 = icmp slt i32 %150, 1
  br i1 %.not393444, label %.loopexit440, label %.lr.ph446

.lr.ph446:                                        ; preds = %162, %.lr.ph446
  %storemerge392445 = phi i32 [ %166, %.lr.ph446 ], [ 1, %162 ]
  %163 = mul nsw i32 %storemerge392445, %38
  %164 = sext i32 %163 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %164
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %165 = load i32, ptr %25, align 4, !tbaa !5
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr %25, align 4, !tbaa !5
  %167 = load i32, ptr %21, align 4, !tbaa !5
  %.not393.not = icmp slt i32 %165, %167
  br i1 %.not393.not, label %.lr.ph446, label %.loopexit440, !llvm.loop !13

.loopexit440:                                     ; preds = %153, %.lr.ph446, %151, %162
  %168 = load float, ptr %10, align 4, !tbaa !9
  %169 = fcmp ogt float %168, 0.000000e+00
  br i1 %169, label %170, label %173

170:                                              ; preds = %.loopexit440
  %171 = load float, ptr %26, align 4, !tbaa !9
  %172 = fmul float %168, %171
  store float %172, ptr %32, align 4, !tbaa !9
  br label %173

173:                                              ; preds = %170, %.loopexit440
  br i1 %.not390, label %180, label %174

174:                                              ; preds = %173
  %175 = load float, ptr %6, align 4, !tbaa !9
  %176 = load float, ptr %26, align 4, !tbaa !9
  %177 = fmul float %175, %176
  store float %177, ptr %36, align 4, !tbaa !9
  %178 = load float, ptr %7, align 4, !tbaa !9
  %179 = fmul float %176, %178
  store float %179, ptr %37, align 4, !tbaa !9
  br label %180

180:                                              ; preds = %147, %173, %174
  %181 = phi i1 [ true, %173 ], [ true, %174 ], [ false, %147 ]
  %182 = load i32, ptr %3, align 4, !tbaa !5
  %183 = add nsw i32 %182, 1
  %184 = add nsw i32 %183, %182
  %185 = add nsw i32 %184, %182
  %186 = load i32, ptr %29, align 4, !tbaa !5
  %187 = add nsw i32 %185, %186
  %188 = load i32, ptr %16, align 4, !tbaa !5
  %189 = add i32 %188, 1
  %190 = sub i32 %189, %187
  store i32 %190, ptr %34, align 4, !tbaa !5
  %191 = sext i32 %184 to i64
  %192 = getelementptr inbounds float, ptr %45, i64 %191
  %193 = sext i32 %183 to i64
  %194 = getelementptr inbounds float, ptr %45, i64 %193
  %195 = sext i32 %185 to i64
  %196 = getelementptr inbounds float, ptr %45, i64 %195
  %197 = sext i32 %187 to i64
  %198 = getelementptr inbounds float, ptr %45, i64 %197
  call void @ssytrd_2stage_(ptr noundef %0, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %192, ptr noundef nonnull %194, ptr noundef nonnull %15, ptr noundef nonnull %196, ptr noundef nonnull %29, ptr noundef nonnull %198, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %.not396 = icmp eq i32 %52, 0
  br i1 %.not396, label %206, label %199

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

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

206:                                              ; preds = %202, %199, %180
  %207 = phi i1 [ false, %199 ], [ false, %180 ], [ %205, %202 ]
  %or.cond9 = or i1 %57, %207
  br i1 %or.cond9, label %208, label %233

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

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

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

219:                                              ; preds = %211
  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 %198, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %220 = load i32, ptr %3, align 4, !tbaa !5
  %221 = add nsw i32 %220, -1
  store i32 %221, ptr %21, align 4, !tbaa !5
  %222 = sext i32 %214 to i64
  %223 = getelementptr inbounds float, ptr %45, i64 %222
  call void @scopy_(ptr noundef nonnull %21, ptr noundef nonnull %194, ptr noundef nonnull @c__1, ptr noundef nonnull %223, ptr noundef nonnull @c__1) #6
  call void @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %223, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %198, ptr noundef nonnull %19) #6
  %224 = load i32, ptr %19, align 4, !tbaa !5
  %225 = icmp eq i32 %224, 0
  br i1 %225, label %226, label %.thread429

226:                                              ; preds = %219
  %227 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %227, ptr %21, align 4, !tbaa !5
  %.not398447 = icmp slt i32 %227, 1
  br i1 %.not398447, label %.loopexit439, label %.lr.ph449.preheader

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

.loopexit439:                                     ; preds = %.lr.ph449.preheader, %226, %215
  %.pr428 = load i32, ptr %19, align 4, !tbaa !5
  %230 = icmp eq i32 %.pr428, 0
  br i1 %230, label %231, label %.thread429

231:                                              ; preds = %.loopexit439
  %232 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %232, ptr %11, align 4, !tbaa !5
  br label %244

.thread429:                                       ; preds = %219, %.loopexit439
  store i32 0, ptr %19, align 4, !tbaa !5
  br label %233

233:                                              ; preds = %206, %.thread429, %208
  %.413 = select i1 %.not386, i8 66, i8 69
  store i8 %.413, ptr %28, align 1, !tbaa !14
  %234 = load i32, ptr %3, align 4, !tbaa !5
  %235 = add nsw i32 %234, 1
  %236 = add nsw i32 %235, %234
  %237 = sext i32 %235 to i64
  %238 = getelementptr inbounds i32, ptr %46, i64 %237
  %239 = sext i32 %236 to i64
  %240 = getelementptr inbounds i32, ptr %46, i64 %239
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %28, ptr noundef nonnull %3, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %32, ptr noundef nonnull %192, ptr noundef nonnull %194, ptr noundef nonnull %11, ptr noundef nonnull %35, ptr noundef %12, ptr noundef %17, ptr noundef nonnull %238, ptr noundef nonnull %198, ptr noundef nonnull %240, ptr noundef nonnull %19) #6
  br i1 %.not386, label %241, label %244

241:                                              ; preds = %233
  call void @sstein_(ptr noundef nonnull %3, ptr noundef nonnull %192, ptr noundef nonnull %194, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %17, ptr noundef nonnull %238, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %198, ptr noundef nonnull %240, ptr noundef %18, ptr noundef nonnull %19) #6
  %242 = load i32, ptr %16, align 4, !tbaa !5
  %243 = sub i32 %242, %182
  store i32 %243, ptr %33, 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 %194, ptr noundef nonnull %33, ptr noundef nonnull %27) #6
  br label %244

244:                                              ; preds = %233, %241, %231
  br i1 %181, label %245, label %255

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

248:                                              ; preds = %245
  %249 = load i32, ptr %11, align 4, !tbaa !5
  br label %252

250:                                              ; preds = %245
  %251 = add nsw i32 %246, -1
  br label %252

252:                                              ; preds = %250, %248
  %storemerge401 = phi i32 [ %251, %250 ], [ %249, %248 ]
  store i32 %storemerge401, ptr %24, align 4, !tbaa !5
  %253 = load float, ptr %26, align 4, !tbaa !9
  %254 = fdiv float 1.000000e+00, %253
  store float %254, 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 %255

255:                                              ; preds = %252, %244
  br i1 %.not386, label %256, label %.loopexit

256:                                              ; preds = %255
  %257 = load i32, ptr %11, align 4, !tbaa !5
  %258 = add nsw i32 %257, -1
  store i32 %258, ptr %21, align 4, !tbaa !5
  %invariant.gep456 = getelementptr i8, ptr %44, i64 4
  store i32 1, ptr %25, align 4, !tbaa !5
  %.not404460 = icmp slt i32 %257, 2
  br i1 %.not404460, label %.loopexit, label %.lr.ph463

.lr.ph463:                                        ; preds = %256, %._crit_edge.thread
  %storemerge403461 = phi i32 [ %298, %._crit_edge.thread ], [ 1, %256 ]
  %259 = sext i32 %storemerge403461 to i64
  %260 = getelementptr inbounds float, ptr %41, i64 %259
  %261 = load float, ptr %260, align 4, !tbaa !9
  %262 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %262, ptr %22, align 4, !tbaa !5
  %.not405.not450 = icmp slt i32 %storemerge403461, %262
  br i1 %.not405.not450, label %.lr.ph454.preheader, label %._crit_edge.thread

.lr.ph454.preheader:                              ; preds = %.lr.ph463
  %wide.trip.count = sext i32 %262 to i64
  %263 = sub nsw i64 %wide.trip.count, %259
  %xtraiter = and i64 %263, 1
  %264 = add nsw i64 %wide.trip.count, -1
  %265 = icmp eq i64 %264, %259
  br i1 %265, label %._crit_edge.unr-lcssa, label %.lr.ph454.preheader.new

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

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

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

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

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

279:                                              ; preds = %._crit_edge
  %280 = sext i32 %.2.lcssa to i64
  %281 = getelementptr inbounds i32, ptr %46, i64 %280
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = getelementptr inbounds float, ptr %41, i64 %280
  store float %261, ptr %283, align 4, !tbaa !9
  %284 = getelementptr inbounds i32, ptr %46, i64 %259
  %285 = load i32, ptr %284, align 4, !tbaa !5
  store i32 %285, ptr %281, align 4, !tbaa !5
  store float %.1.lcssa, ptr %260, align 4, !tbaa !9
  store i32 %282, ptr %284, align 4, !tbaa !5
  %286 = mul nsw i32 %.2.lcssa, %42
  %287 = sext i32 %286 to i64
  %gep457 = getelementptr float, ptr %invariant.gep456, i64 %287
  %288 = mul nsw i32 %storemerge403461, %42
  %289 = sext i32 %288 to i64
  %gep459 = getelementptr float, ptr %invariant.gep456, i64 %289
  call void @sswap_(ptr noundef nonnull %3, ptr noundef %gep457, ptr noundef nonnull @c__1, ptr noundef %gep459, ptr noundef nonnull @c__1) #6
  %290 = load i32, ptr %19, align 4, !tbaa !5
  %.not407 = icmp eq i32 %290, 0
  %.pre = load i32, ptr %25, align 4, !tbaa !5
  br i1 %.not407, label %._crit_edge.thread, label %291

291:                                              ; preds = %279
  %292 = getelementptr inbounds i32, ptr %47, i64 %280
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = sext i32 %.pre to i64
  %295 = getelementptr inbounds i32, ptr %47, i64 %294
  %296 = load i32, ptr %295, align 4, !tbaa !5
  store i32 %296, ptr %292, align 4, !tbaa !5
  store i32 %293, ptr %295, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph463, %._crit_edge, %291, %279
  %297 = phi i32 [ %storemerge403461, %._crit_edge ], [ %.pre, %291 ], [ %.pre, %279 ], [ %storemerge403461, %.lr.ph463 ]
  %298 = add nsw i32 %297, 1
  store i32 %298, ptr %25, align 4, !tbaa !5
  %299 = load i32, ptr %21, align 4, !tbaa !5
  %.not404.not = icmp slt i32 %297, %299
  br i1 %.not404.not, label %.lr.ph463, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %._crit_edge.thread, %256, %255
  %300 = sitofp i32 %.0360 to float
  store float %300, ptr %15, align 4, !tbaa !9
  br label %301

301:                                              ; preds = %125, %126, %112, %111, %.loopexit, %.thread422
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 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 @ilaenv2stage_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare void @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,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass