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

138:                                              ; preds = %21
  store i64 1, ptr %81, align 8, !tbaa !9
  store i64 0, ptr %72, align 8, !tbaa !9
  br label %146

139:                                              ; preds = %21
  %140 = load ptr, ptr %23, align 8, !tbaa !5
  %141 = call i64 @lsame_(ptr noundef %140, ptr noundef @.str.1)
  %142 = icmp ne i64 %141, 0
  br i1 %142, label %143, label %144

143:                                              ; preds = %139
  store i64 2, ptr %81, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  br label %145

144:                                              ; preds = %139
  store i64 -1, ptr %81, align 8, !tbaa !9
  store i64 0, ptr %72, align 8, !tbaa !9
  br label %145

145:                                              ; preds = %144, %143
  br label %146

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

150:                                              ; preds = %146
  store i64 1, ptr %83, align 8, !tbaa !9
  store i64 0, ptr %73, align 8, !tbaa !9
  br label %158

151:                                              ; preds = %146
  %152 = load ptr, ptr %24, align 8, !tbaa !5
  %153 = call i64 @lsame_(ptr noundef %152, ptr noundef @.str.1)
  %154 = icmp ne i64 %153, 0
  br i1 %154, label %155, label %156

155:                                              ; preds = %151
  store i64 2, ptr %83, align 8, !tbaa !9
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %157

156:                                              ; preds = %151
  store i64 -1, ptr %83, align 8, !tbaa !9
  store i64 0, ptr %73, align 8, !tbaa !9
  br label %157

157:                                              ; preds = %156, %155
  br label %158

158:                                              ; preds = %157, %150
  %159 = load ptr, ptr %25, align 8, !tbaa !5
  %160 = call i64 @lsame_(ptr noundef %159, ptr noundef @.str.2)
  store i64 %160, ptr %90, align 8, !tbaa !9
  %161 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 0, ptr %161, align 8, !tbaa !9
  %162 = load ptr, ptr %41, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  %164 = icmp eq i64 %163, -1
  %165 = zext i1 %164 to i32
  %166 = sext i32 %165 to i64
  store i64 %166, ptr %91, align 8, !tbaa !9
  %167 = load i64, ptr %81, align 8, !tbaa !9
  %168 = icmp sle i64 %167, 0
  br i1 %168, label %169, label %171

169:                                              ; preds = %158
  %170 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -1, ptr %170, align 8, !tbaa !9
  br label %258

171:                                              ; preds = %158
  %172 = load i64, ptr %83, align 8, !tbaa !9
  %173 = icmp sle i64 %172, 0
  br i1 %173, label %174, label %176

174:                                              ; preds = %171
  %175 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -2, ptr %175, align 8, !tbaa !9
  br label %257

176:                                              ; preds = %171
  %177 = load i64, ptr %90, align 8, !tbaa !9
  %178 = icmp ne i64 %177, 0
  br i1 %178, label %185, label %179

179:                                              ; preds = %176
  %180 = load ptr, ptr %25, align 8, !tbaa !5
  %181 = call i64 @lsame_(ptr noundef %180, ptr noundef @.str)
  %182 = icmp ne i64 %181, 0
  br i1 %182, label %185, label %183

183:                                              ; preds = %179
  %184 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -3, ptr %184, align 8, !tbaa !9
  br label %256

185:                                              ; preds = %179, %176
  %186 = load ptr, ptr %27, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  %188 = icmp slt i64 %187, 0
  br i1 %188, label %189, label %191

189:                                              ; preds = %185
  %190 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -5, ptr %190, align 8, !tbaa !9
  br label %255

191:                                              ; preds = %185
  %192 = load ptr, ptr %29, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = load ptr, ptr %27, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  %196 = icmp sge i64 1, %195
  br i1 %196, label %197, label %198

197:                                              ; preds = %191
  br label %201

198:                                              ; preds = %191
  %199 = load ptr, ptr %27, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  br label %201

201:                                              ; preds = %198, %197
  %202 = phi i64 [ 1, %197 ], [ %200, %198 ]
  %203 = icmp slt i64 %193, %202
  br i1 %203, label %204, label %206

204:                                              ; preds = %201
  %205 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -7, ptr %205, align 8, !tbaa !9
  br label %254

206:                                              ; preds = %201
  %207 = load ptr, ptr %31, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !9
  %209 = load ptr, ptr %27, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = icmp sge i64 1, %210
  br i1 %211, label %212, label %213

212:                                              ; preds = %206
  br label %216

213:                                              ; preds = %206
  %214 = load ptr, ptr %27, align 8, !tbaa !5
  %215 = load i64, ptr %214, align 8, !tbaa !9
  br label %216

216:                                              ; preds = %213, %212
  %217 = phi i64 [ 1, %212 ], [ %215, %213 ]
  %218 = icmp slt i64 %208, %217
  br i1 %218, label %219, label %221

219:                                              ; preds = %216
  %220 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -9, ptr %220, align 8, !tbaa !9
  br label %253

221:                                              ; preds = %216
  %222 = load ptr, ptr %37, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  %224 = icmp slt i64 %223, 1
  br i1 %224, label %234, label %225

225:                                              ; preds = %221
  %226 = load i64, ptr %72, align 8, !tbaa !9
  %227 = icmp ne i64 %226, 0
  br i1 %227, label %228, label %236

228:                                              ; preds = %225
  %229 = load ptr, ptr %37, align 8, !tbaa !5
  %230 = load i64, ptr %229, align 8, !tbaa !9
  %231 = load ptr, ptr %27, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = icmp slt i64 %230, %232
  br i1 %233, label %234, label %236

234:                                              ; preds = %228, %221
  %235 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -15, ptr %235, align 8, !tbaa !9
  br label %252

236:                                              ; preds = %228, %225
  %237 = load ptr, ptr %39, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = icmp slt i64 %238, 1
  br i1 %239, label %249, label %240

240:                                              ; preds = %236
  %241 = load i64, ptr %73, align 8, !tbaa !9
  %242 = icmp ne i64 %241, 0
  br i1 %242, label %243, label %251

243:                                              ; preds = %240
  %244 = load ptr, ptr %39, align 8, !tbaa !5
  %245 = load i64, ptr %244, align 8, !tbaa !9
  %246 = load ptr, ptr %27, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = icmp slt i64 %245, %247
  br i1 %248, label %249, label %251

249:                                              ; preds = %243, %236
  %250 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -17, ptr %250, align 8, !tbaa !9
  br label %251

251:                                              ; preds = %249, %243, %240
  br label %252

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

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

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

255:                                              ; preds = %254, %189
  br label %256

256:                                              ; preds = %255, %183
  br label %257

257:                                              ; preds = %256, %174
  br label %258

258:                                              ; preds = %257, %169
  %259 = load ptr, ptr %43, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = icmp eq i64 %260, 0
  br i1 %261, label %262, label %356

262:                                              ; preds = %258
  %263 = load ptr, ptr %27, align 8, !tbaa !5
  %264 = load i64, ptr %263, align 8, !tbaa !9
  %265 = icmp sgt i64 %264, 0
  br i1 %265, label %266, label %340

266:                                              ; preds = %262
  %267 = load ptr, ptr %27, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = shl i64 %268, 3
  store i64 %269, ptr %52, align 8, !tbaa !9
  %270 = load ptr, ptr %27, align 8, !tbaa !5
  %271 = load i64, ptr %270, align 8, !tbaa !9
  %272 = mul nsw i64 %271, 6
  %273 = add nsw i64 %272, 16
  store i64 %273, ptr %53, align 8, !tbaa !9
  %274 = load i64, ptr %52, align 8, !tbaa !9
  %275 = load i64, ptr %53, align 8, !tbaa !9
  %276 = icmp sge i64 %274, %275
  br i1 %276, label %277, label %279

277:                                              ; preds = %266
  %278 = load i64, ptr %52, align 8, !tbaa !9
  br label %281

279:                                              ; preds = %266
  %280 = load i64, ptr %53, align 8, !tbaa !9
  br label %281

281:                                              ; preds = %279, %277
  %282 = phi i64 [ %278, %277 ], [ %280, %279 ]
  store i64 %282, ptr %87, align 8, !tbaa !9
  %283 = load i64, ptr %87, align 8, !tbaa !9
  %284 = load ptr, ptr %27, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = sub nsw i64 %283, %285
  %287 = load ptr, ptr %27, align 8, !tbaa !5
  %288 = load i64, ptr %287, align 8, !tbaa !9
  %289 = load ptr, ptr %27, align 8, !tbaa !5
  %290 = load ptr, ptr %27, align 8, !tbaa !5
  %291 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %289, ptr noundef @c__1, ptr noundef %290, ptr noundef @c__0)
  %292 = mul nsw i64 %288, %291
  %293 = add nsw i64 %286, %292
  store i64 %293, ptr %88, align 8, !tbaa !9
  %294 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %294, ptr %52, align 8, !tbaa !9
  %295 = load i64, ptr %87, align 8, !tbaa !9
  %296 = load ptr, ptr %27, align 8, !tbaa !5
  %297 = load i64, ptr %296, align 8, !tbaa !9
  %298 = sub nsw i64 %295, %297
  %299 = load ptr, ptr %27, align 8, !tbaa !5
  %300 = load i64, ptr %299, align 8, !tbaa !9
  %301 = load ptr, ptr %27, align 8, !tbaa !5
  %302 = load ptr, ptr %27, align 8, !tbaa !5
  %303 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.4, ptr noundef %301, ptr noundef @c__1, ptr noundef %302, ptr noundef @c_n1)
  %304 = mul nsw i64 %300, %303
  %305 = add nsw i64 %298, %304
  store i64 %305, ptr %53, align 8, !tbaa !9
  %306 = load i64, ptr %52, align 8, !tbaa !9
  %307 = load i64, ptr %53, align 8, !tbaa !9
  %308 = icmp sge i64 %306, %307
  br i1 %308, label %309, label %311

309:                                              ; preds = %281
  %310 = load i64, ptr %52, align 8, !tbaa !9
  br label %313

311:                                              ; preds = %281
  %312 = load i64, ptr %53, align 8, !tbaa !9
  br label %313

313:                                              ; preds = %311, %309
  %314 = phi i64 [ %310, %309 ], [ %312, %311 ]
  store i64 %314, ptr %88, align 8, !tbaa !9
  %315 = load i64, ptr %72, align 8, !tbaa !9
  %316 = icmp ne i64 %315, 0
  br i1 %316, label %317, label %339

317:                                              ; preds = %313
  %318 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %318, ptr %52, align 8, !tbaa !9
  %319 = load i64, ptr %87, align 8, !tbaa !9
  %320 = load ptr, ptr %27, align 8, !tbaa !5
  %321 = load i64, ptr %320, align 8, !tbaa !9
  %322 = sub nsw i64 %319, %321
  %323 = load ptr, ptr %27, align 8, !tbaa !5
  %324 = load i64, ptr %323, align 8, !tbaa !9
  %325 = load ptr, ptr %27, align 8, !tbaa !5
  %326 = load ptr, ptr %27, align 8, !tbaa !5
  %327 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.4, ptr noundef %325, ptr noundef @c__1, ptr noundef %326, ptr noundef @c_n1)
  %328 = mul nsw i64 %324, %327
  %329 = add nsw i64 %322, %328
  store i64 %329, ptr %53, align 8, !tbaa !9
  %330 = load i64, ptr %52, align 8, !tbaa !9
  %331 = load i64, ptr %53, align 8, !tbaa !9
  %332 = icmp sge i64 %330, %331
  br i1 %332, label %333, label %335

333:                                              ; preds = %317
  %334 = load i64, ptr %52, align 8, !tbaa !9
  br label %337

335:                                              ; preds = %317
  %336 = load i64, ptr %53, align 8, !tbaa !9
  br label %337

337:                                              ; preds = %335, %333
  %338 = phi i64 [ %334, %333 ], [ %336, %335 ]
  store i64 %338, ptr %88, align 8, !tbaa !9
  br label %339

339:                                              ; preds = %337, %313
  br label %341

340:                                              ; preds = %262
  store i64 1, ptr %87, align 8, !tbaa !9
  store i64 1, ptr %88, align 8, !tbaa !9
  br label %341

341:                                              ; preds = %340, %339
  %342 = load i64, ptr %88, align 8, !tbaa !9
  %343 = sitofp i64 %342 to float
  %344 = load ptr, ptr %40, align 8, !tbaa !5
  %345 = getelementptr inbounds float, ptr %344, i64 1
  store float %343, ptr %345, align 4, !tbaa !11
  %346 = load ptr, ptr %41, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  %348 = load i64, ptr %87, align 8, !tbaa !9
  %349 = icmp slt i64 %347, %348
  br i1 %349, label %350, label %355

350:                                              ; preds = %341
  %351 = load i64, ptr %91, align 8, !tbaa !9
  %352 = icmp ne i64 %351, 0
  br i1 %352, label %355, label %353

353:                                              ; preds = %350
  %354 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -19, ptr %354, align 8, !tbaa !9
  br label %355

355:                                              ; preds = %353, %350, %341
  br label %356

356:                                              ; preds = %355, %258
  %357 = load ptr, ptr %43, align 8, !tbaa !5
  %358 = load i64, ptr %357, align 8, !tbaa !9
  %359 = icmp ne i64 %358, 0
  br i1 %359, label %360, label %365

