; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (sgegs)

; 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
@c__1 = external hidden global i64, align 8
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b36 = external hidden global float, align 4
@c_b37 = external hidden global float, align 4
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1

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

121:                                              ; preds = %17
  store i64 1, ptr %68, align 8, !tbaa !9
  store i64 0, ptr %60, align 8, !tbaa !9
  br label %129

122:                                              ; preds = %17
  %123 = load ptr, ptr %19, align 8, !tbaa !5
  %124 = call i64 @lsame_(ptr noundef %123, ptr noundef @.str.1)
  %125 = icmp ne i64 %124, 0
  br i1 %125, label %126, label %127

126:                                              ; preds = %122
  store i64 2, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %128

127:                                              ; preds = %122
  store i64 -1, ptr %68, align 8, !tbaa !9
  store i64 0, ptr %60, align 8, !tbaa !9
  br label %128

128:                                              ; preds = %127, %126
  br label %129

129:                                              ; preds = %128, %121
  %130 = load ptr, ptr %20, align 8, !tbaa !5
  %131 = call i64 @lsame_(ptr noundef %130, ptr noundef @.str)
  %132 = icmp ne i64 %131, 0
  br i1 %132, label %133, label %134

133:                                              ; preds = %129
  store i64 1, ptr %70, align 8, !tbaa !9
  store i64 0, ptr %62, align 8, !tbaa !9
  br label %141

134:                                              ; preds = %129
  %135 = load ptr, ptr %20, align 8, !tbaa !5
  %136 = call i64 @lsame_(ptr noundef %135, ptr noundef @.str.1)
  %137 = icmp ne i64 %136, 0
  br i1 %137, label %138, label %139

138:                                              ; preds = %134
  store i64 2, ptr %70, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %140

139:                                              ; preds = %134
  store i64 -1, ptr %70, align 8, !tbaa !9
  store i64 0, ptr %62, align 8, !tbaa !9
  br label %140

140:                                              ; preds = %139, %138
  br label %141

141:                                              ; preds = %140, %133
  %142 = load ptr, ptr %21, align 8, !tbaa !5
  %143 = load i64, ptr %142, align 8, !tbaa !9
  %144 = shl i64 %143, 2
  store i64 %144, ptr %44, align 8, !tbaa !9
  %145 = load i64, ptr %44, align 8, !tbaa !9
  %146 = icmp sge i64 %145, 1
  br i1 %146, label %147, label %149

147:                                              ; preds = %141
  %148 = load i64, ptr %44, align 8, !tbaa !9
  br label %150

149:                                              ; preds = %141
  br label %150

150:                                              ; preds = %149, %147
  %151 = phi i64 [ %148, %147 ], [ 1, %149 ]
  store i64 %151, ptr %72, align 8, !tbaa !9
  %152 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %152, ptr %75, align 8, !tbaa !9
  %153 = load i64, ptr %75, align 8, !tbaa !9
  %154 = sitofp i64 %153 to float
  %155 = load ptr, ptr %33, align 8, !tbaa !5
  %156 = getelementptr inbounds float, ptr %155, i64 1
  store float %154, ptr %156, align 4, !tbaa !11
  %157 = load ptr, ptr %34, align 8, !tbaa !5
  %158 = load i64, ptr %157, align 8, !tbaa !9
  %159 = icmp eq i64 %158, -1
  %160 = zext i1 %159 to i32
  %161 = sext i32 %160 to i64
  store i64 %161, ptr %76, align 8, !tbaa !9
  %162 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 0, ptr %162, align 8, !tbaa !9
  %163 = load i64, ptr %68, align 8, !tbaa !9
  %164 = icmp sle i64 %163, 0
  br i1 %164, label %165, label %167

165:                                              ; preds = %150
  %166 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -1, ptr %166, align 8, !tbaa !9
  br label %255

167:                                              ; preds = %150
  %168 = load i64, ptr %70, align 8, !tbaa !9
  %169 = icmp sle i64 %168, 0
  br i1 %169, label %170, label %172

170:                                              ; preds = %167
  %171 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -2, ptr %171, align 8, !tbaa !9
  br label %254

172:                                              ; preds = %167
  %173 = load ptr, ptr %21, align 8, !tbaa !5
  %174 = load i64, ptr %173, align 8, !tbaa !9
  %175 = icmp slt i64 %174, 0
  br i1 %175, label %176, label %178

176:                                              ; preds = %172
  %177 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -3, ptr %177, align 8, !tbaa !9
  br label %253

178:                                              ; preds = %172
  %179 = load ptr, ptr %23, align 8, !tbaa !5
  %180 = load i64, ptr %179, align 8, !tbaa !9
  %181 = load ptr, ptr %21, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = icmp sge i64 1, %182
  br i1 %183, label %184, label %185

184:                                              ; preds = %178
  br label %188

185:                                              ; preds = %178
  %186 = load ptr, ptr %21, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  br label %188

188:                                              ; preds = %185, %184
  %189 = phi i64 [ 1, %184 ], [ %187, %185 ]
  %190 = icmp slt i64 %180, %189
  br i1 %190, label %191, label %193

191:                                              ; preds = %188
  %192 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -5, ptr %192, align 8, !tbaa !9
  br label %252

193:                                              ; preds = %188
  %194 = load ptr, ptr %25, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  %196 = load ptr, ptr %21, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  %198 = icmp sge i64 1, %197
  br i1 %198, label %199, label %200

199:                                              ; preds = %193
  br label %203

200:                                              ; preds = %193
  %201 = load ptr, ptr %21, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  br label %203

203:                                              ; preds = %200, %199
  %204 = phi i64 [ 1, %199 ], [ %202, %200 ]
  %205 = icmp slt i64 %195, %204
  br i1 %205, label %206, label %208

206:                                              ; preds = %203
  %207 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -7, ptr %207, align 8, !tbaa !9
  br label %251

208:                                              ; preds = %203
  %209 = load ptr, ptr %30, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = icmp slt i64 %210, 1
  br i1 %211, label %221, label %212

212:                                              ; preds = %208
  %213 = load i64, ptr %60, align 8, !tbaa !9
  %214 = icmp ne i64 %213, 0
  br i1 %214, label %215, label %223

215:                                              ; preds = %212
  %216 = load ptr, ptr %30, align 8, !tbaa !5
  %217 = load i64, ptr %216, align 8, !tbaa !9
  %218 = load ptr, ptr %21, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  %220 = icmp slt i64 %217, %219
  br i1 %220, label %221, label %223

221:                                              ; preds = %215, %208
  %222 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -12, ptr %222, align 8, !tbaa !9
  br label %250

223:                                              ; preds = %215, %212
  %224 = load ptr, ptr %32, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = icmp slt i64 %225, 1
  br i1 %226, label %236, label %227

227:                                              ; preds = %223
  %228 = load i64, ptr %62, align 8, !tbaa !9
  %229 = icmp ne i64 %228, 0
  br i1 %229, label %230, label %238

230:                                              ; preds = %227
  %231 = load ptr, ptr %32, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = load ptr, ptr %21, align 8, !tbaa !5
  %234 = load i64, ptr %233, align 8, !tbaa !9
  %235 = icmp slt i64 %232, %234
  br i1 %235, label %236, label %238

236:                                              ; preds = %230, %223
  %237 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -14, ptr %237, align 8, !tbaa !9
  br label %249

238:                                              ; preds = %230, %227
  %239 = load ptr, ptr %34, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = load i64, ptr %72, align 8, !tbaa !9
  %242 = icmp slt i64 %240, %241
  br i1 %242, label %243, label %248

243:                                              ; preds = %238
  %244 = load i64, ptr %76, align 8, !tbaa !9
  %245 = icmp ne i64 %244, 0
  br i1 %245, label %248, label %246

246:                                              ; preds = %243
  %247 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -16, ptr %247, align 8, !tbaa !9
  br label %248

248:                                              ; preds = %246, %243, %238
  br label %249

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

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

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

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

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

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

255:                                              ; preds = %254, %165
  %256 = load ptr, ptr %35, align 8, !tbaa !5
  %257 = load i64, ptr %256, align 8, !tbaa !9
  %258 = icmp eq i64 %257, 0
  br i1 %258, label %259, label %302

259:                                              ; preds = %255
  %260 = load ptr, ptr %21, align 8, !tbaa !5
  %261 = load ptr, ptr %21, align 8, !tbaa !5
  %262 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %260, ptr noundef %261, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %262, ptr %47, align 8, !tbaa !9
  %263 = load ptr, ptr %21, align 8, !tbaa !5
  %264 = load ptr, ptr %21, align 8, !tbaa !5
  %265 = load ptr, ptr %21, align 8, !tbaa !5
  %266 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %263, ptr noundef %264, ptr noundef %265, ptr noundef @c_n1)
  store i64 %266, ptr %48, align 8, !tbaa !9
  %267 = load ptr, ptr %21, align 8, !tbaa !5
  %268 = load ptr, ptr %21, align 8, !tbaa !5
  %269 = load ptr, ptr %21, align 8, !tbaa !5
  %270 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.3, ptr noundef %267, ptr noundef %268, ptr noundef %269, ptr noundef @c_n1)
  store i64 %270, ptr %49, align 8, !tbaa !9
  %271 = load i64, ptr %47, align 8, !tbaa !9
  %272 = load i64, ptr %48, align 8, !tbaa !9
  %273 = icmp sge i64 %271, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %259
  %275 = load i64, ptr %47, align 8, !tbaa !9
  br label %278

276:                                              ; preds = %259
  %277 = load i64, ptr %48, align 8, !tbaa !9
  br label %278

278:                                              ; preds = %276, %274
  %279 = phi i64 [ %275, %274 ], [ %277, %276 ]
  store i64 %279, ptr %44, align 8, !tbaa !9
  %280 = load i64, ptr %44, align 8, !tbaa !9
  %281 = load i64, ptr %49, align 8, !tbaa !9
  %282 = icmp sge i64 %280, %281
  br i1 %282, label %283, label %285

