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

167:                                              ; preds = %26
  store i32 1, ptr %87, align 4, !tbaa !9
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %175

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

172:                                              ; preds = %168
  store i32 2, ptr %87, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %174

173:                                              ; preds = %168
  store i32 -1, ptr %87, align 4, !tbaa !9
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %174

174:                                              ; preds = %173, %172
  br label %175

175:                                              ; preds = %174, %167
  %176 = load ptr, ptr %28, align 8, !tbaa !5
  %177 = call i32 @lsame_(ptr noundef %176, ptr noundef @.str)
  %178 = icmp ne i32 %177, 0
  br i1 %178, label %179, label %180

179:                                              ; preds = %175
  store i32 1, ptr %89, align 4, !tbaa !9
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %187

180:                                              ; preds = %175
  %181 = load ptr, ptr %28, align 8, !tbaa !5
  %182 = call i32 @lsame_(ptr noundef %181, ptr noundef @.str.1)
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %184, label %185

184:                                              ; preds = %180
  store i32 2, ptr %89, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %186

185:                                              ; preds = %180
  store i32 -1, ptr %89, align 4, !tbaa !9
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %186

186:                                              ; preds = %185, %184
  br label %187

187:                                              ; preds = %186, %179
  %188 = load ptr, ptr %29, align 8, !tbaa !5
  %189 = call i32 @lsame_(ptr noundef %188, ptr noundef @.str.2)
  store i32 %189, ptr %100, align 4, !tbaa !9
  %190 = load ptr, ptr %31, align 8, !tbaa !5
  %191 = call i32 @lsame_(ptr noundef %190, ptr noundef @.str)
  store i32 %191, ptr %98, align 4, !tbaa !9
  %192 = load ptr, ptr %31, align 8, !tbaa !5
  %193 = call i32 @lsame_(ptr noundef %192, ptr noundef @.str.3)
  store i32 %193, ptr %91, align 4, !tbaa !9
  %194 = load ptr, ptr %31, align 8, !tbaa !5
  %195 = call i32 @lsame_(ptr noundef %194, ptr noundef @.str.1)
  store i32 %195, ptr %102, align 4, !tbaa !9
  %196 = load ptr, ptr %31, align 8, !tbaa !5
  %197 = call i32 @lsame_(ptr noundef %196, ptr noundef @.str.4)
  store i32 %197, ptr %90, align 4, !tbaa !9
  %198 = load ptr, ptr %48, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = icmp eq i32 %199, -1
  br i1 %200, label %205, label %201

201:                                              ; preds = %187
  %202 = load ptr, ptr %50, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = icmp eq i32 %203, -1
  br label %205

205:                                              ; preds = %201, %187
  %206 = phi i1 [ true, %187 ], [ %204, %201 ]
  %207 = zext i1 %206 to i32
  store i32 %207, ptr %101, align 4, !tbaa !9
  %208 = load i32, ptr %98, align 4, !tbaa !9
  %209 = icmp ne i32 %208, 0
  br i1 %209, label %210, label %211

210:                                              ; preds = %205
  store i32 0, ptr %64, align 4, !tbaa !9
  br label %226

211:                                              ; preds = %205
  %212 = load i32, ptr %91, align 4, !tbaa !9
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %214, label %215

214:                                              ; preds = %211
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %225

215:                                              ; preds = %211
  %216 = load i32, ptr %102, align 4, !tbaa !9
  %217 = icmp ne i32 %216, 0
  br i1 %217, label %218, label %219

218:                                              ; preds = %215
  store i32 2, ptr %64, align 4, !tbaa !9
  br label %224

219:                                              ; preds = %215
  %220 = load i32, ptr %90, align 4, !tbaa !9
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %223

222:                                              ; preds = %219
  store i32 4, ptr %64, align 4, !tbaa !9
  br label %223

223:                                              ; preds = %222, %219
  br label %224

224:                                              ; preds = %223, %218
  br label %225

225:                                              ; preds = %224, %214
  br label %226

226:                                              ; preds = %225, %210
  %227 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 0, ptr %227, align 4, !tbaa !9
  %228 = load i32, ptr %87, align 4, !tbaa !9
  %229 = icmp sle i32 %228, 0
  br i1 %229, label %230, label %232

230:                                              ; preds = %226
  %231 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -1, ptr %231, align 4, !tbaa !9
  br label %340

232:                                              ; preds = %226
  %233 = load i32, ptr %89, align 4, !tbaa !9
  %234 = icmp sle i32 %233, 0
  br i1 %234, label %235, label %237

235:                                              ; preds = %232
  %236 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -2, ptr %236, align 4, !tbaa !9
  br label %339

237:                                              ; preds = %232
  %238 = load i32, ptr %100, align 4, !tbaa !9
  %239 = icmp ne i32 %238, 0
  br i1 %239, label %246, label %240

240:                                              ; preds = %237
  %241 = load ptr, ptr %29, align 8, !tbaa !5
  %242 = call i32 @lsame_(ptr noundef %241, ptr noundef @.str)
  %243 = icmp ne i32 %242, 0
  br i1 %243, label %246, label %244

244:                                              ; preds = %240
  %245 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -3, ptr %245, align 4, !tbaa !9
  br label %338

246:                                              ; preds = %240, %237
  %247 = load i32, ptr %98, align 4, !tbaa !9
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %258, label %249

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

252:                                              ; preds = %249
  %253 = load i32, ptr %102, align 4, !tbaa !9
  %254 = icmp ne i32 %253, 0
  br i1 %254, label %258, label %255

255:                                              ; preds = %252
  %256 = load i32, ptr %90, align 4, !tbaa !9
  %257 = icmp ne i32 %256, 0
  br i1 %257, label %258, label %264

258:                                              ; preds = %255, %252, %249, %246
  %259 = load i32, ptr %100, align 4, !tbaa !9
  %260 = icmp ne i32 %259, 0
  br i1 %260, label %266, label %261

261:                                              ; preds = %258
  %262 = load i32, ptr %98, align 4, !tbaa !9
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %266, label %264

264:                                              ; preds = %261, %255
  %265 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -5, ptr %265, align 4, !tbaa !9
  br label %337

266:                                              ; preds = %261, %258
  %267 = load ptr, ptr %32, align 8, !tbaa !5
  %268 = load i32, ptr %267, align 4, !tbaa !9
  %269 = icmp slt i32 %268, 0
  br i1 %269, label %270, label %272

270:                                              ; preds = %266
  %271 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -6, ptr %271, align 4, !tbaa !9
  br label %336

272:                                              ; preds = %266
  %273 = load ptr, ptr %34, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = load ptr, ptr %32, align 8, !tbaa !5
  %276 = load i32, ptr %275, align 4, !tbaa !9
  %277 = icmp sge i32 1, %276
  br i1 %277, label %278, label %279

278:                                              ; preds = %272
  br label %282

279:                                              ; preds = %272
  %280 = load ptr, ptr %32, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  br label %282

282:                                              ; preds = %279, %278
  %283 = phi i32 [ 1, %278 ], [ %281, %279 ]
  %284 = icmp slt i32 %274, %283
  br i1 %284, label %285, label %287

285:                                              ; preds = %282
  %286 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -8, ptr %286, align 4, !tbaa !9
  br label %335

287:                                              ; preds = %282
  %288 = load ptr, ptr %36, align 8, !tbaa !5
  %289 = load i32, ptr %288, align 4, !tbaa !9
  %290 = load ptr, ptr %32, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = icmp sge i32 1, %291
  br i1 %292, label %293, label %294

293:                                              ; preds = %287
  br label %297

294:                                              ; preds = %287
  %295 = load ptr, ptr %32, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  br label %297

297:                                              ; preds = %294, %293
  %298 = phi i32 [ 1, %293 ], [ %296, %294 ]
  %299 = icmp slt i32 %289, %298
  br i1 %299, label %300, label %302

300:                                              ; preds = %297
  %301 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -10, ptr %301, align 4, !tbaa !9
  br label %334

302:                                              ; preds = %297
  %303 = load ptr, ptr %42, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  %305 = icmp slt i32 %304, 1
  br i1 %305, label %315, label %306

306:                                              ; preds = %302
  %307 = load i32, ptr %75, align 4, !tbaa !9
  %308 = icmp ne i32 %307, 0
  br i1 %308, label %309, label %317

309:                                              ; preds = %306
  %310 = load ptr, ptr %42, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = load ptr, ptr %32, align 8, !tbaa !5
  %313 = load i32, ptr %312, align 4, !tbaa !9
  %314 = icmp slt i32 %311, %313
  br i1 %314, label %315, label %317

315:                                              ; preds = %309, %302
  %316 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -16, ptr %316, align 4, !tbaa !9
  br label %333

317:                                              ; preds = %309, %306
  %318 = load ptr, ptr %44, align 8, !tbaa !5
  %319 = load i32, ptr %318, align 4, !tbaa !9
  %320 = icmp slt i32 %319, 1
  br i1 %320, label %330, label %321

321:                                              ; preds = %317
  %322 = load i32, ptr %76, align 4, !tbaa !9
  %323 = icmp ne i32 %322, 0
  br i1 %323, label %324, label %332

324:                                              ; preds = %321
  %325 = load ptr, ptr %44, align 8, !tbaa !5
  %326 = load i32, ptr %325, align 4, !tbaa !9
  %327 = load ptr, ptr %32, align 8, !tbaa !5
  %328 = load i32, ptr %327, align 4, !tbaa !9
  %329 = icmp slt i32 %326, %328
  br i1 %329, label %330, label %332

330:                                              ; preds = %324, %317
  %331 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -18, ptr %331, align 4, !tbaa !9
  br label %332

332:                                              ; preds = %330, %324, %321
  br label %333

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

334:                                              ; preds = %333, %300
  br label %335

335:                                              ; preds = %334, %285
  br label %336

336:                                              ; preds = %335, %270
  br label %337

337:                                              ; preds = %336, %264
  br label %338

338:                                              ; preds = %337, %244
  br label %339

339:                                              ; preds = %338, %235
  br label %340

340:                                              ; preds = %339, %230
  %341 = load ptr, ptr %52, align 8, !tbaa !5
  %342 = load i32, ptr %341, align 4, !tbaa !9
  %343 = icmp eq i32 %342, 0
  br i1 %343, label %344, label %485

344:                                              ; preds = %340
  %345 = load ptr, ptr %32, align 8, !tbaa !5
  %346 = load i32, ptr %345, align 4, !tbaa !9
  %347 = icmp sgt i32 %346, 0
  br i1 %347, label %348, label %443

348:                                              ; preds = %344
  %349 = load ptr, ptr %32, align 8, !tbaa !5
  %350 = load i32, ptr %349, align 4, !tbaa !9
  %351 = shl i32 %350, 3
  store i32 %351, ptr %61, align 4, !tbaa !9
  %352 = load ptr, ptr %32, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  %354 = mul nsw i32 %353, 6
  %355 = add nsw i32 %354, 16
  store i32 %355, ptr %62, align 4, !tbaa !9
  %356 = load i32, ptr %61, align 4, !tbaa !9
  %357 = load i32, ptr %62, align 4, !tbaa !9
  %358 = icmp sge i32 %356, %357
  br i1 %358, label %359, label %361

359:                                              ; preds = %348
  %360 = load i32, ptr %61, align 4, !tbaa !9
  br label %363

361:                                              ; preds = %348
  %362 = load i32, ptr %62, align 4, !tbaa !9
  br label %363

363:                                              ; preds = %361, %359
  %364 = phi i32 [ %360, %359 ], [ %362, %361 ]
  store i32 %364, ptr %96, align 4, !tbaa !9
  %365 = load i32, ptr %96, align 4, !tbaa !9
  %366 = load ptr, ptr %32, align 8, !tbaa !5
  %367 = load i32, ptr %366, align 4, !tbaa !9
  %368 = sub nsw i32 %365, %367
  %369 = load ptr, ptr %32, align 8, !tbaa !5
  %370 = load i32, ptr %369, align 4, !tbaa !9
  %371 = load ptr, ptr %32, align 8, !tbaa !5
  %372 = load ptr, ptr %32, align 8, !tbaa !5
  %373 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef %371, ptr noundef @c__1, ptr noundef %372, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %374 = mul nsw i32 %370, %373
  %375 = add nsw i32 %368, %374
  store i32 %375, ptr %97, align 4, !tbaa !9
  %376 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %376, ptr %61, align 4, !tbaa !9
  %377 = load i32, ptr %96, align 4, !tbaa !9
  %378 = load ptr, ptr %32, align 8, !tbaa !5
  %379 = load i32, ptr %378, align 4, !tbaa !9
  %380 = sub nsw i32 %377, %379
  %381 = load ptr, ptr %32, align 8, !tbaa !5
  %382 = load i32, ptr %381, align 4, !tbaa !9
  %383 = load ptr, ptr %32, align 8, !tbaa !5
  %384 = load ptr, ptr %32, align 8, !tbaa !5
  %385 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef @.str.6, ptr noundef %383, ptr noundef @c__1, ptr noundef %384, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %386 = mul nsw i32 %382, %385
  %387 = add nsw i32 %380, %386
  store i32 %387, ptr %62, align 4, !tbaa !9
  %388 = load i32, ptr %61, align 4, !tbaa !9
  %389 = load i32, ptr %62, align 4, !tbaa !9
  %390 = icmp sge i32 %388, %389
  br i1 %390, label %391, label %393

391:                                              ; preds = %363
  %392 = load i32, ptr %61, align 4, !tbaa !9
  br label %395

393:                                              ; preds = %363
  %394 = load i32, ptr %62, align 4, !tbaa !9
  br label %395

395:                                              ; preds = %393, %391
  %396 = phi i32 [ %392, %391 ], [ %394, %393 ]
  store i32 %396, ptr %97, align 4, !tbaa !9
  %397 = load i32, ptr %75, align 4, !tbaa !9
  %398 = icmp ne i32 %397, 0
  br i1 %398, label %399, label %421

399:                                              ; preds = %395
  %400 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %400, ptr %61, align 4, !tbaa !9
  %401 = load i32, ptr %96, align 4, !tbaa !9
  %402 = load ptr, ptr %32, align 8, !tbaa !5
  %403 = load i32, ptr %402, align 4, !tbaa !9
  %404 = sub nsw i32 %401, %403
  %405 = load ptr, ptr %32, align 8, !tbaa !5
  %406 = load i32, ptr %405, align 4, !tbaa !9
  %407 = load ptr, ptr %32, align 8, !tbaa !5
  %408 = load ptr, ptr %32, align 8, !tbaa !5
  %409 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.6, ptr noundef %407, ptr noundef @c__1, ptr noundef %408, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %410 = mul nsw i32 %406, %409
  %411 = add nsw i32 %404, %410
  store i32 %411, ptr %62, align 4, !tbaa !9
  %412 = load i32, ptr %61, align 4, !tbaa !9
  %413 = load i32, ptr %62, align 4, !tbaa !9
  %414 = icmp sge i32 %412, %413
  br i1 %414, label %415, label %417

