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

; 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
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 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
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b38 = external hidden global float, align 4
@c_b39 = external hidden global float, align 4
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

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

145:                                              ; preds = %21
  store i32 1, ptr %76, align 4, !tbaa !9
  store i32 0, ptr %66, align 4, !tbaa !9
  br label %153

146:                                              ; preds = %21
  %147 = load ptr, ptr %22, align 8, !tbaa !5
  %148 = call i32 @lsame_(ptr noundef %147, ptr noundef @.str.1)
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %150, label %151

150:                                              ; preds = %146
  store i32 2, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %66, align 4, !tbaa !9
  br label %152

151:                                              ; preds = %146
  store i32 -1, ptr %76, align 4, !tbaa !9
  store i32 0, ptr %66, align 4, !tbaa !9
  br label %152

152:                                              ; preds = %151, %150
  br label %153

153:                                              ; preds = %152, %145
  %154 = load ptr, ptr %23, align 8, !tbaa !5
  %155 = call i32 @lsame_(ptr noundef %154, ptr noundef @.str)
  %156 = icmp ne i32 %155, 0
  br i1 %156, label %157, label %158

157:                                              ; preds = %153
  store i32 1, ptr %78, align 4, !tbaa !9
  store i32 0, ptr %67, align 4, !tbaa !9
  br label %165

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

162:                                              ; preds = %158
  store i32 2, ptr %78, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %164

163:                                              ; preds = %158
  store i32 -1, ptr %78, align 4, !tbaa !9
  store i32 0, ptr %67, align 4, !tbaa !9
  br label %164

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

165:                                              ; preds = %164, %157
  %166 = load ptr, ptr %24, align 8, !tbaa !5
  %167 = call i32 @lsame_(ptr noundef %166, ptr noundef @.str.2)
  store i32 %167, ptr %85, align 4, !tbaa !9
  %168 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %168, align 4, !tbaa !9
  %169 = load ptr, ptr %40, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = icmp eq i32 %170, -1
  %172 = zext i1 %171 to i32
  store i32 %172, ptr %86, align 4, !tbaa !9
  %173 = load i32, ptr %76, align 4, !tbaa !9
  %174 = icmp sle i32 %173, 0
  br i1 %174, label %175, label %177

175:                                              ; preds = %165
  %176 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -1, ptr %176, align 4, !tbaa !9
  br label %264

177:                                              ; preds = %165
  %178 = load i32, ptr %78, align 4, !tbaa !9
  %179 = icmp sle i32 %178, 0
  br i1 %179, label %180, label %182

180:                                              ; preds = %177
  %181 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -2, ptr %181, align 4, !tbaa !9
  br label %263

182:                                              ; preds = %177
  %183 = load i32, ptr %85, align 4, !tbaa !9
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %191, label %185

185:                                              ; preds = %182
  %186 = load ptr, ptr %24, align 8, !tbaa !5
  %187 = call i32 @lsame_(ptr noundef %186, ptr noundef @.str)
  %188 = icmp ne i32 %187, 0
  br i1 %188, label %191, label %189

189:                                              ; preds = %185
  %190 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -3, ptr %190, align 4, !tbaa !9
  br label %262

191:                                              ; preds = %185, %182
  %192 = load ptr, ptr %26, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = icmp slt i32 %193, 0
  br i1 %194, label %195, label %197

195:                                              ; preds = %191
  %196 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -5, ptr %196, align 4, !tbaa !9
  br label %261

197:                                              ; preds = %191
  %198 = load ptr, ptr %28, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = load ptr, ptr %26, align 8, !tbaa !5
  %201 = load i32, ptr %200, align 4, !tbaa !9
  %202 = icmp sge i32 1, %201
  br i1 %202, label %203, label %204

203:                                              ; preds = %197
  br label %207

204:                                              ; preds = %197
  %205 = load ptr, ptr %26, align 8, !tbaa !5
  %206 = load i32, ptr %205, align 4, !tbaa !9
  br label %207

207:                                              ; preds = %204, %203
  %208 = phi i32 [ 1, %203 ], [ %206, %204 ]
  %209 = icmp slt i32 %199, %208
  br i1 %209, label %210, label %212

210:                                              ; preds = %207
  %211 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -7, ptr %211, align 4, !tbaa !9
  br label %260

212:                                              ; preds = %207
  %213 = load ptr, ptr %30, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = load ptr, ptr %26, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = icmp sge i32 1, %216
  br i1 %217, label %218, label %219

218:                                              ; preds = %212
  br label %222

219:                                              ; preds = %212
  %220 = load ptr, ptr %26, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  br label %222

222:                                              ; preds = %219, %218
  %223 = phi i32 [ 1, %218 ], [ %221, %219 ]
  %224 = icmp slt i32 %214, %223
  br i1 %224, label %225, label %227

225:                                              ; preds = %222
  %226 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -9, ptr %226, align 4, !tbaa !9
  br label %259

227:                                              ; preds = %222
  %228 = load ptr, ptr %36, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = icmp slt i32 %229, 1
  br i1 %230, label %240, label %231

231:                                              ; preds = %227
  %232 = load i32, ptr %66, align 4, !tbaa !9
  %233 = icmp ne i32 %232, 0
  br i1 %233, label %234, label %242

234:                                              ; preds = %231
  %235 = load ptr, ptr %36, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  %237 = load ptr, ptr %26, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  %239 = icmp slt i32 %236, %238
  br i1 %239, label %240, label %242

240:                                              ; preds = %234, %227
  %241 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -15, ptr %241, align 4, !tbaa !9
  br label %258

242:                                              ; preds = %234, %231
  %243 = load ptr, ptr %38, align 8, !tbaa !5
  %244 = load i32, ptr %243, align 4, !tbaa !9
  %245 = icmp slt i32 %244, 1
  br i1 %245, label %255, label %246

246:                                              ; preds = %242
  %247 = load i32, ptr %67, align 4, !tbaa !9
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %249, label %257

249:                                              ; preds = %246
  %250 = load ptr, ptr %38, align 8, !tbaa !5
  %251 = load i32, ptr %250, align 4, !tbaa !9
  %252 = load ptr, ptr %26, align 8, !tbaa !5
  %253 = load i32, ptr %252, align 4, !tbaa !9
  %254 = icmp slt i32 %251, %253
  br i1 %254, label %255, label %257

255:                                              ; preds = %249, %242
  %256 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -17, ptr %256, align 4, !tbaa !9
  br label %257

257:                                              ; preds = %255, %249, %246
  br label %258

258:                                              ; preds = %257, %240
  br label %259

259:                                              ; preds = %258, %225
  br label %260

260:                                              ; preds = %259, %210
  br label %261

261:                                              ; preds = %260, %195
  br label %262

262:                                              ; preds = %261, %189
  br label %263

263:                                              ; preds = %262, %180
  br label %264

264:                                              ; preds = %263, %175
  %265 = load ptr, ptr %42, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = icmp eq i32 %266, 0
  br i1 %267, label %268, label %362

268:                                              ; preds = %264
  %269 = load ptr, ptr %26, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = icmp sgt i32 %270, 0
  br i1 %271, label %272, label %346

272:                                              ; preds = %268
  %273 = load ptr, ptr %26, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = shl i32 %274, 3
  store i32 %275, ptr %51, align 4, !tbaa !9
  %276 = load ptr, ptr %26, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = mul nsw i32 %277, 6
  %279 = add nsw i32 %278, 16
  store i32 %279, ptr %52, align 4, !tbaa !9
  %280 = load i32, ptr %51, align 4, !tbaa !9
  %281 = load i32, ptr %52, align 4, !tbaa !9
  %282 = icmp sge i32 %280, %281
  br i1 %282, label %283, label %285

283:                                              ; preds = %272
  %284 = load i32, ptr %51, align 4, !tbaa !9
  br label %287

285:                                              ; preds = %272
  %286 = load i32, ptr %52, align 4, !tbaa !9
  br label %287

287:                                              ; preds = %285, %283
  %288 = phi i32 [ %284, %283 ], [ %286, %285 ]
  store i32 %288, ptr %82, align 4, !tbaa !9
  %289 = load i32, ptr %82, align 4, !tbaa !9
  %290 = load ptr, ptr %26, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = sub nsw i32 %289, %291
  %293 = load ptr, ptr %26, align 8, !tbaa !5
  %294 = load i32, ptr %293, align 4, !tbaa !9
  %295 = load ptr, ptr %26, align 8, !tbaa !5
  %296 = load ptr, ptr %26, align 8, !tbaa !5
  %297 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %295, ptr noundef @c__1, ptr noundef %296, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %298 = mul nsw i32 %294, %297
  %299 = add nsw i32 %292, %298
  store i32 %299, ptr %83, align 4, !tbaa !9
  %300 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %300, ptr %51, align 4, !tbaa !9
  %301 = load i32, ptr %82, align 4, !tbaa !9
  %302 = load ptr, ptr %26, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = sub nsw i32 %301, %303
  %305 = load ptr, ptr %26, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = load ptr, ptr %26, align 8, !tbaa !5
  %308 = load ptr, ptr %26, align 8, !tbaa !5
  %309 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.4, ptr noundef %307, ptr noundef @c__1, ptr noundef %308, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %310 = mul nsw i32 %306, %309
  %311 = add nsw i32 %304, %310
  store i32 %311, ptr %52, align 4, !tbaa !9
  %312 = load i32, ptr %51, align 4, !tbaa !9
  %313 = load i32, ptr %52, align 4, !tbaa !9
  %314 = icmp sge i32 %312, %313
  br i1 %314, label %315, label %317

315:                                              ; preds = %287
  %316 = load i32, ptr %51, align 4, !tbaa !9
  br label %319

317:                                              ; preds = %287
  %318 = load i32, ptr %52, align 4, !tbaa !9
  br label %319

319:                                              ; preds = %317, %315
  %320 = phi i32 [ %316, %315 ], [ %318, %317 ]
  store i32 %320, ptr %83, align 4, !tbaa !9
  %321 = load i32, ptr %66, align 4, !tbaa !9
  %322 = icmp ne i32 %321, 0
  br i1 %322, label %323, label %345

323:                                              ; preds = %319
  %324 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %324, ptr %51, align 4, !tbaa !9
  %325 = load i32, ptr %82, align 4, !tbaa !9
  %326 = load ptr, ptr %26, align 8, !tbaa !5
  %327 = load i32, ptr %326, align 4, !tbaa !9
  %328 = sub nsw i32 %325, %327
  %329 = load ptr, ptr %26, align 8, !tbaa !5
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = load ptr, ptr %26, align 8, !tbaa !5
  %332 = load ptr, ptr %26, align 8, !tbaa !5
  %333 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.4, ptr noundef %331, ptr noundef @c__1, ptr noundef %332, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %334 = mul nsw i32 %330, %333
  %335 = add nsw i32 %328, %334
  store i32 %335, ptr %52, align 4, !tbaa !9
  %336 = load i32, ptr %51, align 4, !tbaa !9
  %337 = load i32, ptr %52, align 4, !tbaa !9
  %338 = icmp sge i32 %336, %337
  br i1 %338, label %339, label %341

339:                                              ; preds = %323
  %340 = load i32, ptr %51, align 4, !tbaa !9
  br label %343

341:                                              ; preds = %323
  %342 = load i32, ptr %52, align 4, !tbaa !9
  br label %343

343:                                              ; preds = %341, %339
  %344 = phi i32 [ %340, %339 ], [ %342, %341 ]
  store i32 %344, ptr %83, align 4, !tbaa !9
  br label %345

345:                                              ; preds = %343, %319
  br label %347

346:                                              ; preds = %268
  store i32 1, ptr %82, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %347

347:                                              ; preds = %346, %345
  %348 = load i32, ptr %83, align 4, !tbaa !9
  %349 = sitofp i32 %348 to float
  %350 = load ptr, ptr %39, align 8, !tbaa !5
  %351 = getelementptr inbounds float, ptr %350, i64 1
  store float %349, ptr %351, align 4, !tbaa !11
  %352 = load ptr, ptr %40, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  %354 = load i32, ptr %82, align 4, !tbaa !9
  %355 = icmp slt i32 %353, %354
  br i1 %355, label %356, label %361

356:                                              ; preds = %347
  %357 = load i32, ptr %86, align 4, !tbaa !9
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %361, label %359

359:                                              ; preds = %356
  %360 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 -19, ptr %360, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %359, %356, %347
  br label %362

362:                                              ; preds = %361, %264
  %363 = load ptr, ptr %42, align 8, !tbaa !5
  %364 = load i32, ptr %363, align 4, !tbaa !9
  %365 = icmp ne i32 %364, 0
  br i1 %365, label %366, label %371

366:                                              ; preds = %362
  %367 = load ptr, ptr %42, align 8, !tbaa !5
  %368 = load i32, ptr %367, align 4, !tbaa !9
  %369 = sub nsw i32 0, %368
  store i32 %369, ptr %51, align 4, !tbaa !9
  %370 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %51, i32 noundef 5)
  store i32 1, ptr %91, align 4
  br label %1291

371:                                              ; preds = %362
  %372 = load i32, ptr %86, align 4, !tbaa !9
  %373 = icmp ne i32 %372, 0
  br i1 %373, label %374, label %375

374:                                              ; preds = %371
  store i32 1, ptr %91, align 4
  br label %1291

