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

; 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
@c__1 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @sgees_(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) #0 {
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca float, align 4
  %40 = alloca [1 x i32], align 4
  %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 float, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca float, align 4
  %56 = alloca float, 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 i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca [1 x float], align 4
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca i32, align 4
  store ptr %0, ptr %16, align 8, !tbaa !5
  store ptr %1, ptr %17, align 8, !tbaa !5
  store ptr %2, ptr %18, align 8, !tbaa !5
  store ptr %3, ptr %19, align 8, !tbaa !5
  store ptr %4, ptr %20, align 8, !tbaa !5
  store ptr %5, ptr %21, align 8, !tbaa !5
  store ptr %6, ptr %22, align 8, !tbaa !5
  store ptr %7, ptr %23, align 8, !tbaa !5
  store ptr %8, ptr %24, align 8, !tbaa !5
  store ptr %9, ptr %25, align 8, !tbaa !5
  store ptr %10, ptr %26, align 8, !tbaa !5
  store ptr %11, ptr %27, align 8, !tbaa !5
  store ptr %12, ptr %28, align 8, !tbaa !5
  store ptr %13, ptr %29, align 8, !tbaa !5
  store ptr %14, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  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 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 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
  %71 = load ptr, ptr %21, align 8, !tbaa !5
  %72 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %72, ptr %31, align 4, !tbaa !9
  %73 = load i32, ptr %31, align 4, !tbaa !9
  %74 = mul nsw i32 %73, 1
  %75 = add nsw i32 1, %74
  store i32 %75, ptr %32, align 4, !tbaa !9
  %76 = load i32, ptr %32, align 4, !tbaa !9
  %77 = load ptr, ptr %20, align 8, !tbaa !5
  %78 = sext i32 %76 to i64
  %79 = sub i64 0, %78
  %80 = getelementptr inbounds float, ptr %77, i64 %79
  store ptr %80, ptr %20, align 8, !tbaa !5
  %81 = load ptr, ptr %23, align 8, !tbaa !5
  %82 = getelementptr inbounds float, ptr %81, i32 -1
  store ptr %82, ptr %23, align 8, !tbaa !5
  %83 = load ptr, ptr %24, align 8, !tbaa !5
  %84 = getelementptr inbounds float, ptr %83, i32 -1
  store ptr %84, ptr %24, align 8, !tbaa !5
  %85 = load ptr, ptr %26, align 8, !tbaa !5
  %86 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %86, ptr %33, align 4, !tbaa !9
  %87 = load i32, ptr %33, align 4, !tbaa !9
  %88 = mul nsw i32 %87, 1
  %89 = add nsw i32 1, %88
  store i32 %89, ptr %34, align 4, !tbaa !9
  %90 = load i32, ptr %34, align 4, !tbaa !9
  %91 = load ptr, ptr %25, align 8, !tbaa !5
  %92 = sext i32 %90 to i64
  %93 = sub i64 0, %92
  %94 = getelementptr inbounds float, ptr %91, i64 %93
  store ptr %94, ptr %25, align 8, !tbaa !5
  %95 = load ptr, ptr %27, align 8, !tbaa !5
  %96 = getelementptr inbounds float, ptr %95, i32 -1
  store ptr %96, ptr %27, align 8, !tbaa !5
  %97 = load ptr, ptr %29, align 8, !tbaa !5
  %98 = getelementptr inbounds i32, ptr %97, i32 -1
  store ptr %98, ptr %29, align 8, !tbaa !5
  %99 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 0, ptr %99, align 4, !tbaa !9
  %100 = load ptr, ptr %28, align 8, !tbaa !5
  %101 = load i32, ptr %100, align 4, !tbaa !9
  %102 = icmp eq i32 %101, -1
  %103 = zext i1 %102 to i32
  store i32 %103, ptr %63, align 4, !tbaa !9
  %104 = load ptr, ptr %16, align 8, !tbaa !5
  %105 = call i32 @lsame_(ptr noundef %104, ptr noundef @.str)
  store i32 %105, ptr %64, align 4, !tbaa !9
  %106 = load ptr, ptr %17, align 8, !tbaa !5
  %107 = call i32 @lsame_(ptr noundef %106, ptr noundef @.str.1)
  store i32 %107, ptr %62, align 4, !tbaa !9
  %108 = load i32, ptr %64, align 4, !tbaa !9
  %109 = icmp ne i32 %108, 0
  br i1 %109, label %116, label %110

110:                                              ; preds = %15
  %111 = load ptr, ptr %16, align 8, !tbaa !5
  %112 = call i32 @lsame_(ptr noundef %111, ptr noundef @.str.2)
  %113 = icmp ne i32 %112, 0
  br i1 %113, label %116, label %114

114:                                              ; preds = %110
  %115 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -1, ptr %115, align 4, !tbaa !9
  br label %165

116:                                              ; preds = %110, %15
  %117 = load i32, ptr %62, align 4, !tbaa !9
  %118 = icmp ne i32 %117, 0
  br i1 %118, label %125, label %119

119:                                              ; preds = %116
  %120 = load ptr, ptr %17, align 8, !tbaa !5
  %121 = call i32 @lsame_(ptr noundef %120, ptr noundef @.str.2)
  %122 = icmp ne i32 %121, 0
  br i1 %122, label %125, label %123

123:                                              ; preds = %119
  %124 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -2, ptr %124, align 4, !tbaa !9
  br label %164

125:                                              ; preds = %119, %116
  %126 = load ptr, ptr %19, align 8, !tbaa !5
  %127 = load i32, ptr %126, align 4, !tbaa !9
  %128 = icmp slt i32 %127, 0
  br i1 %128, label %129, label %131

129:                                              ; preds = %125
  %130 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -4, ptr %130, align 4, !tbaa !9
  br label %163

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

137:                                              ; preds = %131
  br label %141

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

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

144:                                              ; preds = %141
  %145 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -6, ptr %145, align 4, !tbaa !9
  br label %162

146:                                              ; preds = %141
  %147 = load ptr, ptr %26, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  %149 = icmp slt i32 %148, 1
  br i1 %149, label %159, label %150

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

153:                                              ; preds = %150
  %154 = load ptr, ptr %26, align 8, !tbaa !5
  %155 = load i32, ptr %154, align 4, !tbaa !9
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = load i32, ptr %156, align 4, !tbaa !9
  %158 = icmp slt i32 %155, %157
  br i1 %158, label %159, label %161

159:                                              ; preds = %153, %146
  %160 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -11, ptr %160, align 4, !tbaa !9
  br label %161

161:                                              ; preds = %159, %153, %150
  br label %162

162:                                              ; preds = %161, %144
  br label %163

163:                                              ; preds = %162, %129
  br label %164

164:                                              ; preds = %163, %123
  br label %165

165:                                              ; preds = %164, %114
  %166 = load ptr, ptr %30, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = icmp eq i32 %167, 0
  br i1 %168, label %169, label %280

169:                                              ; preds = %165
  %170 = load ptr, ptr %19, align 8, !tbaa !5
  %171 = load i32, ptr %170, align 4, !tbaa !9
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %174

173:                                              ; preds = %169
  store i32 1, ptr %58, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %265

174:                                              ; preds = %169
  %175 = load ptr, ptr %19, align 8, !tbaa !5
  %176 = load i32, ptr %175, align 4, !tbaa !9
  %177 = shl i32 %176, 1
  %178 = load ptr, ptr %19, align 8, !tbaa !5
  %179 = load i32, ptr %178, align 4, !tbaa !9
  %180 = load ptr, ptr %19, align 8, !tbaa !5
  %181 = load ptr, ptr %19, align 8, !tbaa !5
  %182 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %180, ptr noundef @c__1, ptr noundef %181, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %183 = mul nsw i32 %179, %182
  %184 = add nsw i32 %177, %183
  store i32 %184, ptr %59, align 4, !tbaa !9
  %185 = load ptr, ptr %19, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = mul nsw i32 %186, 3
  store i32 %187, ptr %58, align 4, !tbaa !9
  %188 = load ptr, ptr %16, align 8, !tbaa !5
  %189 = load ptr, ptr %19, align 8, !tbaa !5
  %190 = load ptr, ptr %19, align 8, !tbaa !5
  %191 = load ptr, ptr %20, align 8, !tbaa !5
  %192 = load i32, ptr %32, align 4, !tbaa !9
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds float, ptr %191, i64 %193
  %195 = load ptr, ptr %21, align 8, !tbaa !5
  %196 = load ptr, ptr %23, align 8, !tbaa !5
  %197 = getelementptr inbounds float, ptr %196, i64 1
  %198 = load ptr, ptr %24, align 8, !tbaa !5
  %199 = getelementptr inbounds float, ptr %198, i64 1
  %200 = load ptr, ptr %25, align 8, !tbaa !5
  %201 = load i32, ptr %34, align 4, !tbaa !9
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds float, ptr %200, i64 %202
  %204 = load ptr, ptr %26, align 8, !tbaa !5
  %205 = load ptr, ptr %27, align 8, !tbaa !5
  %206 = getelementptr inbounds float, ptr %205, i64 1
  call void @shseqr_(ptr noundef @.str.1, ptr noundef %188, ptr noundef %189, ptr noundef @c__1, ptr noundef %190, ptr noundef %194, ptr noundef %195, ptr noundef %197, ptr noundef %199, ptr noundef %203, ptr noundef %204, ptr noundef %206, ptr noundef @c_n1, ptr noundef %48)
  %207 = load ptr, ptr %27, align 8, !tbaa !5
  %208 = getelementptr inbounds float, ptr %207, i64 1
  %209 = load float, ptr %208, align 4, !tbaa !11
  %210 = fptosi float %209 to i32
  store i32 %210, ptr %61, align 4, !tbaa !9
  %211 = load i32, ptr %64, align 4, !tbaa !9
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %228, label %213

213:                                              ; preds = %174
  %214 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %214, ptr %35, align 4, !tbaa !9
  %215 = load ptr, ptr %19, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = load i32, ptr %61, align 4, !tbaa !9
  %218 = add nsw i32 %216, %217
  store i32 %218, ptr %36, align 4, !tbaa !9
  %219 = load i32, ptr %35, align 4, !tbaa !9
  %220 = load i32, ptr %36, align 4, !tbaa !9
  %221 = icmp sge i32 %219, %220
  br i1 %221, label %222, label %224