415:                                              ; preds = %399
  %416 = load i32, ptr %61, align 4, !tbaa !9
  br label %419

417:                                              ; preds = %399
  %418 = load i32, ptr %62, align 4, !tbaa !9
  br label %419

419:                                              ; preds = %417, %415
  %420 = phi i32 [ %416, %415 ], [ %418, %417 ]
  store i32 %420, ptr %97, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %419, %395
  %422 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %422, ptr %70, align 4, !tbaa !9
  %423 = load i32, ptr %64, align 4, !tbaa !9
  %424 = icmp sge i32 %423, 1
  br i1 %424, label %425, label %442

425:                                              ; preds = %421
  %426 = load i32, ptr %70, align 4, !tbaa !9
  store i32 %426, ptr %61, align 4, !tbaa !9
  %427 = load ptr, ptr %32, align 8, !tbaa !5
  %428 = load i32, ptr %427, align 4, !tbaa !9
  %429 = load ptr, ptr %32, align 8, !tbaa !5
  %430 = load i32, ptr %429, align 4, !tbaa !9
  %431 = mul nsw i32 %428, %430
  %432 = sdiv i32 %431, 2
  store i32 %432, ptr %62, align 4, !tbaa !9
  %433 = load i32, ptr %61, align 4, !tbaa !9
  %434 = load i32, ptr %62, align 4, !tbaa !9
  %435 = icmp sge i32 %433, %434
  br i1 %435, label %436, label %438

436:                                              ; preds = %425
  %437 = load i32, ptr %61, align 4, !tbaa !9
  br label %440

438:                                              ; preds = %425
  %439 = load i32, ptr %62, align 4, !tbaa !9
  br label %440

440:                                              ; preds = %438, %436
  %441 = phi i32 [ %437, %436 ], [ %439, %438 ]
  store i32 %441, ptr %70, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %440, %421
  br label %444

443:                                              ; preds = %344
  store i32 1, ptr %96, align 4, !tbaa !9
  store i32 1, ptr %97, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %444

444:                                              ; preds = %443, %442
  %445 = load i32, ptr %70, align 4, !tbaa !9
  %446 = sitofp i32 %445 to float
  %447 = load ptr, ptr %47, align 8, !tbaa !5
  %448 = getelementptr inbounds float, ptr %447, i64 1
  store float %446, ptr %448, align 4, !tbaa !11
  %449 = load i32, ptr %98, align 4, !tbaa !9
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %455, label %451

451:                                              ; preds = %444
  %452 = load ptr, ptr %32, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = icmp eq i32 %453, 0
  br i1 %454, label %455, label %456

455:                                              ; preds = %451, %444
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %460

456:                                              ; preds = %451
  %457 = load ptr, ptr %32, align 8, !tbaa !5
  %458 = load i32, ptr %457, align 4, !tbaa !9
  %459 = add nsw i32 %458, 6
  store i32 %459, ptr %93, align 4, !tbaa !9
  br label %460

460:                                              ; preds = %456, %455
  %461 = load i32, ptr %93, align 4, !tbaa !9
  %462 = load ptr, ptr %49, align 8, !tbaa !5
  %463 = getelementptr inbounds i32, ptr %462, i64 1
  store i32 %461, ptr %463, align 4, !tbaa !9
  %464 = load ptr, ptr %48, align 8, !tbaa !5
  %465 = load i32, ptr %464, align 4, !tbaa !9
  %466 = load i32, ptr %96, align 4, !tbaa !9
  %467 = icmp slt i32 %465, %466
  br i1 %467, label %468, label %473

468:                                              ; preds = %460
  %469 = load i32, ptr %101, align 4, !tbaa !9
  %470 = icmp ne i32 %469, 0
  br i1 %470, label %473, label %471

471:                                              ; preds = %468
  %472 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -22, ptr %472, align 4, !tbaa !9
  br label %484

473:                                              ; preds = %468, %460
  %474 = load ptr, ptr %50, align 8, !tbaa !5
  %475 = load i32, ptr %474, align 4, !tbaa !9
  %476 = load i32, ptr %93, align 4, !tbaa !9
  %477 = icmp slt i32 %475, %476
  br i1 %477, label %478, label %483

478:                                              ; preds = %473
  %479 = load i32, ptr %101, align 4, !tbaa !9
  %480 = icmp ne i32 %479, 0
  br i1 %480, label %483, label %481

481:                                              ; preds = %478
  %482 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -24, ptr %482, align 4, !tbaa !9
  br label %483

483:                                              ; preds = %481, %478, %473
  br label %484

484:                                              ; preds = %483, %471
  br label %485

485:                                              ; preds = %484, %340
  %486 = load ptr, ptr %52, align 8, !tbaa !5
  %487 = load i32, ptr %486, align 4, !tbaa !9
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %489, label %494

489:                                              ; preds = %485
  %490 = load ptr, ptr %52, align 8, !tbaa !5
  %491 = load i32, ptr %490, align 4, !tbaa !9
  %492 = sub nsw i32 0, %491
  store i32 %492, ptr %61, align 4, !tbaa !9
  %493 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %61, i32 noundef 6)
  store i32 1, ptr %107, align 4
  br label %1476

494:                                              ; preds = %485
  %495 = load i32, ptr %101, align 4, !tbaa !9
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %497, label %498

497:                                              ; preds = %494
  store i32 1, ptr %107, align 4
  br label %1476

498:                                              ; preds = %494
  br label %499

499:                                              ; preds = %498
  %500 = load ptr, ptr %32, align 8, !tbaa !5
  %501 = load i32, ptr %500, align 4, !tbaa !9
  %502 = icmp eq i32 %501, 0
  br i1 %502, label %503, label %505

503:                                              ; preds = %499
  %504 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 0, ptr %504, align 4, !tbaa !9
  store i32 1, ptr %107, align 4
  br label %1476

505:                                              ; preds = %499
  %506 = call float @slamch_(ptr noundef @.str.10)
  store float %506, ptr %106, align 4, !tbaa !11
  %507 = call float @slamch_(ptr noundef @.str.2)
  store float %507, ptr %84, align 4, !tbaa !11
  %508 = load float, ptr %84, align 4, !tbaa !11
  %509 = fdiv float 1.000000e+00, %508
  store float %509, ptr %85, align 4, !tbaa !11
  call void @slabad_(ptr noundef %84, ptr noundef %85)
  %510 = load float, ptr %84, align 4, !tbaa !11
  %511 = fpext float %510 to double
  %512 = call double @sqrt(double noundef %511) #4
  %513 = load float, ptr %106, align 4, !tbaa !11
  %514 = fpext float %513 to double
  %515 = fdiv double %512, %514
  %516 = fptrunc double %515 to float
  store float %516, ptr %99, align 4, !tbaa !11
  %517 = load float, ptr %99, align 4, !tbaa !11
  %518 = fdiv float 1.000000e+00, %517
  store float %518, ptr %86, align 4, !tbaa !11
  %519 = load ptr, ptr %32, align 8, !tbaa !5
  %520 = load ptr, ptr %32, align 8, !tbaa !5
  %521 = load ptr, ptr %33, align 8, !tbaa !5
  %522 = load i32, ptr %54, align 4, !tbaa !9
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds float, ptr %521, i64 %523
  %525 = load ptr, ptr %34, align 8, !tbaa !5
  %526 = load ptr, ptr %47, align 8, !tbaa !5
  %527 = getelementptr inbounds float, ptr %526, i64 1
  %528 = call float @slange_(ptr noundef @.str.11, ptr noundef %519, ptr noundef %520, ptr noundef %524, ptr noundef %525, ptr noundef %527)
  store float %528, ptr %65, align 4, !tbaa !11
  store i32 0, ptr %82, align 4, !tbaa !9
  %529 = load float, ptr %65, align 4, !tbaa !11
  %530 = fcmp ogt float %529, 0.000000e+00
  br i1 %530, label %531, label %537

531:                                              ; preds = %505
  %532 = load float, ptr %65, align 4, !tbaa !11
  %533 = load float, ptr %99, align 4, !tbaa !11
  %534 = fcmp olt float %532, %533
  br i1 %534, label %535, label %537

535:                                              ; preds = %531
  %536 = load float, ptr %99, align 4, !tbaa !11
  store float %536, ptr %94, align 4, !tbaa !11
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %544

537:                                              ; preds = %531, %505
  %538 = load float, ptr %65, align 4, !tbaa !11
  %539 = load float, ptr %86, align 4, !tbaa !11
  %540 = fcmp ogt float %538, %539
  br i1 %540, label %541, label %543

541:                                              ; preds = %537
  %542 = load float, ptr %86, align 4, !tbaa !11
  store float %542, ptr %94, align 4, !tbaa !11
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %543

543:                                              ; preds = %541, %537
  br label %544

544:                                              ; preds = %543, %535
  %545 = load i32, ptr %82, align 4, !tbaa !9
  %546 = icmp ne i32 %545, 0
  br i1 %546, label %547, label %555

547:                                              ; preds = %544
  %548 = load ptr, ptr %32, align 8, !tbaa !5
  %549 = load ptr, ptr %32, align 8, !tbaa !5
  %550 = load ptr, ptr %33, align 8, !tbaa !5
  %551 = load i32, ptr %54, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %550, i64 %552
  %554 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %94, ptr noundef %548, ptr noundef %549, ptr noundef %553, ptr noundef %554, ptr noundef %67)
  br label %555

555:                                              ; preds = %547, %544
  %556 = load ptr, ptr %32, align 8, !tbaa !5
  %557 = load ptr, ptr %32, align 8, !tbaa !5
  %558 = load ptr, ptr %35, align 8, !tbaa !5
  %559 = load i32, ptr %56, align 4, !tbaa !9
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds float, ptr %558, i64 %560
  %562 = load ptr, ptr %36, align 8, !tbaa !5
  %563 = load ptr, ptr %47, align 8, !tbaa !5
  %564 = getelementptr inbounds float, ptr %563, i64 1
  %565 = call float @slange_(ptr noundef @.str.11, ptr noundef %556, ptr noundef %557, ptr noundef %561, ptr noundef %562, ptr noundef %564)
  store float %565, ptr %66, align 4, !tbaa !11
  store i32 0, ptr %83, align 4, !tbaa !9
  %566 = load float, ptr %66, align 4, !tbaa !11
  %567 = fcmp ogt float %566, 0.000000e+00
  br i1 %567, label %568, label %574

568:                                              ; preds = %555
  %569 = load float, ptr %66, align 4, !tbaa !11
  %570 = load float, ptr %99, align 4, !tbaa !11
  %571 = fcmp olt float %569, %570
  br i1 %571, label %572, label %574

572:                                              ; preds = %568
  %573 = load float, ptr %99, align 4, !tbaa !11
  store float %573, ptr %95, align 4, !tbaa !11
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %581

574:                                              ; preds = %568, %555
  %575 = load float, ptr %66, align 4, !tbaa !11
  %576 = load float, ptr %86, align 4, !tbaa !11
  %577 = fcmp ogt float %575, %576
  br i1 %577, label %578, label %580

578:                                              ; preds = %574
  %579 = load float, ptr %86, align 4, !tbaa !11
  store float %579, ptr %95, align 4, !tbaa !11
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %580

580:                                              ; preds = %578, %574
  br label %581

581:                                              ; preds = %580, %572
  %582 = load i32, ptr %83, align 4, !tbaa !9
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %584, label %592

584:                                              ; preds = %581
  %585 = load ptr, ptr %32, align 8, !tbaa !5
  %586 = load ptr, ptr %32, align 8, !tbaa !5
  %587 = load ptr, ptr %35, align 8, !tbaa !5
  %588 = load i32, ptr %56, align 4, !tbaa !9
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds float, ptr %587, i64 %589
  %591 = load ptr, ptr %36, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %66, ptr noundef %95, ptr noundef %585, ptr noundef %586, ptr noundef %590, ptr noundef %591, ptr noundef %67)
  br label %592