375:                                              ; preds = %371
  br label %376

376:                                              ; preds = %375
  %377 = load ptr, ptr %26, align 8, !tbaa !5
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = icmp eq i32 %378, 0
  br i1 %379, label %380, label %382

380:                                              ; preds = %376
  %381 = load ptr, ptr %31, align 8, !tbaa !5
  store i32 0, ptr %381, align 4, !tbaa !9
  store i32 1, ptr %91, align 4
  br label %1291

382:                                              ; preds = %376
  %383 = call float @slamch_(ptr noundef @.str.8)
  store float %383, ptr %90, align 4, !tbaa !11
  %384 = call float @slamch_(ptr noundef @.str.2)
  store float %384, ptr %73, align 4, !tbaa !11
  %385 = load float, ptr %73, align 4, !tbaa !11
  %386 = fdiv float 1.000000e+00, %385
  store float %386, ptr %74, align 4, !tbaa !11
  call void @slabad_(ptr noundef %73, ptr noundef %74)
  %387 = load float, ptr %73, align 4, !tbaa !11
  %388 = fpext float %387 to double
  %389 = call double @sqrt(double noundef %388) #4
  %390 = load float, ptr %90, align 4, !tbaa !11
  %391 = fpext float %390 to double
  %392 = fdiv double %389, %391
  %393 = fptrunc double %392 to float
  store float %393, ptr %84, align 4, !tbaa !11
  %394 = load float, ptr %84, align 4, !tbaa !11
  %395 = fdiv float 1.000000e+00, %394
  store float %395, ptr %75, align 4, !tbaa !11
  %396 = load ptr, ptr %26, align 8, !tbaa !5
  %397 = load ptr, ptr %26, align 8, !tbaa !5
  %398 = load ptr, ptr %27, align 8, !tbaa !5
  %399 = load i32, ptr %44, align 4, !tbaa !9
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds float, ptr %398, i64 %400
  %402 = load ptr, ptr %28, align 8, !tbaa !5
  %403 = load ptr, ptr %39, align 8, !tbaa !5
  %404 = getelementptr inbounds float, ptr %403, i64 1
  %405 = call float @slange_(ptr noundef @.str.9, ptr noundef %396, ptr noundef %397, ptr noundef %401, ptr noundef %402, ptr noundef %404)
  store float %405, ptr %54, align 4, !tbaa !11
  store i32 0, ptr %71, align 4, !tbaa !9
  %406 = load float, ptr %54, align 4, !tbaa !11
  %407 = fcmp ogt float %406, 0.000000e+00
  br i1 %407, label %408, label %414

408:                                              ; preds = %382
  %409 = load float, ptr %54, align 4, !tbaa !11
  %410 = load float, ptr %84, align 4, !tbaa !11
  %411 = fcmp olt float %409, %410
  br i1 %411, label %412, label %414

412:                                              ; preds = %408
  %413 = load float, ptr %84, align 4, !tbaa !11
  store float %413, ptr %79, align 4, !tbaa !11
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %421

414:                                              ; preds = %408, %382
  %415 = load float, ptr %54, align 4, !tbaa !11
  %416 = load float, ptr %75, align 4, !tbaa !11
  %417 = fcmp ogt float %415, %416
  br i1 %417, label %418, label %420

418:                                              ; preds = %414
  %419 = load float, ptr %75, align 4, !tbaa !11
  store float %419, ptr %79, align 4, !tbaa !11
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %420

420:                                              ; preds = %418, %414
  br label %421

421:                                              ; preds = %420, %412
  %422 = load i32, ptr %71, align 4, !tbaa !9
  %423 = icmp ne i32 %422, 0
  br i1 %423, label %424, label %432

424:                                              ; preds = %421
  %425 = load ptr, ptr %26, align 8, !tbaa !5
  %426 = load ptr, ptr %26, align 8, !tbaa !5
  %427 = load ptr, ptr %27, align 8, !tbaa !5
  %428 = load i32, ptr %44, align 4, !tbaa !9
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds float, ptr %427, i64 %429
  %431 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %54, ptr noundef %79, ptr noundef %425, ptr noundef %426, ptr noundef %430, ptr noundef %431, ptr noundef %57)
  br label %432

432:                                              ; preds = %424, %421
  %433 = load ptr, ptr %26, align 8, !tbaa !5
  %434 = load ptr, ptr %26, align 8, !tbaa !5
  %435 = load ptr, ptr %29, align 8, !tbaa !5
  %436 = load i32, ptr %46, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds float, ptr %435, i64 %437
  %439 = load ptr, ptr %30, align 8, !tbaa !5
  %440 = load ptr, ptr %39, align 8, !tbaa !5
  %441 = getelementptr inbounds float, ptr %440, i64 1
  %442 = call float @slange_(ptr noundef @.str.9, ptr noundef %433, ptr noundef %434, ptr noundef %438, ptr noundef %439, ptr noundef %441)
  store float %442, ptr %55, align 4, !tbaa !11
  store i32 0, ptr %72, align 4, !tbaa !9
  %443 = load float, ptr %55, align 4, !tbaa !11
  %444 = fcmp ogt float %443, 0.000000e+00
  br i1 %444, label %445, label %451

445:                                              ; preds = %432
  %446 = load float, ptr %55, align 4, !tbaa !11
  %447 = load float, ptr %84, align 4, !tbaa !11
  %448 = fcmp olt float %446, %447
  br i1 %448, label %449, label %451

449:                                              ; preds = %445
  %450 = load float, ptr %84, align 4, !tbaa !11
  store float %450, ptr %80, align 4, !tbaa !11
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %458

451:                                              ; preds = %445, %432
  %452 = load float, ptr %55, align 4, !tbaa !11
  %453 = load float, ptr %75, align 4, !tbaa !11
  %454 = fcmp ogt float %452, %453
  br i1 %454, label %455, label %457

455:                                              ; preds = %451
  %456 = load float, ptr %75, align 4, !tbaa !11
  store float %456, ptr %80, align 4, !tbaa !11
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %457

457:                                              ; preds = %455, %451
  br label %458

458:                                              ; preds = %457, %449
  %459 = load i32, ptr %72, align 4, !tbaa !9
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %461, label %469

461:                                              ; preds = %458
  %462 = load ptr, ptr %26, align 8, !tbaa !5
  %463 = load ptr, ptr %26, align 8, !tbaa !5
  %464 = load ptr, ptr %29, align 8, !tbaa !5
  %465 = load i32, ptr %46, align 4, !tbaa !9
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds float, ptr %464, i64 %466
  %468 = load ptr, ptr %30, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %80, ptr noundef %462, ptr noundef %463, ptr noundef %467, ptr noundef %468, ptr noundef %57)
  br label %469

469:                                              ; preds = %461, %458
  store i32 1, ptr %63, align 4, !tbaa !9
  %470 = load ptr, ptr %26, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr %77, align 4, !tbaa !9
  %473 = load i32, ptr %77, align 4, !tbaa !9
  %474 = load ptr, ptr %26, align 8, !tbaa !5
  %475 = load i32, ptr %474, align 4, !tbaa !9
  %476 = add nsw i32 %473, %475
  store i32 %476, ptr %59, align 4, !tbaa !9
  %477 = load ptr, ptr %26, align 8, !tbaa !5
  %478 = load ptr, ptr %27, align 8, !tbaa !5
  %479 = load i32, ptr %44, align 4, !tbaa !9
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds float, ptr %478, i64 %480
  %482 = load ptr, ptr %28, align 8, !tbaa !5
  %483 = load ptr, ptr %29, align 8, !tbaa !5
  %484 = load i32, ptr %46, align 4, !tbaa !9
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds float, ptr %483, i64 %485
  %487 = load ptr, ptr %30, align 8, !tbaa !5
  %488 = load ptr, ptr %39, align 8, !tbaa !5
  %489 = load i32, ptr %63, align 4, !tbaa !9
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds float, ptr %488, i64 %490
  %492 = load ptr, ptr %39, align 8, !tbaa !5
  %493 = load i32, ptr %77, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds float, ptr %492, i64 %494
  %496 = load ptr, ptr %39, align 8, !tbaa !5
  %497 = load i32, ptr %59, align 4, !tbaa !9
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds float, ptr %496, i64 %498
  call void @sggbal_(ptr noundef @.str.8, ptr noundef %477, ptr noundef %481, ptr noundef %482, ptr noundef %486, ptr noundef %487, ptr noundef %89, ptr noundef %88, ptr noundef %491, ptr noundef %495, ptr noundef %499, ptr noundef %57)
  %500 = load i32, ptr %88, align 4, !tbaa !9
  %501 = add nsw i32 %500, 1
  %502 = load i32, ptr %89, align 4, !tbaa !9
  %503 = sub nsw i32 %501, %502
  store i32 %503, ptr %68, align 4, !tbaa !9
  %504 = load ptr, ptr %26, align 8, !tbaa !5
  %505 = load i32, ptr %504, align 4, !tbaa !9
  %506 = add nsw i32 %505, 1
  %507 = load i32, ptr %89, align 4, !tbaa !9
  %508 = sub nsw i32 %506, %507
  store i32 %508, ptr %64, align 4, !tbaa !9
  %509 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %509, ptr %58, align 4, !tbaa !9
  %510 = load i32, ptr %58, align 4, !tbaa !9
  %511 = load i32, ptr %68, align 4, !tbaa !9
  %512 = add nsw i32 %510, %511
  store i32 %512, ptr %59, align 4, !tbaa !9
  %513 = load ptr, ptr %40, align 8, !tbaa !5
  %514 = load i32, ptr %513, align 4, !tbaa !9
  %515 = add nsw i32 %514, 1
  %516 = load i32, ptr %59, align 4, !tbaa !9
  %517 = sub nsw i32 %515, %516
  store i32 %517, ptr %51, align 4, !tbaa !9
  %518 = load ptr, ptr %29, align 8, !tbaa !5
  %519 = load i32, ptr %89, align 4, !tbaa !9
  %520 = load i32, ptr %89, align 4, !tbaa !9
  %521 = load i32, ptr %45, align 4, !tbaa !9
  %522 = mul nsw i32 %520, %521
  %523 = add nsw i32 %519, %522
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds float, ptr %518, i64 %524
  %526 = load ptr, ptr %30, align 8, !tbaa !5
  %527 = load ptr, ptr %39, align 8, !tbaa !5
  %528 = load i32, ptr %58, align 4, !tbaa !9
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %527, i64 %529
  %531 = load ptr, ptr %39, align 8, !tbaa !5
  %532 = load i32, ptr %59, align 4, !tbaa !9
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds float, ptr %531, i64 %533
  call void @sgeqrf_(ptr noundef %68, ptr noundef %64, ptr noundef %525, ptr noundef %526, ptr noundef %530, ptr noundef %534, ptr noundef %51, ptr noundef %57)
  %535 = load ptr, ptr %40, align 8, !tbaa !5
  %536 = load i32, ptr %535, align 4, !tbaa !9
  %537 = add nsw i32 %536, 1
  %538 = load i32, ptr %59, align 4, !tbaa !9
  %539 = sub nsw i32 %537, %538
  store i32 %539, ptr %51, align 4, !tbaa !9
  %540 = load ptr, ptr %29, align 8, !tbaa !5
  %541 = load i32, ptr %89, align 4, !tbaa !9
  %542 = load i32, ptr %89, align 4, !tbaa !9
  %543 = load i32, ptr %45, align 4, !tbaa !9
  %544 = mul nsw i32 %542, %543
  %545 = add nsw i32 %541, %544
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds float, ptr %540, i64 %546
  %548 = load ptr, ptr %30, align 8, !tbaa !5
  %549 = load ptr, ptr %39, align 8, !tbaa !5
  %550 = load i32, ptr %58, align 4, !tbaa !9
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds float, ptr %549, i64 %551
  %553 = load ptr, ptr %27, align 8, !tbaa !5
  %554 = load i32, ptr %89, align 4, !tbaa !9
  %555 = load i32, ptr %89, align 4, !tbaa !9
  %556 = load i32, ptr %43, align 4, !tbaa !9
  %557 = mul nsw i32 %555, %556
  %558 = add nsw i32 %554, %557
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds float, ptr %553, i64 %559
  %561 = load ptr, ptr %28, align 8, !tbaa !5
  %562 = load ptr, ptr %39, align 8, !tbaa !5
  %563 = load i32, ptr %59, align 4, !tbaa !9
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds float, ptr %562, i64 %564
  call void @sormqr_(ptr noundef @.str.11, ptr noundef @.str.12, ptr noundef %68, ptr noundef %64, ptr noundef %68, ptr noundef %547, ptr noundef %548, ptr noundef %552, ptr noundef %560, ptr noundef %561, ptr noundef %565, ptr noundef %51, ptr noundef %57)
  %566 = load i32, ptr %66, align 4, !tbaa !9
  %567 = icmp ne i32 %566, 0
  br i1 %567, label %568, label %626