222:                                              ; preds = %213
  %223 = load i32, ptr %35, align 4, !tbaa !9
  br label %226

224:                                              ; preds = %213
  %225 = load i32, ptr %36, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %224, %222
  %227 = phi i32 [ %223, %222 ], [ %225, %224 ]
  store i32 %227, ptr %59, align 4, !tbaa !9
  br label %264

228:                                              ; preds = %174
  %229 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %229, ptr %35, align 4, !tbaa !9
  %230 = load ptr, ptr %19, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = shl i32 %231, 1
  %233 = load ptr, ptr %19, align 8, !tbaa !5
  %234 = load i32, ptr %233, align 4, !tbaa !9
  %235 = sub nsw i32 %234, 1
  %236 = load ptr, ptr %19, align 8, !tbaa !5
  %237 = load ptr, ptr %19, align 8, !tbaa !5
  %238 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.4, ptr noundef %236, ptr noundef @c__1, ptr noundef %237, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %239 = mul nsw i32 %235, %238
  %240 = add nsw i32 %232, %239
  store i32 %240, ptr %36, align 4, !tbaa !9
  %241 = load i32, ptr %35, align 4, !tbaa !9
  %242 = load i32, ptr %36, align 4, !tbaa !9
  %243 = icmp sge i32 %241, %242
  br i1 %243, label %244, label %246

244:                                              ; preds = %228
  %245 = load i32, ptr %35, align 4, !tbaa !9
  br label %248

246:                                              ; preds = %228
  %247 = load i32, ptr %36, align 4, !tbaa !9
  br label %248

248:                                              ; preds = %246, %244
  %249 = phi i32 [ %245, %244 ], [ %247, %246 ]
  store i32 %249, ptr %59, align 4, !tbaa !9
  %250 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %250, ptr %35, align 4, !tbaa !9
  %251 = load ptr, ptr %19, align 8, !tbaa !5
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = load i32, ptr %61, align 4, !tbaa !9
  %254 = add nsw i32 %252, %253
  store i32 %254, ptr %36, align 4, !tbaa !9
  %255 = load i32, ptr %35, align 4, !tbaa !9
  %256 = load i32, ptr %36, align 4, !tbaa !9
  %257 = icmp sge i32 %255, %256
  br i1 %257, label %258, label %260

258:                                              ; preds = %248
  %259 = load i32, ptr %35, align 4, !tbaa !9
  br label %262

260:                                              ; preds = %248
  %261 = load i32, ptr %36, align 4, !tbaa !9
  br label %262

262:                                              ; preds = %260, %258
  %263 = phi i32 [ %259, %258 ], [ %261, %260 ]
  store i32 %263, ptr %59, align 4, !tbaa !9
  br label %264

264:                                              ; preds = %262, %226
  br label %265

265:                                              ; preds = %264, %173
  %266 = load i32, ptr %59, align 4, !tbaa !9
  %267 = sitofp i32 %266 to float
  %268 = load ptr, ptr %27, align 8, !tbaa !5
  %269 = getelementptr inbounds float, ptr %268, i64 1
  store float %267, ptr %269, align 4, !tbaa !11
  %270 = load ptr, ptr %28, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 4, !tbaa !9
  %272 = load i32, ptr %58, align 4, !tbaa !9
  %273 = icmp slt i32 %271, %272
  br i1 %273, label %274, label %279

274:                                              ; preds = %265
  %275 = load i32, ptr %63, align 4, !tbaa !9
  %276 = icmp ne i32 %275, 0
  br i1 %276, label %279, label %277

277:                                              ; preds = %274
  %278 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -13, ptr %278, align 4, !tbaa !9
  br label %279

279:                                              ; preds = %277, %274, %265
  br label %280

280:                                              ; preds = %279, %165
  %281 = load ptr, ptr %30, align 8, !tbaa !5
  %282 = load i32, ptr %281, align 4, !tbaa !9
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %284, label %289

284:                                              ; preds = %280
  %285 = load ptr, ptr %30, align 8, !tbaa !5
  %286 = load i32, ptr %285, align 4, !tbaa !9
  %287 = sub nsw i32 0, %286
  store i32 %287, ptr %35, align 4, !tbaa !9
  %288 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %35, i32 noundef 5)
  store i32 1, ptr %70, align 4
  br label %918

289:                                              ; preds = %280
  %290 = load i32, ptr %63, align 4, !tbaa !9
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %292, label %293

292:                                              ; preds = %289
  store i32 1, ptr %70, align 4
  br label %918

293:                                              ; preds = %289
  br label %294

294:                                              ; preds = %293
  %295 = load ptr, ptr %19, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  %297 = icmp eq i32 %296, 0
  br i1 %297, label %298, label %300

298:                                              ; preds = %294
  %299 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 0, ptr %299, align 4, !tbaa !9
  store i32 1, ptr %70, align 4
  br label %918

300:                                              ; preds = %294
  %301 = call float @slamch_(ptr noundef @.str.7)
  store float %301, ptr %68, align 4, !tbaa !11
  %302 = call float @slamch_(ptr noundef @.str.1)
  store float %302, ptr %60, align 4, !tbaa !11
  %303 = load float, ptr %60, align 4, !tbaa !11
  %304 = fdiv float 1.000000e+00, %303
  store float %304, ptr %56, align 4, !tbaa !11
  call void @slabad_(ptr noundef %60, ptr noundef %56)
  %305 = load float, ptr %60, align 4, !tbaa !11
  %306 = fpext float %305 to double
  %307 = call double @sqrt(double noundef %306) #4
  %308 = load float, ptr %68, align 4, !tbaa !11
  %309 = fpext float %308 to double
  %310 = fdiv double %307, %309
  %311 = fptrunc double %310 to float
  store float %311, ptr %60, align 4, !tbaa !11
  %312 = load float, ptr %60, align 4, !tbaa !11
  %313 = fdiv float 1.000000e+00, %312
  store float %313, ptr %56, align 4, !tbaa !11
  %314 = load ptr, ptr %19, align 8, !tbaa !5
  %315 = load ptr, ptr %19, align 8, !tbaa !5
  %316 = load ptr, ptr %20, align 8, !tbaa !5
  %317 = load i32, ptr %32, align 4, !tbaa !9
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds float, ptr %316, i64 %318
  %320 = load ptr, ptr %21, align 8, !tbaa !5
  %321 = getelementptr inbounds [1 x float], ptr %67, i64 0, i64 0
  %322 = call float @slange_(ptr noundef @.str.8, ptr noundef %314, ptr noundef %315, ptr noundef %319, ptr noundef %320, ptr noundef %321)
  store float %322, ptr %39, align 4, !tbaa !11
  store i32 0, ptr %53, align 4, !tbaa !9
  %323 = load float, ptr %39, align 4, !tbaa !11
  %324 = fcmp ogt float %323, 0.000000e+00
  br i1 %324, label %325, label %331

325:                                              ; preds = %300
  %326 = load float, ptr %39, align 4, !tbaa !11
  %327 = load float, ptr %60, align 4, !tbaa !11
  %328 = fcmp olt float %326, %327
  br i1 %328, label %329, label %331

329:                                              ; preds = %325
  store i32 1, ptr %53, align 4, !tbaa !9
  %330 = load float, ptr %60, align 4, !tbaa !11
  store float %330, ptr %55, align 4, !tbaa !11
  br label %338

331:                                              ; preds = %325, %300
  %332 = load float, ptr %39, align 4, !tbaa !11
  %333 = load float, ptr %56, align 4, !tbaa !11
  %334 = fcmp ogt float %332, %333
  br i1 %334, label %335, label %337

335:                                              ; preds = %331
  store i32 1, ptr %53, align 4, !tbaa !9
  %336 = load float, ptr %56, align 4, !tbaa !11
  store float %336, ptr %55, align 4, !tbaa !11
  br label %337

337:                                              ; preds = %335, %331
  br label %338

338:                                              ; preds = %337, %329
  %339 = load i32, ptr %53, align 4, !tbaa !9
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %341, label %349

341:                                              ; preds = %338
  %342 = load ptr, ptr %19, align 8, !tbaa !5
  %343 = load ptr, ptr %19, align 8, !tbaa !5
  %344 = load ptr, ptr %20, align 8, !tbaa !5
  %345 = load i32, ptr %32, align 4, !tbaa !9
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds float, ptr %344, i64 %346
  %348 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %39, ptr noundef %55, ptr noundef %342, ptr noundef %343, ptr noundef %347, ptr noundef %348, ptr noundef %41)
  br label %349

349:                                              ; preds = %341, %338
  store i32 1, ptr %38, align 4, !tbaa !9
  %350 = load ptr, ptr %19, align 8, !tbaa !5
  %351 = load ptr, ptr %20, align 8, !tbaa !5
  %352 = load i32, ptr %32, align 4, !tbaa !9
  %353 = sext i32 %352 to i64
  %354 = getelementptr inbounds float, ptr %351, i64 %353
  %355 = load ptr, ptr %21, align 8, !tbaa !5
  %356 = load ptr, ptr %27, align 8, !tbaa !5
  %357 = load i32, ptr %38, align 4, !tbaa !9
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds float, ptr %356, i64 %358
  call void @sgebal_(ptr noundef @.str.7, ptr noundef %350, ptr noundef %354, ptr noundef %355, ptr noundef %66, ptr noundef %65, ptr noundef %359, ptr noundef %41)
  %360 = load ptr, ptr %19, align 8, !tbaa !5
  %361 = load i32, ptr %360, align 4, !tbaa !9
  %362 = load i32, ptr %38, align 4, !tbaa !9
  %363 = add nsw i32 %361, %362
  store i32 %363, ptr %42, align 4, !tbaa !9
  %364 = load ptr, ptr %19, align 8, !tbaa !5
  %365 = load i32, ptr %364, align 4, !tbaa !9
  %366 = load i32, ptr %42, align 4, !tbaa !9
  %367 = add nsw i32 %365, %366
  store i32 %367, ptr %43, align 4, !tbaa !9
  %368 = load ptr, ptr %28, align 8, !tbaa !5
  %369 = load i32, ptr %368, align 4, !tbaa !9
  %370 = load i32, ptr %43, align 4, !tbaa !9
  %371 = sub nsw i32 %369, %370
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr %35, align 4, !tbaa !9
  %373 = load ptr, ptr %19, align 8, !tbaa !5
  %374 = load ptr, ptr %20, align 8, !tbaa !5
  %375 = load i32, ptr %32, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds float, ptr %374, i64 %376
  %378 = load ptr, ptr %21, align 8, !tbaa !5
  %379 = load ptr, ptr %27, align 8, !tbaa !5
  %380 = load i32, ptr %42, align 4, !tbaa !9
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds float, ptr %379, i64 %381
  %383 = load ptr, ptr %27, align 8, !tbaa !5
  %384 = load i32, ptr %43, align 4, !tbaa !9
  %385 = sext i32 %384 to i64
  %386 = getelementptr inbounds float, ptr %383, i64 %385
  call void @sgehrd_(ptr noundef %373, ptr noundef %66, ptr noundef %65, ptr noundef %377, ptr noundef %378, ptr noundef %382, ptr noundef %386, ptr noundef %35, ptr noundef %41)
  %387 = load i32, ptr %64, align 4, !tbaa !9
  %388 = icmp ne i32 %387, 0
  br i1 %388, label %389, label %421

