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

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

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

160:                                              ; preds = %26
  store i64 1, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %83, align 8, !tbaa !9
  br label %168

161:                                              ; preds = %26
  %162 = load ptr, ptr %28, align 8, !tbaa !5
  %163 = call i64 @lsame_(ptr noundef %162, ptr noundef @.str.1)
  %164 = icmp ne i64 %163, 0
  br i1 %164, label %165, label %166

165:                                              ; preds = %161
  store i64 2, ptr %92, align 8, !tbaa !9
  store i64 1, ptr %83, align 8, !tbaa !9
  br label %167

166:                                              ; preds = %161
  store i64 -1, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %83, align 8, !tbaa !9
  br label %167

167:                                              ; preds = %166, %165
  br label %168

168:                                              ; preds = %167, %160
  %169 = load ptr, ptr %29, align 8, !tbaa !5
  %170 = call i64 @lsame_(ptr noundef %169, ptr noundef @.str)
  %171 = icmp ne i64 %170, 0
  br i1 %171, label %172, label %173

172:                                              ; preds = %168
  store i64 1, ptr %94, align 8, !tbaa !9
  store i64 0, ptr %84, align 8, !tbaa !9
  br label %180

173:                                              ; preds = %168
  %174 = load ptr, ptr %29, align 8, !tbaa !5
  %175 = call i64 @lsame_(ptr noundef %174, ptr noundef @.str.1)
  %176 = icmp ne i64 %175, 0
  br i1 %176, label %177, label %178

177:                                              ; preds = %173
  store i64 2, ptr %94, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %179

178:                                              ; preds = %173
  store i64 -1, ptr %94, align 8, !tbaa !9
  store i64 0, ptr %84, align 8, !tbaa !9
  br label %179

179:                                              ; preds = %178, %177
  br label %180

180:                                              ; preds = %179, %172
  %181 = load ptr, ptr %30, align 8, !tbaa !5
  %182 = call i64 @lsame_(ptr noundef %181, ptr noundef @.str.2)
  store i64 %182, ptr %105, align 8, !tbaa !9
  %183 = load ptr, ptr %32, align 8, !tbaa !5
  %184 = call i64 @lsame_(ptr noundef %183, ptr noundef @.str)
  store i64 %184, ptr %103, align 8, !tbaa !9
  %185 = load ptr, ptr %32, align 8, !tbaa !5
  %186 = call i64 @lsame_(ptr noundef %185, ptr noundef @.str.3)
  store i64 %186, ptr %96, align 8, !tbaa !9
  %187 = load ptr, ptr %32, align 8, !tbaa !5
  %188 = call i64 @lsame_(ptr noundef %187, ptr noundef @.str.1)
  store i64 %188, ptr %107, align 8, !tbaa !9
  %189 = load ptr, ptr %32, align 8, !tbaa !5
  %190 = call i64 @lsame_(ptr noundef %189, ptr noundef @.str.4)
  store i64 %190, ptr %95, align 8, !tbaa !9
  %191 = load ptr, ptr %49, align 8, !tbaa !5
  %192 = load i64, ptr %191, align 8, !tbaa !9
  %193 = icmp eq i64 %192, -1
  br i1 %193, label %198, label %194

194:                                              ; preds = %180
  %195 = load ptr, ptr %51, align 8, !tbaa !5
  %196 = load i64, ptr %195, align 8, !tbaa !9
  %197 = icmp eq i64 %196, -1
  br label %198

198:                                              ; preds = %194, %180
  %199 = phi i1 [ true, %180 ], [ %197, %194 ]
  %200 = zext i1 %199 to i32
  %201 = sext i32 %200 to i64
  store i64 %201, ptr %106, align 8, !tbaa !9
  %202 = load i64, ptr %103, align 8, !tbaa !9
  %203 = icmp ne i64 %202, 0
  br i1 %203, label %204, label %205

204:                                              ; preds = %198
  store i64 0, ptr %73, align 8, !tbaa !9
  br label %220

205:                                              ; preds = %198
  %206 = load i64, ptr %96, align 8, !tbaa !9
  %207 = icmp ne i64 %206, 0
  br i1 %207, label %208, label %209

208:                                              ; preds = %205
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %219

209:                                              ; preds = %205
  %210 = load i64, ptr %107, align 8, !tbaa !9
  %211 = icmp ne i64 %210, 0
  br i1 %211, label %212, label %213

212:                                              ; preds = %209
  store i64 2, ptr %73, align 8, !tbaa !9
  br label %218

213:                                              ; preds = %209
  %214 = load i64, ptr %95, align 8, !tbaa !9
  %215 = icmp ne i64 %214, 0
  br i1 %215, label %216, label %217

216:                                              ; preds = %213
  store i64 4, ptr %73, align 8, !tbaa !9
  br label %217

217:                                              ; preds = %216, %213
  br label %218

218:                                              ; preds = %217, %212
  br label %219

219:                                              ; preds = %218, %208
  br label %220

220:                                              ; preds = %219, %204
  %221 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 0, ptr %221, align 8, !tbaa !9
  %222 = load i64, ptr %92, align 8, !tbaa !9
  %223 = icmp sle i64 %222, 0
  br i1 %223, label %224, label %226

224:                                              ; preds = %220
  %225 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -1, ptr %225, align 8, !tbaa !9
  br label %334

226:                                              ; preds = %220
  %227 = load i64, ptr %94, align 8, !tbaa !9
  %228 = icmp sle i64 %227, 0
  br i1 %228, label %229, label %231

229:                                              ; preds = %226
  %230 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -2, ptr %230, align 8, !tbaa !9
  br label %333

231:                                              ; preds = %226
  %232 = load i64, ptr %105, align 8, !tbaa !9
  %233 = icmp ne i64 %232, 0
  br i1 %233, label %240, label %234

234:                                              ; preds = %231
  %235 = load ptr, ptr %30, align 8, !tbaa !5
  %236 = call i64 @lsame_(ptr noundef %235, ptr noundef @.str)
  %237 = icmp ne i64 %236, 0
  br i1 %237, label %240, label %238

238:                                              ; preds = %234
  %239 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -3, ptr %239, align 8, !tbaa !9
  br label %332

240:                                              ; preds = %234, %231
  %241 = load i64, ptr %103, align 8, !tbaa !9
  %242 = icmp ne i64 %241, 0
  br i1 %242, label %252, label %243

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

246:                                              ; preds = %243
  %247 = load i64, ptr %107, align 8, !tbaa !9
  %248 = icmp ne i64 %247, 0
  br i1 %248, label %252, label %249

249:                                              ; preds = %246
  %250 = load i64, ptr %95, align 8, !tbaa !9
  %251 = icmp ne i64 %250, 0
  br i1 %251, label %252, label %258

252:                                              ; preds = %249, %246, %243, %240
  %253 = load i64, ptr %105, align 8, !tbaa !9
  %254 = icmp ne i64 %253, 0
  br i1 %254, label %260, label %255

255:                                              ; preds = %252
  %256 = load i64, ptr %103, align 8, !tbaa !9
  %257 = icmp ne i64 %256, 0
  br i1 %257, label %260, label %258

258:                                              ; preds = %255, %249
  %259 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -5, ptr %259, align 8, !tbaa !9
  br label %331

260:                                              ; preds = %255, %252
  %261 = load ptr, ptr %33, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp slt i64 %262, 0
  br i1 %263, label %264, label %266

264:                                              ; preds = %260
  %265 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -6, ptr %265, align 8, !tbaa !9
  br label %330

266:                                              ; preds = %260
  %267 = load ptr, ptr %35, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = load ptr, ptr %33, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  %271 = icmp sge i64 1, %270
  br i1 %271, label %272, label %273

272:                                              ; preds = %266
  br label %276

273:                                              ; preds = %266
  %274 = load ptr, ptr %33, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  br label %276

276:                                              ; preds = %273, %272
  %277 = phi i64 [ 1, %272 ], [ %275, %273 ]
  %278 = icmp slt i64 %268, %277
  br i1 %278, label %279, label %281

279:                                              ; preds = %276
  %280 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -8, ptr %280, align 8, !tbaa !9
  br label %329

281:                                              ; preds = %276
  %282 = load ptr, ptr %37, align 8, !tbaa !5
  %283 = load i64, ptr %282, align 8, !tbaa !9
  %284 = load ptr, ptr %33, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = icmp sge i64 1, %285
  br i1 %286, label %287, label %288

287:                                              ; preds = %281
  br label %291

288:                                              ; preds = %281
  %289 = load ptr, ptr %33, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  br label %291

291:                                              ; preds = %288, %287
  %292 = phi i64 [ 1, %287 ], [ %290, %288 ]
  %293 = icmp slt i64 %283, %292
  br i1 %293, label %294, label %296

294:                                              ; preds = %291
  %295 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -10, ptr %295, align 8, !tbaa !9
  br label %328

296:                                              ; preds = %291
  %297 = load ptr, ptr %43, align 8, !tbaa !5
  %298 = load i64, ptr %297, align 8, !tbaa !9
  %299 = icmp slt i64 %298, 1
  br i1 %299, label %309, label %300

300:                                              ; preds = %296
  %301 = load i64, ptr %83, align 8, !tbaa !9
  %302 = icmp ne i64 %301, 0
  br i1 %302, label %303, label %311

303:                                              ; preds = %300
  %304 = load ptr, ptr %43, align 8, !tbaa !5
  %305 = load i64, ptr %304, align 8, !tbaa !9
  %306 = load ptr, ptr %33, align 8, !tbaa !5
  %307 = load i64, ptr %306, align 8, !tbaa !9
  %308 = icmp slt i64 %305, %307
  br i1 %308, label %309, label %311

309:                                              ; preds = %303, %296
  %310 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -16, ptr %310, align 8, !tbaa !9
  br label %327

311:                                              ; preds = %303, %300
  %312 = load ptr, ptr %45, align 8, !tbaa !5
  %313 = load i64, ptr %312, align 8, !tbaa !9
  %314 = icmp slt i64 %313, 1
  br i1 %314, label %324, label %315

315:                                              ; preds = %311
  %316 = load i64, ptr %84, align 8, !tbaa !9
  %317 = icmp ne i64 %316, 0
  br i1 %317, label %318, label %326

318:                                              ; preds = %315
  %319 = load ptr, ptr %45, align 8, !tbaa !5
  %320 = load i64, ptr %319, align 8, !tbaa !9
  %321 = load ptr, ptr %33, align 8, !tbaa !5
  %322 = load i64, ptr %321, align 8, !tbaa !9
  %323 = icmp slt i64 %320, %322
  br i1 %323, label %324, label %326

324:                                              ; preds = %318, %311
  %325 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -18, ptr %325, align 8, !tbaa !9
  br label %326

326:                                              ; preds = %324, %318, %315
  br label %327

327:                                              ; preds = %326, %309
  br label %328

328:                                              ; preds = %327, %294
  br label %329

329:                                              ; preds = %328, %279
  br label %330

330:                                              ; preds = %329, %264
  br label %331

331:                                              ; preds = %330, %258
  br label %332

332:                                              ; preds = %331, %238
  br label %333

333:                                              ; preds = %332, %229
  br label %334

334:                                              ; preds = %333, %224
  %335 = load ptr, ptr %53, align 8, !tbaa !5
  %336 = load i64, ptr %335, align 8, !tbaa !9
  %337 = icmp eq i64 %336, 0
  br i1 %337, label %338, label %479

338:                                              ; preds = %334
  %339 = load ptr, ptr %33, align 8, !tbaa !5
  %340 = load i64, ptr %339, align 8, !tbaa !9
  %341 = icmp sgt i64 %340, 0
  br i1 %341, label %342, label %437

342:                                              ; preds = %338
  %343 = load ptr, ptr %33, align 8, !tbaa !5
  %344 = load i64, ptr %343, align 8, !tbaa !9
  %345 = shl i64 %344, 3
  store i64 %345, ptr %62, align 8, !tbaa !9
  %346 = load ptr, ptr %33, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  %348 = mul nsw i64 %347, 6
  %349 = add nsw i64 %348, 16
  store i64 %349, ptr %63, align 8, !tbaa !9
  %350 = load i64, ptr %62, align 8, !tbaa !9
  %351 = load i64, ptr %63, align 8, !tbaa !9
  %352 = icmp sge i64 %350, %351
  br i1 %352, label %353, label %355

353:                                              ; preds = %342
  %354 = load i64, ptr %62, align 8, !tbaa !9
  br label %357

355:                                              ; preds = %342
  %356 = load i64, ptr %63, align 8, !tbaa !9
  br label %357

357:                                              ; preds = %355, %353
  %358 = phi i64 [ %354, %353 ], [ %356, %355 ]
  store i64 %358, ptr %101, align 8, !tbaa !9
  %359 = load i64, ptr %101, align 8, !tbaa !9
  %360 = load ptr, ptr %33, align 8, !tbaa !5
  %361 = load i64, ptr %360, align 8, !tbaa !9
  %362 = sub nsw i64 %359, %361
  %363 = load ptr, ptr %33, align 8, !tbaa !5
  %364 = load i64, ptr %363, align 8, !tbaa !9
  %365 = load ptr, ptr %33, align 8, !tbaa !5
  %366 = load ptr, ptr %33, align 8, !tbaa !5
  %367 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef %365, ptr noundef @c__1, ptr noundef %366, ptr noundef @c__0)
  %368 = mul nsw i64 %364, %367
  %369 = add nsw i64 %362, %368
  store i64 %369, ptr %102, align 8, !tbaa !9
  %370 = load i64, ptr %102, align 8, !tbaa !9
  store i64 %370, ptr %62, align 8, !tbaa !9
  %371 = load i64, ptr %101, align 8, !tbaa !9
  %372 = load ptr, ptr %33, align 8, !tbaa !5
  %373 = load i64, ptr %372, align 8, !tbaa !9
  %374 = sub nsw i64 %371, %373
  %375 = load ptr, ptr %33, align 8, !tbaa !5
  %376 = load i64, ptr %375, align 8, !tbaa !9
  %377 = load ptr, ptr %33, align 8, !tbaa !5
  %378 = load ptr, ptr %33, align 8, !tbaa !5
  %379 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef @.str.6, ptr noundef %377, ptr noundef @c__1, ptr noundef %378, ptr noundef @c_n1)
  %380 = mul nsw i64 %376, %379
  %381 = add nsw i64 %374, %380
  store i64 %381, ptr %63, align 8, !tbaa !9
  %382 = load i64, ptr %62, align 8, !tbaa !9
  %383 = load i64, ptr %63, align 8, !tbaa !9
  %384 = icmp sge i64 %382, %383
  br i1 %384, label %385, label %387

385:                                              ; preds = %357
  %386 = load i64, ptr %62, align 8, !tbaa !9
  br label %389

387:                                              ; preds = %357
  %388 = load i64, ptr %63, align 8, !tbaa !9
  br label %389

389:                                              ; preds = %387, %385
  %390 = phi i64 [ %386, %385 ], [ %388, %387 ]
  store i64 %390, ptr %102, align 8, !tbaa !9
  %391 = load i64, ptr %83, align 8, !tbaa !9
  %392 = icmp ne i64 %391, 0
  br i1 %392, label %393, label %415

393:                                              ; preds = %389
  %394 = load i64, ptr %102, align 8, !tbaa !9
  store i64 %394, ptr %62, align 8, !tbaa !9
  %395 = load i64, ptr %101, align 8, !tbaa !9
  %396 = load ptr, ptr %33, align 8, !tbaa !5
  %397 = load i64, ptr %396, align 8, !tbaa !9
  %398 = sub nsw i64 %395, %397
  %399 = load ptr, ptr %33, align 8, !tbaa !5
  %400 = load i64, ptr %399, align 8, !tbaa !9
  %401 = load ptr, ptr %33, align 8, !tbaa !5
  %402 = load ptr, ptr %33, align 8, !tbaa !5
  %403 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.6, ptr noundef %401, ptr noundef @c__1, ptr noundef %402, ptr noundef @c_n1)
  %404 = mul nsw i64 %400, %403
  %405 = add nsw i64 %398, %404
  store i64 %405, ptr %63, align 8, !tbaa !9
  %406 = load i64, ptr %62, align 8, !tbaa !9
  %407 = load i64, ptr %63, align 8, !tbaa !9
  %408 = icmp sge i64 %406, %407
  br i1 %408, label %409, label %411

409:                                              ; preds = %393
  %410 = load i64, ptr %62, align 8, !tbaa !9
  br label %413

411:                                              ; preds = %393
  %412 = load i64, ptr %63, align 8, !tbaa !9
  br label %413