592:                                              ; preds = %584, %581
  store i32 1, ptr %72, align 4, !tbaa !9
  %593 = load ptr, ptr %32, align 8, !tbaa !5
  %594 = load i32, ptr %593, align 4, !tbaa !9
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr %88, align 4, !tbaa !9
  %596 = load i32, ptr %88, align 4, !tbaa !9
  %597 = load ptr, ptr %32, align 8, !tbaa !5
  %598 = load i32, ptr %597, align 4, !tbaa !9
  %599 = add nsw i32 %596, %598
  store i32 %599, ptr %69, align 4, !tbaa !9
  %600 = load ptr, ptr %32, align 8, !tbaa !5
  %601 = load ptr, ptr %33, align 8, !tbaa !5
  %602 = load i32, ptr %54, align 4, !tbaa !9
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds float, ptr %601, i64 %603
  %605 = load ptr, ptr %34, align 8, !tbaa !5
  %606 = load ptr, ptr %35, align 8, !tbaa !5
  %607 = load i32, ptr %56, align 4, !tbaa !9
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds float, ptr %606, i64 %608
  %610 = load ptr, ptr %36, align 8, !tbaa !5
  %611 = load ptr, ptr %47, align 8, !tbaa !5
  %612 = load i32, ptr %72, align 4, !tbaa !9
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds float, ptr %611, i64 %613
  %615 = load ptr, ptr %47, align 8, !tbaa !5
  %616 = load i32, ptr %88, align 4, !tbaa !9
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds float, ptr %615, i64 %617
  %619 = load ptr, ptr %47, align 8, !tbaa !5
  %620 = load i32, ptr %69, align 4, !tbaa !9
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds float, ptr %619, i64 %621
  call void @sggbal_(ptr noundef @.str.10, ptr noundef %600, ptr noundef %604, ptr noundef %605, ptr noundef %609, ptr noundef %610, ptr noundef %105, ptr noundef %104, ptr noundef %614, ptr noundef %618, ptr noundef %622, ptr noundef %67)
  %623 = load i32, ptr %104, align 4, !tbaa !9
  %624 = add nsw i32 %623, 1
  %625 = load i32, ptr %105, align 4, !tbaa !9
  %626 = sub nsw i32 %624, %625
  store i32 %626, ptr %77, align 4, !tbaa !9
  %627 = load ptr, ptr %32, align 8, !tbaa !5
  %628 = load i32, ptr %627, align 4, !tbaa !9
  %629 = add nsw i32 %628, 1
  %630 = load i32, ptr %105, align 4, !tbaa !9
  %631 = sub nsw i32 %629, %630
  store i32 %631, ptr %73, align 4, !tbaa !9
  %632 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %632, ptr %68, align 4, !tbaa !9
  %633 = load i32, ptr %68, align 4, !tbaa !9
  %634 = load i32, ptr %77, align 4, !tbaa !9
  %635 = add nsw i32 %633, %634
  store i32 %635, ptr %69, align 4, !tbaa !9
  %636 = load ptr, ptr %48, align 8, !tbaa !5
  %637 = load i32, ptr %636, align 4, !tbaa !9
  %638 = add nsw i32 %637, 1
  %639 = load i32, ptr %69, align 4, !tbaa !9
  %640 = sub nsw i32 %638, %639
  store i32 %640, ptr %61, align 4, !tbaa !9
  %641 = load ptr, ptr %35, align 8, !tbaa !5
  %642 = load i32, ptr %105, align 4, !tbaa !9
  %643 = load i32, ptr %105, align 4, !tbaa !9
  %644 = load i32, ptr %55, align 4, !tbaa !9
  %645 = mul nsw i32 %643, %644
  %646 = add nsw i32 %642, %645
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds float, ptr %641, i64 %647
  %649 = load ptr, ptr %36, align 8, !tbaa !5
  %650 = load ptr, ptr %47, align 8, !tbaa !5
  %651 = load i32, ptr %68, align 4, !tbaa !9
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds float, ptr %650, i64 %652
  %654 = load ptr, ptr %47, align 8, !tbaa !5
  %655 = load i32, ptr %69, align 4, !tbaa !9
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds float, ptr %654, i64 %656
  call void @sgeqrf_(ptr noundef %77, ptr noundef %73, ptr noundef %648, ptr noundef %649, ptr noundef %653, ptr noundef %657, ptr noundef %61, ptr noundef %67)
  %658 = load ptr, ptr %48, align 8, !tbaa !5
  %659 = load i32, ptr %658, align 4, !tbaa !9
  %660 = add nsw i32 %659, 1
  %661 = load i32, ptr %69, align 4, !tbaa !9
  %662 = sub nsw i32 %660, %661
  store i32 %662, ptr %61, align 4, !tbaa !9
  %663 = load ptr, ptr %35, align 8, !tbaa !5
  %664 = load i32, ptr %105, align 4, !tbaa !9
  %665 = load i32, ptr %105, align 4, !tbaa !9
  %666 = load i32, ptr %55, align 4, !tbaa !9
  %667 = mul nsw i32 %665, %666
  %668 = add nsw i32 %664, %667
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %663, i64 %669
  %671 = load ptr, ptr %36, align 8, !tbaa !5
  %672 = load ptr, ptr %47, align 8, !tbaa !5
  %673 = load i32, ptr %68, align 4, !tbaa !9
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds float, ptr %672, i64 %674
  %676 = load ptr, ptr %33, align 8, !tbaa !5
  %677 = load i32, ptr %105, align 4, !tbaa !9
  %678 = load i32, ptr %105, align 4, !tbaa !9
  %679 = load i32, ptr %53, align 4, !tbaa !9
  %680 = mul nsw i32 %678, %679
  %681 = add nsw i32 %677, %680
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds float, ptr %676, i64 %682
  %684 = load ptr, ptr %34, align 8, !tbaa !5
  %685 = load ptr, ptr %47, align 8, !tbaa !5
  %686 = load i32, ptr %69, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %685, i64 %687
  call void @sormqr_(ptr noundef @.str.13, ptr noundef @.str.14, ptr noundef %77, ptr noundef %73, ptr noundef %77, ptr noundef %670, ptr noundef %671, ptr noundef %675, ptr noundef %683, ptr noundef %684, ptr noundef %688, ptr noundef %61, ptr noundef %67)
  %689 = load i32, ptr %75, align 4, !tbaa !9
  %690 = icmp ne i32 %689, 0
  br i1 %690, label %691, label %749

691:                                              ; preds = %592
  %692 = load ptr, ptr %32, align 8, !tbaa !5
  %693 = load ptr, ptr %32, align 8, !tbaa !5
  %694 = load ptr, ptr %41, align 8, !tbaa !5
  %695 = load i32, ptr %58, align 4, !tbaa !9
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds float, ptr %694, i64 %696
  %698 = load ptr, ptr %42, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.15, ptr noundef %692, ptr noundef %693, ptr noundef @c_b42, ptr noundef @c_b43, ptr noundef %697, ptr noundef %698)
  %699 = load i32, ptr %77, align 4, !tbaa !9
  %700 = icmp sgt i32 %699, 1
  br i1 %700, label %701, label %726

701:                                              ; preds = %691
  %702 = load i32, ptr %77, align 4, !tbaa !9
  %703 = sub nsw i32 %702, 1
  store i32 %703, ptr %61, align 4, !tbaa !9
  %704 = load i32, ptr %77, align 4, !tbaa !9
  %705 = sub nsw i32 %704, 1
  store i32 %705, ptr %62, align 4, !tbaa !9
  %706 = load ptr, ptr %35, align 8, !tbaa !5
  %707 = load i32, ptr %105, align 4, !tbaa !9
  %708 = add nsw i32 %707, 1
  %709 = load i32, ptr %105, align 4, !tbaa !9
  %710 = load i32, ptr %55, align 4, !tbaa !9
  %711 = mul nsw i32 %709, %710
  %712 = add nsw i32 %708, %711
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds float, ptr %706, i64 %713
  %715 = load ptr, ptr %36, align 8, !tbaa !5
  %716 = load ptr, ptr %41, align 8, !tbaa !5
  %717 = load i32, ptr %105, align 4, !tbaa !9
  %718 = add nsw i32 %717, 1
  %719 = load i32, ptr %105, align 4, !tbaa !9
  %720 = load i32, ptr %57, align 4, !tbaa !9
  %721 = mul nsw i32 %719, %720
  %722 = add nsw i32 %718, %721
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds float, ptr %716, i64 %723
  %725 = load ptr, ptr %42, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.13, ptr noundef %61, ptr noundef %62, ptr noundef %714, ptr noundef %715, ptr noundef %724, ptr noundef %725)
  br label %726

726:                                              ; preds = %701, %691
  %727 = load ptr, ptr %48, align 8, !tbaa !5
  %728 = load i32, ptr %727, align 4, !tbaa !9
  %729 = add nsw i32 %728, 1
  %730 = load i32, ptr %69, align 4, !tbaa !9
  %731 = sub nsw i32 %729, %730
  store i32 %731, ptr %61, align 4, !tbaa !9
  %732 = load ptr, ptr %41, align 8, !tbaa !5
  %733 = load i32, ptr %105, align 4, !tbaa !9
  %734 = load i32, ptr %105, align 4, !tbaa !9
  %735 = load i32, ptr %57, align 4, !tbaa !9
  %736 = mul nsw i32 %734, %735
  %737 = add nsw i32 %733, %736
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds float, ptr %732, i64 %738
  %740 = load ptr, ptr %42, align 8, !tbaa !5
  %741 = load ptr, ptr %47, align 8, !tbaa !5
  %742 = load i32, ptr %68, align 4, !tbaa !9
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds float, ptr %741, i64 %743
  %745 = load ptr, ptr %47, align 8, !tbaa !5
  %746 = load i32, ptr %69, align 4, !tbaa !9
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds float, ptr %745, i64 %747
  call void @sorgqr_(ptr noundef %77, ptr noundef %77, ptr noundef %77, ptr noundef %739, ptr noundef %740, ptr noundef %744, ptr noundef %748, ptr noundef %61, ptr noundef %67)
  br label %749

749:                                              ; preds = %726, %592
  %750 = load i32, ptr %76, align 4, !tbaa !9
  %751 = icmp ne i32 %750, 0
  br i1 %751, label %752, label %760

752:                                              ; preds = %749
  %753 = load ptr, ptr %32, align 8, !tbaa !5
  %754 = load ptr, ptr %32, align 8, !tbaa !5
  %755 = load ptr, ptr %43, align 8, !tbaa !5
  %756 = load i32, ptr %60, align 4, !tbaa !9
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds float, ptr %755, i64 %757
  %759 = load ptr, ptr %44, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.15, ptr noundef %753, ptr noundef %754, ptr noundef @c_b42, ptr noundef @c_b43, ptr noundef %758, ptr noundef %759)
  br label %760

760:                                              ; preds = %752, %749
  %761 = load ptr, ptr %27, align 8, !tbaa !5
  %762 = load ptr, ptr %28, align 8, !tbaa !5
  %763 = load ptr, ptr %32, align 8, !tbaa !5
  %764 = load ptr, ptr %33, align 8, !tbaa !5
  %765 = load i32, ptr %54, align 4, !tbaa !9
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds float, ptr %764, i64 %766
  %768 = load ptr, ptr %34, align 8, !tbaa !5
  %769 = load ptr, ptr %35, align 8, !tbaa !5
  %770 = load i32, ptr %56, align 4, !tbaa !9
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds float, ptr %769, i64 %771
  %773 = load ptr, ptr %36, align 8, !tbaa !5
  %774 = load ptr, ptr %41, align 8, !tbaa !5
  %775 = load i32, ptr %58, align 4, !tbaa !9
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds float, ptr %774, i64 %776
  %778 = load ptr, ptr %42, align 8, !tbaa !5
  %779 = load ptr, ptr %43, align 8, !tbaa !5
  %780 = load i32, ptr %60, align 4, !tbaa !9
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds float, ptr %779, i64 %781
  %783 = load ptr, ptr %44, align 8, !tbaa !5
  call void @sgghrd_(ptr noundef %761, ptr noundef %762, ptr noundef %763, ptr noundef %105, ptr noundef %104, ptr noundef %767, ptr noundef %768, ptr noundef %772, ptr noundef %773, ptr noundef %777, ptr noundef %778, ptr noundef %782, ptr noundef %783, ptr noundef %67)
  %784 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 0, ptr %784, align 4, !tbaa !9
  %785 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %785, ptr %69, align 4, !tbaa !9
  %786 = load ptr, ptr %48, align 8, !tbaa !5
  %787 = load i32, ptr %786, align 4, !tbaa !9
  %788 = add nsw i32 %787, 1
  %789 = load i32, ptr %69, align 4, !tbaa !9
  %790 = sub nsw i32 %788, %789
  store i32 %790, ptr %61, align 4, !tbaa !9
  %791 = load ptr, ptr %27, align 8, !tbaa !5
  %792 = load ptr, ptr %28, align 8, !tbaa !5
  %793 = load ptr, ptr %32, align 8, !tbaa !5
  %794 = load ptr, ptr %33, align 8, !tbaa !5
  %795 = load i32, ptr %54, align 4, !tbaa !9
  %796 = sext i32 %795 to i64
  %797 = getelementptr inbounds float, ptr %794, i64 %796
  %798 = load ptr, ptr %34, align 8, !tbaa !5
  %799 = load ptr, ptr %35, align 8, !tbaa !5
  %800 = load i32, ptr %56, align 4, !tbaa !9
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds float, ptr %799, i64 %801
  %803 = load ptr, ptr %36, align 8, !tbaa !5
  %804 = load ptr, ptr %38, align 8, !tbaa !5
  %805 = getelementptr inbounds float, ptr %804, i64 1
  %806 = load ptr, ptr %39, align 8, !tbaa !5
  %807 = getelementptr inbounds float, ptr %806, i64 1
  %808 = load ptr, ptr %40, align 8, !tbaa !5
  %809 = getelementptr inbounds float, ptr %808, i64 1
  %810 = load ptr, ptr %41, align 8, !tbaa !5
  %811 = load i32, ptr %58, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds float, ptr %810, i64 %812
  %814 = load ptr, ptr %42, align 8, !tbaa !5
  %815 = load ptr, ptr %43, align 8, !tbaa !5
  %816 = load i32, ptr %60, align 4, !tbaa !9
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds float, ptr %815, i64 %817
  %819 = load ptr, ptr %44, align 8, !tbaa !5
  %820 = load ptr, ptr %47, align 8, !tbaa !5
  %821 = load i32, ptr %69, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %820, i64 %822
  call void @shgeqz_(ptr noundef @.str.2, ptr noundef %791, ptr noundef %792, ptr noundef %793, ptr noundef %105, ptr noundef %104, ptr noundef %797, ptr noundef %798, ptr noundef %802, ptr noundef %803, ptr noundef %805, ptr noundef %807, ptr noundef %809, ptr noundef %813, ptr noundef %814, ptr noundef %818, ptr noundef %819, ptr noundef %823, ptr noundef %61, ptr noundef %67)
  %824 = load i32, ptr %67, align 4, !tbaa !9
  %825 = icmp ne i32 %824, 0
  br i1 %825, label %826, label %861

826:                                              ; preds = %760
  %827 = load i32, ptr %67, align 4, !tbaa !9
  %828 = icmp sgt i32 %827, 0
  br i1 %828, label %829, label %837

829:                                              ; preds = %826
  %830 = load i32, ptr %67, align 4, !tbaa !9
  %831 = load ptr, ptr %32, align 8, !tbaa !5
  %832 = load i32, ptr %831, align 4, !tbaa !9
  %833 = icmp sle i32 %830, %832
  br i1 %833, label %834, label %837

834:                                              ; preds = %829
  %835 = load i32, ptr %67, align 4, !tbaa !9
  %836 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 %835, ptr %836, align 4, !tbaa !9
  br label %860

837:                                              ; preds = %829, %826
  %838 = load i32, ptr %67, align 4, !tbaa !9
  %839 = load ptr, ptr %32, align 8, !tbaa !5
  %840 = load i32, ptr %839, align 4, !tbaa !9
  %841 = icmp sgt i32 %838, %840
  br i1 %841, label %842, label %854

842:                                              ; preds = %837
  %843 = load i32, ptr %67, align 4, !tbaa !9
  %844 = load ptr, ptr %32, align 8, !tbaa !5
  %845 = load i32, ptr %844, align 4, !tbaa !9
  %846 = shl i32 %845, 1
  %847 = icmp sle i32 %843, %846
  br i1 %847, label %848, label %854

848:                                              ; preds = %842
  %849 = load i32, ptr %67, align 4, !tbaa !9
  %850 = load ptr, ptr %32, align 8, !tbaa !5
  %851 = load i32, ptr %850, align 4, !tbaa !9
  %852 = sub nsw i32 %849, %851
  %853 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 %852, ptr %853, align 4, !tbaa !9
  br label %859

854:                                              ; preds = %842, %837
  %855 = load ptr, ptr %32, align 8, !tbaa !5
  %856 = load i32, ptr %855, align 4, !tbaa !9
  %857 = add nsw i32 %856, 1
  %858 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 %857, ptr %858, align 4, !tbaa !9
  br label %859