389:                                              ; preds = %349
  %390 = load ptr, ptr %19, align 8, !tbaa !5
  %391 = load ptr, ptr %19, align 8, !tbaa !5
  %392 = load ptr, ptr %20, align 8, !tbaa !5
  %393 = load i32, ptr %32, align 4, !tbaa !9
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds float, ptr %392, i64 %394
  %396 = load ptr, ptr %21, align 8, !tbaa !5
  %397 = load ptr, ptr %25, align 8, !tbaa !5
  %398 = load i32, ptr %34, align 4, !tbaa !9
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds float, ptr %397, i64 %399
  %401 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.10, ptr noundef %390, ptr noundef %391, ptr noundef %395, ptr noundef %396, ptr noundef %400, ptr noundef %401)
  %402 = load ptr, ptr %28, align 8, !tbaa !5
  %403 = load i32, ptr %402, align 4, !tbaa !9
  %404 = load i32, ptr %43, align 4, !tbaa !9
  %405 = sub nsw i32 %403, %404
  %406 = add nsw i32 %405, 1
  store i32 %406, ptr %35, align 4, !tbaa !9
  %407 = load ptr, ptr %19, align 8, !tbaa !5
  %408 = load ptr, ptr %25, align 8, !tbaa !5
  %409 = load i32, ptr %34, align 4, !tbaa !9
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds float, ptr %408, i64 %410
  %412 = load ptr, ptr %26, align 8, !tbaa !5
  %413 = load ptr, ptr %27, align 8, !tbaa !5
  %414 = load i32, ptr %42, align 4, !tbaa !9
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds float, ptr %413, i64 %415
  %417 = load ptr, ptr %27, align 8, !tbaa !5
  %418 = load i32, ptr %43, align 4, !tbaa !9
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %417, i64 %419
  call void @sorghr_(ptr noundef %407, ptr noundef %66, ptr noundef %65, ptr noundef %411, ptr noundef %412, ptr noundef %416, ptr noundef %420, ptr noundef %35, ptr noundef %41)
  br label %421

421:                                              ; preds = %389, %349
  %422 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 0, ptr %422, align 4, !tbaa !9
  %423 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %423, ptr %43, align 4, !tbaa !9
  %424 = load ptr, ptr %28, align 8, !tbaa !5
  %425 = load i32, ptr %424, align 4, !tbaa !9
  %426 = load i32, ptr %43, align 4, !tbaa !9
  %427 = sub nsw i32 %425, %426
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr %35, align 4, !tbaa !9
  %429 = load ptr, ptr %16, align 8, !tbaa !5
  %430 = load ptr, ptr %19, align 8, !tbaa !5
  %431 = load ptr, ptr %20, align 8, !tbaa !5
  %432 = load i32, ptr %32, align 4, !tbaa !9
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds float, ptr %431, i64 %433
  %435 = load ptr, ptr %21, align 8, !tbaa !5
  %436 = load ptr, ptr %23, align 8, !tbaa !5
  %437 = getelementptr inbounds float, ptr %436, i64 1
  %438 = load ptr, ptr %24, align 8, !tbaa !5
  %439 = getelementptr inbounds float, ptr %438, i64 1
  %440 = load ptr, ptr %25, align 8, !tbaa !5
  %441 = load i32, ptr %34, align 4, !tbaa !9
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds float, ptr %440, i64 %442
  %444 = load ptr, ptr %26, align 8, !tbaa !5
  %445 = load ptr, ptr %27, align 8, !tbaa !5
  %446 = load i32, ptr %43, align 4, !tbaa !9
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds float, ptr %445, i64 %447
  call void @shseqr_(ptr noundef @.str.1, ptr noundef %429, ptr noundef %430, ptr noundef %66, ptr noundef %65, ptr noundef %434, ptr noundef %435, ptr noundef %437, ptr noundef %439, ptr noundef %443, ptr noundef %444, ptr noundef %448, ptr noundef %35, ptr noundef %48)
  %449 = load i32, ptr %48, align 4, !tbaa !9
  %450 = icmp sgt i32 %449, 0
  br i1 %450, label %451, label %454

451:                                              ; preds = %421
  %452 = load i32, ptr %48, align 4, !tbaa !9
  %453 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 %452, ptr %453, align 4, !tbaa !9
  br label %454

454:                                              ; preds = %451, %421
  %455 = load i32, ptr %62, align 4, !tbaa !9
  %456 = icmp ne i32 %455, 0
  br i1 %456, label %457, label %537

457:                                              ; preds = %454
  %458 = load ptr, ptr %30, align 8, !tbaa !5
  %459 = load i32, ptr %458, align 4, !tbaa !9
  %460 = icmp eq i32 %459, 0
  br i1 %460, label %461, label %537

461:                                              ; preds = %457
  %462 = load i32, ptr %53, align 4, !tbaa !9
  %463 = icmp ne i32 %462, 0
  br i1 %463, label %464, label %473

464:                                              ; preds = %461
  %465 = load ptr, ptr %19, align 8, !tbaa !5
  %466 = load ptr, ptr %23, align 8, !tbaa !5
  %467 = getelementptr inbounds float, ptr %466, i64 1
  %468 = load ptr, ptr %19, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %39, ptr noundef %465, ptr noundef @c__1, ptr noundef %467, ptr noundef %468, ptr noundef %41)
  %469 = load ptr, ptr %19, align 8, !tbaa !5
  %470 = load ptr, ptr %24, align 8, !tbaa !5
  %471 = getelementptr inbounds float, ptr %470, i64 1
  %472 = load ptr, ptr %19, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %39, ptr noundef %469, ptr noundef @c__1, ptr noundef %471, ptr noundef %472, ptr noundef %41)
  br label %473

473:                                              ; preds = %464, %461
  %474 = load ptr, ptr %19, align 8, !tbaa !5
  %475 = load i32, ptr %474, align 4, !tbaa !9
  store i32 %475, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %476

476:                                              ; preds = %495, %473
  %477 = load i32, ptr %45, align 4, !tbaa !9
  %478 = load i32, ptr %35, align 4, !tbaa !9
  %479 = icmp sle i32 %477, %478
  br i1 %479, label %480, label %498

480:                                              ; preds = %476
  %481 = load ptr, ptr %18, align 8, !tbaa !5
  %482 = load ptr, ptr %23, align 8, !tbaa !5
  %483 = load i32, ptr %45, align 4, !tbaa !9
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds float, ptr %482, i64 %484
  %486 = load ptr, ptr %24, align 8, !tbaa !5
  %487 = load i32, ptr %45, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds float, ptr %486, i64 %488
  %490 = call i32 (ptr, ptr, ...) %481(ptr noundef %485, ptr noundef %489)
  %491 = load ptr, ptr %29, align 8, !tbaa !5
  %492 = load i32, ptr %45, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds i32, ptr %491, i64 %493
  store i32 %490, ptr %494, align 4, !tbaa !9
  br label %495

495:                                              ; preds = %480
  %496 = load i32, ptr %45, align 4, !tbaa !9
  %497 = add nsw i32 %496, 1
  store i32 %497, ptr %45, align 4, !tbaa !9
  br label %476, !llvm.loop !13

498:                                              ; preds = %476
  %499 = load ptr, ptr %28, align 8, !tbaa !5
  %500 = load i32, ptr %499, align 4, !tbaa !9
  %501 = load i32, ptr %43, align 4, !tbaa !9
  %502 = sub nsw i32 %500, %501
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr %35, align 4, !tbaa !9
  %504 = load ptr, ptr %16, align 8, !tbaa !5
  %505 = load ptr, ptr %29, align 8, !tbaa !5
  %506 = getelementptr inbounds i32, ptr %505, i64 1
  %507 = load ptr, ptr %19, align 8, !tbaa !5
  %508 = load ptr, ptr %20, align 8, !tbaa !5
  %509 = load i32, ptr %32, align 4, !tbaa !9
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds float, ptr %508, i64 %510
  %512 = load ptr, ptr %21, align 8, !tbaa !5
  %513 = load ptr, ptr %25, align 8, !tbaa !5
  %514 = load i32, ptr %34, align 4, !tbaa !9
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds float, ptr %513, i64 %515
  %517 = load ptr, ptr %26, align 8, !tbaa !5
  %518 = load ptr, ptr %23, align 8, !tbaa !5
  %519 = getelementptr inbounds float, ptr %518, i64 1
  %520 = load ptr, ptr %24, align 8, !tbaa !5
  %521 = getelementptr inbounds float, ptr %520, i64 1
  %522 = load ptr, ptr %22, align 8, !tbaa !5
  %523 = load ptr, ptr %27, align 8, !tbaa !5
  %524 = load i32, ptr %43, align 4, !tbaa !9
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds float, ptr %523, i64 %525
  %527 = getelementptr inbounds [1 x i32], ptr %40, i64 0, i64 0
  call void @strsen_(ptr noundef @.str.2, ptr noundef %504, ptr noundef %506, ptr noundef %507, ptr noundef %511, ptr noundef %512, ptr noundef %516, ptr noundef %517, ptr noundef %519, ptr noundef %521, ptr noundef %522, ptr noundef %46, ptr noundef %69, ptr noundef %526, ptr noundef %35, ptr noundef %527, ptr noundef @c__1, ptr noundef %47)
  %528 = load i32, ptr %47, align 4, !tbaa !9
  %529 = icmp sgt i32 %528, 0
  br i1 %529, label %530, label %536