568:                                              ; preds = %469
  %569 = load ptr, ptr %26, align 8, !tbaa !5
  %570 = load ptr, ptr %26, align 8, !tbaa !5
  %571 = load ptr, ptr %35, align 8, !tbaa !5
  %572 = load i32, ptr %48, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds float, ptr %571, i64 %573
  %575 = load ptr, ptr %36, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.13, ptr noundef %569, ptr noundef %570, ptr noundef @c_b38, ptr noundef @c_b39, ptr noundef %574, ptr noundef %575)
  %576 = load i32, ptr %68, align 4, !tbaa !9
  %577 = icmp sgt i32 %576, 1
  br i1 %577, label %578, label %603

578:                                              ; preds = %568
  %579 = load i32, ptr %68, align 4, !tbaa !9
  %580 = sub nsw i32 %579, 1
  store i32 %580, ptr %51, align 4, !tbaa !9
  %581 = load i32, ptr %68, align 4, !tbaa !9
  %582 = sub nsw i32 %581, 1
  store i32 %582, ptr %52, align 4, !tbaa !9
  %583 = load ptr, ptr %29, align 8, !tbaa !5
  %584 = load i32, ptr %89, align 4, !tbaa !9
  %585 = add nsw i32 %584, 1
  %586 = load i32, ptr %89, align 4, !tbaa !9
  %587 = load i32, ptr %45, align 4, !tbaa !9
  %588 = mul nsw i32 %586, %587
  %589 = add nsw i32 %585, %588
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds float, ptr %583, i64 %590
  %592 = load ptr, ptr %30, align 8, !tbaa !5
  %593 = load ptr, ptr %35, align 8, !tbaa !5
  %594 = load i32, ptr %89, align 4, !tbaa !9
  %595 = add nsw i32 %594, 1
  %596 = load i32, ptr %89, align 4, !tbaa !9
  %597 = load i32, ptr %47, align 4, !tbaa !9
  %598 = mul nsw i32 %596, %597
  %599 = add nsw i32 %595, %598
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %593, i64 %600
  %602 = load ptr, ptr %36, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.11, ptr noundef %51, ptr noundef %52, ptr noundef %591, ptr noundef %592, ptr noundef %601, ptr noundef %602)
  br label %603

603:                                              ; preds = %578, %568
  %604 = load ptr, ptr %40, align 8, !tbaa !5
  %605 = load i32, ptr %604, align 4, !tbaa !9
  %606 = add nsw i32 %605, 1
  %607 = load i32, ptr %59, align 4, !tbaa !9
  %608 = sub nsw i32 %606, %607
  store i32 %608, ptr %51, align 4, !tbaa !9
  %609 = load ptr, ptr %35, align 8, !tbaa !5
  %610 = load i32, ptr %89, align 4, !tbaa !9
  %611 = load i32, ptr %89, align 4, !tbaa !9
  %612 = load i32, ptr %47, align 4, !tbaa !9
  %613 = mul nsw i32 %611, %612
  %614 = add nsw i32 %610, %613
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds float, ptr %609, i64 %615
  %617 = load ptr, ptr %36, align 8, !tbaa !5
  %618 = load ptr, ptr %39, align 8, !tbaa !5
  %619 = load i32, ptr %58, align 4, !tbaa !9
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds float, ptr %618, i64 %620
  %622 = load ptr, ptr %39, align 8, !tbaa !5
  %623 = load i32, ptr %59, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds float, ptr %622, i64 %624
  call void @sorgqr_(ptr noundef %68, ptr noundef %68, ptr noundef %68, ptr noundef %616, ptr noundef %617, ptr noundef %621, ptr noundef %625, ptr noundef %51, ptr noundef %57)
  br label %626

626:                                              ; preds = %603, %469
  %627 = load i32, ptr %67, align 4, !tbaa !9
  %628 = icmp ne i32 %627, 0
  br i1 %628, label %629, label %637

629:                                              ; preds = %626
  %630 = load ptr, ptr %26, align 8, !tbaa !5
  %631 = load ptr, ptr %26, align 8, !tbaa !5
  %632 = load ptr, ptr %37, align 8, !tbaa !5
  %633 = load i32, ptr %50, align 4, !tbaa !9
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds float, ptr %632, i64 %634
  %636 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.13, ptr noundef %630, ptr noundef %631, ptr noundef @c_b38, ptr noundef @c_b39, ptr noundef %635, ptr noundef %636)
  br label %637

637:                                              ; preds = %629, %626
  %638 = load ptr, ptr %22, align 8, !tbaa !5
  %639 = load ptr, ptr %23, align 8, !tbaa !5
  %640 = load ptr, ptr %26, align 8, !tbaa !5
  %641 = load ptr, ptr %27, align 8, !tbaa !5
  %642 = load i32, ptr %44, align 4, !tbaa !9
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds float, ptr %641, i64 %643
  %645 = load ptr, ptr %28, align 8, !tbaa !5
  %646 = load ptr, ptr %29, align 8, !tbaa !5
  %647 = load i32, ptr %46, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds float, ptr %646, i64 %648
  %650 = load ptr, ptr %30, align 8, !tbaa !5
  %651 = load ptr, ptr %35, align 8, !tbaa !5
  %652 = load i32, ptr %48, align 4, !tbaa !9
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds float, ptr %651, i64 %653
  %655 = load ptr, ptr %36, align 8, !tbaa !5
  %656 = load ptr, ptr %37, align 8, !tbaa !5
  %657 = load i32, ptr %50, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %656, i64 %658
  %660 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgghrd_(ptr noundef %638, ptr noundef %639, ptr noundef %640, ptr noundef %89, ptr noundef %88, ptr noundef %644, ptr noundef %645, ptr noundef %649, ptr noundef %650, ptr noundef %654, ptr noundef %655, ptr noundef %659, ptr noundef %660, ptr noundef %57)
  %661 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %661, ptr %59, align 4, !tbaa !9
  %662 = load ptr, ptr %40, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  %664 = add nsw i32 %663, 1
  %665 = load i32, ptr %59, align 4, !tbaa !9
  %666 = sub nsw i32 %664, %665
  store i32 %666, ptr %51, align 4, !tbaa !9
  %667 = load ptr, ptr %22, align 8, !tbaa !5
  %668 = load ptr, ptr %23, align 8, !tbaa !5
  %669 = load ptr, ptr %26, align 8, !tbaa !5
  %670 = load ptr, ptr %27, align 8, !tbaa !5
  %671 = load i32, ptr %44, align 4, !tbaa !9
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds float, ptr %670, i64 %672
  %674 = load ptr, ptr %28, align 8, !tbaa !5
  %675 = load ptr, ptr %29, align 8, !tbaa !5
  %676 = load i32, ptr %46, align 4, !tbaa !9
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %675, i64 %677
  %679 = load ptr, ptr %30, align 8, !tbaa !5
  %680 = load ptr, ptr %32, align 8, !tbaa !5
  %681 = getelementptr inbounds float, ptr %680, i64 1
  %682 = load ptr, ptr %33, align 8, !tbaa !5
  %683 = getelementptr inbounds float, ptr %682, i64 1
  %684 = load ptr, ptr %34, align 8, !tbaa !5
  %685 = getelementptr inbounds float, ptr %684, i64 1
  %686 = load ptr, ptr %35, align 8, !tbaa !5
  %687 = load i32, ptr %48, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %686, i64 %688
  %690 = load ptr, ptr %36, align 8, !tbaa !5
  %691 = load ptr, ptr %37, align 8, !tbaa !5
  %692 = load i32, ptr %50, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %691, i64 %693
  %695 = load ptr, ptr %38, align 8, !tbaa !5
  %696 = load ptr, ptr %39, align 8, !tbaa !5
  %697 = load i32, ptr %59, align 4, !tbaa !9
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds float, ptr %696, i64 %698
  call void @shgeqz_(ptr noundef @.str.2, ptr noundef %667, ptr noundef %668, ptr noundef %669, ptr noundef %89, ptr noundef %88, ptr noundef %673, ptr noundef %674, ptr noundef %678, ptr noundef %679, ptr noundef %681, ptr noundef %683, ptr noundef %685, ptr noundef %689, ptr noundef %690, ptr noundef %694, ptr noundef %695, ptr noundef %699, ptr noundef %51, ptr noundef %57)
  %700 = load i32, ptr %57, align 4, !tbaa !9
  %701 = icmp ne i32 %700, 0
  br i1 %701, label %702, label %737

702:                                              ; preds = %637
  %703 = load i32, ptr %57, align 4, !tbaa !9
  %704 = icmp sgt i32 %703, 0
  br i1 %704, label %705, label %713

705:                                              ; preds = %702
  %706 = load i32, ptr %57, align 4, !tbaa !9
  %707 = load ptr, ptr %26, align 8, !tbaa !5
  %708 = load i32, ptr %707, align 4, !tbaa !9
  %709 = icmp sle i32 %706, %708
  br i1 %709, label %710, label %713

710:                                              ; preds = %705
  %711 = load i32, ptr %57, align 4, !tbaa !9
  %712 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %711, ptr %712, align 4, !tbaa !9
  br label %736

713:                                              ; preds = %705, %702
  %714 = load i32, ptr %57, align 4, !tbaa !9
  %715 = load ptr, ptr %26, align 8, !tbaa !5
  %716 = load i32, ptr %715, align 4, !tbaa !9
  %717 = icmp sgt i32 %714, %716
  br i1 %717, label %718, label %730

718:                                              ; preds = %713
  %719 = load i32, ptr %57, align 4, !tbaa !9
  %720 = load ptr, ptr %26, align 8, !tbaa !5
  %721 = load i32, ptr %720, align 4, !tbaa !9
  %722 = shl i32 %721, 1
  %723 = icmp sle i32 %719, %722
  br i1 %723, label %724, label %730

724:                                              ; preds = %718
  %725 = load i32, ptr %57, align 4, !tbaa !9
  %726 = load ptr, ptr %26, align 8, !tbaa !5
  %727 = load i32, ptr %726, align 4, !tbaa !9
  %728 = sub nsw i32 %725, %727
  %729 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %728, ptr %729, align 4, !tbaa !9
  br label %735

730:                                              ; preds = %718, %713
  %731 = load ptr, ptr %26, align 8, !tbaa !5
  %732 = load i32, ptr %731, align 4, !tbaa !9
  %733 = add nsw i32 %732, 1
  %734 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %733, ptr %734, align 4, !tbaa !9
  br label %735

735:                                              ; preds = %730, %724
  br label %736

736:                                              ; preds = %735, %710
  br label %1286

737:                                              ; preds = %637
  %738 = load ptr, ptr %31, align 8, !tbaa !5
  store i32 0, ptr %738, align 4, !tbaa !9
  %739 = load i32, ptr %85, align 4, !tbaa !9
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %840

741:                                              ; preds = %737
  %742 = load i32, ptr %71, align 4, !tbaa !9
  %743 = icmp ne i32 %742, 0
  br i1 %743, label %744, label %753

744:                                              ; preds = %741
  %745 = load ptr, ptr %26, align 8, !tbaa !5
  %746 = load ptr, ptr %32, align 8, !tbaa !5
  %747 = getelementptr inbounds float, ptr %746, i64 1
  %748 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %79, ptr noundef %54, ptr noundef %745, ptr noundef @c__1, ptr noundef %747, ptr noundef %748, ptr noundef %57)
  %749 = load ptr, ptr %26, align 8, !tbaa !5
  %750 = load ptr, ptr %33, align 8, !tbaa !5
  %751 = getelementptr inbounds float, ptr %750, i64 1
  %752 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %79, ptr noundef %54, ptr noundef %749, ptr noundef @c__1, ptr noundef %751, ptr noundef %752, ptr noundef %57)
  br label %753

753:                                              ; preds = %744, %741
  %754 = load i32, ptr %72, align 4, !tbaa !9
  %755 = icmp ne i32 %754, 0
  br i1 %755, label %756, label %761

756:                                              ; preds = %753
  %757 = load ptr, ptr %26, align 8, !tbaa !5
  %758 = load ptr, ptr %34, align 8, !tbaa !5
  %759 = getelementptr inbounds float, ptr %758, i64 1
  %760 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %80, ptr noundef %55, ptr noundef %757, ptr noundef @c__1, ptr noundef %759, ptr noundef %760, ptr noundef %57)
  br label %761

761:                                              ; preds = %756, %753
  %762 = load ptr, ptr %26, align 8, !tbaa !5
  %763 = load i32, ptr %762, align 4, !tbaa !9
  store i32 %763, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %764

764:                                              ; preds = %787, %761
  %765 = load i32, ptr %62, align 4, !tbaa !9
  %766 = load i32, ptr %51, align 4, !tbaa !9
  %767 = icmp sle i32 %765, %766
  br i1 %767, label %768, label %790

768:                                              ; preds = %764
  %769 = load ptr, ptr %25, align 8, !tbaa !5
  %770 = load ptr, ptr %32, align 8, !tbaa !5
  %771 = load i32, ptr %62, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds float, ptr %770, i64 %772
  %774 = load ptr, ptr %33, align 8, !tbaa !5
  %775 = load i32, ptr %62, align 4, !tbaa !9
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds float, ptr %774, i64 %776
  %778 = load ptr, ptr %34, align 8, !tbaa !5
  %779 = load i32, ptr %62, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds float, ptr %778, i64 %780
  %782 = call i32 (ptr, ptr, ptr, ...) %769(ptr noundef %773, ptr noundef %777, ptr noundef %781)
  %783 = load ptr, ptr %41, align 8, !tbaa !5
  %784 = load i32, ptr %62, align 4, !tbaa !9
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds i32, ptr %783, i64 %785
  store i32 %782, ptr %786, align 4, !tbaa !9
  br label %787