413:                                              ; preds = %411, %409
  %414 = phi i64 [ %410, %409 ], [ %412, %411 ]
  store i64 %414, ptr %102, align 8, !tbaa !9
  br label %415

415:                                              ; preds = %413, %389
  %416 = load i64, ptr %102, align 8, !tbaa !9
  store i64 %416, ptr %79, align 8, !tbaa !9
  %417 = load i64, ptr %73, align 8, !tbaa !9
  %418 = icmp sge i64 %417, 1
  br i1 %418, label %419, label %436

419:                                              ; preds = %415
  %420 = load i64, ptr %79, align 8, !tbaa !9
  store i64 %420, ptr %62, align 8, !tbaa !9
  %421 = load ptr, ptr %33, align 8, !tbaa !5
  %422 = load i64, ptr %421, align 8, !tbaa !9
  %423 = load ptr, ptr %33, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = mul nsw i64 %422, %424
  %426 = sdiv i64 %425, 2
  store i64 %426, ptr %63, align 8, !tbaa !9
  %427 = load i64, ptr %62, align 8, !tbaa !9
  %428 = load i64, ptr %63, align 8, !tbaa !9
  %429 = icmp sge i64 %427, %428
  br i1 %429, label %430, label %432

430:                                              ; preds = %419
  %431 = load i64, ptr %62, align 8, !tbaa !9
  br label %434

432:                                              ; preds = %419
  %433 = load i64, ptr %63, align 8, !tbaa !9
  br label %434

434:                                              ; preds = %432, %430
  %435 = phi i64 [ %431, %430 ], [ %433, %432 ]
  store i64 %435, ptr %79, align 8, !tbaa !9
  br label %436

436:                                              ; preds = %434, %415
  br label %438

437:                                              ; preds = %338
  store i64 1, ptr %101, align 8, !tbaa !9
  store i64 1, ptr %102, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %438

438:                                              ; preds = %437, %436
  %439 = load i64, ptr %79, align 8, !tbaa !9
  %440 = sitofp i64 %439 to float
  %441 = load ptr, ptr %48, align 8, !tbaa !5
  %442 = getelementptr inbounds float, ptr %441, i64 1
  store float %440, ptr %442, align 4, !tbaa !11
  %443 = load i64, ptr %103, align 8, !tbaa !9
  %444 = icmp ne i64 %443, 0
  br i1 %444, label %449, label %445

445:                                              ; preds = %438
  %446 = load ptr, ptr %33, align 8, !tbaa !5
  %447 = load i64, ptr %446, align 8, !tbaa !9
  %448 = icmp eq i64 %447, 0
  br i1 %448, label %449, label %450

449:                                              ; preds = %445, %438
  store i64 1, ptr %98, align 8, !tbaa !9
  br label %454

450:                                              ; preds = %445
  %451 = load ptr, ptr %33, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = add nsw i64 %452, 6
  store i64 %453, ptr %98, align 8, !tbaa !9
  br label %454

454:                                              ; preds = %450, %449
  %455 = load i64, ptr %98, align 8, !tbaa !9
  %456 = load ptr, ptr %50, align 8, !tbaa !5
  %457 = getelementptr inbounds i64, ptr %456, i64 1
  store i64 %455, ptr %457, align 8, !tbaa !9
  %458 = load ptr, ptr %49, align 8, !tbaa !5
  %459 = load i64, ptr %458, align 8, !tbaa !9
  %460 = load i64, ptr %101, align 8, !tbaa !9
  %461 = icmp slt i64 %459, %460
  br i1 %461, label %462, label %467

462:                                              ; preds = %454
  %463 = load i64, ptr %106, align 8, !tbaa !9
  %464 = icmp ne i64 %463, 0
  br i1 %464, label %467, label %465

465:                                              ; preds = %462
  %466 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -22, ptr %466, align 8, !tbaa !9
  br label %478

467:                                              ; preds = %462, %454
  %468 = load ptr, ptr %51, align 8, !tbaa !5
  %469 = load i64, ptr %468, align 8, !tbaa !9
  %470 = load i64, ptr %98, align 8, !tbaa !9
  %471 = icmp slt i64 %469, %470
  br i1 %471, label %472, label %477

472:                                              ; preds = %467
  %473 = load i64, ptr %106, align 8, !tbaa !9
  %474 = icmp ne i64 %473, 0
  br i1 %474, label %477, label %475

475:                                              ; preds = %472
  %476 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -24, ptr %476, align 8, !tbaa !9
  br label %477

477:                                              ; preds = %475, %472, %467
  br label %478

478:                                              ; preds = %477, %465
  br label %479

479:                                              ; preds = %478, %334
  %480 = load ptr, ptr %53, align 8, !tbaa !5
  %481 = load i64, ptr %480, align 8, !tbaa !9
  %482 = icmp ne i64 %481, 0
  br i1 %482, label %483, label %488

483:                                              ; preds = %479
  %484 = load ptr, ptr %53, align 8, !tbaa !5
  %485 = load i64, ptr %484, align 8, !tbaa !9
  %486 = sub nsw i64 0, %485
  store i64 %486, ptr %62, align 8, !tbaa !9
  %487 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %62)
  store i32 0, ptr %27, align 4
  store i32 1, ptr %108, align 4
  br label %1428

488:                                              ; preds = %479
  %489 = load i64, ptr %106, align 8, !tbaa !9
  %490 = icmp ne i64 %489, 0
  br i1 %490, label %491, label %492

491:                                              ; preds = %488
  store i32 0, ptr %27, align 4
  store i32 1, ptr %108, align 4
  br label %1428

492:                                              ; preds = %488
  br label %493

493:                                              ; preds = %492
  %494 = load ptr, ptr %33, align 8, !tbaa !5
  %495 = load i64, ptr %494, align 8, !tbaa !9
  %496 = icmp eq i64 %495, 0
  br i1 %496, label %497, label %499

497:                                              ; preds = %493
  %498 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 0, ptr %498, align 8, !tbaa !9
  store i32 0, ptr %27, align 4
  store i32 1, ptr %108, align 4
  br label %1428

499:                                              ; preds = %493
  %500 = call double @slamch_(ptr noundef @.str.10)
  %501 = fptrunc double %500 to float
  store float %501, ptr %72, align 4, !tbaa !11
  %502 = call double @slamch_(ptr noundef @.str.2)
  %503 = fptrunc double %502 to float
  store float %503, ptr %89, align 4, !tbaa !11
  %504 = load float, ptr %89, align 4, !tbaa !11
  %505 = fdiv float 1.000000e+00, %504
  store float %505, ptr %90, align 4, !tbaa !11
  %506 = call i32 @slabad_(ptr noundef %89, ptr noundef %90)
  %507 = load float, ptr %89, align 4, !tbaa !11
  %508 = fpext float %507 to double
  %509 = call double @sqrt(double noundef %508) #4
  %510 = load float, ptr %72, align 4, !tbaa !11
  %511 = fpext float %510 to double
  %512 = fdiv double %509, %511
  %513 = fptrunc double %512 to float
  store float %513, ptr %104, align 4, !tbaa !11
  %514 = load float, ptr %104, align 4, !tbaa !11
  %515 = fdiv float 1.000000e+00, %514
  store float %515, ptr %91, align 4, !tbaa !11
  %516 = load ptr, ptr %33, align 8, !tbaa !5
  %517 = load ptr, ptr %33, align 8, !tbaa !5
  %518 = load ptr, ptr %34, align 8, !tbaa !5
  %519 = load i64, ptr %55, align 8, !tbaa !9
  %520 = getelementptr inbounds float, ptr %518, i64 %519
  %521 = load ptr, ptr %35, align 8, !tbaa !5
  %522 = load ptr, ptr %48, align 8, !tbaa !5
  %523 = getelementptr inbounds float, ptr %522, i64 1
  %524 = call double @slange_(ptr noundef @.str.11, ptr noundef %516, ptr noundef %517, ptr noundef %520, ptr noundef %521, ptr noundef %523)
  %525 = fptrunc double %524 to float
  store float %525, ptr %74, align 4, !tbaa !11
  store i64 0, ptr %87, align 8, !tbaa !9
  %526 = load float, ptr %74, align 4, !tbaa !11
  %527 = fcmp ogt float %526, 0.000000e+00
  br i1 %527, label %528, label %534

528:                                              ; preds = %499
  %529 = load float, ptr %74, align 4, !tbaa !11
  %530 = load float, ptr %104, align 4, !tbaa !11
  %531 = fcmp olt float %529, %530
  br i1 %531, label %532, label %534

532:                                              ; preds = %528
  %533 = load float, ptr %104, align 4, !tbaa !11
  store float %533, ptr %99, align 4, !tbaa !11
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %541

534:                                              ; preds = %528, %499
  %535 = load float, ptr %74, align 4, !tbaa !11
  %536 = load float, ptr %91, align 4, !tbaa !11
  %537 = fcmp ogt float %535, %536
  br i1 %537, label %538, label %540

538:                                              ; preds = %534
  %539 = load float, ptr %91, align 4, !tbaa !11
  store float %539, ptr %99, align 4, !tbaa !11
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %540

540:                                              ; preds = %538, %534
  br label %541

541:                                              ; preds = %540, %532
  %542 = load i64, ptr %87, align 8, !tbaa !9
  %543 = icmp ne i64 %542, 0
  br i1 %543, label %544, label %552

544:                                              ; preds = %541
  %545 = load ptr, ptr %33, align 8, !tbaa !5
  %546 = load ptr, ptr %33, align 8, !tbaa !5
  %547 = load ptr, ptr %34, align 8, !tbaa !5
  %548 = load i64, ptr %55, align 8, !tbaa !9
  %549 = getelementptr inbounds float, ptr %547, i64 %548
  %550 = load ptr, ptr %35, align 8, !tbaa !5
  %551 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %74, ptr noundef %99, ptr noundef %545, ptr noundef %546, ptr noundef %549, ptr noundef %550, ptr noundef %76)
  br label %552

552:                                              ; preds = %544, %541
  %553 = load ptr, ptr %33, align 8, !tbaa !5
  %554 = load ptr, ptr %33, align 8, !tbaa !5
  %555 = load ptr, ptr %36, align 8, !tbaa !5
  %556 = load i64, ptr %57, align 8, !tbaa !9
  %557 = getelementptr inbounds float, ptr %555, i64 %556
  %558 = load ptr, ptr %37, align 8, !tbaa !5
  %559 = load ptr, ptr %48, align 8, !tbaa !5
  %560 = getelementptr inbounds float, ptr %559, i64 1
  %561 = call double @slange_(ptr noundef @.str.11, ptr noundef %553, ptr noundef %554, ptr noundef %557, ptr noundef %558, ptr noundef %560)
  %562 = fptrunc double %561 to float
  store float %562, ptr %75, align 4, !tbaa !11
  store i64 0, ptr %88, align 8, !tbaa !9
  %563 = load float, ptr %75, align 4, !tbaa !11
  %564 = fcmp ogt float %563, 0.000000e+00
  br i1 %564, label %565, label %571

565:                                              ; preds = %552
  %566 = load float, ptr %75, align 4, !tbaa !11
  %567 = load float, ptr %104, align 4, !tbaa !11
  %568 = fcmp olt float %566, %567
  br i1 %568, label %569, label %571

569:                                              ; preds = %565
  %570 = load float, ptr %104, align 4, !tbaa !11
  store float %570, ptr %100, align 4, !tbaa !11
  store i64 1, ptr %88, align 8, !tbaa !9
  br label %578

571:                                              ; preds = %565, %552
  %572 = load float, ptr %75, align 4, !tbaa !11
  %573 = load float, ptr %91, align 4, !tbaa !11
  %574 = fcmp ogt float %572, %573
  br i1 %574, label %575, label %577

575:                                              ; preds = %571
  %576 = load float, ptr %91, align 4, !tbaa !11
  store float %576, ptr %100, align 4, !tbaa !11
  store i64 1, ptr %88, align 8, !tbaa !9
  br label %577

577:                                              ; preds = %575, %571
  br label %578

578:                                              ; preds = %577, %569
  %579 = load i64, ptr %88, align 8, !tbaa !9
  %580 = icmp ne i64 %579, 0
  br i1 %580, label %581, label %589

581:                                              ; preds = %578
  %582 = load ptr, ptr %33, align 8, !tbaa !5
  %583 = load ptr, ptr %33, align 8, !tbaa !5
  %584 = load ptr, ptr %36, align 8, !tbaa !5
  %585 = load i64, ptr %57, align 8, !tbaa !9
  %586 = getelementptr inbounds float, ptr %584, i64 %585
  %587 = load ptr, ptr %37, align 8, !tbaa !5
  %588 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %75, ptr noundef %100, ptr noundef %582, ptr noundef %583, ptr noundef %586, ptr noundef %587, ptr noundef %76)
  br label %589

589:                                              ; preds = %581, %578
  store i64 1, ptr %80, align 8, !tbaa !9
  %590 = load ptr, ptr %33, align 8, !tbaa !5
  %591 = load i64, ptr %590, align 8, !tbaa !9
  %592 = add nsw i64 %591, 1
  store i64 %592, ptr %93, align 8, !tbaa !9
  %593 = load i64, ptr %93, align 8, !tbaa !9
  %594 = load ptr, ptr %33, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = add nsw i64 %593, %595
  store i64 %596, ptr %78, align 8, !tbaa !9
  %597 = load ptr, ptr %33, align 8, !tbaa !5
  %598 = load ptr, ptr %34, align 8, !tbaa !5
  %599 = load i64, ptr %55, align 8, !tbaa !9
  %600 = getelementptr inbounds float, ptr %598, i64 %599
  %601 = load ptr, ptr %35, align 8, !tbaa !5
  %602 = load ptr, ptr %36, align 8, !tbaa !5
  %603 = load i64, ptr %57, align 8, !tbaa !9
  %604 = getelementptr inbounds float, ptr %602, i64 %603
  %605 = load ptr, ptr %37, align 8, !tbaa !5
  %606 = load ptr, ptr %48, align 8, !tbaa !5
  %607 = load i64, ptr %80, align 8, !tbaa !9
  %608 = getelementptr inbounds float, ptr %606, i64 %607
  %609 = load ptr, ptr %48, align 8, !tbaa !5
  %610 = load i64, ptr %93, align 8, !tbaa !9
  %611 = getelementptr inbounds float, ptr %609, i64 %610
  %612 = load ptr, ptr %48, align 8, !tbaa !5
  %613 = load i64, ptr %78, align 8, !tbaa !9
  %614 = getelementptr inbounds float, ptr %612, i64 %613
  %615 = call i32 @sggbal_(ptr noundef @.str.10, ptr noundef %597, ptr noundef %600, ptr noundef %601, ptr noundef %604, ptr noundef %605, ptr noundef %71, ptr noundef %70, ptr noundef %608, ptr noundef %611, ptr noundef %614, ptr noundef %76)
  %616 = load i64, ptr %70, align 8, !tbaa !9
  %617 = add nsw i64 %616, 1
  %618 = load i64, ptr %71, align 8, !tbaa !9
  %619 = sub nsw i64 %617, %618
  store i64 %619, ptr %85, align 8, !tbaa !9
  %620 = load ptr, ptr %33, align 8, !tbaa !5
  %621 = load i64, ptr %620, align 8, !tbaa !9
  %622 = add nsw i64 %621, 1
  %623 = load i64, ptr %71, align 8, !tbaa !9
  %624 = sub nsw i64 %622, %623
  store i64 %624, ptr %81, align 8, !tbaa !9
  %625 = load i64, ptr %78, align 8, !tbaa !9
  store i64 %625, ptr %77, align 8, !tbaa !9
  %626 = load i64, ptr %77, align 8, !tbaa !9
  %627 = load i64, ptr %85, align 8, !tbaa !9
  %628 = add nsw i64 %626, %627
  store i64 %628, ptr %78, align 8, !tbaa !9
  %629 = load ptr, ptr %49, align 8, !tbaa !5
  %630 = load i64, ptr %629, align 8, !tbaa !9
  %631 = add nsw i64 %630, 1
  %632 = load i64, ptr %78, align 8, !tbaa !9
  %633 = sub nsw i64 %631, %632
  store i64 %633, ptr %62, align 8, !tbaa !9
  %634 = load ptr, ptr %36, align 8, !tbaa !5
  %635 = load i64, ptr %71, align 8, !tbaa !9
  %636 = load i64, ptr %71, align 8, !tbaa !9
  %637 = load i64, ptr %56, align 8, !tbaa !9
  %638 = mul nsw i64 %636, %637
  %639 = add nsw i64 %635, %638
  %640 = getelementptr inbounds float, ptr %634, i64 %639
  %641 = load ptr, ptr %37, align 8, !tbaa !5
  %642 = load ptr, ptr %48, align 8, !tbaa !5
  %643 = load i64, ptr %77, align 8, !tbaa !9
  %644 = getelementptr inbounds float, ptr %642, i64 %643
  %645 = load ptr, ptr %48, align 8, !tbaa !5
  %646 = load i64, ptr %78, align 8, !tbaa !9
  %647 = getelementptr inbounds float, ptr %645, i64 %646
  %648 = call i32 @sgeqrf_(ptr noundef %85, ptr noundef %81, ptr noundef %640, ptr noundef %641, ptr noundef %644, ptr noundef %647, ptr noundef %62, ptr noundef %76)
  %649 = load ptr, ptr %49, align 8, !tbaa !5
  %650 = load i64, ptr %649, align 8, !tbaa !9
  %651 = add nsw i64 %650, 1
  %652 = load i64, ptr %78, align 8, !tbaa !9
  %653 = sub nsw i64 %651, %652
  store i64 %653, ptr %62, align 8, !tbaa !9
  %654 = load ptr, ptr %36, align 8, !tbaa !5
  %655 = load i64, ptr %71, align 8, !tbaa !9
  %656 = load i64, ptr %71, align 8, !tbaa !9
  %657 = load i64, ptr %56, align 8, !tbaa !9
  %658 = mul nsw i64 %656, %657
  %659 = add nsw i64 %655, %658
  %660 = getelementptr inbounds float, ptr %654, i64 %659
  %661 = load ptr, ptr %37, align 8, !tbaa !5
  %662 = load ptr, ptr %48, align 8, !tbaa !5
  %663 = load i64, ptr %77, align 8, !tbaa !9
  %664 = getelementptr inbounds float, ptr %662, i64 %663
  %665 = load ptr, ptr %34, align 8, !tbaa !5
  %666 = load i64, ptr %71, align 8, !tbaa !9
  %667 = load i64, ptr %71, align 8, !tbaa !9
  %668 = load i64, ptr %54, align 8, !tbaa !9
  %669 = mul nsw i64 %667, %668
  %670 = add nsw i64 %666, %669
  %671 = getelementptr inbounds float, ptr %665, i64 %670
  %672 = load ptr, ptr %35, align 8, !tbaa !5
  %673 = load ptr, ptr %48, align 8, !tbaa !5
  %674 = load i64, ptr %78, align 8, !tbaa !9
  %675 = getelementptr inbounds float, ptr %673, i64 %674
  %676 = call i32 @sormqr_(ptr noundef @.str.13, ptr noundef @.str.14, ptr noundef %85, ptr noundef %81, ptr noundef %85, ptr noundef %660, ptr noundef %661, ptr noundef %664, ptr noundef %671, ptr noundef %672, ptr noundef %675, ptr noundef %62, ptr noundef %76)
  %677 = load i64, ptr %83, align 8, !tbaa !9
  %678 = icmp ne i64 %677, 0
  br i1 %678, label %679, label %734