530:                                              ; preds = %498
  %531 = load ptr, ptr %19, align 8, !tbaa !5
  %532 = load i32, ptr %531, align 4, !tbaa !9
  %533 = load i32, ptr %47, align 4, !tbaa !9
  %534 = add nsw i32 %532, %533
  %535 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 %534, ptr %535, align 4, !tbaa !9
  br label %536

536:                                              ; preds = %530, %498
  br label %537

537:                                              ; preds = %536, %457, %454
  %538 = load i32, ptr %64, align 4, !tbaa !9
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %540, label %552

540:                                              ; preds = %537
  %541 = load ptr, ptr %19, align 8, !tbaa !5
  %542 = load ptr, ptr %27, align 8, !tbaa !5
  %543 = load i32, ptr %38, align 4, !tbaa !9
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds float, ptr %542, i64 %544
  %546 = load ptr, ptr %19, align 8, !tbaa !5
  %547 = load ptr, ptr %25, align 8, !tbaa !5
  %548 = load i32, ptr %34, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds float, ptr %547, i64 %549
  %551 = load ptr, ptr %26, align 8, !tbaa !5
  call void @sgebak_(ptr noundef @.str.7, ptr noundef @.str.11, ptr noundef %541, ptr noundef %66, ptr noundef %65, ptr noundef %545, ptr noundef %546, ptr noundef %550, ptr noundef %551, ptr noundef %41)
  br label %552

552:                                              ; preds = %540, %537
  %553 = load i32, ptr %53, align 4, !tbaa !9
  %554 = icmp ne i32 %553, 0
  br i1 %554, label %555, label %822

555:                                              ; preds = %552
  %556 = load ptr, ptr %19, align 8, !tbaa !5
  %557 = load ptr, ptr %19, align 8, !tbaa !5
  %558 = load ptr, ptr %20, align 8, !tbaa !5
  %559 = load i32, ptr %32, align 4, !tbaa !9
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds float, ptr %558, i64 %560
  %562 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %39, ptr noundef %556, ptr noundef %557, ptr noundef %561, ptr noundef %562, ptr noundef %41)
  %563 = load ptr, ptr %21, align 8, !tbaa !5
  %564 = load i32, ptr %563, align 4, !tbaa !9
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr %35, align 4, !tbaa !9
  %566 = load ptr, ptr %19, align 8, !tbaa !5
  %567 = load ptr, ptr %20, align 8, !tbaa !5
  %568 = load i32, ptr %32, align 4, !tbaa !9
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds float, ptr %567, i64 %569
  %571 = load ptr, ptr %23, align 8, !tbaa !5
  %572 = getelementptr inbounds float, ptr %571, i64 1
  call void @scopy_(ptr noundef %566, ptr noundef %570, ptr noundef %35, ptr noundef %572, ptr noundef @c__1)
  %573 = load float, ptr %55, align 4, !tbaa !11
  %574 = load float, ptr %60, align 4, !tbaa !11
  %575 = fcmp oeq float %573, %574
  br i1 %575, label %576, label %801

576:                                              ; preds = %555
  %577 = load i32, ptr %48, align 4, !tbaa !9
  %578 = icmp sgt i32 %577, 0
  br i1 %578, label %579, label %597

579:                                              ; preds = %576
  %580 = load i32, ptr %48, align 4, !tbaa !9
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr %50, align 4, !tbaa !9
  %582 = load i32, ptr %65, align 4, !tbaa !9
  %583 = sub nsw i32 %582, 1
  store i32 %583, ptr %51, align 4, !tbaa !9
  %584 = load i32, ptr %66, align 4, !tbaa !9
  %585 = sub nsw i32 %584, 1
  store i32 %585, ptr %35, align 4, !tbaa !9
  %586 = load i32, ptr %66, align 4, !tbaa !9
  %587 = sub nsw i32 %586, 1
  store i32 %587, ptr %37, align 4, !tbaa !9
  %588 = load i32, ptr %37, align 4, !tbaa !9
  %589 = icmp sge i32 %588, 1
  br i1 %589, label %590, label %592

590:                                              ; preds = %579
  %591 = load i32, ptr %37, align 4, !tbaa !9
  br label %593

592:                                              ; preds = %579
  br label %593

593:                                              ; preds = %592, %590
  %594 = phi i32 [ %591, %590 ], [ 1, %592 ]
  store i32 %594, ptr %36, align 4, !tbaa !9
  %595 = load ptr, ptr %24, align 8, !tbaa !5
  %596 = getelementptr inbounds float, ptr %595, i64 1
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %39, ptr noundef %35, ptr noundef @c__1, ptr noundef %596, ptr noundef %36, ptr noundef %41)
  br label %609

597:                                              ; preds = %576
  %598 = load i32, ptr %62, align 4, !tbaa !9
  %599 = icmp ne i32 %598, 0
  br i1 %599, label %600, label %604

600:                                              ; preds = %597
  store i32 1, ptr %50, align 4, !tbaa !9
  %601 = load ptr, ptr %19, align 8, !tbaa !5
  %602 = load i32, ptr %601, align 4, !tbaa !9
  %603 = sub nsw i32 %602, 1
  store i32 %603, ptr %51, align 4, !tbaa !9
  br label %608

604:                                              ; preds = %597
  %605 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %605, ptr %50, align 4, !tbaa !9
  %606 = load i32, ptr %65, align 4, !tbaa !9
  %607 = sub nsw i32 %606, 1
  store i32 %607, ptr %51, align 4, !tbaa !9
  br label %608

608:                                              ; preds = %604, %600
  br label %609

609:                                              ; preds = %608, %593
  %610 = load i32, ptr %50, align 4, !tbaa !9
  %611 = sub nsw i32 %610, 1
  store i32 %611, ptr %44, align 4, !tbaa !9
  %612 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %612, ptr %35, align 4, !tbaa !9
  %613 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %613, ptr %45, align 4, !tbaa !9
  br label %614

614:                                              ; preds = %797, %609
  %615 = load i32, ptr %45, align 4, !tbaa !9
  %616 = load i32, ptr %35, align 4, !tbaa !9
  %617 = icmp sle i32 %615, %616
  br i1 %617, label %618, label %800

618:                                              ; preds = %614
  %619 = load i32, ptr %45, align 4, !tbaa !9
  %620 = load i32, ptr %44, align 4, !tbaa !9
  %621 = icmp slt i32 %619, %620
  br i1 %621, label %622, label %623

622:                                              ; preds = %618
  br label %796

623:                                              ; preds = %618
  %624 = load ptr, ptr %24, align 8, !tbaa !5
  %625 = load i32, ptr %45, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds float, ptr %624, i64 %626
  %628 = load float, ptr %627, align 4, !tbaa !11
  %629 = fcmp oeq float %628, 0.000000e+00
  br i1 %629, label %630, label %633

630:                                              ; preds = %623
  %631 = load i32, ptr %45, align 4, !tbaa !9
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %44, align 4, !tbaa !9
  br label %795

633:                                              ; preds = %623
  %634 = load ptr, ptr %20, align 8, !tbaa !5
  %635 = load i32, ptr %45, align 4, !tbaa !9
  %636 = add nsw i32 %635, 1
  %637 = load i32, ptr %45, align 4, !tbaa !9
  %638 = load i32, ptr %31, align 4, !tbaa !9
  %639 = mul nsw i32 %637, %638
  %640 = add nsw i32 %636, %639
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds float, ptr %634, i64 %641
  %643 = load float, ptr %642, align 4, !tbaa !11
  %644 = fcmp oeq float %643, 0.000000e+00
  br i1 %644, label %645, label %655

645:                                              ; preds = %633
  %646 = load ptr, ptr %24, align 8, !tbaa !5
  %647 = load i32, ptr %45, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds float, ptr %646, i64 %648
  store float 0.000000e+00, ptr %649, align 4, !tbaa !11
  %650 = load ptr, ptr %24, align 8, !tbaa !5
  %651 = load i32, ptr %45, align 4, !tbaa !9
  %652 = add nsw i32 %651, 1
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds float, ptr %650, i64 %653
  store float 0.000000e+00, ptr %654, align 4, !tbaa !11
  br label %792

655:                                              ; preds = %633
  %656 = load ptr, ptr %20, align 8, !tbaa !5
  %657 = load i32, ptr %45, align 4, !tbaa !9
  %658 = add nsw i32 %657, 1
  %659 = load i32, ptr %45, align 4, !tbaa !9
  %660 = load i32, ptr %31, align 4, !tbaa !9
  %661 = mul nsw i32 %659, %660
  %662 = add nsw i32 %658, %661
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds float, ptr %656, i64 %663
  %665 = load float, ptr %664, align 4, !tbaa !11
  %666 = fcmp une float %665, 0.000000e+00
  br i1 %666, label %667, label %791

667:                                              ; preds = %655
  %668 = load ptr, ptr %20, align 8, !tbaa !5
  %669 = load i32, ptr %45, align 4, !tbaa !9
  %670 = load i32, ptr %45, align 4, !tbaa !9
  %671 = add nsw i32 %670, 1
  %672 = load i32, ptr %31, align 4, !tbaa !9
  %673 = mul nsw i32 %671, %672
  %674 = add nsw i32 %669, %673
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds float, ptr %668, i64 %675
  %677 = load float, ptr %676, align 4, !tbaa !11
  %678 = fcmp oeq float %677, 0.000000e+00
  br i1 %678, label %679, label %791