787:                                              ; preds = %768
  %788 = load i32, ptr %62, align 4, !tbaa !9
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr %62, align 4, !tbaa !9
  br label %764, !llvm.loop !13

790:                                              ; preds = %764
  %791 = load ptr, ptr %40, align 8, !tbaa !5
  %792 = load i32, ptr %791, align 4, !tbaa !9
  %793 = load i32, ptr %59, align 4, !tbaa !9
  %794 = sub nsw i32 %792, %793
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr %51, align 4, !tbaa !9
  %796 = load ptr, ptr %41, align 8, !tbaa !5
  %797 = getelementptr inbounds i32, ptr %796, i64 1
  %798 = load ptr, ptr %26, align 8, !tbaa !5
  %799 = load ptr, ptr %27, align 8, !tbaa !5
  %800 = load i32, ptr %44, align 4, !tbaa !9
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds float, ptr %799, i64 %801
  %803 = load ptr, ptr %28, align 8, !tbaa !5
  %804 = load ptr, ptr %29, align 8, !tbaa !5
  %805 = load i32, ptr %46, align 4, !tbaa !9
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds float, ptr %804, i64 %806
  %808 = load ptr, ptr %30, align 8, !tbaa !5
  %809 = load ptr, ptr %32, align 8, !tbaa !5
  %810 = getelementptr inbounds float, ptr %809, i64 1
  %811 = load ptr, ptr %33, align 8, !tbaa !5
  %812 = getelementptr inbounds float, ptr %811, i64 1
  %813 = load ptr, ptr %34, align 8, !tbaa !5
  %814 = getelementptr inbounds float, ptr %813, i64 1
  %815 = load ptr, ptr %35, align 8, !tbaa !5
  %816 = load i32, ptr %48, align 4, !tbaa !9
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds float, ptr %815, i64 %817
  %819 = load ptr, ptr %36, align 8, !tbaa !5
  %820 = load ptr, ptr %37, align 8, !tbaa !5
  %821 = load i32, ptr %50, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %820, i64 %822
  %824 = load ptr, ptr %38, align 8, !tbaa !5
  %825 = load ptr, ptr %31, align 8, !tbaa !5
  %826 = getelementptr inbounds [2 x float], ptr %87, i64 0, i64 0
  %827 = load ptr, ptr %39, align 8, !tbaa !5
  %828 = load i32, ptr %59, align 4, !tbaa !9
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds float, ptr %827, i64 %829
  %831 = getelementptr inbounds [1 x i32], ptr %56, i64 0, i64 0
  call void @stgsen_(ptr noundef @c__0, ptr noundef %66, ptr noundef %67, ptr noundef %797, ptr noundef %798, ptr noundef %802, ptr noundef %803, ptr noundef %807, ptr noundef %808, ptr noundef %810, ptr noundef %812, ptr noundef %814, ptr noundef %818, ptr noundef %819, ptr noundef %823, ptr noundef %824, ptr noundef %825, ptr noundef %60, ptr noundef %61, ptr noundef %826, ptr noundef %830, ptr noundef %51, ptr noundef %831, ptr noundef @c__1, ptr noundef %57)
  %832 = load i32, ptr %57, align 4, !tbaa !9
  %833 = icmp eq i32 %832, 1
  br i1 %833, label %834, label %839

834:                                              ; preds = %790
  %835 = load ptr, ptr %26, align 8, !tbaa !5
  %836 = load i32, ptr %835, align 4, !tbaa !9
  %837 = add nsw i32 %836, 3
  %838 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %837, ptr %838, align 4, !tbaa !9
  br label %839

839:                                              ; preds = %834, %790
  br label %840

840:                                              ; preds = %839, %737
  %841 = load i32, ptr %66, align 4, !tbaa !9
  %842 = icmp ne i32 %841, 0
  br i1 %842, label %843, label %859

843:                                              ; preds = %840
  %844 = load ptr, ptr %26, align 8, !tbaa !5
  %845 = load ptr, ptr %39, align 8, !tbaa !5
  %846 = load i32, ptr %63, align 4, !tbaa !9
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds float, ptr %845, i64 %847
  %849 = load ptr, ptr %39, align 8, !tbaa !5
  %850 = load i32, ptr %77, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds float, ptr %849, i64 %851
  %853 = load ptr, ptr %26, align 8, !tbaa !5
  %854 = load ptr, ptr %35, align 8, !tbaa !5
  %855 = load i32, ptr %48, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %854, i64 %856
  %858 = load ptr, ptr %36, align 8, !tbaa !5
  call void @sggbak_(ptr noundef @.str.8, ptr noundef @.str.11, ptr noundef %844, ptr noundef %89, ptr noundef %88, ptr noundef %848, ptr noundef %852, ptr noundef %853, ptr noundef %857, ptr noundef %858, ptr noundef %57)
  br label %859

859:                                              ; preds = %843, %840
  %860 = load i32, ptr %67, align 4, !tbaa !9
  %861 = icmp ne i32 %860, 0
  br i1 %861, label %862, label %878

862:                                              ; preds = %859
  %863 = load ptr, ptr %26, align 8, !tbaa !5
  %864 = load ptr, ptr %39, align 8, !tbaa !5
  %865 = load i32, ptr %63, align 4, !tbaa !9
  %866 = sext i32 %865 to i64
  %867 = getelementptr inbounds float, ptr %864, i64 %866
  %868 = load ptr, ptr %39, align 8, !tbaa !5
  %869 = load i32, ptr %77, align 4, !tbaa !9
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds float, ptr %868, i64 %870
  %872 = load ptr, ptr %26, align 8, !tbaa !5
  %873 = load ptr, ptr %37, align 8, !tbaa !5
  %874 = load i32, ptr %50, align 4, !tbaa !9
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds float, ptr %873, i64 %875
  %877 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sggbak_(ptr noundef @.str.8, ptr noundef @.str.14, ptr noundef %863, ptr noundef %89, ptr noundef %88, ptr noundef %867, ptr noundef %871, ptr noundef %872, ptr noundef %876, ptr noundef %877, ptr noundef %57)
  br label %878

878:                                              ; preds = %862, %859
  %879 = load i32, ptr %71, align 4, !tbaa !9
  %880 = icmp ne i32 %879, 0
  br i1 %880, label %881, label %1059

881:                                              ; preds = %878
  %882 = load ptr, ptr %26, align 8, !tbaa !5
  %883 = load i32, ptr %882, align 4, !tbaa !9
  store i32 %883, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %884

884:                                              ; preds = %1055, %881
  %885 = load i32, ptr %62, align 4, !tbaa !9
  %886 = load i32, ptr %51, align 4, !tbaa !9
  %887 = icmp sle i32 %885, %886
  br i1 %887, label %888, label %1058

888:                                              ; preds = %884
  %889 = load ptr, ptr %33, align 8, !tbaa !5
  %890 = load i32, ptr %62, align 4, !tbaa !9
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds float, ptr %889, i64 %891
  %893 = load float, ptr %892, align 4, !tbaa !11
  %894 = fcmp une float %893, 0.000000e+00
  br i1 %894, label %895, label %1054

895:                                              ; preds = %888
  %896 = load ptr, ptr %32, align 8, !tbaa !5
  %897 = load i32, ptr %62, align 4, !tbaa !9
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds float, ptr %896, i64 %898
  %900 = load float, ptr %899, align 4, !tbaa !11
  %901 = load float, ptr %74, align 4, !tbaa !11
  %902 = fdiv float %900, %901
  %903 = load float, ptr %79, align 4, !tbaa !11
  %904 = load float, ptr %54, align 4, !tbaa !11
  %905 = fdiv float %903, %904
  %906 = fcmp ogt float %902, %905
  br i1 %906, label %919, label %907

907:                                              ; preds = %895
  %908 = load float, ptr %73, align 4, !tbaa !11
  %909 = load ptr, ptr %32, align 8, !tbaa !5
  %910 = load i32, ptr %62, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds float, ptr %909, i64 %911
  %913 = load float, ptr %912, align 4, !tbaa !11
  %914 = fdiv float %908, %913
  %915 = load float, ptr %54, align 4, !tbaa !11
  %916 = load float, ptr %79, align 4, !tbaa !11
  %917 = fdiv float %915, %916
  %918 = fcmp ogt float %914, %917
  br i1 %918, label %919, label %973

919:                                              ; preds = %907, %895
  %920 = load ptr, ptr %27, align 8, !tbaa !5
  %921 = load i32, ptr %62, align 4, !tbaa !9
  %922 = load i32, ptr %62, align 4, !tbaa !9
  %923 = load i32, ptr %43, align 4, !tbaa !9
  %924 = mul nsw i32 %922, %923
  %925 = add nsw i32 %921, %924
  %926 = sext i32 %925 to i64
  %927 = getelementptr inbounds float, ptr %920, i64 %926
  %928 = load float, ptr %927, align 4, !tbaa !11
  %929 = load ptr, ptr %32, align 8, !tbaa !5
  %930 = load i32, ptr %62, align 4, !tbaa !9
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds float, ptr %929, i64 %931
  %933 = load float, ptr %932, align 4, !tbaa !11
  %934 = fdiv float %928, %933
  store float %934, ptr %53, align 4, !tbaa !11
  %935 = load float, ptr %53, align 4, !tbaa !11
  %936 = fcmp oge float %935, 0.000000e+00
  br i1 %936, label %937, label %939

937:                                              ; preds = %919
  %938 = load float, ptr %53, align 4, !tbaa !11
  br label %942

939:                                              ; preds = %919
  %940 = load float, ptr %53, align 4, !tbaa !11
  %941 = fneg float %940
  br label %942

942:                                              ; preds = %939, %937
  %943 = phi float [ %938, %937 ], [ %941, %939 ]
  %944 = load ptr, ptr %39, align 8, !tbaa !5
  %945 = getelementptr inbounds float, ptr %944, i64 1
  store float %943, ptr %945, align 4, !tbaa !11
  %946 = load ptr, ptr %39, align 8, !tbaa !5
  %947 = getelementptr inbounds float, ptr %946, i64 1
  %948 = load float, ptr %947, align 4, !tbaa !11
  %949 = load ptr, ptr %34, align 8, !tbaa !5
  %950 = load i32, ptr %62, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds float, ptr %949, i64 %951
  %953 = load float, ptr %952, align 4, !tbaa !11
  %954 = fmul float %953, %948
  store float %954, ptr %952, align 4, !tbaa !11
  %955 = load ptr, ptr %39, align 8, !tbaa !5
  %956 = getelementptr inbounds float, ptr %955, i64 1
  %957 = load float, ptr %956, align 4, !tbaa !11
  %958 = load ptr, ptr %32, align 8, !tbaa !5
  %959 = load i32, ptr %62, align 4, !tbaa !9
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds float, ptr %958, i64 %960
  %962 = load float, ptr %961, align 4, !tbaa !11
  %963 = fmul float %962, %957
  store float %963, ptr %961, align 4, !tbaa !11
  %964 = load ptr, ptr %39, align 8, !tbaa !5
  %965 = getelementptr inbounds float, ptr %964, i64 1
  %966 = load float, ptr %965, align 4, !tbaa !11
  %967 = load ptr, ptr %33, align 8, !tbaa !5
  %968 = load i32, ptr %62, align 4, !tbaa !9
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds float, ptr %967, i64 %969
  %971 = load float, ptr %970, align 4, !tbaa !11
  %972 = fmul float %971, %966
  store float %972, ptr %970, align 4, !tbaa !11
  br label %1053

973:                                              ; preds = %907
  %974 = load ptr, ptr %33, align 8, !tbaa !5
  %975 = load i32, ptr %62, align 4, !tbaa !9
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds float, ptr %974, i64 %976
  %978 = load float, ptr %977, align 4, !tbaa !11
  %979 = load float, ptr %74, align 4, !tbaa !11
  %980 = fdiv float %978, %979
  %981 = load float, ptr %79, align 4, !tbaa !11
  %982 = load float, ptr %54, align 4, !tbaa !11
  %983 = fdiv float %981, %982
  %984 = fcmp ogt float %980, %983
  br i1 %984, label %997, label %985

985:                                              ; preds = %973
  %986 = load float, ptr %73, align 4, !tbaa !11
  %987 = load ptr, ptr %33, align 8, !tbaa !5
  %988 = load i32, ptr %62, align 4, !tbaa !9
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds float, ptr %987, i64 %989
  %991 = load float, ptr %990, align 4, !tbaa !11
  %992 = fdiv float %986, %991
  %993 = load float, ptr %54, align 4, !tbaa !11
  %994 = load float, ptr %79, align 4, !tbaa !11
  %995 = fdiv float %993, %994
  %996 = fcmp ogt float %992, %995
  br i1 %996, label %997, label %1052