360:                                              ; preds = %356
  %361 = load ptr, ptr %43, align 8, !tbaa !5
  %362 = load i64, ptr %361, align 8, !tbaa !9
  %363 = sub nsw i64 0, %362
  store i64 %363, ptr %52, align 8, !tbaa !9
  %364 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %52)
  store i32 0, ptr %22, align 4
  store i32 1, ptr %92, align 4
  br label %1243

365:                                              ; preds = %356
  %366 = load i64, ptr %91, align 8, !tbaa !9
  %367 = icmp ne i64 %366, 0
  br i1 %367, label %368, label %369

368:                                              ; preds = %365
  store i32 0, ptr %22, align 4
  store i32 1, ptr %92, align 4
  br label %1243

369:                                              ; preds = %365
  br label %370

370:                                              ; preds = %369
  %371 = load ptr, ptr %27, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = icmp eq i64 %372, 0
  br i1 %373, label %374, label %376

374:                                              ; preds = %370
  %375 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 0, ptr %375, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %92, align 4
  br label %1243

376:                                              ; preds = %370
  %377 = call double @slamch_(ptr noundef @.str.8)
  %378 = fptrunc double %377 to float
  store float %378, ptr %60, align 4, !tbaa !11
  %379 = call double @slamch_(ptr noundef @.str.2)
  %380 = fptrunc double %379 to float
  store float %380, ptr %78, align 4, !tbaa !11
  %381 = load float, ptr %78, align 4, !tbaa !11
  %382 = fdiv float 1.000000e+00, %381
  store float %382, ptr %79, align 4, !tbaa !11
  %383 = call i32 @slabad_(ptr noundef %78, ptr noundef %79)
  %384 = load float, ptr %78, align 4, !tbaa !11
  %385 = fpext float %384 to double
  %386 = call double @sqrt(double noundef %385) #4
  %387 = load float, ptr %60, align 4, !tbaa !11
  %388 = fpext float %387 to double
  %389 = fdiv double %386, %388
  %390 = fptrunc double %389 to float
  store float %390, ptr %89, align 4, !tbaa !11
  %391 = load float, ptr %89, align 4, !tbaa !11
  %392 = fdiv float 1.000000e+00, %391
  store float %392, ptr %80, align 4, !tbaa !11
  %393 = load ptr, ptr %27, align 8, !tbaa !5
  %394 = load ptr, ptr %27, align 8, !tbaa !5
  %395 = load ptr, ptr %28, align 8, !tbaa !5
  %396 = load i64, ptr %45, align 8, !tbaa !9
  %397 = getelementptr inbounds float, ptr %395, i64 %396
  %398 = load ptr, ptr %29, align 8, !tbaa !5
  %399 = load ptr, ptr %40, align 8, !tbaa !5
  %400 = getelementptr inbounds float, ptr %399, i64 1
  %401 = call double @slange_(ptr noundef @.str.9, ptr noundef %393, ptr noundef %394, ptr noundef %397, ptr noundef %398, ptr noundef %400)
  %402 = fptrunc double %401 to float
  store float %402, ptr %61, align 4, !tbaa !11
  store i64 0, ptr %76, align 8, !tbaa !9
  %403 = load float, ptr %61, align 4, !tbaa !11
  %404 = fcmp ogt float %403, 0.000000e+00
  br i1 %404, label %405, label %411

405:                                              ; preds = %376
  %406 = load float, ptr %61, align 4, !tbaa !11
  %407 = load float, ptr %89, align 4, !tbaa !11
  %408 = fcmp olt float %406, %407
  br i1 %408, label %409, label %411

409:                                              ; preds = %405
  %410 = load float, ptr %89, align 4, !tbaa !11
  store float %410, ptr %84, align 4, !tbaa !11
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %418

411:                                              ; preds = %405, %376
  %412 = load float, ptr %61, align 4, !tbaa !11
  %413 = load float, ptr %80, align 4, !tbaa !11
  %414 = fcmp ogt float %412, %413
  br i1 %414, label %415, label %417

415:                                              ; preds = %411
  %416 = load float, ptr %80, align 4, !tbaa !11
  store float %416, ptr %84, align 4, !tbaa !11
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %417

417:                                              ; preds = %415, %411
  br label %418

418:                                              ; preds = %417, %409
  %419 = load i64, ptr %76, align 8, !tbaa !9
  %420 = icmp ne i64 %419, 0
  br i1 %420, label %421, label %429

421:                                              ; preds = %418
  %422 = load ptr, ptr %27, align 8, !tbaa !5
  %423 = load ptr, ptr %27, align 8, !tbaa !5
  %424 = load ptr, ptr %28, align 8, !tbaa !5
  %425 = load i64, ptr %45, align 8, !tbaa !9
  %426 = getelementptr inbounds float, ptr %424, i64 %425
  %427 = load ptr, ptr %29, align 8, !tbaa !5
  %428 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %61, ptr noundef %84, ptr noundef %422, ptr noundef %423, ptr noundef %426, ptr noundef %427, ptr noundef %64)
  br label %429

429:                                              ; preds = %421, %418
  %430 = load ptr, ptr %27, align 8, !tbaa !5
  %431 = load ptr, ptr %27, align 8, !tbaa !5
  %432 = load ptr, ptr %30, align 8, !tbaa !5
  %433 = load i64, ptr %47, align 8, !tbaa !9
  %434 = getelementptr inbounds float, ptr %432, i64 %433
  %435 = load ptr, ptr %31, align 8, !tbaa !5
  %436 = load ptr, ptr %40, align 8, !tbaa !5
  %437 = getelementptr inbounds float, ptr %436, i64 1
  %438 = call double @slange_(ptr noundef @.str.9, ptr noundef %430, ptr noundef %431, ptr noundef %434, ptr noundef %435, ptr noundef %437)
  %439 = fptrunc double %438 to float
  store float %439, ptr %62, align 4, !tbaa !11
  store i64 0, ptr %77, align 8, !tbaa !9
  %440 = load float, ptr %62, align 4, !tbaa !11
  %441 = fcmp ogt float %440, 0.000000e+00
  br i1 %441, label %442, label %448

442:                                              ; preds = %429
  %443 = load float, ptr %62, align 4, !tbaa !11
  %444 = load float, ptr %89, align 4, !tbaa !11
  %445 = fcmp olt float %443, %444
  br i1 %445, label %446, label %448

446:                                              ; preds = %442
  %447 = load float, ptr %89, align 4, !tbaa !11
  store float %447, ptr %85, align 4, !tbaa !11
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %455

448:                                              ; preds = %442, %429
  %449 = load float, ptr %62, align 4, !tbaa !11
  %450 = load float, ptr %80, align 4, !tbaa !11
  %451 = fcmp ogt float %449, %450
  br i1 %451, label %452, label %454

452:                                              ; preds = %448
  %453 = load float, ptr %80, align 4, !tbaa !11
  store float %453, ptr %85, align 4, !tbaa !11
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %454

454:                                              ; preds = %452, %448
  br label %455

455:                                              ; preds = %454, %446
  %456 = load i64, ptr %77, align 8, !tbaa !9
  %457 = icmp ne i64 %456, 0
  br i1 %457, label %458, label %466

458:                                              ; preds = %455
  %459 = load ptr, ptr %27, align 8, !tbaa !5
  %460 = load ptr, ptr %27, align 8, !tbaa !5
  %461 = load ptr, ptr %30, align 8, !tbaa !5
  %462 = load i64, ptr %47, align 8, !tbaa !9
  %463 = getelementptr inbounds float, ptr %461, i64 %462
  %464 = load ptr, ptr %31, align 8, !tbaa !5
  %465 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %62, ptr noundef %85, ptr noundef %459, ptr noundef %460, ptr noundef %463, ptr noundef %464, ptr noundef %64)
  br label %466

466:                                              ; preds = %458, %455
  store i64 1, ptr %69, align 8, !tbaa !9
  %467 = load ptr, ptr %27, align 8, !tbaa !5
  %468 = load i64, ptr %467, align 8, !tbaa !9
  %469 = add nsw i64 %468, 1
  store i64 %469, ptr %82, align 8, !tbaa !9
  %470 = load i64, ptr %82, align 8, !tbaa !9
  %471 = load ptr, ptr %27, align 8, !tbaa !5
  %472 = load i64, ptr %471, align 8, !tbaa !9
  %473 = add nsw i64 %470, %472
  store i64 %473, ptr %66, align 8, !tbaa !9
  %474 = load ptr, ptr %27, align 8, !tbaa !5
  %475 = load ptr, ptr %28, align 8, !tbaa !5
  %476 = load i64, ptr %45, align 8, !tbaa !9
  %477 = getelementptr inbounds float, ptr %475, i64 %476
  %478 = load ptr, ptr %29, align 8, !tbaa !5
  %479 = load ptr, ptr %30, align 8, !tbaa !5
  %480 = load i64, ptr %47, align 8, !tbaa !9
  %481 = getelementptr inbounds float, ptr %479, i64 %480
  %482 = load ptr, ptr %31, align 8, !tbaa !5
  %483 = load ptr, ptr %40, align 8, !tbaa !5
  %484 = load i64, ptr %69, align 8, !tbaa !9
  %485 = getelementptr inbounds float, ptr %483, i64 %484
  %486 = load ptr, ptr %40, align 8, !tbaa !5
  %487 = load i64, ptr %82, align 8, !tbaa !9
  %488 = getelementptr inbounds float, ptr %486, i64 %487
  %489 = load ptr, ptr %40, align 8, !tbaa !5
  %490 = load i64, ptr %66, align 8, !tbaa !9
  %491 = getelementptr inbounds float, ptr %489, i64 %490
  %492 = call i32 @sggbal_(ptr noundef @.str.8, ptr noundef %474, ptr noundef %477, ptr noundef %478, ptr noundef %481, ptr noundef %482, ptr noundef %59, ptr noundef %58, ptr noundef %485, ptr noundef %488, ptr noundef %491, ptr noundef %64)
  %493 = load i64, ptr %58, align 8, !tbaa !9
  %494 = add nsw i64 %493, 1
  %495 = load i64, ptr %59, align 8, !tbaa !9
  %496 = sub nsw i64 %494, %495
  store i64 %496, ptr %74, align 8, !tbaa !9
  %497 = load ptr, ptr %27, align 8, !tbaa !5
  %498 = load i64, ptr %497, align 8, !tbaa !9
  %499 = add nsw i64 %498, 1
  %500 = load i64, ptr %59, align 8, !tbaa !9
  %501 = sub nsw i64 %499, %500
  store i64 %501, ptr %70, align 8, !tbaa !9
  %502 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %502, ptr %65, align 8, !tbaa !9
  %503 = load i64, ptr %65, align 8, !tbaa !9
  %504 = load i64, ptr %74, align 8, !tbaa !9
  %505 = add nsw i64 %503, %504
  store i64 %505, ptr %66, align 8, !tbaa !9
  %506 = load ptr, ptr %41, align 8, !tbaa !5
  %507 = load i64, ptr %506, align 8, !tbaa !9
  %508 = add nsw i64 %507, 1
  %509 = load i64, ptr %66, align 8, !tbaa !9
  %510 = sub nsw i64 %508, %509
  store i64 %510, ptr %52, align 8, !tbaa !9
  %511 = load ptr, ptr %30, align 8, !tbaa !5
  %512 = load i64, ptr %59, align 8, !tbaa !9
  %513 = load i64, ptr %59, align 8, !tbaa !9
  %514 = load i64, ptr %46, align 8, !tbaa !9
  %515 = mul nsw i64 %513, %514
  %516 = add nsw i64 %512, %515
  %517 = getelementptr inbounds float, ptr %511, i64 %516
  %518 = load ptr, ptr %31, align 8, !tbaa !5
  %519 = load ptr, ptr %40, align 8, !tbaa !5
  %520 = load i64, ptr %65, align 8, !tbaa !9
  %521 = getelementptr inbounds float, ptr %519, i64 %520
  %522 = load ptr, ptr %40, align 8, !tbaa !5
  %523 = load i64, ptr %66, align 8, !tbaa !9
  %524 = getelementptr inbounds float, ptr %522, i64 %523
  %525 = call i32 @sgeqrf_(ptr noundef %74, ptr noundef %70, ptr noundef %517, ptr noundef %518, ptr noundef %521, ptr noundef %524, ptr noundef %52, ptr noundef %64)
  %526 = load ptr, ptr %41, align 8, !tbaa !5
  %527 = load i64, ptr %526, align 8, !tbaa !9
  %528 = add nsw i64 %527, 1
  %529 = load i64, ptr %66, align 8, !tbaa !9
  %530 = sub nsw i64 %528, %529
  store i64 %530, ptr %52, align 8, !tbaa !9
  %531 = load ptr, ptr %30, align 8, !tbaa !5
  %532 = load i64, ptr %59, align 8, !tbaa !9
  %533 = load i64, ptr %59, align 8, !tbaa !9
  %534 = load i64, ptr %46, align 8, !tbaa !9
  %535 = mul nsw i64 %533, %534
  %536 = add nsw i64 %532, %535
  %537 = getelementptr inbounds float, ptr %531, i64 %536
  %538 = load ptr, ptr %31, align 8, !tbaa !5
  %539 = load ptr, ptr %40, align 8, !tbaa !5
  %540 = load i64, ptr %65, align 8, !tbaa !9
  %541 = getelementptr inbounds float, ptr %539, i64 %540
  %542 = load ptr, ptr %28, align 8, !tbaa !5
  %543 = load i64, ptr %59, align 8, !tbaa !9
  %544 = load i64, ptr %59, align 8, !tbaa !9
  %545 = load i64, ptr %44, align 8, !tbaa !9
  %546 = mul nsw i64 %544, %545
  %547 = add nsw i64 %543, %546
  %548 = getelementptr inbounds float, ptr %542, i64 %547
  %549 = load ptr, ptr %29, align 8, !tbaa !5
  %550 = load ptr, ptr %40, align 8, !tbaa !5
  %551 = load i64, ptr %66, align 8, !tbaa !9
  %552 = getelementptr inbounds float, ptr %550, i64 %551
  %553 = call i32 @sormqr_(ptr noundef @.str.11, ptr noundef @.str.12, ptr noundef %74, ptr noundef %70, ptr noundef %74, ptr noundef %537, ptr noundef %538, ptr noundef %541, ptr noundef %548, ptr noundef %549, ptr noundef %552, ptr noundef %52, ptr noundef %64)
  %554 = load i64, ptr %72, align 8, !tbaa !9
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %556, label %611