679:                                              ; preds = %667
  %680 = load ptr, ptr %24, align 8, !tbaa !5
  %681 = load i32, ptr %45, align 4, !tbaa !9
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds float, ptr %680, i64 %682
  store float 0.000000e+00, ptr %683, align 4, !tbaa !11
  %684 = load ptr, ptr %24, align 8, !tbaa !5
  %685 = load i32, ptr %45, align 4, !tbaa !9
  %686 = add nsw i32 %685, 1
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %684, i64 %687
  store float 0.000000e+00, ptr %688, align 4, !tbaa !11
  %689 = load i32, ptr %45, align 4, !tbaa !9
  %690 = icmp sgt i32 %689, 1
  br i1 %690, label %691, label %709

691:                                              ; preds = %679
  %692 = load i32, ptr %45, align 4, !tbaa !9
  %693 = sub nsw i32 %692, 1
  store i32 %693, ptr %36, align 4, !tbaa !9
  %694 = load ptr, ptr %20, align 8, !tbaa !5
  %695 = load i32, ptr %45, align 4, !tbaa !9
  %696 = load i32, ptr %31, align 4, !tbaa !9
  %697 = mul nsw i32 %695, %696
  %698 = add nsw i32 %697, 1
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds float, ptr %694, i64 %699
  %701 = load ptr, ptr %20, align 8, !tbaa !5
  %702 = load i32, ptr %45, align 4, !tbaa !9
  %703 = add nsw i32 %702, 1
  %704 = load i32, ptr %31, align 4, !tbaa !9
  %705 = mul nsw i32 %703, %704
  %706 = add nsw i32 %705, 1
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds float, ptr %701, i64 %707
  call void @sswap_(ptr noundef %36, ptr noundef %700, ptr noundef @c__1, ptr noundef %708, ptr noundef @c__1)
  br label %709

709:                                              ; preds = %691, %679
  %710 = load ptr, ptr %19, align 8, !tbaa !5
  %711 = load i32, ptr %710, align 4, !tbaa !9
  %712 = load i32, ptr %45, align 4, !tbaa !9
  %713 = add nsw i32 %712, 1
  %714 = icmp sgt i32 %711, %713
  br i1 %714, label %715, label %742

715:                                              ; preds = %709
  %716 = load ptr, ptr %19, align 8, !tbaa !5
  %717 = load i32, ptr %716, align 4, !tbaa !9
  %718 = load i32, ptr %45, align 4, !tbaa !9
  %719 = sub nsw i32 %717, %718
  %720 = sub nsw i32 %719, 1
  store i32 %720, ptr %36, align 4, !tbaa !9
  %721 = load ptr, ptr %20, align 8, !tbaa !5
  %722 = load i32, ptr %45, align 4, !tbaa !9
  %723 = load i32, ptr %45, align 4, !tbaa !9
  %724 = add nsw i32 %723, 2
  %725 = load i32, ptr %31, align 4, !tbaa !9
  %726 = mul nsw i32 %724, %725
  %727 = add nsw i32 %722, %726
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds float, ptr %721, i64 %728
  %730 = load ptr, ptr %21, align 8, !tbaa !5
  %731 = load ptr, ptr %20, align 8, !tbaa !5
  %732 = load i32, ptr %45, align 4, !tbaa !9
  %733 = add nsw i32 %732, 1
  %734 = load i32, ptr %45, align 4, !tbaa !9
  %735 = add nsw i32 %734, 2
  %736 = load i32, ptr %31, align 4, !tbaa !9
  %737 = mul nsw i32 %735, %736
  %738 = add nsw i32 %733, %737
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds float, ptr %731, i64 %739
  %741 = load ptr, ptr %21, align 8, !tbaa !5
  call void @sswap_(ptr noundef %36, ptr noundef %729, ptr noundef %730, ptr noundef %740, ptr noundef %741)
  br label %742

742:                                              ; preds = %715, %709
  %743 = load i32, ptr %64, align 4, !tbaa !9
  %744 = icmp ne i32 %743, 0
  br i1 %744, label %745, label %762

745:                                              ; preds = %742
  %746 = load ptr, ptr %19, align 8, !tbaa !5
  %747 = load ptr, ptr %25, align 8, !tbaa !5
  %748 = load i32, ptr %45, align 4, !tbaa !9
  %749 = load i32, ptr %33, align 4, !tbaa !9
  %750 = mul nsw i32 %748, %749
  %751 = add nsw i32 %750, 1
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds float, ptr %747, i64 %752
  %754 = load ptr, ptr %25, align 8, !tbaa !5
  %755 = load i32, ptr %45, align 4, !tbaa !9
  %756 = add nsw i32 %755, 1
  %757 = load i32, ptr %33, align 4, !tbaa !9
  %758 = mul nsw i32 %756, %757
  %759 = add nsw i32 %758, 1
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds float, ptr %754, i64 %760
  call void @sswap_(ptr noundef %746, ptr noundef %753, ptr noundef @c__1, ptr noundef %761, ptr noundef @c__1)
  br label %762

762:                                              ; preds = %745, %742
  %763 = load ptr, ptr %20, align 8, !tbaa !5
  %764 = load i32, ptr %45, align 4, !tbaa !9
  %765 = add nsw i32 %764, 1
  %766 = load i32, ptr %45, align 4, !tbaa !9
  %767 = load i32, ptr %31, align 4, !tbaa !9
  %768 = mul nsw i32 %766, %767
  %769 = add nsw i32 %765, %768
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds float, ptr %763, i64 %770
  %772 = load float, ptr %771, align 4, !tbaa !11
  %773 = load ptr, ptr %20, align 8, !tbaa !5
  %774 = load i32, ptr %45, align 4, !tbaa !9
  %775 = load i32, ptr %45, align 4, !tbaa !9
  %776 = add nsw i32 %775, 1
  %777 = load i32, ptr %31, align 4, !tbaa !9
  %778 = mul nsw i32 %776, %777
  %779 = add nsw i32 %774, %778
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds float, ptr %773, i64 %780
  store float %772, ptr %781, align 4, !tbaa !11
  %782 = load ptr, ptr %20, align 8, !tbaa !5
  %783 = load i32, ptr %45, align 4, !tbaa !9
  %784 = add nsw i32 %783, 1
  %785 = load i32, ptr %45, align 4, !tbaa !9
  %786 = load i32, ptr %31, align 4, !tbaa !9
  %787 = mul nsw i32 %785, %786
  %788 = add nsw i32 %784, %787
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds float, ptr %782, i64 %789
  store float 0.000000e+00, ptr %790, align 4, !tbaa !11
  br label %791

791:                                              ; preds = %762, %667, %655
  br label %792

792:                                              ; preds = %791, %645
  %793 = load i32, ptr %45, align 4, !tbaa !9
  %794 = add nsw i32 %793, 2
  store i32 %794, ptr %44, align 4, !tbaa !9
  br label %795

795:                                              ; preds = %792, %630
  br label %796

796:                                              ; preds = %795, %622
  br label %797

797:                                              ; preds = %796
  %798 = load i32, ptr %45, align 4, !tbaa !9
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr %45, align 4, !tbaa !9
  br label %614, !llvm.loop !15

800:                                              ; preds = %614
  br label %801

801:                                              ; preds = %800, %555
  %802 = load ptr, ptr %19, align 8, !tbaa !5
  %803 = load i32, ptr %802, align 4, !tbaa !9
  %804 = load i32, ptr %48, align 4, !tbaa !9
  %805 = sub nsw i32 %803, %804
  store i32 %805, ptr %35, align 4, !tbaa !9
  %806 = load ptr, ptr %19, align 8, !tbaa !5
  %807 = load i32, ptr %806, align 4, !tbaa !9
  %808 = load i32, ptr %48, align 4, !tbaa !9
  %809 = sub nsw i32 %807, %808
  store i32 %809, ptr %37, align 4, !tbaa !9
  %810 = load i32, ptr %37, align 4, !tbaa !9
  %811 = icmp sge i32 %810, 1
  br i1 %811, label %812, label %814

812:                                              ; preds = %801
  %813 = load i32, ptr %37, align 4, !tbaa !9
  br label %815

814:                                              ; preds = %801
  br label %815

815:                                              ; preds = %814, %812
  %816 = phi i32 [ %813, %812 ], [ 1, %814 ]
  store i32 %816, ptr %36, align 4, !tbaa !9
  %817 = load ptr, ptr %24, align 8, !tbaa !5
  %818 = load i32, ptr %48, align 4, !tbaa !9
  %819 = add nsw i32 %818, 1
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds float, ptr %817, i64 %820
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %39, ptr noundef %35, ptr noundef @c__1, ptr noundef %821, ptr noundef %36, ptr noundef %41)
  br label %822

822:                                              ; preds = %815, %552
  %823 = load i32, ptr %62, align 4, !tbaa !9
  %824 = icmp ne i32 %823, 0
  br i1 %824, label %825, label %913

825:                                              ; preds = %822
  %826 = load ptr, ptr %30, align 8, !tbaa !5
  %827 = load i32, ptr %826, align 4, !tbaa !9
  %828 = icmp eq i32 %827, 0
  br i1 %828, label %829, label %913

829:                                              ; preds = %825
  store i32 1, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  %830 = load ptr, ptr %22, align 8, !tbaa !5
  store i32 0, ptr %830, align 4, !tbaa !9
  store i32 0, ptr %54, align 4, !tbaa !9
  %831 = load ptr, ptr %19, align 8, !tbaa !5
  %832 = load i32, ptr %831, align 4, !tbaa !9
  store i32 %832, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %833

833:                                              ; preds = %909, %829
  %834 = load i32, ptr %45, align 4, !tbaa !9
  %835 = load i32, ptr %35, align 4, !tbaa !9
  %836 = icmp sle i32 %834, %835
  br i1 %836, label %837, label %912