997:                                              ; preds = %985, %973
  %998 = load ptr, ptr %27, align 8, !tbaa !5
  %999 = load i32, ptr %62, align 4, !tbaa !9
  %1000 = load i32, ptr %62, align 4, !tbaa !9
  %1001 = add nsw i32 %1000, 1
  %1002 = load i32, ptr %43, align 4, !tbaa !9
  %1003 = mul nsw i32 %1001, %1002
  %1004 = add nsw i32 %999, %1003
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds float, ptr %998, i64 %1005
  %1007 = load float, ptr %1006, align 4, !tbaa !11
  %1008 = load ptr, ptr %33, align 8, !tbaa !5
  %1009 = load i32, ptr %62, align 4, !tbaa !9
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds float, ptr %1008, i64 %1010
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  %1013 = fdiv float %1007, %1012
  store float %1013, ptr %53, align 4, !tbaa !11
  %1014 = load float, ptr %53, align 4, !tbaa !11
  %1015 = fcmp oge float %1014, 0.000000e+00
  br i1 %1015, label %1016, label %1018

1016:                                             ; preds = %997
  %1017 = load float, ptr %53, align 4, !tbaa !11
  br label %1021

1018:                                             ; preds = %997
  %1019 = load float, ptr %53, align 4, !tbaa !11
  %1020 = fneg float %1019
  br label %1021

1021:                                             ; preds = %1018, %1016
  %1022 = phi float [ %1017, %1016 ], [ %1020, %1018 ]
  %1023 = load ptr, ptr %39, align 8, !tbaa !5
  %1024 = getelementptr inbounds float, ptr %1023, i64 1
  store float %1022, ptr %1024, align 4, !tbaa !11
  %1025 = load ptr, ptr %39, align 8, !tbaa !5
  %1026 = getelementptr inbounds float, ptr %1025, i64 1
  %1027 = load float, ptr %1026, align 4, !tbaa !11
  %1028 = load ptr, ptr %34, align 8, !tbaa !5
  %1029 = load i32, ptr %62, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds float, ptr %1028, i64 %1030
  %1032 = load float, ptr %1031, align 4, !tbaa !11
  %1033 = fmul float %1032, %1027
  store float %1033, ptr %1031, align 4, !tbaa !11
  %1034 = load ptr, ptr %39, align 8, !tbaa !5
  %1035 = getelementptr inbounds float, ptr %1034, i64 1
  %1036 = load float, ptr %1035, align 4, !tbaa !11
  %1037 = load ptr, ptr %32, align 8, !tbaa !5
  %1038 = load i32, ptr %62, align 4, !tbaa !9
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds float, ptr %1037, i64 %1039
  %1041 = load float, ptr %1040, align 4, !tbaa !11
  %1042 = fmul float %1041, %1036
  store float %1042, ptr %1040, align 4, !tbaa !11
  %1043 = load ptr, ptr %39, align 8, !tbaa !5
  %1044 = getelementptr inbounds float, ptr %1043, i64 1
  %1045 = load float, ptr %1044, align 4, !tbaa !11
  %1046 = load ptr, ptr %33, align 8, !tbaa !5
  %1047 = load i32, ptr %62, align 4, !tbaa !9
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds float, ptr %1046, i64 %1048
  %1050 = load float, ptr %1049, align 4, !tbaa !11
  %1051 = fmul float %1050, %1045
  store float %1051, ptr %1049, align 4, !tbaa !11
  br label %1052

1052:                                             ; preds = %1021, %985
  br label %1053

1053:                                             ; preds = %1052, %942
  br label %1054

1054:                                             ; preds = %1053, %888
  br label %1055

1055:                                             ; preds = %1054
  %1056 = load i32, ptr %62, align 4, !tbaa !9
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr %62, align 4, !tbaa !9
  br label %884, !llvm.loop !15

1058:                                             ; preds = %884
  br label %1059

1059:                                             ; preds = %1058, %878
  %1060 = load i32, ptr %72, align 4, !tbaa !9
  %1061 = icmp ne i32 %1060, 0
  br i1 %1061, label %1062, label %1160

1062:                                             ; preds = %1059
  %1063 = load ptr, ptr %26, align 8, !tbaa !5
  %1064 = load i32, ptr %1063, align 4, !tbaa !9
  store i32 %1064, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1065

1065:                                             ; preds = %1156, %1062
  %1066 = load i32, ptr %62, align 4, !tbaa !9
  %1067 = load i32, ptr %51, align 4, !tbaa !9
  %1068 = icmp sle i32 %1066, %1067
  br i1 %1068, label %1069, label %1159

1069:                                             ; preds = %1065
  %1070 = load ptr, ptr %33, align 8, !tbaa !5
  %1071 = load i32, ptr %62, align 4, !tbaa !9
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds float, ptr %1070, i64 %1072
  %1074 = load float, ptr %1073, align 4, !tbaa !11
  %1075 = fcmp une float %1074, 0.000000e+00
  br i1 %1075, label %1076, label %1155

1076:                                             ; preds = %1069
  %1077 = load ptr, ptr %34, align 8, !tbaa !5
  %1078 = load i32, ptr %62, align 4, !tbaa !9
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds float, ptr %1077, i64 %1079
  %1081 = load float, ptr %1080, align 4, !tbaa !11
  %1082 = load float, ptr %74, align 4, !tbaa !11
  %1083 = fdiv float %1081, %1082
  %1084 = load float, ptr %80, align 4, !tbaa !11
  %1085 = load float, ptr %55, align 4, !tbaa !11
  %1086 = fdiv float %1084, %1085
  %1087 = fcmp ogt float %1083, %1086
  br i1 %1087, label %1100, label %1088

1088:                                             ; preds = %1076
  %1089 = load float, ptr %73, align 4, !tbaa !11
  %1090 = load ptr, ptr %34, align 8, !tbaa !5
  %1091 = load i32, ptr %62, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds float, ptr %1090, i64 %1092
  %1094 = load float, ptr %1093, align 4, !tbaa !11
  %1095 = fdiv float %1089, %1094
  %1096 = load float, ptr %55, align 4, !tbaa !11
  %1097 = load float, ptr %80, align 4, !tbaa !11
  %1098 = fdiv float %1096, %1097
  %1099 = fcmp ogt float %1095, %1098
  br i1 %1099, label %1100, label %1154

1100:                                             ; preds = %1088, %1076
  %1101 = load ptr, ptr %29, align 8, !tbaa !5
  %1102 = load i32, ptr %62, align 4, !tbaa !9
  %1103 = load i32, ptr %62, align 4, !tbaa !9
  %1104 = load i32, ptr %45, align 4, !tbaa !9
  %1105 = mul nsw i32 %1103, %1104
  %1106 = add nsw i32 %1102, %1105
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds float, ptr %1101, i64 %1107
  %1109 = load float, ptr %1108, align 4, !tbaa !11
  %1110 = load ptr, ptr %34, align 8, !tbaa !5
  %1111 = load i32, ptr %62, align 4, !tbaa !9
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds float, ptr %1110, i64 %1112
  %1114 = load float, ptr %1113, align 4, !tbaa !11
  %1115 = fdiv float %1109, %1114
  store float %1115, ptr %53, align 4, !tbaa !11
  %1116 = load float, ptr %53, align 4, !tbaa !11
  %1117 = fcmp oge float %1116, 0.000000e+00
  br i1 %1117, label %1118, label %1120

1118:                                             ; preds = %1100
  %1119 = load float, ptr %53, align 4, !tbaa !11
  br label %1123

1120:                                             ; preds = %1100
  %1121 = load float, ptr %53, align 4, !tbaa !11
  %1122 = fneg float %1121
  br label %1123

1123:                                             ; preds = %1120, %1118
  %1124 = phi float [ %1119, %1118 ], [ %1122, %1120 ]
  %1125 = load ptr, ptr %39, align 8, !tbaa !5
  %1126 = getelementptr inbounds float, ptr %1125, i64 1
  store float %1124, ptr %1126, align 4, !tbaa !11
  %1127 = load ptr, ptr %39, align 8, !tbaa !5
  %1128 = getelementptr inbounds float, ptr %1127, i64 1
  %1129 = load float, ptr %1128, align 4, !tbaa !11
  %1130 = load ptr, ptr %34, align 8, !tbaa !5
  %1131 = load i32, ptr %62, align 4, !tbaa !9
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds float, ptr %1130, i64 %1132
  %1134 = load float, ptr %1133, align 4, !tbaa !11
  %1135 = fmul float %1134, %1129
  store float %1135, ptr %1133, align 4, !tbaa !11
  %1136 = load ptr, ptr %39, align 8, !tbaa !5
  %1137 = getelementptr inbounds float, ptr %1136, i64 1
  %1138 = load float, ptr %1137, align 4, !tbaa !11
  %1139 = load ptr, ptr %32, align 8, !tbaa !5
  %1140 = load i32, ptr %62, align 4, !tbaa !9
  %1141 = sext i32 %1140 to i64
  %1142 = getelementptr inbounds float, ptr %1139, i64 %1141
  %1143 = load float, ptr %1142, align 4, !tbaa !11
  %1144 = fmul float %1143, %1138
  store float %1144, ptr %1142, align 4, !tbaa !11
  %1145 = load ptr, ptr %39, align 8, !tbaa !5
  %1146 = getelementptr inbounds float, ptr %1145, i64 1
  %1147 = load float, ptr %1146, align 4, !tbaa !11
  %1148 = load ptr, ptr %33, align 8, !tbaa !5
  %1149 = load i32, ptr %62, align 4, !tbaa !9
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds float, ptr %1148, i64 %1150
  %1152 = load float, ptr %1151, align 4, !tbaa !11
  %1153 = fmul float %1152, %1147
  store float %1153, ptr %1151, align 4, !tbaa !11
  br label %1154

1154:                                             ; preds = %1123, %1088
  br label %1155

1155:                                             ; preds = %1154, %1069
  br label %1156

1156:                                             ; preds = %1155
  %1157 = load i32, ptr %62, align 4, !tbaa !9
  %1158 = add nsw i32 %1157, 1
  store i32 %1158, ptr %62, align 4, !tbaa !9
  br label %1065, !llvm.loop !16

1159:                                             ; preds = %1065
  br label %1160

1160:                                             ; preds = %1159, %1059
  %1161 = load i32, ptr %71, align 4, !tbaa !9
  %1162 = icmp ne i32 %1161, 0
  br i1 %1162, label %1163, label %1179

1163:                                             ; preds = %1160
  %1164 = load ptr, ptr %26, align 8, !tbaa !5
  %1165 = load ptr, ptr %26, align 8, !tbaa !5
  %1166 = load ptr, ptr %27, align 8, !tbaa !5
  %1167 = load i32, ptr %44, align 4, !tbaa !9
  %1168 = sext i32 %1167 to i64
  %1169 = getelementptr inbounds float, ptr %1166, i64 %1168
  %1170 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.15, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %79, ptr noundef %54, ptr noundef %1164, ptr noundef %1165, ptr noundef %1169, ptr noundef %1170, ptr noundef %57)
  %1171 = load ptr, ptr %26, align 8, !tbaa !5
  %1172 = load ptr, ptr %32, align 8, !tbaa !5
  %1173 = getelementptr inbounds float, ptr %1172, i64 1
  %1174 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %79, ptr noundef %54, ptr noundef %1171, ptr noundef @c__1, ptr noundef %1173, ptr noundef %1174, ptr noundef %57)
  %1175 = load ptr, ptr %26, align 8, !tbaa !5
  %1176 = load ptr, ptr %33, align 8, !tbaa !5
  %1177 = getelementptr inbounds float, ptr %1176, i64 1
  %1178 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %79, ptr noundef %54, ptr noundef %1175, ptr noundef @c__1, ptr noundef %1177, ptr noundef %1178, ptr noundef %57)
  br label %1179

1179:                                             ; preds = %1163, %1160
  %1180 = load i32, ptr %72, align 4, !tbaa !9
  %1181 = icmp ne i32 %1180, 0
  br i1 %1181, label %1182, label %1194

1182:                                             ; preds = %1179
  %1183 = load ptr, ptr %26, align 8, !tbaa !5
  %1184 = load ptr, ptr %26, align 8, !tbaa !5
  %1185 = load ptr, ptr %29, align 8, !tbaa !5
  %1186 = load i32, ptr %46, align 4, !tbaa !9
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds float, ptr %1185, i64 %1187
  %1189 = load ptr, ptr %30, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.16, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %80, ptr noundef %55, ptr noundef %1183, ptr noundef %1184, ptr noundef %1188, ptr noundef %1189, ptr noundef %57)
  %1190 = load ptr, ptr %26, align 8, !tbaa !5
  %1191 = load ptr, ptr %34, align 8, !tbaa !5
  %1192 = getelementptr inbounds float, ptr %1191, i64 1
  %1193 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %80, ptr noundef %55, ptr noundef %1190, ptr noundef @c__1, ptr noundef %1192, ptr noundef %1193, ptr noundef %57)
  br label %1194

1194:                                             ; preds = %1182, %1179
  %1195 = load i32, ptr %85, align 4, !tbaa !9
  %1196 = icmp ne i32 %1195, 0
  br i1 %1196, label %1197, label %1285

1197:                                             ; preds = %1194
  store i32 1, ptr %81, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  %1198 = load ptr, ptr %31, align 8, !tbaa !5
  store i32 0, ptr %1198, align 4, !tbaa !9
  store i32 0, ptr %70, align 4, !tbaa !9
  %1199 = load ptr, ptr %26, align 8, !tbaa !5
  %1200 = load i32, ptr %1199, align 4, !tbaa !9
  store i32 %1200, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1201