556:                                              ; preds = %466
  %557 = load ptr, ptr %27, align 8, !tbaa !5
  %558 = load ptr, ptr %27, align 8, !tbaa !5
  %559 = load ptr, ptr %36, align 8, !tbaa !5
  %560 = load i64, ptr %49, align 8, !tbaa !9
  %561 = getelementptr inbounds float, ptr %559, i64 %560
  %562 = load ptr, ptr %37, align 8, !tbaa !5
  %563 = call i32 @slaset_(ptr noundef @.str.13, ptr noundef %557, ptr noundef %558, ptr noundef @c_b38, ptr noundef @c_b39, ptr noundef %561, ptr noundef %562)
  %564 = load i64, ptr %74, align 8, !tbaa !9
  %565 = icmp sgt i64 %564, 1
  br i1 %565, label %566, label %590

566:                                              ; preds = %556
  %567 = load i64, ptr %74, align 8, !tbaa !9
  %568 = sub nsw i64 %567, 1
  store i64 %568, ptr %52, align 8, !tbaa !9
  %569 = load i64, ptr %74, align 8, !tbaa !9
  %570 = sub nsw i64 %569, 1
  store i64 %570, ptr %53, align 8, !tbaa !9
  %571 = load ptr, ptr %30, align 8, !tbaa !5
  %572 = load i64, ptr %59, align 8, !tbaa !9
  %573 = add nsw i64 %572, 1
  %574 = load i64, ptr %59, align 8, !tbaa !9
  %575 = load i64, ptr %46, align 8, !tbaa !9
  %576 = mul nsw i64 %574, %575
  %577 = add nsw i64 %573, %576
  %578 = getelementptr inbounds float, ptr %571, i64 %577
  %579 = load ptr, ptr %31, align 8, !tbaa !5
  %580 = load ptr, ptr %36, align 8, !tbaa !5
  %581 = load i64, ptr %59, align 8, !tbaa !9
  %582 = add nsw i64 %581, 1
  %583 = load i64, ptr %59, align 8, !tbaa !9
  %584 = load i64, ptr %48, align 8, !tbaa !9
  %585 = mul nsw i64 %583, %584
  %586 = add nsw i64 %582, %585
  %587 = getelementptr inbounds float, ptr %580, i64 %586
  %588 = load ptr, ptr %37, align 8, !tbaa !5
  %589 = call i32 @slacpy_(ptr noundef @.str.11, ptr noundef %52, ptr noundef %53, ptr noundef %578, ptr noundef %579, ptr noundef %587, ptr noundef %588)
  br label %590

590:                                              ; preds = %566, %556
  %591 = load ptr, ptr %41, align 8, !tbaa !5
  %592 = load i64, ptr %591, align 8, !tbaa !9
  %593 = add nsw i64 %592, 1
  %594 = load i64, ptr %66, align 8, !tbaa !9
  %595 = sub nsw i64 %593, %594
  store i64 %595, ptr %52, align 8, !tbaa !9
  %596 = load ptr, ptr %36, align 8, !tbaa !5
  %597 = load i64, ptr %59, align 8, !tbaa !9
  %598 = load i64, ptr %59, align 8, !tbaa !9
  %599 = load i64, ptr %48, align 8, !tbaa !9
  %600 = mul nsw i64 %598, %599
  %601 = add nsw i64 %597, %600
  %602 = getelementptr inbounds float, ptr %596, i64 %601
  %603 = load ptr, ptr %37, align 8, !tbaa !5
  %604 = load ptr, ptr %40, align 8, !tbaa !5
  %605 = load i64, ptr %65, align 8, !tbaa !9
  %606 = getelementptr inbounds float, ptr %604, i64 %605
  %607 = load ptr, ptr %40, align 8, !tbaa !5
  %608 = load i64, ptr %66, align 8, !tbaa !9
  %609 = getelementptr inbounds float, ptr %607, i64 %608
  %610 = call i32 @sorgqr_(ptr noundef %74, ptr noundef %74, ptr noundef %74, ptr noundef %602, ptr noundef %603, ptr noundef %606, ptr noundef %609, ptr noundef %52, ptr noundef %64)
  br label %611

611:                                              ; preds = %590, %466
  %612 = load i64, ptr %73, align 8, !tbaa !9
  %613 = icmp ne i64 %612, 0
  br i1 %613, label %614, label %622

614:                                              ; preds = %611
  %615 = load ptr, ptr %27, align 8, !tbaa !5
  %616 = load ptr, ptr %27, align 8, !tbaa !5
  %617 = load ptr, ptr %38, align 8, !tbaa !5
  %618 = load i64, ptr %51, align 8, !tbaa !9
  %619 = getelementptr inbounds float, ptr %617, i64 %618
  %620 = load ptr, ptr %39, align 8, !tbaa !5
  %621 = call i32 @slaset_(ptr noundef @.str.13, ptr noundef %615, ptr noundef %616, ptr noundef @c_b38, ptr noundef @c_b39, ptr noundef %619, ptr noundef %620)
  br label %622

622:                                              ; preds = %614, %611
  %623 = load ptr, ptr %23, align 8, !tbaa !5
  %624 = load ptr, ptr %24, align 8, !tbaa !5
  %625 = load ptr, ptr %27, align 8, !tbaa !5
  %626 = load ptr, ptr %28, align 8, !tbaa !5
  %627 = load i64, ptr %45, align 8, !tbaa !9
  %628 = getelementptr inbounds float, ptr %626, i64 %627
  %629 = load ptr, ptr %29, align 8, !tbaa !5
  %630 = load ptr, ptr %30, align 8, !tbaa !5
  %631 = load i64, ptr %47, align 8, !tbaa !9
  %632 = getelementptr inbounds float, ptr %630, i64 %631
  %633 = load ptr, ptr %31, align 8, !tbaa !5
  %634 = load ptr, ptr %36, align 8, !tbaa !5
  %635 = load i64, ptr %49, align 8, !tbaa !9
  %636 = getelementptr inbounds float, ptr %634, i64 %635
  %637 = load ptr, ptr %37, align 8, !tbaa !5
  %638 = load ptr, ptr %38, align 8, !tbaa !5
  %639 = load i64, ptr %51, align 8, !tbaa !9
  %640 = getelementptr inbounds float, ptr %638, i64 %639
  %641 = load ptr, ptr %39, align 8, !tbaa !5
  %642 = call i32 @sgghrd_(ptr noundef %623, ptr noundef %624, ptr noundef %625, ptr noundef %59, ptr noundef %58, ptr noundef %628, ptr noundef %629, ptr noundef %632, ptr noundef %633, ptr noundef %636, ptr noundef %637, ptr noundef %640, ptr noundef %641, ptr noundef %64)
  %643 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %643, ptr %66, align 8, !tbaa !9
  %644 = load ptr, ptr %41, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  %646 = add nsw i64 %645, 1
  %647 = load i64, ptr %66, align 8, !tbaa !9
  %648 = sub nsw i64 %646, %647
  store i64 %648, ptr %52, align 8, !tbaa !9
  %649 = load ptr, ptr %23, align 8, !tbaa !5
  %650 = load ptr, ptr %24, align 8, !tbaa !5
  %651 = load ptr, ptr %27, align 8, !tbaa !5
  %652 = load ptr, ptr %28, align 8, !tbaa !5
  %653 = load i64, ptr %45, align 8, !tbaa !9
  %654 = getelementptr inbounds float, ptr %652, i64 %653
  %655 = load ptr, ptr %29, align 8, !tbaa !5
  %656 = load ptr, ptr %30, align 8, !tbaa !5
  %657 = load i64, ptr %47, align 8, !tbaa !9
  %658 = getelementptr inbounds float, ptr %656, i64 %657
  %659 = load ptr, ptr %31, align 8, !tbaa !5
  %660 = load ptr, ptr %33, align 8, !tbaa !5
  %661 = getelementptr inbounds float, ptr %660, i64 1
  %662 = load ptr, ptr %34, align 8, !tbaa !5
  %663 = getelementptr inbounds float, ptr %662, i64 1
  %664 = load ptr, ptr %35, align 8, !tbaa !5
  %665 = getelementptr inbounds float, ptr %664, i64 1
  %666 = load ptr, ptr %36, align 8, !tbaa !5
  %667 = load i64, ptr %49, align 8, !tbaa !9
  %668 = getelementptr inbounds float, ptr %666, i64 %667
  %669 = load ptr, ptr %37, align 8, !tbaa !5
  %670 = load ptr, ptr %38, align 8, !tbaa !5
  %671 = load i64, ptr %51, align 8, !tbaa !9
  %672 = getelementptr inbounds float, ptr %670, i64 %671
  %673 = load ptr, ptr %39, align 8, !tbaa !5
  %674 = load ptr, ptr %40, align 8, !tbaa !5
  %675 = load i64, ptr %66, align 8, !tbaa !9
  %676 = getelementptr inbounds float, ptr %674, i64 %675
  %677 = call i32 @shgeqz_(ptr noundef @.str.2, ptr noundef %649, ptr noundef %650, ptr noundef %651, ptr noundef %59, ptr noundef %58, ptr noundef %654, ptr noundef %655, ptr noundef %658, ptr noundef %659, ptr noundef %661, ptr noundef %663, ptr noundef %665, ptr noundef %668, ptr noundef %669, ptr noundef %672, ptr noundef %673, ptr noundef %676, ptr noundef %52, ptr noundef %64)
  %678 = load i64, ptr %64, align 8, !tbaa !9
  %679 = icmp ne i64 %678, 0
  br i1 %679, label %680, label %715

680:                                              ; preds = %622
  %681 = load i64, ptr %64, align 8, !tbaa !9
  %682 = icmp sgt i64 %681, 0
  br i1 %682, label %683, label %691

683:                                              ; preds = %680
  %684 = load i64, ptr %64, align 8, !tbaa !9
  %685 = load ptr, ptr %27, align 8, !tbaa !5
  %686 = load i64, ptr %685, align 8, !tbaa !9
  %687 = icmp sle i64 %684, %686
  br i1 %687, label %688, label %691

688:                                              ; preds = %683
  %689 = load i64, ptr %64, align 8, !tbaa !9
  %690 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %689, ptr %690, align 8, !tbaa !9
  br label %714

691:                                              ; preds = %683, %680
  %692 = load i64, ptr %64, align 8, !tbaa !9
  %693 = load ptr, ptr %27, align 8, !tbaa !5
  %694 = load i64, ptr %693, align 8, !tbaa !9
  %695 = icmp sgt i64 %692, %694
  br i1 %695, label %696, label %708

696:                                              ; preds = %691
  %697 = load i64, ptr %64, align 8, !tbaa !9
  %698 = load ptr, ptr %27, align 8, !tbaa !5
  %699 = load i64, ptr %698, align 8, !tbaa !9
  %700 = shl i64 %699, 1
  %701 = icmp sle i64 %697, %700
  br i1 %701, label %702, label %708

702:                                              ; preds = %696
  %703 = load i64, ptr %64, align 8, !tbaa !9
  %704 = load ptr, ptr %27, align 8, !tbaa !5
  %705 = load i64, ptr %704, align 8, !tbaa !9
  %706 = sub nsw i64 %703, %705
  %707 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %706, ptr %707, align 8, !tbaa !9
  br label %713

708:                                              ; preds = %696, %691
  %709 = load ptr, ptr %27, align 8, !tbaa !5
  %710 = load i64, ptr %709, align 8, !tbaa !9
  %711 = add nsw i64 %710, 1
  %712 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %711, ptr %712, align 8, !tbaa !9
  br label %713

713:                                              ; preds = %708, %702
  br label %714

714:                                              ; preds = %713, %688
  br label %1238

715:                                              ; preds = %622
  %716 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 0, ptr %716, align 8, !tbaa !9
  %717 = load i64, ptr %90, align 8, !tbaa !9
  %718 = icmp ne i64 %717, 0
  br i1 %718, label %719, label %813

719:                                              ; preds = %715
  %720 = load i64, ptr %76, align 8, !tbaa !9
  %721 = icmp ne i64 %720, 0
  br i1 %721, label %722, label %733