859:                                              ; preds = %854, %848
  br label %860

860:                                              ; preds = %859, %834
  br label %1468

861:                                              ; preds = %760
  %862 = load i32, ptr %100, align 4, !tbaa !9
  %863 = icmp ne i32 %862, 0
  br i1 %863, label %864, label %1022

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

867:                                              ; preds = %864
  %868 = load ptr, ptr %32, align 8, !tbaa !5
  %869 = load ptr, ptr %38, align 8, !tbaa !5
  %870 = getelementptr inbounds float, ptr %869, i64 1
  %871 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %94, ptr noundef %65, ptr noundef %868, ptr noundef @c__1, ptr noundef %870, ptr noundef %871, ptr noundef %67)
  %872 = load ptr, ptr %32, align 8, !tbaa !5
  %873 = load ptr, ptr %39, align 8, !tbaa !5
  %874 = getelementptr inbounds float, ptr %873, i64 1
  %875 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %94, ptr noundef %65, ptr noundef %872, ptr noundef @c__1, ptr noundef %874, ptr noundef %875, ptr noundef %67)
  br label %876

876:                                              ; preds = %867, %864
  %877 = load i32, ptr %83, align 4, !tbaa !9
  %878 = icmp ne i32 %877, 0
  br i1 %878, label %879, label %884

879:                                              ; preds = %876
  %880 = load ptr, ptr %32, align 8, !tbaa !5
  %881 = load ptr, ptr %40, align 8, !tbaa !5
  %882 = getelementptr inbounds float, ptr %881, i64 1
  %883 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %95, ptr noundef %66, ptr noundef %880, ptr noundef @c__1, ptr noundef %882, ptr noundef %883, ptr noundef %67)
  br label %884

884:                                              ; preds = %879, %876
  %885 = load ptr, ptr %32, align 8, !tbaa !5
  %886 = load i32, ptr %885, align 4, !tbaa !9
  store i32 %886, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %887

887:                                              ; preds = %910, %884
  %888 = load i32, ptr %71, align 4, !tbaa !9
  %889 = load i32, ptr %61, align 4, !tbaa !9
  %890 = icmp sle i32 %888, %889
  br i1 %890, label %891, label %913

891:                                              ; preds = %887
  %892 = load ptr, ptr %30, align 8, !tbaa !5
  %893 = load ptr, ptr %38, align 8, !tbaa !5
  %894 = load i32, ptr %71, align 4, !tbaa !9
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds float, ptr %893, i64 %895
  %897 = load ptr, ptr %39, align 8, !tbaa !5
  %898 = load i32, ptr %71, align 4, !tbaa !9
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds float, ptr %897, i64 %899
  %901 = load ptr, ptr %40, align 8, !tbaa !5
  %902 = load i32, ptr %71, align 4, !tbaa !9
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds float, ptr %901, i64 %903
  %905 = call i32 (ptr, ptr, ptr, ...) %892(ptr noundef %896, ptr noundef %900, ptr noundef %904)
  %906 = load ptr, ptr %51, align 8, !tbaa !5
  %907 = load i32, ptr %71, align 4, !tbaa !9
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds i32, ptr %906, i64 %908
  store i32 %905, ptr %909, align 4, !tbaa !9
  br label %910

910:                                              ; preds = %891
  %911 = load i32, ptr %71, align 4, !tbaa !9
  %912 = add nsw i32 %911, 1
  store i32 %912, ptr %71, align 4, !tbaa !9
  br label %887, !llvm.loop !13

913:                                              ; preds = %887
  %914 = load ptr, ptr %48, align 8, !tbaa !5
  %915 = load i32, ptr %914, align 4, !tbaa !9
  %916 = load i32, ptr %69, align 4, !tbaa !9
  %917 = sub nsw i32 %915, %916
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr %61, align 4, !tbaa !9
  %919 = load ptr, ptr %51, align 8, !tbaa !5
  %920 = getelementptr inbounds i32, ptr %919, i64 1
  %921 = load ptr, ptr %32, align 8, !tbaa !5
  %922 = load ptr, ptr %33, align 8, !tbaa !5
  %923 = load i32, ptr %54, align 4, !tbaa !9
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds float, ptr %922, i64 %924
  %926 = load ptr, ptr %34, align 8, !tbaa !5
  %927 = load ptr, ptr %35, align 8, !tbaa !5
  %928 = load i32, ptr %56, align 4, !tbaa !9
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds float, ptr %927, i64 %929
  %931 = load ptr, ptr %36, align 8, !tbaa !5
  %932 = load ptr, ptr %38, align 8, !tbaa !5
  %933 = getelementptr inbounds float, ptr %932, i64 1
  %934 = load ptr, ptr %39, align 8, !tbaa !5
  %935 = getelementptr inbounds float, ptr %934, i64 1
  %936 = load ptr, ptr %40, align 8, !tbaa !5
  %937 = getelementptr inbounds float, ptr %936, i64 1
  %938 = load ptr, ptr %41, align 8, !tbaa !5
  %939 = load i32, ptr %58, align 4, !tbaa !9
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds float, ptr %938, i64 %940
  %942 = load ptr, ptr %42, align 8, !tbaa !5
  %943 = load ptr, ptr %43, align 8, !tbaa !5
  %944 = load i32, ptr %60, align 4, !tbaa !9
  %945 = sext i32 %944 to i64
  %946 = getelementptr inbounds float, ptr %943, i64 %945
  %947 = load ptr, ptr %44, align 8, !tbaa !5
  %948 = load ptr, ptr %37, align 8, !tbaa !5
  %949 = getelementptr inbounds [2 x float], ptr %103, i64 0, i64 0
  %950 = load ptr, ptr %47, align 8, !tbaa !5
  %951 = load i32, ptr %69, align 4, !tbaa !9
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds float, ptr %950, i64 %952
  %954 = load ptr, ptr %49, align 8, !tbaa !5
  %955 = getelementptr inbounds i32, ptr %954, i64 1
  %956 = load ptr, ptr %50, align 8, !tbaa !5
  call void @stgsen_(ptr noundef %64, ptr noundef %75, ptr noundef %76, ptr noundef %920, ptr noundef %921, ptr noundef %925, ptr noundef %926, ptr noundef %930, ptr noundef %931, ptr noundef %933, ptr noundef %935, ptr noundef %937, ptr noundef %941, ptr noundef %942, ptr noundef %946, ptr noundef %947, ptr noundef %948, ptr noundef %80, ptr noundef %81, ptr noundef %949, ptr noundef %953, ptr noundef %61, ptr noundef %955, ptr noundef %956, ptr noundef %67)
  %957 = load i32, ptr %64, align 4, !tbaa !9
  %958 = icmp sge i32 %957, 1
  br i1 %958, label %959, label %979

959:                                              ; preds = %913
  %960 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %960, ptr %61, align 4, !tbaa !9
  %961 = load ptr, ptr %37, align 8, !tbaa !5
  %962 = load i32, ptr %961, align 4, !tbaa !9
  %963 = shl i32 %962, 1
  %964 = load ptr, ptr %32, align 8, !tbaa !5
  %965 = load i32, ptr %964, align 4, !tbaa !9
  %966 = load ptr, ptr %37, align 8, !tbaa !5
  %967 = load i32, ptr %966, align 4, !tbaa !9
  %968 = sub nsw i32 %965, %967
  %969 = mul nsw i32 %963, %968
  store i32 %969, ptr %62, align 4, !tbaa !9
  %970 = load i32, ptr %61, align 4, !tbaa !9
  %971 = load i32, ptr %62, align 4, !tbaa !9
  %972 = icmp sge i32 %970, %971
  br i1 %972, label %973, label %975

973:                                              ; preds = %959
  %974 = load i32, ptr %61, align 4, !tbaa !9
  br label %977

975:                                              ; preds = %959
  %976 = load i32, ptr %62, align 4, !tbaa !9
  br label %977

977:                                              ; preds = %975, %973
  %978 = phi i32 [ %974, %973 ], [ %976, %975 ]
  store i32 %978, ptr %97, align 4, !tbaa !9
  br label %979

979:                                              ; preds = %977, %913
  %980 = load i32, ptr %67, align 4, !tbaa !9
  %981 = icmp eq i32 %980, -22
  br i1 %981, label %982, label %984

982:                                              ; preds = %979
  %983 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -22, ptr %983, align 4, !tbaa !9
  br label %1021

984:                                              ; preds = %979
  %985 = load i32, ptr %64, align 4, !tbaa !9
  %986 = icmp eq i32 %985, 1
  br i1 %986, label %990, label %987

987:                                              ; preds = %984
  %988 = load i32, ptr %64, align 4, !tbaa !9
  %989 = icmp eq i32 %988, 4
  br i1 %989, label %990, label %997

990:                                              ; preds = %987, %984
  %991 = load float, ptr %80, align 4, !tbaa !11
  %992 = load ptr, ptr %45, align 8, !tbaa !5
  %993 = getelementptr inbounds float, ptr %992, i64 1
  store float %991, ptr %993, align 4, !tbaa !11
  %994 = load float, ptr %81, align 4, !tbaa !11
  %995 = load ptr, ptr %45, align 8, !tbaa !5
  %996 = getelementptr inbounds float, ptr %995, i64 2
  store float %994, ptr %996, align 4, !tbaa !11
  br label %997

997:                                              ; preds = %990, %987
  %998 = load i32, ptr %64, align 4, !tbaa !9
  %999 = icmp eq i32 %998, 2
  br i1 %999, label %1003, label %1000

1000:                                             ; preds = %997
  %1001 = load i32, ptr %64, align 4, !tbaa !9
  %1002 = icmp eq i32 %1001, 4
  br i1 %1002, label %1003, label %1012

1003:                                             ; preds = %1000, %997
  %1004 = getelementptr inbounds [2 x float], ptr %103, i64 0, i64 0
  %1005 = load float, ptr %1004, align 4, !tbaa !11
  %1006 = load ptr, ptr %46, align 8, !tbaa !5
  %1007 = getelementptr inbounds float, ptr %1006, i64 1
  store float %1005, ptr %1007, align 4, !tbaa !11
  %1008 = getelementptr inbounds [2 x float], ptr %103, i64 0, i64 1
  %1009 = load float, ptr %1008, align 4, !tbaa !11
  %1010 = load ptr, ptr %46, align 8, !tbaa !5
  %1011 = getelementptr inbounds float, ptr %1010, i64 2
  store float %1009, ptr %1011, align 4, !tbaa !11
  br label %1012

1012:                                             ; preds = %1003, %1000
  %1013 = load i32, ptr %67, align 4, !tbaa !9
  %1014 = icmp eq i32 %1013, 1
  br i1 %1014, label %1015, label %1020

1015:                                             ; preds = %1012
  %1016 = load ptr, ptr %32, align 8, !tbaa !5
  %1017 = load i32, ptr %1016, align 4, !tbaa !9
  %1018 = add nsw i32 %1017, 3
  %1019 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 %1018, ptr %1019, align 4, !tbaa !9
  br label %1020

1020:                                             ; preds = %1015, %1012
  br label %1021

1021:                                             ; preds = %1020, %982
  br label %1022

1022:                                             ; preds = %1021, %861
  %1023 = load i32, ptr %75, align 4, !tbaa !9
  %1024 = icmp ne i32 %1023, 0
  br i1 %1024, label %1025, label %1041

1025:                                             ; preds = %1022
  %1026 = load ptr, ptr %32, align 8, !tbaa !5
  %1027 = load ptr, ptr %47, align 8, !tbaa !5
  %1028 = load i32, ptr %72, align 4, !tbaa !9
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds float, ptr %1027, i64 %1029
  %1031 = load ptr, ptr %47, align 8, !tbaa !5
  %1032 = load i32, ptr %88, align 4, !tbaa !9
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds float, ptr %1031, i64 %1033
  %1035 = load ptr, ptr %32, align 8, !tbaa !5
  %1036 = load ptr, ptr %41, align 8, !tbaa !5
  %1037 = load i32, ptr %58, align 4, !tbaa !9
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds float, ptr %1036, i64 %1038
  %1040 = load ptr, ptr %42, align 8, !tbaa !5
  call void @sggbak_(ptr noundef @.str.10, ptr noundef @.str.13, ptr noundef %1026, ptr noundef %105, ptr noundef %104, ptr noundef %1030, ptr noundef %1034, ptr noundef %1035, ptr noundef %1039, ptr noundef %1040, ptr noundef %67)
  br label %1041

1041:                                             ; preds = %1025, %1022
  %1042 = load i32, ptr %76, align 4, !tbaa !9
  %1043 = icmp ne i32 %1042, 0
  br i1 %1043, label %1044, label %1060

1044:                                             ; preds = %1041
  %1045 = load ptr, ptr %32, align 8, !tbaa !5
  %1046 = load ptr, ptr %47, align 8, !tbaa !5
  %1047 = load i32, ptr %72, align 4, !tbaa !9
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds float, ptr %1046, i64 %1048
  %1050 = load ptr, ptr %47, align 8, !tbaa !5
  %1051 = load i32, ptr %88, align 4, !tbaa !9
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds float, ptr %1050, i64 %1052
  %1054 = load ptr, ptr %32, align 8, !tbaa !5
  %1055 = load ptr, ptr %43, align 8, !tbaa !5
  %1056 = load i32, ptr %60, align 4, !tbaa !9
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds float, ptr %1055, i64 %1057
  %1059 = load ptr, ptr %44, align 8, !tbaa !5
  call void @sggbak_(ptr noundef @.str.10, ptr noundef @.str.16, ptr noundef %1045, ptr noundef %105, ptr noundef %104, ptr noundef %1049, ptr noundef %1053, ptr noundef %1054, ptr noundef %1058, ptr noundef %1059, ptr noundef %67)
  br label %1060

1060:                                             ; preds = %1044, %1041
  %1061 = load i32, ptr %82, align 4, !tbaa !9
  %1062 = icmp ne i32 %1061, 0
  br i1 %1062, label %1063, label %1241

1063:                                             ; preds = %1060
  %1064 = load ptr, ptr %32, align 8, !tbaa !5
  %1065 = load i32, ptr %1064, align 4, !tbaa !9
  store i32 %1065, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1066

1066:                                             ; preds = %1237, %1063
  %1067 = load i32, ptr %71, align 4, !tbaa !9
  %1068 = load i32, ptr %61, align 4, !tbaa !9
  %1069 = icmp sle i32 %1067, %1068
  br i1 %1069, label %1070, label %1240