283:                                              ; preds = %278
  %284 = load i64, ptr %44, align 8, !tbaa !9
  br label %287

285:                                              ; preds = %278
  %286 = load i64, ptr %49, align 8, !tbaa !9
  br label %287

287:                                              ; preds = %285, %283
  %288 = phi i64 [ %284, %283 ], [ %286, %285 ]
  store i64 %288, ptr %46, align 8, !tbaa !9
  %289 = load ptr, ptr %21, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  %291 = shl i64 %290, 1
  %292 = load ptr, ptr %21, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  %294 = load i64, ptr %46, align 8, !tbaa !9
  %295 = add nsw i64 %294, 1
  %296 = mul nsw i64 %293, %295
  %297 = add nsw i64 %291, %296
  store i64 %297, ptr %56, align 8, !tbaa !9
  %298 = load i64, ptr %56, align 8, !tbaa !9
  %299 = sitofp i64 %298 to float
  %300 = load ptr, ptr %33, align 8, !tbaa !5
  %301 = getelementptr inbounds float, ptr %300, i64 1
  store float %299, ptr %301, align 4, !tbaa !11
  br label %302

302:                                              ; preds = %287, %255
  %303 = load ptr, ptr %35, align 8, !tbaa !5
  %304 = load i64, ptr %303, align 8, !tbaa !9
  %305 = icmp ne i64 %304, 0
  br i1 %305, label %306, label %311

306:                                              ; preds = %302
  %307 = load ptr, ptr %35, align 8, !tbaa !5
  %308 = load i64, ptr %307, align 8, !tbaa !9
  %309 = sub nsw i64 0, %308
  store i64 %309, ptr %44, align 8, !tbaa !9
  %310 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %44)
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

311:                                              ; preds = %302
  %312 = load i64, ptr %76, align 8, !tbaa !9
  %313 = icmp ne i64 %312, 0
  br i1 %313, label %314, label %315

314:                                              ; preds = %311
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

315:                                              ; preds = %311
  br label %316

316:                                              ; preds = %315
  %317 = load ptr, ptr %21, align 8, !tbaa !5
  %318 = load i64, ptr %317, align 8, !tbaa !9
  %319 = icmp eq i64 %318, 0
  br i1 %319, label %320, label %321

320:                                              ; preds = %316
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

321:                                              ; preds = %316
  %322 = call double @slamch_(ptr noundef @.str.7)
  %323 = call double @slamch_(ptr noundef @.str.8)
  %324 = fmul double %322, %323
  %325 = fptrunc double %324 to float
  store float %325, ptr %52, align 4, !tbaa !11
  %326 = call double @slamch_(ptr noundef @.str.9)
  %327 = fptrunc double %326 to float
  store float %327, ptr %66, align 4, !tbaa !11
  %328 = load ptr, ptr %21, align 8, !tbaa !5
  %329 = load i64, ptr %328, align 8, !tbaa !9
  %330 = sitofp i64 %329 to float
  %331 = load float, ptr %66, align 4, !tbaa !11
  %332 = fmul float %330, %331
  %333 = load float, ptr %52, align 4, !tbaa !11
  %334 = fdiv float %332, %333
  store float %334, ptr %74, align 4, !tbaa !11
  %335 = load float, ptr %74, align 4, !tbaa !11
  %336 = fdiv float 1.000000e+00, %335
  store float %336, ptr %67, align 4, !tbaa !11
  %337 = load ptr, ptr %21, align 8, !tbaa !5
  %338 = load ptr, ptr %21, align 8, !tbaa !5
  %339 = load ptr, ptr %22, align 8, !tbaa !5
  %340 = load i64, ptr %37, align 8, !tbaa !9
  %341 = getelementptr inbounds float, ptr %339, i64 %340
  %342 = load ptr, ptr %23, align 8, !tbaa !5
  %343 = load ptr, ptr %33, align 8, !tbaa !5
  %344 = getelementptr inbounds float, ptr %343, i64 1
  %345 = call double @slange_(ptr noundef @.str.10, ptr noundef %337, ptr noundef %338, ptr noundef %341, ptr noundef %342, ptr noundef %344)
  %346 = fptrunc double %345 to float
  store float %346, ptr %53, align 4, !tbaa !11
  store i64 0, ptr %64, align 8, !tbaa !9
  %347 = load float, ptr %53, align 4, !tbaa !11
  %348 = fcmp ogt float %347, 0.000000e+00
  br i1 %348, label %349, label %355

349:                                              ; preds = %321
  %350 = load float, ptr %53, align 4, !tbaa !11
  %351 = load float, ptr %74, align 4, !tbaa !11
  %352 = fcmp olt float %350, %351
  br i1 %352, label %353, label %355

353:                                              ; preds = %349
  %354 = load float, ptr %74, align 4, !tbaa !11
  store float %354, ptr %71, align 4, !tbaa !11
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %362

355:                                              ; preds = %349, %321
  %356 = load float, ptr %53, align 4, !tbaa !11
  %357 = load float, ptr %67, align 4, !tbaa !11
  %358 = fcmp ogt float %356, %357
  br i1 %358, label %359, label %361

359:                                              ; preds = %355
  %360 = load float, ptr %67, align 4, !tbaa !11
  store float %360, ptr %71, align 4, !tbaa !11
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %361

361:                                              ; preds = %359, %355
  br label %362

362:                                              ; preds = %361, %353
  %363 = load i64, ptr %64, align 8, !tbaa !9
  %364 = icmp ne i64 %363, 0
  br i1 %364, label %365, label %381

365:                                              ; preds = %362
  %366 = load ptr, ptr %21, align 8, !tbaa !5
  %367 = load ptr, ptr %21, align 8, !tbaa !5
  %368 = load ptr, ptr %22, align 8, !tbaa !5
  %369 = load i64, ptr %37, align 8, !tbaa !9
  %370 = getelementptr inbounds float, ptr %368, i64 %369
  %371 = load ptr, ptr %23, align 8, !tbaa !5
  %372 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %53, ptr noundef %71, ptr noundef %366, ptr noundef %367, ptr noundef %370, ptr noundef %371, ptr noundef %58)
  %373 = load i64, ptr %58, align 8, !tbaa !9
  %374 = icmp ne i64 %373, 0
  br i1 %374, label %375, label %380

375:                                              ; preds = %365
  %376 = load ptr, ptr %21, align 8, !tbaa !5
  %377 = load i64, ptr %376, align 8, !tbaa !9
  %378 = add nsw i64 %377, 9
  %379 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %378, ptr %379, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

380:                                              ; preds = %365
  br label %381

381:                                              ; preds = %380, %362
  %382 = load ptr, ptr %21, align 8, !tbaa !5
  %383 = load ptr, ptr %21, align 8, !tbaa !5
  %384 = load ptr, ptr %24, align 8, !tbaa !5
  %385 = load i64, ptr %39, align 8, !tbaa !9
  %386 = getelementptr inbounds float, ptr %384, i64 %385
  %387 = load ptr, ptr %25, align 8, !tbaa !5
  %388 = load ptr, ptr %33, align 8, !tbaa !5
  %389 = getelementptr inbounds float, ptr %388, i64 1
  %390 = call double @slange_(ptr noundef @.str.10, ptr noundef %382, ptr noundef %383, ptr noundef %386, ptr noundef %387, ptr noundef %389)
  %391 = fptrunc double %390 to float
  store float %391, ptr %54, align 4, !tbaa !11
  store i64 0, ptr %65, align 8, !tbaa !9
  %392 = load float, ptr %54, align 4, !tbaa !11
  %393 = fcmp ogt float %392, 0.000000e+00
  br i1 %393, label %394, label %400

394:                                              ; preds = %381
  %395 = load float, ptr %54, align 4, !tbaa !11
  %396 = load float, ptr %74, align 4, !tbaa !11
  %397 = fcmp olt float %395, %396
  br i1 %397, label %398, label %400

398:                                              ; preds = %394
  %399 = load float, ptr %74, align 4, !tbaa !11
  store float %399, ptr %73, align 4, !tbaa !11
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %407

400:                                              ; preds = %394, %381
  %401 = load float, ptr %54, align 4, !tbaa !11
  %402 = load float, ptr %67, align 4, !tbaa !11
  %403 = fcmp ogt float %401, %402
  br i1 %403, label %404, label %406

404:                                              ; preds = %400
  %405 = load float, ptr %67, align 4, !tbaa !11
  store float %405, ptr %73, align 4, !tbaa !11
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %406

406:                                              ; preds = %404, %400
  br label %407

407:                                              ; preds = %406, %398
  %408 = load i64, ptr %65, align 8, !tbaa !9
  %409 = icmp ne i64 %408, 0
  br i1 %409, label %410, label %426

410:                                              ; preds = %407
  %411 = load ptr, ptr %21, align 8, !tbaa !5
  %412 = load ptr, ptr %21, align 8, !tbaa !5
  %413 = load ptr, ptr %24, align 8, !tbaa !5
  %414 = load i64, ptr %39, align 8, !tbaa !9
  %415 = getelementptr inbounds float, ptr %413, i64 %414
  %416 = load ptr, ptr %25, align 8, !tbaa !5
  %417 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %54, ptr noundef %73, ptr noundef %411, ptr noundef %412, ptr noundef %415, ptr noundef %416, ptr noundef %58)
  %418 = load i64, ptr %58, align 8, !tbaa !9
  %419 = icmp ne i64 %418, 0
  br i1 %419, label %420, label %425

420:                                              ; preds = %410
  %421 = load ptr, ptr %21, align 8, !tbaa !5
  %422 = load i64, ptr %421, align 8, !tbaa !9
  %423 = add nsw i64 %422, 9
  %424 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %423, ptr %424, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

425:                                              ; preds = %410
  br label %426