679:                                              ; preds = %589
  %680 = load ptr, ptr %33, align 8, !tbaa !5
  %681 = load ptr, ptr %33, align 8, !tbaa !5
  %682 = load ptr, ptr %42, align 8, !tbaa !5
  %683 = load i64, ptr %59, align 8, !tbaa !9
  %684 = getelementptr inbounds float, ptr %682, i64 %683
  %685 = load ptr, ptr %43, align 8, !tbaa !5
  %686 = call i32 @slaset_(ptr noundef @.str.15, ptr noundef %680, ptr noundef %681, ptr noundef @c_b42, ptr noundef @c_b43, ptr noundef %684, ptr noundef %685)
  %687 = load i64, ptr %85, align 8, !tbaa !9
  %688 = icmp sgt i64 %687, 1
  br i1 %688, label %689, label %713

689:                                              ; preds = %679
  %690 = load i64, ptr %85, align 8, !tbaa !9
  %691 = sub nsw i64 %690, 1
  store i64 %691, ptr %62, align 8, !tbaa !9
  %692 = load i64, ptr %85, align 8, !tbaa !9
  %693 = sub nsw i64 %692, 1
  store i64 %693, ptr %63, align 8, !tbaa !9
  %694 = load ptr, ptr %36, align 8, !tbaa !5
  %695 = load i64, ptr %71, align 8, !tbaa !9
  %696 = add nsw i64 %695, 1
  %697 = load i64, ptr %71, align 8, !tbaa !9
  %698 = load i64, ptr %56, align 8, !tbaa !9
  %699 = mul nsw i64 %697, %698
  %700 = add nsw i64 %696, %699
  %701 = getelementptr inbounds float, ptr %694, i64 %700
  %702 = load ptr, ptr %37, align 8, !tbaa !5
  %703 = load ptr, ptr %42, align 8, !tbaa !5
  %704 = load i64, ptr %71, align 8, !tbaa !9
  %705 = add nsw i64 %704, 1
  %706 = load i64, ptr %71, align 8, !tbaa !9
  %707 = load i64, ptr %58, align 8, !tbaa !9
  %708 = mul nsw i64 %706, %707
  %709 = add nsw i64 %705, %708
  %710 = getelementptr inbounds float, ptr %703, i64 %709
  %711 = load ptr, ptr %43, align 8, !tbaa !5
  %712 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %62, ptr noundef %63, ptr noundef %701, ptr noundef %702, ptr noundef %710, ptr noundef %711)
  br label %713

713:                                              ; preds = %689, %679
  %714 = load ptr, ptr %49, align 8, !tbaa !5
  %715 = load i64, ptr %714, align 8, !tbaa !9
  %716 = add nsw i64 %715, 1
  %717 = load i64, ptr %78, align 8, !tbaa !9
  %718 = sub nsw i64 %716, %717
  store i64 %718, ptr %62, align 8, !tbaa !9
  %719 = load ptr, ptr %42, align 8, !tbaa !5
  %720 = load i64, ptr %71, align 8, !tbaa !9
  %721 = load i64, ptr %71, align 8, !tbaa !9
  %722 = load i64, ptr %58, align 8, !tbaa !9
  %723 = mul nsw i64 %721, %722
  %724 = add nsw i64 %720, %723
  %725 = getelementptr inbounds float, ptr %719, i64 %724
  %726 = load ptr, ptr %43, align 8, !tbaa !5
  %727 = load ptr, ptr %48, align 8, !tbaa !5
  %728 = load i64, ptr %77, align 8, !tbaa !9
  %729 = getelementptr inbounds float, ptr %727, i64 %728
  %730 = load ptr, ptr %48, align 8, !tbaa !5
  %731 = load i64, ptr %78, align 8, !tbaa !9
  %732 = getelementptr inbounds float, ptr %730, i64 %731
  %733 = call i32 @sorgqr_(ptr noundef %85, ptr noundef %85, ptr noundef %85, ptr noundef %725, ptr noundef %726, ptr noundef %729, ptr noundef %732, ptr noundef %62, ptr noundef %76)
  br label %734

734:                                              ; preds = %713, %589
  %735 = load i64, ptr %84, align 8, !tbaa !9
  %736 = icmp ne i64 %735, 0
  br i1 %736, label %737, label %745

737:                                              ; preds = %734
  %738 = load ptr, ptr %33, align 8, !tbaa !5
  %739 = load ptr, ptr %33, align 8, !tbaa !5
  %740 = load ptr, ptr %44, align 8, !tbaa !5
  %741 = load i64, ptr %61, align 8, !tbaa !9
  %742 = getelementptr inbounds float, ptr %740, i64 %741
  %743 = load ptr, ptr %45, align 8, !tbaa !5
  %744 = call i32 @slaset_(ptr noundef @.str.15, ptr noundef %738, ptr noundef %739, ptr noundef @c_b42, ptr noundef @c_b43, ptr noundef %742, ptr noundef %743)
  br label %745

745:                                              ; preds = %737, %734
  %746 = load ptr, ptr %28, align 8, !tbaa !5
  %747 = load ptr, ptr %29, align 8, !tbaa !5
  %748 = load ptr, ptr %33, align 8, !tbaa !5
  %749 = load ptr, ptr %34, align 8, !tbaa !5
  %750 = load i64, ptr %55, align 8, !tbaa !9
  %751 = getelementptr inbounds float, ptr %749, i64 %750
  %752 = load ptr, ptr %35, align 8, !tbaa !5
  %753 = load ptr, ptr %36, align 8, !tbaa !5
  %754 = load i64, ptr %57, align 8, !tbaa !9
  %755 = getelementptr inbounds float, ptr %753, i64 %754
  %756 = load ptr, ptr %37, align 8, !tbaa !5
  %757 = load ptr, ptr %42, align 8, !tbaa !5
  %758 = load i64, ptr %59, align 8, !tbaa !9
  %759 = getelementptr inbounds float, ptr %757, i64 %758
  %760 = load ptr, ptr %43, align 8, !tbaa !5
  %761 = load ptr, ptr %44, align 8, !tbaa !5
  %762 = load i64, ptr %61, align 8, !tbaa !9
  %763 = getelementptr inbounds float, ptr %761, i64 %762
  %764 = load ptr, ptr %45, align 8, !tbaa !5
  %765 = call i32 @sgghrd_(ptr noundef %746, ptr noundef %747, ptr noundef %748, ptr noundef %71, ptr noundef %70, ptr noundef %751, ptr noundef %752, ptr noundef %755, ptr noundef %756, ptr noundef %759, ptr noundef %760, ptr noundef %763, ptr noundef %764, ptr noundef %76)
  %766 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 0, ptr %766, align 8, !tbaa !9
  %767 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %767, ptr %78, align 8, !tbaa !9
  %768 = load ptr, ptr %49, align 8, !tbaa !5
  %769 = load i64, ptr %768, align 8, !tbaa !9
  %770 = add nsw i64 %769, 1
  %771 = load i64, ptr %78, align 8, !tbaa !9
  %772 = sub nsw i64 %770, %771
  store i64 %772, ptr %62, align 8, !tbaa !9
  %773 = load ptr, ptr %28, align 8, !tbaa !5
  %774 = load ptr, ptr %29, align 8, !tbaa !5
  %775 = load ptr, ptr %33, align 8, !tbaa !5
  %776 = load ptr, ptr %34, align 8, !tbaa !5
  %777 = load i64, ptr %55, align 8, !tbaa !9
  %778 = getelementptr inbounds float, ptr %776, i64 %777
  %779 = load ptr, ptr %35, align 8, !tbaa !5
  %780 = load ptr, ptr %36, align 8, !tbaa !5
  %781 = load i64, ptr %57, align 8, !tbaa !9
  %782 = getelementptr inbounds float, ptr %780, i64 %781
  %783 = load ptr, ptr %37, align 8, !tbaa !5
  %784 = load ptr, ptr %39, align 8, !tbaa !5
  %785 = getelementptr inbounds float, ptr %784, i64 1
  %786 = load ptr, ptr %40, align 8, !tbaa !5
  %787 = getelementptr inbounds float, ptr %786, i64 1
  %788 = load ptr, ptr %41, align 8, !tbaa !5
  %789 = getelementptr inbounds float, ptr %788, i64 1
  %790 = load ptr, ptr %42, align 8, !tbaa !5
  %791 = load i64, ptr %59, align 8, !tbaa !9
  %792 = getelementptr inbounds float, ptr %790, i64 %791
  %793 = load ptr, ptr %43, align 8, !tbaa !5
  %794 = load ptr, ptr %44, align 8, !tbaa !5
  %795 = load i64, ptr %61, align 8, !tbaa !9
  %796 = getelementptr inbounds float, ptr %794, i64 %795
  %797 = load ptr, ptr %45, align 8, !tbaa !5
  %798 = load ptr, ptr %48, align 8, !tbaa !5
  %799 = load i64, ptr %78, align 8, !tbaa !9
  %800 = getelementptr inbounds float, ptr %798, i64 %799
  %801 = call i32 @shgeqz_(ptr noundef @.str.2, ptr noundef %773, ptr noundef %774, ptr noundef %775, ptr noundef %71, ptr noundef %70, ptr noundef %778, ptr noundef %779, ptr noundef %782, ptr noundef %783, ptr noundef %785, ptr noundef %787, ptr noundef %789, ptr noundef %792, ptr noundef %793, ptr noundef %796, ptr noundef %797, ptr noundef %800, ptr noundef %62, ptr noundef %76)
  %802 = load i64, ptr %76, align 8, !tbaa !9
  %803 = icmp ne i64 %802, 0
  br i1 %803, label %804, label %839

804:                                              ; preds = %745
  %805 = load i64, ptr %76, align 8, !tbaa !9
  %806 = icmp sgt i64 %805, 0
  br i1 %806, label %807, label %815

807:                                              ; preds = %804
  %808 = load i64, ptr %76, align 8, !tbaa !9
  %809 = load ptr, ptr %33, align 8, !tbaa !5
  %810 = load i64, ptr %809, align 8, !tbaa !9
  %811 = icmp sle i64 %808, %810
  br i1 %811, label %812, label %815

812:                                              ; preds = %807
  %813 = load i64, ptr %76, align 8, !tbaa !9
  %814 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 %813, ptr %814, align 8, !tbaa !9
  br label %838

815:                                              ; preds = %807, %804
  %816 = load i64, ptr %76, align 8, !tbaa !9
  %817 = load ptr, ptr %33, align 8, !tbaa !5
  %818 = load i64, ptr %817, align 8, !tbaa !9
  %819 = icmp sgt i64 %816, %818
  br i1 %819, label %820, label %832

820:                                              ; preds = %815
  %821 = load i64, ptr %76, align 8, !tbaa !9
  %822 = load ptr, ptr %33, align 8, !tbaa !5
  %823 = load i64, ptr %822, align 8, !tbaa !9
  %824 = shl i64 %823, 1
  %825 = icmp sle i64 %821, %824
  br i1 %825, label %826, label %832

826:                                              ; preds = %820
  %827 = load i64, ptr %76, align 8, !tbaa !9
  %828 = load ptr, ptr %33, align 8, !tbaa !5
  %829 = load i64, ptr %828, align 8, !tbaa !9
  %830 = sub nsw i64 %827, %829
  %831 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 %830, ptr %831, align 8, !tbaa !9
  br label %837

832:                                              ; preds = %820, %815
  %833 = load ptr, ptr %33, align 8, !tbaa !5
  %834 = load i64, ptr %833, align 8, !tbaa !9
  %835 = add nsw i64 %834, 1
  %836 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 %835, ptr %836, align 8, !tbaa !9
  br label %837

837:                                              ; preds = %832, %826
  br label %838

838:                                              ; preds = %837, %812
  br label %1420

839:                                              ; preds = %745
  %840 = load i64, ptr %105, align 8, !tbaa !9
  %841 = icmp ne i64 %840, 0
  br i1 %841, label %842, label %995

842:                                              ; preds = %839
  %843 = load i64, ptr %87, align 8, !tbaa !9
  %844 = icmp ne i64 %843, 0
  br i1 %844, label %845, label %856

845:                                              ; preds = %842
  %846 = load ptr, ptr %33, align 8, !tbaa !5
  %847 = load ptr, ptr %39, align 8, !tbaa !5
  %848 = getelementptr inbounds float, ptr %847, i64 1
  %849 = load ptr, ptr %33, align 8, !tbaa !5
  %850 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %99, ptr noundef %74, ptr noundef %846, ptr noundef @c__1, ptr noundef %848, ptr noundef %849, ptr noundef %76)
  %851 = load ptr, ptr %33, align 8, !tbaa !5
  %852 = load ptr, ptr %40, align 8, !tbaa !5
  %853 = getelementptr inbounds float, ptr %852, i64 1
  %854 = load ptr, ptr %33, align 8, !tbaa !5
  %855 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %99, ptr noundef %74, ptr noundef %851, ptr noundef @c__1, ptr noundef %853, ptr noundef %854, ptr noundef %76)
  br label %856

856:                                              ; preds = %845, %842
  %857 = load i64, ptr %88, align 8, !tbaa !9
  %858 = icmp ne i64 %857, 0
  br i1 %858, label %859, label %865

859:                                              ; preds = %856
  %860 = load ptr, ptr %33, align 8, !tbaa !5
  %861 = load ptr, ptr %41, align 8, !tbaa !5
  %862 = getelementptr inbounds float, ptr %861, i64 1
  %863 = load ptr, ptr %33, align 8, !tbaa !5
  %864 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %100, ptr noundef %75, ptr noundef %860, ptr noundef @c__1, ptr noundef %862, ptr noundef %863, ptr noundef %76)
  br label %865