1070:                                             ; preds = %1066
  %1071 = load ptr, ptr %39, align 8, !tbaa !5
  %1072 = load i32, ptr %71, align 4, !tbaa !9
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds float, ptr %1071, i64 %1073
  %1075 = load float, ptr %1074, align 4, !tbaa !11
  %1076 = fcmp une float %1075, 0.000000e+00
  br i1 %1076, label %1077, label %1236

1077:                                             ; preds = %1070
  %1078 = load ptr, ptr %38, align 8, !tbaa !5
  %1079 = load i32, ptr %71, align 4, !tbaa !9
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds float, ptr %1078, i64 %1080
  %1082 = load float, ptr %1081, align 4, !tbaa !11
  %1083 = load float, ptr %85, align 4, !tbaa !11
  %1084 = fdiv float %1082, %1083
  %1085 = load float, ptr %94, align 4, !tbaa !11
  %1086 = load float, ptr %65, align 4, !tbaa !11
  %1087 = fdiv float %1085, %1086
  %1088 = fcmp ogt float %1084, %1087
  br i1 %1088, label %1101, label %1089

1089:                                             ; preds = %1077
  %1090 = load float, ptr %84, align 4, !tbaa !11
  %1091 = load ptr, ptr %38, align 8, !tbaa !5
  %1092 = load i32, ptr %71, align 4, !tbaa !9
  %1093 = sext i32 %1092 to i64
  %1094 = getelementptr inbounds float, ptr %1091, i64 %1093
  %1095 = load float, ptr %1094, align 4, !tbaa !11
  %1096 = fdiv float %1090, %1095
  %1097 = load float, ptr %65, align 4, !tbaa !11
  %1098 = load float, ptr %94, align 4, !tbaa !11
  %1099 = fdiv float %1097, %1098
  %1100 = fcmp ogt float %1096, %1099
  br i1 %1100, label %1101, label %1155

1101:                                             ; preds = %1089, %1077
  %1102 = load ptr, ptr %33, align 8, !tbaa !5
  %1103 = load i32, ptr %71, align 4, !tbaa !9
  %1104 = load i32, ptr %71, align 4, !tbaa !9
  %1105 = load i32, ptr %53, align 4, !tbaa !9
  %1106 = mul nsw i32 %1104, %1105
  %1107 = add nsw i32 %1103, %1106
  %1108 = sext i32 %1107 to i64
  %1109 = getelementptr inbounds float, ptr %1102, i64 %1108
  %1110 = load float, ptr %1109, align 4, !tbaa !11
  %1111 = load ptr, ptr %38, align 8, !tbaa !5
  %1112 = load i32, ptr %71, align 4, !tbaa !9
  %1113 = sext i32 %1112 to i64
  %1114 = getelementptr inbounds float, ptr %1111, i64 %1113
  %1115 = load float, ptr %1114, align 4, !tbaa !11
  %1116 = fdiv float %1110, %1115
  store float %1116, ptr %63, align 4, !tbaa !11
  %1117 = load float, ptr %63, align 4, !tbaa !11
  %1118 = fcmp oge float %1117, 0.000000e+00
  br i1 %1118, label %1119, label %1121

1119:                                             ; preds = %1101
  %1120 = load float, ptr %63, align 4, !tbaa !11
  br label %1124

1121:                                             ; preds = %1101
  %1122 = load float, ptr %63, align 4, !tbaa !11
  %1123 = fneg float %1122
  br label %1124

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

1155:                                             ; preds = %1089
  %1156 = load ptr, ptr %39, align 8, !tbaa !5
  %1157 = load i32, ptr %71, align 4, !tbaa !9
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds float, ptr %1156, i64 %1158
  %1160 = load float, ptr %1159, align 4, !tbaa !11
  %1161 = load float, ptr %85, align 4, !tbaa !11
  %1162 = fdiv float %1160, %1161
  %1163 = load float, ptr %94, align 4, !tbaa !11
  %1164 = load float, ptr %65, align 4, !tbaa !11
  %1165 = fdiv float %1163, %1164
  %1166 = fcmp ogt float %1162, %1165
  br i1 %1166, label %1179, label %1167

1167:                                             ; preds = %1155
  %1168 = load float, ptr %84, align 4, !tbaa !11
  %1169 = load ptr, ptr %39, align 8, !tbaa !5
  %1170 = load i32, ptr %71, align 4, !tbaa !9
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds float, ptr %1169, i64 %1171
  %1173 = load float, ptr %1172, align 4, !tbaa !11
  %1174 = fdiv float %1168, %1173
  %1175 = load float, ptr %65, align 4, !tbaa !11
  %1176 = load float, ptr %94, align 4, !tbaa !11
  %1177 = fdiv float %1175, %1176
  %1178 = fcmp ogt float %1174, %1177
  br i1 %1178, label %1179, label %1234

1179:                                             ; preds = %1167, %1155
  %1180 = load ptr, ptr %33, align 8, !tbaa !5
  %1181 = load i32, ptr %71, align 4, !tbaa !9
  %1182 = load i32, ptr %71, align 4, !tbaa !9
  %1183 = add nsw i32 %1182, 1
  %1184 = load i32, ptr %53, align 4, !tbaa !9
  %1185 = mul nsw i32 %1183, %1184
  %1186 = add nsw i32 %1181, %1185
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds float, ptr %1180, i64 %1187
  %1189 = load float, ptr %1188, align 4, !tbaa !11
  %1190 = load ptr, ptr %39, align 8, !tbaa !5
  %1191 = load i32, ptr %71, align 4, !tbaa !9
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds float, ptr %1190, i64 %1192
  %1194 = load float, ptr %1193, align 4, !tbaa !11
  %1195 = fdiv float %1189, %1194
  store float %1195, ptr %63, align 4, !tbaa !11
  %1196 = load float, ptr %63, align 4, !tbaa !11
  %1197 = fcmp oge float %1196, 0.000000e+00
  br i1 %1197, label %1198, label %1200

1198:                                             ; preds = %1179
  %1199 = load float, ptr %63, align 4, !tbaa !11
  br label %1203

1200:                                             ; preds = %1179
  %1201 = load float, ptr %63, align 4, !tbaa !11
  %1202 = fneg float %1201
  br label %1203

1203:                                             ; preds = %1200, %1198
  %1204 = phi float [ %1199, %1198 ], [ %1202, %1200 ]
  %1205 = load ptr, ptr %47, align 8, !tbaa !5
  %1206 = getelementptr inbounds float, ptr %1205, i64 1
  store float %1204, ptr %1206, align 4, !tbaa !11
  %1207 = load ptr, ptr %47, align 8, !tbaa !5
  %1208 = getelementptr inbounds float, ptr %1207, i64 1
  %1209 = load float, ptr %1208, align 4, !tbaa !11
  %1210 = load ptr, ptr %40, align 8, !tbaa !5
  %1211 = load i32, ptr %71, align 4, !tbaa !9
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds float, ptr %1210, i64 %1212
  %1214 = load float, ptr %1213, align 4, !tbaa !11
  %1215 = fmul float %1214, %1209
  store float %1215, ptr %1213, align 4, !tbaa !11
  %1216 = load ptr, ptr %47, align 8, !tbaa !5
  %1217 = getelementptr inbounds float, ptr %1216, i64 1
  %1218 = load float, ptr %1217, align 4, !tbaa !11
  %1219 = load ptr, ptr %38, align 8, !tbaa !5
  %1220 = load i32, ptr %71, align 4, !tbaa !9
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds float, ptr %1219, i64 %1221
  %1223 = load float, ptr %1222, align 4, !tbaa !11
  %1224 = fmul float %1223, %1218
  store float %1224, ptr %1222, align 4, !tbaa !11
  %1225 = load ptr, ptr %47, align 8, !tbaa !5
  %1226 = getelementptr inbounds float, ptr %1225, i64 1
  %1227 = load float, ptr %1226, align 4, !tbaa !11
  %1228 = load ptr, ptr %39, align 8, !tbaa !5
  %1229 = load i32, ptr %71, align 4, !tbaa !9
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds float, ptr %1228, i64 %1230
  %1232 = load float, ptr %1231, align 4, !tbaa !11
  %1233 = fmul float %1232, %1227
  store float %1233, ptr %1231, align 4, !tbaa !11
  br label %1234

1234:                                             ; preds = %1203, %1167
  br label %1235

1235:                                             ; preds = %1234, %1124
  br label %1236

1236:                                             ; preds = %1235, %1070
  br label %1237

1237:                                             ; preds = %1236
  %1238 = load i32, ptr %71, align 4, !tbaa !9
  %1239 = add nsw i32 %1238, 1
  store i32 %1239, ptr %71, align 4, !tbaa !9
  br label %1066, !llvm.loop !15

1240:                                             ; preds = %1066
  br label %1241

1241:                                             ; preds = %1240, %1060
  %1242 = load i32, ptr %83, align 4, !tbaa !9
  %1243 = icmp ne i32 %1242, 0
  br i1 %1243, label %1244, label %1342

1244:                                             ; preds = %1241
  %1245 = load ptr, ptr %32, align 8, !tbaa !5
  %1246 = load i32, ptr %1245, align 4, !tbaa !9
  store i32 %1246, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1247

1247:                                             ; preds = %1338, %1244
  %1248 = load i32, ptr %71, align 4, !tbaa !9
  %1249 = load i32, ptr %61, align 4, !tbaa !9
  %1250 = icmp sle i32 %1248, %1249
  br i1 %1250, label %1251, label %1341

1251:                                             ; preds = %1247
  %1252 = load ptr, ptr %39, align 8, !tbaa !5
  %1253 = load i32, ptr %71, align 4, !tbaa !9
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds float, ptr %1252, i64 %1254
  %1256 = load float, ptr %1255, align 4, !tbaa !11
  %1257 = fcmp une float %1256, 0.000000e+00
  br i1 %1257, label %1258, label %1337

1258:                                             ; preds = %1251
  %1259 = load ptr, ptr %40, align 8, !tbaa !5
  %1260 = load i32, ptr %71, align 4, !tbaa !9
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds float, ptr %1259, i64 %1261
  %1263 = load float, ptr %1262, align 4, !tbaa !11
  %1264 = load float, ptr %85, align 4, !tbaa !11
  %1265 = fdiv float %1263, %1264
  %1266 = load float, ptr %95, align 4, !tbaa !11
  %1267 = load float, ptr %66, align 4, !tbaa !11
  %1268 = fdiv float %1266, %1267
  %1269 = fcmp ogt float %1265, %1268
  br i1 %1269, label %1282, label %1270

1270:                                             ; preds = %1258
  %1271 = load float, ptr %84, align 4, !tbaa !11
  %1272 = load ptr, ptr %40, align 8, !tbaa !5
  %1273 = load i32, ptr %71, align 4, !tbaa !9
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds float, ptr %1272, i64 %1274
  %1276 = load float, ptr %1275, align 4, !tbaa !11
  %1277 = fdiv float %1271, %1276
  %1278 = load float, ptr %66, align 4, !tbaa !11
  %1279 = load float, ptr %95, align 4, !tbaa !11
  %1280 = fdiv float %1278, %1279
  %1281 = fcmp ogt float %1277, %1280
  br i1 %1281, label %1282, label %1336

1282:                                             ; preds = %1270, %1258
  %1283 = load ptr, ptr %35, align 8, !tbaa !5
  %1284 = load i32, ptr %71, align 4, !tbaa !9
  %1285 = load i32, ptr %71, align 4, !tbaa !9
  %1286 = load i32, ptr %55, align 4, !tbaa !9
  %1287 = mul nsw i32 %1285, %1286
  %1288 = add nsw i32 %1284, %1287
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds float, ptr %1283, i64 %1289
  %1291 = load float, ptr %1290, align 4, !tbaa !11
  %1292 = load ptr, ptr %40, align 8, !tbaa !5
  %1293 = load i32, ptr %71, align 4, !tbaa !9
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1292, i64 %1294
  %1296 = load float, ptr %1295, align 4, !tbaa !11
  %1297 = fdiv float %1291, %1296
  store float %1297, ptr %63, align 4, !tbaa !11
  %1298 = load float, ptr %63, align 4, !tbaa !11
  %1299 = fcmp oge float %1298, 0.000000e+00
  br i1 %1299, label %1300, label %1302

1300:                                             ; preds = %1282
  %1301 = load float, ptr %63, align 4, !tbaa !11
  br label %1305

1302:                                             ; preds = %1282
  %1303 = load float, ptr %63, align 4, !tbaa !11
  %1304 = fneg float %1303
  br label %1305

1305:                                             ; preds = %1302, %1300
  %1306 = phi float [ %1301, %1300 ], [ %1304, %1302 ]
  %1307 = load ptr, ptr %47, align 8, !tbaa !5
  %1308 = getelementptr inbounds float, ptr %1307, i64 1
  store float %1306, ptr %1308, align 4, !tbaa !11
  %1309 = load ptr, ptr %47, align 8, !tbaa !5
  %1310 = getelementptr inbounds float, ptr %1309, i64 1
  %1311 = load float, ptr %1310, align 4, !tbaa !11
  %1312 = load ptr, ptr %40, align 8, !tbaa !5
  %1313 = load i32, ptr %71, align 4, !tbaa !9
  %1314 = sext i32 %1313 to i64
  %1315 = getelementptr inbounds float, ptr %1312, i64 %1314
  %1316 = load float, ptr %1315, align 4, !tbaa !11
  %1317 = fmul float %1316, %1311
  store float %1317, ptr %1315, align 4, !tbaa !11
  %1318 = load ptr, ptr %47, align 8, !tbaa !5
  %1319 = getelementptr inbounds float, ptr %1318, i64 1
  %1320 = load float, ptr %1319, align 4, !tbaa !11
  %1321 = load ptr, ptr %38, align 8, !tbaa !5
  %1322 = load i32, ptr %71, align 4, !tbaa !9
  %1323 = sext i32 %1322 to i64
  %1324 = getelementptr inbounds float, ptr %1321, i64 %1323
  %1325 = load float, ptr %1324, align 4, !tbaa !11
  %1326 = fmul float %1325, %1320
  store float %1326, ptr %1324, align 4, !tbaa !11
  %1327 = load ptr, ptr %47, align 8, !tbaa !5
  %1328 = getelementptr inbounds float, ptr %1327, i64 1
  %1329 = load float, ptr %1328, align 4, !tbaa !11
  %1330 = load ptr, ptr %39, align 8, !tbaa !5
  %1331 = load i32, ptr %71, align 4, !tbaa !9
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds float, ptr %1330, i64 %1332
  %1334 = load float, ptr %1333, align 4, !tbaa !11
  %1335 = fmul float %1334, %1329
  store float %1335, ptr %1333, align 4, !tbaa !11
  br label %1336

1336:                                             ; preds = %1305, %1270
  br label %1337

1337:                                             ; preds = %1336, %1251
  br label %1338