722:                                              ; preds = %719
  %723 = load ptr, ptr %27, align 8, !tbaa !5
  %724 = load ptr, ptr %33, align 8, !tbaa !5
  %725 = getelementptr inbounds float, ptr %724, i64 1
  %726 = load ptr, ptr %27, align 8, !tbaa !5
  %727 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %84, ptr noundef %61, ptr noundef %723, ptr noundef @c__1, ptr noundef %725, ptr noundef %726, ptr noundef %64)
  %728 = load ptr, ptr %27, align 8, !tbaa !5
  %729 = load ptr, ptr %34, align 8, !tbaa !5
  %730 = getelementptr inbounds float, ptr %729, i64 1
  %731 = load ptr, ptr %27, align 8, !tbaa !5
  %732 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %84, ptr noundef %61, ptr noundef %728, ptr noundef @c__1, ptr noundef %730, ptr noundef %731, ptr noundef %64)
  br label %733

733:                                              ; preds = %722, %719
  %734 = load i64, ptr %77, align 8, !tbaa !9
  %735 = icmp ne i64 %734, 0
  br i1 %735, label %736, label %742

736:                                              ; preds = %733
  %737 = load ptr, ptr %27, align 8, !tbaa !5
  %738 = load ptr, ptr %35, align 8, !tbaa !5
  %739 = getelementptr inbounds float, ptr %738, i64 1
  %740 = load ptr, ptr %27, align 8, !tbaa !5
  %741 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %85, ptr noundef %62, ptr noundef %737, ptr noundef @c__1, ptr noundef %739, ptr noundef %740, ptr noundef %64)
  br label %742

742:                                              ; preds = %736, %733
  %743 = load ptr, ptr %27, align 8, !tbaa !5
  %744 = load i64, ptr %743, align 8, !tbaa !9
  store i64 %744, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %745

745:                                              ; preds = %764, %742
  %746 = load i64, ptr %55, align 8, !tbaa !9
  %747 = load i64, ptr %52, align 8, !tbaa !9
  %748 = icmp sle i64 %746, %747
  br i1 %748, label %749, label %767

749:                                              ; preds = %745
  %750 = load ptr, ptr %26, align 8, !tbaa !5
  %751 = load ptr, ptr %33, align 8, !tbaa !5
  %752 = load i64, ptr %55, align 8, !tbaa !9
  %753 = getelementptr inbounds float, ptr %751, i64 %752
  %754 = load ptr, ptr %34, align 8, !tbaa !5
  %755 = load i64, ptr %55, align 8, !tbaa !9
  %756 = getelementptr inbounds float, ptr %754, i64 %755
  %757 = load ptr, ptr %35, align 8, !tbaa !5
  %758 = load i64, ptr %55, align 8, !tbaa !9
  %759 = getelementptr inbounds float, ptr %757, i64 %758
  %760 = call i64 (ptr, ptr, ptr, ...) %750(ptr noundef %753, ptr noundef %756, ptr noundef %759)
  %761 = load ptr, ptr %42, align 8, !tbaa !5
  %762 = load i64, ptr %55, align 8, !tbaa !9
  %763 = getelementptr inbounds i64, ptr %761, i64 %762
  store i64 %760, ptr %763, align 8, !tbaa !9
  br label %764

764:                                              ; preds = %749
  %765 = load i64, ptr %55, align 8, !tbaa !9
  %766 = add nsw i64 %765, 1
  store i64 %766, ptr %55, align 8, !tbaa !9
  br label %745, !llvm.loop !13

767:                                              ; preds = %745
  %768 = load ptr, ptr %41, align 8, !tbaa !5
  %769 = load i64, ptr %768, align 8, !tbaa !9
  %770 = load i64, ptr %66, align 8, !tbaa !9
  %771 = sub nsw i64 %769, %770
  %772 = add nsw i64 %771, 1
  store i64 %772, ptr %52, align 8, !tbaa !9
  %773 = load ptr, ptr %42, align 8, !tbaa !5
  %774 = getelementptr inbounds i64, ptr %773, i64 1
  %775 = load ptr, ptr %27, align 8, !tbaa !5
  %776 = load ptr, ptr %28, align 8, !tbaa !5
  %777 = load i64, ptr %45, align 8, !tbaa !9
  %778 = getelementptr inbounds float, ptr %776, i64 %777
  %779 = load ptr, ptr %29, align 8, !tbaa !5
  %780 = load ptr, ptr %30, align 8, !tbaa !5
  %781 = load i64, ptr %47, align 8, !tbaa !9
  %782 = getelementptr inbounds float, ptr %780, i64 %781
  %783 = load ptr, ptr %31, align 8, !tbaa !5
  %784 = load ptr, ptr %33, align 8, !tbaa !5
  %785 = getelementptr inbounds float, ptr %784, i64 1
  %786 = load ptr, ptr %34, align 8, !tbaa !5
  %787 = getelementptr inbounds float, ptr %786, i64 1
  %788 = load ptr, ptr %35, align 8, !tbaa !5
  %789 = getelementptr inbounds float, ptr %788, i64 1
  %790 = load ptr, ptr %36, align 8, !tbaa !5
  %791 = load i64, ptr %49, align 8, !tbaa !9
  %792 = getelementptr inbounds float, ptr %790, i64 %791
  %793 = load ptr, ptr %37, align 8, !tbaa !5
  %794 = load ptr, ptr %38, align 8, !tbaa !5
  %795 = load i64, ptr %51, align 8, !tbaa !9
  %796 = getelementptr inbounds float, ptr %794, i64 %795
  %797 = load ptr, ptr %39, align 8, !tbaa !5
  %798 = load ptr, ptr %32, align 8, !tbaa !5
  %799 = getelementptr inbounds [2 x float], ptr %57, i64 0, i64 0
  %800 = load ptr, ptr %40, align 8, !tbaa !5
  %801 = load i64, ptr %66, align 8, !tbaa !9
  %802 = getelementptr inbounds float, ptr %800, i64 %801
  %803 = getelementptr inbounds [1 x i64], ptr %63, i64 0, i64 0
  %804 = call i32 @stgsen_(ptr noundef @c__0, ptr noundef %72, ptr noundef %73, ptr noundef %774, ptr noundef %775, ptr noundef %778, ptr noundef %779, ptr noundef %782, ptr noundef %783, ptr noundef %785, ptr noundef %787, ptr noundef %789, ptr noundef %792, ptr noundef %793, ptr noundef %796, ptr noundef %797, ptr noundef %798, ptr noundef %67, ptr noundef %68, ptr noundef %799, ptr noundef %802, ptr noundef %52, ptr noundef %803, ptr noundef @c__1, ptr noundef %64)
  %805 = load i64, ptr %64, align 8, !tbaa !9
  %806 = icmp eq i64 %805, 1
  br i1 %806, label %807, label %812

807:                                              ; preds = %767
  %808 = load ptr, ptr %27, align 8, !tbaa !5
  %809 = load i64, ptr %808, align 8, !tbaa !9
  %810 = add nsw i64 %809, 3
  %811 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %810, ptr %811, align 8, !tbaa !9
  br label %812

812:                                              ; preds = %807, %767
  br label %813

813:                                              ; preds = %812, %715
  %814 = load i64, ptr %72, align 8, !tbaa !9
  %815 = icmp ne i64 %814, 0
  br i1 %815, label %816, label %830

816:                                              ; preds = %813
  %817 = load ptr, ptr %27, align 8, !tbaa !5
  %818 = load ptr, ptr %40, align 8, !tbaa !5
  %819 = load i64, ptr %69, align 8, !tbaa !9
  %820 = getelementptr inbounds float, ptr %818, i64 %819
  %821 = load ptr, ptr %40, align 8, !tbaa !5
  %822 = load i64, ptr %82, align 8, !tbaa !9
  %823 = getelementptr inbounds float, ptr %821, i64 %822
  %824 = load ptr, ptr %27, align 8, !tbaa !5
  %825 = load ptr, ptr %36, align 8, !tbaa !5
  %826 = load i64, ptr %49, align 8, !tbaa !9
  %827 = getelementptr inbounds float, ptr %825, i64 %826
  %828 = load ptr, ptr %37, align 8, !tbaa !5
  %829 = call i32 @sggbak_(ptr noundef @.str.8, ptr noundef @.str.11, ptr noundef %817, ptr noundef %59, ptr noundef %58, ptr noundef %820, ptr noundef %823, ptr noundef %824, ptr noundef %827, ptr noundef %828, ptr noundef %64)
  br label %830

830:                                              ; preds = %816, %813
  %831 = load i64, ptr %73, align 8, !tbaa !9
  %832 = icmp ne i64 %831, 0
  br i1 %832, label %833, label %847

833:                                              ; preds = %830
  %834 = load ptr, ptr %27, align 8, !tbaa !5
  %835 = load ptr, ptr %40, align 8, !tbaa !5
  %836 = load i64, ptr %69, align 8, !tbaa !9
  %837 = getelementptr inbounds float, ptr %835, i64 %836
  %838 = load ptr, ptr %40, align 8, !tbaa !5
  %839 = load i64, ptr %82, align 8, !tbaa !9
  %840 = getelementptr inbounds float, ptr %838, i64 %839
  %841 = load ptr, ptr %27, align 8, !tbaa !5
  %842 = load ptr, ptr %38, align 8, !tbaa !5
  %843 = load i64, ptr %51, align 8, !tbaa !9
  %844 = getelementptr inbounds float, ptr %842, i64 %843
  %845 = load ptr, ptr %39, align 8, !tbaa !5
  %846 = call i32 @sggbak_(ptr noundef @.str.8, ptr noundef @.str.14, ptr noundef %834, ptr noundef %59, ptr noundef %58, ptr noundef %837, ptr noundef %840, ptr noundef %841, ptr noundef %844, ptr noundef %845, ptr noundef %64)
  br label %847

847:                                              ; preds = %833, %830
  %848 = load i64, ptr %76, align 8, !tbaa !9
  %849 = icmp ne i64 %848, 0
  br i1 %849, label %850, label %1017

850:                                              ; preds = %847
  %851 = load ptr, ptr %27, align 8, !tbaa !5
  %852 = load i64, ptr %851, align 8, !tbaa !9
  store i64 %852, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %853

853:                                              ; preds = %1013, %850
  %854 = load i64, ptr %55, align 8, !tbaa !9
  %855 = load i64, ptr %52, align 8, !tbaa !9
  %856 = icmp sle i64 %854, %855
  br i1 %856, label %857, label %1016

857:                                              ; preds = %853
  %858 = load ptr, ptr %34, align 8, !tbaa !5
  %859 = load i64, ptr %55, align 8, !tbaa !9
  %860 = getelementptr inbounds float, ptr %858, i64 %859
  %861 = load float, ptr %860, align 4, !tbaa !11
  %862 = fcmp une float %861, 0.000000e+00
  br i1 %862, label %863, label %1012

863:                                              ; preds = %857
  %864 = load ptr, ptr %33, align 8, !tbaa !5
  %865 = load i64, ptr %55, align 8, !tbaa !9
  %866 = getelementptr inbounds float, ptr %864, i64 %865
  %867 = load float, ptr %866, align 4, !tbaa !11
  %868 = load float, ptr %79, align 4, !tbaa !11
  %869 = fdiv float %867, %868
  %870 = load float, ptr %84, align 4, !tbaa !11
  %871 = load float, ptr %61, align 4, !tbaa !11
  %872 = fdiv float %870, %871
  %873 = fcmp ogt float %869, %872
  br i1 %873, label %885, label %874

874:                                              ; preds = %863
  %875 = load float, ptr %78, align 4, !tbaa !11
  %876 = load ptr, ptr %33, align 8, !tbaa !5
  %877 = load i64, ptr %55, align 8, !tbaa !9
  %878 = getelementptr inbounds float, ptr %876, i64 %877
  %879 = load float, ptr %878, align 4, !tbaa !11
  %880 = fdiv float %875, %879
  %881 = load float, ptr %61, align 4, !tbaa !11
  %882 = load float, ptr %84, align 4, !tbaa !11
  %883 = fdiv float %881, %882
  %884 = fcmp ogt float %880, %883
  br i1 %884, label %885, label %936

885:                                              ; preds = %874, %863
  %886 = load ptr, ptr %28, align 8, !tbaa !5
  %887 = load i64, ptr %55, align 8, !tbaa !9
  %888 = load i64, ptr %55, align 8, !tbaa !9
  %889 = load i64, ptr %44, align 8, !tbaa !9
  %890 = mul nsw i64 %888, %889
  %891 = add nsw i64 %887, %890
  %892 = getelementptr inbounds float, ptr %886, i64 %891
  %893 = load float, ptr %892, align 4, !tbaa !11
  %894 = load ptr, ptr %33, align 8, !tbaa !5
  %895 = load i64, ptr %55, align 8, !tbaa !9
  %896 = getelementptr inbounds float, ptr %894, i64 %895
  %897 = load float, ptr %896, align 4, !tbaa !11
  %898 = fdiv float %893, %897
  store float %898, ptr %54, align 4, !tbaa !11
  %899 = load float, ptr %54, align 4, !tbaa !11
  %900 = fcmp oge float %899, 0.000000e+00
  br i1 %900, label %901, label %903

901:                                              ; preds = %885
  %902 = load float, ptr %54, align 4, !tbaa !11
  br label %906

903:                                              ; preds = %885
  %904 = load float, ptr %54, align 4, !tbaa !11
  %905 = fneg float %904
  br label %906