865:                                              ; preds = %859, %856
  %866 = load ptr, ptr %33, align 8, !tbaa !5
  %867 = load i64, ptr %866, align 8, !tbaa !9
  store i64 %867, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %868

868:                                              ; preds = %887, %865
  %869 = load i64, ptr %65, align 8, !tbaa !9
  %870 = load i64, ptr %62, align 8, !tbaa !9
  %871 = icmp sle i64 %869, %870
  br i1 %871, label %872, label %890

872:                                              ; preds = %868
  %873 = load ptr, ptr %31, align 8, !tbaa !5
  %874 = load ptr, ptr %39, align 8, !tbaa !5
  %875 = load i64, ptr %65, align 8, !tbaa !9
  %876 = getelementptr inbounds float, ptr %874, i64 %875
  %877 = load ptr, ptr %40, align 8, !tbaa !5
  %878 = load i64, ptr %65, align 8, !tbaa !9
  %879 = getelementptr inbounds float, ptr %877, i64 %878
  %880 = load ptr, ptr %41, align 8, !tbaa !5
  %881 = load i64, ptr %65, align 8, !tbaa !9
  %882 = getelementptr inbounds float, ptr %880, i64 %881
  %883 = call i64 (ptr, ptr, ptr, ...) %873(ptr noundef %876, ptr noundef %879, ptr noundef %882)
  %884 = load ptr, ptr %52, align 8, !tbaa !5
  %885 = load i64, ptr %65, align 8, !tbaa !9
  %886 = getelementptr inbounds i64, ptr %884, i64 %885
  store i64 %883, ptr %886, align 8, !tbaa !9
  br label %887

887:                                              ; preds = %872
  %888 = load i64, ptr %65, align 8, !tbaa !9
  %889 = add nsw i64 %888, 1
  store i64 %889, ptr %65, align 8, !tbaa !9
  br label %868, !llvm.loop !13

890:                                              ; preds = %868
  %891 = load ptr, ptr %49, align 8, !tbaa !5
  %892 = load i64, ptr %891, align 8, !tbaa !9
  %893 = load i64, ptr %78, align 8, !tbaa !9
  %894 = sub nsw i64 %892, %893
  %895 = add nsw i64 %894, 1
  store i64 %895, ptr %62, align 8, !tbaa !9
  %896 = load ptr, ptr %52, align 8, !tbaa !5
  %897 = getelementptr inbounds i64, ptr %896, i64 1
  %898 = load ptr, ptr %33, align 8, !tbaa !5
  %899 = load ptr, ptr %34, align 8, !tbaa !5
  %900 = load i64, ptr %55, align 8, !tbaa !9
  %901 = getelementptr inbounds float, ptr %899, i64 %900
  %902 = load ptr, ptr %35, align 8, !tbaa !5
  %903 = load ptr, ptr %36, align 8, !tbaa !5
  %904 = load i64, ptr %57, align 8, !tbaa !9
  %905 = getelementptr inbounds float, ptr %903, i64 %904
  %906 = load ptr, ptr %37, align 8, !tbaa !5
  %907 = load ptr, ptr %39, align 8, !tbaa !5
  %908 = getelementptr inbounds float, ptr %907, i64 1
  %909 = load ptr, ptr %40, align 8, !tbaa !5
  %910 = getelementptr inbounds float, ptr %909, i64 1
  %911 = load ptr, ptr %41, align 8, !tbaa !5
  %912 = getelementptr inbounds float, ptr %911, i64 1
  %913 = load ptr, ptr %42, align 8, !tbaa !5
  %914 = load i64, ptr %59, align 8, !tbaa !9
  %915 = getelementptr inbounds float, ptr %913, i64 %914
  %916 = load ptr, ptr %43, align 8, !tbaa !5
  %917 = load ptr, ptr %44, align 8, !tbaa !5
  %918 = load i64, ptr %61, align 8, !tbaa !9
  %919 = getelementptr inbounds float, ptr %917, i64 %918
  %920 = load ptr, ptr %45, align 8, !tbaa !5
  %921 = load ptr, ptr %38, align 8, !tbaa !5
  %922 = getelementptr inbounds [2 x float], ptr %69, i64 0, i64 0
  %923 = load ptr, ptr %48, align 8, !tbaa !5
  %924 = load i64, ptr %78, align 8, !tbaa !9
  %925 = getelementptr inbounds float, ptr %923, i64 %924
  %926 = load ptr, ptr %50, align 8, !tbaa !5
  %927 = getelementptr inbounds i64, ptr %926, i64 1
  %928 = load ptr, ptr %51, align 8, !tbaa !5
  %929 = call i32 @stgsen_(ptr noundef %73, ptr noundef %83, ptr noundef %84, ptr noundef %897, ptr noundef %898, ptr noundef %901, ptr noundef %902, ptr noundef %905, ptr noundef %906, ptr noundef %908, ptr noundef %910, ptr noundef %912, ptr noundef %915, ptr noundef %916, ptr noundef %919, ptr noundef %920, ptr noundef %921, ptr noundef %67, ptr noundef %68, ptr noundef %922, ptr noundef %925, ptr noundef %62, ptr noundef %927, ptr noundef %928, ptr noundef %76)
  %930 = load i64, ptr %73, align 8, !tbaa !9
  %931 = icmp sge i64 %930, 1
  br i1 %931, label %932, label %952

932:                                              ; preds = %890
  %933 = load i64, ptr %102, align 8, !tbaa !9
  store i64 %933, ptr %62, align 8, !tbaa !9
  %934 = load ptr, ptr %38, align 8, !tbaa !5
  %935 = load i64, ptr %934, align 8, !tbaa !9
  %936 = shl i64 %935, 1
  %937 = load ptr, ptr %33, align 8, !tbaa !5
  %938 = load i64, ptr %937, align 8, !tbaa !9
  %939 = load ptr, ptr %38, align 8, !tbaa !5
  %940 = load i64, ptr %939, align 8, !tbaa !9
  %941 = sub nsw i64 %938, %940
  %942 = mul nsw i64 %936, %941
  store i64 %942, ptr %63, align 8, !tbaa !9
  %943 = load i64, ptr %62, align 8, !tbaa !9
  %944 = load i64, ptr %63, align 8, !tbaa !9
  %945 = icmp sge i64 %943, %944
  br i1 %945, label %946, label %948

946:                                              ; preds = %932
  %947 = load i64, ptr %62, align 8, !tbaa !9
  br label %950

948:                                              ; preds = %932
  %949 = load i64, ptr %63, align 8, !tbaa !9
  br label %950

950:                                              ; preds = %948, %946
  %951 = phi i64 [ %947, %946 ], [ %949, %948 ]
  store i64 %951, ptr %102, align 8, !tbaa !9
  br label %952

952:                                              ; preds = %950, %890
  %953 = load i64, ptr %76, align 8, !tbaa !9
  %954 = icmp eq i64 %953, -22
  br i1 %954, label %955, label %957

955:                                              ; preds = %952
  %956 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -22, ptr %956, align 8, !tbaa !9
  br label %994

957:                                              ; preds = %952
  %958 = load i64, ptr %73, align 8, !tbaa !9
  %959 = icmp eq i64 %958, 1
  br i1 %959, label %963, label %960

960:                                              ; preds = %957
  %961 = load i64, ptr %73, align 8, !tbaa !9
  %962 = icmp eq i64 %961, 4
  br i1 %962, label %963, label %970

963:                                              ; preds = %960, %957
  %964 = load float, ptr %67, align 4, !tbaa !11
  %965 = load ptr, ptr %46, align 8, !tbaa !5
  %966 = getelementptr inbounds float, ptr %965, i64 1
  store float %964, ptr %966, align 4, !tbaa !11
  %967 = load float, ptr %68, align 4, !tbaa !11
  %968 = load ptr, ptr %46, align 8, !tbaa !5
  %969 = getelementptr inbounds float, ptr %968, i64 2
  store float %967, ptr %969, align 4, !tbaa !11
  br label %970

970:                                              ; preds = %963, %960
  %971 = load i64, ptr %73, align 8, !tbaa !9
  %972 = icmp eq i64 %971, 2
  br i1 %972, label %976, label %973

973:                                              ; preds = %970
  %974 = load i64, ptr %73, align 8, !tbaa !9
  %975 = icmp eq i64 %974, 4
  br i1 %975, label %976, label %985

976:                                              ; preds = %973, %970
  %977 = getelementptr inbounds [2 x float], ptr %69, i64 0, i64 0
  %978 = load float, ptr %977, align 4, !tbaa !11
  %979 = load ptr, ptr %47, align 8, !tbaa !5
  %980 = getelementptr inbounds float, ptr %979, i64 1
  store float %978, ptr %980, align 4, !tbaa !11
  %981 = getelementptr inbounds [2 x float], ptr %69, i64 0, i64 1
  %982 = load float, ptr %981, align 4, !tbaa !11
  %983 = load ptr, ptr %47, align 8, !tbaa !5
  %984 = getelementptr inbounds float, ptr %983, i64 2
  store float %982, ptr %984, align 4, !tbaa !11
  br label %985

985:                                              ; preds = %976, %973
  %986 = load i64, ptr %76, align 8, !tbaa !9
  %987 = icmp eq i64 %986, 1
  br i1 %987, label %988, label %993

988:                                              ; preds = %985
  %989 = load ptr, ptr %33, align 8, !tbaa !5
  %990 = load i64, ptr %989, align 8, !tbaa !9
  %991 = add nsw i64 %990, 3
  %992 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 %991, ptr %992, align 8, !tbaa !9
  br label %993

993:                                              ; preds = %988, %985
  br label %994

994:                                              ; preds = %993, %955
  br label %995

995:                                              ; preds = %994, %839
  %996 = load i64, ptr %83, align 8, !tbaa !9
  %997 = icmp ne i64 %996, 0
  br i1 %997, label %998, label %1012

998:                                              ; preds = %995
  %999 = load ptr, ptr %33, align 8, !tbaa !5
  %1000 = load ptr, ptr %48, align 8, !tbaa !5
  %1001 = load i64, ptr %80, align 8, !tbaa !9
  %1002 = getelementptr inbounds float, ptr %1000, i64 %1001
  %1003 = load ptr, ptr %48, align 8, !tbaa !5
  %1004 = load i64, ptr %93, align 8, !tbaa !9
  %1005 = getelementptr inbounds float, ptr %1003, i64 %1004
  %1006 = load ptr, ptr %33, align 8, !tbaa !5
  %1007 = load ptr, ptr %42, align 8, !tbaa !5
  %1008 = load i64, ptr %59, align 8, !tbaa !9
  %1009 = getelementptr inbounds float, ptr %1007, i64 %1008
  %1010 = load ptr, ptr %43, align 8, !tbaa !5
  %1011 = call i32 @sggbak_(ptr noundef @.str.10, ptr noundef @.str.13, ptr noundef %999, ptr noundef %71, ptr noundef %70, ptr noundef %1002, ptr noundef %1005, ptr noundef %1006, ptr noundef %1009, ptr noundef %1010, ptr noundef %76)
  br label %1012

1012:                                             ; preds = %998, %995
  %1013 = load i64, ptr %84, align 8, !tbaa !9
  %1014 = icmp ne i64 %1013, 0
  br i1 %1014, label %1015, label %1029

1015:                                             ; preds = %1012
  %1016 = load ptr, ptr %33, align 8, !tbaa !5
  %1017 = load ptr, ptr %48, align 8, !tbaa !5
  %1018 = load i64, ptr %80, align 8, !tbaa !9
  %1019 = getelementptr inbounds float, ptr %1017, i64 %1018
  %1020 = load ptr, ptr %48, align 8, !tbaa !5
  %1021 = load i64, ptr %93, align 8, !tbaa !9
  %1022 = getelementptr inbounds float, ptr %1020, i64 %1021
  %1023 = load ptr, ptr %33, align 8, !tbaa !5
  %1024 = load ptr, ptr %44, align 8, !tbaa !5
  %1025 = load i64, ptr %61, align 8, !tbaa !9
  %1026 = getelementptr inbounds float, ptr %1024, i64 %1025
  %1027 = load ptr, ptr %45, align 8, !tbaa !5
  %1028 = call i32 @sggbak_(ptr noundef @.str.10, ptr noundef @.str.16, ptr noundef %1016, ptr noundef %71, ptr noundef %70, ptr noundef %1019, ptr noundef %1022, ptr noundef %1023, ptr noundef %1026, ptr noundef %1027, ptr noundef %76)
  br label %1029

1029:                                             ; preds = %1015, %1012
  %1030 = load i64, ptr %87, align 8, !tbaa !9
  %1031 = icmp ne i64 %1030, 0
  br i1 %1031, label %1032, label %1199

1032:                                             ; preds = %1029
  %1033 = load ptr, ptr %33, align 8, !tbaa !5
  %1034 = load i64, ptr %1033, align 8, !tbaa !9
  store i64 %1034, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %1035

1035:                                             ; preds = %1195, %1032
  %1036 = load i64, ptr %65, align 8, !tbaa !9
  %1037 = load i64, ptr %62, align 8, !tbaa !9
  %1038 = icmp sle i64 %1036, %1037
  br i1 %1038, label %1039, label %1198

1039:                                             ; preds = %1035
  %1040 = load ptr, ptr %40, align 8, !tbaa !5
  %1041 = load i64, ptr %65, align 8, !tbaa !9
  %1042 = getelementptr inbounds float, ptr %1040, i64 %1041
  %1043 = load float, ptr %1042, align 4, !tbaa !11
  %1044 = fcmp une float %1043, 0.000000e+00
  br i1 %1044, label %1045, label %1194

1045:                                             ; preds = %1039
  %1046 = load ptr, ptr %39, align 8, !tbaa !5
  %1047 = load i64, ptr %65, align 8, !tbaa !9
  %1048 = getelementptr inbounds float, ptr %1046, i64 %1047
  %1049 = load float, ptr %1048, align 4, !tbaa !11
  %1050 = load float, ptr %90, align 4, !tbaa !11
  %1051 = fdiv float %1049, %1050
  %1052 = load float, ptr %99, align 4, !tbaa !11
  %1053 = load float, ptr %74, align 4, !tbaa !11
  %1054 = fdiv float %1052, %1053
  %1055 = fcmp ogt float %1051, %1054
  br i1 %1055, label %1067, label %1056

1056:                                             ; preds = %1045
  %1057 = load float, ptr %89, align 4, !tbaa !11
  %1058 = load ptr, ptr %39, align 8, !tbaa !5
  %1059 = load i64, ptr %65, align 8, !tbaa !9
  %1060 = getelementptr inbounds float, ptr %1058, i64 %1059
  %1061 = load float, ptr %1060, align 4, !tbaa !11
  %1062 = fdiv float %1057, %1061
  %1063 = load float, ptr %74, align 4, !tbaa !11
  %1064 = load float, ptr %99, align 4, !tbaa !11
  %1065 = fdiv float %1063, %1064
  %1066 = fcmp ogt float %1062, %1065
  br i1 %1066, label %1067, label %1118

1067:                                             ; preds = %1056, %1045
  %1068 = load ptr, ptr %34, align 8, !tbaa !5
  %1069 = load i64, ptr %65, align 8, !tbaa !9
  %1070 = load i64, ptr %65, align 8, !tbaa !9
  %1071 = load i64, ptr %54, align 8, !tbaa !9
  %1072 = mul nsw i64 %1070, %1071
  %1073 = add nsw i64 %1069, %1072
  %1074 = getelementptr inbounds float, ptr %1068, i64 %1073
  %1075 = load float, ptr %1074, align 4, !tbaa !11
  %1076 = load ptr, ptr %39, align 8, !tbaa !5
  %1077 = load i64, ptr %65, align 8, !tbaa !9
  %1078 = getelementptr inbounds float, ptr %1076, i64 %1077
  %1079 = load float, ptr %1078, align 4, !tbaa !11
  %1080 = fdiv float %1075, %1079
  store float %1080, ptr %64, align 4, !tbaa !11
  %1081 = load float, ptr %64, align 4, !tbaa !11
  %1082 = fcmp oge float %1081, 0.000000e+00
  br i1 %1082, label %1083, label %1085

1083:                                             ; preds = %1067
  %1084 = load float, ptr %64, align 4, !tbaa !11
  br label %1088

1085:                                             ; preds = %1067
  %1086 = load float, ptr %64, align 4, !tbaa !11
  %1087 = fneg float %1086
  br label %1088