1201:                                             ; preds = %1281, %1197
  %1202 = load i32, ptr %62, align 4, !tbaa !9
  %1203 = load i32, ptr %51, align 4, !tbaa !9
  %1204 = icmp sle i32 %1202, %1203
  br i1 %1204, label %1205, label %1284

1205:                                             ; preds = %1201
  %1206 = load ptr, ptr %25, align 8, !tbaa !5
  %1207 = load ptr, ptr %32, align 8, !tbaa !5
  %1208 = load i32, ptr %62, align 4, !tbaa !9
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds float, ptr %1207, i64 %1209
  %1211 = load ptr, ptr %33, align 8, !tbaa !5
  %1212 = load i32, ptr %62, align 4, !tbaa !9
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds float, ptr %1211, i64 %1213
  %1215 = load ptr, ptr %34, align 8, !tbaa !5
  %1216 = load i32, ptr %62, align 4, !tbaa !9
  %1217 = sext i32 %1216 to i64
  %1218 = getelementptr inbounds float, ptr %1215, i64 %1217
  %1219 = call i32 (ptr, ptr, ptr, ...) %1206(ptr noundef %1210, ptr noundef %1214, ptr noundef %1218)
  store i32 %1219, ptr %65, align 4, !tbaa !9
  %1220 = load ptr, ptr %33, align 8, !tbaa !5
  %1221 = load i32, ptr %62, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds float, ptr %1220, i64 %1222
  %1224 = load float, ptr %1223, align 4, !tbaa !11
  %1225 = fcmp oeq float %1224, 0.000000e+00
  br i1 %1225, label %1226, label %1245

1226:                                             ; preds = %1205
  %1227 = load i32, ptr %65, align 4, !tbaa !9
  %1228 = icmp ne i32 %1227, 0
  br i1 %1228, label %1229, label %1233

1229:                                             ; preds = %1226
  %1230 = load ptr, ptr %31, align 8, !tbaa !5
  %1231 = load i32, ptr %1230, align 4, !tbaa !9
  %1232 = add nsw i32 %1231, 1
  store i32 %1232, ptr %1230, align 4, !tbaa !9
  br label %1233

1233:                                             ; preds = %1229, %1226
  store i32 0, ptr %70, align 4, !tbaa !9
  %1234 = load i32, ptr %65, align 4, !tbaa !9
  %1235 = icmp ne i32 %1234, 0
  br i1 %1235, label %1236, label %1244

1236:                                             ; preds = %1233
  %1237 = load i32, ptr %81, align 4, !tbaa !9
  %1238 = icmp ne i32 %1237, 0
  br i1 %1238, label %1244, label %1239

1239:                                             ; preds = %1236
  %1240 = load ptr, ptr %26, align 8, !tbaa !5
  %1241 = load i32, ptr %1240, align 4, !tbaa !9
  %1242 = add nsw i32 %1241, 2
  %1243 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %1242, ptr %1243, align 4, !tbaa !9
  br label %1244

1244:                                             ; preds = %1239, %1236, %1233
  br label %1278

1245:                                             ; preds = %1205
  %1246 = load i32, ptr %70, align 4, !tbaa !9
  %1247 = icmp eq i32 %1246, 1
  br i1 %1247, label %1248, label %1276

1248:                                             ; preds = %1245
  %1249 = load i32, ptr %65, align 4, !tbaa !9
  %1250 = icmp ne i32 %1249, 0
  br i1 %1250, label %1254, label %1251

1251:                                             ; preds = %1248
  %1252 = load i32, ptr %81, align 4, !tbaa !9
  %1253 = icmp ne i32 %1252, 0
  br label %1254

1254:                                             ; preds = %1251, %1248
  %1255 = phi i1 [ true, %1248 ], [ %1253, %1251 ]
  %1256 = zext i1 %1255 to i32
  store i32 %1256, ptr %65, align 4, !tbaa !9
  %1257 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1257, ptr %81, align 4, !tbaa !9
  %1258 = load i32, ptr %65, align 4, !tbaa !9
  %1259 = icmp ne i32 %1258, 0
  br i1 %1259, label %1260, label %1264

1260:                                             ; preds = %1254
  %1261 = load ptr, ptr %31, align 8, !tbaa !5
  %1262 = load i32, ptr %1261, align 4, !tbaa !9
  %1263 = add nsw i32 %1262, 2
  store i32 %1263, ptr %1261, align 4, !tbaa !9
  br label %1264

1264:                                             ; preds = %1260, %1254
  store i32 -1, ptr %70, align 4, !tbaa !9
  %1265 = load i32, ptr %65, align 4, !tbaa !9
  %1266 = icmp ne i32 %1265, 0
  br i1 %1266, label %1267, label %1275

1267:                                             ; preds = %1264
  %1268 = load i32, ptr %69, align 4, !tbaa !9
  %1269 = icmp ne i32 %1268, 0
  br i1 %1269, label %1275, label %1270

1270:                                             ; preds = %1267
  %1271 = load ptr, ptr %26, align 8, !tbaa !5
  %1272 = load i32, ptr %1271, align 4, !tbaa !9
  %1273 = add nsw i32 %1272, 2
  %1274 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 %1273, ptr %1274, align 4, !tbaa !9
  br label %1275

1275:                                             ; preds = %1270, %1267, %1264
  br label %1277

1276:                                             ; preds = %1245
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %1277

1277:                                             ; preds = %1276, %1275
  br label %1278

1278:                                             ; preds = %1277, %1244
  %1279 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1279, ptr %69, align 4, !tbaa !9
  %1280 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1280, ptr %81, align 4, !tbaa !9
  br label %1281

1281:                                             ; preds = %1278
  %1282 = load i32, ptr %62, align 4, !tbaa !9
  %1283 = add nsw i32 %1282, 1
  store i32 %1283, ptr %62, align 4, !tbaa !9
  br label %1201, !llvm.loop !17

1284:                                             ; preds = %1201
  br label %1285

1285:                                             ; preds = %1284, %1194
  br label %1286

1286:                                             ; preds = %1285, %736
  %1287 = load i32, ptr %83, align 4, !tbaa !9
  %1288 = sitofp i32 %1287 to float
  %1289 = load ptr, ptr %39, align 8, !tbaa !5
  %1290 = getelementptr inbounds float, ptr %1289, i64 1
  store float %1288, ptr %1290, align 4, !tbaa !11
  store i32 1, ptr %91, align 4
  br label %1291

1291:                                             ; preds = %1286, %380, %374, %366
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 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
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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 @sggbal_(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 @sgeqrf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @sormqr_(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 @slaset_(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 @sorgqr_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !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
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 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
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b38 = external hidden global float, align 4
@c_b39 = external hidden global float, align 4
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

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

56:                                               ; preds = %21
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %61

57:                                               ; preds = %21
  %58 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not471 = icmp eq i32 %58, 0
  br i1 %.not471, label %60, label %59

59:                                               ; preds = %57
  store i32 1, ptr %31, align 4, !tbaa !5
  br label %61

60:                                               ; preds = %57
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %61

61:                                               ; preds = %59, %60, %56
  %.not476 = phi i1 [ false, %56 ], [ true, %59 ], [ false, %60 ]
  %.not480 = phi i1 [ true, %56 ], [ false, %59 ], [ true, %60 ]
  %62 = phi i1 [ false, %56 ], [ false, %59 ], [ true, %60 ]
  %63 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %.not472 = icmp eq i32 %63, 0
  br i1 %.not472, label %65, label %64

64:                                               ; preds = %61
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %69

65:                                               ; preds = %61
  %66 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %.not473 = icmp eq i32 %66, 0
  br i1 %.not473, label %68, label %67

67:                                               ; preds = %65
  store i32 1, ptr %32, align 4, !tbaa !5
  br label %69

68:                                               ; preds = %65
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %69

69:                                               ; preds = %67, %68, %64
  %.not477 = phi i1 [ false, %64 ], [ true, %67 ], [ false, %68 ]
  %70 = phi i1 [ false, %64 ], [ false, %67 ], [ true, %68 ]
  %71 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #5
  store i32 0, ptr %20, align 4, !tbaa !5
  %72 = load i32, ptr %18, align 4, !tbaa !5
  %73 = icmp eq i32 %72, -1
  %brmerge = or i1 %62, %70
  %.mux = select i1 %62, i32 -1, i32 -2
  br i1 %brmerge, label %.thread511.sink.split, label %74

74:                                               ; preds = %69
  %.not474 = icmp eq i32 %71, 0
  br i1 %.not474, label %75, label %77

75:                                               ; preds = %74
  %76 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #5
  %.not475 = icmp eq i32 %76, 0
  br i1 %.not475, label %.thread511.sink.split, label %77

77:                                               ; preds = %75, %74
  %78 = load i32, ptr %4, align 4, !tbaa !5
  %79 = icmp slt i32 %78, 0
  br i1 %79, label %.thread511.sink.split, label %80

80:                                               ; preds = %77
  %81 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %78, i32 1)
  %82 = icmp slt i32 %81, %spec.select
  br i1 %82, label %.thread511.sink.split, label %83

83:                                               ; preds = %80
  %84 = load i32, ptr %8, align 4, !tbaa !5
  %85 = icmp slt i32 %84, %spec.select
  br i1 %85, label %.thread511.sink.split, label %86

86:                                               ; preds = %83
  %87 = load i32, ptr %14, align 4, !tbaa !5
  %88 = icmp slt i32 %87, 1
  %89 = icmp ult i32 %87, %78
  %or.cond531 = and i1 %89, %.not476
  %or.cond579 = or i1 %88, %or.cond531
  br i1 %or.cond579, label %.thread511.sink.split, label %90

90:                                               ; preds = %86
  %91 = load i32, ptr %16, align 4, !tbaa !5
  %92 = icmp slt i32 %91, 1
  %93 = icmp ult i32 %91, %78
  %or.cond532 = and i1 %93, %.not477
  %or.cond580 = or i1 %92, %or.cond532
  br i1 %or.cond580, label %.thread511.sink.split, label %94

94:                                               ; preds = %90
  %.pr = load i32, ptr %20, align 4, !tbaa !5
  %95 = icmp eq i32 %.pr, 0
  br i1 %95, label %96, label %.thread511

96:                                               ; preds = %94
  %.not578 = icmp eq i32 %78, 0
  br i1 %.not578, label %119, label %97

97:                                               ; preds = %96
  %98 = shl i32 %78, 3
  %99 = mul nuw nsw i32 %78, 6
  %100 = add nuw nsw i32 %99, 16
  %101 = tail call i32 @llvm.smax.i32(i32 %98, i32 %100)
  %102 = sub nsw i32 %101, %78
  %103 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #5
  %104 = mul nsw i32 %103, %78
  %105 = add nsw i32 %102, %104
  store i32 %105, ptr %22, align 4, !tbaa !5
  %106 = load i32, ptr %4, align 4, !tbaa !5
  %107 = sub nsw i32 %101, %106
  %108 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.4, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %109 = mul nsw i32 %108, %106
  %110 = add nsw i32 %109, %107
  store i32 %110, ptr %23, align 4, !tbaa !5
  %111 = tail call i32 @llvm.smax.i32(i32 %105, i32 %110)
  br i1 %.not480, label %119, label %112

112:                                              ; preds = %97
  store i32 %111, ptr %22, align 4, !tbaa !5
  %113 = load i32, ptr %4, align 4, !tbaa !5
  %114 = sub nsw i32 %101, %113
  %115 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.4, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %116 = mul nsw i32 %115, %113
  %117 = add nsw i32 %116, %114
  store i32 %117, ptr %23, align 4, !tbaa !5
  %118 = tail call i32 @llvm.smax.i32(i32 %111, i32 %117)
  br label %119

119:                                              ; preds = %96, %97, %112
  %.0437 = phi i32 [ %101, %112 ], [ %101, %97 ], [ 1, %96 ]
  %.0 = phi i32 [ %118, %112 ], [ %111, %97 ], [ 1, %96 ]
  %120 = sitofp i32 %.0 to float
  store float %120, ptr %17, align 4, !tbaa !9
  %121 = load i32, ptr %18, align 4, !tbaa !5
  %122 = icmp sge i32 %121, %.0437
  %or.cond = select i1 %122, i1 true, i1 %73
  br i1 %or.cond, label %.thread, label %.thread511.sink.split

.thread:                                          ; preds = %119
  %.pr508.pr = load i32, ptr %20, align 4, !tbaa !5
  %.not482 = icmp eq i32 %.pr508.pr, 0
  br i1 %.not482, label %126, label %.thread511

.thread511.sink.split:                            ; preds = %69, %119, %90, %86, %83, %80, %77, %75
  %.sink = phi i32 [ %.mux, %69 ], [ -3, %75 ], [ -5, %77 ], [ -7, %80 ], [ -9, %83 ], [ -15, %86 ], [ -17, %90 ], [ -19, %119 ]
  store i32 %.sink, ptr %20, align 4, !tbaa !5
  br label %.thread511

.thread511:                                       ; preds = %.thread511.sink.split, %94, %.thread
  %123 = phi i32 [ %.pr508.pr, %.thread ], [ %.pr, %94 ], [ %.sink, %.thread511.sink.split ]
  %124 = sub nsw i32 0, %123
  store i32 %124, ptr %22, align 4, !tbaa !5
  %125 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %22, i32 noundef 5) #5
  br label %391

126:                                              ; preds = %.thread
  br i1 %73, label %391, label %127

127:                                              ; preds = %126
  %128 = load i32, ptr %4, align 4, !tbaa !5
  %129 = icmp eq i32 %128, 0
  br i1 %129, label %130, label %131

130:                                              ; preds = %127
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %391

131:                                              ; preds = %127
  %132 = tail call float @slamch_(ptr noundef nonnull @.str.8) #5
  %133 = tail call float @slamch_(ptr noundef nonnull @.str.2) #5
  store float %133, ptr %34, align 4, !tbaa !9
  %134 = fdiv float 1.000000e+00, %133
  store float %134, ptr %35, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %34, ptr noundef nonnull %35) #5
  %135 = load float, ptr %34, align 4, !tbaa !9
  %136 = fpext float %135 to double
  %137 = call double @sqrt(double noundef %136) #5
  %138 = fpext float %132 to double
  %139 = fdiv double %137, %138
  %140 = fptrunc double %139 to float
  %141 = fdiv float 1.000000e+00, %140
  %142 = call float @slange_(ptr noundef nonnull @.str.9, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %17) #5
  store float %142, ptr %24, align 4, !tbaa !9
  %143 = fcmp ogt float %142, 0.000000e+00
  %144 = fcmp olt float %142, %140
  %or.cond502 = select i1 %143, i1 %144, i1 false
  br i1 %or.cond502, label %147, label %145