426:                                              ; preds = %425, %407
  store i64 1, ptr %57, align 8, !tbaa !9
  %427 = load ptr, ptr %21, align 8, !tbaa !5
  %428 = load i64, ptr %427, align 8, !tbaa !9
  %429 = add nsw i64 %428, 1
  store i64 %429, ptr %69, align 8, !tbaa !9
  %430 = load i64, ptr %69, align 8, !tbaa !9
  %431 = load ptr, ptr %21, align 8, !tbaa !5
  %432 = load i64, ptr %431, align 8, !tbaa !9
  %433 = add nsw i64 %430, %432
  store i64 %433, ptr %61, align 8, !tbaa !9
  %434 = load ptr, ptr %21, align 8, !tbaa !5
  %435 = load ptr, ptr %22, align 8, !tbaa !5
  %436 = load i64, ptr %37, align 8, !tbaa !9
  %437 = getelementptr inbounds float, ptr %435, i64 %436
  %438 = load ptr, ptr %23, align 8, !tbaa !5
  %439 = load ptr, ptr %24, align 8, !tbaa !5
  %440 = load i64, ptr %39, align 8, !tbaa !9
  %441 = getelementptr inbounds float, ptr %439, i64 %440
  %442 = load ptr, ptr %25, align 8, !tbaa !5
  %443 = load ptr, ptr %33, align 8, !tbaa !5
  %444 = load i64, ptr %57, align 8, !tbaa !9
  %445 = getelementptr inbounds float, ptr %443, i64 %444
  %446 = load ptr, ptr %33, align 8, !tbaa !5
  %447 = load i64, ptr %69, align 8, !tbaa !9
  %448 = getelementptr inbounds float, ptr %446, i64 %447
  %449 = load ptr, ptr %33, align 8, !tbaa !5
  %450 = load i64, ptr %61, align 8, !tbaa !9
  %451 = getelementptr inbounds float, ptr %449, i64 %450
  %452 = call i32 @sggbal_(ptr noundef @.str.12, ptr noundef %434, ptr noundef %437, ptr noundef %438, ptr noundef %441, ptr noundef %442, ptr noundef %51, ptr noundef %50, ptr noundef %445, ptr noundef %448, ptr noundef %451, ptr noundef %58)
  %453 = load i64, ptr %58, align 8, !tbaa !9
  %454 = icmp ne i64 %453, 0
  br i1 %454, label %455, label %460

455:                                              ; preds = %426
  %456 = load ptr, ptr %21, align 8, !tbaa !5
  %457 = load i64, ptr %456, align 8, !tbaa !9
  %458 = add nsw i64 %457, 1
  %459 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %458, ptr %459, align 8, !tbaa !9
  br label %927

460:                                              ; preds = %426
  %461 = load i64, ptr %50, align 8, !tbaa !9
  %462 = add nsw i64 %461, 1
  %463 = load i64, ptr %51, align 8, !tbaa !9
  %464 = sub nsw i64 %462, %463
  store i64 %464, ptr %63, align 8, !tbaa !9
  %465 = load ptr, ptr %21, align 8, !tbaa !5
  %466 = load i64, ptr %465, align 8, !tbaa !9
  %467 = add nsw i64 %466, 1
  %468 = load i64, ptr %51, align 8, !tbaa !9
  %469 = sub nsw i64 %467, %468
  store i64 %469, ptr %59, align 8, !tbaa !9
  %470 = load i64, ptr %61, align 8, !tbaa !9
  store i64 %470, ptr %55, align 8, !tbaa !9
  %471 = load i64, ptr %55, align 8, !tbaa !9
  %472 = load i64, ptr %63, align 8, !tbaa !9
  %473 = add nsw i64 %471, %472
  store i64 %473, ptr %61, align 8, !tbaa !9
  %474 = load ptr, ptr %34, align 8, !tbaa !5
  %475 = load i64, ptr %474, align 8, !tbaa !9
  %476 = add nsw i64 %475, 1
  %477 = load i64, ptr %61, align 8, !tbaa !9
  %478 = sub nsw i64 %476, %477
  store i64 %478, ptr %44, align 8, !tbaa !9
  %479 = load ptr, ptr %24, align 8, !tbaa !5
  %480 = load i64, ptr %51, align 8, !tbaa !9
  %481 = load i64, ptr %51, align 8, !tbaa !9
  %482 = load i64, ptr %38, align 8, !tbaa !9
  %483 = mul nsw i64 %481, %482
  %484 = add nsw i64 %480, %483
  %485 = getelementptr inbounds float, ptr %479, i64 %484
  %486 = load ptr, ptr %25, align 8, !tbaa !5
  %487 = load ptr, ptr %33, align 8, !tbaa !5
  %488 = load i64, ptr %55, align 8, !tbaa !9
  %489 = getelementptr inbounds float, ptr %487, i64 %488
  %490 = load ptr, ptr %33, align 8, !tbaa !5
  %491 = load i64, ptr %61, align 8, !tbaa !9
  %492 = getelementptr inbounds float, ptr %490, i64 %491
  %493 = call i32 @sgeqrf_(ptr noundef %63, ptr noundef %59, ptr noundef %485, ptr noundef %486, ptr noundef %489, ptr noundef %492, ptr noundef %44, ptr noundef %58)
  %494 = load i64, ptr %58, align 8, !tbaa !9
  %495 = icmp sge i64 %494, 0
  br i1 %495, label %496, label %515

496:                                              ; preds = %460
  %497 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %497, ptr %44, align 8, !tbaa !9
  %498 = load ptr, ptr %33, align 8, !tbaa !5
  %499 = load i64, ptr %61, align 8, !tbaa !9
  %500 = getelementptr inbounds float, ptr %498, i64 %499
  %501 = load float, ptr %500, align 4, !tbaa !11
  %502 = fptosi float %501 to i64
  %503 = load i64, ptr %61, align 8, !tbaa !9
  %504 = add nsw i64 %502, %503
  %505 = sub nsw i64 %504, 1
  store i64 %505, ptr %45, align 8, !tbaa !9
  %506 = load i64, ptr %44, align 8, !tbaa !9
  %507 = load i64, ptr %45, align 8, !tbaa !9
  %508 = icmp sge i64 %506, %507
  br i1 %508, label %509, label %511

509:                                              ; preds = %496
  %510 = load i64, ptr %44, align 8, !tbaa !9
  br label %513

511:                                              ; preds = %496
  %512 = load i64, ptr %45, align 8, !tbaa !9
  br label %513

513:                                              ; preds = %511, %509
  %514 = phi i64 [ %510, %509 ], [ %512, %511 ]
  store i64 %514, ptr %75, align 8, !tbaa !9
  br label %515

515:                                              ; preds = %513, %460
  %516 = load i64, ptr %58, align 8, !tbaa !9
  %517 = icmp ne i64 %516, 0
  br i1 %517, label %518, label %523

518:                                              ; preds = %515
  %519 = load ptr, ptr %21, align 8, !tbaa !5
  %520 = load i64, ptr %519, align 8, !tbaa !9
  %521 = add nsw i64 %520, 2
  %522 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %521, ptr %522, align 8, !tbaa !9
  br label %927

523:                                              ; preds = %515
  %524 = load ptr, ptr %34, align 8, !tbaa !5
  %525 = load i64, ptr %524, align 8, !tbaa !9
  %526 = add nsw i64 %525, 1
  %527 = load i64, ptr %61, align 8, !tbaa !9
  %528 = sub nsw i64 %526, %527
  store i64 %528, ptr %44, align 8, !tbaa !9
  %529 = load ptr, ptr %24, align 8, !tbaa !5
  %530 = load i64, ptr %51, align 8, !tbaa !9
  %531 = load i64, ptr %51, align 8, !tbaa !9
  %532 = load i64, ptr %38, align 8, !tbaa !9
  %533 = mul nsw i64 %531, %532
  %534 = add nsw i64 %530, %533
  %535 = getelementptr inbounds float, ptr %529, i64 %534
  %536 = load ptr, ptr %25, align 8, !tbaa !5
  %537 = load ptr, ptr %33, align 8, !tbaa !5
  %538 = load i64, ptr %55, align 8, !tbaa !9
  %539 = getelementptr inbounds float, ptr %537, i64 %538
  %540 = load ptr, ptr %22, align 8, !tbaa !5
  %541 = load i64, ptr %51, align 8, !tbaa !9
  %542 = load i64, ptr %51, align 8, !tbaa !9
  %543 = load i64, ptr %36, align 8, !tbaa !9
  %544 = mul nsw i64 %542, %543
  %545 = add nsw i64 %541, %544
  %546 = getelementptr inbounds float, ptr %540, i64 %545
  %547 = load ptr, ptr %23, align 8, !tbaa !5
  %548 = load ptr, ptr %33, align 8, !tbaa !5
  %549 = load i64, ptr %61, align 8, !tbaa !9
  %550 = getelementptr inbounds float, ptr %548, i64 %549
  %551 = call i32 @sormqr_(ptr noundef @.str.13, ptr noundef @.str.14, ptr noundef %63, ptr noundef %59, ptr noundef %63, ptr noundef %535, ptr noundef %536, ptr noundef %539, ptr noundef %546, ptr noundef %547, ptr noundef %550, ptr noundef %44, ptr noundef %58)
  %552 = load i64, ptr %58, align 8, !tbaa !9
  %553 = icmp sge i64 %552, 0
  br i1 %553, label %554, label %573

554:                                              ; preds = %523
  %555 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %555, ptr %44, align 8, !tbaa !9
  %556 = load ptr, ptr %33, align 8, !tbaa !5
  %557 = load i64, ptr %61, align 8, !tbaa !9
  %558 = getelementptr inbounds float, ptr %556, i64 %557
  %559 = load float, ptr %558, align 4, !tbaa !11
  %560 = fptosi float %559 to i64
  %561 = load i64, ptr %61, align 8, !tbaa !9
  %562 = add nsw i64 %560, %561
  %563 = sub nsw i64 %562, 1
  store i64 %563, ptr %45, align 8, !tbaa !9
  %564 = load i64, ptr %44, align 8, !tbaa !9
  %565 = load i64, ptr %45, align 8, !tbaa !9
  %566 = icmp sge i64 %564, %565
  br i1 %566, label %567, label %569

567:                                              ; preds = %554
  %568 = load i64, ptr %44, align 8, !tbaa !9
  br label %571