1338:                                             ; preds = %1337
  %1339 = load i32, ptr %71, align 4, !tbaa !9
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr %71, align 4, !tbaa !9
  br label %1247, !llvm.loop !16

1341:                                             ; preds = %1247
  br label %1342

1342:                                             ; preds = %1341, %1241
  %1343 = load i32, ptr %82, align 4, !tbaa !9
  %1344 = icmp ne i32 %1343, 0
  br i1 %1344, label %1345, label %1361

1345:                                             ; preds = %1342
  %1346 = load ptr, ptr %32, align 8, !tbaa !5
  %1347 = load ptr, ptr %32, align 8, !tbaa !5
  %1348 = load ptr, ptr %33, align 8, !tbaa !5
  %1349 = load i32, ptr %54, align 4, !tbaa !9
  %1350 = sext i32 %1349 to i64
  %1351 = getelementptr inbounds float, ptr %1348, i64 %1350
  %1352 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.17, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %94, ptr noundef %65, ptr noundef %1346, ptr noundef %1347, ptr noundef %1351, ptr noundef %1352, ptr noundef %67)
  %1353 = load ptr, ptr %32, align 8, !tbaa !5
  %1354 = load ptr, ptr %38, align 8, !tbaa !5
  %1355 = getelementptr inbounds float, ptr %1354, i64 1
  %1356 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %94, ptr noundef %65, ptr noundef %1353, ptr noundef @c__1, ptr noundef %1355, ptr noundef %1356, ptr noundef %67)
  %1357 = load ptr, ptr %32, align 8, !tbaa !5
  %1358 = load ptr, ptr %39, align 8, !tbaa !5
  %1359 = getelementptr inbounds float, ptr %1358, i64 1
  %1360 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %94, ptr noundef %65, ptr noundef %1357, ptr noundef @c__1, ptr noundef %1359, ptr noundef %1360, ptr noundef %67)
  br label %1361

1361:                                             ; preds = %1345, %1342
  %1362 = load i32, ptr %83, align 4, !tbaa !9
  %1363 = icmp ne i32 %1362, 0
  br i1 %1363, label %1364, label %1376

1364:                                             ; preds = %1361
  %1365 = load ptr, ptr %32, align 8, !tbaa !5
  %1366 = load ptr, ptr %32, align 8, !tbaa !5
  %1367 = load ptr, ptr %35, align 8, !tbaa !5
  %1368 = load i32, ptr %56, align 4, !tbaa !9
  %1369 = sext i32 %1368 to i64
  %1370 = getelementptr inbounds float, ptr %1367, i64 %1369
  %1371 = load ptr, ptr %36, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.18, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %95, ptr noundef %66, ptr noundef %1365, ptr noundef %1366, ptr noundef %1370, ptr noundef %1371, ptr noundef %67)
  %1372 = load ptr, ptr %32, align 8, !tbaa !5
  %1373 = load ptr, ptr %40, align 8, !tbaa !5
  %1374 = getelementptr inbounds float, ptr %1373, i64 1
  %1375 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %95, ptr noundef %66, ptr noundef %1372, ptr noundef @c__1, ptr noundef %1374, ptr noundef %1375, ptr noundef %67)
  br label %1376

1376:                                             ; preds = %1364, %1361
  %1377 = load i32, ptr %100, align 4, !tbaa !9
  %1378 = icmp ne i32 %1377, 0
  br i1 %1378, label %1379, label %1467

1379:                                             ; preds = %1376
  store i32 1, ptr %92, align 4, !tbaa !9
  store i32 1, ptr %78, align 4, !tbaa !9
  %1380 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 0, ptr %1380, align 4, !tbaa !9
  store i32 0, ptr %79, align 4, !tbaa !9
  %1381 = load ptr, ptr %32, align 8, !tbaa !5
  %1382 = load i32, ptr %1381, align 4, !tbaa !9
  store i32 %1382, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1383

1383:                                             ; preds = %1463, %1379
  %1384 = load i32, ptr %71, align 4, !tbaa !9
  %1385 = load i32, ptr %61, align 4, !tbaa !9
  %1386 = icmp sle i32 %1384, %1385
  br i1 %1386, label %1387, label %1466

1387:                                             ; preds = %1383
  %1388 = load ptr, ptr %30, align 8, !tbaa !5
  %1389 = load ptr, ptr %38, align 8, !tbaa !5
  %1390 = load i32, ptr %71, align 4, !tbaa !9
  %1391 = sext i32 %1390 to i64
  %1392 = getelementptr inbounds float, ptr %1389, i64 %1391
  %1393 = load ptr, ptr %39, align 8, !tbaa !5
  %1394 = load i32, ptr %71, align 4, !tbaa !9
  %1395 = sext i32 %1394 to i64
  %1396 = getelementptr inbounds float, ptr %1393, i64 %1395
  %1397 = load ptr, ptr %40, align 8, !tbaa !5
  %1398 = load i32, ptr %71, align 4, !tbaa !9
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds float, ptr %1397, i64 %1399
  %1401 = call i32 (ptr, ptr, ptr, ...) %1388(ptr noundef %1392, ptr noundef %1396, ptr noundef %1400)
  store i32 %1401, ptr %74, align 4, !tbaa !9
  %1402 = load ptr, ptr %39, align 8, !tbaa !5
  %1403 = load i32, ptr %71, align 4, !tbaa !9
  %1404 = sext i32 %1403 to i64
  %1405 = getelementptr inbounds float, ptr %1402, i64 %1404
  %1406 = load float, ptr %1405, align 4, !tbaa !11
  %1407 = fcmp oeq float %1406, 0.000000e+00
  br i1 %1407, label %1408, label %1427

1408:                                             ; preds = %1387
  %1409 = load i32, ptr %74, align 4, !tbaa !9
  %1410 = icmp ne i32 %1409, 0
  br i1 %1410, label %1411, label %1415

1411:                                             ; preds = %1408
  %1412 = load ptr, ptr %37, align 8, !tbaa !5
  %1413 = load i32, ptr %1412, align 4, !tbaa !9
  %1414 = add nsw i32 %1413, 1
  store i32 %1414, ptr %1412, align 4, !tbaa !9
  br label %1415

1415:                                             ; preds = %1411, %1408
  store i32 0, ptr %79, align 4, !tbaa !9
  %1416 = load i32, ptr %74, align 4, !tbaa !9
  %1417 = icmp ne i32 %1416, 0
  br i1 %1417, label %1418, label %1426

1418:                                             ; preds = %1415
  %1419 = load i32, ptr %92, align 4, !tbaa !9
  %1420 = icmp ne i32 %1419, 0
  br i1 %1420, label %1426, label %1421

1421:                                             ; preds = %1418
  %1422 = load ptr, ptr %32, align 8, !tbaa !5
  %1423 = load i32, ptr %1422, align 4, !tbaa !9
  %1424 = add nsw i32 %1423, 2
  %1425 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 %1424, ptr %1425, align 4, !tbaa !9
  br label %1426

1426:                                             ; preds = %1421, %1418, %1415
  br label %1460

1427:                                             ; preds = %1387
  %1428 = load i32, ptr %79, align 4, !tbaa !9
  %1429 = icmp eq i32 %1428, 1
  br i1 %1429, label %1430, label %1458

1430:                                             ; preds = %1427
  %1431 = load i32, ptr %74, align 4, !tbaa !9
  %1432 = icmp ne i32 %1431, 0
  br i1 %1432, label %1436, label %1433

1433:                                             ; preds = %1430
  %1434 = load i32, ptr %92, align 4, !tbaa !9
  %1435 = icmp ne i32 %1434, 0
  br label %1436

1436:                                             ; preds = %1433, %1430
  %1437 = phi i1 [ true, %1430 ], [ %1435, %1433 ]
  %1438 = zext i1 %1437 to i32
  store i32 %1438, ptr %74, align 4, !tbaa !9
  %1439 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1439, ptr %92, align 4, !tbaa !9
  %1440 = load i32, ptr %74, align 4, !tbaa !9
  %1441 = icmp ne i32 %1440, 0
  br i1 %1441, label %1442, label %1446

1442:                                             ; preds = %1436
  %1443 = load ptr, ptr %37, align 8, !tbaa !5
  %1444 = load i32, ptr %1443, align 4, !tbaa !9
  %1445 = add nsw i32 %1444, 2
  store i32 %1445, ptr %1443, align 4, !tbaa !9
  br label %1446

1446:                                             ; preds = %1442, %1436
  store i32 -1, ptr %79, align 4, !tbaa !9
  %1447 = load i32, ptr %74, align 4, !tbaa !9
  %1448 = icmp ne i32 %1447, 0
  br i1 %1448, label %1449, label %1457

1449:                                             ; preds = %1446
  %1450 = load i32, ptr %78, align 4, !tbaa !9
  %1451 = icmp ne i32 %1450, 0
  br i1 %1451, label %1457, label %1452

1452:                                             ; preds = %1449
  %1453 = load ptr, ptr %32, align 8, !tbaa !5
  %1454 = load i32, ptr %1453, align 4, !tbaa !9
  %1455 = add nsw i32 %1454, 2
  %1456 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 %1455, ptr %1456, align 4, !tbaa !9
  br label %1457

1457:                                             ; preds = %1452, %1449, %1446
  br label %1459

1458:                                             ; preds = %1427
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %1459

1459:                                             ; preds = %1458, %1457
  br label %1460

1460:                                             ; preds = %1459, %1426
  %1461 = load i32, ptr %92, align 4, !tbaa !9
  store i32 %1461, ptr %78, align 4, !tbaa !9
  %1462 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1462, ptr %92, align 4, !tbaa !9
  br label %1463

1463:                                             ; preds = %1460
  %1464 = load i32, ptr %71, align 4, !tbaa !9
  %1465 = add nsw i32 %1464, 1
  store i32 %1465, ptr %71, align 4, !tbaa !9
  br label %1383, !llvm.loop !17

1466:                                             ; preds = %1383
  br label %1467

1467:                                             ; preds = %1466, %1376
  br label %1468

1468:                                             ; preds = %1467, %860
  %1469 = load i32, ptr %97, align 4, !tbaa !9
  %1470 = sitofp i32 %1469 to float
  %1471 = load ptr, ptr %47, align 8, !tbaa !5
  %1472 = getelementptr inbounds float, ptr %1471, i64 1
  store float %1470, ptr %1472, align 4, !tbaa !11
  %1473 = load i32, ptr %93, align 4, !tbaa !9
  %1474 = load ptr, ptr %49, align 8, !tbaa !5
  %1475 = getelementptr inbounds i32, ptr %1474, i64 1
  store i32 %1473, ptr %1475, align 4, !tbaa !9
  store i32 1, ptr %107, align 4
  br label %1476

1476:                                             ; preds = %1468, %503, %497, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.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 i32, align 4
@.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 i32, align 4
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.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 void @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 i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca [2 x float], align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 i32, ptr %7, align 4, !tbaa !5
  %narrow = xor i32 %46, -1
  %47 = sext i32 %narrow to i64
  %48 = getelementptr inbounds float, ptr %6, i64 %47
  %49 = load i32, ptr %9, align 4, !tbaa !5
  %narrow553 = xor i32 %49, -1
  %50 = sext i32 %narrow553 to i64
  %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 i32, ptr %15, align 4, !tbaa !5
  %narrow557 = xor i32 %55, -1
  %56 = sext i32 %narrow557 to i64
  %57 = getelementptr inbounds float, ptr %14, i64 %56
  %58 = getelementptr inbounds i8, ptr %20, i64 -4
  %59 = getelementptr inbounds i8, ptr %24, i64 -4
  %60 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %.not = icmp eq i32 %60, 0
  br i1 %.not, label %62, label %61

61:                                               ; preds = %26
  store i32 0, ptr %34, align 4, !tbaa !5
  br label %66

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

64:                                               ; preds = %62
  store i32 1, ptr %34, align 4, !tbaa !5
  br label %66

65:                                               ; preds = %62
  store i32 0, ptr %34, align 4, !tbaa !5
  br label %66

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

69:                                               ; preds = %66
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %74

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

72:                                               ; preds = %70
  store i32 1, ptr %35, align 4, !tbaa !5
  br label %74

73:                                               ; preds = %70
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %74

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

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

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

89:                                               ; preds = %86
  store i32 0, ptr %29, align 4, !tbaa !5
  br label %96

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

91:                                               ; preds = %90
  store i32 1, ptr %29, align 4, !tbaa !5
  br label %96

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

93:                                               ; preds = %92
  store i32 2, ptr %29, align 4, !tbaa !5
  br label %96

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

95:                                               ; preds = %94
  store i32 4, ptr %29, align 4, !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 i32 0, ptr %25, align 4, !tbaa !5
  %brmerge = or i1 %67, %75
  %.mux = select i1 %67, i32 -1, i32 -2
  br i1 %brmerge, label %.thread584.sink.split, label %98

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

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

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

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

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

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

115:                                              ; preds = %112
  %116 = load i32, ptr %15, align 4, !tbaa !5
  %117 = icmp slt i32 %116, 1
  %118 = icmp ult i32 %116, %107
  %or.cond606 = and i1 %118, %.not544
  %or.cond655 = or i1 %117, %or.cond606
  br i1 %or.cond655, label %.thread584.sink.split, label %119

119:                                              ; preds = %115
  %120 = load i32, ptr %17, align 4, !tbaa !5
  %121 = icmp slt i32 %120, 1
  %122 = icmp ult i32 %120, %107
  %or.cond607 = and i1 %122, %.not545
  %or.cond656 = or i1 %121, %or.cond607
  br i1 %or.cond656, label %.thread584.sink.split, label %123

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

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

126:                                              ; preds = %125
  %127 = shl i32 %107, 3
  %128 = mul nuw nsw i32 %107, 6
  %129 = add nuw nsw i32 %128, 16
  %130 = tail call i32 @llvm.smax.i32(i32 %127, i32 %129)
  %131 = sub nsw i32 %130, %107
  %132 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #5
  %133 = mul nsw i32 %132, %107
  %134 = add nsw i32 %131, %133
  store i32 %134, ptr %27, align 4, !tbaa !5
  %135 = load i32, ptr %5, align 4, !tbaa !5
  %136 = sub nsw i32 %130, %135
  %137 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #5
  %138 = mul nsw i32 %137, %135
  %139 = add nsw i32 %138, %136
  store i32 %139, ptr %28, align 4, !tbaa !5
  %140 = tail call i32 @llvm.smax.i32(i32 %134, i32 %139)
  br i1 %.not548, label %148, label %141