837:                                              ; preds = %833
  %838 = load ptr, ptr %18, align 8, !tbaa !5
  %839 = load ptr, ptr %23, align 8, !tbaa !5
  %840 = load i32, ptr %45, align 4, !tbaa !9
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds float, ptr %839, i64 %841
  %843 = load ptr, ptr %24, align 8, !tbaa !5
  %844 = load i32, ptr %45, align 4, !tbaa !9
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds float, ptr %843, i64 %845
  %847 = call i32 (ptr, ptr, ...) %838(ptr noundef %842, ptr noundef %846)
  store i32 %847, ptr %49, align 4, !tbaa !9
  %848 = load ptr, ptr %24, align 8, !tbaa !5
  %849 = load i32, ptr %45, align 4, !tbaa !9
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds float, ptr %848, i64 %850
  %852 = load float, ptr %851, align 4, !tbaa !11
  %853 = fcmp oeq float %852, 0.000000e+00
  br i1 %853, label %854, label %873

854:                                              ; preds = %837
  %855 = load i32, ptr %49, align 4, !tbaa !9
  %856 = icmp ne i32 %855, 0
  br i1 %856, label %857, label %861

857:                                              ; preds = %854
  %858 = load ptr, ptr %22, align 8, !tbaa !5
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = add nsw i32 %859, 1
  store i32 %860, ptr %858, align 4, !tbaa !9
  br label %861

861:                                              ; preds = %857, %854
  store i32 0, ptr %54, align 4, !tbaa !9
  %862 = load i32, ptr %49, align 4, !tbaa !9
  %863 = icmp ne i32 %862, 0
  br i1 %863, label %864, label %872

864:                                              ; preds = %861
  %865 = load i32, ptr %57, align 4, !tbaa !9
  %866 = icmp ne i32 %865, 0
  br i1 %866, label %872, label %867

867:                                              ; preds = %864
  %868 = load ptr, ptr %19, align 8, !tbaa !5
  %869 = load i32, ptr %868, align 4, !tbaa !9
  %870 = add nsw i32 %869, 2
  %871 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 %870, ptr %871, align 4, !tbaa !9
  br label %872

872:                                              ; preds = %867, %864, %861
  br label %906

873:                                              ; preds = %837
  %874 = load i32, ptr %54, align 4, !tbaa !9
  %875 = icmp eq i32 %874, 1
  br i1 %875, label %876, label %904

876:                                              ; preds = %873
  %877 = load i32, ptr %49, align 4, !tbaa !9
  %878 = icmp ne i32 %877, 0
  br i1 %878, label %882, label %879

879:                                              ; preds = %876
  %880 = load i32, ptr %57, align 4, !tbaa !9
  %881 = icmp ne i32 %880, 0
  br label %882

882:                                              ; preds = %879, %876
  %883 = phi i1 [ true, %876 ], [ %881, %879 ]
  %884 = zext i1 %883 to i32
  store i32 %884, ptr %49, align 4, !tbaa !9
  %885 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %885, ptr %57, align 4, !tbaa !9
  %886 = load i32, ptr %49, align 4, !tbaa !9
  %887 = icmp ne i32 %886, 0
  br i1 %887, label %888, label %892

888:                                              ; preds = %882
  %889 = load ptr, ptr %22, align 8, !tbaa !5
  %890 = load i32, ptr %889, align 4, !tbaa !9
  %891 = add nsw i32 %890, 2
  store i32 %891, ptr %889, align 4, !tbaa !9
  br label %892

892:                                              ; preds = %888, %882
  store i32 -1, ptr %54, align 4, !tbaa !9
  %893 = load i32, ptr %49, align 4, !tbaa !9
  %894 = icmp ne i32 %893, 0
  br i1 %894, label %895, label %903

895:                                              ; preds = %892
  %896 = load i32, ptr %52, align 4, !tbaa !9
  %897 = icmp ne i32 %896, 0
  br i1 %897, label %903, label %898

898:                                              ; preds = %895
  %899 = load ptr, ptr %19, align 8, !tbaa !5
  %900 = load i32, ptr %899, align 4, !tbaa !9
  %901 = add nsw i32 %900, 2
  %902 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 %901, ptr %902, align 4, !tbaa !9
  br label %903

903:                                              ; preds = %898, %895, %892
  br label %905

904:                                              ; preds = %873
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %905

905:                                              ; preds = %904, %903
  br label %906

906:                                              ; preds = %905, %872
  %907 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %907, ptr %52, align 4, !tbaa !9
  %908 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %908, ptr %57, align 4, !tbaa !9
  br label %909

909:                                              ; preds = %906
  %910 = load i32, ptr %45, align 4, !tbaa !9
  %911 = add nsw i32 %910, 1
  store i32 %911, ptr %45, align 4, !tbaa !9
  br label %833, !llvm.loop !16

912:                                              ; preds = %833
  br label %913

913:                                              ; preds = %912, %825, %822
  %914 = load i32, ptr %59, align 4, !tbaa !9
  %915 = sitofp i32 %914 to float
  %916 = load ptr, ptr %27, align 8, !tbaa !5
  %917 = getelementptr inbounds float, ptr %916, i64 1
  store float %915, ptr %917, align 4, !tbaa !11
  store i32 1, ptr %70, align 4
  br label %918

918:                                              ; preds = %913, %298, %292, %284
  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 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  ret void
}

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

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

declare void @strsen_(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 @sgebak_(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 @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}


; 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
@c__1 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

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

45:                                               ; preds = %15
  %46 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %.not349 = icmp eq i32 %46, 0
  br i1 %.not349, label %.thread368.sink.split, label %47

47:                                               ; preds = %45, %15
  %.not350 = icmp eq i32 %44, 0
  br i1 %.not350, label %48, label %50

48:                                               ; preds = %47
  %49 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %.not351 = icmp eq i32 %49, 0
  br i1 %.not351, label %.thread368.sink.split, label %50

50:                                               ; preds = %48, %47
  %51 = load i32, ptr %3, align 4, !tbaa !5
  %52 = icmp slt i32 %51, 0
  br i1 %52, label %.thread368.sink.split, label %53

53:                                               ; preds = %50
  %54 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %51, i32 1)
  %55 = icmp slt i32 %54, %spec.select
  br i1 %55, label %.thread368.sink.split, label %56

56:                                               ; preds = %53
  %57 = load i32, ptr %10, align 4, !tbaa !5
  %58 = icmp slt i32 %57, 1
  %59 = icmp ult i32 %57, %51
  %or.cond383 = and i1 %.not, %59
  %or.cond385 = or i1 %58, %or.cond383
  br i1 %or.cond385, label %.thread368.sink.split, label %60

60:                                               ; preds = %56
  %.pr = load i32, ptr %14, align 4, !tbaa !5
  %61 = icmp eq i32 %.pr, 0
  br i1 %61, label %62, label %.thread368

62:                                               ; preds = %60
  %63 = icmp eq i32 %51, 0
  br i1 %63, label %87, label %64

64:                                               ; preds = %62
  %65 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #5
  %66 = add i32 %65, 2
  %67 = mul i32 %66, %51
  %68 = load i32, ptr %3, align 4, !tbaa !5
  %69 = mul nsw i32 %68, 3
  call void @shseqr_(ptr noundef nonnull @.str.1, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull @c_n1, ptr noundef nonnull %23) #5
  %70 = load float, ptr %11, align 4, !tbaa !9
  %71 = fptosi float %70 to i32
  store i32 %67, ptr %16, align 4, !tbaa !5
  %72 = load i32, ptr %3, align 4, !tbaa !5
  br i1 %.not, label %76, label %73

73:                                               ; preds = %64
  %74 = add nsw i32 %72, %71
  store i32 %74, ptr %17, align 4, !tbaa !5
  %75 = call i32 @llvm.smax.i32(i32 %67, i32 %74)
  br label %87

76:                                               ; preds = %64
  %77 = shl i32 %72, 1
  %78 = add nsw i32 %72, -1
  %79 = call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %80 = mul nsw i32 %78, %79
  %81 = add nsw i32 %80, %77
  %82 = load i32, ptr %16, align 4
  %83 = call i32 @llvm.smax.i32(i32 %82, i32 %81)
  store i32 %83, ptr %16, align 4, !tbaa !5
  %84 = load i32, ptr %3, align 4, !tbaa !5
  %85 = add nsw i32 %84, %71
  store i32 %85, ptr %17, align 4, !tbaa !5
  %86 = call i32 @llvm.smax.i32(i32 %83, i32 %85)
  br label %87

87:                                               ; preds = %62, %73, %76
  %88 = phi i32 [ %84, %76 ], [ %72, %73 ], [ 0, %62 ]
  %.0320 = phi i32 [ %69, %76 ], [ %69, %73 ], [ 1, %62 ]
  %.0 = phi i32 [ %86, %76 ], [ %75, %73 ], [ 1, %62 ]
  %89 = sitofp i32 %.0 to float
  store float %89, ptr %11, align 4, !tbaa !9
  %90 = load i32, ptr %12, align 4, !tbaa !5
  %91 = icmp sge i32 %90, %.0320
  %or.cond = select i1 %91, i1 true, i1 %42
  br i1 %or.cond, label %.thread, label %.thread368.sink.split

.thread:                                          ; preds = %87
  %.pr365.pr = load i32, ptr %14, align 4, !tbaa !5
  %.not355 = icmp eq i32 %.pr365.pr, 0
  br i1 %.not355, label %95, label %.thread368

.thread368.sink.split:                            ; preds = %87, %56, %53, %50, %48, %45
  %.sink = phi i32 [ -1, %45 ], [ -2, %48 ], [ -4, %50 ], [ -6, %53 ], [ -11, %56 ], [ -13, %87 ]
  store i32 %.sink, ptr %14, align 4, !tbaa !5
  br label %.thread368

.thread368:                                       ; preds = %.thread368.sink.split, %60, %.thread
  %92 = phi i32 [ %.pr365.pr, %.thread ], [ %.pr, %60 ], [ %.sink, %.thread368.sink.split ]
  %93 = sub nsw i32 0, %92
  store i32 %93, ptr %16, align 4, !tbaa !5
  %94 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %16, i32 noundef 5) #5
  br label %283

95:                                               ; preds = %.thread
  br i1 %42, label %283, label %96

96:                                               ; preds = %95
  %97 = icmp eq i32 %88, 0
  br i1 %97, label %98, label %99

98:                                               ; preds = %96
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %283