145:                                              ; preds = %131
  %146 = fcmp ogt float %142, %141
  br i1 %146, label %147, label %148

147:                                              ; preds = %145, %131
  %storemerge = phi float [ %140, %131 ], [ %141, %145 ]
  store float %storemerge, ptr %36, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %36, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %27) #5
  br label %148

148:                                              ; preds = %145, %147
  %.not483518 = phi i1 [ false, %147 ], [ true, %145 ]
  %149 = call float @slange_(ptr noundef nonnull @.str.9, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %17) #5
  store float %149, ptr %25, align 4, !tbaa !9
  %150 = fcmp ogt float %149, 0.000000e+00
  %151 = fcmp olt float %149, %140
  %or.cond503 = select i1 %150, i1 %151, i1 false
  br i1 %or.cond503, label %154, label %152

152:                                              ; preds = %148
  %153 = fcmp ogt float %149, %141
  br i1 %153, label %154, label %155

154:                                              ; preds = %152, %148
  %storemerge533 = phi float [ %140, %148 ], [ %141, %152 ]
  store float %storemerge533, ptr %37, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %25, ptr noundef nonnull %37, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %27) #5
  br label %155

155:                                              ; preds = %152, %154
  %.not485523 = phi i1 [ false, %154 ], [ true, %152 ]
  %156 = load i32, ptr %4, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  %158 = add nsw i32 %157, %156
  %159 = sext i32 %157 to i64
  %160 = getelementptr inbounds float, ptr %53, i64 %159
  %161 = sext i32 %158 to i64
  %162 = getelementptr inbounds float, ptr %53, i64 %161
  call void @sggbal_(ptr noundef nonnull @.str.8, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %40, ptr noundef nonnull %39, ptr noundef nonnull %17, ptr noundef nonnull %160, ptr noundef nonnull %162, ptr noundef nonnull %27) #5
  %163 = load i32, ptr %39, align 4, !tbaa !5
  %164 = add nsw i32 %163, 1
  %165 = load i32, ptr %40, align 4, !tbaa !5
  %166 = sub i32 %164, %165
  store i32 %166, ptr %33, align 4, !tbaa !5
  %167 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub = sub i32 %167, %165
  %168 = add i32 %reass.sub, 1
  store i32 %168, ptr %30, align 4, !tbaa !5
  %169 = add nsw i32 %166, %158
  %170 = load i32, ptr %18, align 4, !tbaa !5
  %reass.sub561 = sub i32 %170, %169
  %171 = add i32 %reass.sub561, 1
  store i32 %171, ptr %22, align 4, !tbaa !5
  %172 = add i32 %44, 1
  %173 = mul i32 %165, %172
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds float, ptr %46, i64 %174
  %176 = sext i32 %169 to i64
  %177 = getelementptr inbounds float, ptr %53, i64 %176
  call void @sgeqrf_(ptr noundef nonnull %33, ptr noundef nonnull %30, ptr noundef %175, ptr noundef nonnull %8, ptr noundef nonnull %162, ptr noundef nonnull %177, ptr noundef nonnull %22, ptr noundef nonnull %27) #5
  %178 = load i32, ptr %18, align 4, !tbaa !5
  %reass.sub562 = sub i32 %178, %169
  %179 = add i32 %reass.sub562, 1
  store i32 %179, ptr %22, align 4, !tbaa !5
  %180 = load i32, ptr %40, align 4, !tbaa !5
  %181 = mul i32 %180, %172
  %182 = sext i32 %181 to i64
  %183 = getelementptr inbounds float, ptr %46, i64 %182
  %184 = add i32 %41, 1
  %185 = mul i32 %180, %184
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds float, ptr %43, i64 %186
  call void @sormqr_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, ptr noundef nonnull %33, ptr noundef nonnull %30, ptr noundef nonnull %33, ptr noundef %183, ptr noundef nonnull %8, ptr noundef nonnull %162, ptr noundef %187, ptr noundef nonnull %6, ptr noundef nonnull %177, ptr noundef nonnull %22, ptr noundef nonnull %27) #5
  %188 = load i32, ptr %31, align 4, !tbaa !5
  %.not486 = icmp eq i32 %188, 0
  br i1 %.not486, label %212, label %189

189:                                              ; preds = %155
  call void @slaset_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b38, ptr noundef nonnull @c_b39, ptr noundef %13, ptr noundef nonnull %14) #5
  %190 = load i32, ptr %33, align 4, !tbaa !5
  %191 = icmp sgt i32 %190, 1
  br i1 %191, label %192, label %204

192:                                              ; preds = %189
  %193 = add nsw i32 %190, -1
  store i32 %193, ptr %22, align 4, !tbaa !5
  store i32 %193, ptr %23, align 4, !tbaa !5
  %194 = load i32, ptr %40, align 4, !tbaa !5
  %195 = add nsw i32 %194, 1
  %196 = mul nsw i32 %194, %44
  %197 = add nsw i32 %195, %196
  %198 = sext i32 %197 to i64
  %199 = getelementptr inbounds float, ptr %46, i64 %198
  %200 = mul nsw i32 %194, %50
  %201 = add nsw i32 %195, %200
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds float, ptr %52, i64 %202
  call void @slacpy_(ptr noundef nonnull @.str.11, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef %199, ptr noundef nonnull %8, ptr noundef %203, ptr noundef nonnull %14) #5
  br label %204

204:                                              ; preds = %192, %189
  %205 = load i32, ptr %18, align 4, !tbaa !5
  %reass.sub563 = sub i32 %205, %169
  %206 = add i32 %reass.sub563, 1
  store i32 %206, ptr %22, align 4, !tbaa !5
  %207 = load i32, ptr %40, align 4, !tbaa !5
  %208 = add i32 %50, 1
  %209 = mul i32 %207, %208
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds float, ptr %52, i64 %210
  call void @sorgqr_(ptr noundef nonnull %33, ptr noundef nonnull %33, ptr noundef nonnull %33, ptr noundef %211, ptr noundef nonnull %14, ptr noundef nonnull %162, ptr noundef nonnull %177, ptr noundef nonnull %22, ptr noundef nonnull %27) #5
  br label %212

212:                                              ; preds = %204, %155
  %213 = load i32, ptr %32, align 4, !tbaa !5
  %.not487 = icmp eq i32 %213, 0
  br i1 %.not487, label %215, label %214

214:                                              ; preds = %212
  call void @slaset_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b38, ptr noundef nonnull @c_b39, ptr noundef %15, ptr noundef nonnull %16) #5
  br label %215

215:                                              ; preds = %214, %212
  call void @sgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %4, ptr noundef nonnull %40, ptr noundef nonnull %39, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %27) #5
  %216 = load i32, ptr %18, align 4, !tbaa !5
  %reass.sub564 = sub i32 %216, %158
  %217 = add i32 %reass.sub564, 1
  store i32 %217, ptr %22, align 4, !tbaa !5
  call void @shgeqz_(ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %4, ptr noundef nonnull %40, ptr noundef nonnull %39, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %162, ptr noundef nonnull %22, ptr noundef nonnull %27) #5
  %218 = load i32, ptr %27, align 4, !tbaa !5
  %.not489 = icmp eq i32 %218, 0
  br i1 %.not489, label %228, label %219

219:                                              ; preds = %215
  %220 = icmp slt i32 %218, 1
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  %.not499 = icmp sgt i32 %218, %.pre
  %or.cond581 = select i1 %220, i1 true, i1 %.not499
  br i1 %or.cond581, label %221, label %.loopexit.sink.split

221:                                              ; preds = %219
  %222 = icmp sle i32 %218, %.pre
  %223 = shl i32 %.pre, 1
  %.not500 = icmp sgt i32 %218, %223
  %or.cond504 = or i1 %222, %.not500
  br i1 %or.cond504, label %226, label %224

224:                                              ; preds = %221
  %225 = sub nsw i32 %218, %.pre
  br label %.loopexit.sink.split

226:                                              ; preds = %221
  %227 = add nsw i32 %.pre, 1
  br label %.loopexit.sink.split

228:                                              ; preds = %215
  store i32 0, ptr %9, align 4, !tbaa !5
  br i1 %.not474, label %249, label %229

229:                                              ; preds = %228
  br i1 %.not483518, label %231, label %230

230:                                              ; preds = %229
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %24, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %27) #5
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %24, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %4, ptr noundef nonnull %27) #5
  br label %231

231:                                              ; preds = %230, %229
  br i1 %.not485523, label %233, label %232

232:                                              ; preds = %231
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %37, ptr noundef nonnull %25, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %4, ptr noundef nonnull %27) #5
  br label %233

233:                                              ; preds = %232, %231
  %234 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %234, ptr %22, align 4, !tbaa !5
  %.not491540 = icmp slt i32 %234, 1
  br i1 %.not491540, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %233, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 1, %233 ]
  %235 = getelementptr inbounds float, ptr %47, i64 %indvars.iv
  %236 = getelementptr inbounds float, ptr %48, i64 %indvars.iv
  %237 = getelementptr inbounds float, ptr %49, i64 %indvars.iv
  %238 = call i32 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %235, ptr noundef nonnull %236, ptr noundef nonnull %237) #5
  %239 = getelementptr inbounds i32, ptr %54, i64 %indvars.iv
  store i32 %238, ptr %239, align 4, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %240 = load i32, ptr %22, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %.not491.not = icmp slt i64 %indvars.iv, %241
  br i1 %.not491.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %233
  %242 = load i32, ptr %18, align 4, !tbaa !5
  %reass.sub565 = sub i32 %242, %158
  %243 = add i32 %reass.sub565, 1
  store i32 %243, ptr %22, align 4, !tbaa !5
  call void @stgsen_(ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef %19, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %9, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull %38, ptr noundef nonnull %162, ptr noundef nonnull %22, ptr noundef nonnull %26, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #5
  %244 = load i32, ptr %27, align 4, !tbaa !5
  %245 = icmp eq i32 %244, 1
  br i1 %245, label %246, label %249

246:                                              ; preds = %._crit_edge
  %247 = load i32, ptr %4, align 4, !tbaa !5
  %248 = add nsw i32 %247, 3
  store i32 %248, ptr %20, align 4, !tbaa !5
  br label %249

249:                                              ; preds = %._crit_edge, %246, %228
  %250 = load i32, ptr %31, align 4, !tbaa !5
  %.not492 = icmp eq i32 %250, 0
  br i1 %.not492, label %252, label %251

251:                                              ; preds = %249
  call void @sggbak_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.11, ptr noundef nonnull %4, ptr noundef nonnull %40, ptr noundef nonnull %39, ptr noundef nonnull %17, ptr noundef nonnull %160, ptr noundef nonnull %4, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %27) #5
  br label %252

252:                                              ; preds = %251, %249
  %253 = load i32, ptr %32, align 4, !tbaa !5
  %.not493 = icmp eq i32 %253, 0
  br i1 %.not493, label %255, label %254

254:                                              ; preds = %252
  call void @sggbak_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.14, ptr noundef nonnull %4, ptr noundef nonnull %40, ptr noundef nonnull %39, ptr noundef nonnull %17, ptr noundef nonnull %160, ptr noundef nonnull %4, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %27) #5
  br label %255

255:                                              ; preds = %254, %252
  br i1 %.not483518, label %.loopexit539, label %256

256:                                              ; preds = %255
  %257 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %257, ptr %22, align 4, !tbaa !5
  %.not494542 = icmp slt i32 %257, 1
  br i1 %.not494542, label %.loopexit539, label %.lr.ph545