141:                                              ; preds = %126
  store i32 %140, ptr %27, align 4, !tbaa !5
  %142 = load i32, ptr %5, align 4, !tbaa !5
  %143 = sub nsw i32 %130, %142
  %144 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #5
  %145 = mul nsw i32 %144, %142
  %146 = add nsw i32 %145, %143
  store i32 %146, ptr %28, align 4, !tbaa !5
  %147 = tail call i32 @llvm.smax.i32(i32 %140, i32 %146)
  br label %148

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

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

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

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

160:                                              ; preds = %156, %154
  %.0497 = phi i32 [ 1, %154 ], [ %spec.select578, %156 ]
  store i32 %.0497, ptr %22, align 4, !tbaa !5
  %161 = load i32, ptr %21, align 4, !tbaa !5
  %162 = icmp sge i32 %161, %.0496
  %or.cond9 = select i1 %162, i1 true, i1 %87
  br i1 %or.cond9, label %163, label %.thread584.sink.split

163:                                              ; preds = %160
  %164 = load i32, ptr %23, align 4, !tbaa !5
  %165 = icmp sge i32 %164, %.0497
  %or.cond11 = select i1 %165, i1 true, i1 %87
  br i1 %or.cond11, label %.thread, label %.thread584.sink.split

.thread:                                          ; preds = %163
  %.pr580.pr = load i32, ptr %25, align 4, !tbaa !5
  %.not551 = icmp eq i32 %.pr580.pr, 0
  br i1 %.not551, label %169, label %.thread584

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

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

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

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

173:                                              ; preds = %170
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %454

174:                                              ; preds = %170
  %175 = tail call float @slamch_(ptr noundef nonnull @.str.10) #5
  %176 = tail call float @slamch_(ptr noundef nonnull @.str.2) #5
  store float %176, ptr %39, align 4, !tbaa !9
  %177 = fdiv float 1.000000e+00, %176
  store float %177, ptr %40, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %39, ptr noundef nonnull %40) #5
  %178 = load float, ptr %39, align 4, !tbaa !9
  %179 = fpext float %178 to double
  %180 = call double @sqrt(double noundef %179) #5
  %181 = fpext float %175 to double
  %182 = fdiv double %180, %181
  %183 = fptrunc double %182 to float
  %184 = fdiv float 1.000000e+00, %183
  %185 = call float @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
  store float %185, ptr %30, align 4, !tbaa !9
  %186 = fcmp ogt float %185, 0.000000e+00
  %187 = fcmp olt float %185, %183
  %or.cond573 = select i1 %186, i1 %187, i1 false
  br i1 %or.cond573, label %190, label %188

188:                                              ; preds = %174
  %189 = fcmp ogt float %185, %184
  br i1 %189, label %190, label %191

190:                                              ; preds = %188, %174
  %storemerge = phi float [ %183, %174 ], [ %184, %188 ]
  store float %storemerge, ptr %41, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %30, ptr noundef nonnull %41, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %32) #5
  br label %191

191:                                              ; preds = %188, %190
  %.not552592 = phi i1 [ false, %190 ], [ true, %188 ]
  %192 = call float @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
  store float %192, ptr %31, align 4, !tbaa !9
  %193 = fcmp ogt float %192, 0.000000e+00
  %194 = fcmp olt float %192, %183
  %or.cond574 = select i1 %193, i1 %194, i1 false
  br i1 %or.cond574, label %197, label %195

195:                                              ; preds = %191
  %196 = fcmp ogt float %192, %184
  br i1 %196, label %197, label %198

197:                                              ; preds = %195, %191
  %storemerge610 = phi float [ %183, %191 ], [ %184, %195 ]
  store float %storemerge610, ptr %42, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %42, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %32) #5
  br label %198

198:                                              ; preds = %195, %197
  %.not554597 = phi i1 [ false, %197 ], [ true, %195 ]
  %199 = load i32, ptr %5, align 4, !tbaa !5
  %200 = add nsw i32 %199, 1
  %201 = add nsw i32 %200, %199
  %202 = sext i32 %200 to i64
  %203 = getelementptr inbounds float, ptr %58, i64 %202
  %204 = sext i32 %201 to i64
  %205 = getelementptr inbounds float, ptr %58, i64 %204
  call void @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 %45, ptr noundef nonnull %44, ptr noundef nonnull %20, ptr noundef nonnull %203, ptr noundef nonnull %205, ptr noundef nonnull %32) #5
  %206 = load i32, ptr %44, align 4, !tbaa !5
  %207 = add nsw i32 %206, 1
  %208 = load i32, ptr %45, align 4, !tbaa !5
  %209 = sub i32 %207, %208
  store i32 %209, ptr %36, align 4, !tbaa !5
  %210 = load i32, ptr %5, align 4, !tbaa !5
  %reass.sub = sub i32 %210, %208
  %211 = add i32 %reass.sub, 1
  store i32 %211, ptr %33, align 4, !tbaa !5
  %212 = add nsw i32 %209, %201
  %213 = load i32, ptr %21, align 4, !tbaa !5
  %reass.sub637 = sub i32 %213, %212
  %214 = add i32 %reass.sub637, 1
  store i32 %214, ptr %27, align 4, !tbaa !5
  %215 = add i32 %49, 1
  %216 = mul i32 %208, %215
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds float, ptr %51, i64 %217
  %219 = sext i32 %212 to i64
  %220 = getelementptr inbounds float, ptr %58, i64 %219
  call void @sgeqrf_(ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef %218, ptr noundef nonnull %9, ptr noundef nonnull %205, ptr noundef nonnull %220, ptr noundef nonnull %27, ptr noundef nonnull %32) #5
  %221 = load i32, ptr %21, align 4, !tbaa !5
  %reass.sub638 = sub i32 %221, %212
  %222 = add i32 %reass.sub638, 1
  store i32 %222, ptr %27, align 4, !tbaa !5
  %223 = load i32, ptr %45, align 4, !tbaa !5
  %224 = mul i32 %223, %215
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds float, ptr %51, i64 %225
  %227 = add i32 %46, 1
  %228 = mul i32 %223, %227
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds float, ptr %48, i64 %229
  call void @sormqr_(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef nonnull %36, ptr noundef %226, ptr noundef nonnull %9, ptr noundef nonnull %205, ptr noundef %230, ptr noundef nonnull %7, ptr noundef nonnull %220, ptr noundef nonnull %27, ptr noundef nonnull %32) #5
  %231 = load i32, ptr %34, align 4, !tbaa !5
  %.not555 = icmp eq i32 %231, 0
  br i1 %.not555, label %255, label %232

232:                                              ; preds = %198
  call void @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
  %233 = load i32, ptr %36, align 4, !tbaa !5
  %234 = icmp sgt i32 %233, 1
  br i1 %234, label %235, label %247

235:                                              ; preds = %232
  %236 = add nsw i32 %233, -1
  store i32 %236, ptr %27, align 4, !tbaa !5
  store i32 %236, ptr %28, align 4, !tbaa !5
  %237 = load i32, ptr %45, align 4, !tbaa !5
  %238 = add nsw i32 %237, 1
  %239 = mul nsw i32 %237, %49
  %240 = add nsw i32 %238, %239
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds float, ptr %51, i64 %241
  %243 = mul nsw i32 %237, %55
  %244 = add nsw i32 %238, %243
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds float, ptr %57, i64 %245
  call void @slacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %242, ptr noundef nonnull %9, ptr noundef %246, ptr noundef nonnull %15) #5
  br label %247

247:                                              ; preds = %235, %232
  %248 = load i32, ptr %21, align 4, !tbaa !5
  %reass.sub639 = sub i32 %248, %212
  %249 = add i32 %reass.sub639, 1
  store i32 %249, ptr %27, align 4, !tbaa !5
  %250 = load i32, ptr %45, align 4, !tbaa !5
  %251 = add i32 %55, 1
  %252 = mul i32 %250, %251
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds float, ptr %57, i64 %253
  call void @sorgqr_(ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef %254, ptr noundef nonnull %15, ptr noundef nonnull %205, ptr noundef nonnull %220, ptr noundef nonnull %27, ptr noundef nonnull %32) #5
  br label %255

255:                                              ; preds = %247, %198
  %256 = load i32, ptr %35, align 4, !tbaa !5
  %.not556 = icmp eq i32 %256, 0
  br i1 %.not556, label %258, label %257

257:                                              ; preds = %255
  call void @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 %258

258:                                              ; preds = %257, %255
  call void @sgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %5, ptr noundef nonnull %45, ptr noundef nonnull %44, 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 %32) #5
  store i32 0, ptr %10, align 4, !tbaa !5
  %259 = load i32, ptr %21, align 4, !tbaa !5
  %reass.sub640 = sub i32 %259, %201
  %260 = add i32 %reass.sub640, 1
  store i32 %260, ptr %27, align 4, !tbaa !5
  call void @shgeqz_(ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %5, ptr noundef nonnull %45, ptr noundef nonnull %44, 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 %205, ptr noundef nonnull %27, ptr noundef nonnull %32) #5
  %261 = load i32, ptr %32, align 4, !tbaa !5
  %.not558 = icmp eq i32 %261, 0
  br i1 %.not558, label %271, label %262

262:                                              ; preds = %258
  %263 = icmp slt i32 %261, 1
  %.pre = load i32, ptr %5, align 4, !tbaa !5
  %.not569 = icmp sgt i32 %261, %.pre
  %or.cond657 = select i1 %263, i1 true, i1 %.not569
  br i1 %or.cond657, label %264, label %.loopexit.sink.split

264:                                              ; preds = %262
  %265 = icmp sle i32 %261, %.pre
  %266 = shl i32 %.pre, 1
  %.not570 = icmp sgt i32 %261, %266
  %or.cond575 = or i1 %265, %.not570
  br i1 %or.cond575, label %269, label %267

267:                                              ; preds = %264
  %268 = sub nsw i32 %261, %.pre
  br label %.loopexit.sink.split

269:                                              ; preds = %264
  %270 = add nsw i32 %.pre, 1
  br label %.loopexit.sink.split

271:                                              ; preds = %258
  br i1 %.not543, label %311, label %272

272:                                              ; preds = %271
  br i1 %.not552592, label %274, label %273

273:                                              ; preds = %272
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %30, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %5, ptr noundef nonnull %32) #5
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %30, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %5, ptr noundef nonnull %32) #5
  br label %274

274:                                              ; preds = %273, %272
  br i1 %.not554597, label %276, label %275

275:                                              ; preds = %274
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %42, ptr noundef nonnull %31, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %13, ptr noundef nonnull %5, ptr noundef nonnull %32) #5
  br label %276

276:                                              ; preds = %275, %274
  %277 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %277, ptr %27, align 4, !tbaa !5
  %.not560617 = icmp slt i32 %277, 1
  br i1 %.not560617, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %276, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 1, %276 ]
  %278 = getelementptr inbounds float, ptr %52, i64 %indvars.iv
  %279 = getelementptr inbounds float, ptr %53, i64 %indvars.iv
  %280 = getelementptr inbounds float, ptr %54, i64 %indvars.iv
  %281 = call i32 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %278, ptr noundef nonnull %279, ptr noundef nonnull %280) #5
  %282 = getelementptr inbounds i32, ptr %59, i64 %indvars.iv
  store i32 %281, ptr %282, align 4, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %283 = load i32, ptr %27, align 4, !tbaa !5
  %284 = sext i32 %283 to i64
  %.not560.not = icmp slt i64 %indvars.iv, %284
  br i1 %.not560.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %276
  %285 = load i32, ptr %21, align 4, !tbaa !5
  %reass.sub641 = sub i32 %285, %201
  %286 = add i32 %reass.sub641, 1
  store i32 %286, ptr %27, align 4, !tbaa !5
  call void @stgsen_(ptr noundef nonnull %29, ptr noundef nonnull %34, ptr noundef nonnull %35, 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 %37, ptr noundef nonnull %38, ptr noundef nonnull %43, ptr noundef nonnull %205, ptr noundef nonnull %27, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %32) #5
  %287 = load i32, ptr %29, align 4
  %288 = icmp sgt i32 %287, 0
  br i1 %288, label %289, label %296

289:                                              ; preds = %._crit_edge
  store i32 %.1, ptr %27, align 4, !tbaa !5
  %290 = load i32, ptr %10, align 4, !tbaa !5
  %291 = shl i32 %290, 1
  %292 = load i32, ptr %5, align 4, !tbaa !5
  %293 = sub nsw i32 %292, %290
  %294 = mul nsw i32 %293, %291
  store i32 %294, ptr %28, align 4, !tbaa !5
  %295 = call i32 @llvm.smax.i32(i32 %.1, i32 %294)
  br label %296

296:                                              ; preds = %289, %._crit_edge
  %.3 = phi i32 [ %295, %289 ], [ %.1, %._crit_edge ]
  %297 = load i32, ptr %32, align 4, !tbaa !5
  %298 = icmp eq i32 %297, -22
  br i1 %298, label %.sink.split, label %299

299:                                              ; preds = %296
  switch i32 %287, label %306 [
    i32 4, label %300
    i32 1, label %300
    i32 2, label %304
  ]

300:                                              ; preds = %299, %299
  %301 = load float, ptr %37, align 4, !tbaa !9
  store float %301, ptr %18, align 4, !tbaa !9
  %302 = load float, ptr %38, align 4, !tbaa !9
  %303 = getelementptr inbounds i8, ptr %18, i64 4
  store float %302, ptr %303, align 4, !tbaa !9
  switch i32 %287, label %306 [
    i32 4, label %304
    i32 2, label %304
  ]

304:                                              ; preds = %299, %300, %300
  %305 = load <2 x float>, ptr %43, align 8, !tbaa !9
  store <2 x float> %305, ptr %19, align 4, !tbaa !9
  br label %306

306:                                              ; preds = %299, %300, %304
  %307 = icmp eq i32 %297, 1
  br i1 %307, label %308, label %311

308:                                              ; preds = %306
  %309 = load i32, ptr %5, align 4, !tbaa !5
  %310 = add nsw i32 %309, 3
  br label %.sink.split

.sink.split:                                      ; preds = %296, %308
  %.sink658 = phi i32 [ %310, %308 ], [ -22, %296 ]
  store i32 %.sink658, ptr %25, align 4, !tbaa !5
  br label %311

311:                                              ; preds = %.sink.split, %306, %271
  %.4 = phi i32 [ %.3, %306 ], [ %.1, %271 ], [ %.3, %.sink.split ]
  %312 = load i32, ptr %34, align 4, !tbaa !5
  %.not562 = icmp eq i32 %312, 0
  br i1 %.not562, label %314, label %313

313:                                              ; preds = %311
  call void @sggbak_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.13, ptr noundef nonnull %5, ptr noundef nonnull %45, ptr noundef nonnull %44, ptr noundef nonnull %20, ptr noundef nonnull %203, ptr noundef nonnull %5, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %32) #5
  br label %314