1088:                                             ; preds = %1085, %1083
  %1089 = phi float [ %1084, %1083 ], [ %1087, %1085 ]
  %1090 = fpext float %1089 to double
  %1091 = fptrunc double %1090 to float
  %1092 = load ptr, ptr %48, align 8, !tbaa !5
  %1093 = getelementptr inbounds float, ptr %1092, i64 1
  store float %1091, ptr %1093, align 4, !tbaa !11
  %1094 = load ptr, ptr %48, align 8, !tbaa !5
  %1095 = getelementptr inbounds float, ptr %1094, i64 1
  %1096 = load float, ptr %1095, align 4, !tbaa !11
  %1097 = load ptr, ptr %41, align 8, !tbaa !5
  %1098 = load i64, ptr %65, align 8, !tbaa !9
  %1099 = getelementptr inbounds float, ptr %1097, i64 %1098
  %1100 = load float, ptr %1099, align 4, !tbaa !11
  %1101 = fmul float %1100, %1096
  store float %1101, ptr %1099, align 4, !tbaa !11
  %1102 = load ptr, ptr %48, align 8, !tbaa !5
  %1103 = getelementptr inbounds float, ptr %1102, i64 1
  %1104 = load float, ptr %1103, align 4, !tbaa !11
  %1105 = load ptr, ptr %39, align 8, !tbaa !5
  %1106 = load i64, ptr %65, align 8, !tbaa !9
  %1107 = getelementptr inbounds float, ptr %1105, i64 %1106
  %1108 = load float, ptr %1107, align 4, !tbaa !11
  %1109 = fmul float %1108, %1104
  store float %1109, ptr %1107, align 4, !tbaa !11
  %1110 = load ptr, ptr %48, align 8, !tbaa !5
  %1111 = getelementptr inbounds float, ptr %1110, i64 1
  %1112 = load float, ptr %1111, align 4, !tbaa !11
  %1113 = load ptr, ptr %40, align 8, !tbaa !5
  %1114 = load i64, ptr %65, align 8, !tbaa !9
  %1115 = getelementptr inbounds float, ptr %1113, i64 %1114
  %1116 = load float, ptr %1115, align 4, !tbaa !11
  %1117 = fmul float %1116, %1112
  store float %1117, ptr %1115, align 4, !tbaa !11
  br label %1193

1118:                                             ; preds = %1056
  %1119 = load ptr, ptr %40, align 8, !tbaa !5
  %1120 = load i64, ptr %65, align 8, !tbaa !9
  %1121 = getelementptr inbounds float, ptr %1119, i64 %1120
  %1122 = load float, ptr %1121, align 4, !tbaa !11
  %1123 = load float, ptr %90, align 4, !tbaa !11
  %1124 = fdiv float %1122, %1123
  %1125 = load float, ptr %99, align 4, !tbaa !11
  %1126 = load float, ptr %74, align 4, !tbaa !11
  %1127 = fdiv float %1125, %1126
  %1128 = fcmp ogt float %1124, %1127
  br i1 %1128, label %1140, label %1129

1129:                                             ; preds = %1118
  %1130 = load float, ptr %89, align 4, !tbaa !11
  %1131 = load ptr, ptr %40, align 8, !tbaa !5
  %1132 = load i64, ptr %65, align 8, !tbaa !9
  %1133 = getelementptr inbounds float, ptr %1131, i64 %1132
  %1134 = load float, ptr %1133, align 4, !tbaa !11
  %1135 = fdiv float %1130, %1134
  %1136 = load float, ptr %74, align 4, !tbaa !11
  %1137 = load float, ptr %99, align 4, !tbaa !11
  %1138 = fdiv float %1136, %1137
  %1139 = fcmp ogt float %1135, %1138
  br i1 %1139, label %1140, label %1192

1140:                                             ; preds = %1129, %1118
  %1141 = load ptr, ptr %34, align 8, !tbaa !5
  %1142 = load i64, ptr %65, align 8, !tbaa !9
  %1143 = load i64, ptr %65, align 8, !tbaa !9
  %1144 = add nsw i64 %1143, 1
  %1145 = load i64, ptr %54, align 8, !tbaa !9
  %1146 = mul nsw i64 %1144, %1145
  %1147 = add nsw i64 %1142, %1146
  %1148 = getelementptr inbounds float, ptr %1141, i64 %1147
  %1149 = load float, ptr %1148, align 4, !tbaa !11
  %1150 = load ptr, ptr %40, align 8, !tbaa !5
  %1151 = load i64, ptr %65, align 8, !tbaa !9
  %1152 = getelementptr inbounds float, ptr %1150, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !11
  %1154 = fdiv float %1149, %1153
  store float %1154, ptr %64, align 4, !tbaa !11
  %1155 = load float, ptr %64, align 4, !tbaa !11
  %1156 = fcmp oge float %1155, 0.000000e+00
  br i1 %1156, label %1157, label %1159

1157:                                             ; preds = %1140
  %1158 = load float, ptr %64, align 4, !tbaa !11
  br label %1162

1159:                                             ; preds = %1140
  %1160 = load float, ptr %64, align 4, !tbaa !11
  %1161 = fneg float %1160
  br label %1162

1162:                                             ; preds = %1159, %1157
  %1163 = phi float [ %1158, %1157 ], [ %1161, %1159 ]
  %1164 = fpext float %1163 to double
  %1165 = fptrunc double %1164 to float
  %1166 = load ptr, ptr %48, align 8, !tbaa !5
  %1167 = getelementptr inbounds float, ptr %1166, i64 1
  store float %1165, ptr %1167, align 4, !tbaa !11
  %1168 = load ptr, ptr %48, align 8, !tbaa !5
  %1169 = getelementptr inbounds float, ptr %1168, i64 1
  %1170 = load float, ptr %1169, align 4, !tbaa !11
  %1171 = load ptr, ptr %41, align 8, !tbaa !5
  %1172 = load i64, ptr %65, align 8, !tbaa !9
  %1173 = getelementptr inbounds float, ptr %1171, i64 %1172
  %1174 = load float, ptr %1173, align 4, !tbaa !11
  %1175 = fmul float %1174, %1170
  store float %1175, ptr %1173, align 4, !tbaa !11
  %1176 = load ptr, ptr %48, align 8, !tbaa !5
  %1177 = getelementptr inbounds float, ptr %1176, i64 1
  %1178 = load float, ptr %1177, align 4, !tbaa !11
  %1179 = load ptr, ptr %39, align 8, !tbaa !5
  %1180 = load i64, ptr %65, align 8, !tbaa !9
  %1181 = getelementptr inbounds float, ptr %1179, i64 %1180
  %1182 = load float, ptr %1181, align 4, !tbaa !11
  %1183 = fmul float %1182, %1178
  store float %1183, ptr %1181, align 4, !tbaa !11
  %1184 = load ptr, ptr %48, align 8, !tbaa !5
  %1185 = getelementptr inbounds float, ptr %1184, i64 1
  %1186 = load float, ptr %1185, align 4, !tbaa !11
  %1187 = load ptr, ptr %40, align 8, !tbaa !5
  %1188 = load i64, ptr %65, align 8, !tbaa !9
  %1189 = getelementptr inbounds float, ptr %1187, i64 %1188
  %1190 = load float, ptr %1189, align 4, !tbaa !11
  %1191 = fmul float %1190, %1186
  store float %1191, ptr %1189, align 4, !tbaa !11
  br label %1192

1192:                                             ; preds = %1162, %1129
  br label %1193

1193:                                             ; preds = %1192, %1088
  br label %1194

1194:                                             ; preds = %1193, %1039
  br label %1195

1195:                                             ; preds = %1194
  %1196 = load i64, ptr %65, align 8, !tbaa !9
  %1197 = add nsw i64 %1196, 1
  store i64 %1197, ptr %65, align 8, !tbaa !9
  br label %1035, !llvm.loop !15

1198:                                             ; preds = %1035
  br label %1199

1199:                                             ; preds = %1198, %1029
  %1200 = load i64, ptr %88, align 8, !tbaa !9
  %1201 = icmp ne i64 %1200, 0
  br i1 %1201, label %1202, label %1294

1202:                                             ; preds = %1199
  %1203 = load ptr, ptr %33, align 8, !tbaa !5
  %1204 = load i64, ptr %1203, align 8, !tbaa !9
  store i64 %1204, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %1205

1205:                                             ; preds = %1290, %1202
  %1206 = load i64, ptr %65, align 8, !tbaa !9
  %1207 = load i64, ptr %62, align 8, !tbaa !9
  %1208 = icmp sle i64 %1206, %1207
  br i1 %1208, label %1209, label %1293

1209:                                             ; preds = %1205
  %1210 = load ptr, ptr %40, align 8, !tbaa !5
  %1211 = load i64, ptr %65, align 8, !tbaa !9
  %1212 = getelementptr inbounds float, ptr %1210, i64 %1211
  %1213 = load float, ptr %1212, align 4, !tbaa !11
  %1214 = fcmp une float %1213, 0.000000e+00
  br i1 %1214, label %1215, label %1289

1215:                                             ; preds = %1209
  %1216 = load ptr, ptr %41, align 8, !tbaa !5
  %1217 = load i64, ptr %65, align 8, !tbaa !9
  %1218 = getelementptr inbounds float, ptr %1216, i64 %1217
  %1219 = load float, ptr %1218, align 4, !tbaa !11
  %1220 = load float, ptr %90, align 4, !tbaa !11
  %1221 = fdiv float %1219, %1220
  %1222 = load float, ptr %100, align 4, !tbaa !11
  %1223 = load float, ptr %75, align 4, !tbaa !11
  %1224 = fdiv float %1222, %1223
  %1225 = fcmp ogt float %1221, %1224
  br i1 %1225, label %1237, label %1226

1226:                                             ; preds = %1215
  %1227 = load float, ptr %89, align 4, !tbaa !11
  %1228 = load ptr, ptr %41, align 8, !tbaa !5
  %1229 = load i64, ptr %65, align 8, !tbaa !9
  %1230 = getelementptr inbounds float, ptr %1228, i64 %1229
  %1231 = load float, ptr %1230, align 4, !tbaa !11
  %1232 = fdiv float %1227, %1231
  %1233 = load float, ptr %75, align 4, !tbaa !11
  %1234 = load float, ptr %100, align 4, !tbaa !11
  %1235 = fdiv float %1233, %1234
  %1236 = fcmp ogt float %1232, %1235
  br i1 %1236, label %1237, label %1288

1237:                                             ; preds = %1226, %1215
  %1238 = load ptr, ptr %36, align 8, !tbaa !5
  %1239 = load i64, ptr %65, align 8, !tbaa !9
  %1240 = load i64, ptr %65, align 8, !tbaa !9
  %1241 = load i64, ptr %56, align 8, !tbaa !9
  %1242 = mul nsw i64 %1240, %1241
  %1243 = add nsw i64 %1239, %1242
  %1244 = getelementptr inbounds float, ptr %1238, i64 %1243
  %1245 = load float, ptr %1244, align 4, !tbaa !11
  %1246 = load ptr, ptr %41, align 8, !tbaa !5
  %1247 = load i64, ptr %65, align 8, !tbaa !9
  %1248 = getelementptr inbounds float, ptr %1246, i64 %1247
  %1249 = load float, ptr %1248, align 4, !tbaa !11
  %1250 = fdiv float %1245, %1249
  store float %1250, ptr %64, align 4, !tbaa !11
  %1251 = load float, ptr %64, align 4, !tbaa !11
  %1252 = fcmp oge float %1251, 0.000000e+00
  br i1 %1252, label %1253, label %1255

1253:                                             ; preds = %1237
  %1254 = load float, ptr %64, align 4, !tbaa !11
  br label %1258

1255:                                             ; preds = %1237
  %1256 = load float, ptr %64, align 4, !tbaa !11
  %1257 = fneg float %1256
  br label %1258

1258:                                             ; preds = %1255, %1253
  %1259 = phi float [ %1254, %1253 ], [ %1257, %1255 ]
  %1260 = fpext float %1259 to double
  %1261 = fptrunc double %1260 to float
  %1262 = load ptr, ptr %48, align 8, !tbaa !5
  %1263 = getelementptr inbounds float, ptr %1262, i64 1
  store float %1261, ptr %1263, align 4, !tbaa !11
  %1264 = load ptr, ptr %48, align 8, !tbaa !5
  %1265 = getelementptr inbounds float, ptr %1264, i64 1
  %1266 = load float, ptr %1265, align 4, !tbaa !11
  %1267 = load ptr, ptr %41, align 8, !tbaa !5
  %1268 = load i64, ptr %65, align 8, !tbaa !9
  %1269 = getelementptr inbounds float, ptr %1267, i64 %1268
  %1270 = load float, ptr %1269, align 4, !tbaa !11
  %1271 = fmul float %1270, %1266
  store float %1271, ptr %1269, align 4, !tbaa !11
  %1272 = load ptr, ptr %48, align 8, !tbaa !5
  %1273 = getelementptr inbounds float, ptr %1272, i64 1
  %1274 = load float, ptr %1273, align 4, !tbaa !11
  %1275 = load ptr, ptr %39, align 8, !tbaa !5
  %1276 = load i64, ptr %65, align 8, !tbaa !9
  %1277 = getelementptr inbounds float, ptr %1275, i64 %1276
  %1278 = load float, ptr %1277, align 4, !tbaa !11
  %1279 = fmul float %1278, %1274
  store float %1279, ptr %1277, align 4, !tbaa !11
  %1280 = load ptr, ptr %48, align 8, !tbaa !5
  %1281 = getelementptr inbounds float, ptr %1280, i64 1
  %1282 = load float, ptr %1281, align 4, !tbaa !11
  %1283 = load ptr, ptr %40, align 8, !tbaa !5
  %1284 = load i64, ptr %65, align 8, !tbaa !9
  %1285 = getelementptr inbounds float, ptr %1283, i64 %1284
  %1286 = load float, ptr %1285, align 4, !tbaa !11
  %1287 = fmul float %1286, %1282
  store float %1287, ptr %1285, align 4, !tbaa !11
  br label %1288

1288:                                             ; preds = %1258, %1226
  br label %1289

1289:                                             ; preds = %1288, %1209
  br label %1290

1290:                                             ; preds = %1289
  %1291 = load i64, ptr %65, align 8, !tbaa !9
  %1292 = add nsw i64 %1291, 1
  store i64 %1292, ptr %65, align 8, !tbaa !9
  br label %1205, !llvm.loop !16

1293:                                             ; preds = %1205
  br label %1294

1294:                                             ; preds = %1293, %1199
  %1295 = load i64, ptr %87, align 8, !tbaa !9
  %1296 = icmp ne i64 %1295, 0
  br i1 %1296, label %1297, label %1315

1297:                                             ; preds = %1294
  %1298 = load ptr, ptr %33, align 8, !tbaa !5
  %1299 = load ptr, ptr %33, align 8, !tbaa !5
  %1300 = load ptr, ptr %34, align 8, !tbaa !5
  %1301 = load i64, ptr %55, align 8, !tbaa !9
  %1302 = getelementptr inbounds float, ptr %1300, i64 %1301
  %1303 = load ptr, ptr %35, align 8, !tbaa !5
  %1304 = call i32 @slascl_(ptr noundef @.str.17, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %99, ptr noundef %74, ptr noundef %1298, ptr noundef %1299, ptr noundef %1302, ptr noundef %1303, ptr noundef %76)
  %1305 = load ptr, ptr %33, align 8, !tbaa !5
  %1306 = load ptr, ptr %39, align 8, !tbaa !5
  %1307 = getelementptr inbounds float, ptr %1306, i64 1
  %1308 = load ptr, ptr %33, align 8, !tbaa !5
  %1309 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %99, ptr noundef %74, ptr noundef %1305, ptr noundef @c__1, ptr noundef %1307, ptr noundef %1308, ptr noundef %76)
  %1310 = load ptr, ptr %33, align 8, !tbaa !5
  %1311 = load ptr, ptr %40, align 8, !tbaa !5
  %1312 = getelementptr inbounds float, ptr %1311, i64 1
  %1313 = load ptr, ptr %33, align 8, !tbaa !5
  %1314 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %99, ptr noundef %74, ptr noundef %1310, ptr noundef @c__1, ptr noundef %1312, ptr noundef %1313, ptr noundef %76)
  br label %1315

1315:                                             ; preds = %1297, %1294
  %1316 = load i64, ptr %88, align 8, !tbaa !9
  %1317 = icmp ne i64 %1316, 0
  br i1 %1317, label %1318, label %1331