906:                                              ; preds = %903, %901
  %907 = phi float [ %902, %901 ], [ %905, %903 ]
  %908 = fpext float %907 to double
  %909 = fptrunc double %908 to float
  %910 = load ptr, ptr %40, align 8, !tbaa !5
  %911 = getelementptr inbounds float, ptr %910, i64 1
  store float %909, ptr %911, align 4, !tbaa !11
  %912 = load ptr, ptr %40, align 8, !tbaa !5
  %913 = getelementptr inbounds float, ptr %912, i64 1
  %914 = load float, ptr %913, align 4, !tbaa !11
  %915 = load ptr, ptr %35, align 8, !tbaa !5
  %916 = load i64, ptr %55, align 8, !tbaa !9
  %917 = getelementptr inbounds float, ptr %915, i64 %916
  %918 = load float, ptr %917, align 4, !tbaa !11
  %919 = fmul float %918, %914
  store float %919, ptr %917, align 4, !tbaa !11
  %920 = load ptr, ptr %40, align 8, !tbaa !5
  %921 = getelementptr inbounds float, ptr %920, i64 1
  %922 = load float, ptr %921, align 4, !tbaa !11
  %923 = load ptr, ptr %33, align 8, !tbaa !5
  %924 = load i64, ptr %55, align 8, !tbaa !9
  %925 = getelementptr inbounds float, ptr %923, i64 %924
  %926 = load float, ptr %925, align 4, !tbaa !11
  %927 = fmul float %926, %922
  store float %927, ptr %925, align 4, !tbaa !11
  %928 = load ptr, ptr %40, align 8, !tbaa !5
  %929 = getelementptr inbounds float, ptr %928, i64 1
  %930 = load float, ptr %929, align 4, !tbaa !11
  %931 = load ptr, ptr %34, align 8, !tbaa !5
  %932 = load i64, ptr %55, align 8, !tbaa !9
  %933 = getelementptr inbounds float, ptr %931, i64 %932
  %934 = load float, ptr %933, align 4, !tbaa !11
  %935 = fmul float %934, %930
  store float %935, ptr %933, align 4, !tbaa !11
  br label %1011

936:                                              ; preds = %874
  %937 = load ptr, ptr %34, align 8, !tbaa !5
  %938 = load i64, ptr %55, align 8, !tbaa !9
  %939 = getelementptr inbounds float, ptr %937, i64 %938
  %940 = load float, ptr %939, align 4, !tbaa !11
  %941 = load float, ptr %79, align 4, !tbaa !11
  %942 = fdiv float %940, %941
  %943 = load float, ptr %84, align 4, !tbaa !11
  %944 = load float, ptr %61, align 4, !tbaa !11
  %945 = fdiv float %943, %944
  %946 = fcmp ogt float %942, %945
  br i1 %946, label %958, label %947

947:                                              ; preds = %936
  %948 = load float, ptr %78, align 4, !tbaa !11
  %949 = load ptr, ptr %34, align 8, !tbaa !5
  %950 = load i64, ptr %55, align 8, !tbaa !9
  %951 = getelementptr inbounds float, ptr %949, i64 %950
  %952 = load float, ptr %951, align 4, !tbaa !11
  %953 = fdiv float %948, %952
  %954 = load float, ptr %61, align 4, !tbaa !11
  %955 = load float, ptr %84, align 4, !tbaa !11
  %956 = fdiv float %954, %955
  %957 = fcmp ogt float %953, %956
  br i1 %957, label %958, label %1010

958:                                              ; preds = %947, %936
  %959 = load ptr, ptr %28, align 8, !tbaa !5
  %960 = load i64, ptr %55, align 8, !tbaa !9
  %961 = load i64, ptr %55, align 8, !tbaa !9
  %962 = add nsw i64 %961, 1
  %963 = load i64, ptr %44, align 8, !tbaa !9
  %964 = mul nsw i64 %962, %963
  %965 = add nsw i64 %960, %964
  %966 = getelementptr inbounds float, ptr %959, i64 %965
  %967 = load float, ptr %966, align 4, !tbaa !11
  %968 = load ptr, ptr %34, align 8, !tbaa !5
  %969 = load i64, ptr %55, align 8, !tbaa !9
  %970 = getelementptr inbounds float, ptr %968, i64 %969
  %971 = load float, ptr %970, align 4, !tbaa !11
  %972 = fdiv float %967, %971
  store float %972, ptr %54, align 4, !tbaa !11
  %973 = load float, ptr %54, align 4, !tbaa !11
  %974 = fcmp oge float %973, 0.000000e+00
  br i1 %974, label %975, label %977

975:                                              ; preds = %958
  %976 = load float, ptr %54, align 4, !tbaa !11
  br label %980

977:                                              ; preds = %958
  %978 = load float, ptr %54, align 4, !tbaa !11
  %979 = fneg float %978
  br label %980

980:                                              ; preds = %977, %975
  %981 = phi float [ %976, %975 ], [ %979, %977 ]
  %982 = fpext float %981 to double
  %983 = fptrunc double %982 to float
  %984 = load ptr, ptr %40, align 8, !tbaa !5
  %985 = getelementptr inbounds float, ptr %984, i64 1
  store float %983, ptr %985, align 4, !tbaa !11
  %986 = load ptr, ptr %40, align 8, !tbaa !5
  %987 = getelementptr inbounds float, ptr %986, i64 1
  %988 = load float, ptr %987, align 4, !tbaa !11
  %989 = load ptr, ptr %35, align 8, !tbaa !5
  %990 = load i64, ptr %55, align 8, !tbaa !9
  %991 = getelementptr inbounds float, ptr %989, i64 %990
  %992 = load float, ptr %991, align 4, !tbaa !11
  %993 = fmul float %992, %988
  store float %993, ptr %991, align 4, !tbaa !11
  %994 = load ptr, ptr %40, align 8, !tbaa !5
  %995 = getelementptr inbounds float, ptr %994, i64 1
  %996 = load float, ptr %995, align 4, !tbaa !11
  %997 = load ptr, ptr %33, align 8, !tbaa !5
  %998 = load i64, ptr %55, align 8, !tbaa !9
  %999 = getelementptr inbounds float, ptr %997, i64 %998
  %1000 = load float, ptr %999, align 4, !tbaa !11
  %1001 = fmul float %1000, %996
  store float %1001, ptr %999, align 4, !tbaa !11
  %1002 = load ptr, ptr %40, align 8, !tbaa !5
  %1003 = getelementptr inbounds float, ptr %1002, i64 1
  %1004 = load float, ptr %1003, align 4, !tbaa !11
  %1005 = load ptr, ptr %34, align 8, !tbaa !5
  %1006 = load i64, ptr %55, align 8, !tbaa !9
  %1007 = getelementptr inbounds float, ptr %1005, i64 %1006
  %1008 = load float, ptr %1007, align 4, !tbaa !11
  %1009 = fmul float %1008, %1004
  store float %1009, ptr %1007, align 4, !tbaa !11
  br label %1010

1010:                                             ; preds = %980, %947
  br label %1011

1011:                                             ; preds = %1010, %906
  br label %1012

1012:                                             ; preds = %1011, %857
  br label %1013

1013:                                             ; preds = %1012
  %1014 = load i64, ptr %55, align 8, !tbaa !9
  %1015 = add nsw i64 %1014, 1
  store i64 %1015, ptr %55, align 8, !tbaa !9
  br label %853, !llvm.loop !15

1016:                                             ; preds = %853
  br label %1017

1017:                                             ; preds = %1016, %847
  %1018 = load i64, ptr %77, align 8, !tbaa !9
  %1019 = icmp ne i64 %1018, 0
  br i1 %1019, label %1020, label %1112

1020:                                             ; preds = %1017
  %1021 = load ptr, ptr %27, align 8, !tbaa !5
  %1022 = load i64, ptr %1021, align 8, !tbaa !9
  store i64 %1022, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %1023

1023:                                             ; preds = %1108, %1020
  %1024 = load i64, ptr %55, align 8, !tbaa !9
  %1025 = load i64, ptr %52, align 8, !tbaa !9
  %1026 = icmp sle i64 %1024, %1025
  br i1 %1026, label %1027, label %1111

1027:                                             ; preds = %1023
  %1028 = load ptr, ptr %34, align 8, !tbaa !5
  %1029 = load i64, ptr %55, align 8, !tbaa !9
  %1030 = getelementptr inbounds float, ptr %1028, i64 %1029
  %1031 = load float, ptr %1030, align 4, !tbaa !11
  %1032 = fcmp une float %1031, 0.000000e+00
  br i1 %1032, label %1033, label %1107

1033:                                             ; preds = %1027
  %1034 = load ptr, ptr %35, align 8, !tbaa !5
  %1035 = load i64, ptr %55, align 8, !tbaa !9
  %1036 = getelementptr inbounds float, ptr %1034, i64 %1035
  %1037 = load float, ptr %1036, align 4, !tbaa !11
  %1038 = load float, ptr %79, align 4, !tbaa !11
  %1039 = fdiv float %1037, %1038
  %1040 = load float, ptr %85, align 4, !tbaa !11
  %1041 = load float, ptr %62, align 4, !tbaa !11
  %1042 = fdiv float %1040, %1041
  %1043 = fcmp ogt float %1039, %1042
  br i1 %1043, label %1055, label %1044

1044:                                             ; preds = %1033
  %1045 = load float, ptr %78, align 4, !tbaa !11
  %1046 = load ptr, ptr %35, align 8, !tbaa !5
  %1047 = load i64, ptr %55, align 8, !tbaa !9
  %1048 = getelementptr inbounds float, ptr %1046, i64 %1047
  %1049 = load float, ptr %1048, align 4, !tbaa !11
  %1050 = fdiv float %1045, %1049
  %1051 = load float, ptr %62, align 4, !tbaa !11
  %1052 = load float, ptr %85, align 4, !tbaa !11
  %1053 = fdiv float %1051, %1052
  %1054 = fcmp ogt float %1050, %1053
  br i1 %1054, label %1055, label %1106

1055:                                             ; preds = %1044, %1033
  %1056 = load ptr, ptr %30, align 8, !tbaa !5
  %1057 = load i64, ptr %55, align 8, !tbaa !9
  %1058 = load i64, ptr %55, align 8, !tbaa !9
  %1059 = load i64, ptr %46, align 8, !tbaa !9
  %1060 = mul nsw i64 %1058, %1059
  %1061 = add nsw i64 %1057, %1060
  %1062 = getelementptr inbounds float, ptr %1056, i64 %1061
  %1063 = load float, ptr %1062, align 4, !tbaa !11
  %1064 = load ptr, ptr %35, align 8, !tbaa !5
  %1065 = load i64, ptr %55, align 8, !tbaa !9
  %1066 = getelementptr inbounds float, ptr %1064, i64 %1065
  %1067 = load float, ptr %1066, align 4, !tbaa !11
  %1068 = fdiv float %1063, %1067
  store float %1068, ptr %54, align 4, !tbaa !11
  %1069 = load float, ptr %54, align 4, !tbaa !11
  %1070 = fcmp oge float %1069, 0.000000e+00
  br i1 %1070, label %1071, label %1073

1071:                                             ; preds = %1055
  %1072 = load float, ptr %54, align 4, !tbaa !11
  br label %1076

1073:                                             ; preds = %1055
  %1074 = load float, ptr %54, align 4, !tbaa !11
  %1075 = fneg float %1074
  br label %1076

1076:                                             ; preds = %1073, %1071
  %1077 = phi float [ %1072, %1071 ], [ %1075, %1073 ]
  %1078 = fpext float %1077 to double
  %1079 = fptrunc double %1078 to float
  %1080 = load ptr, ptr %40, align 8, !tbaa !5
  %1081 = getelementptr inbounds float, ptr %1080, i64 1
  store float %1079, ptr %1081, align 4, !tbaa !11
  %1082 = load ptr, ptr %40, align 8, !tbaa !5
  %1083 = getelementptr inbounds float, ptr %1082, i64 1
  %1084 = load float, ptr %1083, align 4, !tbaa !11
  %1085 = load ptr, ptr %35, align 8, !tbaa !5
  %1086 = load i64, ptr %55, align 8, !tbaa !9
  %1087 = getelementptr inbounds float, ptr %1085, i64 %1086
  %1088 = load float, ptr %1087, align 4, !tbaa !11
  %1089 = fmul float %1088, %1084
  store float %1089, ptr %1087, align 4, !tbaa !11
  %1090 = load ptr, ptr %40, align 8, !tbaa !5
  %1091 = getelementptr inbounds float, ptr %1090, i64 1
  %1092 = load float, ptr %1091, align 4, !tbaa !11
  %1093 = load ptr, ptr %33, align 8, !tbaa !5
  %1094 = load i64, ptr %55, align 8, !tbaa !9
  %1095 = getelementptr inbounds float, ptr %1093, i64 %1094
  %1096 = load float, ptr %1095, align 4, !tbaa !11
  %1097 = fmul float %1096, %1092
  store float %1097, ptr %1095, align 4, !tbaa !11
  %1098 = load ptr, ptr %40, align 8, !tbaa !5
  %1099 = getelementptr inbounds float, ptr %1098, i64 1
  %1100 = load float, ptr %1099, align 4, !tbaa !11
  %1101 = load ptr, ptr %34, align 8, !tbaa !5
  %1102 = load i64, ptr %55, align 8, !tbaa !9
  %1103 = getelementptr inbounds float, ptr %1101, i64 %1102
  %1104 = load float, ptr %1103, align 4, !tbaa !11
  %1105 = fmul float %1104, %1100
  store float %1105, ptr %1103, align 4, !tbaa !11
  br label %1106

1106:                                             ; preds = %1076, %1044
  br label %1107

1107:                                             ; preds = %1106, %1027
  br label %1108