314:                                              ; preds = %313, %311
  %315 = load i32, ptr %35, align 4, !tbaa !5
  %.not563 = icmp eq i32 %315, 0
  br i1 %.not563, label %317, label %316

316:                                              ; preds = %314
  call void @sggbak_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.16, ptr noundef nonnull %5, ptr noundef nonnull %45, ptr noundef nonnull %44, ptr noundef nonnull %20, ptr noundef nonnull %203, ptr noundef nonnull %5, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %32) #5
  br label %317

317:                                              ; preds = %316, %314
  br i1 %.not552592, label %.loopexit616, label %318

318:                                              ; preds = %317
  %319 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %319, ptr %27, align 4, !tbaa !5
  %.not564619 = icmp slt i32 %319, 1
  br i1 %.not564619, label %.loopexit616, label %.lr.ph622

.lr.ph622:                                        ; preds = %318
  %320 = load float, ptr %40, align 4
  %321 = load float, ptr %41, align 4
  %322 = load float, ptr %30, align 4
  %323 = load float, ptr %39, align 4
  %324 = insertelement <2 x float> poison, float %322, i64 0
  %325 = insertelement <2 x float> %324, float %321, i64 1
  %326 = insertelement <2 x float> poison, float %321, i64 0
  %327 = insertelement <2 x float> %326, float %322, i64 1
  %328 = fdiv <2 x float> %325, %327
  %329 = add nuw i32 %319, 1
  %wide.trip.count = zext i32 %329 to i64
  %330 = insertelement <2 x float> poison, float %323, i64 0
  %331 = insertelement <2 x float> poison, float %320, i64 1
  br label %332

332:                                              ; preds = %.lr.ph622, %375
  %indvars.iv643 = phi i64 [ 1, %.lr.ph622 ], [ %indvars.iv.next644, %375 ]
  %indvars645 = trunc i64 %indvars.iv643 to i32
  %333 = getelementptr inbounds float, ptr %53, i64 %indvars.iv643
  %334 = load float, ptr %333, align 4, !tbaa !9
  %335 = fcmp une float %334, 0.000000e+00
  br i1 %335, label %336, label %375

336:                                              ; preds = %332
  %337 = getelementptr inbounds float, ptr %52, i64 %indvars.iv643
  %338 = load float, ptr %337, align 4, !tbaa !9
  %339 = insertelement <2 x float> %330, float %338, i64 1
  %340 = insertelement <2 x float> %331, float %338, i64 0
  %341 = fdiv <2 x float> %339, %340
  %342 = fcmp ogt <2 x float> %341, %328
  %343 = extractelement <2 x i1> %342, i64 0
  %344 = extractelement <2 x i1> %342, i64 1
  %or.cond = select i1 %344, i1 true, i1 %343
  br i1 %or.cond, label %345, label %349

345:                                              ; preds = %336
  %346 = mul i32 %227, %indvars645
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds float, ptr %48, i64 %347
  br label %.sink.split659

349:                                              ; preds = %336
  %350 = insertelement <2 x float> %330, float %334, i64 1
  %351 = insertelement <2 x float> %331, float %334, i64 0
  %352 = fdiv <2 x float> %350, %351
  %353 = fcmp ogt <2 x float> %352, %328
  %shift = shufflevector <2 x i1> %353, <2 x i1> poison, <2 x i32> <i32 1, i32 poison>
  %354 = or <2 x i1> %shift, %353
  %or.cond577 = extractelement <2 x i1> %354, i64 0
  br i1 %or.cond577, label %355, label %375

355:                                              ; preds = %349
  %356 = add nuw nsw i32 %indvars645, 1
  %357 = mul nsw i32 %356, %46
  %358 = sext i32 %357 to i64
  %359 = getelementptr float, ptr %48, i64 %indvars.iv643
  %360 = getelementptr float, ptr %359, i64 %358
  br label %.sink.split659

.sink.split659:                                   ; preds = %345, %355
  %.sink679 = phi ptr [ %360, %355 ], [ %348, %345 ]
  %.sink678 = phi float [ %334, %355 ], [ %338, %345 ]
  %361 = load float, ptr %.sink679, align 4, !tbaa !9
  %362 = fdiv float %361, %.sink678
  %363 = fcmp oge float %362, 0.000000e+00
  %364 = fneg float %362
  %365 = select i1 %363, float %362, float %364
  store float %365, ptr %20, align 4, !tbaa !9
  %366 = getelementptr inbounds float, ptr %54, i64 %indvars.iv643
  %367 = load float, ptr %366, align 4, !tbaa !9
  %368 = fmul float %367, %365
  store float %368, ptr %366, align 4, !tbaa !9
  %369 = load float, ptr %20, align 4, !tbaa !9
  %370 = load float, ptr %337, align 4, !tbaa !9
  %371 = fmul float %369, %370
  store float %371, ptr %337, align 4, !tbaa !9
  %372 = load float, ptr %20, align 4, !tbaa !9
  %373 = load float, ptr %333, align 4, !tbaa !9
  %374 = fmul float %372, %373
  store float %374, ptr %333, align 4, !tbaa !9
  br label %375

375:                                              ; preds = %.sink.split659, %349, %332
  %indvars.iv.next644 = add nuw nsw i64 %indvars.iv643, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next644, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit616, label %332, !llvm.loop !13

.loopexit616:                                     ; preds = %375, %318, %317
  br i1 %.not554597, label %.loopexit615, label %376

376:                                              ; preds = %.loopexit616
  %377 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %377, ptr %27, align 4, !tbaa !5
  %.not565623 = icmp slt i32 %377, 1
  br i1 %.not565623, label %.loopexit615, label %.lr.ph626

.lr.ph626:                                        ; preds = %376
  %378 = load float, ptr %40, align 4
  %379 = load float, ptr %42, align 4
  %380 = load float, ptr %31, align 4
  %381 = load float, ptr %39, align 4
  %382 = insertelement <2 x float> poison, float %379, i64 0
  %383 = insertelement <2 x float> %382, float %380, i64 1
  %384 = insertelement <2 x float> poison, float %380, i64 0
  %385 = insertelement <2 x float> %384, float %379, i64 1
  %386 = fdiv <2 x float> %383, %385
  %387 = add nuw i32 %377, 1
  %wide.trip.count649 = zext i32 %387 to i64
  %388 = insertelement <2 x float> poison, float %378, i64 0
  br label %389

389:                                              ; preds = %.lr.ph626, %422
  %indvars.iv646 = phi i64 [ 1, %.lr.ph626 ], [ %indvars.iv.next647, %422 ]
  %390 = getelementptr inbounds float, ptr %53, i64 %indvars.iv646
  %391 = load float, ptr %390, align 4, !tbaa !9
  %392 = fcmp une float %391, 0.000000e+00
  br i1 %392, label %393, label %422

393:                                              ; preds = %389
  %394 = getelementptr inbounds float, ptr %54, i64 %indvars.iv646
  %395 = load float, ptr %394, align 4, !tbaa !9
  %396 = insertelement <2 x float> poison, float %395, i64 0
  %397 = insertelement <2 x float> %396, float %381, i64 1
  %398 = insertelement <2 x float> %388, float %395, i64 1
  %399 = fdiv <2 x float> %397, %398
  %400 = fcmp ogt <2 x float> %399, %386
  %401 = extractelement <2 x i1> %400, i64 0
  %402 = extractelement <2 x i1> %400, i64 1
  %or.cond636 = select i1 %401, i1 true, i1 %402
  br i1 %or.cond636, label %403, label %422

403:                                              ; preds = %393
  %404 = trunc nuw nsw i64 %indvars.iv646 to i32
  %405 = mul i32 %215, %404
  %406 = sext i32 %405 to i64
  %407 = getelementptr inbounds float, ptr %51, i64 %406
  %408 = load float, ptr %407, align 4, !tbaa !9
  %409 = fdiv float %408, %395
  %410 = fcmp oge float %409, 0.000000e+00
  %411 = fneg float %409
  %412 = select i1 %410, float %409, float %411
  store float %412, ptr %20, align 4, !tbaa !9
  %413 = load float, ptr %394, align 4, !tbaa !9
  %414 = fmul float %413, %412
  store float %414, ptr %394, align 4, !tbaa !9
  %415 = load float, ptr %20, align 4, !tbaa !9
  %416 = getelementptr inbounds float, ptr %52, i64 %indvars.iv646
  %417 = load float, ptr %416, align 4, !tbaa !9
  %418 = fmul float %415, %417
  store float %418, ptr %416, align 4, !tbaa !9
  %419 = load float, ptr %20, align 4, !tbaa !9
  %420 = load float, ptr %390, align 4, !tbaa !9
  %421 = fmul float %419, %420
  store float %421, ptr %390, align 4, !tbaa !9
  br label %422

422:                                              ; preds = %393, %389, %403
  %indvars.iv.next647 = add nuw nsw i64 %indvars.iv646, 1
  %exitcond650.not = icmp eq i64 %indvars.iv.next647, %wide.trip.count649
  br i1 %exitcond650.not, label %.loopexit615, label %389, !llvm.loop !14

.loopexit615:                                     ; preds = %422, %376, %.loopexit616
  br i1 %.not552592, label %424, label %423

423:                                              ; preds = %.loopexit615
  call void @slascl_(ptr noundef nonnull @.str.17, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %30, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %32) #5
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %30, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %5, ptr noundef nonnull %32) #5
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %30, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull %5, ptr noundef nonnull %32) #5
  br label %424

424:                                              ; preds = %423, %.loopexit615
  br i1 %.not554597, label %426, label %425

425:                                              ; preds = %424
  call void @slascl_(ptr noundef nonnull @.str.18, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %42, ptr noundef nonnull %31, ptr noundef nonnull %5, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %32) #5
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %42, ptr noundef nonnull %31, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %13, ptr noundef nonnull %5, ptr noundef nonnull %32) #5
  br label %426

426:                                              ; preds = %425, %424
  br i1 %.not543, label %.loopexit, label %427

427:                                              ; preds = %426
  store i32 0, ptr %10, align 4, !tbaa !5
  %428 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %428, ptr %27, align 4, !tbaa !5
  %.not566627 = icmp slt i32 %428, 1
  br i1 %.not566627, label %.loopexit, label %.lr.ph633

.lr.ph633:                                        ; preds = %427, %.thread598
  %indvars.iv651 = phi i64 [ %indvars.iv.next652, %.thread598 ], [ 1, %427 ]
  %.0499631 = phi i32 [ %.0508, %.thread598 ], [ 1, %427 ]
  %.0505630 = phi i32 [ %.1506, %.thread598 ], [ 0, %427 ]
  %.0507629 = phi i32 [ %.1500, %.thread598 ], [ 1, %427 ]
  %429 = getelementptr inbounds float, ptr %52, i64 %indvars.iv651
  %430 = getelementptr inbounds float, ptr %53, i64 %indvars.iv651
  %431 = getelementptr inbounds float, ptr %54, i64 %indvars.iv651
  %432 = call i32 (ptr, ptr, ptr, ...) %3(ptr noundef nonnull %429, ptr noundef nonnull %430, ptr noundef nonnull %431) #5
  %433 = load float, ptr %430, align 4, !tbaa !9
  %434 = fcmp oeq float %433, 0.000000e+00
  br i1 %434, label %435, label %439

435:                                              ; preds = %.lr.ph633
  %.not568 = icmp eq i32 %432, 0
  br i1 %.not568, label %.thread598, label %436

436:                                              ; preds = %435
  %437 = load i32, ptr %10, align 4, !tbaa !5
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr %10, align 4, !tbaa !5
  %.not611 = icmp eq i32 %.0499631, 0
  br i1 %.not611, label %.thread598.sink.split, label %.thread598

439:                                              ; preds = %.lr.ph633
  %440 = icmp eq i32 %.0505630, 1
  br i1 %440, label %441, label %.thread598

441:                                              ; preds = %439
  %442 = icmp ne i32 %432, 0
  %443 = icmp ne i32 %.0499631, 0
  %444 = select i1 %442, i1 true, i1 %443
  br i1 %444, label %445, label %.thread598

445:                                              ; preds = %441
  %446 = load i32, ptr %10, align 4, !tbaa !5
  %447 = add nsw i32 %446, 2
  store i32 %447, ptr %10, align 4, !tbaa !5
  %448 = icmp eq i32 %.0507629, 0
  br i1 %448, label %.thread598.sink.split, label %.thread598

.thread598.sink.split:                            ; preds = %445, %436
  %.0508.ph = phi i32 [ %432, %436 ], [ 1, %445 ]
  %.1506.ph = phi i32 [ 0, %436 ], [ -1, %445 ]
  %.1500.ph = phi i32 [ 0, %436 ], [ 1, %445 ]
  %449 = load i32, ptr %5, align 4, !tbaa !5
  %450 = add nsw i32 %449, 2
  store i32 %450, ptr %25, align 4, !tbaa !5
  br label %.thread598

.thread598:                                       ; preds = %.thread598.sink.split, %441, %435, %439, %445, %436
  %.0508 = phi i32 [ %432, %436 ], [ 1, %445 ], [ %432, %439 ], [ 0, %435 ], [ 0, %441 ], [ %.0508.ph, %.thread598.sink.split ]
  %.1506 = phi i32 [ 0, %436 ], [ -1, %445 ], [ 1, %439 ], [ 0, %435 ], [ -1, %441 ], [ %.1506.ph, %.thread598.sink.split ]
  %.1500 = phi i32 [ %.0499631, %436 ], [ 1, %445 ], [ %.0499631, %439 ], [ %.0499631, %435 ], [ 0, %441 ], [ %.1500.ph, %.thread598.sink.split ]
  %indvars.iv.next652 = add nuw nsw i64 %indvars.iv651, 1
  %451 = load i32, ptr %27, align 4, !tbaa !5
  %452 = sext i32 %451 to i64
  %.not566.not = icmp slt i64 %indvars.iv651, %452
  br i1 %.not566.not, label %.lr.ph633, label %.loopexit, !llvm.loop !15

.loopexit.sink.split:                             ; preds = %262, %267, %269
  %.sink682 = phi i32 [ %270, %269 ], [ %268, %267 ], [ %261, %262 ]
  store i32 %.sink682, ptr %25, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread598, %.loopexit.sink.split, %427, %426
  %.5 = phi i32 [ %.4, %426 ], [ %.4, %427 ], [ %.1, %.loopexit.sink.split ], [ %.4, %.thread598 ]
  %453 = sitofp i32 %.5 to float
  store float %453, ptr %20, align 4, !tbaa !9
  store i32 %.0497, ptr %22, align 4, !tbaa !5
  br label %454

454:                                              ; preds = %169, %.loopexit, %173, %.thread584
  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 8, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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