99:                                               ; preds = %96
  %100 = call float @slamch_(ptr noundef nonnull @.str.7) #5
  %101 = call float @slamch_(ptr noundef nonnull @.str.1) #5
  store float %101, ptr %26, align 4, !tbaa !9
  %102 = fdiv float 1.000000e+00, %101
  store float %102, ptr %25, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %26, ptr noundef nonnull %25) #5
  %103 = load float, ptr %26, align 4, !tbaa !9
  %104 = fpext float %103 to double
  %105 = call double @sqrt(double noundef %104) #5
  %106 = fpext float %100 to double
  %107 = fdiv double %105, %106
  %108 = fptrunc double %107 to float
  store float %108, ptr %26, align 4, !tbaa !9
  %109 = fdiv float 1.000000e+00, %108
  store float %109, ptr %25, align 4, !tbaa !9
  %110 = call float @slange_(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %29) #5
  store float %110, ptr %18, align 4, !tbaa !9
  %111 = fcmp ogt float %110, 0.000000e+00
  %112 = load float, ptr %26, align 4
  %113 = fcmp olt float %110, %112
  %or.cond387 = select i1 %111, i1 %113, i1 false
  br i1 %or.cond387, label %117, label %114

114:                                              ; preds = %99
  %115 = load float, ptr %25, align 4, !tbaa !9
  %116 = fcmp ogt float %110, %115
  br i1 %116, label %117, label %118

117:                                              ; preds = %99, %114
  %storemerge = phi float [ %115, %114 ], [ %112, %99 ]
  store float %storemerge, ptr %24, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %18, ptr noundef nonnull %24, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %20) #5
  br label %118

118:                                              ; preds = %114, %117
  %.not356375 = phi i1 [ false, %117 ], [ true, %114 ]
  call void @sgebal_(ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %11, ptr noundef nonnull %20) #5
  %119 = load i32, ptr %3, align 4, !tbaa !5
  %120 = add nsw i32 %119, 1
  %121 = add nsw i32 %120, %119
  %122 = load i32, ptr %12, align 4, !tbaa !5
  %123 = add i32 %122, 1
  %124 = sub i32 %123, %121
  store i32 %124, ptr %16, align 4, !tbaa !5
  %125 = sext i32 %120 to i64
  %126 = getelementptr inbounds float, ptr %39, i64 %125
  %127 = sext i32 %121 to i64
  %128 = getelementptr inbounds float, ptr %39, i64 %127
  call void @sgehrd_(ptr noundef nonnull %3, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %126, ptr noundef nonnull %128, ptr noundef nonnull %16, ptr noundef nonnull %20) #5
  br i1 %.not, label %129, label %132

129:                                              ; preds = %118
  call void @slacpy_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %9, ptr noundef nonnull %10) #5
  %130 = load i32, ptr %12, align 4, !tbaa !5
  %reass.sub = sub i32 %130, %121
  %131 = add i32 %reass.sub, 1
  store i32 %131, ptr %16, align 4, !tbaa !5
  call void @sorghr_(ptr noundef nonnull %3, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %126, ptr noundef nonnull %128, ptr noundef nonnull %16, ptr noundef nonnull %20) #5
  br label %132

132:                                              ; preds = %129, %118
  store i32 0, ptr %6, align 4, !tbaa !5
  %133 = load i32, ptr %12, align 4, !tbaa !5
  %134 = sub i32 %133, %119
  store i32 %134, ptr %16, align 4, !tbaa !5
  call void @shseqr_(ptr noundef nonnull @.str.1, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %126, ptr noundef nonnull %16, ptr noundef nonnull %23) #5
  %135 = load i32, ptr %23, align 4, !tbaa !5
  %136 = icmp sgt i32 %135, 0
  br i1 %136, label %137, label %138

137:                                              ; preds = %132
  store i32 %135, ptr %14, align 4, !tbaa !5
  br label %138

138:                                              ; preds = %137, %132
  br i1 %.not350, label %159, label %139

139:                                              ; preds = %138
  %140 = load i32, ptr %14, align 4, !tbaa !5
  %141 = icmp eq i32 %140, 0
  br i1 %141, label %142, label %159

142:                                              ; preds = %139
  br i1 %.not356375, label %144, label %143

143:                                              ; preds = %142
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %3, ptr noundef nonnull %20) #5
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %20) #5
  br label %144

144:                                              ; preds = %143, %142
  %145 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %145, ptr %16, align 4, !tbaa !5
  %.not359390 = icmp slt i32 %145, 1
  br i1 %.not359390, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %144, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 1, %144 ]
  %146 = getelementptr inbounds float, ptr %34, i64 %indvars.iv
  %147 = getelementptr inbounds float, ptr %35, i64 %indvars.iv
  %148 = call i32 (ptr, ptr, ...) %2(ptr noundef nonnull %146, ptr noundef nonnull %147) #5
  %149 = getelementptr inbounds i32, ptr %40, i64 %indvars.iv
  store i32 %148, ptr %149, align 4, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %150 = load i32, ptr %16, align 4, !tbaa !5
  %151 = sext i32 %150 to i64
  %.not359.not = icmp slt i64 %indvars.iv, %151
  br i1 %.not359.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %144
  %152 = load i32, ptr %12, align 4, !tbaa !5
  %153 = sub i32 %152, %119
  store i32 %153, ptr %16, align 4, !tbaa !5
  call void @strsen_(ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef %13, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %6, ptr noundef nonnull %21, ptr noundef nonnull %30, ptr noundef nonnull %126, ptr noundef nonnull %16, ptr noundef nonnull %19, ptr noundef nonnull @c__1, ptr noundef nonnull %22) #5
  %154 = load i32, ptr %22, align 4, !tbaa !5
  %155 = icmp sgt i32 %154, 0
  br i1 %155, label %156, label %159

156:                                              ; preds = %._crit_edge
  %157 = load i32, ptr %3, align 4, !tbaa !5
  %158 = add nsw i32 %157, %154
  store i32 %158, ptr %14, align 4, !tbaa !5
  br label %159

159:                                              ; preds = %._crit_edge, %156, %139, %138
  br i1 %.not, label %160, label %161

160:                                              ; preds = %159
  call void @sgebak_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.11, ptr noundef nonnull %3, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %11, ptr noundef nonnull %3, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %20) #5
  br label %161

161:                                              ; preds = %160, %159
  br i1 %.not356375, label %254, label %162

162:                                              ; preds = %161
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %20) #5
  %163 = load i32, ptr %5, align 4, !tbaa !5
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr %16, align 4, !tbaa !5
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %16, ptr noundef %7, ptr noundef nonnull @c__1) #5
  %165 = load float, ptr %24, align 4, !tbaa !9
  %166 = load float, ptr %26, align 4, !tbaa !9
  %167 = fcmp oeq float %165, %166
  br i1 %167, label %168, label %.loopexit389

168:                                              ; preds = %162
  %169 = load i32, ptr %23, align 4, !tbaa !5
  %170 = icmp sgt i32 %169, 0
  br i1 %170, label %171, label %178

171:                                              ; preds = %168
  %172 = add nuw nsw i32 %169, 1
  %173 = load i32, ptr %27, align 4, !tbaa !5
  %174 = load i32, ptr %28, align 4, !tbaa !5
  %175 = add nsw i32 %174, -1
  store i32 %175, ptr %16, align 4, !tbaa !5
  %176 = icmp sgt i32 %174, 1
  %177 = select i1 %176, i32 %175, i32 1
  store i32 %177, ptr %17, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull %16, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %17, ptr noundef nonnull %20) #5
  br label %184

178:                                              ; preds = %168
  br i1 %.not350, label %181, label %179

179:                                              ; preds = %178
  %180 = load i32, ptr %3, align 4, !tbaa !5
  br label %184

181:                                              ; preds = %178
  %182 = load i32, ptr %28, align 4, !tbaa !5
  %183 = load i32, ptr %27, align 4, !tbaa !5
  br label %184

184:                                              ; preds = %179, %181, %171
  %.0328 = phi i32 [ %172, %171 ], [ 1, %179 ], [ %182, %181 ]
  %.0327.in = phi i32 [ %173, %171 ], [ %180, %179 ], [ %183, %181 ]
  %.0327 = add nsw i32 %.0327.in, -1
  store i32 %.0327, ptr %16, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %33, i64 4
  %invariant.gep394 = getelementptr i8, ptr %38, i64 4
  %.not360398.not = icmp slt i32 %.0328, %.0327.in
  br i1 %.not360398.not, label %.lr.ph404.preheader, label %.loopexit389

.lr.ph404.preheader:                              ; preds = %184
  %185 = add nsw i32 %.0328, -1
  %186 = sext i32 %.0328 to i64
  %187 = sext i32 %31 to i64
  %188 = sext i32 %36 to i64
  br label %.lr.ph404

.lr.ph404:                                        ; preds = %.lr.ph404.preheader, %244
  %.pre419 = phi i32 [ %.0327, %.lr.ph404.preheader ], [ %.pre420, %244 ]
  %189 = phi i32 [ %.0327, %.lr.ph404.preheader ], [ %245, %244 ]
  %indvars.iv413 = phi i64 [ %186, %.lr.ph404.preheader ], [ %indvars.iv.next414.pre-phi, %244 ]
  %.0332399 = phi i32 [ %185, %.lr.ph404.preheader ], [ %.1333, %244 ]
  %indvars415 = trunc i64 %indvars.iv413 to i32
  %190 = sext i32 %.0332399 to i64
  %191 = icmp slt i64 %indvars.iv413, %190
  br i1 %191, label %.lr.ph404._crit_edge, label %192

.lr.ph404._crit_edge:                             ; preds = %.lr.ph404
  %.pre422 = add nsw i64 %indvars.iv413, 1
  br label %244

192:                                              ; preds = %.lr.ph404
  %193 = getelementptr inbounds float, ptr %35, i64 %indvars.iv413
  %194 = load float, ptr %193, align 4, !tbaa !9
  %195 = fcmp oeq float %194, 0.000000e+00
  %196 = add nsw i64 %indvars.iv413, 1
  br i1 %195, label %197, label %199

197:                                              ; preds = %192
  %198 = trunc nsw i64 %196 to i32
  br label %244