.lr.ph545:                                        ; preds = %256
  %258 = load float, ptr %35, align 4
  %259 = load float, ptr %36, align 4
  %260 = load float, ptr %24, align 4
  %261 = load float, ptr %34, align 4
  %262 = insertelement <2 x float> poison, float %260, i64 0
  %263 = insertelement <2 x float> %262, float %259, i64 1
  %264 = insertelement <2 x float> poison, float %259, i64 0
  %265 = insertelement <2 x float> %264, float %260, i64 1
  %266 = fdiv <2 x float> %263, %265
  %267 = add nuw i32 %257, 1
  %wide.trip.count = zext i32 %267 to i64
  %268 = insertelement <2 x float> poison, float %261, i64 0
  %269 = insertelement <2 x float> poison, float %258, i64 1
  br label %270

270:                                              ; preds = %.lr.ph545, %313
  %indvars.iv567 = phi i64 [ 1, %.lr.ph545 ], [ %indvars.iv.next568, %313 ]
  %indvars569 = trunc i64 %indvars.iv567 to i32
  %271 = getelementptr inbounds float, ptr %48, i64 %indvars.iv567
  %272 = load float, ptr %271, align 4, !tbaa !9
  %273 = fcmp une float %272, 0.000000e+00
  br i1 %273, label %274, label %313

274:                                              ; preds = %270
  %275 = getelementptr inbounds float, ptr %47, i64 %indvars.iv567
  %276 = load float, ptr %275, align 4, !tbaa !9
  %277 = insertelement <2 x float> %268, float %276, i64 1
  %278 = insertelement <2 x float> %269, float %276, i64 0
  %279 = fdiv <2 x float> %277, %278
  %280 = fcmp ogt <2 x float> %279, %266
  %281 = extractelement <2 x i1> %280, i64 0
  %282 = extractelement <2 x i1> %280, i64 1
  %or.cond558 = select i1 %282, i1 true, i1 %281
  br i1 %or.cond558, label %283, label %287

283:                                              ; preds = %274
  %284 = mul i32 %184, %indvars569
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds float, ptr %43, i64 %285
  br label %.sink.split

287:                                              ; preds = %274
  %288 = insertelement <2 x float> %268, float %272, i64 1
  %289 = insertelement <2 x float> %269, float %272, i64 0
  %290 = fdiv <2 x float> %288, %289
  %291 = fcmp ogt <2 x float> %290, %266
  %shift = shufflevector <2 x i1> %291, <2 x i1> poison, <2 x i32> <i32 1, i32 poison>
  %292 = or <2 x i1> %shift, %291
  %or.cond506 = extractelement <2 x i1> %292, i64 0
  br i1 %or.cond506, label %293, label %313

293:                                              ; preds = %287
  %294 = add nuw nsw i32 %indvars569, 1
  %295 = mul nsw i32 %294, %41
  %296 = sext i32 %295 to i64
  %297 = getelementptr float, ptr %43, i64 %indvars.iv567
  %298 = getelementptr float, ptr %297, i64 %296
  br label %.sink.split

.sink.split:                                      ; preds = %283, %293
  %.sink601 = phi ptr [ %298, %293 ], [ %286, %283 ]
  %.sink600 = phi float [ %272, %293 ], [ %276, %283 ]
  %299 = load float, ptr %.sink601, align 4, !tbaa !9
  %300 = fdiv float %299, %.sink600
  %301 = fcmp oge float %300, 0.000000e+00
  %302 = fneg float %300
  %303 = select i1 %301, float %300, float %302
  store float %303, ptr %17, align 4, !tbaa !9
  %304 = getelementptr inbounds float, ptr %49, i64 %indvars.iv567
  %305 = load float, ptr %304, align 4, !tbaa !9
  %306 = fmul float %305, %303
  store float %306, ptr %304, align 4, !tbaa !9
  %307 = load float, ptr %17, align 4, !tbaa !9
  %308 = load float, ptr %275, align 4, !tbaa !9
  %309 = fmul float %307, %308
  store float %309, ptr %275, align 4, !tbaa !9
  %310 = load float, ptr %17, align 4, !tbaa !9
  %311 = load float, ptr %271, align 4, !tbaa !9
  %312 = fmul float %310, %311
  store float %312, ptr %271, align 4, !tbaa !9
  br label %313

313:                                              ; preds = %.sink.split, %287, %270
  %indvars.iv.next568 = add nuw nsw i64 %indvars.iv567, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next568, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit539, label %270, !llvm.loop !13

.loopexit539:                                     ; preds = %313, %256, %255
  br i1 %.not485523, label %.loopexit538, label %314

314:                                              ; preds = %.loopexit539
  %315 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %315, ptr %22, align 4, !tbaa !5
  %.not495546 = icmp slt i32 %315, 1
  br i1 %.not495546, label %.loopexit538, label %.lr.ph549

.lr.ph549:                                        ; preds = %314
  %316 = load float, ptr %35, align 4
  %317 = load float, ptr %37, align 4
  %318 = load float, ptr %25, align 4
  %319 = load float, ptr %34, align 4
  %320 = insertelement <2 x float> poison, float %317, i64 0
  %321 = insertelement <2 x float> %320, float %318, i64 1
  %322 = insertelement <2 x float> poison, float %318, i64 0
  %323 = insertelement <2 x float> %322, float %317, i64 1
  %324 = fdiv <2 x float> %321, %323
  %325 = add nuw i32 %315, 1
  %wide.trip.count573 = zext i32 %325 to i64
  %326 = insertelement <2 x float> poison, float %316, i64 0
  br label %327

327:                                              ; preds = %.lr.ph549, %360
  %indvars.iv570 = phi i64 [ 1, %.lr.ph549 ], [ %indvars.iv.next571, %360 ]
  %328 = getelementptr inbounds float, ptr %48, i64 %indvars.iv570
  %329 = load float, ptr %328, align 4, !tbaa !9
  %330 = fcmp une float %329, 0.000000e+00
  br i1 %330, label %331, label %360

331:                                              ; preds = %327
  %332 = getelementptr inbounds float, ptr %49, i64 %indvars.iv570
  %333 = load float, ptr %332, align 4, !tbaa !9
  %334 = insertelement <2 x float> poison, float %333, i64 0
  %335 = insertelement <2 x float> %334, float %319, i64 1
  %336 = insertelement <2 x float> %326, float %333, i64 1
  %337 = fdiv <2 x float> %335, %336
  %338 = fcmp ogt <2 x float> %337, %324
  %339 = extractelement <2 x i1> %338, i64 0
  %340 = extractelement <2 x i1> %338, i64 1
  %or.cond560 = select i1 %339, i1 true, i1 %340
  br i1 %or.cond560, label %341, label %360

341:                                              ; preds = %331
  %342 = trunc nuw nsw i64 %indvars.iv570 to i32
  %343 = mul i32 %172, %342
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds float, ptr %46, i64 %344
  %346 = load float, ptr %345, align 4, !tbaa !9
  %347 = fdiv float %346, %333
  %348 = fcmp oge float %347, 0.000000e+00
  %349 = fneg float %347
  %350 = select i1 %348, float %347, float %349
  store float %350, ptr %17, align 4, !tbaa !9
  %351 = load float, ptr %332, align 4, !tbaa !9
  %352 = fmul float %351, %350
  store float %352, ptr %332, align 4, !tbaa !9
  %353 = load float, ptr %17, align 4, !tbaa !9
  %354 = getelementptr inbounds float, ptr %47, i64 %indvars.iv570
  %355 = load float, ptr %354, align 4, !tbaa !9
  %356 = fmul float %353, %355
  store float %356, ptr %354, align 4, !tbaa !9
  %357 = load float, ptr %17, align 4, !tbaa !9
  %358 = load float, ptr %328, align 4, !tbaa !9
  %359 = fmul float %357, %358
  store float %359, ptr %328, align 4, !tbaa !9
  br label %360

360:                                              ; preds = %331, %327, %341
  %indvars.iv.next571 = add nuw nsw i64 %indvars.iv570, 1
  %exitcond574.not = icmp eq i64 %indvars.iv.next571, %wide.trip.count573
  br i1 %exitcond574.not, label %.loopexit538, label %327, !llvm.loop !14

.loopexit538:                                     ; preds = %360, %314, %.loopexit539
  br i1 %.not483518, label %362, label %361

361:                                              ; preds = %.loopexit538
  call void @slascl_(ptr noundef nonnull @.str.15, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %24, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %27) #5
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %24, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %27) #5
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %24, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %4, ptr noundef nonnull %27) #5
  br label %362

362:                                              ; preds = %361, %.loopexit538
  br i1 %.not485523, label %364, label %363

363:                                              ; preds = %362
  call void @slascl_(ptr noundef nonnull @.str.16, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %37, ptr noundef nonnull %25, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %27) #5
  call void @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %37, ptr noundef nonnull %25, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %4, ptr noundef nonnull %27) #5
  br label %364

364:                                              ; preds = %363, %362
  br i1 %.not474, label %.loopexit, label %365

365:                                              ; preds = %364
  store i32 0, ptr %9, align 4, !tbaa !5
  %366 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %366, ptr %22, align 4, !tbaa !5
  %.not496550 = icmp slt i32 %366, 1
  br i1 %.not496550, label %.loopexit, label %.lr.ph556

.lr.ph556:                                        ; preds = %365, %.thread524
  %indvars.iv575 = phi i64 [ %indvars.iv.next576, %.thread524 ], [ 1, %365 ]
  %.0438554 = phi i32 [ %.0447, %.thread524 ], [ 1, %365 ]
  %.0444553 = phi i32 [ %.1445, %.thread524 ], [ 0, %365 ]
  %.0446552 = phi i32 [ %.1439, %.thread524 ], [ 1, %365 ]
  %367 = getelementptr inbounds float, ptr %47, i64 %indvars.iv575
  %368 = getelementptr inbounds float, ptr %48, i64 %indvars.iv575
  %369 = getelementptr inbounds float, ptr %49, i64 %indvars.iv575
  %370 = call i32 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %367, ptr noundef nonnull %368, ptr noundef nonnull %369) #5
  %371 = load float, ptr %368, align 4, !tbaa !9
  %372 = fcmp oeq float %371, 0.000000e+00
  br i1 %372, label %373, label %377

373:                                              ; preds = %.lr.ph556
  %.not498 = icmp eq i32 %370, 0
  br i1 %.not498, label %.thread524, label %374

374:                                              ; preds = %373
  %375 = load i32, ptr %9, align 4, !tbaa !5
  %376 = add nsw i32 %375, 1
  store i32 %376, ptr %9, align 4, !tbaa !5
  %.not534 = icmp eq i32 %.0438554, 0
  br i1 %.not534, label %.thread524.sink.split, label %.thread524

377:                                              ; preds = %.lr.ph556
  %378 = icmp eq i32 %.0444553, 1
  br i1 %378, label %379, label %.thread524

379:                                              ; preds = %377
  %380 = icmp ne i32 %370, 0
  %381 = icmp ne i32 %.0438554, 0
  %382 = select i1 %380, i1 true, i1 %381
  br i1 %382, label %383, label %.thread524

383:                                              ; preds = %379
  %384 = load i32, ptr %9, align 4, !tbaa !5
  %385 = add nsw i32 %384, 2
  store i32 %385, ptr %9, align 4, !tbaa !5
  %386 = icmp eq i32 %.0446552, 0
  br i1 %386, label %.thread524.sink.split, label %.thread524

.thread524.sink.split:                            ; preds = %383, %374
  %.0447.ph = phi i32 [ %370, %374 ], [ 1, %383 ]
  %.1445.ph = phi i32 [ 0, %374 ], [ -1, %383 ]
  %.1439.ph = phi i32 [ 0, %374 ], [ 1, %383 ]
  %387 = load i32, ptr %4, align 4, !tbaa !5
  %388 = add nsw i32 %387, 2
  store i32 %388, ptr %20, align 4, !tbaa !5
  br label %.thread524

.thread524:                                       ; preds = %.thread524.sink.split, %379, %373, %377, %383, %374
  %.0447 = phi i32 [ %370, %374 ], [ 1, %383 ], [ %370, %377 ], [ 0, %373 ], [ 0, %379 ], [ %.0447.ph, %.thread524.sink.split ]
  %.1445 = phi i32 [ 0, %374 ], [ -1, %383 ], [ 1, %377 ], [ 0, %373 ], [ -1, %379 ], [ %.1445.ph, %.thread524.sink.split ]
  %.1439 = phi i32 [ %.0438554, %374 ], [ 1, %383 ], [ %.0438554, %377 ], [ %.0438554, %373 ], [ 0, %379 ], [ %.1439.ph, %.thread524.sink.split ]
  %indvars.iv.next576 = add nuw nsw i64 %indvars.iv575, 1
  %389 = load i32, ptr %22, align 4, !tbaa !5
  %390 = sext i32 %389 to i64
  %.not496.not = icmp slt i64 %indvars.iv575, %390
  br i1 %.not496.not, label %.lr.ph556, label %.loopexit, !llvm.loop !15

.loopexit.sink.split:                             ; preds = %219, %224, %226
  %.sink604 = phi i32 [ %227, %226 ], [ %225, %224 ], [ %218, %219 ]
  store i32 %.sink604, ptr %20, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread524, %.loopexit.sink.split, %365, %364
  store float %120, ptr %17, align 4, !tbaa !9
  br label %391

391:                                              ; preds = %126, %.loopexit, %130, %.thread511
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  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
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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 @sggbal_(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 @sgeqrf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

; 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}
!15 = distinct !{!15, !12}


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