569:                                              ; preds = %554
  %570 = load i64, ptr %45, align 8, !tbaa !9
  br label %571

571:                                              ; preds = %569, %567
  %572 = phi i64 [ %568, %567 ], [ %570, %569 ]
  store i64 %572, ptr %75, align 8, !tbaa !9
  br label %573

573:                                              ; preds = %571, %523
  %574 = load i64, ptr %58, align 8, !tbaa !9
  %575 = icmp ne i64 %574, 0
  br i1 %575, label %576, label %581

576:                                              ; preds = %573
  %577 = load ptr, ptr %21, align 8, !tbaa !5
  %578 = load i64, ptr %577, align 8, !tbaa !9
  %579 = add nsw i64 %578, 3
  %580 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %579, ptr %580, align 8, !tbaa !9
  br label %927

581:                                              ; preds = %573
  %582 = load i64, ptr %60, align 8, !tbaa !9
  %583 = icmp ne i64 %582, 0
  br i1 %583, label %584, label %665

584:                                              ; preds = %581
  %585 = load ptr, ptr %21, align 8, !tbaa !5
  %586 = load ptr, ptr %21, align 8, !tbaa !5
  %587 = load ptr, ptr %29, align 8, !tbaa !5
  %588 = load i64, ptr %41, align 8, !tbaa !9
  %589 = getelementptr inbounds float, ptr %587, i64 %588
  %590 = load ptr, ptr %30, align 8, !tbaa !5
  %591 = call i32 @slaset_(ptr noundef @.str.15, ptr noundef %585, ptr noundef %586, ptr noundef @c_b36, ptr noundef @c_b37, ptr noundef %589, ptr noundef %590)
  %592 = load i64, ptr %63, align 8, !tbaa !9
  %593 = sub nsw i64 %592, 1
  store i64 %593, ptr %44, align 8, !tbaa !9
  %594 = load i64, ptr %63, align 8, !tbaa !9
  %595 = sub nsw i64 %594, 1
  store i64 %595, ptr %45, align 8, !tbaa !9
  %596 = load ptr, ptr %24, align 8, !tbaa !5
  %597 = load i64, ptr %51, align 8, !tbaa !9
  %598 = add nsw i64 %597, 1
  %599 = load i64, ptr %51, align 8, !tbaa !9
  %600 = load i64, ptr %38, align 8, !tbaa !9
  %601 = mul nsw i64 %599, %600
  %602 = add nsw i64 %598, %601
  %603 = getelementptr inbounds float, ptr %596, i64 %602
  %604 = load ptr, ptr %25, align 8, !tbaa !5
  %605 = load ptr, ptr %29, align 8, !tbaa !5
  %606 = load i64, ptr %51, align 8, !tbaa !9
  %607 = add nsw i64 %606, 1
  %608 = load i64, ptr %51, align 8, !tbaa !9
  %609 = load i64, ptr %40, align 8, !tbaa !9
  %610 = mul nsw i64 %608, %609
  %611 = add nsw i64 %607, %610
  %612 = getelementptr inbounds float, ptr %605, i64 %611
  %613 = load ptr, ptr %30, align 8, !tbaa !5
  %614 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %44, ptr noundef %45, ptr noundef %603, ptr noundef %604, ptr noundef %612, ptr noundef %613)
  %615 = load ptr, ptr %34, align 8, !tbaa !5
  %616 = load i64, ptr %615, align 8, !tbaa !9
  %617 = add nsw i64 %616, 1
  %618 = load i64, ptr %61, align 8, !tbaa !9
  %619 = sub nsw i64 %617, %618
  store i64 %619, ptr %44, align 8, !tbaa !9
  %620 = load ptr, ptr %29, align 8, !tbaa !5
  %621 = load i64, ptr %51, align 8, !tbaa !9
  %622 = load i64, ptr %51, align 8, !tbaa !9
  %623 = load i64, ptr %40, align 8, !tbaa !9
  %624 = mul nsw i64 %622, %623
  %625 = add nsw i64 %621, %624
  %626 = getelementptr inbounds float, ptr %620, i64 %625
  %627 = load ptr, ptr %30, align 8, !tbaa !5
  %628 = load ptr, ptr %33, align 8, !tbaa !5
  %629 = load i64, ptr %55, align 8, !tbaa !9
  %630 = getelementptr inbounds float, ptr %628, i64 %629
  %631 = load ptr, ptr %33, align 8, !tbaa !5
  %632 = load i64, ptr %61, align 8, !tbaa !9
  %633 = getelementptr inbounds float, ptr %631, i64 %632
  %634 = call i32 @sorgqr_(ptr noundef %63, ptr noundef %63, ptr noundef %63, ptr noundef %626, ptr noundef %627, ptr noundef %630, ptr noundef %633, ptr noundef %44, ptr noundef %58)
  %635 = load i64, ptr %58, align 8, !tbaa !9
  %636 = icmp sge i64 %635, 0
  br i1 %636, label %637, label %656

637:                                              ; preds = %584
  %638 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %638, ptr %44, align 8, !tbaa !9
  %639 = load ptr, ptr %33, align 8, !tbaa !5
  %640 = load i64, ptr %61, align 8, !tbaa !9
  %641 = getelementptr inbounds float, ptr %639, i64 %640
  %642 = load float, ptr %641, align 4, !tbaa !11
  %643 = fptosi float %642 to i64
  %644 = load i64, ptr %61, align 8, !tbaa !9
  %645 = add nsw i64 %643, %644
  %646 = sub nsw i64 %645, 1
  store i64 %646, ptr %45, align 8, !tbaa !9
  %647 = load i64, ptr %44, align 8, !tbaa !9
  %648 = load i64, ptr %45, align 8, !tbaa !9
  %649 = icmp sge i64 %647, %648
  br i1 %649, label %650, label %652

650:                                              ; preds = %637
  %651 = load i64, ptr %44, align 8, !tbaa !9
  br label %654

652:                                              ; preds = %637
  %653 = load i64, ptr %45, align 8, !tbaa !9
  br label %654

654:                                              ; preds = %652, %650
  %655 = phi i64 [ %651, %650 ], [ %653, %652 ]
  store i64 %655, ptr %75, align 8, !tbaa !9
  br label %656

656:                                              ; preds = %654, %584
  %657 = load i64, ptr %58, align 8, !tbaa !9
  %658 = icmp ne i64 %657, 0
  br i1 %658, label %659, label %664

659:                                              ; preds = %656
  %660 = load ptr, ptr %21, align 8, !tbaa !5
  %661 = load i64, ptr %660, align 8, !tbaa !9
  %662 = add nsw i64 %661, 4
  %663 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %662, ptr %663, align 8, !tbaa !9
  br label %927

664:                                              ; preds = %656
  br label %665

665:                                              ; preds = %664, %581
  %666 = load i64, ptr %62, align 8, !tbaa !9
  %667 = icmp ne i64 %666, 0
  br i1 %667, label %668, label %676

668:                                              ; preds = %665
  %669 = load ptr, ptr %21, align 8, !tbaa !5
  %670 = load ptr, ptr %21, align 8, !tbaa !5
  %671 = load ptr, ptr %31, align 8, !tbaa !5
  %672 = load i64, ptr %43, align 8, !tbaa !9
  %673 = getelementptr inbounds float, ptr %671, i64 %672
  %674 = load ptr, ptr %32, align 8, !tbaa !5
  %675 = call i32 @slaset_(ptr noundef @.str.15, ptr noundef %669, ptr noundef %670, ptr noundef @c_b36, ptr noundef @c_b37, ptr noundef %673, ptr noundef %674)
  br label %676

676:                                              ; preds = %668, %665
  %677 = load ptr, ptr %19, align 8, !tbaa !5
  %678 = load ptr, ptr %20, align 8, !tbaa !5
  %679 = load ptr, ptr %21, align 8, !tbaa !5
  %680 = load ptr, ptr %22, align 8, !tbaa !5
  %681 = load i64, ptr %37, align 8, !tbaa !9
  %682 = getelementptr inbounds float, ptr %680, i64 %681
  %683 = load ptr, ptr %23, align 8, !tbaa !5
  %684 = load ptr, ptr %24, align 8, !tbaa !5
  %685 = load i64, ptr %39, align 8, !tbaa !9
  %686 = getelementptr inbounds float, ptr %684, i64 %685
  %687 = load ptr, ptr %25, align 8, !tbaa !5
  %688 = load ptr, ptr %29, align 8, !tbaa !5
  %689 = load i64, ptr %41, align 8, !tbaa !9
  %690 = getelementptr inbounds float, ptr %688, i64 %689
  %691 = load ptr, ptr %30, align 8, !tbaa !5
  %692 = load ptr, ptr %31, align 8, !tbaa !5
  %693 = load i64, ptr %43, align 8, !tbaa !9
  %694 = getelementptr inbounds float, ptr %692, i64 %693
  %695 = load ptr, ptr %32, align 8, !tbaa !5
  %696 = call i32 @sgghrd_(ptr noundef %677, ptr noundef %678, ptr noundef %679, ptr noundef %51, ptr noundef %50, ptr noundef %682, ptr noundef %683, ptr noundef %686, ptr noundef %687, ptr noundef %690, ptr noundef %691, ptr noundef %694, ptr noundef %695, ptr noundef %58)
  %697 = load i64, ptr %58, align 8, !tbaa !9
  %698 = icmp ne i64 %697, 0
  br i1 %698, label %699, label %704

699:                                              ; preds = %676
  %700 = load ptr, ptr %21, align 8, !tbaa !5
  %701 = load i64, ptr %700, align 8, !tbaa !9
  %702 = add nsw i64 %701, 5
  %703 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %702, ptr %703, align 8, !tbaa !9
  br label %927