199:                                              ; preds = %192
  %200 = mul nsw i64 %indvars.iv413, %187
  %201 = getelementptr float, ptr %33, i64 %196
  %202 = getelementptr float, ptr %201, i64 %200
  %203 = load float, ptr %202, align 4, !tbaa !9
  %204 = fcmp oeq float %203, 0.000000e+00
  br i1 %204, label %205, label %206

205:                                              ; preds = %199
  store <2 x float> zeroinitializer, ptr %193, align 4, !tbaa !9
  br label %242

206:                                              ; preds = %199
  %207 = add nsw i32 %indvars415, 1
  %208 = mul nsw i64 %196, %187
  %209 = mul nsw i32 %207, %31
  %210 = sext i32 %209 to i64
  %211 = getelementptr float, ptr %33, i64 %indvars.iv413
  %212 = getelementptr float, ptr %211, i64 %210
  %213 = load float, ptr %212, align 4, !tbaa !9
  %214 = fcmp oeq float %213, 0.000000e+00
  br i1 %214, label %215, label %242

215:                                              ; preds = %206
  store <2 x float> zeroinitializer, ptr %193, align 4, !tbaa !9
  %216 = icmp sgt i64 %indvars.iv413, 1
  br i1 %216, label %217, label %220

217:                                              ; preds = %215
  %218 = trunc i64 %indvars.iv413 to i32
  %219 = add i32 %218, -1
  store i32 %219, ptr %17, align 4, !tbaa !5
  %gep = getelementptr float, ptr %invariant.gep, i64 %200
  %gep393 = getelementptr float, ptr %invariant.gep, i64 %208
  call void @sswap_(ptr noundef nonnull %17, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep393, ptr noundef nonnull @c__1) #5
  br label %220

220:                                              ; preds = %217, %215
  %221 = load i32, ptr %3, align 4, !tbaa !5
  %222 = sext i32 %221 to i64
  %223 = icmp slt i64 %196, %222
  br i1 %223, label %224, label %236

224:                                              ; preds = %220
  %225 = xor i32 %indvars415, -1
  %226 = add i32 %221, %225
  store i32 %226, ptr %17, align 4, !tbaa !5
  %227 = add nsw i64 %indvars.iv413, 2
  %228 = add nsw i32 %indvars415, 2
  %229 = mul nsw i64 %227, %187
  %230 = mul nsw i32 %228, %31
  %231 = sext i32 %230 to i64
  %232 = getelementptr float, ptr %33, i64 %indvars.iv413
  %233 = getelementptr float, ptr %232, i64 %231
  %234 = getelementptr float, ptr %33, i64 %229
  %235 = getelementptr float, ptr %234, i64 %196
  call void @sswap_(ptr noundef nonnull %17, ptr noundef %233, ptr noundef nonnull %5, ptr noundef %235, ptr noundef nonnull %5) #5
  br label %236

236:                                              ; preds = %224, %220
  br i1 %.not, label %237, label %240

237:                                              ; preds = %236
  %238 = mul nsw i64 %indvars.iv413, %188
  %gep395 = getelementptr float, ptr %invariant.gep394, i64 %238
  %239 = mul nsw i64 %196, %188
  %gep397 = getelementptr float, ptr %invariant.gep394, i64 %239
  call void @sswap_(ptr noundef nonnull %3, ptr noundef %gep395, ptr noundef nonnull @c__1, ptr noundef %gep397, ptr noundef nonnull @c__1) #5
  br label %240

240:                                              ; preds = %237, %236
  %241 = load float, ptr %202, align 4, !tbaa !9
  store float %241, ptr %212, align 4, !tbaa !9
  store float 0.000000e+00, ptr %202, align 4, !tbaa !9
  %.pre.pre = load i32, ptr %16, align 4, !tbaa !5
  br label %242

242:                                              ; preds = %206, %240, %205
  %.pre = phi i32 [ %.pre419, %206 ], [ %.pre.pre, %240 ], [ %.pre419, %205 ]
  %243 = add nsw i32 %indvars415, 2
  br label %244

244:                                              ; preds = %.lr.ph404._crit_edge, %242, %197
  %indvars.iv.next414.pre-phi = phi i64 [ %.pre422, %.lr.ph404._crit_edge ], [ %196, %242 ], [ %196, %197 ]
  %.pre420 = phi i32 [ %.pre419, %.lr.ph404._crit_edge ], [ %.pre, %242 ], [ %.pre419, %197 ]
  %245 = phi i32 [ %189, %.lr.ph404._crit_edge ], [ %.pre, %242 ], [ %189, %197 ]
  %.1333 = phi i32 [ %.0332399, %.lr.ph404._crit_edge ], [ %243, %242 ], [ %198, %197 ]
  %246 = sext i32 %245 to i64
  %.not360.not = icmp slt i64 %indvars.iv413, %246
  br i1 %.not360.not, label %.lr.ph404, label %.loopexit389, !llvm.loop !13

.loopexit389:                                     ; preds = %244, %184, %162
  %247 = load i32, ptr %3, align 4, !tbaa !5
  %248 = load i32, ptr %23, align 4, !tbaa !5
  %249 = sub nsw i32 %247, %248
  store i32 %249, ptr %16, align 4, !tbaa !5
  %250 = call i32 @llvm.smax.i32(i32 %249, i32 1)
  store i32 %250, ptr %17, align 4, !tbaa !5
  %251 = sext i32 %248 to i64
  %252 = getelementptr float, ptr %35, i64 %251
  %253 = getelementptr i8, ptr %252, i64 4
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull %16, ptr noundef nonnull @c__1, ptr noundef %253, ptr noundef nonnull %17, ptr noundef nonnull %20) #5
  br label %254

254:                                              ; preds = %.loopexit389, %161
  br i1 %.not350, label %.loopexit, label %255

255:                                              ; preds = %254
  %256 = load i32, ptr %14, align 4, !tbaa !5
  %257 = icmp eq i32 %256, 0
  br i1 %257, label %258, label %.loopexit

258:                                              ; preds = %255
  store i32 0, ptr %6, align 4, !tbaa !5
  %259 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %259, ptr %16, align 4, !tbaa !5
  %.not361405 = icmp slt i32 %259, 1
  br i1 %.not361405, label %.loopexit, label %.lr.ph411

.lr.ph411:                                        ; preds = %258, %.thread376
  %indvars.iv416 = phi i64 [ %indvars.iv.next417, %.thread376 ], [ 1, %258 ]
  %.0321409 = phi i32 [ %.0329, %.thread376 ], [ 1, %258 ]
  %.0323408 = phi i32 [ %.1324, %.thread376 ], [ 0, %258 ]
  %.0326407 = phi i32 [ %.1322, %.thread376 ], [ 1, %258 ]
  %260 = getelementptr inbounds float, ptr %34, i64 %indvars.iv416
  %261 = getelementptr inbounds float, ptr %35, i64 %indvars.iv416
  %262 = call i32 (ptr, ptr, ...) %2(ptr noundef nonnull %260, ptr noundef nonnull %261) #5
  %263 = load float, ptr %261, align 4, !tbaa !9
  %264 = fcmp oeq float %263, 0.000000e+00
  br i1 %264, label %265, label %269

265:                                              ; preds = %.lr.ph411
  %.not363 = icmp eq i32 %262, 0
  br i1 %.not363, label %.thread376, label %266

266:                                              ; preds = %265
  %267 = load i32, ptr %6, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr %6, align 4, !tbaa !5
  %.not384 = icmp eq i32 %.0321409, 0
  br i1 %.not384, label %.thread376.sink.split, label %.thread376

269:                                              ; preds = %.lr.ph411
  %270 = icmp eq i32 %.0323408, 1
  br i1 %270, label %271, label %.thread376

271:                                              ; preds = %269
  %272 = icmp ne i32 %262, 0
  %273 = icmp ne i32 %.0321409, 0
  %274 = select i1 %272, i1 true, i1 %273
  br i1 %274, label %275, label %.thread376

275:                                              ; preds = %271
  %276 = load i32, ptr %6, align 4, !tbaa !5
  %277 = add nsw i32 %276, 2
  store i32 %277, ptr %6, align 4, !tbaa !5
  %278 = icmp eq i32 %.0326407, 0
  br i1 %278, label %.thread376.sink.split, label %.thread376

.thread376.sink.split:                            ; preds = %275, %266
  %.0329.ph = phi i32 [ %262, %266 ], [ 1, %275 ]
  %.1324.ph = phi i32 [ 0, %266 ], [ -1, %275 ]
  %.1322.ph = phi i32 [ 0, %266 ], [ 1, %275 ]
  %279 = load i32, ptr %3, align 4, !tbaa !5
  %280 = add nsw i32 %279, 2
  store i32 %280, ptr %14, align 4, !tbaa !5
  br label %.thread376

.thread376:                                       ; preds = %.thread376.sink.split, %271, %265, %269, %275, %266
  %.0329 = phi i32 [ %262, %266 ], [ 1, %275 ], [ %262, %269 ], [ 0, %265 ], [ 0, %271 ], [ %.0329.ph, %.thread376.sink.split ]
  %.1324 = phi i32 [ 0, %266 ], [ -1, %275 ], [ 1, %269 ], [ 0, %265 ], [ -1, %271 ], [ %.1324.ph, %.thread376.sink.split ]
  %.1322 = phi i32 [ %.0321409, %266 ], [ 1, %275 ], [ %.0321409, %269 ], [ %.0321409, %265 ], [ 0, %271 ], [ %.1322.ph, %.thread376.sink.split ]
  %indvars.iv.next417 = add nuw nsw i64 %indvars.iv416, 1
  %281 = load i32, ptr %16, align 4, !tbaa !5
  %282 = sext i32 %281 to i64
  %.not361.not = icmp slt i64 %indvars.iv416, %282
  br i1 %.not361.not, label %.lr.ph411, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %.thread376, %258, %255, %254
  store float %89, ptr %11, align 4, !tbaa !9
  br label %283

283:                                              ; preds = %95, %.loopexit, %98, %.thread368
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  ret void
}

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

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare void @strsen_(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 @sgebak_(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 @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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 = distinct !{!14, !12}


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