1318:                                             ; preds = %1315
  %1319 = load ptr, ptr %33, align 8, !tbaa !5
  %1320 = load ptr, ptr %33, align 8, !tbaa !5
  %1321 = load ptr, ptr %36, align 8, !tbaa !5
  %1322 = load i64, ptr %57, align 8, !tbaa !9
  %1323 = getelementptr inbounds float, ptr %1321, i64 %1322
  %1324 = load ptr, ptr %37, align 8, !tbaa !5
  %1325 = call i32 @slascl_(ptr noundef @.str.18, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %100, ptr noundef %75, ptr noundef %1319, ptr noundef %1320, ptr noundef %1323, ptr noundef %1324, ptr noundef %76)
  %1326 = load ptr, ptr %33, align 8, !tbaa !5
  %1327 = load ptr, ptr %41, align 8, !tbaa !5
  %1328 = getelementptr inbounds float, ptr %1327, i64 1
  %1329 = load ptr, ptr %33, align 8, !tbaa !5
  %1330 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %100, ptr noundef %75, ptr noundef %1326, ptr noundef @c__1, ptr noundef %1328, ptr noundef %1329, ptr noundef %76)
  br label %1331

1331:                                             ; preds = %1318, %1315
  %1332 = load i64, ptr %105, align 8, !tbaa !9
  %1333 = icmp ne i64 %1332, 0
  br i1 %1333, label %1334, label %1419

1334:                                             ; preds = %1331
  store i64 1, ptr %97, align 8, !tbaa !9
  store i64 1, ptr %86, align 8, !tbaa !9
  %1335 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 0, ptr %1335, align 8, !tbaa !9
  store i64 0, ptr %66, align 8, !tbaa !9
  %1336 = load ptr, ptr %33, align 8, !tbaa !5
  %1337 = load i64, ptr %1336, align 8, !tbaa !9
  store i64 %1337, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %1338

1338:                                             ; preds = %1415, %1334
  %1339 = load i64, ptr %65, align 8, !tbaa !9
  %1340 = load i64, ptr %62, align 8, !tbaa !9
  %1341 = icmp sle i64 %1339, %1340
  br i1 %1341, label %1342, label %1418

1342:                                             ; preds = %1338
  %1343 = load ptr, ptr %31, align 8, !tbaa !5
  %1344 = load ptr, ptr %39, align 8, !tbaa !5
  %1345 = load i64, ptr %65, align 8, !tbaa !9
  %1346 = getelementptr inbounds float, ptr %1344, i64 %1345
  %1347 = load ptr, ptr %40, align 8, !tbaa !5
  %1348 = load i64, ptr %65, align 8, !tbaa !9
  %1349 = getelementptr inbounds float, ptr %1347, i64 %1348
  %1350 = load ptr, ptr %41, align 8, !tbaa !5
  %1351 = load i64, ptr %65, align 8, !tbaa !9
  %1352 = getelementptr inbounds float, ptr %1350, i64 %1351
  %1353 = call i64 (ptr, ptr, ptr, ...) %1343(ptr noundef %1346, ptr noundef %1349, ptr noundef %1352)
  store i64 %1353, ptr %82, align 8, !tbaa !9
  %1354 = load ptr, ptr %40, align 8, !tbaa !5
  %1355 = load i64, ptr %65, align 8, !tbaa !9
  %1356 = getelementptr inbounds float, ptr %1354, i64 %1355
  %1357 = load float, ptr %1356, align 4, !tbaa !11
  %1358 = fcmp oeq float %1357, 0.000000e+00
  br i1 %1358, label %1359, label %1378

1359:                                             ; preds = %1342
  %1360 = load i64, ptr %82, align 8, !tbaa !9
  %1361 = icmp ne i64 %1360, 0
  br i1 %1361, label %1362, label %1366

1362:                                             ; preds = %1359
  %1363 = load ptr, ptr %38, align 8, !tbaa !5
  %1364 = load i64, ptr %1363, align 8, !tbaa !9
  %1365 = add nsw i64 %1364, 1
  store i64 %1365, ptr %1363, align 8, !tbaa !9
  br label %1366

1366:                                             ; preds = %1362, %1359
  store i64 0, ptr %66, align 8, !tbaa !9
  %1367 = load i64, ptr %82, align 8, !tbaa !9
  %1368 = icmp ne i64 %1367, 0
  br i1 %1368, label %1369, label %1377

1369:                                             ; preds = %1366
  %1370 = load i64, ptr %97, align 8, !tbaa !9
  %1371 = icmp ne i64 %1370, 0
  br i1 %1371, label %1377, label %1372

1372:                                             ; preds = %1369
  %1373 = load ptr, ptr %33, align 8, !tbaa !5
  %1374 = load i64, ptr %1373, align 8, !tbaa !9
  %1375 = add nsw i64 %1374, 2
  %1376 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 %1375, ptr %1376, align 8, !tbaa !9
  br label %1377

1377:                                             ; preds = %1372, %1369, %1366
  br label %1412

1378:                                             ; preds = %1342
  %1379 = load i64, ptr %66, align 8, !tbaa !9
  %1380 = icmp eq i64 %1379, 1
  br i1 %1380, label %1381, label %1410

1381:                                             ; preds = %1378
  %1382 = load i64, ptr %82, align 8, !tbaa !9
  %1383 = icmp ne i64 %1382, 0
  br i1 %1383, label %1387, label %1384

1384:                                             ; preds = %1381
  %1385 = load i64, ptr %97, align 8, !tbaa !9
  %1386 = icmp ne i64 %1385, 0
  br label %1387

1387:                                             ; preds = %1384, %1381
  %1388 = phi i1 [ true, %1381 ], [ %1386, %1384 ]
  %1389 = zext i1 %1388 to i32
  %1390 = sext i32 %1389 to i64
  store i64 %1390, ptr %82, align 8, !tbaa !9
  %1391 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %1391, ptr %97, align 8, !tbaa !9
  %1392 = load i64, ptr %82, align 8, !tbaa !9
  %1393 = icmp ne i64 %1392, 0
  br i1 %1393, label %1394, label %1398

1394:                                             ; preds = %1387
  %1395 = load ptr, ptr %38, align 8, !tbaa !5
  %1396 = load i64, ptr %1395, align 8, !tbaa !9
  %1397 = add nsw i64 %1396, 2
  store i64 %1397, ptr %1395, align 8, !tbaa !9
  br label %1398

1398:                                             ; preds = %1394, %1387
  store i64 -1, ptr %66, align 8, !tbaa !9
  %1399 = load i64, ptr %82, align 8, !tbaa !9
  %1400 = icmp ne i64 %1399, 0
  br i1 %1400, label %1401, label %1409

1401:                                             ; preds = %1398
  %1402 = load i64, ptr %86, align 8, !tbaa !9
  %1403 = icmp ne i64 %1402, 0
  br i1 %1403, label %1409, label %1404

1404:                                             ; preds = %1401
  %1405 = load ptr, ptr %33, align 8, !tbaa !5
  %1406 = load i64, ptr %1405, align 8, !tbaa !9
  %1407 = add nsw i64 %1406, 2
  %1408 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 %1407, ptr %1408, align 8, !tbaa !9
  br label %1409

1409:                                             ; preds = %1404, %1401, %1398
  br label %1411

1410:                                             ; preds = %1378
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %1411

1411:                                             ; preds = %1410, %1409
  br label %1412

1412:                                             ; preds = %1411, %1377
  %1413 = load i64, ptr %97, align 8, !tbaa !9
  store i64 %1413, ptr %86, align 8, !tbaa !9
  %1414 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %1414, ptr %97, align 8, !tbaa !9
  br label %1415

1415:                                             ; preds = %1412
  %1416 = load i64, ptr %65, align 8, !tbaa !9
  %1417 = add nsw i64 %1416, 1
  store i64 %1417, ptr %65, align 8, !tbaa !9
  br label %1338, !llvm.loop !17

1418:                                             ; preds = %1338
  br label %1419

1419:                                             ; preds = %1418, %1331
  br label %1420

1420:                                             ; preds = %1419, %838
  %1421 = load i64, ptr %102, align 8, !tbaa !9
  %1422 = sitofp i64 %1421 to float
  %1423 = load ptr, ptr %48, align 8, !tbaa !5
  %1424 = getelementptr inbounds float, ptr %1423, i64 1
  store float %1422, ptr %1424, align 4, !tbaa !11
  %1425 = load i64, ptr %98, align 8, !tbaa !9
  %1426 = load ptr, ptr %50, align 8, !tbaa !5
  %1427 = getelementptr inbounds i64, ptr %1426, i64 1
  store i64 %1425, ptr %1427, align 8, !tbaa !9
  store i32 0, ptr %27, align 4
  store i32 1, ptr %108, align 4
  br label %1428

1428:                                             ; preds = %1420, %497, %491, %483
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  %1429 = load i32, ptr %27, align 4
  ret i32 %1429
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 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_b42 = external hidden global float, align 4
@c_b43 = 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 @sggesx_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr nocapture noundef writeonly %18, ptr nocapture noundef writeonly %19, ptr noundef %20, ptr nocapture noundef readonly %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr nocapture noundef %25) local_unnamed_addr #0 {
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca [2 x float], align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %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 float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #5
  %46 = load i64, ptr %7, align 8, !tbaa !5
  %47 = xor i64 %46, -1
  %48 = getelementptr inbounds float, ptr %6, i64 %47
  %49 = load i64, ptr %9, align 8, !tbaa !5
  %50 = xor i64 %49, -1
  %51 = getelementptr inbounds float, ptr %8, i64 %50
  %52 = getelementptr inbounds i8, ptr %11, i64 -4
  %53 = getelementptr inbounds i8, ptr %12, i64 -4
  %54 = getelementptr inbounds i8, ptr %13, i64 -4
  %55 = load i64, ptr %15, align 8, !tbaa !5
  %56 = xor i64 %55, -1
  %57 = getelementptr inbounds float, ptr %14, i64 %56
  %58 = getelementptr inbounds i8, ptr %20, i64 -4
  %59 = getelementptr inbounds i8, ptr %24, i64 -8
  %60 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %.not = icmp eq i64 %60, 0
  br i1 %.not, label %62, label %61

61:                                               ; preds = %26
  store i64 0, ptr %39, align 8, !tbaa !5
  br label %66

62:                                               ; preds = %26
  %63 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not537 = icmp eq i64 %63, 0
  br i1 %.not537, label %65, label %64

64:                                               ; preds = %62
  store i64 1, ptr %39, align 8, !tbaa !5
  br label %66

65:                                               ; preds = %62
  store i64 0, ptr %39, align 8, !tbaa !5
  br label %66

66:                                               ; preds = %64, %65, %61
  %.not545 = phi i1 [ false, %61 ], [ true, %64 ], [ false, %65 ]
  %.not549 = phi i1 [ true, %61 ], [ false, %64 ], [ true, %65 ]
  %67 = phi i1 [ false, %61 ], [ false, %64 ], [ true, %65 ]
  %68 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %.not538 = icmp eq i64 %68, 0
  br i1 %.not538, label %70, label %69

69:                                               ; preds = %66
  store i64 0, ptr %40, align 8, !tbaa !5
  br label %74

70:                                               ; preds = %66
  %71 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %.not539 = icmp eq i64 %71, 0
  br i1 %.not539, label %73, label %72

72:                                               ; preds = %70
  store i64 1, ptr %40, align 8, !tbaa !5
  br label %74

73:                                               ; preds = %70
  store i64 0, ptr %40, align 8, !tbaa !5
  br label %74

74:                                               ; preds = %72, %73, %69
  %.not546 = phi i1 [ false, %69 ], [ true, %72 ], [ false, %73 ]
  %75 = phi i1 [ false, %69 ], [ false, %72 ], [ true, %73 ]
  %76 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #5
  %77 = tail call i64 @lsame_(ptr noundef %4, ptr noundef nonnull @.str) #5
  %78 = tail call i64 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.3) #5
  %79 = tail call i64 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.1) #5
  %80 = tail call i64 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.4) #5
  %81 = load i64, ptr %21, align 8, !tbaa !5
  %82 = icmp eq i64 %81, -1
  br i1 %82, label %86, label %83

83:                                               ; preds = %74
  %84 = load i64, ptr %23, align 8, !tbaa !5
  %85 = icmp eq i64 %84, -1
  br label %86

86:                                               ; preds = %83, %74
  %87 = phi i1 [ true, %74 ], [ %85, %83 ]
  %88 = icmp eq i64 %77, 0
  br i1 %88, label %90, label %89

89:                                               ; preds = %86
  store i64 0, ptr %34, align 8, !tbaa !5
  br label %96

90:                                               ; preds = %86
  %.not540 = icmp eq i64 %78, 0
  br i1 %.not540, label %92, label %91

91:                                               ; preds = %90
  store i64 1, ptr %34, align 8, !tbaa !5
  br label %96

92:                                               ; preds = %90
  %.not541 = icmp eq i64 %79, 0
  br i1 %.not541, label %94, label %93

93:                                               ; preds = %92
  store i64 2, ptr %34, align 8, !tbaa !5
  br label %96

94:                                               ; preds = %92
  %.not542 = icmp eq i64 %80, 0
  br i1 %.not542, label %96, label %95

95:                                               ; preds = %94
  store i64 4, ptr %34, align 8, !tbaa !5
  br label %96

96:                                               ; preds = %91, %94, %95, %93, %89
  %97 = phi i1 [ true, %91 ], [ false, %94 ], [ true, %95 ], [ true, %93 ], [ false, %89 ]
  store i64 0, ptr %25, align 8, !tbaa !5
  %brmerge = or i1 %67, %75
  %.mux = select i1 %67, i64 -1, i64 -2
  br i1 %brmerge, label %.thread583.sink.split, label %98

98:                                               ; preds = %96
  %.not544 = icmp eq i64 %76, 0
  br i1 %.not544, label %99, label %101

99:                                               ; preds = %98
  %100 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #5
  %.not543 = icmp eq i64 %100, 0
  br i1 %.not543, label %.thread583.sink.split, label %101

101:                                              ; preds = %99, %98
  %102 = icmp eq i64 %78, 0
  %or.cond.not = select i1 %88, i1 %102, i1 false
  %103 = icmp eq i64 %79, 0
  %or.cond3 = select i1 %or.cond.not, i1 %103, i1 false
  %104 = icmp eq i64 %80, 0
  %or.cond5 = select i1 %or.cond3, i1 %104, i1 false
  %105 = or i64 %77, %76
  %or.cond7.not = icmp eq i64 %105, 0
  %or.cond570 = select i1 %or.cond5, i1 true, i1 %or.cond7.not
  br i1 %or.cond570, label %.thread583.sink.split, label %106

106:                                              ; preds = %101
  %107 = load i64, ptr %5, align 8, !tbaa !5
  %108 = icmp slt i64 %107, 0
  br i1 %108, label %.thread583.sink.split, label %109

109:                                              ; preds = %106
  %110 = load i64, ptr %7, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %107, i64 1)
  %111 = icmp slt i64 %110, %spec.select
  br i1 %111, label %.thread583.sink.split, label %112

112:                                              ; preds = %109
  %113 = load i64, ptr %9, align 8, !tbaa !5
  %114 = icmp slt i64 %113, %spec.select
  br i1 %114, label %.thread583.sink.split, label %115

115:                                              ; preds = %112
  %116 = load i64, ptr %15, align 8, !tbaa !5
  %117 = icmp slt i64 %116, 1
  %118 = icmp ult i64 %116, %107
  %or.cond605 = and i1 %118, %.not545
  %or.cond643 = or i1 %117, %or.cond605
  br i1 %or.cond643, label %.thread583.sink.split, label %119

119:                                              ; preds = %115
  %120 = load i64, ptr %17, align 8, !tbaa !5
  %121 = icmp slt i64 %120, 1
  %122 = icmp ult i64 %120, %107
  %or.cond606 = and i1 %122, %.not546
  %or.cond644 = or i1 %121, %or.cond606
  br i1 %or.cond644, label %.thread583.sink.split, label %123

123:                                              ; preds = %119
  %.pr = load i64, ptr %25, align 8, !tbaa !5
  %124 = icmp eq i64 %.pr, 0
  br i1 %124, label %125, label %.thread583

125:                                              ; preds = %123
  %.not642 = icmp eq i64 %107, 0
  br i1 %.not642, label %154, label %126