704:                                              ; preds = %676
  %705 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %705, ptr %61, align 8, !tbaa !9
  %706 = load ptr, ptr %34, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = add nsw i64 %707, 1
  %709 = load i64, ptr %61, align 8, !tbaa !9
  %710 = sub nsw i64 %708, %709
  store i64 %710, ptr %44, align 8, !tbaa !9
  %711 = load ptr, ptr %19, align 8, !tbaa !5
  %712 = load ptr, ptr %20, align 8, !tbaa !5
  %713 = load ptr, ptr %21, align 8, !tbaa !5
  %714 = load ptr, ptr %22, align 8, !tbaa !5
  %715 = load i64, ptr %37, align 8, !tbaa !9
  %716 = getelementptr inbounds float, ptr %714, i64 %715
  %717 = load ptr, ptr %23, align 8, !tbaa !5
  %718 = load ptr, ptr %24, align 8, !tbaa !5
  %719 = load i64, ptr %39, align 8, !tbaa !9
  %720 = getelementptr inbounds float, ptr %718, i64 %719
  %721 = load ptr, ptr %25, align 8, !tbaa !5
  %722 = load ptr, ptr %26, align 8, !tbaa !5
  %723 = getelementptr inbounds float, ptr %722, i64 1
  %724 = load ptr, ptr %27, align 8, !tbaa !5
  %725 = getelementptr inbounds float, ptr %724, i64 1
  %726 = load ptr, ptr %28, align 8, !tbaa !5
  %727 = getelementptr inbounds float, ptr %726, i64 1
  %728 = load ptr, ptr %29, align 8, !tbaa !5
  %729 = load i64, ptr %41, align 8, !tbaa !9
  %730 = getelementptr inbounds float, ptr %728, i64 %729
  %731 = load ptr, ptr %30, align 8, !tbaa !5
  %732 = load ptr, ptr %31, align 8, !tbaa !5
  %733 = load i64, ptr %43, align 8, !tbaa !9
  %734 = getelementptr inbounds float, ptr %732, i64 %733
  %735 = load ptr, ptr %32, align 8, !tbaa !5
  %736 = load ptr, ptr %33, align 8, !tbaa !5
  %737 = load i64, ptr %61, align 8, !tbaa !9
  %738 = getelementptr inbounds float, ptr %736, i64 %737
  %739 = call i32 @shgeqz_(ptr noundef @.str.9, ptr noundef %711, ptr noundef %712, ptr noundef %713, ptr noundef %51, ptr noundef %50, ptr noundef %716, ptr noundef %717, ptr noundef %720, ptr noundef %721, ptr noundef %723, ptr noundef %725, ptr noundef %727, ptr noundef %730, ptr noundef %731, ptr noundef %734, ptr noundef %735, ptr noundef %738, ptr noundef %44, ptr noundef %58)
  %740 = load i64, ptr %58, align 8, !tbaa !9
  %741 = icmp sge i64 %740, 0
  br i1 %741, label %742, label %761

742:                                              ; preds = %704
  %743 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %743, ptr %44, align 8, !tbaa !9
  %744 = load ptr, ptr %33, align 8, !tbaa !5
  %745 = load i64, ptr %61, align 8, !tbaa !9
  %746 = getelementptr inbounds float, ptr %744, i64 %745
  %747 = load float, ptr %746, align 4, !tbaa !11
  %748 = fptosi float %747 to i64
  %749 = load i64, ptr %61, align 8, !tbaa !9
  %750 = add nsw i64 %748, %749
  %751 = sub nsw i64 %750, 1
  store i64 %751, ptr %45, align 8, !tbaa !9
  %752 = load i64, ptr %44, align 8, !tbaa !9
  %753 = load i64, ptr %45, align 8, !tbaa !9
  %754 = icmp sge i64 %752, %753
  br i1 %754, label %755, label %757

755:                                              ; preds = %742
  %756 = load i64, ptr %44, align 8, !tbaa !9
  br label %759

757:                                              ; preds = %742
  %758 = load i64, ptr %45, align 8, !tbaa !9
  br label %759

759:                                              ; preds = %757, %755
  %760 = phi i64 [ %756, %755 ], [ %758, %757 ]
  store i64 %760, ptr %75, align 8, !tbaa !9
  br label %761

761:                                              ; preds = %759, %704
  %762 = load i64, ptr %58, align 8, !tbaa !9
  %763 = icmp ne i64 %762, 0
  br i1 %763, label %764, label %799

764:                                              ; preds = %761
  %765 = load i64, ptr %58, align 8, !tbaa !9
  %766 = icmp sgt i64 %765, 0
  br i1 %766, label %767, label %775

767:                                              ; preds = %764
  %768 = load i64, ptr %58, align 8, !tbaa !9
  %769 = load ptr, ptr %21, align 8, !tbaa !5
  %770 = load i64, ptr %769, align 8, !tbaa !9
  %771 = icmp sle i64 %768, %770
  br i1 %771, label %772, label %775

772:                                              ; preds = %767
  %773 = load i64, ptr %58, align 8, !tbaa !9
  %774 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %773, ptr %774, align 8, !tbaa !9
  br label %798

775:                                              ; preds = %767, %764
  %776 = load i64, ptr %58, align 8, !tbaa !9
  %777 = load ptr, ptr %21, align 8, !tbaa !5
  %778 = load i64, ptr %777, align 8, !tbaa !9
  %779 = icmp sgt i64 %776, %778
  br i1 %779, label %780, label %792

780:                                              ; preds = %775
  %781 = load i64, ptr %58, align 8, !tbaa !9
  %782 = load ptr, ptr %21, align 8, !tbaa !5
  %783 = load i64, ptr %782, align 8, !tbaa !9
  %784 = shl i64 %783, 1
  %785 = icmp sle i64 %781, %784
  br i1 %785, label %786, label %792

786:                                              ; preds = %780
  %787 = load i64, ptr %58, align 8, !tbaa !9
  %788 = load ptr, ptr %21, align 8, !tbaa !5
  %789 = load i64, ptr %788, align 8, !tbaa !9
  %790 = sub nsw i64 %787, %789
  %791 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %790, ptr %791, align 8, !tbaa !9
  br label %797

792:                                              ; preds = %780, %775
  %793 = load ptr, ptr %21, align 8, !tbaa !5
  %794 = load i64, ptr %793, align 8, !tbaa !9
  %795 = add nsw i64 %794, 6
  %796 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %795, ptr %796, align 8, !tbaa !9
  br label %797

797:                                              ; preds = %792, %786
  br label %798

798:                                              ; preds = %797, %772
  br label %927

799:                                              ; preds = %761
  %800 = load i64, ptr %60, align 8, !tbaa !9
  %801 = icmp ne i64 %800, 0
  br i1 %801, label %802, label %824

802:                                              ; preds = %799
  %803 = load ptr, ptr %21, align 8, !tbaa !5
  %804 = load ptr, ptr %33, align 8, !tbaa !5
  %805 = load i64, ptr %57, align 8, !tbaa !9
  %806 = getelementptr inbounds float, ptr %804, i64 %805
  %807 = load ptr, ptr %33, align 8, !tbaa !5
  %808 = load i64, ptr %69, align 8, !tbaa !9
  %809 = getelementptr inbounds float, ptr %807, i64 %808
  %810 = load ptr, ptr %21, align 8, !tbaa !5
  %811 = load ptr, ptr %29, align 8, !tbaa !5
  %812 = load i64, ptr %41, align 8, !tbaa !9
  %813 = getelementptr inbounds float, ptr %811, i64 %812
  %814 = load ptr, ptr %30, align 8, !tbaa !5
  %815 = call i32 @sggbak_(ptr noundef @.str.12, ptr noundef @.str.13, ptr noundef %803, ptr noundef %51, ptr noundef %50, ptr noundef %806, ptr noundef %809, ptr noundef %810, ptr noundef %813, ptr noundef %814, ptr noundef %58)
  %816 = load i64, ptr %58, align 8, !tbaa !9
  %817 = icmp ne i64 %816, 0
  br i1 %817, label %818, label %823

818:                                              ; preds = %802
  %819 = load ptr, ptr %21, align 8, !tbaa !5
  %820 = load i64, ptr %819, align 8, !tbaa !9
  %821 = add nsw i64 %820, 7
  %822 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %821, ptr %822, align 8, !tbaa !9
  br label %927

823:                                              ; preds = %802
  br label %824

824:                                              ; preds = %823, %799
  %825 = load i64, ptr %62, align 8, !tbaa !9
  %826 = icmp ne i64 %825, 0
  br i1 %826, label %827, label %849

827:                                              ; preds = %824
  %828 = load ptr, ptr %21, align 8, !tbaa !5
  %829 = load ptr, ptr %33, align 8, !tbaa !5
  %830 = load i64, ptr %57, align 8, !tbaa !9
  %831 = getelementptr inbounds float, ptr %829, i64 %830
  %832 = load ptr, ptr %33, align 8, !tbaa !5
  %833 = load i64, ptr %69, align 8, !tbaa !9
  %834 = getelementptr inbounds float, ptr %832, i64 %833
  %835 = load ptr, ptr %21, align 8, !tbaa !5
  %836 = load ptr, ptr %31, align 8, !tbaa !5
  %837 = load i64, ptr %43, align 8, !tbaa !9
  %838 = getelementptr inbounds float, ptr %836, i64 %837
  %839 = load ptr, ptr %32, align 8, !tbaa !5
  %840 = call i32 @sggbak_(ptr noundef @.str.12, ptr noundef @.str.16, ptr noundef %828, ptr noundef %51, ptr noundef %50, ptr noundef %831, ptr noundef %834, ptr noundef %835, ptr noundef %838, ptr noundef %839, ptr noundef %58)
  %841 = load i64, ptr %58, align 8, !tbaa !9
  %842 = icmp ne i64 %841, 0
  br i1 %842, label %843, label %848

843:                                              ; preds = %827
  %844 = load ptr, ptr %21, align 8, !tbaa !5
  %845 = load i64, ptr %844, align 8, !tbaa !9
  %846 = add nsw i64 %845, 8
  %847 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %846, ptr %847, align 8, !tbaa !9
  br label %927

848:                                              ; preds = %827
  br label %849

849:                                              ; preds = %848, %824
  %850 = load i64, ptr %64, align 8, !tbaa !9
  %851 = icmp ne i64 %850, 0
  br i1 %851, label %852, label %894