1108:                                             ; preds = %1107
  %1109 = load i64, ptr %55, align 8, !tbaa !9
  %1110 = add nsw i64 %1109, 1
  store i64 %1110, ptr %55, align 8, !tbaa !9
  br label %1023, !llvm.loop !16

1111:                                             ; preds = %1023
  br label %1112

1112:                                             ; preds = %1111, %1017
  %1113 = load i64, ptr %76, align 8, !tbaa !9
  %1114 = icmp ne i64 %1113, 0
  br i1 %1114, label %1115, label %1133

1115:                                             ; preds = %1112
  %1116 = load ptr, ptr %27, align 8, !tbaa !5
  %1117 = load ptr, ptr %27, align 8, !tbaa !5
  %1118 = load ptr, ptr %28, align 8, !tbaa !5
  %1119 = load i64, ptr %45, align 8, !tbaa !9
  %1120 = getelementptr inbounds float, ptr %1118, i64 %1119
  %1121 = load ptr, ptr %29, align 8, !tbaa !5
  %1122 = call i32 @slascl_(ptr noundef @.str.15, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %84, ptr noundef %61, ptr noundef %1116, ptr noundef %1117, ptr noundef %1120, ptr noundef %1121, ptr noundef %64)
  %1123 = load ptr, ptr %27, align 8, !tbaa !5
  %1124 = load ptr, ptr %33, align 8, !tbaa !5
  %1125 = getelementptr inbounds float, ptr %1124, i64 1
  %1126 = load ptr, ptr %27, align 8, !tbaa !5
  %1127 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %84, ptr noundef %61, ptr noundef %1123, ptr noundef @c__1, ptr noundef %1125, ptr noundef %1126, ptr noundef %64)
  %1128 = load ptr, ptr %27, align 8, !tbaa !5
  %1129 = load ptr, ptr %34, align 8, !tbaa !5
  %1130 = getelementptr inbounds float, ptr %1129, i64 1
  %1131 = load ptr, ptr %27, align 8, !tbaa !5
  %1132 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %84, ptr noundef %61, ptr noundef %1128, ptr noundef @c__1, ptr noundef %1130, ptr noundef %1131, ptr noundef %64)
  br label %1133

1133:                                             ; preds = %1115, %1112
  %1134 = load i64, ptr %77, align 8, !tbaa !9
  %1135 = icmp ne i64 %1134, 0
  br i1 %1135, label %1136, label %1149

1136:                                             ; preds = %1133
  %1137 = load ptr, ptr %27, align 8, !tbaa !5
  %1138 = load ptr, ptr %27, align 8, !tbaa !5
  %1139 = load ptr, ptr %30, align 8, !tbaa !5
  %1140 = load i64, ptr %47, align 8, !tbaa !9
  %1141 = getelementptr inbounds float, ptr %1139, i64 %1140
  %1142 = load ptr, ptr %31, align 8, !tbaa !5
  %1143 = call i32 @slascl_(ptr noundef @.str.16, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %85, ptr noundef %62, ptr noundef %1137, ptr noundef %1138, ptr noundef %1141, ptr noundef %1142, ptr noundef %64)
  %1144 = load ptr, ptr %27, align 8, !tbaa !5
  %1145 = load ptr, ptr %35, align 8, !tbaa !5
  %1146 = getelementptr inbounds float, ptr %1145, i64 1
  %1147 = load ptr, ptr %27, align 8, !tbaa !5
  %1148 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %85, ptr noundef %62, ptr noundef %1144, ptr noundef @c__1, ptr noundef %1146, ptr noundef %1147, ptr noundef %64)
  br label %1149

1149:                                             ; preds = %1136, %1133
  %1150 = load i64, ptr %90, align 8, !tbaa !9
  %1151 = icmp ne i64 %1150, 0
  br i1 %1151, label %1152, label %1237

1152:                                             ; preds = %1149
  store i64 1, ptr %86, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  %1153 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 0, ptr %1153, align 8, !tbaa !9
  store i64 0, ptr %56, align 8, !tbaa !9
  %1154 = load ptr, ptr %27, align 8, !tbaa !5
  %1155 = load i64, ptr %1154, align 8, !tbaa !9
  store i64 %1155, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %1156

1156:                                             ; preds = %1233, %1152
  %1157 = load i64, ptr %55, align 8, !tbaa !9
  %1158 = load i64, ptr %52, align 8, !tbaa !9
  %1159 = icmp sle i64 %1157, %1158
  br i1 %1159, label %1160, label %1236

1160:                                             ; preds = %1156
  %1161 = load ptr, ptr %26, align 8, !tbaa !5
  %1162 = load ptr, ptr %33, align 8, !tbaa !5
  %1163 = load i64, ptr %55, align 8, !tbaa !9
  %1164 = getelementptr inbounds float, ptr %1162, i64 %1163
  %1165 = load ptr, ptr %34, align 8, !tbaa !5
  %1166 = load i64, ptr %55, align 8, !tbaa !9
  %1167 = getelementptr inbounds float, ptr %1165, i64 %1166
  %1168 = load ptr, ptr %35, align 8, !tbaa !5
  %1169 = load i64, ptr %55, align 8, !tbaa !9
  %1170 = getelementptr inbounds float, ptr %1168, i64 %1169
  %1171 = call i64 (ptr, ptr, ptr, ...) %1161(ptr noundef %1164, ptr noundef %1167, ptr noundef %1170)
  store i64 %1171, ptr %71, align 8, !tbaa !9
  %1172 = load ptr, ptr %34, align 8, !tbaa !5
  %1173 = load i64, ptr %55, align 8, !tbaa !9
  %1174 = getelementptr inbounds float, ptr %1172, i64 %1173
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  %1176 = fcmp oeq float %1175, 0.000000e+00
  br i1 %1176, label %1177, label %1196

1177:                                             ; preds = %1160
  %1178 = load i64, ptr %71, align 8, !tbaa !9
  %1179 = icmp ne i64 %1178, 0
  br i1 %1179, label %1180, label %1184

1180:                                             ; preds = %1177
  %1181 = load ptr, ptr %32, align 8, !tbaa !5
  %1182 = load i64, ptr %1181, align 8, !tbaa !9
  %1183 = add nsw i64 %1182, 1
  store i64 %1183, ptr %1181, align 8, !tbaa !9
  br label %1184

1184:                                             ; preds = %1180, %1177
  store i64 0, ptr %56, align 8, !tbaa !9
  %1185 = load i64, ptr %71, align 8, !tbaa !9
  %1186 = icmp ne i64 %1185, 0
  br i1 %1186, label %1187, label %1195

1187:                                             ; preds = %1184
  %1188 = load i64, ptr %86, align 8, !tbaa !9
  %1189 = icmp ne i64 %1188, 0
  br i1 %1189, label %1195, label %1190

1190:                                             ; preds = %1187
  %1191 = load ptr, ptr %27, align 8, !tbaa !5
  %1192 = load i64, ptr %1191, align 8, !tbaa !9
  %1193 = add nsw i64 %1192, 2
  %1194 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %1193, ptr %1194, align 8, !tbaa !9
  br label %1195

1195:                                             ; preds = %1190, %1187, %1184
  br label %1230

1196:                                             ; preds = %1160
  %1197 = load i64, ptr %56, align 8, !tbaa !9
  %1198 = icmp eq i64 %1197, 1
  br i1 %1198, label %1199, label %1228

1199:                                             ; preds = %1196
  %1200 = load i64, ptr %71, align 8, !tbaa !9
  %1201 = icmp ne i64 %1200, 0
  br i1 %1201, label %1205, label %1202

1202:                                             ; preds = %1199
  %1203 = load i64, ptr %86, align 8, !tbaa !9
  %1204 = icmp ne i64 %1203, 0
  br label %1205

1205:                                             ; preds = %1202, %1199
  %1206 = phi i1 [ true, %1199 ], [ %1204, %1202 ]
  %1207 = zext i1 %1206 to i32
  %1208 = sext i32 %1207 to i64
  store i64 %1208, ptr %71, align 8, !tbaa !9
  %1209 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %1209, ptr %86, align 8, !tbaa !9
  %1210 = load i64, ptr %71, align 8, !tbaa !9
  %1211 = icmp ne i64 %1210, 0
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr %32, align 8, !tbaa !5
  %1214 = load i64, ptr %1213, align 8, !tbaa !9
  %1215 = add nsw i64 %1214, 2
  store i64 %1215, ptr %1213, align 8, !tbaa !9
  br label %1216

1216:                                             ; preds = %1212, %1205
  store i64 -1, ptr %56, align 8, !tbaa !9
  %1217 = load i64, ptr %71, align 8, !tbaa !9
  %1218 = icmp ne i64 %1217, 0
  br i1 %1218, label %1219, label %1227

1219:                                             ; preds = %1216
  %1220 = load i64, ptr %75, align 8, !tbaa !9
  %1221 = icmp ne i64 %1220, 0
  br i1 %1221, label %1227, label %1222

1222:                                             ; preds = %1219
  %1223 = load ptr, ptr %27, align 8, !tbaa !5
  %1224 = load i64, ptr %1223, align 8, !tbaa !9
  %1225 = add nsw i64 %1224, 2
  %1226 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %1225, ptr %1226, align 8, !tbaa !9
  br label %1227

1227:                                             ; preds = %1222, %1219, %1216
  br label %1229

1228:                                             ; preds = %1196
  store i64 1, ptr %56, align 8, !tbaa !9
  br label %1229

1229:                                             ; preds = %1228, %1227
  br label %1230

1230:                                             ; preds = %1229, %1195
  %1231 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %1231, ptr %75, align 8, !tbaa !9
  %1232 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %1232, ptr %86, align 8, !tbaa !9
  br label %1233

1233:                                             ; preds = %1230
  %1234 = load i64, ptr %55, align 8, !tbaa !9
  %1235 = add nsw i64 %1234, 1
  store i64 %1235, ptr %55, align 8, !tbaa !9
  br label %1156, !llvm.loop !17

1236:                                             ; preds = %1156
  br label %1237

1237:                                             ; preds = %1236, %1149
  br label %1238

1238:                                             ; preds = %1237, %714
  %1239 = load i64, ptr %88, align 8, !tbaa !9
  %1240 = sitofp i64 %1239 to float
  %1241 = load ptr, ptr %40, align 8, !tbaa !5
  %1242 = getelementptr inbounds float, ptr %1241, i64 1
  store float %1240, ptr %1242, align 4, !tbaa !11
  store i32 0, ptr %22, align 4
  store i32 1, ptr %92, align 4
  br label %1243

1243:                                             ; preds = %1238, %374, %368, %360
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  %1244 = load i32, ptr %22, align 4
  ret i32 %1244
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @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 i32 @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 i32 @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 i32 @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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!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 i64, align 8
@.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 i64, align 8
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.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 noundef i32 @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 i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca [2 x float], align 4
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca [1 x i64], align 8
  %30 = alloca i64, align 8
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 4, 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 i64, ptr %6, align 8, !tbaa !5
  %42 = xor i64 %41, -1
  %43 = getelementptr inbounds float, ptr %5, i64 %42
  %44 = load i64, ptr %8, align 8, !tbaa !5
  %45 = xor i64 %44, -1
  %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 i64, ptr %14, align 8, !tbaa !5
  %51 = xor i64 %50, -1
  %52 = getelementptr inbounds float, ptr %13, i64 %51
  %53 = getelementptr inbounds i8, ptr %17, i64 -4
  %54 = getelementptr inbounds i8, ptr %19, i64 -8
  %55 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %.not = icmp eq i64 %55, 0
  br i1 %.not, label %57, label %56

56:                                               ; preds = %21
  store i64 0, ptr %34, align 8, !tbaa !5
  br label %61

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

59:                                               ; preds = %57
  store i64 1, ptr %34, align 8, !tbaa !5
  br label %61

60:                                               ; preds = %57
  store i64 0, ptr %34, align 8, !tbaa !5
  br label %61

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

64:                                               ; preds = %61
  store i64 0, ptr %35, align 8, !tbaa !5
  br label %69

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

67:                                               ; preds = %65
  store i64 1, ptr %35, align 8, !tbaa !5
  br label %69

68:                                               ; preds = %65
  store i64 0, ptr %35, align 8, !tbaa !5
  br label %69

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

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

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

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

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

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

86:                                               ; preds = %83
  %87 = load i64, ptr %14, align 8, !tbaa !5
  %88 = icmp slt i64 %87, 1
  %89 = icmp ult i64 %87, %78
  %or.cond530 = and i1 %89, %.not477
  %or.cond567 = or i1 %88, %or.cond530
  br i1 %or.cond567, label %.thread510.sink.split, label %90

90:                                               ; preds = %86
  %91 = load i64, ptr %16, align 8, !tbaa !5
  %92 = icmp slt i64 %91, 1
  %93 = icmp ult i64 %91, %78
  %or.cond531 = and i1 %93, %.not478
  %or.cond568 = or i1 %92, %or.cond531
  br i1 %or.cond568, label %.thread510.sink.split, label %94

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

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

97:                                               ; preds = %96
  %98 = shl i64 %78, 3
  %99 = mul nuw nsw i64 %78, 6
  %100 = add nuw nsw i64 %99, 16
  %101 = tail call i64 @llvm.smax.i64(i64 %98, i64 %100)
  %102 = sub nsw i64 %101, %78
  %103 = tail call i64 @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) #5
  %104 = mul nsw i64 %103, %78
  %105 = add nsw i64 %102, %104
  store i64 %105, ptr %22, align 8, !tbaa !5
  %106 = load i64, ptr %4, align 8, !tbaa !5
  %107 = sub nsw i64 %101, %106
  %108 = tail call i64 @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) #5
  %109 = mul nsw i64 %108, %106
  %110 = add nsw i64 %109, %107
  store i64 %110, ptr %23, align 8, !tbaa !5
  %111 = tail call i64 @llvm.smax.i64(i64 %105, i64 %110)
  br i1 %.not481, label %119, label %112

112:                                              ; preds = %97
  store i64 %111, ptr %22, align 8, !tbaa !5
  %113 = load i64, ptr %4, align 8, !tbaa !5
  %114 = sub nsw i64 %101, %113
  %115 = tail call i64 @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) #5
  %116 = mul nsw i64 %115, %113
  %117 = add nsw i64 %116, %114
  store i64 %117, ptr %23, align 8, !tbaa !5
  %118 = tail call i64 @llvm.smax.i64(i64 %111, i64 %117)
  br label %119

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

.thread:                                          ; preds = %119
  %.pr507.pr = load i64, ptr %20, align 8, !tbaa !5
  %.not483 = icmp eq i64 %.pr507.pr, 0
  br i1 %.not483, label %126, label %.thread510

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

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

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

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

130:                                              ; preds = %127
  store i64 0, ptr %9, align 8, !tbaa !5
  br label %404

131:                                              ; preds = %127
  %132 = tail call double @slamch_(ptr noundef nonnull @.str.8) #5
  %133 = fptrunc double %132 to float
  %134 = tail call double @slamch_(ptr noundef nonnull @.str.2) #5
  %135 = fptrunc double %134 to float
  store float %135, ptr %37, align 4, !tbaa !9
  %136 = fdiv float 1.000000e+00, %135
  store float %136, ptr %38, align 4, !tbaa !9
  %137 = call i32 @slabad_(ptr noundef nonnull %37, ptr noundef nonnull %38) #5
  %138 = load float, ptr %37, align 4, !tbaa !9
  %139 = fpext float %138 to double
  %140 = call double @sqrt(double noundef %139) #5
  %141 = fpext float %133 to double
  %142 = fdiv double %140, %141
  %143 = fptrunc double %142 to float
  %144 = fdiv float 1.000000e+00, %143
  %145 = call double @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
  %146 = fptrunc double %145 to float
  store float %146, ptr %27, align 4, !tbaa !9
  %147 = fcmp ogt float %146, 0.000000e+00
  %148 = fcmp olt float %146, %143
  %or.cond501 = select i1 %147, i1 %148, i1 false
  br i1 %or.cond501, label %151, label %149

149:                                              ; preds = %131
  %150 = fcmp olt float %144, %146
  br i1 %150, label %151, label %153

151:                                              ; preds = %149, %131
  %storemerge = phi float [ %143, %131 ], [ %144, %149 ]
  store float %storemerge, ptr %39, align 4, !tbaa !9
  %152 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %39, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %30) #5
  br label %153

153:                                              ; preds = %149, %151
  %.not484517 = phi i1 [ false, %151 ], [ true, %149 ]
  %154 = call double @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
  %155 = fptrunc double %154 to float
  store float %155, ptr %28, align 4, !tbaa !9
  %156 = fcmp ogt float %155, 0.000000e+00
  %157 = fcmp olt float %155, %143
  %or.cond502 = select i1 %156, i1 %157, i1 false
  br i1 %or.cond502, label %160, label %158

158:                                              ; preds = %153
  %159 = fcmp olt float %144, %155
  br i1 %159, label %160, label %162

160:                                              ; preds = %158, %153
  %storemerge532 = phi float [ %143, %153 ], [ %144, %158 ]
  store float %storemerge532, ptr %40, align 4, !tbaa !9
  %161 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %28, ptr noundef nonnull %40, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %30) #5
  br label %162

162:                                              ; preds = %158, %160
  %.not485522 = phi i1 [ false, %160 ], [ true, %158 ]
  %163 = load i64, ptr %4, align 8, !tbaa !5
  %reass.add = shl i64 %163, 1
  %164 = or disjoint i64 %reass.add, 1
  %165 = getelementptr float, ptr %17, i64 %163
  %166 = getelementptr float, ptr %17, i64 %reass.add
  %167 = call i32 @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 %26, ptr noundef nonnull %25, ptr noundef nonnull %17, ptr noundef %165, ptr noundef %166, ptr noundef nonnull %30) #5
  %168 = load i64, ptr %25, align 8, !tbaa !5
  %169 = add nsw i64 %168, 1
  %170 = load i64, ptr %26, align 8, !tbaa !5
  %171 = sub i64 %169, %170
  store i64 %171, ptr %36, align 8, !tbaa !5
  %172 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub = sub i64 %172, %170
  %173 = add i64 %reass.sub, 1
  store i64 %173, ptr %33, align 8, !tbaa !5
  %174 = add nsw i64 %171, %164
  %175 = load i64, ptr %18, align 8, !tbaa !5
  %reass.sub560 = sub i64 %175, %174
  %176 = add i64 %reass.sub560, 1
  store i64 %176, ptr %22, align 8, !tbaa !5
  %177 = add i64 %44, 1
  %178 = mul i64 %170, %177
  %179 = getelementptr inbounds float, ptr %46, i64 %178
  %180 = getelementptr inbounds float, ptr %53, i64 %174
  %181 = call i32 @sgeqrf_(ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef %179, ptr noundef nonnull %8, ptr noundef %166, ptr noundef nonnull %180, ptr noundef nonnull %22, ptr noundef nonnull %30) #5
  %182 = load i64, ptr %18, align 8, !tbaa !5
  %reass.sub561 = sub i64 %182, %174
  %183 = add i64 %reass.sub561, 1
  store i64 %183, ptr %22, align 8, !tbaa !5
  %184 = load i64, ptr %26, align 8, !tbaa !5
  %185 = mul i64 %184, %177
  %186 = getelementptr inbounds float, ptr %46, i64 %185
  %187 = add i64 %41, 1
  %188 = mul i64 %184, %187
  %189 = getelementptr inbounds float, ptr %43, i64 %188
  %190 = call i32 @sormqr_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef nonnull %36, ptr noundef %186, ptr noundef nonnull %8, ptr noundef %166, ptr noundef %189, ptr noundef nonnull %6, ptr noundef nonnull %180, ptr noundef nonnull %22, ptr noundef nonnull %30) #5
  %191 = load i64, ptr %34, align 8, !tbaa !5
  %.not486 = icmp eq i64 %191, 0
  br i1 %.not486, label %215, label %192

192:                                              ; preds = %162
  %193 = call i32 @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
  %194 = load i64, ptr %36, align 8, !tbaa !5
  %195 = icmp sgt i64 %194, 1
  br i1 %195, label %196, label %207

196:                                              ; preds = %192
  %197 = add nsw i64 %194, -1
  store i64 %197, ptr %22, align 8, !tbaa !5
  store i64 %197, ptr %23, align 8, !tbaa !5
  %198 = load i64, ptr %26, align 8, !tbaa !5
  %199 = add nsw i64 %198, 1
  %200 = mul nsw i64 %198, %44
  %201 = getelementptr float, ptr %46, i64 %199
  %202 = getelementptr float, ptr %201, i64 %200
  %203 = mul nsw i64 %198, %50
  %204 = getelementptr float, ptr %52, i64 %199
  %205 = getelementptr float, ptr %204, i64 %203
  %206 = call i32 @slacpy_(ptr noundef nonnull @.str.11, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef %202, ptr noundef nonnull %8, ptr noundef %205, ptr noundef nonnull %14) #5
  br label %207

207:                                              ; preds = %196, %192
  %208 = load i64, ptr %18, align 8, !tbaa !5
  %reass.sub562 = sub i64 %208, %174
  %209 = add i64 %reass.sub562, 1
  store i64 %209, ptr %22, align 8, !tbaa !5
  %210 = load i64, ptr %26, align 8, !tbaa !5
  %211 = add i64 %50, 1
  %212 = mul i64 %210, %211
  %213 = getelementptr inbounds float, ptr %52, i64 %212
  %214 = call i32 @sorgqr_(ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef %213, ptr noundef nonnull %14, ptr noundef %166, ptr noundef nonnull %180, ptr noundef nonnull %22, ptr noundef nonnull %30) #5
  br label %215

215:                                              ; preds = %207, %162
  %216 = load i64, ptr %35, align 8, !tbaa !5
  %.not487 = icmp eq i64 %216, 0
  br i1 %.not487, label %219, label %217

217:                                              ; preds = %215
  %218 = call i32 @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 %219

219:                                              ; preds = %217, %215
  %220 = call i32 @sgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %4, ptr noundef nonnull %26, ptr noundef nonnull %25, 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 %30) #5
  %221 = load i64, ptr %18, align 8, !tbaa !5
  %reass.sub563 = sub i64 %221, %164
  %222 = add i64 %reass.sub563, 1
  store i64 %222, ptr %22, align 8, !tbaa !5
  %223 = call i32 @shgeqz_(ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %4, ptr noundef nonnull %26, ptr noundef nonnull %25, 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 %166, ptr noundef nonnull %22, ptr noundef nonnull %30) #5
  %224 = load i64, ptr %30, align 8, !tbaa !5
  %.not488 = icmp eq i64 %224, 0
  br i1 %.not488, label %234, label %225

225:                                              ; preds = %219
  %226 = icmp slt i64 %224, 1
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  %.not498 = icmp sgt i64 %224, %.pre
  %or.cond569 = select i1 %226, i1 true, i1 %.not498
  br i1 %or.cond569, label %227, label %.loopexit.sink.split

227:                                              ; preds = %225
  %228 = icmp sle i64 %224, %.pre
  %229 = shl i64 %.pre, 1
  %.not499 = icmp sgt i64 %224, %229
  %or.cond503 = or i1 %228, %.not499
  br i1 %or.cond503, label %232, label %230

230:                                              ; preds = %227
  %231 = sub nsw i64 %224, %.pre
  br label %.loopexit.sink.split

232:                                              ; preds = %227
  %233 = add nsw i64 %.pre, 1
  br label %.loopexit.sink.split

234:                                              ; preds = %219
  store i64 0, ptr %9, align 8, !tbaa !5
  br i1 %.not475, label %259, label %235

235:                                              ; preds = %234
  br i1 %.not484517, label %239, label %236

236:                                              ; preds = %235
  %237 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %30) #5
  %238 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %4, ptr noundef nonnull %30) #5
  br label %239

239:                                              ; preds = %236, %235
  br i1 %.not485522, label %242, label %240

240:                                              ; preds = %239
  %241 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %40, ptr noundef nonnull %28, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %4, ptr noundef nonnull %30) #5
  br label %242

242:                                              ; preds = %240, %239
  %243 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %243, ptr %22, align 8, !tbaa !5
  %.not490539 = icmp slt i64 %243, 1
  br i1 %.not490539, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %242, %.lr.ph
  %.0450540 = phi i64 [ %249, %.lr.ph ], [ 1, %242 ]
  %244 = getelementptr inbounds float, ptr %47, i64 %.0450540
  %245 = getelementptr inbounds float, ptr %48, i64 %.0450540
  %246 = getelementptr inbounds float, ptr %49, i64 %.0450540
  %247 = call i64 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %244, ptr noundef nonnull %245, ptr noundef nonnull %246) #5
  %248 = getelementptr inbounds i64, ptr %54, i64 %.0450540
  store i64 %247, ptr %248, align 8, !tbaa !5
  %249 = add nuw nsw i64 %.0450540, 1
  %250 = load i64, ptr %22, align 8, !tbaa !5
  %.not490.not = icmp slt i64 %.0450540, %250
  br i1 %.not490.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %242
  %251 = load i64, ptr %18, align 8, !tbaa !5
  %reass.sub564 = sub i64 %251, %164
  %252 = add i64 %reass.sub564, 1
  store i64 %252, ptr %22, align 8, !tbaa !5
  %253 = call i32 @stgsen_(ptr noundef nonnull @c__0, ptr noundef nonnull %34, ptr noundef nonnull %35, 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 %31, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef %166, ptr noundef nonnull %22, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef nonnull %30) #5
  %254 = load i64, ptr %30, align 8, !tbaa !5
  %255 = icmp eq i64 %254, 1
  br i1 %255, label %256, label %259

256:                                              ; preds = %._crit_edge
  %257 = load i64, ptr %4, align 8, !tbaa !5
  %258 = add nsw i64 %257, 3
  store i64 %258, ptr %20, align 8, !tbaa !5
  br label %259

259:                                              ; preds = %._crit_edge, %256, %234
  %260 = load i64, ptr %34, align 8, !tbaa !5
  %.not491 = icmp eq i64 %260, 0
  br i1 %.not491, label %263, label %261

261:                                              ; preds = %259
  %262 = call i32 @sggbak_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.11, ptr noundef nonnull %4, ptr noundef nonnull %26, ptr noundef nonnull %25, ptr noundef nonnull %17, ptr noundef %165, ptr noundef nonnull %4, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %30) #5
  br label %263

263:                                              ; preds = %261, %259
  %264 = load i64, ptr %35, align 8, !tbaa !5
  %.not492 = icmp eq i64 %264, 0
  br i1 %.not492, label %267, label %265