126:                                              ; preds = %125
  %127 = shl i64 %107, 3
  %128 = mul nuw nsw i64 %107, 6
  %129 = add nuw nsw i64 %128, 16
  %130 = tail call i64 @llvm.smax.i64(i64 %127, i64 %129)
  %131 = sub nsw i64 %130, %107
  %132 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef nonnull %5, ptr noundef nonnull @c__0) #5
  %133 = mul nsw i64 %132, %107
  %134 = add nsw i64 %131, %133
  store i64 %134, ptr %27, align 8, !tbaa !5
  %135 = load i64, ptr %5, align 8, !tbaa !5
  %136 = sub nsw i64 %130, %135
  %137 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef nonnull %5, ptr noundef nonnull @c_n1) #5
  %138 = mul nsw i64 %137, %135
  %139 = add nsw i64 %138, %136
  store i64 %139, ptr %28, align 8, !tbaa !5
  %140 = tail call i64 @llvm.smax.i64(i64 %134, i64 %139)
  br i1 %.not549, label %148, label %141

141:                                              ; preds = %126
  store i64 %140, ptr %27, align 8, !tbaa !5
  %142 = load i64, ptr %5, align 8, !tbaa !5
  %143 = sub nsw i64 %130, %142
  %144 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef nonnull %5, ptr noundef nonnull @c_n1) #5
  %145 = mul nsw i64 %144, %142
  %146 = add nsw i64 %145, %143
  store i64 %146, ptr %28, align 8, !tbaa !5
  %147 = tail call i64 @llvm.smax.i64(i64 %140, i64 %146)
  br label %148

148:                                              ; preds = %141, %126
  %.0497 = phi i64 [ %147, %141 ], [ %140, %126 ]
  br i1 %97, label %149, label %154

149:                                              ; preds = %148
  store i64 %.0497, ptr %27, align 8, !tbaa !5
  %150 = load i64, ptr %5, align 8, !tbaa !5
  %151 = mul nsw i64 %150, %150
  %152 = lshr i64 %151, 1
  store i64 %152, ptr %28, align 8, !tbaa !5
  %153 = tail call i64 @llvm.smax.i64(i64 %.0497, i64 %152)
  br label %154

154:                                              ; preds = %125, %148, %149
  %.0509 = phi i64 [ %153, %149 ], [ %.0497, %148 ], [ 1, %125 ]
  %.0498 = phi i64 [ %130, %149 ], [ %130, %148 ], [ 1, %125 ]
  %.1 = phi i64 [ %.0497, %149 ], [ %.0497, %148 ], [ 1, %125 ]
  %155 = sitofp i64 %.0509 to float
  store float %155, ptr %20, align 4, !tbaa !9
  br i1 %88, label %156, label %160

156:                                              ; preds = %154
  %157 = load i64, ptr %5, align 8, !tbaa !5
  %158 = icmp eq i64 %157, 0
  %159 = add nsw i64 %157, 6
  %spec.select577 = select i1 %158, i64 1, i64 %159
  br label %160

160:                                              ; preds = %156, %154
  %.0499 = phi i64 [ 1, %154 ], [ %spec.select577, %156 ]
  store i64 %.0499, ptr %22, align 8, !tbaa !5
  %161 = load i64, ptr %21, align 8, !tbaa !5
  %162 = icmp sge i64 %161, %.0498
  %or.cond9 = select i1 %162, i1 true, i1 %87
  br i1 %or.cond9, label %163, label %.thread583.sink.split

163:                                              ; preds = %160
  %164 = load i64, ptr %23, align 8, !tbaa !5
  %165 = icmp sge i64 %164, %.0499
  %or.cond11 = select i1 %165, i1 true, i1 %87
  br i1 %or.cond11, label %.thread, label %.thread583.sink.split

.thread:                                          ; preds = %163
  %.pr579.pr = load i64, ptr %25, align 8, !tbaa !5
  %.not552 = icmp eq i64 %.pr579.pr, 0
  br i1 %.not552, label %169, label %.thread583

.thread583.sink.split:                            ; preds = %96, %163, %160, %119, %115, %112, %109, %106, %101, %99
  %.sink = phi i64 [ %.mux, %96 ], [ -3, %99 ], [ -5, %101 ], [ -6, %106 ], [ -8, %109 ], [ -10, %112 ], [ -16, %115 ], [ -18, %119 ], [ -22, %160 ], [ -24, %163 ]
  store i64 %.sink, ptr %25, align 8, !tbaa !5
  br label %.thread583

.thread583:                                       ; preds = %.thread583.sink.split, %123, %.thread
  %166 = phi i64 [ %.pr579.pr, %.thread ], [ %.pr, %123 ], [ %.sink, %.thread583.sink.split ]
  %167 = sub nsw i64 0, %166
  store i64 %167, ptr %27, align 8, !tbaa !5
  %168 = call i32 @xerbla_(ptr noundef nonnull @.str.9, ptr noundef nonnull %27) #5
  br label %467

169:                                              ; preds = %.thread
  br i1 %87, label %467, label %170

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

173:                                              ; preds = %170
  store i64 0, ptr %10, align 8, !tbaa !5
  br label %467

174:                                              ; preds = %170
  %175 = tail call double @slamch_(ptr noundef nonnull @.str.10) #5
  %176 = fptrunc double %175 to float
  %177 = tail call double @slamch_(ptr noundef nonnull @.str.2) #5
  %178 = fptrunc double %177 to float
  store float %178, ptr %42, align 4, !tbaa !9
  %179 = fdiv float 1.000000e+00, %178
  store float %179, ptr %43, align 4, !tbaa !9
  %180 = call i32 @slabad_(ptr noundef nonnull %42, ptr noundef nonnull %43) #5
  %181 = load float, ptr %42, align 4, !tbaa !9
  %182 = fpext float %181 to double
  %183 = call double @sqrt(double noundef %182) #5
  %184 = fpext float %176 to double
  %185 = fdiv double %183, %184
  %186 = fptrunc double %185 to float
  %187 = fdiv float 1.000000e+00, %186
  %188 = call double @slange_(ptr noundef nonnull @.str.11, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %20) #5
  %189 = fptrunc double %188 to float
  store float %189, ptr %35, align 4, !tbaa !9
  %190 = fcmp ogt float %189, 0.000000e+00
  %191 = fcmp olt float %189, %186
  %or.cond572 = select i1 %190, i1 %191, i1 false
  br i1 %or.cond572, label %194, label %192

192:                                              ; preds = %174
  %193 = fcmp olt float %187, %189
  br i1 %193, label %194, label %196

194:                                              ; preds = %192, %174
  %storemerge = phi float [ %186, %174 ], [ %187, %192 ]
  store float %storemerge, ptr %44, align 4, !tbaa !9
  %195 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %35, ptr noundef nonnull %44, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %37) #5
  br label %196

196:                                              ; preds = %192, %194
  %.not553591 = phi i1 [ false, %194 ], [ true, %192 ]
  %197 = call double @slange_(ptr noundef nonnull @.str.11, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %20) #5
  %198 = fptrunc double %197 to float
  store float %198, ptr %36, align 4, !tbaa !9
  %199 = fcmp ogt float %198, 0.000000e+00
  %200 = fcmp olt float %198, %186
  %or.cond573 = select i1 %199, i1 %200, i1 false
  br i1 %or.cond573, label %203, label %201

201:                                              ; preds = %196
  %202 = fcmp olt float %187, %198
  br i1 %202, label %203, label %205

203:                                              ; preds = %201, %196
  %storemerge609 = phi float [ %186, %196 ], [ %187, %201 ]
  store float %storemerge609, ptr %45, align 4, !tbaa !9
  %204 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %45, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %37) #5
  br label %205

205:                                              ; preds = %201, %203
  %.not554596 = phi i1 [ false, %203 ], [ true, %201 ]
  %206 = load i64, ptr %5, align 8, !tbaa !5
  %reass.add = shl i64 %206, 1
  %207 = or disjoint i64 %reass.add, 1
  %208 = getelementptr float, ptr %20, i64 %206
  %209 = getelementptr float, ptr %20, i64 %reass.add
  %210 = call i32 @sggbal_(ptr noundef nonnull @.str.10, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %20, ptr noundef %208, ptr noundef %209, ptr noundef nonnull %37) #5
  %211 = load i64, ptr %32, align 8, !tbaa !5
  %212 = add nsw i64 %211, 1
  %213 = load i64, ptr %33, align 8, !tbaa !5
  %214 = sub i64 %212, %213
  store i64 %214, ptr %41, align 8, !tbaa !5
  %215 = load i64, ptr %5, align 8, !tbaa !5
  %reass.sub = sub i64 %215, %213
  %216 = add i64 %reass.sub, 1
  store i64 %216, ptr %38, align 8, !tbaa !5
  %217 = add nsw i64 %214, %207
  %218 = load i64, ptr %21, align 8, !tbaa !5
  %reass.sub636 = sub i64 %218, %217
  %219 = add i64 %reass.sub636, 1
  store i64 %219, ptr %27, align 8, !tbaa !5
  %220 = add i64 %49, 1
  %221 = mul i64 %213, %220
  %222 = getelementptr inbounds float, ptr %51, i64 %221
  %223 = getelementptr inbounds float, ptr %58, i64 %217
  %224 = call i32 @sgeqrf_(ptr noundef nonnull %41, ptr noundef nonnull %38, ptr noundef %222, ptr noundef nonnull %9, ptr noundef %209, ptr noundef nonnull %223, ptr noundef nonnull %27, ptr noundef nonnull %37) #5
  %225 = load i64, ptr %21, align 8, !tbaa !5
  %reass.sub637 = sub i64 %225, %217
  %226 = add i64 %reass.sub637, 1
  store i64 %226, ptr %27, align 8, !tbaa !5
  %227 = load i64, ptr %33, align 8, !tbaa !5
  %228 = mul i64 %227, %220
  %229 = getelementptr inbounds float, ptr %51, i64 %228
  %230 = add i64 %46, 1
  %231 = mul i64 %227, %230
  %232 = getelementptr inbounds float, ptr %48, i64 %231
  %233 = call i32 @sormqr_(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, ptr noundef nonnull %41, ptr noundef nonnull %38, ptr noundef nonnull %41, ptr noundef %229, ptr noundef nonnull %9, ptr noundef %209, ptr noundef %232, ptr noundef nonnull %7, ptr noundef nonnull %223, ptr noundef nonnull %27, ptr noundef nonnull %37) #5
  %234 = load i64, ptr %39, align 8, !tbaa !5
  %.not555 = icmp eq i64 %234, 0
  br i1 %.not555, label %258, label %235

235:                                              ; preds = %205
  %236 = call i32 @slaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef nonnull @c_b42, ptr noundef nonnull @c_b43, ptr noundef %14, ptr noundef nonnull %15) #5
  %237 = load i64, ptr %41, align 8, !tbaa !5
  %238 = icmp sgt i64 %237, 1
  br i1 %238, label %239, label %250

239:                                              ; preds = %235
  %240 = add nsw i64 %237, -1
  store i64 %240, ptr %27, align 8, !tbaa !5
  store i64 %240, ptr %28, align 8, !tbaa !5
  %241 = load i64, ptr %33, align 8, !tbaa !5
  %242 = add nsw i64 %241, 1
  %243 = mul nsw i64 %241, %49
  %244 = getelementptr float, ptr %51, i64 %242
  %245 = getelementptr float, ptr %244, i64 %243
  %246 = mul nsw i64 %241, %55
  %247 = getelementptr float, ptr %57, i64 %242
  %248 = getelementptr float, ptr %247, i64 %246
  %249 = call i32 @slacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %245, ptr noundef nonnull %9, ptr noundef %248, ptr noundef nonnull %15) #5
  br label %250

250:                                              ; preds = %239, %235
  %251 = load i64, ptr %21, align 8, !tbaa !5
  %reass.sub638 = sub i64 %251, %217
  %252 = add i64 %reass.sub638, 1
  store i64 %252, ptr %27, align 8, !tbaa !5
  %253 = load i64, ptr %33, align 8, !tbaa !5
  %254 = add i64 %55, 1
  %255 = mul i64 %253, %254
  %256 = getelementptr inbounds float, ptr %57, i64 %255
  %257 = call i32 @sorgqr_(ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %256, ptr noundef nonnull %15, ptr noundef %209, ptr noundef nonnull %223, ptr noundef nonnull %27, ptr noundef nonnull %37) #5
  br label %258

258:                                              ; preds = %250, %205
  %259 = load i64, ptr %40, align 8, !tbaa !5
  %.not556 = icmp eq i64 %259, 0
  br i1 %.not556, label %262, label %260

260:                                              ; preds = %258
  %261 = call i32 @slaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef nonnull @c_b42, ptr noundef nonnull @c_b43, ptr noundef %16, ptr noundef nonnull %17) #5
  br label %262

262:                                              ; preds = %260, %258
  %263 = call i32 @sgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %37) #5
  store i64 0, ptr %10, align 8, !tbaa !5
  %264 = load i64, ptr %21, align 8, !tbaa !5
  %reass.sub639 = sub i64 %264, %207
  %265 = add i64 %reass.sub639, 1
  store i64 %265, ptr %27, align 8, !tbaa !5
  %266 = call i32 @shgeqz_(ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %209, ptr noundef nonnull %27, ptr noundef nonnull %37) #5
  %267 = load i64, ptr %37, align 8, !tbaa !5
  %.not557 = icmp eq i64 %267, 0
  br i1 %.not557, label %277, label %268

268:                                              ; preds = %262
  %269 = icmp slt i64 %267, 1
  %.pre = load i64, ptr %5, align 8, !tbaa !5
  %.not568 = icmp sgt i64 %267, %.pre
  %or.cond645 = select i1 %269, i1 true, i1 %.not568
  br i1 %or.cond645, label %270, label %.loopexit.sink.split

270:                                              ; preds = %268
  %271 = icmp sle i64 %267, %.pre
  %272 = shl i64 %.pre, 1
  %.not569 = icmp sgt i64 %267, %272
  %or.cond574 = or i1 %271, %.not569
  br i1 %or.cond574, label %275, label %273

273:                                              ; preds = %270
  %274 = sub nsw i64 %267, %.pre
  br label %.loopexit.sink.split

275:                                              ; preds = %270
  %276 = add nsw i64 %.pre, 1
  br label %.loopexit.sink.split

277:                                              ; preds = %262
  br i1 %.not544, label %321, label %278

278:                                              ; preds = %277
  br i1 %.not553591, label %282, label %279

279:                                              ; preds = %278
  %280 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %35, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %5, ptr noundef nonnull %37) #5
  %281 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %35, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %5, ptr noundef nonnull %37) #5
  br label %282

282:                                              ; preds = %279, %278
  br i1 %.not554596, label %285, label %283

283:                                              ; preds = %282
  %284 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %45, ptr noundef nonnull %36, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %13, ptr noundef nonnull %5, ptr noundef nonnull %37) #5
  br label %285

285:                                              ; preds = %283, %282
  %286 = load i64, ptr %5, align 8, !tbaa !5
  store i64 %286, ptr %27, align 8, !tbaa !5
  %.not559616 = icmp slt i64 %286, 1
  br i1 %.not559616, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %285, %.lr.ph
  %.0512617 = phi i64 [ %292, %.lr.ph ], [ 1, %285 ]
  %287 = getelementptr inbounds float, ptr %52, i64 %.0512617
  %288 = getelementptr inbounds float, ptr %53, i64 %.0512617
  %289 = getelementptr inbounds float, ptr %54, i64 %.0512617
  %290 = call i64 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %287, ptr noundef nonnull %288, ptr noundef nonnull %289) #5
  %291 = getelementptr inbounds i64, ptr %59, i64 %.0512617
  store i64 %290, ptr %291, align 8, !tbaa !5
  %292 = add nuw nsw i64 %.0512617, 1
  %293 = load i64, ptr %27, align 8, !tbaa !5
  %.not559.not = icmp slt i64 %.0512617, %293
  br i1 %.not559.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %285
  %294 = load i64, ptr %21, align 8, !tbaa !5
  %reass.sub640 = sub i64 %294, %207
  %295 = add i64 %reass.sub640, 1
  store i64 %295, ptr %27, align 8, !tbaa !5
  %296 = call i32 @stgsen_(ptr noundef nonnull %34, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %24, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %209, ptr noundef nonnull %27, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %37) #5
  %297 = load i64, ptr %34, align 8
  %298 = icmp sgt i64 %297, 0
  br i1 %298, label %299, label %306