852:                                              ; preds = %849
  %853 = load ptr, ptr %21, align 8, !tbaa !5
  %854 = load ptr, ptr %21, align 8, !tbaa !5
  %855 = load ptr, ptr %22, align 8, !tbaa !5
  %856 = load i64, ptr %37, align 8, !tbaa !9
  %857 = getelementptr inbounds float, ptr %855, i64 %856
  %858 = load ptr, ptr %23, align 8, !tbaa !5
  %859 = call i32 @slascl_(ptr noundef @.str.17, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %71, ptr noundef %53, ptr noundef %853, ptr noundef %854, ptr noundef %857, ptr noundef %858, ptr noundef %58)
  %860 = load i64, ptr %58, align 8, !tbaa !9
  %861 = icmp ne i64 %860, 0
  br i1 %861, label %862, label %867

862:                                              ; preds = %852
  %863 = load ptr, ptr %21, align 8, !tbaa !5
  %864 = load i64, ptr %863, align 8, !tbaa !9
  %865 = add nsw i64 %864, 9
  %866 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %865, ptr %866, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

867:                                              ; preds = %852
  %868 = load ptr, ptr %21, align 8, !tbaa !5
  %869 = load ptr, ptr %26, align 8, !tbaa !5
  %870 = getelementptr inbounds float, ptr %869, i64 1
  %871 = load ptr, ptr %21, align 8, !tbaa !5
  %872 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %71, ptr noundef %53, ptr noundef %868, ptr noundef @c__1, ptr noundef %870, ptr noundef %871, ptr noundef %58)
  %873 = load i64, ptr %58, align 8, !tbaa !9
  %874 = icmp ne i64 %873, 0
  br i1 %874, label %875, label %880

875:                                              ; preds = %867
  %876 = load ptr, ptr %21, align 8, !tbaa !5
  %877 = load i64, ptr %876, align 8, !tbaa !9
  %878 = add nsw i64 %877, 9
  %879 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %878, ptr %879, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

880:                                              ; preds = %867
  %881 = load ptr, ptr %21, align 8, !tbaa !5
  %882 = load ptr, ptr %27, align 8, !tbaa !5
  %883 = getelementptr inbounds float, ptr %882, i64 1
  %884 = load ptr, ptr %21, align 8, !tbaa !5
  %885 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %71, ptr noundef %53, ptr noundef %881, ptr noundef @c__1, ptr noundef %883, ptr noundef %884, ptr noundef %58)
  %886 = load i64, ptr %58, align 8, !tbaa !9
  %887 = icmp ne i64 %886, 0
  br i1 %887, label %888, label %893

888:                                              ; preds = %880
  %889 = load ptr, ptr %21, align 8, !tbaa !5
  %890 = load i64, ptr %889, align 8, !tbaa !9
  %891 = add nsw i64 %890, 9
  %892 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %891, ptr %892, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

893:                                              ; preds = %880
  br label %894

894:                                              ; preds = %893, %849
  %895 = load i64, ptr %65, align 8, !tbaa !9
  %896 = icmp ne i64 %895, 0
  br i1 %896, label %897, label %926

897:                                              ; preds = %894
  %898 = load ptr, ptr %21, align 8, !tbaa !5
  %899 = load ptr, ptr %21, align 8, !tbaa !5
  %900 = load ptr, ptr %24, align 8, !tbaa !5
  %901 = load i64, ptr %39, align 8, !tbaa !9
  %902 = getelementptr inbounds float, ptr %900, i64 %901
  %903 = load ptr, ptr %25, align 8, !tbaa !5
  %904 = call i32 @slascl_(ptr noundef @.str.18, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %73, ptr noundef %54, ptr noundef %898, ptr noundef %899, ptr noundef %902, ptr noundef %903, ptr noundef %58)
  %905 = load i64, ptr %58, align 8, !tbaa !9
  %906 = icmp ne i64 %905, 0
  br i1 %906, label %907, label %912

907:                                              ; preds = %897
  %908 = load ptr, ptr %21, align 8, !tbaa !5
  %909 = load i64, ptr %908, align 8, !tbaa !9
  %910 = add nsw i64 %909, 9
  %911 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %910, ptr %911, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

912:                                              ; preds = %897
  %913 = load ptr, ptr %21, align 8, !tbaa !5
  %914 = load ptr, ptr %28, align 8, !tbaa !5
  %915 = getelementptr inbounds float, ptr %914, i64 1
  %916 = load ptr, ptr %21, align 8, !tbaa !5
  %917 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %73, ptr noundef %54, ptr noundef %913, ptr noundef @c__1, ptr noundef %915, ptr noundef %916, ptr noundef %58)
  %918 = load i64, ptr %58, align 8, !tbaa !9
  %919 = icmp ne i64 %918, 0
  br i1 %919, label %920, label %925

920:                                              ; preds = %912
  %921 = load ptr, ptr %21, align 8, !tbaa !5
  %922 = load i64, ptr %921, align 8, !tbaa !9
  %923 = add nsw i64 %922, 9
  %924 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %923, ptr %924, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

925:                                              ; preds = %912
  br label %926

926:                                              ; preds = %925, %894
  br label %927

927:                                              ; preds = %926, %843, %818, %798, %699, %659, %576, %518, %455
  %928 = load i64, ptr %75, align 8, !tbaa !9
  %929 = sitofp i64 %928 to float
  %930 = load ptr, ptr %33, align 8, !tbaa !5
  %931 = getelementptr inbounds float, ptr %930, i64 1
  store float %929, ptr %931, align 4, !tbaa !11
  store i32 0, ptr %18, align 4
  store i32 1, ptr %77, align 4
  br label %932

932:                                              ; preds = %927, %920, %907, %888, %875, %862, %420, %375, %320, %314, %306
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  %933 = load i32, ptr %18, align 4
  ret i32 %933
}

; 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 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 @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 }

!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}


; 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
@c__1 = external hidden global i64, align 8
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b36 = external hidden global float, align 4
@c_b37 = external hidden global float, align 4
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @sgegs_(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 nocapture noundef readonly %15, ptr nocapture noundef %16) local_unnamed_addr #0 {
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #4
  %29 = load i64, ptr %4, align 8, !tbaa !5
  %30 = xor i64 %29, -1
  %31 = getelementptr inbounds float, ptr %3, i64 %30
  %32 = load i64, ptr %6, align 8, !tbaa !5
  %33 = xor i64 %32, -1
  %34 = getelementptr inbounds float, ptr %5, i64 %33
  %35 = load i64, ptr %11, align 8, !tbaa !5
  %36 = xor i64 %35, -1
  %37 = getelementptr inbounds float, ptr %10, i64 %36
  %38 = getelementptr inbounds i8, ptr %14, i64 -4
  %39 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %.not = icmp eq i64 %39, 0
  br i1 %.not, label %40, label %42

40:                                               ; preds = %17
  %41 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.not339 = icmp eq i64 %41, 0
  br label %42

42:                                               ; preds = %40, %17
  %.not342 = phi i1 [ true, %17 ], [ %.not339, %40 ]
  %43 = phi i1 [ false, %17 ], [ %.not339, %40 ]
  %44 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #4
  %.not340 = icmp eq i64 %44, 0
  br i1 %.not340, label %45, label %47

45:                                               ; preds = %42
  %46 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #4
  %.not341 = icmp eq i64 %46, 0
  br label %47

47:                                               ; preds = %45, %42
  %.not343 = phi i1 [ true, %42 ], [ %.not341, %45 ]
  %48 = phi i1 [ false, %42 ], [ %.not341, %45 ]
  %49 = load i64, ptr %2, align 8, !tbaa !5
  %50 = shl i64 %49, 2
  %51 = tail call i64 @llvm.smax.i64(i64 %50, i64 1)
  %52 = uitofp nneg i64 %51 to float
  store float %52, ptr %14, align 4, !tbaa !9
  %53 = load i64, ptr %15, align 8, !tbaa !5
  %54 = icmp eq i64 %53, -1
  store i64 0, ptr %16, align 8, !tbaa !5
  %brmerge = select i1 %43, i1 true, i1 %48
  %.mux = select i1 %43, i64 -1, i64 -2
  br i1 %brmerge, label %.thread379.sink.split, label %55

55:                                               ; preds = %47
  %56 = load i64, ptr %2, align 8, !tbaa !5
  %57 = icmp slt i64 %56, 0
  br i1 %57, label %.thread379.sink.split, label %58

58:                                               ; preds = %55
  %59 = load i64, ptr %4, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %56, i64 1)
  %60 = icmp slt i64 %59, %spec.select
  br i1 %60, label %.thread379.sink.split, label %61

61:                                               ; preds = %58
  %62 = load i64, ptr %6, align 8, !tbaa !5
  %63 = icmp slt i64 %62, %spec.select
  br i1 %63, label %.thread379.sink.split, label %64

64:                                               ; preds = %61
  %65 = load i64, ptr %11, align 8, !tbaa !5
  %66 = icmp sgt i64 %65, 0
  %67 = icmp uge i64 %65, %56
  %or.cond413.not = or i1 %.not342, %67
  %or.cond418 = select i1 %66, i1 %or.cond413.not, i1 false
  br i1 %or.cond418, label %68, label %.thread379.sink.split

68:                                               ; preds = %64
  %69 = load i64, ptr %13, align 8, !tbaa !5
  %70 = icmp sgt i64 %69, 0
  %71 = icmp uge i64 %69, %56
  %or.cond414.not = or i1 %.not343, %71
  %or.cond419 = select i1 %70, i1 %or.cond414.not, i1 false
  br i1 %or.cond419, label %72, label %.thread379.sink.split

72:                                               ; preds = %68
  %73 = load i64, ptr %15, align 8, !tbaa !5
  %74 = icmp sge i64 %73, %51
  %or.cond = select i1 %74, i1 true, i1 %54
  br i1 %or.cond, label %.thread, label %.thread379.sink.split