265:                                              ; preds = %263
  %266 = call i32 @sggbak_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.14, ptr noundef nonnull %4, ptr noundef nonnull %26, ptr noundef nonnull %25, ptr noundef nonnull %17, ptr noundef %165, ptr noundef nonnull %4, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %30) #5
  br label %267

267:                                              ; preds = %265, %263
  br i1 %.not484517, label %.loopexit538, label %268

268:                                              ; preds = %267
  %269 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %269, ptr %22, align 8, !tbaa !5
  %.not493541 = icmp slt i64 %269, 1
  br i1 %.not493541, label %.loopexit538, label %.lr.ph544

.lr.ph544:                                        ; preds = %268
  %270 = load float, ptr %38, align 4
  %271 = load float, ptr %39, align 4
  %272 = load float, ptr %27, align 4
  %273 = load float, ptr %37, align 4
  %274 = insertelement <2 x float> poison, float %272, i64 0
  %275 = insertelement <2 x float> %274, float %271, i64 1
  %276 = insertelement <2 x float> poison, float %271, i64 0
  %277 = insertelement <2 x float> %276, float %272, i64 1
  %278 = fdiv <2 x float> %275, %277
  %279 = insertelement <2 x float> poison, float %273, i64 0
  %280 = insertelement <2 x float> poison, float %270, i64 1
  br label %281

281:                                              ; preds = %.lr.ph544, %322
  %.1451542 = phi i64 [ 1, %.lr.ph544 ], [ %323, %322 ]
  %282 = getelementptr inbounds float, ptr %48, i64 %.1451542
  %283 = load float, ptr %282, align 4, !tbaa !9
  %284 = fcmp une float %283, 0.000000e+00
  br i1 %284, label %285, label %322

285:                                              ; preds = %281
  %286 = getelementptr inbounds float, ptr %47, i64 %.1451542
  %287 = load float, ptr %286, align 4, !tbaa !9
  %288 = insertelement <2 x float> %279, float %287, i64 1
  %289 = insertelement <2 x float> %280, float %287, i64 0
  %290 = fdiv <2 x float> %288, %289
  %291 = fcmp ogt <2 x float> %290, %278
  %292 = extractelement <2 x i1> %291, i64 0
  %293 = extractelement <2 x i1> %291, i64 1
  %or.cond557 = select i1 %293, i1 true, i1 %292
  br i1 %or.cond557, label %294, label %297

294:                                              ; preds = %285
  %295 = mul i64 %.1451542, %187
  %296 = getelementptr inbounds float, ptr %43, i64 %295
  br label %.sink.split

297:                                              ; preds = %285
  %298 = insertelement <2 x float> %279, float %283, i64 1
  %299 = insertelement <2 x float> %280, float %283, i64 0
  %300 = fdiv <2 x float> %298, %299
  %301 = fcmp ogt <2 x float> %300, %278
  %shift = shufflevector <2 x i1> %301, <2 x i1> poison, <2 x i32> <i32 1, i32 poison>
  %302 = or <2 x i1> %shift, %301
  %or.cond505 = extractelement <2 x i1> %302, i64 0
  br i1 %or.cond505, label %303, label %322

303:                                              ; preds = %297
  %304 = add nuw nsw i64 %.1451542, 1
  %305 = mul nsw i64 %304, %41
  %306 = getelementptr float, ptr %43, i64 %.1451542
  %307 = getelementptr float, ptr %306, i64 %305
  br label %.sink.split

.sink.split:                                      ; preds = %294, %303
  %.sink589 = phi ptr [ %307, %303 ], [ %296, %294 ]
  %.sink588 = phi float [ %283, %303 ], [ %287, %294 ]
  %308 = load float, ptr %.sink589, align 4, !tbaa !9
  %309 = fdiv float %308, %.sink588
  %310 = fcmp oge float %309, 0.000000e+00
  %311 = fneg float %309
  %312 = select i1 %310, float %309, float %311
  store float %312, ptr %17, align 4, !tbaa !9
  %313 = getelementptr inbounds float, ptr %49, i64 %.1451542
  %314 = load float, ptr %313, align 4, !tbaa !9
  %315 = fmul float %314, %312
  store float %315, ptr %313, align 4, !tbaa !9
  %316 = load float, ptr %17, align 4, !tbaa !9
  %317 = load float, ptr %286, align 4, !tbaa !9
  %318 = fmul float %316, %317
  store float %318, ptr %286, align 4, !tbaa !9
  %319 = load float, ptr %17, align 4, !tbaa !9
  %320 = load float, ptr %282, align 4, !tbaa !9
  %321 = fmul float %319, %320
  store float %321, ptr %282, align 4, !tbaa !9
  br label %322

322:                                              ; preds = %.sink.split, %297, %281
  %323 = add nuw i64 %.1451542, 1
  %exitcond.not = icmp eq i64 %.1451542, %269
  br i1 %exitcond.not, label %.loopexit538, label %281, !llvm.loop !13

.loopexit538:                                     ; preds = %322, %268, %267
  br i1 %.not485522, label %.loopexit537, label %324

324:                                              ; preds = %.loopexit538
  %325 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %325, ptr %22, align 8, !tbaa !5
  %.not494545 = icmp slt i64 %325, 1
  br i1 %.not494545, label %.loopexit537, label %.lr.ph548

.lr.ph548:                                        ; preds = %324
  %326 = load float, ptr %38, align 4
  %327 = load float, ptr %40, align 4
  %328 = load float, ptr %28, align 4
  %329 = load float, ptr %37, align 4
  %330 = insertelement <2 x float> poison, float %327, i64 0
  %331 = insertelement <2 x float> %330, float %328, i64 1
  %332 = insertelement <2 x float> poison, float %328, i64 0
  %333 = insertelement <2 x float> %332, float %327, i64 1
  %334 = fdiv <2 x float> %331, %333
  %335 = insertelement <2 x float> poison, float %326, i64 0
  br label %336

336:                                              ; preds = %.lr.ph548, %367
  %.2546 = phi i64 [ 1, %.lr.ph548 ], [ %368, %367 ]
  %337 = getelementptr inbounds float, ptr %48, i64 %.2546
  %338 = load float, ptr %337, align 4, !tbaa !9
  %339 = fcmp une float %338, 0.000000e+00
  br i1 %339, label %340, label %367

340:                                              ; preds = %336
  %341 = getelementptr inbounds float, ptr %49, i64 %.2546
  %342 = load float, ptr %341, align 4, !tbaa !9
  %343 = insertelement <2 x float> poison, float %342, i64 0
  %344 = insertelement <2 x float> %343, float %329, i64 1
  %345 = insertelement <2 x float> %335, float %342, i64 1
  %346 = fdiv <2 x float> %344, %345
  %347 = fcmp ogt <2 x float> %346, %334
  %348 = extractelement <2 x i1> %347, i64 0
  %349 = extractelement <2 x i1> %347, i64 1
  %or.cond559 = select i1 %348, i1 true, i1 %349
  br i1 %or.cond559, label %350, label %367

350:                                              ; preds = %340
  %351 = mul i64 %.2546, %177
  %352 = getelementptr inbounds float, ptr %46, i64 %351
  %353 = load float, ptr %352, align 4, !tbaa !9
  %354 = fdiv float %353, %342
  %355 = fcmp oge float %354, 0.000000e+00
  %356 = fneg float %354
  %357 = select i1 %355, float %354, float %356
  store float %357, ptr %17, align 4, !tbaa !9
  %358 = load float, ptr %341, align 4, !tbaa !9
  %359 = fmul float %358, %357
  store float %359, ptr %341, align 4, !tbaa !9
  %360 = load float, ptr %17, align 4, !tbaa !9
  %361 = getelementptr inbounds float, ptr %47, i64 %.2546
  %362 = load float, ptr %361, align 4, !tbaa !9
  %363 = fmul float %360, %362
  store float %363, ptr %361, align 4, !tbaa !9
  %364 = load float, ptr %17, align 4, !tbaa !9
  %365 = load float, ptr %337, align 4, !tbaa !9
  %366 = fmul float %364, %365
  store float %366, ptr %337, align 4, !tbaa !9
  br label %367

367:                                              ; preds = %340, %336, %350
  %368 = add nuw i64 %.2546, 1
  %exitcond565.not = icmp eq i64 %.2546, %325
  br i1 %exitcond565.not, label %.loopexit537, label %336, !llvm.loop !14

.loopexit537:                                     ; preds = %367, %324, %.loopexit538
  br i1 %.not484517, label %373, label %369

369:                                              ; preds = %.loopexit537
  %370 = call i32 @slascl_(ptr noundef nonnull @.str.15, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %30) #5
  %371 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %30) #5
  %372 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %4, ptr noundef nonnull %30) #5
  br label %373

373:                                              ; preds = %369, %.loopexit537
  br i1 %.not485522, label %377, label %374

374:                                              ; preds = %373
  %375 = call i32 @slascl_(ptr noundef nonnull @.str.16, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %40, ptr noundef nonnull %28, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %30) #5
  %376 = call i32 @slascl_(ptr noundef nonnull @.str.10, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %40, ptr noundef nonnull %28, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %4, ptr noundef nonnull %30) #5
  br label %377

377:                                              ; preds = %374, %373
  br i1 %.not475, label %.loopexit, label %378

378:                                              ; preds = %377
  store i64 0, ptr %9, align 8, !tbaa !5
  %379 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %379, ptr %22, align 8, !tbaa !5
  %.not495549 = icmp slt i64 %379, 1
  br i1 %.not495549, label %.loopexit, label %.lr.ph555

.lr.ph555:                                        ; preds = %378, %.thread523
  %.0440553 = phi i64 [ %.0447, %.thread523 ], [ 1, %378 ]
  %.0446552 = phi i64 [ %.1441, %.thread523 ], [ 1, %378 ]
  %.0448551 = phi i64 [ %.1449, %.thread523 ], [ 0, %378 ]
  %.3550 = phi i64 [ %402, %.thread523 ], [ 1, %378 ]
  %380 = getelementptr inbounds float, ptr %47, i64 %.3550
  %381 = getelementptr inbounds float, ptr %48, i64 %.3550
  %382 = getelementptr inbounds float, ptr %49, i64 %.3550
  %383 = call i64 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %380, ptr noundef nonnull %381, ptr noundef nonnull %382) #5
  %384 = load float, ptr %381, align 4, !tbaa !9
  %385 = fcmp oeq float %384, 0.000000e+00
  br i1 %385, label %386, label %390

386:                                              ; preds = %.lr.ph555
  %.not497 = icmp eq i64 %383, 0
  br i1 %.not497, label %.thread523, label %387

387:                                              ; preds = %386
  %388 = load i64, ptr %9, align 8, !tbaa !5
  %389 = add nsw i64 %388, 1
  store i64 %389, ptr %9, align 8, !tbaa !5
  %.not533 = icmp eq i64 %.0440553, 0
  br i1 %.not533, label %.thread523.sink.split, label %.thread523

390:                                              ; preds = %.lr.ph555
  %391 = icmp eq i64 %.0448551, 1
  br i1 %391, label %392, label %.thread523

392:                                              ; preds = %390
  %393 = icmp ne i64 %383, 0
  %394 = icmp ne i64 %.0440553, 0
  %395 = select i1 %393, i1 true, i1 %394
  br i1 %395, label %396, label %.thread523

396:                                              ; preds = %392
  %397 = load i64, ptr %9, align 8, !tbaa !5
  %398 = add nsw i64 %397, 2
  store i64 %398, ptr %9, align 8, !tbaa !5
  %399 = icmp eq i64 %.0446552, 0
  br i1 %399, label %.thread523.sink.split, label %.thread523

.thread523.sink.split:                            ; preds = %396, %387
  %.1449.ph = phi i64 [ 0, %387 ], [ -1, %396 ]
  %.0447.ph = phi i64 [ %383, %387 ], [ 1, %396 ]
  %.1441.ph = phi i64 [ 0, %387 ], [ 1, %396 ]
  %400 = load i64, ptr %4, align 8, !tbaa !5
  %401 = add nsw i64 %400, 2
  store i64 %401, ptr %20, align 8, !tbaa !5
  br label %.thread523

.thread523:                                       ; preds = %.thread523.sink.split, %392, %386, %390, %396, %387
  %.1449 = phi i64 [ 0, %387 ], [ -1, %396 ], [ 1, %390 ], [ 0, %386 ], [ -1, %392 ], [ %.1449.ph, %.thread523.sink.split ]
  %.0447 = phi i64 [ %383, %387 ], [ 1, %396 ], [ %383, %390 ], [ 0, %386 ], [ 0, %392 ], [ %.0447.ph, %.thread523.sink.split ]
  %.1441 = phi i64 [ %.0440553, %387 ], [ 1, %396 ], [ %.0440553, %390 ], [ %.0440553, %386 ], [ 0, %392 ], [ %.1441.ph, %.thread523.sink.split ]
  %402 = add nuw nsw i64 %.3550, 1
  %403 = load i64, ptr %22, align 8, !tbaa !5
  %.not495.not = icmp slt i64 %.3550, %403
  br i1 %.not495.not, label %.lr.ph555, label %.loopexit, !llvm.loop !15

.loopexit.sink.split:                             ; preds = %225, %230, %232
  %.sink592 = phi i64 [ %233, %232 ], [ %231, %230 ], [ %224, %225 ]
  store i64 %.sink592, ptr %20, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread523, %.loopexit.sink.split, %378, %377
  store float %120, ptr %17, align 4, !tbaa !9
  br label %404

404:                                              ; preds = %126, %.loopexit, %130, %.thread510
  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 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = 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