299:                                              ; preds = %._crit_edge
  store i64 %.1, ptr %27, align 8, !tbaa !5
  %300 = load i64, ptr %10, align 8, !tbaa !5
  %301 = shl i64 %300, 1
  %302 = load i64, ptr %5, align 8, !tbaa !5
  %303 = sub nsw i64 %302, %300
  %304 = mul nsw i64 %303, %301
  store i64 %304, ptr %28, align 8, !tbaa !5
  %305 = call i64 @llvm.smax.i64(i64 %.1, i64 %304)
  br label %306

306:                                              ; preds = %299, %._crit_edge
  %.3 = phi i64 [ %305, %299 ], [ %.1, %._crit_edge ]
  %307 = load i64, ptr %37, align 8, !tbaa !5
  %308 = icmp eq i64 %307, -22
  br i1 %308, label %.sink.split, label %309

309:                                              ; preds = %306
  switch i64 %297, label %316 [
    i64 4, label %310
    i64 1, label %310
    i64 2, label %314
  ]

310:                                              ; preds = %309, %309
  %311 = load float, ptr %29, align 4, !tbaa !9
  store float %311, ptr %18, align 4, !tbaa !9
  %312 = load float, ptr %30, align 4, !tbaa !9
  %313 = getelementptr inbounds i8, ptr %18, i64 4
  store float %312, ptr %313, align 4, !tbaa !9
  switch i64 %297, label %316 [
    i64 4, label %314
    i64 2, label %314
  ]

314:                                              ; preds = %309, %310, %310
  %315 = load <2 x float>, ptr %31, align 8, !tbaa !9
  store <2 x float> %315, ptr %19, align 4, !tbaa !9
  br label %316

316:                                              ; preds = %309, %310, %314
  %317 = icmp eq i64 %307, 1
  br i1 %317, label %318, label %321

318:                                              ; preds = %316
  %319 = load i64, ptr %5, align 8, !tbaa !5
  %320 = add nsw i64 %319, 3
  br label %.sink.split

.sink.split:                                      ; preds = %306, %318
  %.sink646 = phi i64 [ %320, %318 ], [ -22, %306 ]
  store i64 %.sink646, ptr %25, align 8, !tbaa !5
  br label %321

321:                                              ; preds = %.sink.split, %316, %277
  %.4 = phi i64 [ %.3, %316 ], [ %.1, %277 ], [ %.3, %.sink.split ]
  %322 = load i64, ptr %39, align 8, !tbaa !5
  %.not561 = icmp eq i64 %322, 0
  br i1 %.not561, label %325, label %323

323:                                              ; preds = %321
  %324 = call i32 @sggbak_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.13, ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %20, ptr noundef %208, ptr noundef nonnull %5, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %37) #5
  br label %325

325:                                              ; preds = %323, %321
  %326 = load i64, ptr %40, align 8, !tbaa !5
  %.not562 = icmp eq i64 %326, 0
  br i1 %.not562, label %329, label %327

327:                                              ; preds = %325
  %328 = call i32 @sggbak_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.16, ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %20, ptr noundef %208, ptr noundef nonnull %5, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %37) #5
  br label %329

329:                                              ; preds = %327, %325
  br i1 %.not553591, label %.loopexit615, label %330

330:                                              ; preds = %329
  %331 = load i64, ptr %5, align 8, !tbaa !5
  store i64 %331, ptr %27, align 8, !tbaa !5
  %.not563618 = icmp slt i64 %331, 1
  br i1 %.not563618, label %.loopexit615, label %.lr.ph621

.lr.ph621:                                        ; preds = %330
  %332 = load float, ptr %43, align 4
  %333 = load float, ptr %44, align 4
  %334 = load float, ptr %35, align 4
  %335 = load float, ptr %42, align 4
  %336 = insertelement <2 x float> poison, float %334, i64 0
  %337 = insertelement <2 x float> %336, float %333, i64 1
  %338 = insertelement <2 x float> poison, float %333, i64 0
  %339 = insertelement <2 x float> %338, float %334, i64 1
  %340 = fdiv <2 x float> %337, %339
  %341 = insertelement <2 x float> poison, float %335, i64 0
  %342 = insertelement <2 x float> poison, float %332, i64 1
  br label %343

343:                                              ; preds = %.lr.ph621, %384
  %.1513619 = phi i64 [ 1, %.lr.ph621 ], [ %385, %384 ]
  %344 = getelementptr inbounds float, ptr %53, i64 %.1513619
  %345 = load float, ptr %344, align 4, !tbaa !9
  %346 = fcmp une float %345, 0.000000e+00
  br i1 %346, label %347, label %384

347:                                              ; preds = %343
  %348 = getelementptr inbounds float, ptr %52, i64 %.1513619
  %349 = load float, ptr %348, align 4, !tbaa !9
  %350 = insertelement <2 x float> %341, float %349, i64 1
  %351 = insertelement <2 x float> %342, float %349, i64 0
  %352 = fdiv <2 x float> %350, %351
  %353 = fcmp ogt <2 x float> %352, %340
  %354 = extractelement <2 x i1> %353, i64 0
  %355 = extractelement <2 x i1> %353, i64 1
  %or.cond = select i1 %355, i1 true, i1 %354
  br i1 %or.cond, label %356, label %359

356:                                              ; preds = %347
  %357 = mul i64 %.1513619, %230
  %358 = getelementptr inbounds float, ptr %48, i64 %357
  br label %.sink.split647

359:                                              ; preds = %347
  %360 = insertelement <2 x float> %341, float %345, i64 1
  %361 = insertelement <2 x float> %342, float %345, i64 0
  %362 = fdiv <2 x float> %360, %361
  %363 = fcmp ogt <2 x float> %362, %340
  %shift = shufflevector <2 x i1> %363, <2 x i1> poison, <2 x i32> <i32 1, i32 poison>
  %364 = or <2 x i1> %shift, %363
  %or.cond576 = extractelement <2 x i1> %364, i64 0
  br i1 %or.cond576, label %365, label %384

365:                                              ; preds = %359
  %366 = add nuw nsw i64 %.1513619, 1
  %367 = mul nsw i64 %366, %46
  %368 = getelementptr float, ptr %48, i64 %.1513619
  %369 = getelementptr float, ptr %368, i64 %367
  br label %.sink.split647

.sink.split647:                                   ; preds = %356, %365
  %.sink667 = phi ptr [ %369, %365 ], [ %358, %356 ]
  %.sink666 = phi float [ %345, %365 ], [ %349, %356 ]
  %370 = load float, ptr %.sink667, align 4, !tbaa !9
  %371 = fdiv float %370, %.sink666
  %372 = fcmp oge float %371, 0.000000e+00
  %373 = fneg float %371
  %374 = select i1 %372, float %371, float %373
  store float %374, ptr %20, align 4, !tbaa !9
  %375 = getelementptr inbounds float, ptr %54, i64 %.1513619
  %376 = load float, ptr %375, align 4, !tbaa !9
  %377 = fmul float %376, %374
  store float %377, ptr %375, align 4, !tbaa !9
  %378 = load float, ptr %20, align 4, !tbaa !9
  %379 = load float, ptr %348, align 4, !tbaa !9
  %380 = fmul float %378, %379
  store float %380, ptr %348, align 4, !tbaa !9
  %381 = load float, ptr %20, align 4, !tbaa !9
  %382 = load float, ptr %344, align 4, !tbaa !9
  %383 = fmul float %381, %382
  store float %383, ptr %344, align 4, !tbaa !9
  br label %384

384:                                              ; preds = %.sink.split647, %359, %343
  %385 = add nuw i64 %.1513619, 1
  %exitcond.not = icmp eq i64 %.1513619, %331
  br i1 %exitcond.not, label %.loopexit615, label %343, !llvm.loop !13

.loopexit615:                                     ; preds = %384, %330, %329
  br i1 %.not554596, label %.loopexit614, label %386

386:                                              ; preds = %.loopexit615
  %387 = load i64, ptr %5, align 8, !tbaa !5
  store i64 %387, ptr %27, align 8, !tbaa !5
  %.not564622 = icmp slt i64 %387, 1
  br i1 %.not564622, label %.loopexit614, label %.lr.ph625

.lr.ph625:                                        ; preds = %386
  %388 = load float, ptr %43, align 4
  %389 = load float, ptr %45, align 4
  %390 = load float, ptr %36, align 4
  %391 = load float, ptr %42, align 4
  %392 = insertelement <2 x float> poison, float %389, i64 0
  %393 = insertelement <2 x float> %392, float %390, i64 1
  %394 = insertelement <2 x float> poison, float %390, i64 0
  %395 = insertelement <2 x float> %394, float %389, i64 1
  %396 = fdiv <2 x float> %393, %395
  %397 = insertelement <2 x float> poison, float %388, i64 0
  br label %398

398:                                              ; preds = %.lr.ph625, %429
  %.2514623 = phi i64 [ 1, %.lr.ph625 ], [ %430, %429 ]
  %399 = getelementptr inbounds float, ptr %53, i64 %.2514623
  %400 = load float, ptr %399, align 4, !tbaa !9
  %401 = fcmp une float %400, 0.000000e+00
  br i1 %401, label %402, label %429

402:                                              ; preds = %398
  %403 = getelementptr inbounds float, ptr %54, i64 %.2514623
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = insertelement <2 x float> poison, float %404, i64 0
  %406 = insertelement <2 x float> %405, float %391, i64 1
  %407 = insertelement <2 x float> %397, float %404, i64 1
  %408 = fdiv <2 x float> %406, %407
  %409 = fcmp ogt <2 x float> %408, %396
  %410 = extractelement <2 x i1> %409, i64 0
  %411 = extractelement <2 x i1> %409, i64 1
  %or.cond635 = select i1 %410, i1 true, i1 %411
  br i1 %or.cond635, label %412, label %429

412:                                              ; preds = %402
  %413 = mul i64 %.2514623, %220
  %414 = getelementptr inbounds float, ptr %51, i64 %413
  %415 = load float, ptr %414, align 4, !tbaa !9
  %416 = fdiv float %415, %404
  %417 = fcmp oge float %416, 0.000000e+00
  %418 = fneg float %416
  %419 = select i1 %417, float %416, float %418
  store float %419, ptr %20, align 4, !tbaa !9
  %420 = load float, ptr %403, align 4, !tbaa !9
  %421 = fmul float %420, %419
  store float %421, ptr %403, align 4, !tbaa !9
  %422 = load float, ptr %20, align 4, !tbaa !9
  %423 = getelementptr inbounds float, ptr %52, i64 %.2514623
  %424 = load float, ptr %423, align 4, !tbaa !9
  %425 = fmul float %422, %424
  store float %425, ptr %423, align 4, !tbaa !9
  %426 = load float, ptr %20, align 4, !tbaa !9
  %427 = load float, ptr %399, align 4, !tbaa !9
  %428 = fmul float %426, %427
  store float %428, ptr %399, align 4, !tbaa !9
  br label %429

429:                                              ; preds = %402, %398, %412
  %430 = add nuw i64 %.2514623, 1
  %exitcond641.not = icmp eq i64 %.2514623, %387
  br i1 %exitcond641.not, label %.loopexit614, label %398, !llvm.loop !14

.loopexit614:                                     ; preds = %429, %386, %.loopexit615
  br i1 %.not553591, label %435, label %431

431:                                              ; preds = %.loopexit614
  %432 = call i32 @slascl_(ptr noundef nonnull @.str.17, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %35, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %37) #5
  %433 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %35, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %5, ptr noundef nonnull %37) #5
  %434 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %35, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %5, ptr noundef nonnull %37) #5
  br label %435

435:                                              ; preds = %431, %.loopexit614
  br i1 %.not554596, label %439, label %436

436:                                              ; preds = %435
  %437 = call i32 @slascl_(ptr noundef nonnull @.str.18, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %45, ptr noundef nonnull %36, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %37) #5
  %438 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %45, ptr noundef nonnull %36, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %13, ptr noundef nonnull %5, ptr noundef nonnull %37) #5
  br label %439

439:                                              ; preds = %436, %435
  br i1 %.not544, label %.loopexit, label %440

440:                                              ; preds = %439
  store i64 0, ptr %10, align 8, !tbaa !5
  %441 = load i64, ptr %5, align 8, !tbaa !5
  store i64 %441, ptr %27, align 8, !tbaa !5
  %.not565626 = icmp slt i64 %441, 1
  br i1 %.not565626, label %.loopexit, label %.lr.ph632

.lr.ph632:                                        ; preds = %440, %.thread597
  %.0501630 = phi i64 [ %.0508, %.thread597 ], [ 1, %440 ]
  %.0507629 = phi i64 [ %.1502, %.thread597 ], [ 1, %440 ]
  %.0510628 = phi i64 [ %.1511, %.thread597 ], [ 0, %440 ]
  %.3515627 = phi i64 [ %464, %.thread597 ], [ 1, %440 ]
  %442 = getelementptr inbounds float, ptr %52, i64 %.3515627
  %443 = getelementptr inbounds float, ptr %53, i64 %.3515627
  %444 = getelementptr inbounds float, ptr %54, i64 %.3515627
  %445 = call i64 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %442, ptr noundef nonnull %443, ptr noundef nonnull %444) #5
  %446 = load float, ptr %443, align 4, !tbaa !9
  %447 = fcmp oeq float %446, 0.000000e+00
  br i1 %447, label %448, label %452

448:                                              ; preds = %.lr.ph632
  %.not567 = icmp eq i64 %445, 0
  br i1 %.not567, label %.thread597, label %449

449:                                              ; preds = %448
  %450 = load i64, ptr %10, align 8, !tbaa !5
  %451 = add nsw i64 %450, 1
  store i64 %451, ptr %10, align 8, !tbaa !5
  %.not610 = icmp eq i64 %.0501630, 0
  br i1 %.not610, label %.thread597.sink.split, label %.thread597

452:                                              ; preds = %.lr.ph632
  %453 = icmp eq i64 %.0510628, 1
  br i1 %453, label %454, label %.thread597

454:                                              ; preds = %452
  %455 = icmp ne i64 %445, 0
  %456 = icmp ne i64 %.0501630, 0
  %457 = select i1 %455, i1 true, i1 %456
  br i1 %457, label %458, label %.thread597

458:                                              ; preds = %454
  %459 = load i64, ptr %10, align 8, !tbaa !5
  %460 = add nsw i64 %459, 2
  store i64 %460, ptr %10, align 8, !tbaa !5
  %461 = icmp eq i64 %.0507629, 0
  br i1 %461, label %.thread597.sink.split, label %.thread597

.thread597.sink.split:                            ; preds = %458, %449
  %.1511.ph = phi i64 [ 0, %449 ], [ -1, %458 ]
  %.0508.ph = phi i64 [ %445, %449 ], [ 1, %458 ]
  %.1502.ph = phi i64 [ 0, %449 ], [ 1, %458 ]
  %462 = load i64, ptr %5, align 8, !tbaa !5
  %463 = add nsw i64 %462, 2
  store i64 %463, ptr %25, align 8, !tbaa !5
  br label %.thread597

.thread597:                                       ; preds = %.thread597.sink.split, %454, %448, %452, %458, %449
  %.1511 = phi i64 [ 0, %449 ], [ -1, %458 ], [ 1, %452 ], [ 0, %448 ], [ -1, %454 ], [ %.1511.ph, %.thread597.sink.split ]
  %.0508 = phi i64 [ %445, %449 ], [ 1, %458 ], [ %445, %452 ], [ 0, %448 ], [ 0, %454 ], [ %.0508.ph, %.thread597.sink.split ]
  %.1502 = phi i64 [ %.0501630, %449 ], [ 1, %458 ], [ %.0501630, %452 ], [ %.0501630, %448 ], [ 0, %454 ], [ %.1502.ph, %.thread597.sink.split ]
  %464 = add nuw nsw i64 %.3515627, 1
  %465 = load i64, ptr %27, align 8, !tbaa !5
  %.not565.not = icmp slt i64 %.3515627, %465
  br i1 %.not565.not, label %.lr.ph632, label %.loopexit, !llvm.loop !15

.loopexit.sink.split:                             ; preds = %268, %273, %275
  %.sink670 = phi i64 [ %276, %275 ], [ %274, %273 ], [ %267, %268 ]
  store i64 %.sink670, ptr %25, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread597, %.loopexit.sink.split, %440, %439
  %.5 = phi i64 [ %.4, %439 ], [ %.4, %440 ], [ %.1, %.loopexit.sink.split ], [ %.4, %.thread597 ]
  %466 = sitofp i64 %.5 to float
  store float %466, ptr %20, align 4, !tbaa !9
  store i64 %.0499, ptr %22, align 8, !tbaa !5
  br label %467

467:                                              ; preds = %169, %.loopexit, %173, %.thread583
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}


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