.thread:                                          ; preds = %72
  %75 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #4
  %76 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1) #4
  %77 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1) #4
  %78 = tail call i64 @llvm.smax.i64(i64 %75, i64 %76)
  store i64 %78, ptr %18, align 8, !tbaa !5
  %79 = tail call i64 @llvm.smax.i64(i64 %78, i64 %77)
  %80 = load i64, ptr %2, align 8, !tbaa !5
  %81 = add i64 %79, 3
  %82 = mul i64 %80, %81
  %83 = sitofp i64 %82 to float
  store float %83, ptr %14, align 4, !tbaa !9
  %.pr378.pr = load i64, ptr %16, align 8, !tbaa !5
  %.not346 = icmp eq i64 %.pr378.pr, 0
  br i1 %.not346, label %87, label %.thread379

.thread379.sink.split:                            ; preds = %47, %72, %68, %64, %61, %58, %55
  %.sink = phi i64 [ %.mux, %47 ], [ -3, %55 ], [ -5, %58 ], [ -7, %61 ], [ -12, %64 ], [ -14, %68 ], [ -16, %72 ]
  store i64 %.sink, ptr %16, align 8, !tbaa !5
  br label %.thread379

.thread379:                                       ; preds = %.thread379.sink.split, %.thread
  %84 = phi i64 [ %.pr378.pr, %.thread ], [ %.sink, %.thread379.sink.split ]
  %85 = sub nsw i64 0, %84
  store i64 %85, ptr %18, align 8, !tbaa !5
  %86 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %18) #4
  br label %288

87:                                               ; preds = %.thread
  %88 = icmp eq i64 %80, 0
  %or.cond426 = select i1 %54, i1 true, i1 %88
  br i1 %or.cond426, label %288, label %89

89:                                               ; preds = %87
  %90 = tail call double @slamch_(ptr noundef nonnull @.str.7) #4
  %91 = tail call double @slamch_(ptr noundef nonnull @.str.8) #4
  %92 = fmul double %90, %91
  %93 = fptrunc double %92 to float
  %94 = tail call double @slamch_(ptr noundef nonnull @.str.9) #4
  %95 = fptrunc double %94 to float
  %96 = load i64, ptr %2, align 8, !tbaa !5
  %97 = sitofp i64 %96 to float
  %98 = fmul float %95, %97
  %99 = fdiv float %98, %93
  %100 = fdiv float 1.000000e+00, %99
  %101 = tail call double @slange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #4
  %102 = fptrunc double %101 to float
  store float %102, ptr %22, align 4, !tbaa !9
  %103 = fcmp ogt float %102, 0.000000e+00
  %104 = fcmp ogt float %99, %102
  %or.cond374 = select i1 %103, i1 %104, i1 false
  br i1 %or.cond374, label %107, label %105

105:                                              ; preds = %89
  %106 = fcmp olt float %100, %102
  br i1 %106, label %107, label %113

107:                                              ; preds = %105, %89
  %storemerge = phi float [ %99, %89 ], [ %100, %105 ]
  store float %storemerge, ptr %27, align 4, !tbaa !9
  %108 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %22, ptr noundef nonnull %27, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24) #4
  %109 = load i64, ptr %24, align 8, !tbaa !5
  %.not348 = icmp eq i64 %109, 0
  br i1 %.not348, label %113, label %110

110:                                              ; preds = %107
  %111 = load i64, ptr %2, align 8, !tbaa !5
  %112 = add nsw i64 %111, 9
  store i64 %112, ptr %16, align 8, !tbaa !5
  br label %288

113:                                              ; preds = %105, %107
  %.not347385 = phi i1 [ false, %107 ], [ true, %105 ]
  %114 = call double @slange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %14) #4
  %115 = fptrunc double %114 to float
  store float %115, ptr %23, align 4, !tbaa !9
  %116 = fcmp ogt float %115, 0.000000e+00
  %117 = fcmp ogt float %99, %115
  %or.cond375 = select i1 %116, i1 %117, i1 false
  br i1 %or.cond375, label %120, label %118

118:                                              ; preds = %113
  %119 = fcmp olt float %100, %115
  br i1 %119, label %120, label %126

120:                                              ; preds = %118, %113
  %storemerge417 = phi float [ %99, %113 ], [ %100, %118 ]
  store float %storemerge417, ptr %28, align 4, !tbaa !9
  %121 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %23, ptr noundef nonnull %28, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24) #4
  %122 = load i64, ptr %24, align 8, !tbaa !5
  %.not350 = icmp eq i64 %122, 0
  br i1 %.not350, label %126, label %123

123:                                              ; preds = %120
  %124 = load i64, ptr %2, align 8, !tbaa !5
  %125 = add nsw i64 %124, 9
  store i64 %125, ptr %16, align 8, !tbaa !5
  br label %288

126:                                              ; preds = %118, %120
  %.not349390 = phi i1 [ false, %120 ], [ true, %118 ]
  %127 = load i64, ptr %2, align 8, !tbaa !5
  %reass.add = shl i64 %127, 1
  %128 = or disjoint i64 %reass.add, 1
  %129 = getelementptr float, ptr %14, i64 %127
  %130 = getelementptr float, ptr %14, i64 %reass.add
  %131 = call i32 @sggbal_(ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull %14, ptr noundef %129, ptr noundef %130, ptr noundef nonnull %24) #4
  %132 = load i64, ptr %24, align 8, !tbaa !5
  %.not351 = icmp eq i64 %132, 0
  br i1 %.not351, label %136, label %133

133:                                              ; preds = %126
  %134 = load i64, ptr %2, align 8, !tbaa !5
  %135 = add nsw i64 %134, 1
  br label %.sink.split

136:                                              ; preds = %126
  %137 = load i64, ptr %20, align 8, !tbaa !5
  %138 = add nsw i64 %137, 1
  %139 = load i64, ptr %21, align 8, !tbaa !5
  %140 = sub i64 %138, %139
  store i64 %140, ptr %26, align 8, !tbaa !5
  %141 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub = sub i64 %141, %139
  %142 = add i64 %reass.sub, 1
  store i64 %142, ptr %25, align 8, !tbaa !5
  %143 = add nsw i64 %140, %128
  %144 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub422 = sub i64 %144, %143
  %145 = add i64 %reass.sub422, 1
  store i64 %145, ptr %18, align 8, !tbaa !5
  %146 = add i64 %32, 1
  %147 = mul i64 %139, %146
  %148 = getelementptr inbounds float, ptr %34, i64 %147
  %149 = getelementptr inbounds float, ptr %38, i64 %143
  %150 = call i32 @sgeqrf_(ptr noundef nonnull %26, ptr noundef nonnull %25, ptr noundef %148, ptr noundef nonnull %6, ptr noundef %130, ptr noundef nonnull %149, ptr noundef nonnull %18, ptr noundef nonnull %24) #4
  %151 = load i64, ptr %24, align 8, !tbaa !5
  %152 = icmp sgt i64 %151, -1
  br i1 %152, label %153, label %.thread391

153:                                              ; preds = %136
  %154 = load float, ptr %149, align 4, !tbaa !9
  %155 = fptosi float %154 to i64
  %156 = add i64 %143, -1
  %157 = add i64 %156, %155
  store i64 %157, ptr %19, align 8, !tbaa !5
  %158 = call i64 @llvm.smax.i64(i64 %51, i64 %157)
  %.not353 = icmp eq i64 %151, 0
  br i1 %.not353, label %161, label %.thread391

.thread391:                                       ; preds = %136, %153
  %.0319394 = phi i64 [ %158, %153 ], [ %51, %136 ]
  %159 = load i64, ptr %2, align 8, !tbaa !5
  %160 = add nsw i64 %159, 2
  br label %.sink.split

161:                                              ; preds = %153
  %162 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub423 = sub i64 %162, %143
  %163 = add i64 %reass.sub423, 1
  store i64 %163, ptr %18, align 8, !tbaa !5
  %164 = load i64, ptr %21, align 8, !tbaa !5
  %165 = mul i64 %164, %146
  %166 = getelementptr inbounds float, ptr %34, i64 %165
  %167 = add i64 %29, 1
  %168 = mul i64 %164, %167
  %169 = getelementptr inbounds float, ptr %31, i64 %168
  %170 = call i32 @sormqr_(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, ptr noundef nonnull %26, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %166, ptr noundef nonnull %6, ptr noundef %130, ptr noundef %169, ptr noundef nonnull %4, ptr noundef nonnull %149, ptr noundef nonnull %18, ptr noundef nonnull %24) #4
  %171 = load i64, ptr %24, align 8, !tbaa !5
  %172 = icmp sgt i64 %171, -1
  br i1 %172, label %173, label %.thread395

173:                                              ; preds = %161
  store i64 %158, ptr %18, align 8, !tbaa !5
  %174 = load float, ptr %149, align 4, !tbaa !9
  %175 = fptosi float %174 to i64
  %176 = add i64 %156, %175
  store i64 %176, ptr %19, align 8, !tbaa !5
  %177 = call i64 @llvm.smax.i64(i64 %158, i64 %176)
  %.not355 = icmp eq i64 %171, 0
  br i1 %.not355, label %180, label %.thread395

.thread395:                                       ; preds = %161, %173
  %.1398 = phi i64 [ %177, %173 ], [ %158, %161 ]
  %178 = load i64, ptr %2, align 8, !tbaa !5
  %179 = add nsw i64 %178, 3
  br label %.sink.split

180:                                              ; preds = %173
  br i1 %.not342, label %210, label %181

181:                                              ; preds = %180
  %182 = call i32 @slaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b36, ptr noundef nonnull @c_b37, ptr noundef %10, ptr noundef nonnull %11) #4
  %183 = load i64, ptr %26, align 8, !tbaa !5
  %184 = add nsw i64 %183, -1
  store i64 %184, ptr %18, align 8, !tbaa !5
  store i64 %184, ptr %19, align 8, !tbaa !5
  %185 = load i64, ptr %21, align 8, !tbaa !5
  %186 = add nsw i64 %185, 1
  %187 = mul nsw i64 %185, %32
  %188 = getelementptr float, ptr %34, i64 %186
  %189 = getelementptr float, ptr %188, i64 %187
  %190 = mul nsw i64 %185, %35
  %191 = getelementptr float, ptr %37, i64 %186
  %192 = getelementptr float, ptr %191, i64 %190
  %193 = call i32 @slacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %189, ptr noundef nonnull %6, ptr noundef %192, ptr noundef nonnull %11) #4
  %194 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub424 = sub i64 %194, %143
  %195 = add i64 %reass.sub424, 1
  store i64 %195, ptr %18, align 8, !tbaa !5
  %196 = load i64, ptr %21, align 8, !tbaa !5
  %197 = add i64 %35, 1
  %198 = mul i64 %196, %197
  %199 = getelementptr inbounds float, ptr %37, i64 %198
  %200 = call i32 @sorgqr_(ptr noundef nonnull %26, ptr noundef nonnull %26, ptr noundef nonnull %26, ptr noundef %199, ptr noundef nonnull %11, ptr noundef %130, ptr noundef nonnull %149, ptr noundef nonnull %18, ptr noundef nonnull %24) #4
  %201 = load i64, ptr %24, align 8, !tbaa !5
  %202 = icmp sgt i64 %201, -1
  br i1 %202, label %203, label %.thread399

203:                                              ; preds = %181
  store i64 %177, ptr %18, align 8, !tbaa !5
  %204 = load float, ptr %149, align 4, !tbaa !9
  %205 = fptosi float %204 to i64
  %206 = add i64 %156, %205
  store i64 %206, ptr %19, align 8, !tbaa !5
  %207 = call i64 @llvm.smax.i64(i64 %177, i64 %206)
  %.not358 = icmp eq i64 %201, 0
  br i1 %.not358, label %210, label %.thread399

.thread399:                                       ; preds = %181, %203
  %.2402 = phi i64 [ %207, %203 ], [ %177, %181 ]
  %208 = load i64, ptr %2, align 8, !tbaa !5
  %209 = add nsw i64 %208, 4
  br label %.sink.split

210:                                              ; preds = %203, %180
  %.3 = phi i64 [ %207, %203 ], [ %177, %180 ]
  br i1 %.not343, label %213, label %211

211:                                              ; preds = %210
  %212 = call i32 @slaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b36, ptr noundef nonnull @c_b37, ptr noundef %12, ptr noundef nonnull %13) #4
  br label %213

213:                                              ; preds = %211, %210
  %214 = call i32 @sgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %24) #4
  %215 = load i64, ptr %24, align 8, !tbaa !5
  %.not360 = icmp eq i64 %215, 0
  br i1 %.not360, label %219, label %216

216:                                              ; preds = %213
  %217 = load i64, ptr %2, align 8, !tbaa !5
  %218 = add nsw i64 %217, 5
  br label %.sink.split

219:                                              ; preds = %213
  %220 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub425 = sub i64 %220, %128
  %221 = add i64 %reass.sub425, 1
  store i64 %221, ptr %18, align 8, !tbaa !5
  %222 = call i32 @shgeqz_(ptr noundef nonnull @.str.9, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %130, ptr noundef nonnull %18, ptr noundef nonnull %24) #4
  %223 = load i64, ptr %24, align 8, !tbaa !5
  %224 = icmp sgt i64 %223, -1
  br i1 %224, label %225, label %._crit_edge

._crit_edge:                                      ; preds = %219
  %.pre = load i64, ptr %2, align 8, !tbaa !5
  br label %232

225:                                              ; preds = %219
  store i64 %.3, ptr %18, align 8, !tbaa !5
  %226 = load float, ptr %130, align 4, !tbaa !9
  %227 = fptosi float %226 to i64
  %228 = add i64 %reass.add, %227
  store i64 %228, ptr %19, align 8, !tbaa !5
  %229 = call i64 @llvm.smax.i64(i64 %.3, i64 %228)
  %.not362 = icmp eq i64 %223, 0
  br i1 %.not362, label %240, label %230

230:                                              ; preds = %225
  %231 = load i64, ptr %2, align 8, !tbaa !5
  %.not370 = icmp sgt i64 %223, %231
  br i1 %.not370, label %232, label %.sink.split

232:                                              ; preds = %._crit_edge, %230
  %233 = phi i64 [ %231, %230 ], [ %.pre, %._crit_edge ]
  %.4406410 = phi i64 [ %229, %230 ], [ %.3, %._crit_edge ]
  %234 = icmp sle i64 %223, %233
  %235 = shl i64 %233, 1
  %.not371 = icmp sgt i64 %223, %235
  %or.cond376 = or i1 %234, %.not371
  br i1 %or.cond376, label %238, label %236

236:                                              ; preds = %232
  %237 = sub nsw i64 %223, %233
  br label %.sink.split

238:                                              ; preds = %232
  %239 = add nsw i64 %233, 6
  br label %.sink.split

240:                                              ; preds = %225
  br i1 %.not342, label %247, label %241

241:                                              ; preds = %240
  %242 = call i32 @sggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull %14, ptr noundef %129, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %24) #4
  %243 = load i64, ptr %24, align 8, !tbaa !5
  %.not363 = icmp eq i64 %243, 0
  br i1 %.not363, label %247, label %244

244:                                              ; preds = %241
  %245 = load i64, ptr %2, align 8, !tbaa !5
  %246 = add nsw i64 %245, 7
  br label %.sink.split

247:                                              ; preds = %241, %240
  br i1 %.not343, label %254, label %248

248:                                              ; preds = %247
  %249 = call i32 @sggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.16, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull %14, ptr noundef %129, ptr noundef nonnull %2, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %24) #4
  %250 = load i64, ptr %24, align 8, !tbaa !5
  %.not364 = icmp eq i64 %250, 0
  br i1 %.not364, label %254, label %251

251:                                              ; preds = %248
  %252 = load i64, ptr %2, align 8, !tbaa !5
  %253 = add nsw i64 %252, 8
  br label %.sink.split

254:                                              ; preds = %248, %247
  br i1 %.not347385, label %273, label %255

255:                                              ; preds = %254
  %256 = call i32 @slascl_(ptr noundef nonnull @.str.17, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %27, ptr noundef nonnull %22, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24) #4
  %257 = load i64, ptr %24, align 8, !tbaa !5
  %.not365 = icmp eq i64 %257, 0
  br i1 %.not365, label %261, label %258

258:                                              ; preds = %255
  %259 = load i64, ptr %2, align 8, !tbaa !5
  %260 = add nsw i64 %259, 9
  store i64 %260, ptr %16, align 8, !tbaa !5
  br label %288

261:                                              ; preds = %255
  %262 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %27, ptr noundef nonnull %22, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %2, ptr noundef nonnull %24) #4
  %263 = load i64, ptr %24, align 8, !tbaa !5
  %.not366 = icmp eq i64 %263, 0
  br i1 %.not366, label %267, label %264

264:                                              ; preds = %261
  %265 = load i64, ptr %2, align 8, !tbaa !5
  %266 = add nsw i64 %265, 9
  store i64 %266, ptr %16, align 8, !tbaa !5
  br label %288

267:                                              ; preds = %261
  %268 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %27, ptr noundef nonnull %22, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %2, ptr noundef nonnull %24) #4
  %269 = load i64, ptr %24, align 8, !tbaa !5
  %.not367 = icmp eq i64 %269, 0
  br i1 %.not367, label %273, label %270

270:                                              ; preds = %267
  %271 = load i64, ptr %2, align 8, !tbaa !5
  %272 = add nsw i64 %271, 9
  store i64 %272, ptr %16, align 8, !tbaa !5
  br label %288

273:                                              ; preds = %267, %254
  br i1 %.not349390, label %286, label %274

274:                                              ; preds = %273
  %275 = call i32 @slascl_(ptr noundef nonnull @.str.18, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %28, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24) #4
  %276 = load i64, ptr %24, align 8, !tbaa !5
  %.not368 = icmp eq i64 %276, 0
  br i1 %.not368, label %280, label %277

277:                                              ; preds = %274
  %278 = load i64, ptr %2, align 8, !tbaa !5
  %279 = add nsw i64 %278, 9
  store i64 %279, ptr %16, align 8, !tbaa !5
  br label %288

280:                                              ; preds = %274
  %281 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %28, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %2, ptr noundef nonnull %24) #4
  %282 = load i64, ptr %24, align 8, !tbaa !5
  %.not369 = icmp eq i64 %282, 0
  br i1 %.not369, label %286, label %283

283:                                              ; preds = %280
  %284 = load i64, ptr %2, align 8, !tbaa !5
  %285 = add nsw i64 %284, 9
  store i64 %285, ptr %16, align 8, !tbaa !5
  br label %288

.sink.split:                                      ; preds = %230, %133, %.thread391, %.thread395, %.thread399, %216, %244, %251, %236, %238
  %.sink427 = phi i64 [ %239, %238 ], [ %237, %236 ], [ %253, %251 ], [ %246, %244 ], [ %218, %216 ], [ %209, %.thread399 ], [ %179, %.thread395 ], [ %160, %.thread391 ], [ %135, %133 ], [ %223, %230 ]
  %.5.ph = phi i64 [ %.4406410, %238 ], [ %.4406410, %236 ], [ %229, %251 ], [ %229, %244 ], [ %.3, %216 ], [ %.2402, %.thread399 ], [ %.1398, %.thread395 ], [ %.0319394, %.thread391 ], [ %51, %133 ], [ %229, %230 ]
  store i64 %.sink427, ptr %16, align 8, !tbaa !5
  br label %286

286:                                              ; preds = %.sink.split, %273, %280
  %.5 = phi i64 [ %229, %280 ], [ %229, %273 ], [ %.5.ph, %.sink.split ]
  %287 = uitofp nneg i64 %.5 to float
  store float %287, ptr %14, align 4, !tbaa !9
  br label %288

288:                                              ; preds = %87, %286, %283, %277, %270, %264, %258, %123, %110, %.thread379
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  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 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 @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) #3

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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"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}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass