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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b34 = external hidden global float, align 4
@c_b35 = external hidden global float, align 4
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

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

132:                                              ; preds = %17
  store i32 1, ptr %68, align 4, !tbaa !9
  store i32 0, ptr %54, align 4, !tbaa !9
  br label %140

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

137:                                              ; preds = %133
  store i32 2, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %139

138:                                              ; preds = %133
  store i32 -1, ptr %68, align 4, !tbaa !9
  store i32 0, ptr %54, align 4, !tbaa !9
  br label %139

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

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

144:                                              ; preds = %140
  store i32 1, ptr %70, align 4, !tbaa !9
  store i32 0, ptr %55, align 4, !tbaa !9
  br label %152

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

149:                                              ; preds = %145
  store i32 2, ptr %70, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %151

150:                                              ; preds = %145
  store i32 -1, ptr %70, align 4, !tbaa !9
  store i32 0, ptr %55, align 4, !tbaa !9
  br label %151

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

152:                                              ; preds = %151, %144
  %153 = load i32, ptr %54, align 4, !tbaa !9
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %158, label %155

155:                                              ; preds = %152
  %156 = load i32, ptr %55, align 4, !tbaa !9
  %157 = icmp ne i32 %156, 0
  br label %158

158:                                              ; preds = %155, %152
  %159 = phi i1 [ true, %152 ], [ %157, %155 ]
  %160 = zext i1 %159 to i32
  store i32 %160, ptr %79, align 4, !tbaa !9
  %161 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %161, align 4, !tbaa !9
  %162 = load ptr, ptr %33, align 8, !tbaa !5
  %163 = load i32, ptr %162, align 4, !tbaa !9
  %164 = icmp eq i32 %163, -1
  %165 = zext i1 %164 to i32
  store i32 %165, ptr %75, align 4, !tbaa !9
  %166 = load i32, ptr %68, align 4, !tbaa !9
  %167 = icmp sle i32 %166, 0
  br i1 %167, label %168, label %170

168:                                              ; preds = %158
  %169 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %169, align 4, !tbaa !9
  br label %269

170:                                              ; preds = %158
  %171 = load i32, ptr %70, align 4, !tbaa !9
  %172 = icmp sle i32 %171, 0
  br i1 %172, label %173, label %175

173:                                              ; preds = %170
  %174 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %174, align 4, !tbaa !9
  br label %268

175:                                              ; preds = %170
  %176 = load ptr, ptr %20, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = icmp slt i32 %177, 0
  br i1 %178, label %179, label %181

179:                                              ; preds = %175
  %180 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %180, align 4, !tbaa !9
  br label %267

181:                                              ; preds = %175
  %182 = load ptr, ptr %22, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  %184 = load ptr, ptr %20, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = icmp sge i32 1, %185
  br i1 %186, label %187, label %188

187:                                              ; preds = %181
  br label %191

188:                                              ; preds = %181
  %189 = load ptr, ptr %20, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  br label %191

191:                                              ; preds = %188, %187
  %192 = phi i32 [ 1, %187 ], [ %190, %188 ]
  %193 = icmp slt i32 %183, %192
  br i1 %193, label %194, label %196

194:                                              ; preds = %191
  %195 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %195, align 4, !tbaa !9
  br label %266

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

202:                                              ; preds = %196
  br label %206

203:                                              ; preds = %196
  %204 = load ptr, ptr %20, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  br label %206

206:                                              ; preds = %203, %202
  %207 = phi i32 [ 1, %202 ], [ %205, %203 ]
  %208 = icmp slt i32 %198, %207
  br i1 %208, label %209, label %211

209:                                              ; preds = %206
  %210 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -7, ptr %210, align 4, !tbaa !9
  br label %265

211:                                              ; preds = %206
  %212 = load ptr, ptr %29, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = icmp slt i32 %213, 1
  br i1 %214, label %224, label %215

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

218:                                              ; preds = %215
  %219 = load ptr, ptr %29, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = load ptr, ptr %20, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = icmp slt i32 %220, %222
  br i1 %223, label %224, label %226

224:                                              ; preds = %218, %211
  %225 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -12, ptr %225, align 4, !tbaa !9
  br label %264

226:                                              ; preds = %218, %215
  %227 = load ptr, ptr %31, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = icmp slt i32 %228, 1
  br i1 %229, label %239, label %230

230:                                              ; preds = %226
  %231 = load i32, ptr %55, align 4, !tbaa !9
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %233, label %241

233:                                              ; preds = %230
  %234 = load ptr, ptr %31, align 8, !tbaa !5
  %235 = load i32, ptr %234, align 4, !tbaa !9
  %236 = load ptr, ptr %20, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = icmp slt i32 %235, %237
  br i1 %238, label %239, label %241

239:                                              ; preds = %233, %226
  %240 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -14, ptr %240, align 4, !tbaa !9
  br label %263

241:                                              ; preds = %233, %230
  store i32 1, ptr %43, align 4, !tbaa !9
  %242 = load ptr, ptr %20, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = shl i32 %243, 3
  store i32 %244, ptr %44, align 4, !tbaa !9
  %245 = load ptr, ptr %33, align 8, !tbaa !5
  %246 = load i32, ptr %245, align 4, !tbaa !9
  %247 = load i32, ptr %43, align 4, !tbaa !9
  %248 = load i32, ptr %44, align 4, !tbaa !9
  %249 = icmp sge i32 %247, %248
  br i1 %249, label %250, label %252

250:                                              ; preds = %241
  %251 = load i32, ptr %43, align 4, !tbaa !9
  br label %254

252:                                              ; preds = %241
  %253 = load i32, ptr %44, align 4, !tbaa !9
  br label %254

254:                                              ; preds = %252, %250
  %255 = phi i32 [ %251, %250 ], [ %253, %252 ]
  %256 = icmp slt i32 %246, %255
  br i1 %256, label %257, label %262

257:                                              ; preds = %254
  %258 = load i32, ptr %75, align 4, !tbaa !9
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %262, label %260

260:                                              ; preds = %257
  %261 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -16, ptr %261, align 4, !tbaa !9
  br label %262

262:                                              ; preds = %260, %257, %254
  br label %263

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

264:                                              ; preds = %263, %224
  br label %265

265:                                              ; preds = %264, %209
  br label %266

266:                                              ; preds = %265, %194
  br label %267

267:                                              ; preds = %266, %179
  br label %268

268:                                              ; preds = %267, %173
  br label %269

269:                                              ; preds = %268, %168
  %270 = load ptr, ptr %34, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 4, !tbaa !9
  %272 = icmp eq i32 %271, 0
  br i1 %272, label %273, label %532

273:                                              ; preds = %269
  %274 = load ptr, ptr %20, align 8, !tbaa !5
  %275 = load ptr, ptr %20, align 8, !tbaa !5
  %276 = load ptr, ptr %23, align 8, !tbaa !5
  %277 = load i32, ptr %38, align 4, !tbaa !9
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds float, ptr %276, i64 %278
  %280 = load ptr, ptr %24, align 8, !tbaa !5
  %281 = load ptr, ptr %32, align 8, !tbaa !5
  %282 = getelementptr inbounds float, ptr %281, i64 1
  %283 = load ptr, ptr %32, align 8, !tbaa !5
  %284 = getelementptr inbounds float, ptr %283, i64 1
  call void @sgeqrf_(ptr noundef %274, ptr noundef %275, ptr noundef %279, ptr noundef %280, ptr noundef %282, ptr noundef %284, ptr noundef @c_n1, ptr noundef %51)
  store i32 1, ptr %43, align 4, !tbaa !9
  %285 = load ptr, ptr %20, align 8, !tbaa !5
  %286 = load i32, ptr %285, align 4, !tbaa !9
  %287 = shl i32 %286, 3
  store i32 %287, ptr %44, align 4, !tbaa !9
  %288 = load i32, ptr %43, align 4, !tbaa !9
  %289 = load i32, ptr %44, align 4, !tbaa !9
  %290 = icmp sge i32 %288, %289
  br i1 %290, label %291, label %293

291:                                              ; preds = %273
  %292 = load i32, ptr %43, align 4, !tbaa !9
  br label %295

293:                                              ; preds = %273
  %294 = load i32, ptr %44, align 4, !tbaa !9
  br label %295

295:                                              ; preds = %293, %291
  %296 = phi i32 [ %292, %291 ], [ %294, %293 ]
  store i32 %296, ptr %43, align 4, !tbaa !9
  %297 = load ptr, ptr %20, align 8, !tbaa !5
  %298 = load i32, ptr %297, align 4, !tbaa !9
  %299 = mul nsw i32 %298, 3
  %300 = load ptr, ptr %32, align 8, !tbaa !5
  %301 = getelementptr inbounds float, ptr %300, i64 1
  %302 = load float, ptr %301, align 4, !tbaa !11
  %303 = fptosi float %302 to i32
  %304 = add nsw i32 %299, %303
  store i32 %304, ptr %44, align 4, !tbaa !9
  %305 = load i32, ptr %43, align 4, !tbaa !9
  %306 = load i32, ptr %44, align 4, !tbaa !9
  %307 = icmp sge i32 %305, %306
  br i1 %307, label %308, label %310

308:                                              ; preds = %295
  %309 = load i32, ptr %43, align 4, !tbaa !9
  br label %312

310:                                              ; preds = %295
  %311 = load i32, ptr %44, align 4, !tbaa !9
  br label %312

312:                                              ; preds = %310, %308
  %313 = phi i32 [ %309, %308 ], [ %311, %310 ]
  store i32 %313, ptr %74, align 4, !tbaa !9
  %314 = load ptr, ptr %20, align 8, !tbaa !5
  %315 = load ptr, ptr %20, align 8, !tbaa !5
  %316 = load ptr, ptr %20, align 8, !tbaa !5
  %317 = load ptr, ptr %23, align 8, !tbaa !5
  %318 = load i32, ptr %38, align 4, !tbaa !9
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds float, ptr %317, i64 %319
  %321 = load ptr, ptr %24, align 8, !tbaa !5
  %322 = load ptr, ptr %32, align 8, !tbaa !5
  %323 = getelementptr inbounds float, ptr %322, i64 1
  %324 = load ptr, ptr %21, align 8, !tbaa !5
  %325 = load i32, ptr %36, align 4, !tbaa !9
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds float, ptr %324, i64 %326
  %328 = load ptr, ptr %22, align 8, !tbaa !5
  %329 = load ptr, ptr %32, align 8, !tbaa !5
  %330 = getelementptr inbounds float, ptr %329, i64 1
  call void @sormqr_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %314, ptr noundef %315, ptr noundef %316, ptr noundef %320, ptr noundef %321, ptr noundef %323, ptr noundef %327, ptr noundef %328, ptr noundef %330, ptr noundef @c_n1, ptr noundef %51)
  %331 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %331, ptr %43, align 4, !tbaa !9
  %332 = load ptr, ptr %20, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = mul nsw i32 %333, 3
  %335 = load ptr, ptr %32, align 8, !tbaa !5
  %336 = getelementptr inbounds float, ptr %335, i64 1
  %337 = load float, ptr %336, align 4, !tbaa !11
  %338 = fptosi float %337 to i32
  %339 = add nsw i32 %334, %338
  store i32 %339, ptr %44, align 4, !tbaa !9
  %340 = load i32, ptr %43, align 4, !tbaa !9
  %341 = load i32, ptr %44, align 4, !tbaa !9
  %342 = icmp sge i32 %340, %341
  br i1 %342, label %343, label %345

343:                                              ; preds = %312
  %344 = load i32, ptr %43, align 4, !tbaa !9
  br label %347

345:                                              ; preds = %312
  %346 = load i32, ptr %44, align 4, !tbaa !9
  br label %347

347:                                              ; preds = %345, %343
  %348 = phi i32 [ %344, %343 ], [ %346, %345 ]
  store i32 %348, ptr %74, align 4, !tbaa !9
  %349 = load ptr, ptr %18, align 8, !tbaa !5
  %350 = load ptr, ptr %19, align 8, !tbaa !5
  %351 = load ptr, ptr %20, align 8, !tbaa !5
  %352 = load ptr, ptr %20, align 8, !tbaa !5
  %353 = load ptr, ptr %21, align 8, !tbaa !5
  %354 = load i32, ptr %36, align 4, !tbaa !9
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds float, ptr %353, i64 %355
  %357 = load ptr, ptr %22, align 8, !tbaa !5
  %358 = load ptr, ptr %23, align 8, !tbaa !5
  %359 = load i32, ptr %38, align 4, !tbaa !9
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds float, ptr %358, i64 %360
  %362 = load ptr, ptr %24, align 8, !tbaa !5
  %363 = load ptr, ptr %28, align 8, !tbaa !5
  %364 = load i32, ptr %40, align 4, !tbaa !9
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds float, ptr %363, i64 %365
  %367 = load ptr, ptr %29, align 8, !tbaa !5
  %368 = load ptr, ptr %30, align 8, !tbaa !5
  %369 = load i32, ptr %42, align 4, !tbaa !9
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds float, ptr %368, i64 %370
  %372 = load ptr, ptr %31, align 8, !tbaa !5
  %373 = load ptr, ptr %32, align 8, !tbaa !5
  %374 = getelementptr inbounds float, ptr %373, i64 1
  call void @sgghd3_(ptr noundef %349, ptr noundef %350, ptr noundef %351, ptr noundef @c__1, ptr noundef %352, ptr noundef %356, ptr noundef %357, ptr noundef %361, ptr noundef %362, ptr noundef %366, ptr noundef %367, ptr noundef %371, ptr noundef %372, ptr noundef %374, ptr noundef @c_n1, ptr noundef %51)
  %375 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %375, ptr %43, align 4, !tbaa !9
  %376 = load ptr, ptr %20, align 8, !tbaa !5
  %377 = load i32, ptr %376, align 4, !tbaa !9
  %378 = mul nsw i32 %377, 3
  %379 = load ptr, ptr %32, align 8, !tbaa !5
  %380 = getelementptr inbounds float, ptr %379, i64 1
  %381 = load float, ptr %380, align 4, !tbaa !11
  %382 = fptosi float %381 to i32
  %383 = add nsw i32 %378, %382
  store i32 %383, ptr %44, align 4, !tbaa !9
  %384 = load i32, ptr %43, align 4, !tbaa !9
  %385 = load i32, ptr %44, align 4, !tbaa !9
  %386 = icmp sge i32 %384, %385
  br i1 %386, label %387, label %389

387:                                              ; preds = %347
  %388 = load i32, ptr %43, align 4, !tbaa !9
  br label %391

389:                                              ; preds = %347
  %390 = load i32, ptr %44, align 4, !tbaa !9
  br label %391

391:                                              ; preds = %389, %387
  %392 = phi i32 [ %388, %387 ], [ %390, %389 ]
  store i32 %392, ptr %74, align 4, !tbaa !9
  %393 = load i32, ptr %54, align 4, !tbaa !9
  %394 = icmp ne i32 %393, 0
  br i1 %394, label %395, label %476

395:                                              ; preds = %391
  %396 = load ptr, ptr %20, align 8, !tbaa !5
  %397 = load ptr, ptr %20, align 8, !tbaa !5
  %398 = load ptr, ptr %20, align 8, !tbaa !5
  %399 = load ptr, ptr %28, align 8, !tbaa !5
  %400 = load i32, ptr %40, align 4, !tbaa !9
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds float, ptr %399, i64 %401
  %403 = load ptr, ptr %29, align 8, !tbaa !5
  %404 = load ptr, ptr %32, align 8, !tbaa !5
  %405 = getelementptr inbounds float, ptr %404, i64 1
  %406 = load ptr, ptr %32, align 8, !tbaa !5
  %407 = getelementptr inbounds float, ptr %406, i64 1
  call void @sorgqr_(ptr noundef %396, ptr noundef %397, ptr noundef %398, ptr noundef %402, ptr noundef %403, ptr noundef %405, ptr noundef %407, ptr noundef @c_n1, ptr noundef %51)
  %408 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %408, ptr %43, align 4, !tbaa !9
  %409 = load ptr, ptr %20, align 8, !tbaa !5
  %410 = load i32, ptr %409, align 4, !tbaa !9
  %411 = mul nsw i32 %410, 3
  %412 = load ptr, ptr %32, align 8, !tbaa !5
  %413 = getelementptr inbounds float, ptr %412, i64 1
  %414 = load float, ptr %413, align 4, !tbaa !11
  %415 = fptosi float %414 to i32
  %416 = add nsw i32 %411, %415
  store i32 %416, ptr %44, align 4, !tbaa !9
  %417 = load i32, ptr %43, align 4, !tbaa !9
  %418 = load i32, ptr %44, align 4, !tbaa !9
  %419 = icmp sge i32 %417, %418
  br i1 %419, label %420, label %422

420:                                              ; preds = %395
  %421 = load i32, ptr %43, align 4, !tbaa !9
  br label %424

422:                                              ; preds = %395
  %423 = load i32, ptr %44, align 4, !tbaa !9
  br label %424

424:                                              ; preds = %422, %420
  %425 = phi i32 [ %421, %420 ], [ %423, %422 ]
  store i32 %425, ptr %74, align 4, !tbaa !9
  %426 = load ptr, ptr %18, align 8, !tbaa !5
  %427 = load ptr, ptr %19, align 8, !tbaa !5
  %428 = load ptr, ptr %20, align 8, !tbaa !5
  %429 = load ptr, ptr %20, align 8, !tbaa !5
  %430 = load ptr, ptr %21, align 8, !tbaa !5
  %431 = load i32, ptr %36, align 4, !tbaa !9
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds float, ptr %430, i64 %432
  %434 = load ptr, ptr %22, align 8, !tbaa !5
  %435 = load ptr, ptr %23, align 8, !tbaa !5
  %436 = load i32, ptr %38, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds float, ptr %435, i64 %437
  %439 = load ptr, ptr %24, align 8, !tbaa !5
  %440 = load ptr, ptr %25, align 8, !tbaa !5
  %441 = getelementptr inbounds float, ptr %440, i64 1
  %442 = load ptr, ptr %26, align 8, !tbaa !5
  %443 = getelementptr inbounds float, ptr %442, i64 1
  %444 = load ptr, ptr %27, align 8, !tbaa !5
  %445 = getelementptr inbounds float, ptr %444, i64 1
  %446 = load ptr, ptr %28, align 8, !tbaa !5
  %447 = load i32, ptr %40, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %446, i64 %448
  %450 = load ptr, ptr %29, align 8, !tbaa !5
  %451 = load ptr, ptr %30, align 8, !tbaa !5
  %452 = load i32, ptr %42, align 4, !tbaa !9
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %451, i64 %453
  %455 = load ptr, ptr %31, align 8, !tbaa !5
  %456 = load ptr, ptr %32, align 8, !tbaa !5
  %457 = getelementptr inbounds float, ptr %456, i64 1
  call void @shgeqz_(ptr noundef @.str.4, ptr noundef %426, ptr noundef %427, ptr noundef %428, ptr noundef @c__1, ptr noundef %429, ptr noundef %433, ptr noundef %434, ptr noundef %438, ptr noundef %439, ptr noundef %441, ptr noundef %443, ptr noundef %445, ptr noundef %449, ptr noundef %450, ptr noundef %454, ptr noundef %455, ptr noundef %457, ptr noundef @c_n1, ptr noundef %51)
  %458 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %458, ptr %43, align 4, !tbaa !9
  %459 = load ptr, ptr %20, align 8, !tbaa !5
  %460 = load i32, ptr %459, align 4, !tbaa !9
  %461 = shl i32 %460, 1
  %462 = load ptr, ptr %32, align 8, !tbaa !5
  %463 = getelementptr inbounds float, ptr %462, i64 1
  %464 = load float, ptr %463, align 4, !tbaa !11
  %465 = fptosi float %464 to i32
  %466 = add nsw i32 %461, %465
  store i32 %466, ptr %44, align 4, !tbaa !9
  %467 = load i32, ptr %43, align 4, !tbaa !9
  %468 = load i32, ptr %44, align 4, !tbaa !9
  %469 = icmp sge i32 %467, %468
  br i1 %469, label %470, label %472

470:                                              ; preds = %424
  %471 = load i32, ptr %43, align 4, !tbaa !9
  br label %474

472:                                              ; preds = %424
  %473 = load i32, ptr %44, align 4, !tbaa !9
  br label %474

474:                                              ; preds = %472, %470
  %475 = phi i32 [ %471, %470 ], [ %473, %472 ]
  store i32 %475, ptr %74, align 4, !tbaa !9
  br label %527

476:                                              ; preds = %391
  %477 = load ptr, ptr %18, align 8, !tbaa !5
  %478 = load ptr, ptr %19, align 8, !tbaa !5
  %479 = load ptr, ptr %20, align 8, !tbaa !5
  %480 = load ptr, ptr %20, align 8, !tbaa !5
  %481 = load ptr, ptr %21, align 8, !tbaa !5
  %482 = load i32, ptr %36, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds float, ptr %481, i64 %483
  %485 = load ptr, ptr %22, align 8, !tbaa !5
  %486 = load ptr, ptr %23, align 8, !tbaa !5
  %487 = load i32, ptr %38, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds float, ptr %486, i64 %488
  %490 = load ptr, ptr %24, align 8, !tbaa !5
  %491 = load ptr, ptr %25, align 8, !tbaa !5
  %492 = getelementptr inbounds float, ptr %491, i64 1
  %493 = load ptr, ptr %26, align 8, !tbaa !5
  %494 = getelementptr inbounds float, ptr %493, i64 1
  %495 = load ptr, ptr %27, align 8, !tbaa !5
  %496 = getelementptr inbounds float, ptr %495, i64 1
  %497 = load ptr, ptr %28, align 8, !tbaa !5
  %498 = load i32, ptr %40, align 4, !tbaa !9
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds float, ptr %497, i64 %499
  %501 = load ptr, ptr %29, align 8, !tbaa !5
  %502 = load ptr, ptr %30, align 8, !tbaa !5
  %503 = load i32, ptr %42, align 4, !tbaa !9
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds float, ptr %502, i64 %504
  %506 = load ptr, ptr %31, align 8, !tbaa !5
  %507 = load ptr, ptr %32, align 8, !tbaa !5
  %508 = getelementptr inbounds float, ptr %507, i64 1
  call void @shgeqz_(ptr noundef @.str.5, ptr noundef %477, ptr noundef %478, ptr noundef %479, ptr noundef @c__1, ptr noundef %480, ptr noundef %484, ptr noundef %485, ptr noundef %489, ptr noundef %490, ptr noundef %492, ptr noundef %494, ptr noundef %496, ptr noundef %500, ptr noundef %501, ptr noundef %505, ptr noundef %506, ptr noundef %508, ptr noundef @c_n1, ptr noundef %51)
  %509 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %509, ptr %43, align 4, !tbaa !9
  %510 = load ptr, ptr %20, align 8, !tbaa !5
  %511 = load i32, ptr %510, align 4, !tbaa !9
  %512 = shl i32 %511, 1
  %513 = load ptr, ptr %32, align 8, !tbaa !5
  %514 = getelementptr inbounds float, ptr %513, i64 1
  %515 = load float, ptr %514, align 4, !tbaa !11
  %516 = fptosi float %515 to i32
  %517 = add nsw i32 %512, %516
  store i32 %517, ptr %44, align 4, !tbaa !9
  %518 = load i32, ptr %43, align 4, !tbaa !9
  %519 = load i32, ptr %44, align 4, !tbaa !9
  %520 = icmp sge i32 %518, %519
  br i1 %520, label %521, label %523

521:                                              ; preds = %476
  %522 = load i32, ptr %43, align 4, !tbaa !9
  br label %525

523:                                              ; preds = %476
  %524 = load i32, ptr %44, align 4, !tbaa !9
  br label %525

525:                                              ; preds = %523, %521
  %526 = phi i32 [ %522, %521 ], [ %524, %523 ]
  store i32 %526, ptr %74, align 4, !tbaa !9
  br label %527

527:                                              ; preds = %525, %474
  %528 = load i32, ptr %74, align 4, !tbaa !9
  %529 = sitofp i32 %528 to float
  %530 = load ptr, ptr %32, align 8, !tbaa !5
  %531 = getelementptr inbounds float, ptr %530, i64 1
  store float %529, ptr %531, align 4, !tbaa !11
  br label %532

532:                                              ; preds = %527, %269
  %533 = load ptr, ptr %34, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = icmp ne i32 %534, 0
  br i1 %535, label %536, label %541

536:                                              ; preds = %532
  %537 = load ptr, ptr %34, align 8, !tbaa !5
  %538 = load i32, ptr %537, align 4, !tbaa !9
  %539 = sub nsw i32 0, %538
  store i32 %539, ptr %43, align 4, !tbaa !9
  %540 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %43, i32 noundef 7)
  store i32 1, ptr %80, align 4
  br label %1486

541:                                              ; preds = %532
  %542 = load i32, ptr %75, align 4, !tbaa !9
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %545

544:                                              ; preds = %541
  store i32 1, ptr %80, align 4
  br label %1486

545:                                              ; preds = %541
  br label %546

546:                                              ; preds = %545
  %547 = load ptr, ptr %20, align 8, !tbaa !5
  %548 = load i32, ptr %547, align 4, !tbaa !9
  %549 = icmp eq i32 %548, 0
  br i1 %549, label %550, label %551

550:                                              ; preds = %546
  store i32 1, ptr %80, align 4
  br label %1486

551:                                              ; preds = %546
  %552 = call float @slamch_(ptr noundef @.str.7)
  store float %552, ptr %78, align 4, !tbaa !11
  %553 = call float @slamch_(ptr noundef @.str.4)
  store float %553, ptr %73, align 4, !tbaa !11
  %554 = load float, ptr %73, align 4, !tbaa !11
  %555 = fdiv float 1.000000e+00, %554
  store float %555, ptr %67, align 4, !tbaa !11
  call void @slabad_(ptr noundef %73, ptr noundef %67)
  %556 = load float, ptr %73, align 4, !tbaa !11
  %557 = fpext float %556 to double
  %558 = call double @sqrt(double noundef %557) #4
  %559 = load float, ptr %78, align 4, !tbaa !11
  %560 = fpext float %559 to double
  %561 = fdiv double %558, %560
  %562 = fptrunc double %561 to float
  store float %562, ptr %73, align 4, !tbaa !11
  %563 = load float, ptr %73, align 4, !tbaa !11
  %564 = fdiv float 1.000000e+00, %563
  store float %564, ptr %67, align 4, !tbaa !11
  %565 = load ptr, ptr %20, align 8, !tbaa !5
  %566 = load ptr, ptr %20, align 8, !tbaa !5
  %567 = load ptr, ptr %21, align 8, !tbaa !5
  %568 = load i32, ptr %36, align 4, !tbaa !9
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds float, ptr %567, i64 %569
  %571 = load ptr, ptr %22, align 8, !tbaa !5
  %572 = load ptr, ptr %32, align 8, !tbaa !5
  %573 = getelementptr inbounds float, ptr %572, i64 1
  %574 = call float @slange_(ptr noundef @.str.8, ptr noundef %565, ptr noundef %566, ptr noundef %570, ptr noundef %571, ptr noundef %573)
  store float %574, ptr %49, align 4, !tbaa !11
  store i32 0, ptr %63, align 4, !tbaa !9
  %575 = load float, ptr %49, align 4, !tbaa !11
  %576 = fcmp ogt float %575, 0.000000e+00
  br i1 %576, label %577, label %583

577:                                              ; preds = %551
  %578 = load float, ptr %49, align 4, !tbaa !11
  %579 = load float, ptr %73, align 4, !tbaa !11
  %580 = fcmp olt float %578, %579
  br i1 %580, label %581, label %583

581:                                              ; preds = %577
  %582 = load float, ptr %73, align 4, !tbaa !11
  store float %582, ptr %71, align 4, !tbaa !11
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %590

583:                                              ; preds = %577, %551
  %584 = load float, ptr %49, align 4, !tbaa !11
  %585 = load float, ptr %67, align 4, !tbaa !11
  %586 = fcmp ogt float %584, %585
  br i1 %586, label %587, label %589

587:                                              ; preds = %583
  %588 = load float, ptr %67, align 4, !tbaa !11
  store float %588, ptr %71, align 4, !tbaa !11
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %589

589:                                              ; preds = %587, %583
  br label %590

590:                                              ; preds = %589, %581
  %591 = load i32, ptr %63, align 4, !tbaa !9
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %601

593:                                              ; preds = %590
  %594 = load ptr, ptr %20, align 8, !tbaa !5
  %595 = load ptr, ptr %20, align 8, !tbaa !5
  %596 = load ptr, ptr %21, align 8, !tbaa !5
  %597 = load i32, ptr %36, align 4, !tbaa !9
  %598 = sext i32 %597 to i64
  %599 = getelementptr inbounds float, ptr %596, i64 %598
  %600 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef %71, ptr noundef %594, ptr noundef %595, ptr noundef %599, ptr noundef %600, ptr noundef %51)
  br label %601

601:                                              ; preds = %593, %590
  %602 = load ptr, ptr %20, align 8, !tbaa !5
  %603 = load ptr, ptr %20, align 8, !tbaa !5
  %604 = load ptr, ptr %23, align 8, !tbaa !5
  %605 = load i32, ptr %38, align 4, !tbaa !9
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds float, ptr %604, i64 %606
  %608 = load ptr, ptr %24, align 8, !tbaa !5
  %609 = load ptr, ptr %32, align 8, !tbaa !5
  %610 = getelementptr inbounds float, ptr %609, i64 1
  %611 = call float @slange_(ptr noundef @.str.8, ptr noundef %602, ptr noundef %603, ptr noundef %607, ptr noundef %608, ptr noundef %610)
  store float %611, ptr %50, align 4, !tbaa !11
  store i32 0, ptr %64, align 4, !tbaa !9
  %612 = load float, ptr %50, align 4, !tbaa !11
  %613 = fcmp ogt float %612, 0.000000e+00
  br i1 %613, label %614, label %620

614:                                              ; preds = %601
  %615 = load float, ptr %50, align 4, !tbaa !11
  %616 = load float, ptr %73, align 4, !tbaa !11
  %617 = fcmp olt float %615, %616
  br i1 %617, label %618, label %620

618:                                              ; preds = %614
  %619 = load float, ptr %73, align 4, !tbaa !11
  store float %619, ptr %72, align 4, !tbaa !11
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %627

620:                                              ; preds = %614, %601
  %621 = load float, ptr %50, align 4, !tbaa !11
  %622 = load float, ptr %67, align 4, !tbaa !11
  %623 = fcmp ogt float %621, %622
  br i1 %623, label %624, label %626

624:                                              ; preds = %620
  %625 = load float, ptr %67, align 4, !tbaa !11
  store float %625, ptr %72, align 4, !tbaa !11
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %626

626:                                              ; preds = %624, %620
  br label %627

627:                                              ; preds = %626, %618
  %628 = load i32, ptr %64, align 4, !tbaa !9
  %629 = icmp ne i32 %628, 0
  br i1 %629, label %630, label %638

630:                                              ; preds = %627
  %631 = load ptr, ptr %20, align 8, !tbaa !5
  %632 = load ptr, ptr %20, align 8, !tbaa !5
  %633 = load ptr, ptr %23, align 8, !tbaa !5
  %634 = load i32, ptr %38, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds float, ptr %633, i64 %635
  %637 = load ptr, ptr %24, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef %72, ptr noundef %631, ptr noundef %632, ptr noundef %636, ptr noundef %637, ptr noundef %51)
  br label %638

638:                                              ; preds = %630, %627
  store i32 1, ptr %57, align 4, !tbaa !9
  %639 = load ptr, ptr %20, align 8, !tbaa !5
  %640 = load i32, ptr %639, align 4, !tbaa !9
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr %69, align 4, !tbaa !9
  %642 = load i32, ptr %69, align 4, !tbaa !9
  %643 = load ptr, ptr %20, align 8, !tbaa !5
  %644 = load i32, ptr %643, align 4, !tbaa !9
  %645 = add nsw i32 %642, %644
  store i32 %645, ptr %56, align 4, !tbaa !9
  %646 = load ptr, ptr %20, align 8, !tbaa !5
  %647 = load ptr, ptr %21, align 8, !tbaa !5
  %648 = load i32, ptr %36, align 4, !tbaa !9
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds float, ptr %647, i64 %649
  %651 = load ptr, ptr %22, align 8, !tbaa !5
  %652 = load ptr, ptr %23, align 8, !tbaa !5
  %653 = load i32, ptr %38, align 4, !tbaa !9
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds float, ptr %652, i64 %654
  %656 = load ptr, ptr %24, align 8, !tbaa !5
  %657 = load ptr, ptr %32, align 8, !tbaa !5
  %658 = load i32, ptr %57, align 4, !tbaa !9
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds float, ptr %657, i64 %659
  %661 = load ptr, ptr %32, align 8, !tbaa !5
  %662 = load i32, ptr %69, align 4, !tbaa !9
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds float, ptr %661, i64 %663
  %665 = load ptr, ptr %32, align 8, !tbaa !5
  %666 = load i32, ptr %56, align 4, !tbaa !9
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds float, ptr %665, i64 %667
  call void @sggbal_(ptr noundef @.str.7, ptr noundef %646, ptr noundef %650, ptr noundef %651, ptr noundef %655, ptr noundef %656, ptr noundef %77, ptr noundef %76, ptr noundef %660, ptr noundef %664, ptr noundef %668, ptr noundef %51)
  %669 = load i32, ptr %76, align 4, !tbaa !9
  %670 = add nsw i32 %669, 1
  %671 = load i32, ptr %77, align 4, !tbaa !9
  %672 = sub nsw i32 %670, %671
  store i32 %672, ptr %59, align 4, !tbaa !9
  %673 = load i32, ptr %79, align 4, !tbaa !9
  %674 = icmp ne i32 %673, 0
  br i1 %674, label %675, label %681

675:                                              ; preds = %638
  %676 = load ptr, ptr %20, align 8, !tbaa !5
  %677 = load i32, ptr %676, align 4, !tbaa !9
  %678 = add nsw i32 %677, 1
  %679 = load i32, ptr %77, align 4, !tbaa !9
  %680 = sub nsw i32 %678, %679
  store i32 %680, ptr %58, align 4, !tbaa !9
  br label %683

681:                                              ; preds = %638
  %682 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %682, ptr %58, align 4, !tbaa !9
  br label %683

683:                                              ; preds = %681, %675
  %684 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %684, ptr %52, align 4, !tbaa !9
  %685 = load i32, ptr %52, align 4, !tbaa !9
  %686 = load i32, ptr %59, align 4, !tbaa !9
  %687 = add nsw i32 %685, %686
  store i32 %687, ptr %56, align 4, !tbaa !9
  %688 = load ptr, ptr %33, align 8, !tbaa !5
  %689 = load i32, ptr %688, align 4, !tbaa !9
  %690 = add nsw i32 %689, 1
  %691 = load i32, ptr %56, align 4, !tbaa !9
  %692 = sub nsw i32 %690, %691
  store i32 %692, ptr %43, align 4, !tbaa !9
  %693 = load ptr, ptr %23, align 8, !tbaa !5
  %694 = load i32, ptr %77, align 4, !tbaa !9
  %695 = load i32, ptr %77, align 4, !tbaa !9
  %696 = load i32, ptr %37, align 4, !tbaa !9
  %697 = mul nsw i32 %695, %696
  %698 = add nsw i32 %694, %697
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds float, ptr %693, i64 %699
  %701 = load ptr, ptr %24, align 8, !tbaa !5
  %702 = load ptr, ptr %32, align 8, !tbaa !5
  %703 = load i32, ptr %52, align 4, !tbaa !9
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds float, ptr %702, i64 %704
  %706 = load ptr, ptr %32, align 8, !tbaa !5
  %707 = load i32, ptr %56, align 4, !tbaa !9
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds float, ptr %706, i64 %708
  call void @sgeqrf_(ptr noundef %59, ptr noundef %58, ptr noundef %700, ptr noundef %701, ptr noundef %705, ptr noundef %709, ptr noundef %43, ptr noundef %51)
  %710 = load ptr, ptr %33, align 8, !tbaa !5
  %711 = load i32, ptr %710, align 4, !tbaa !9
  %712 = add nsw i32 %711, 1
  %713 = load i32, ptr %56, align 4, !tbaa !9
  %714 = sub nsw i32 %712, %713
  store i32 %714, ptr %43, align 4, !tbaa !9
  %715 = load ptr, ptr %23, align 8, !tbaa !5
  %716 = load i32, ptr %77, align 4, !tbaa !9
  %717 = load i32, ptr %77, align 4, !tbaa !9
  %718 = load i32, ptr %37, align 4, !tbaa !9
  %719 = mul nsw i32 %717, %718
  %720 = add nsw i32 %716, %719
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds float, ptr %715, i64 %721
  %723 = load ptr, ptr %24, align 8, !tbaa !5
  %724 = load ptr, ptr %32, align 8, !tbaa !5
  %725 = load i32, ptr %52, align 4, !tbaa !9
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds float, ptr %724, i64 %726
  %728 = load ptr, ptr %21, align 8, !tbaa !5
  %729 = load i32, ptr %77, align 4, !tbaa !9
  %730 = load i32, ptr %77, align 4, !tbaa !9
  %731 = load i32, ptr %35, align 4, !tbaa !9
  %732 = mul nsw i32 %730, %731
  %733 = add nsw i32 %729, %732
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds float, ptr %728, i64 %734
  %736 = load ptr, ptr %22, align 8, !tbaa !5
  %737 = load ptr, ptr %32, align 8, !tbaa !5
  %738 = load i32, ptr %56, align 4, !tbaa !9
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds float, ptr %737, i64 %739
  call void @sormqr_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %59, ptr noundef %58, ptr noundef %59, ptr noundef %722, ptr noundef %723, ptr noundef %727, ptr noundef %735, ptr noundef %736, ptr noundef %740, ptr noundef %43, ptr noundef %51)
  %741 = load i32, ptr %54, align 4, !tbaa !9
  %742 = icmp ne i32 %741, 0
  br i1 %742, label %743, label %801

743:                                              ; preds = %683
  %744 = load ptr, ptr %20, align 8, !tbaa !5
  %745 = load ptr, ptr %20, align 8, !tbaa !5
  %746 = load ptr, ptr %28, align 8, !tbaa !5
  %747 = load i32, ptr %40, align 4, !tbaa !9
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds float, ptr %746, i64 %748
  %750 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.10, ptr noundef %744, ptr noundef %745, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %749, ptr noundef %750)
  %751 = load i32, ptr %59, align 4, !tbaa !9
  %752 = icmp sgt i32 %751, 1
  br i1 %752, label %753, label %778

753:                                              ; preds = %743
  %754 = load i32, ptr %59, align 4, !tbaa !9
  %755 = sub nsw i32 %754, 1
  store i32 %755, ptr %43, align 4, !tbaa !9
  %756 = load i32, ptr %59, align 4, !tbaa !9
  %757 = sub nsw i32 %756, 1
  store i32 %757, ptr %44, align 4, !tbaa !9
  %758 = load ptr, ptr %23, align 8, !tbaa !5
  %759 = load i32, ptr %77, align 4, !tbaa !9
  %760 = add nsw i32 %759, 1
  %761 = load i32, ptr %77, align 4, !tbaa !9
  %762 = load i32, ptr %37, align 4, !tbaa !9
  %763 = mul nsw i32 %761, %762
  %764 = add nsw i32 %760, %763
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds float, ptr %758, i64 %765
  %767 = load ptr, ptr %24, align 8, !tbaa !5
  %768 = load ptr, ptr %28, align 8, !tbaa !5
  %769 = load i32, ptr %77, align 4, !tbaa !9
  %770 = add nsw i32 %769, 1
  %771 = load i32, ptr %77, align 4, !tbaa !9
  %772 = load i32, ptr %39, align 4, !tbaa !9
  %773 = mul nsw i32 %771, %772
  %774 = add nsw i32 %770, %773
  %775 = sext i32 %774 to i64
  %776 = getelementptr inbounds float, ptr %768, i64 %775
  %777 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.2, ptr noundef %43, ptr noundef %44, ptr noundef %766, ptr noundef %767, ptr noundef %776, ptr noundef %777)
  br label %778

778:                                              ; preds = %753, %743
  %779 = load ptr, ptr %33, align 8, !tbaa !5
  %780 = load i32, ptr %779, align 4, !tbaa !9
  %781 = add nsw i32 %780, 1
  %782 = load i32, ptr %56, align 4, !tbaa !9
  %783 = sub nsw i32 %781, %782
  store i32 %783, ptr %43, align 4, !tbaa !9
  %784 = load ptr, ptr %28, align 8, !tbaa !5
  %785 = load i32, ptr %77, align 4, !tbaa !9
  %786 = load i32, ptr %77, align 4, !tbaa !9
  %787 = load i32, ptr %39, align 4, !tbaa !9
  %788 = mul nsw i32 %786, %787
  %789 = add nsw i32 %785, %788
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds float, ptr %784, i64 %790
  %792 = load ptr, ptr %29, align 8, !tbaa !5
  %793 = load ptr, ptr %32, align 8, !tbaa !5
  %794 = load i32, ptr %52, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds float, ptr %793, i64 %795
  %797 = load ptr, ptr %32, align 8, !tbaa !5
  %798 = load i32, ptr %56, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds float, ptr %797, i64 %799
  call void @sorgqr_(ptr noundef %59, ptr noundef %59, ptr noundef %59, ptr noundef %791, ptr noundef %792, ptr noundef %796, ptr noundef %800, ptr noundef %43, ptr noundef %51)
  br label %801

801:                                              ; preds = %778, %683
  %802 = load i32, ptr %55, align 4, !tbaa !9
  %803 = icmp ne i32 %802, 0
  br i1 %803, label %804, label %812

804:                                              ; preds = %801
  %805 = load ptr, ptr %20, align 8, !tbaa !5
  %806 = load ptr, ptr %20, align 8, !tbaa !5
  %807 = load ptr, ptr %30, align 8, !tbaa !5
  %808 = load i32, ptr %42, align 4, !tbaa !9
  %809 = sext i32 %808 to i64
  %810 = getelementptr inbounds float, ptr %807, i64 %809
  %811 = load ptr, ptr %31, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.10, ptr noundef %805, ptr noundef %806, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %810, ptr noundef %811)
  br label %812

812:                                              ; preds = %804, %801
  %813 = load i32, ptr %79, align 4, !tbaa !9
  %814 = icmp ne i32 %813, 0
  br i1 %814, label %815, label %848

815:                                              ; preds = %812
  %816 = load ptr, ptr %33, align 8, !tbaa !5
  %817 = load i32, ptr %816, align 4, !tbaa !9
  %818 = add nsw i32 %817, 1
  %819 = load i32, ptr %56, align 4, !tbaa !9
  %820 = sub nsw i32 %818, %819
  store i32 %820, ptr %43, align 4, !tbaa !9
  %821 = load ptr, ptr %18, align 8, !tbaa !5
  %822 = load ptr, ptr %19, align 8, !tbaa !5
  %823 = load ptr, ptr %20, align 8, !tbaa !5
  %824 = load ptr, ptr %21, align 8, !tbaa !5
  %825 = load i32, ptr %36, align 4, !tbaa !9
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds float, ptr %824, i64 %826
  %828 = load ptr, ptr %22, align 8, !tbaa !5
  %829 = load ptr, ptr %23, align 8, !tbaa !5
  %830 = load i32, ptr %38, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds float, ptr %829, i64 %831
  %833 = load ptr, ptr %24, align 8, !tbaa !5
  %834 = load ptr, ptr %28, align 8, !tbaa !5
  %835 = load i32, ptr %40, align 4, !tbaa !9
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds float, ptr %834, i64 %836
  %838 = load ptr, ptr %29, align 8, !tbaa !5
  %839 = load ptr, ptr %30, align 8, !tbaa !5
  %840 = load i32, ptr %42, align 4, !tbaa !9
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds float, ptr %839, i64 %841
  %843 = load ptr, ptr %31, align 8, !tbaa !5
  %844 = load ptr, ptr %32, align 8, !tbaa !5
  %845 = load i32, ptr %56, align 4, !tbaa !9
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds float, ptr %844, i64 %846
  call void @sgghd3_(ptr noundef %821, ptr noundef %822, ptr noundef %823, ptr noundef %77, ptr noundef %76, ptr noundef %827, ptr noundef %828, ptr noundef %832, ptr noundef %833, ptr noundef %837, ptr noundef %838, ptr noundef %842, ptr noundef %843, ptr noundef %847, ptr noundef %43, ptr noundef %51)
  br label %886

848:                                              ; preds = %812
  %849 = load ptr, ptr %33, align 8, !tbaa !5
  %850 = load i32, ptr %849, align 4, !tbaa !9
  %851 = add nsw i32 %850, 1
  %852 = load i32, ptr %56, align 4, !tbaa !9
  %853 = sub nsw i32 %851, %852
  store i32 %853, ptr %43, align 4, !tbaa !9
  %854 = load ptr, ptr %21, align 8, !tbaa !5
  %855 = load i32, ptr %77, align 4, !tbaa !9
  %856 = load i32, ptr %77, align 4, !tbaa !9
  %857 = load i32, ptr %35, align 4, !tbaa !9
  %858 = mul nsw i32 %856, %857
  %859 = add nsw i32 %855, %858
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds float, ptr %854, i64 %860
  %862 = load ptr, ptr %22, align 8, !tbaa !5
  %863 = load ptr, ptr %23, align 8, !tbaa !5
  %864 = load i32, ptr %77, align 4, !tbaa !9
  %865 = load i32, ptr %77, align 4, !tbaa !9
  %866 = load i32, ptr %37, align 4, !tbaa !9
  %867 = mul nsw i32 %865, %866
  %868 = add nsw i32 %864, %867
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds float, ptr %863, i64 %869
  %871 = load ptr, ptr %24, align 8, !tbaa !5
  %872 = load ptr, ptr %28, align 8, !tbaa !5
  %873 = load i32, ptr %40, align 4, !tbaa !9
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds float, ptr %872, i64 %874
  %876 = load ptr, ptr %29, align 8, !tbaa !5
  %877 = load ptr, ptr %30, align 8, !tbaa !5
  %878 = load i32, ptr %42, align 4, !tbaa !9
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds float, ptr %877, i64 %879
  %881 = load ptr, ptr %31, align 8, !tbaa !5
  %882 = load ptr, ptr %32, align 8, !tbaa !5
  %883 = load i32, ptr %56, align 4, !tbaa !9
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds float, ptr %882, i64 %884
  call void @sgghd3_(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef @c__1, ptr noundef %59, ptr noundef %861, ptr noundef %862, ptr noundef %870, ptr noundef %871, ptr noundef %875, ptr noundef %876, ptr noundef %880, ptr noundef %881, ptr noundef %885, ptr noundef %43, ptr noundef %51)
  br label %886

886:                                              ; preds = %848, %815
  %887 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %887, ptr %56, align 4, !tbaa !9
  %888 = load i32, ptr %79, align 4, !tbaa !9
  %889 = icmp ne i32 %888, 0
  br i1 %889, label %890, label %892

890:                                              ; preds = %886
  %891 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 83, ptr %891, align 1, !tbaa !13
  br label %894

892:                                              ; preds = %886
  %893 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 69, ptr %893, align 1, !tbaa !13
  br label %894

894:                                              ; preds = %892, %890
  %895 = load ptr, ptr %33, align 8, !tbaa !5
  %896 = load i32, ptr %895, align 4, !tbaa !9
  %897 = add nsw i32 %896, 1
  %898 = load i32, ptr %56, align 4, !tbaa !9
  %899 = sub nsw i32 %897, %898
  store i32 %899, ptr %43, align 4, !tbaa !9
  %900 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  %901 = load ptr, ptr %18, align 8, !tbaa !5
  %902 = load ptr, ptr %19, align 8, !tbaa !5
  %903 = load ptr, ptr %20, align 8, !tbaa !5
  %904 = load ptr, ptr %21, align 8, !tbaa !5
  %905 = load i32, ptr %36, align 4, !tbaa !9
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds float, ptr %904, i64 %906
  %908 = load ptr, ptr %22, align 8, !tbaa !5
  %909 = load ptr, ptr %23, align 8, !tbaa !5
  %910 = load i32, ptr %38, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds float, ptr %909, i64 %911
  %913 = load ptr, ptr %24, align 8, !tbaa !5
  %914 = load ptr, ptr %25, align 8, !tbaa !5
  %915 = getelementptr inbounds float, ptr %914, i64 1
  %916 = load ptr, ptr %26, align 8, !tbaa !5
  %917 = getelementptr inbounds float, ptr %916, i64 1
  %918 = load ptr, ptr %27, align 8, !tbaa !5
  %919 = getelementptr inbounds float, ptr %918, i64 1
  %920 = load ptr, ptr %28, align 8, !tbaa !5
  %921 = load i32, ptr %40, align 4, !tbaa !9
  %922 = sext i32 %921 to i64
  %923 = getelementptr inbounds float, ptr %920, i64 %922
  %924 = load ptr, ptr %29, align 8, !tbaa !5
  %925 = load ptr, ptr %30, align 8, !tbaa !5
  %926 = load i32, ptr %42, align 4, !tbaa !9
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds float, ptr %925, i64 %927
  %929 = load ptr, ptr %31, align 8, !tbaa !5
  %930 = load ptr, ptr %32, align 8, !tbaa !5
  %931 = load i32, ptr %56, align 4, !tbaa !9
  %932 = sext i32 %931 to i64
  %933 = getelementptr inbounds float, ptr %930, i64 %932
  call void @shgeqz_(ptr noundef %900, ptr noundef %901, ptr noundef %902, ptr noundef %903, ptr noundef %77, ptr noundef %76, ptr noundef %907, ptr noundef %908, ptr noundef %912, ptr noundef %913, ptr noundef %915, ptr noundef %917, ptr noundef %919, ptr noundef %923, ptr noundef %924, ptr noundef %928, ptr noundef %929, ptr noundef %933, ptr noundef %43, ptr noundef %51)
  %934 = load i32, ptr %51, align 4, !tbaa !9
  %935 = icmp ne i32 %934, 0
  br i1 %935, label %936, label %971

936:                                              ; preds = %894
  %937 = load i32, ptr %51, align 4, !tbaa !9
  %938 = icmp sgt i32 %937, 0
  br i1 %938, label %939, label %947

939:                                              ; preds = %936
  %940 = load i32, ptr %51, align 4, !tbaa !9
  %941 = load ptr, ptr %20, align 8, !tbaa !5
  %942 = load i32, ptr %941, align 4, !tbaa !9
  %943 = icmp sle i32 %940, %942
  br i1 %943, label %944, label %947

944:                                              ; preds = %939
  %945 = load i32, ptr %51, align 4, !tbaa !9
  %946 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %945, ptr %946, align 4, !tbaa !9
  br label %970

947:                                              ; preds = %939, %936
  %948 = load i32, ptr %51, align 4, !tbaa !9
  %949 = load ptr, ptr %20, align 8, !tbaa !5
  %950 = load i32, ptr %949, align 4, !tbaa !9
  %951 = icmp sgt i32 %948, %950
  br i1 %951, label %952, label %964

952:                                              ; preds = %947
  %953 = load i32, ptr %51, align 4, !tbaa !9
  %954 = load ptr, ptr %20, align 8, !tbaa !5
  %955 = load i32, ptr %954, align 4, !tbaa !9
  %956 = shl i32 %955, 1
  %957 = icmp sle i32 %953, %956
  br i1 %957, label %958, label %964

958:                                              ; preds = %952
  %959 = load i32, ptr %51, align 4, !tbaa !9
  %960 = load ptr, ptr %20, align 8, !tbaa !5
  %961 = load i32, ptr %960, align 4, !tbaa !9
  %962 = sub nsw i32 %959, %961
  %963 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %962, ptr %963, align 4, !tbaa !9
  br label %969

964:                                              ; preds = %952, %947
  %965 = load ptr, ptr %20, align 8, !tbaa !5
  %966 = load i32, ptr %965, align 4, !tbaa !9
  %967 = add nsw i32 %966, 1
  %968 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %967, ptr %968, align 4, !tbaa !9
  br label %969

969:                                              ; preds = %964, %958
  br label %970

970:                                              ; preds = %969, %944
  br label %1461

971:                                              ; preds = %894
  %972 = load i32, ptr %79, align 4, !tbaa !9
  %973 = icmp ne i32 %972, 0
  br i1 %973, label %974, label %1460

974:                                              ; preds = %971
  %975 = load i32, ptr %54, align 4, !tbaa !9
  %976 = icmp ne i32 %975, 0
  br i1 %976, label %977, label %985

977:                                              ; preds = %974
  %978 = load i32, ptr %55, align 4, !tbaa !9
  %979 = icmp ne i32 %978, 0
  br i1 %979, label %980, label %982

980:                                              ; preds = %977
  %981 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 66, ptr %981, align 1, !tbaa !13
  br label %984

982:                                              ; preds = %977
  %983 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 76, ptr %983, align 1, !tbaa !13
  br label %984

984:                                              ; preds = %982, %980
  br label %987

985:                                              ; preds = %974
  %986 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 82, ptr %986, align 1, !tbaa !13
  br label %987

987:                                              ; preds = %985, %984
  %988 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  %989 = getelementptr inbounds [1 x i32], ptr %65, i64 0, i64 0
  %990 = load ptr, ptr %20, align 8, !tbaa !5
  %991 = load ptr, ptr %21, align 8, !tbaa !5
  %992 = load i32, ptr %36, align 4, !tbaa !9
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds float, ptr %991, i64 %993
  %995 = load ptr, ptr %22, align 8, !tbaa !5
  %996 = load ptr, ptr %23, align 8, !tbaa !5
  %997 = load i32, ptr %38, align 4, !tbaa !9
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds float, ptr %996, i64 %998
  %1000 = load ptr, ptr %24, align 8, !tbaa !5
  %1001 = load ptr, ptr %28, align 8, !tbaa !5
  %1002 = load i32, ptr %40, align 4, !tbaa !9
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds float, ptr %1001, i64 %1003
  %1005 = load ptr, ptr %29, align 8, !tbaa !5
  %1006 = load ptr, ptr %30, align 8, !tbaa !5
  %1007 = load i32, ptr %42, align 4, !tbaa !9
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds float, ptr %1006, i64 %1008
  %1010 = load ptr, ptr %31, align 8, !tbaa !5
  %1011 = load ptr, ptr %20, align 8, !tbaa !5
  %1012 = load ptr, ptr %32, align 8, !tbaa !5
  %1013 = load i32, ptr %56, align 4, !tbaa !9
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds float, ptr %1012, i64 %1014
  call void @stgevc_(ptr noundef %988, ptr noundef @.str.11, ptr noundef %989, ptr noundef %990, ptr noundef %994, ptr noundef %995, ptr noundef %999, ptr noundef %1000, ptr noundef %1004, ptr noundef %1005, ptr noundef %1009, ptr noundef %1010, ptr noundef %1011, ptr noundef %61, ptr noundef %1015, ptr noundef %51)
  %1016 = load i32, ptr %51, align 4, !tbaa !9
  %1017 = icmp ne i32 %1016, 0
  br i1 %1017, label %1018, label %1023

1018:                                             ; preds = %987
  %1019 = load ptr, ptr %20, align 8, !tbaa !5
  %1020 = load i32, ptr %1019, align 4, !tbaa !9
  %1021 = add nsw i32 %1020, 2
  %1022 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %1021, ptr %1022, align 4, !tbaa !9
  br label %1461

1023:                                             ; preds = %987
  %1024 = load i32, ptr %54, align 4, !tbaa !9
  %1025 = icmp ne i32 %1024, 0
  br i1 %1025, label %1026, label %1241

1026:                                             ; preds = %1023
  %1027 = load ptr, ptr %20, align 8, !tbaa !5
  %1028 = load ptr, ptr %32, align 8, !tbaa !5
  %1029 = load i32, ptr %57, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds float, ptr %1028, i64 %1030
  %1032 = load ptr, ptr %32, align 8, !tbaa !5
  %1033 = load i32, ptr %69, align 4, !tbaa !9
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds float, ptr %1032, i64 %1034
  %1036 = load ptr, ptr %20, align 8, !tbaa !5
  %1037 = load ptr, ptr %28, align 8, !tbaa !5
  %1038 = load i32, ptr %40, align 4, !tbaa !9
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds float, ptr %1037, i64 %1039
  %1041 = load ptr, ptr %29, align 8, !tbaa !5
  call void @sggbak_(ptr noundef @.str.7, ptr noundef @.str.2, ptr noundef %1027, ptr noundef %77, ptr noundef %76, ptr noundef %1031, ptr noundef %1035, ptr noundef %1036, ptr noundef %1040, ptr noundef %1041, ptr noundef %51)
  %1042 = load ptr, ptr %20, align 8, !tbaa !5
  %1043 = load i32, ptr %1042, align 4, !tbaa !9
  store i32 %1043, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %1044

1044:                                             ; preds = %1237, %1026
  %1045 = load i32, ptr %60, align 4, !tbaa !9
  %1046 = load i32, ptr %43, align 4, !tbaa !9
  %1047 = icmp sle i32 %1045, %1046
  br i1 %1047, label %1048, label %1240

1048:                                             ; preds = %1044
  %1049 = load ptr, ptr %26, align 8, !tbaa !5
  %1050 = load i32, ptr %60, align 4, !tbaa !9
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds float, ptr %1049, i64 %1051
  %1053 = load float, ptr %1052, align 4, !tbaa !11
  %1054 = fcmp olt float %1053, 0.000000e+00
  br i1 %1054, label %1055, label %1056

1055:                                             ; preds = %1048
  br label %1236

1056:                                             ; preds = %1048
  store float 0.000000e+00, ptr %53, align 4, !tbaa !11
  %1057 = load ptr, ptr %26, align 8, !tbaa !5
  %1058 = load i32, ptr %60, align 4, !tbaa !9
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds float, ptr %1057, i64 %1059
  %1061 = load float, ptr %1060, align 4, !tbaa !11
  %1062 = fcmp oeq float %1061, 0.000000e+00
  br i1 %1062, label %1063, label %1103

1063:                                             ; preds = %1056
  %1064 = load ptr, ptr %20, align 8, !tbaa !5
  %1065 = load i32, ptr %1064, align 4, !tbaa !9
  store i32 %1065, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1066

1066:                                             ; preds = %1099, %1063
  %1067 = load i32, ptr %62, align 4, !tbaa !9
  %1068 = load i32, ptr %44, align 4, !tbaa !9
  %1069 = icmp sle i32 %1067, %1068
  br i1 %1069, label %1070, label %1102

1070:                                             ; preds = %1066
  %1071 = load float, ptr %53, align 4, !tbaa !11
  store float %1071, ptr %46, align 4, !tbaa !11
  %1072 = load ptr, ptr %28, align 8, !tbaa !5
  %1073 = load i32, ptr %62, align 4, !tbaa !9
  %1074 = load i32, ptr %60, align 4, !tbaa !9
  %1075 = load i32, ptr %39, align 4, !tbaa !9
  %1076 = mul nsw i32 %1074, %1075
  %1077 = add nsw i32 %1073, %1076
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds float, ptr %1072, i64 %1078
  %1080 = load float, ptr %1079, align 4, !tbaa !11
  store float %1080, ptr %45, align 4, !tbaa !11
  %1081 = load float, ptr %45, align 4, !tbaa !11
  %1082 = fcmp oge float %1081, 0.000000e+00
  br i1 %1082, label %1083, label %1085

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

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

1088:                                             ; preds = %1085, %1083
  %1089 = phi float [ %1084, %1083 ], [ %1087, %1085 ]
  store float %1089, ptr %47, align 4, !tbaa !11
  %1090 = load float, ptr %46, align 4, !tbaa !11
  %1091 = load float, ptr %47, align 4, !tbaa !11
  %1092 = fcmp oge float %1090, %1091
  br i1 %1092, label %1093, label %1095

1093:                                             ; preds = %1088
  %1094 = load float, ptr %46, align 4, !tbaa !11
  br label %1097

1095:                                             ; preds = %1088
  %1096 = load float, ptr %47, align 4, !tbaa !11
  br label %1097

1097:                                             ; preds = %1095, %1093
  %1098 = phi float [ %1094, %1093 ], [ %1096, %1095 ]
  store float %1098, ptr %53, align 4, !tbaa !11
  br label %1099

1099:                                             ; preds = %1097
  %1100 = load i32, ptr %62, align 4, !tbaa !9
  %1101 = add nsw i32 %1100, 1
  store i32 %1101, ptr %62, align 4, !tbaa !9
  br label %1066, !llvm.loop !14

1102:                                             ; preds = %1066
  br label %1163

1103:                                             ; preds = %1056
  %1104 = load ptr, ptr %20, align 8, !tbaa !5
  %1105 = load i32, ptr %1104, align 4, !tbaa !9
  store i32 %1105, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1106

1106:                                             ; preds = %1159, %1103
  %1107 = load i32, ptr %62, align 4, !tbaa !9
  %1108 = load i32, ptr %44, align 4, !tbaa !9
  %1109 = icmp sle i32 %1107, %1108
  br i1 %1109, label %1110, label %1162

1110:                                             ; preds = %1106
  %1111 = load float, ptr %53, align 4, !tbaa !11
  store float %1111, ptr %47, align 4, !tbaa !11
  %1112 = load ptr, ptr %28, align 8, !tbaa !5
  %1113 = load i32, ptr %62, align 4, !tbaa !9
  %1114 = load i32, ptr %60, align 4, !tbaa !9
  %1115 = load i32, ptr %39, align 4, !tbaa !9
  %1116 = mul nsw i32 %1114, %1115
  %1117 = add nsw i32 %1113, %1116
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds float, ptr %1112, i64 %1118
  %1120 = load float, ptr %1119, align 4, !tbaa !11
  store float %1120, ptr %45, align 4, !tbaa !11
  %1121 = load float, ptr %45, align 4, !tbaa !11
  %1122 = fcmp oge float %1121, 0.000000e+00
  br i1 %1122, label %1123, label %1125

1123:                                             ; preds = %1110
  %1124 = load float, ptr %45, align 4, !tbaa !11
  br label %1128

1125:                                             ; preds = %1110
  %1126 = load float, ptr %45, align 4, !tbaa !11
  %1127 = fneg float %1126
  br label %1128

1128:                                             ; preds = %1125, %1123
  %1129 = phi float [ %1124, %1123 ], [ %1127, %1125 ]
  %1130 = load ptr, ptr %28, align 8, !tbaa !5
  %1131 = load i32, ptr %62, align 4, !tbaa !9
  %1132 = load i32, ptr %60, align 4, !tbaa !9
  %1133 = add nsw i32 %1132, 1
  %1134 = load i32, ptr %39, align 4, !tbaa !9
  %1135 = mul nsw i32 %1133, %1134
  %1136 = add nsw i32 %1131, %1135
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds float, ptr %1130, i64 %1137
  %1139 = load float, ptr %1138, align 4, !tbaa !11
  store float %1139, ptr %46, align 4, !tbaa !11
  %1140 = load float, ptr %46, align 4, !tbaa !11
  %1141 = fcmp oge float %1140, 0.000000e+00
  br i1 %1141, label %1142, label %1144

1142:                                             ; preds = %1128
  %1143 = load float, ptr %46, align 4, !tbaa !11
  br label %1147

1144:                                             ; preds = %1128
  %1145 = load float, ptr %46, align 4, !tbaa !11
  %1146 = fneg float %1145
  br label %1147

1147:                                             ; preds = %1144, %1142
  %1148 = phi float [ %1143, %1142 ], [ %1146, %1144 ]
  %1149 = fadd float %1129, %1148
  store float %1149, ptr %48, align 4, !tbaa !11
  %1150 = load float, ptr %47, align 4, !tbaa !11
  %1151 = load float, ptr %48, align 4, !tbaa !11
  %1152 = fcmp oge float %1150, %1151
  br i1 %1152, label %1153, label %1155

1153:                                             ; preds = %1147
  %1154 = load float, ptr %47, align 4, !tbaa !11
  br label %1157

1155:                                             ; preds = %1147
  %1156 = load float, ptr %48, align 4, !tbaa !11
  br label %1157

1157:                                             ; preds = %1155, %1153
  %1158 = phi float [ %1154, %1153 ], [ %1156, %1155 ]
  store float %1158, ptr %53, align 4, !tbaa !11
  br label %1159

1159:                                             ; preds = %1157
  %1160 = load i32, ptr %62, align 4, !tbaa !9
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr %62, align 4, !tbaa !9
  br label %1106, !llvm.loop !16

1162:                                             ; preds = %1106
  br label %1163

1163:                                             ; preds = %1162, %1102
  %1164 = load float, ptr %53, align 4, !tbaa !11
  %1165 = load float, ptr %73, align 4, !tbaa !11
  %1166 = fcmp olt float %1164, %1165
  br i1 %1166, label %1167, label %1168

1167:                                             ; preds = %1163
  br label %1236

1168:                                             ; preds = %1163
  %1169 = load float, ptr %53, align 4, !tbaa !11
  %1170 = fdiv float 1.000000e+00, %1169
  store float %1170, ptr %53, align 4, !tbaa !11
  %1171 = load ptr, ptr %26, align 8, !tbaa !5
  %1172 = load i32, ptr %60, align 4, !tbaa !9
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds float, ptr %1171, i64 %1173
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  %1176 = fcmp oeq float %1175, 0.000000e+00
  br i1 %1176, label %1177, label %1200

1177:                                             ; preds = %1168
  %1178 = load ptr, ptr %20, align 8, !tbaa !5
  %1179 = load i32, ptr %1178, align 4, !tbaa !9
  store i32 %1179, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1180

1180:                                             ; preds = %1196, %1177
  %1181 = load i32, ptr %62, align 4, !tbaa !9
  %1182 = load i32, ptr %44, align 4, !tbaa !9
  %1183 = icmp sle i32 %1181, %1182
  br i1 %1183, label %1184, label %1199

1184:                                             ; preds = %1180
  %1185 = load float, ptr %53, align 4, !tbaa !11
  %1186 = load ptr, ptr %28, align 8, !tbaa !5
  %1187 = load i32, ptr %62, align 4, !tbaa !9
  %1188 = load i32, ptr %60, align 4, !tbaa !9
  %1189 = load i32, ptr %39, align 4, !tbaa !9
  %1190 = mul nsw i32 %1188, %1189
  %1191 = add nsw i32 %1187, %1190
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds float, ptr %1186, i64 %1192
  %1194 = load float, ptr %1193, align 4, !tbaa !11
  %1195 = fmul float %1194, %1185
  store float %1195, ptr %1193, align 4, !tbaa !11
  br label %1196

1196:                                             ; preds = %1184
  %1197 = load i32, ptr %62, align 4, !tbaa !9
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr %62, align 4, !tbaa !9
  br label %1180, !llvm.loop !17

1199:                                             ; preds = %1180
  br label %1235

1200:                                             ; preds = %1168
  %1201 = load ptr, ptr %20, align 8, !tbaa !5
  %1202 = load i32, ptr %1201, align 4, !tbaa !9
  store i32 %1202, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1203

1203:                                             ; preds = %1231, %1200
  %1204 = load i32, ptr %62, align 4, !tbaa !9
  %1205 = load i32, ptr %44, align 4, !tbaa !9
  %1206 = icmp sle i32 %1204, %1205
  br i1 %1206, label %1207, label %1234

1207:                                             ; preds = %1203
  %1208 = load float, ptr %53, align 4, !tbaa !11
  %1209 = load ptr, ptr %28, align 8, !tbaa !5
  %1210 = load i32, ptr %62, align 4, !tbaa !9
  %1211 = load i32, ptr %60, align 4, !tbaa !9
  %1212 = load i32, ptr %39, align 4, !tbaa !9
  %1213 = mul nsw i32 %1211, %1212
  %1214 = add nsw i32 %1210, %1213
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds float, ptr %1209, i64 %1215
  %1217 = load float, ptr %1216, align 4, !tbaa !11
  %1218 = fmul float %1217, %1208
  store float %1218, ptr %1216, align 4, !tbaa !11
  %1219 = load float, ptr %53, align 4, !tbaa !11
  %1220 = load ptr, ptr %28, align 8, !tbaa !5
  %1221 = load i32, ptr %62, align 4, !tbaa !9
  %1222 = load i32, ptr %60, align 4, !tbaa !9
  %1223 = add nsw i32 %1222, 1
  %1224 = load i32, ptr %39, align 4, !tbaa !9
  %1225 = mul nsw i32 %1223, %1224
  %1226 = add nsw i32 %1221, %1225
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds float, ptr %1220, i64 %1227
  %1229 = load float, ptr %1228, align 4, !tbaa !11
  %1230 = fmul float %1229, %1219
  store float %1230, ptr %1228, align 4, !tbaa !11
  br label %1231

1231:                                             ; preds = %1207
  %1232 = load i32, ptr %62, align 4, !tbaa !9
  %1233 = add nsw i32 %1232, 1
  store i32 %1233, ptr %62, align 4, !tbaa !9
  br label %1203, !llvm.loop !18

1234:                                             ; preds = %1203
  br label %1235

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

1236:                                             ; preds = %1235, %1167, %1055
  br label %1237

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

1240:                                             ; preds = %1044
  br label %1241

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

1244:                                             ; preds = %1241
  %1245 = load ptr, ptr %20, align 8, !tbaa !5
  %1246 = load ptr, ptr %32, align 8, !tbaa !5
  %1247 = load i32, ptr %57, align 4, !tbaa !9
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds float, ptr %1246, i64 %1248
  %1250 = load ptr, ptr %32, align 8, !tbaa !5
  %1251 = load i32, ptr %69, align 4, !tbaa !9
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds float, ptr %1250, i64 %1252
  %1254 = load ptr, ptr %20, align 8, !tbaa !5
  %1255 = load ptr, ptr %30, align 8, !tbaa !5
  %1256 = load i32, ptr %42, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds float, ptr %1255, i64 %1257
  %1259 = load ptr, ptr %31, align 8, !tbaa !5
  call void @sggbak_(ptr noundef @.str.7, ptr noundef @.str.12, ptr noundef %1245, ptr noundef %77, ptr noundef %76, ptr noundef %1249, ptr noundef %1253, ptr noundef %1254, ptr noundef %1258, ptr noundef %1259, ptr noundef %51)
  %1260 = load ptr, ptr %20, align 8, !tbaa !5
  %1261 = load i32, ptr %1260, align 4, !tbaa !9
  store i32 %1261, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %1262

1262:                                             ; preds = %1455, %1244
  %1263 = load i32, ptr %60, align 4, !tbaa !9
  %1264 = load i32, ptr %43, align 4, !tbaa !9
  %1265 = icmp sle i32 %1263, %1264
  br i1 %1265, label %1266, label %1458

1266:                                             ; preds = %1262
  %1267 = load ptr, ptr %26, align 8, !tbaa !5
  %1268 = load i32, ptr %60, align 4, !tbaa !9
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds float, ptr %1267, i64 %1269
  %1271 = load float, ptr %1270, align 4, !tbaa !11
  %1272 = fcmp olt float %1271, 0.000000e+00
  br i1 %1272, label %1273, label %1274

1273:                                             ; preds = %1266
  br label %1454

1274:                                             ; preds = %1266
  store float 0.000000e+00, ptr %53, align 4, !tbaa !11
  %1275 = load ptr, ptr %26, align 8, !tbaa !5
  %1276 = load i32, ptr %60, align 4, !tbaa !9
  %1277 = sext i32 %1276 to i64
  %1278 = getelementptr inbounds float, ptr %1275, i64 %1277
  %1279 = load float, ptr %1278, align 4, !tbaa !11
  %1280 = fcmp oeq float %1279, 0.000000e+00
  br i1 %1280, label %1281, label %1321

1281:                                             ; preds = %1274
  %1282 = load ptr, ptr %20, align 8, !tbaa !5
  %1283 = load i32, ptr %1282, align 4, !tbaa !9
  store i32 %1283, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1284

1284:                                             ; preds = %1317, %1281
  %1285 = load i32, ptr %62, align 4, !tbaa !9
  %1286 = load i32, ptr %44, align 4, !tbaa !9
  %1287 = icmp sle i32 %1285, %1286
  br i1 %1287, label %1288, label %1320

1288:                                             ; preds = %1284
  %1289 = load float, ptr %53, align 4, !tbaa !11
  store float %1289, ptr %46, align 4, !tbaa !11
  %1290 = load ptr, ptr %30, align 8, !tbaa !5
  %1291 = load i32, ptr %62, align 4, !tbaa !9
  %1292 = load i32, ptr %60, align 4, !tbaa !9
  %1293 = load i32, ptr %41, align 4, !tbaa !9
  %1294 = mul nsw i32 %1292, %1293
  %1295 = add nsw i32 %1291, %1294
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds float, ptr %1290, i64 %1296
  %1298 = load float, ptr %1297, align 4, !tbaa !11
  store float %1298, ptr %45, align 4, !tbaa !11
  %1299 = load float, ptr %45, align 4, !tbaa !11
  %1300 = fcmp oge float %1299, 0.000000e+00
  br i1 %1300, label %1301, label %1303

1301:                                             ; preds = %1288
  %1302 = load float, ptr %45, align 4, !tbaa !11
  br label %1306

1303:                                             ; preds = %1288
  %1304 = load float, ptr %45, align 4, !tbaa !11
  %1305 = fneg float %1304
  br label %1306

1306:                                             ; preds = %1303, %1301
  %1307 = phi float [ %1302, %1301 ], [ %1305, %1303 ]
  store float %1307, ptr %47, align 4, !tbaa !11
  %1308 = load float, ptr %46, align 4, !tbaa !11
  %1309 = load float, ptr %47, align 4, !tbaa !11
  %1310 = fcmp oge float %1308, %1309
  br i1 %1310, label %1311, label %1313

1311:                                             ; preds = %1306
  %1312 = load float, ptr %46, align 4, !tbaa !11
  br label %1315

1313:                                             ; preds = %1306
  %1314 = load float, ptr %47, align 4, !tbaa !11
  br label %1315

1315:                                             ; preds = %1313, %1311
  %1316 = phi float [ %1312, %1311 ], [ %1314, %1313 ]
  store float %1316, ptr %53, align 4, !tbaa !11
  br label %1317

1317:                                             ; preds = %1315
  %1318 = load i32, ptr %62, align 4, !tbaa !9
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr %62, align 4, !tbaa !9
  br label %1284, !llvm.loop !20

1320:                                             ; preds = %1284
  br label %1381

1321:                                             ; preds = %1274
  %1322 = load ptr, ptr %20, align 8, !tbaa !5
  %1323 = load i32, ptr %1322, align 4, !tbaa !9
  store i32 %1323, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1324

1324:                                             ; preds = %1377, %1321
  %1325 = load i32, ptr %62, align 4, !tbaa !9
  %1326 = load i32, ptr %44, align 4, !tbaa !9
  %1327 = icmp sle i32 %1325, %1326
  br i1 %1327, label %1328, label %1380

1328:                                             ; preds = %1324
  %1329 = load float, ptr %53, align 4, !tbaa !11
  store float %1329, ptr %47, align 4, !tbaa !11
  %1330 = load ptr, ptr %30, align 8, !tbaa !5
  %1331 = load i32, ptr %62, align 4, !tbaa !9
  %1332 = load i32, ptr %60, align 4, !tbaa !9
  %1333 = load i32, ptr %41, align 4, !tbaa !9
  %1334 = mul nsw i32 %1332, %1333
  %1335 = add nsw i32 %1331, %1334
  %1336 = sext i32 %1335 to i64
  %1337 = getelementptr inbounds float, ptr %1330, i64 %1336
  %1338 = load float, ptr %1337, align 4, !tbaa !11
  store float %1338, ptr %45, align 4, !tbaa !11
  %1339 = load float, ptr %45, align 4, !tbaa !11
  %1340 = fcmp oge float %1339, 0.000000e+00
  br i1 %1340, label %1341, label %1343

1341:                                             ; preds = %1328
  %1342 = load float, ptr %45, align 4, !tbaa !11
  br label %1346

1343:                                             ; preds = %1328
  %1344 = load float, ptr %45, align 4, !tbaa !11
  %1345 = fneg float %1344
  br label %1346

1346:                                             ; preds = %1343, %1341
  %1347 = phi float [ %1342, %1341 ], [ %1345, %1343 ]
  %1348 = load ptr, ptr %30, align 8, !tbaa !5
  %1349 = load i32, ptr %62, align 4, !tbaa !9
  %1350 = load i32, ptr %60, align 4, !tbaa !9
  %1351 = add nsw i32 %1350, 1
  %1352 = load i32, ptr %41, align 4, !tbaa !9
  %1353 = mul nsw i32 %1351, %1352
  %1354 = add nsw i32 %1349, %1353
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds float, ptr %1348, i64 %1355
  %1357 = load float, ptr %1356, align 4, !tbaa !11
  store float %1357, ptr %46, align 4, !tbaa !11
  %1358 = load float, ptr %46, align 4, !tbaa !11
  %1359 = fcmp oge float %1358, 0.000000e+00
  br i1 %1359, label %1360, label %1362

1360:                                             ; preds = %1346
  %1361 = load float, ptr %46, align 4, !tbaa !11
  br label %1365

1362:                                             ; preds = %1346
  %1363 = load float, ptr %46, align 4, !tbaa !11
  %1364 = fneg float %1363
  br label %1365

1365:                                             ; preds = %1362, %1360
  %1366 = phi float [ %1361, %1360 ], [ %1364, %1362 ]
  %1367 = fadd float %1347, %1366
  store float %1367, ptr %48, align 4, !tbaa !11
  %1368 = load float, ptr %47, align 4, !tbaa !11
  %1369 = load float, ptr %48, align 4, !tbaa !11
  %1370 = fcmp oge float %1368, %1369
  br i1 %1370, label %1371, label %1373

1371:                                             ; preds = %1365
  %1372 = load float, ptr %47, align 4, !tbaa !11
  br label %1375

1373:                                             ; preds = %1365
  %1374 = load float, ptr %48, align 4, !tbaa !11
  br label %1375

1375:                                             ; preds = %1373, %1371
  %1376 = phi float [ %1372, %1371 ], [ %1374, %1373 ]
  store float %1376, ptr %53, align 4, !tbaa !11
  br label %1377

1377:                                             ; preds = %1375
  %1378 = load i32, ptr %62, align 4, !tbaa !9
  %1379 = add nsw i32 %1378, 1
  store i32 %1379, ptr %62, align 4, !tbaa !9
  br label %1324, !llvm.loop !21

1380:                                             ; preds = %1324
  br label %1381

1381:                                             ; preds = %1380, %1320
  %1382 = load float, ptr %53, align 4, !tbaa !11
  %1383 = load float, ptr %73, align 4, !tbaa !11
  %1384 = fcmp olt float %1382, %1383
  br i1 %1384, label %1385, label %1386

1385:                                             ; preds = %1381
  br label %1454

1386:                                             ; preds = %1381
  %1387 = load float, ptr %53, align 4, !tbaa !11
  %1388 = fdiv float 1.000000e+00, %1387
  store float %1388, ptr %53, align 4, !tbaa !11
  %1389 = load ptr, ptr %26, align 8, !tbaa !5
  %1390 = load i32, ptr %60, align 4, !tbaa !9
  %1391 = sext i32 %1390 to i64
  %1392 = getelementptr inbounds float, ptr %1389, i64 %1391
  %1393 = load float, ptr %1392, align 4, !tbaa !11
  %1394 = fcmp oeq float %1393, 0.000000e+00
  br i1 %1394, label %1395, label %1418

1395:                                             ; preds = %1386
  %1396 = load ptr, ptr %20, align 8, !tbaa !5
  %1397 = load i32, ptr %1396, align 4, !tbaa !9
  store i32 %1397, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1398

1398:                                             ; preds = %1414, %1395
  %1399 = load i32, ptr %62, align 4, !tbaa !9
  %1400 = load i32, ptr %44, align 4, !tbaa !9
  %1401 = icmp sle i32 %1399, %1400
  br i1 %1401, label %1402, label %1417

1402:                                             ; preds = %1398
  %1403 = load float, ptr %53, align 4, !tbaa !11
  %1404 = load ptr, ptr %30, align 8, !tbaa !5
  %1405 = load i32, ptr %62, align 4, !tbaa !9
  %1406 = load i32, ptr %60, align 4, !tbaa !9
  %1407 = load i32, ptr %41, align 4, !tbaa !9
  %1408 = mul nsw i32 %1406, %1407
  %1409 = add nsw i32 %1405, %1408
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds float, ptr %1404, i64 %1410
  %1412 = load float, ptr %1411, align 4, !tbaa !11
  %1413 = fmul float %1412, %1403
  store float %1413, ptr %1411, align 4, !tbaa !11
  br label %1414

1414:                                             ; preds = %1402
  %1415 = load i32, ptr %62, align 4, !tbaa !9
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr %62, align 4, !tbaa !9
  br label %1398, !llvm.loop !22

1417:                                             ; preds = %1398
  br label %1453

1418:                                             ; preds = %1386
  %1419 = load ptr, ptr %20, align 8, !tbaa !5
  %1420 = load i32, ptr %1419, align 4, !tbaa !9
  store i32 %1420, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1421

1421:                                             ; preds = %1449, %1418
  %1422 = load i32, ptr %62, align 4, !tbaa !9
  %1423 = load i32, ptr %44, align 4, !tbaa !9
  %1424 = icmp sle i32 %1422, %1423
  br i1 %1424, label %1425, label %1452

1425:                                             ; preds = %1421
  %1426 = load float, ptr %53, align 4, !tbaa !11
  %1427 = load ptr, ptr %30, align 8, !tbaa !5
  %1428 = load i32, ptr %62, align 4, !tbaa !9
  %1429 = load i32, ptr %60, align 4, !tbaa !9
  %1430 = load i32, ptr %41, align 4, !tbaa !9
  %1431 = mul nsw i32 %1429, %1430
  %1432 = add nsw i32 %1428, %1431
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds float, ptr %1427, i64 %1433
  %1435 = load float, ptr %1434, align 4, !tbaa !11
  %1436 = fmul float %1435, %1426
  store float %1436, ptr %1434, align 4, !tbaa !11
  %1437 = load float, ptr %53, align 4, !tbaa !11
  %1438 = load ptr, ptr %30, align 8, !tbaa !5
  %1439 = load i32, ptr %62, align 4, !tbaa !9
  %1440 = load i32, ptr %60, align 4, !tbaa !9
  %1441 = add nsw i32 %1440, 1
  %1442 = load i32, ptr %41, align 4, !tbaa !9
  %1443 = mul nsw i32 %1441, %1442
  %1444 = add nsw i32 %1439, %1443
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds float, ptr %1438, i64 %1445
  %1447 = load float, ptr %1446, align 4, !tbaa !11
  %1448 = fmul float %1447, %1437
  store float %1448, ptr %1446, align 4, !tbaa !11
  br label %1449

1449:                                             ; preds = %1425
  %1450 = load i32, ptr %62, align 4, !tbaa !9
  %1451 = add nsw i32 %1450, 1
  store i32 %1451, ptr %62, align 4, !tbaa !9
  br label %1421, !llvm.loop !23

1452:                                             ; preds = %1421
  br label %1453

1453:                                             ; preds = %1452, %1417
  br label %1454

1454:                                             ; preds = %1453, %1385, %1273
  br label %1455

1455:                                             ; preds = %1454
  %1456 = load i32, ptr %60, align 4, !tbaa !9
  %1457 = add nsw i32 %1456, 1
  store i32 %1457, ptr %60, align 4, !tbaa !9
  br label %1262, !llvm.loop !24

1458:                                             ; preds = %1262
  br label %1459

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

1460:                                             ; preds = %1459, %971
  br label %1461

1461:                                             ; preds = %1460, %1018, %970
  %1462 = load i32, ptr %63, align 4, !tbaa !9
  %1463 = icmp ne i32 %1462, 0
  br i1 %1463, label %1464, label %1473

1464:                                             ; preds = %1461
  %1465 = load ptr, ptr %20, align 8, !tbaa !5
  %1466 = load ptr, ptr %25, align 8, !tbaa !5
  %1467 = getelementptr inbounds float, ptr %1466, i64 1
  %1468 = load ptr, ptr %20, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %71, ptr noundef %49, ptr noundef %1465, ptr noundef @c__1, ptr noundef %1467, ptr noundef %1468, ptr noundef %51)
  %1469 = load ptr, ptr %20, align 8, !tbaa !5
  %1470 = load ptr, ptr %26, align 8, !tbaa !5
  %1471 = getelementptr inbounds float, ptr %1470, i64 1
  %1472 = load ptr, ptr %20, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %71, ptr noundef %49, ptr noundef %1469, ptr noundef @c__1, ptr noundef %1471, ptr noundef %1472, ptr noundef %51)
  br label %1473

1473:                                             ; preds = %1464, %1461
  %1474 = load i32, ptr %64, align 4, !tbaa !9
  %1475 = icmp ne i32 %1474, 0
  br i1 %1475, label %1476, label %1481

1476:                                             ; preds = %1473
  %1477 = load ptr, ptr %20, align 8, !tbaa !5
  %1478 = load ptr, ptr %27, align 8, !tbaa !5
  %1479 = getelementptr inbounds float, ptr %1478, i64 1
  %1480 = load ptr, ptr %20, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %72, ptr noundef %50, ptr noundef %1477, ptr noundef @c__1, ptr noundef %1479, ptr noundef %1480, ptr noundef %51)
  br label %1481

1481:                                             ; preds = %1476, %1473
  %1482 = load i32, ptr %74, align 4, !tbaa !9
  %1483 = sitofp i32 %1482 to float
  %1484 = load ptr, ptr %32, align 8, !tbaa !5
  %1485 = getelementptr inbounds float, ptr %1484, i64 1
  store float %1483, ptr %1485, align 4, !tbaa !11
  store i32 1, ptr %80, align 4
  br label %1486

1486:                                             ; preds = %1481, %550, %544, %536
  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 1, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #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 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 @sgghd3_(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 @sorgqr_(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 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 @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 @stgevc_(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 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b34 = external hidden global float, align 4
@c_b35 = external hidden global float, align 4
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

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

49:                                               ; preds = %17
  %50 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not551 = icmp ne i32 %50, 0
  %51 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %.not552 = icmp eq i32 %51, 0
  br i1 %.not552, label %54, label %.thread

.thread739:                                       ; preds = %17
  %52 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %.not552740 = icmp eq i32 %52, 0
  br i1 %.not552740, label %.thread745, label %.thread.thread

.thread745:                                       ; preds = %.thread739
  %53 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %56

.thread.thread:                                   ; preds = %.thread739
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %.thread587

54:                                               ; preds = %49
  %55 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  store i32 0, ptr %16, align 4, !tbaa !5
  br i1 %.not551, label %56, label %.thread596.sink.split

.thread:                                          ; preds = %49
  store i32 0, ptr %16, align 4, !tbaa !5
  br i1 %.not551, label %.thread587, label %.thread596.sink.split

56:                                               ; preds = %.thread745, %54
  %57 = phi i32 [ %53, %.thread745 ], [ %55, %54 ]
  %.not553.not = icmp eq i32 %57, 0
  br i1 %.not553.not, label %.thread596.sink.split, label %.thread587

.thread587:                                       ; preds = %.thread.thread, %.thread, %56
  %.not552741 = phi i1 [ true, %56 ], [ false, %.thread ], [ false, %.thread.thread ]
  %58 = phi i1 [ %.not, %56 ], [ %.not551, %.thread ], [ false, %.thread.thread ]
  %59 = phi i1 [ true, %56 ], [ %.not551, %.thread ], [ false, %.thread.thread ]
  %60 = load i32, ptr %15, align 4, !tbaa !5
  %61 = icmp eq i32 %60, -1
  %62 = load i32, ptr %2, align 4, !tbaa !5
  %63 = icmp slt i32 %62, 0
  br i1 %63, label %.thread596.sink.split, label %64

64:                                               ; preds = %.thread587
  %65 = load i32, ptr %4, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %62, i32 1)
  %66 = icmp slt i32 %65, %spec.select
  br i1 %66, label %.thread596.sink.split, label %67

67:                                               ; preds = %64
  %68 = load i32, ptr %6, align 4, !tbaa !5
  %69 = icmp slt i32 %68, %spec.select
  br i1 %69, label %.thread596.sink.split, label %70

70:                                               ; preds = %67
  %71 = load i32, ptr %11, align 4, !tbaa !5
  %72 = icmp slt i32 %71, 1
  %73 = icmp ult i32 %71, %62
  %or.cond618 = and i1 %58, %73
  %or.cond620 = select i1 %72, i1 true, i1 %or.cond618
  br i1 %or.cond620, label %.thread596.sink.split, label %74

74:                                               ; preds = %70
  %75 = load i32, ptr %13, align 4, !tbaa !5
  %76 = icmp slt i32 %75, 1
  %77 = icmp ult i32 %75, %62
  %or.cond619 = and i1 %.not552741, %77
  %or.cond621 = or i1 %76, %or.cond619
  br i1 %or.cond621, label %.thread596.sink.split, label %78

78:                                               ; preds = %74
  store i32 1, ptr %18, align 4, !tbaa !5
  %79 = shl i32 %62, 3
  store i32 %79, ptr %19, align 4, !tbaa !5
  %80 = tail call i32 @llvm.smax.i32(i32 %79, i32 1)
  %81 = icmp sge i32 %60, %80
  %or.cond = or i1 %61, %81
  br i1 %or.cond, label %82, label %.thread596.sink.split

82:                                               ; preds = %78
  call void @sgeqrf_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %14, ptr noundef %14, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #5
  %83 = load i32, ptr %2, align 4, !tbaa !5
  %84 = shl i32 %83, 3
  %85 = call i32 @llvm.smax.i32(i32 %84, i32 1)
  store i32 %85, ptr %18, align 4, !tbaa !5
  %86 = mul nsw i32 %83, 3
  %87 = load float, ptr %14, align 4, !tbaa !9
  %88 = fptosi float %87 to i32
  %89 = add nsw i32 %86, %88
  store i32 %89, ptr %19, align 4, !tbaa !5
  %90 = call i32 @llvm.smax.i32(i32 %85, i32 %89)
  call void @sormqr_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %14, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #5
  store i32 %90, ptr %18, align 4, !tbaa !5
  %91 = load i32, ptr %2, align 4, !tbaa !5
  %92 = mul nsw i32 %91, 3
  %93 = load float, ptr %14, align 4, !tbaa !9
  %94 = fptosi float %93 to i32
  %95 = add nsw i32 %92, %94
  store i32 %95, ptr %19, align 4, !tbaa !5
  %96 = call i32 @llvm.smax.i32(i32 %90, i32 %95)
  call void @sgghd3_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #5
  store i32 %96, ptr %18, align 4, !tbaa !5
  %97 = load i32, ptr %2, align 4, !tbaa !5
  %98 = mul nsw i32 %97, 3
  %99 = load float, ptr %14, align 4, !tbaa !9
  %100 = fptosi float %99 to i32
  %101 = add nsw i32 %98, %100
  store i32 %101, ptr %19, align 4, !tbaa !5
  %102 = call i32 @llvm.smax.i32(i32 %96, i32 %101)
  br i1 %58, label %103, label %.thread591

103:                                              ; preds = %82
  call void @sorgqr_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #5
  store i32 %102, ptr %18, align 4, !tbaa !5
  %104 = load i32, ptr %2, align 4, !tbaa !5
  %105 = mul nsw i32 %104, 3
  %106 = load float, ptr %14, align 4, !tbaa !9
  %107 = fptosi float %106 to i32
  %108 = add nsw i32 %105, %107
  store i32 %108, ptr %19, align 4, !tbaa !5
  %109 = call i32 @llvm.smax.i32(i32 %102, i32 %108)
  br label %.thread591

.thread591:                                       ; preds = %82, %103
  %.str.4.sink = phi ptr [ @.str.4, %103 ], [ @.str.5, %82 ]
  %.sink777 = phi i32 [ %109, %103 ], [ %102, %82 ]
  call void @shgeqz_(ptr noundef nonnull %.str.4.sink, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #5
  %110 = load i32, ptr %2, align 4, !tbaa !5
  %111 = shl i32 %110, 1
  %112 = load float, ptr %14, align 4, !tbaa !9
  %113 = fptosi float %112 to i32
  %114 = add nsw i32 %111, %113
  %115 = call i32 @llvm.smax.i32(i32 %.sink777, i32 %114)
  store i32 %.sink777, ptr %18, align 4
  store i32 %114, ptr %19, align 4
  %116 = uitofp nneg i32 %115 to float
  store float %116, ptr %14, align 4, !tbaa !9
  %.pr595.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not560 = icmp eq i32 %.pr595.pr, 0
  br i1 %.not560, label %120, label %.thread596

.thread596.sink.split:                            ; preds = %78, %74, %70, %67, %64, %.thread587, %56, %54, %.thread
  %.sink = phi i32 [ -1, %.thread ], [ -1, %54 ], [ -2, %56 ], [ -3, %.thread587 ], [ -5, %64 ], [ -7, %67 ], [ -12, %70 ], [ -14, %74 ], [ -16, %78 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread596

.thread596:                                       ; preds = %.thread596.sink.split, %.thread591
  %117 = phi i32 [ %.pr595.pr, %.thread591 ], [ %.sink, %.thread596.sink.split ]
  %118 = sub nsw i32 0, %117
  store i32 %118, ptr %18, align 4, !tbaa !5
  %119 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %18, i32 noundef 7) #5
  br label %452

120:                                              ; preds = %.thread591
  %121 = icmp eq i32 %110, 0
  %or.cond781 = select i1 %61, i1 true, i1 %121
  br i1 %or.cond781, label %452, label %122

122:                                              ; preds = %120
  %123 = call float @slamch_(ptr noundef nonnull @.str.7) #5
  %124 = call float @slamch_(ptr noundef nonnull @.str.4) #5
  store float %124, ptr %31, align 4, !tbaa !9
  %125 = fdiv float 1.000000e+00, %124
  store float %125, ptr %28, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %31, ptr noundef nonnull %28) #5
  %126 = load float, ptr %31, align 4, !tbaa !9
  %127 = fpext float %126 to double
  %128 = call double @sqrt(double noundef %127) #5
  %129 = fpext float %123 to double
  %130 = fdiv double %128, %129
  %131 = fptrunc double %130 to float
  store float %131, ptr %31, align 4, !tbaa !9
  %132 = fdiv float 1.000000e+00, %131
  store float %132, ptr %28, align 4, !tbaa !9
  %133 = call float @slange_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  store float %133, ptr %20, align 4, !tbaa !9
  %134 = fcmp ogt float %133, 0.000000e+00
  %135 = load float, ptr %31, align 4
  %136 = fcmp olt float %133, %135
  %or.cond626 = select i1 %134, i1 %136, i1 false
  br i1 %or.cond626, label %140, label %137

137:                                              ; preds = %122
  %138 = load float, ptr %28, align 4, !tbaa !9
  %139 = fcmp ogt float %133, %138
  br i1 %139, label %140, label %141

140:                                              ; preds = %122, %137
  %storemerge622 = phi float [ %138, %137 ], [ %135, %122 ]
  store float %storemerge622, ptr %29, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %20, ptr noundef nonnull %29, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %22) #5
  br label %141

141:                                              ; preds = %137, %140
  %.not561603 = phi i1 [ false, %140 ], [ true, %137 ]
  %142 = call float @slange_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %14) #5
  store float %142, ptr %21, align 4, !tbaa !9
  %143 = fcmp ogt float %142, 0.000000e+00
  %144 = load float, ptr %31, align 4
  %145 = fcmp olt float %142, %144
  %or.cond628 = select i1 %143, i1 %145, i1 false
  br i1 %or.cond628, label %149, label %146

146:                                              ; preds = %141
  %147 = load float, ptr %28, align 4, !tbaa !9
  %148 = fcmp ogt float %142, %147
  br i1 %148, label %149, label %150

149:                                              ; preds = %141, %146
  %storemerge623 = phi float [ %147, %146 ], [ %144, %141 ]
  store float %storemerge623, ptr %30, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull %30, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22) #5
  br label %150

150:                                              ; preds = %146, %149
  %.not563608 = phi i1 [ false, %149 ], [ true, %146 ]
  %151 = load i32, ptr %2, align 4, !tbaa !5
  %152 = add nsw i32 %151, 1
  %153 = add nsw i32 %152, %151
  %154 = sext i32 %152 to i64
  %155 = getelementptr inbounds float, ptr %47, i64 %154
  %156 = sext i32 %153 to i64
  %157 = getelementptr inbounds float, ptr %47, i64 %156
  call void @sggbal_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %14, ptr noundef nonnull %155, ptr noundef nonnull %157, ptr noundef nonnull %22) #5
  %158 = load i32, ptr %32, align 4, !tbaa !5
  %159 = add nsw i32 %158, 1
  %160 = load i32, ptr %33, align 4, !tbaa !5
  %161 = sub i32 %159, %160
  store i32 %161, ptr %24, align 4, !tbaa !5
  br i1 %59, label %162, label %165

162:                                              ; preds = %150
  %163 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub = sub i32 %163, %160
  %164 = add i32 %reass.sub, 1
  br label %165

165:                                              ; preds = %150, %162
  %storemerge = phi i32 [ %164, %162 ], [ %161, %150 ]
  store i32 %storemerge, ptr %23, align 4, !tbaa !5
  %166 = add nsw i32 %161, %153
  %167 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub675 = sub i32 %167, %166
  %168 = add i32 %reass.sub675, 1
  store i32 %168, ptr %18, align 4, !tbaa !5
  %169 = add i32 %37, 1
  %170 = mul i32 %160, %169
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds float, ptr %39, i64 %171
  %173 = sext i32 %166 to i64
  %174 = getelementptr inbounds float, ptr %47, i64 %173
  call void @sgeqrf_(ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef %172, ptr noundef nonnull %6, ptr noundef nonnull %157, ptr noundef nonnull %174, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %175 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub676 = sub i32 %175, %166
  %176 = add i32 %reass.sub676, 1
  store i32 %176, ptr %18, align 4, !tbaa !5
  %177 = load i32, ptr %33, align 4, !tbaa !5
  %178 = mul i32 %177, %169
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds float, ptr %39, i64 %179
  %181 = add i32 %34, 1
  %182 = mul i32 %177, %181
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds float, ptr %36, i64 %183
  call void @sormqr_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef %180, ptr noundef nonnull %6, ptr noundef nonnull %157, ptr noundef %184, ptr noundef nonnull %4, ptr noundef nonnull %174, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  br i1 %58, label %185, label %208

185:                                              ; preds = %165
  call void @slaset_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %10, ptr noundef nonnull %11) #5
  %186 = load i32, ptr %24, align 4, !tbaa !5
  %187 = icmp sgt i32 %186, 1
  br i1 %187, label %188, label %200

188:                                              ; preds = %185
  %189 = add nsw i32 %186, -1
  store i32 %189, ptr %18, align 4, !tbaa !5
  store i32 %189, ptr %19, align 4, !tbaa !5
  %190 = load i32, ptr %33, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  %192 = mul nsw i32 %190, %37
  %193 = add nsw i32 %191, %192
  %194 = sext i32 %193 to i64
  %195 = getelementptr inbounds float, ptr %39, i64 %194
  %196 = mul nsw i32 %190, %41
  %197 = add nsw i32 %191, %196
  %198 = sext i32 %197 to i64
  %199 = getelementptr inbounds float, ptr %43, i64 %198
  call void @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %195, ptr noundef nonnull %6, ptr noundef %199, ptr noundef nonnull %11) #5
  br label %200

200:                                              ; preds = %188, %185
  %201 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub677 = sub i32 %201, %166
  %202 = add i32 %reass.sub677, 1
  store i32 %202, ptr %18, align 4, !tbaa !5
  %203 = load i32, ptr %33, align 4, !tbaa !5
  %204 = add i32 %41, 1
  %205 = mul i32 %203, %204
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds float, ptr %43, i64 %206
  call void @sorgqr_(ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef %207, ptr noundef nonnull %11, ptr noundef nonnull %157, ptr noundef nonnull %174, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  br label %208

208:                                              ; preds = %200, %165
  br i1 %.not552741, label %209, label %210

209:                                              ; preds = %208
  call void @slaset_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %12, ptr noundef nonnull %13) #5
  br label %210

210:                                              ; preds = %209, %208
  %211 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub679 = sub i32 %211, %166
  %212 = add i32 %reass.sub679, 1
  store i32 %212, ptr %18, align 4, !tbaa !5
  br i1 %59, label %213, label %214

213:                                              ; preds = %210
  call void @sgghd3_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %174, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  br label %222

214:                                              ; preds = %210
  %215 = load i32, ptr %33, align 4, !tbaa !5
  %216 = mul i32 %215, %181
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds float, ptr %36, i64 %217
  %219 = mul i32 %215, %169
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds float, ptr %39, i64 %220
  call void @sgghd3_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef %218, ptr noundef nonnull %4, ptr noundef %221, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %174, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  br label %222

222:                                              ; preds = %214, %213
  %.585 = phi i8 [ 69, %214 ], [ 83, %213 ]
  store i8 %.585, ptr %27, align 1, !tbaa !11
  %223 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub680 = sub i32 %223, %153
  %224 = add i32 %reass.sub680, 1
  store i32 %224, ptr %18, align 4, !tbaa !5
  call void @shgeqz_(ptr noundef nonnull %27, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %157, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %225 = load i32, ptr %22, align 4, !tbaa !5
  %.not567 = icmp eq i32 %225, 0
  br i1 %.not567, label %235, label %226

226:                                              ; preds = %222
  %227 = icmp slt i32 %225, 1
  %.pre = load i32, ptr %2, align 4, !tbaa !5
  %.not579 = icmp sgt i32 %225, %.pre
  %or.cond782 = select i1 %227, i1 true, i1 %.not579
  br i1 %or.cond782, label %228, label %.loopexit634.sink.split

228:                                              ; preds = %226
  %229 = icmp sle i32 %225, %.pre
  %230 = shl i32 %.pre, 1
  %.not580 = icmp sgt i32 %225, %230
  %or.cond586 = or i1 %229, %.not580
  br i1 %or.cond586, label %233, label %231

231:                                              ; preds = %228
  %232 = sub nsw i32 %225, %.pre
  br label %.loopexit634.sink.split

233:                                              ; preds = %228
  %234 = add nsw i32 %.pre, 1
  br label %.loopexit634.sink.split

235:                                              ; preds = %222
  br i1 %59, label %236, label %.loopexit634

236:                                              ; preds = %235
  br i1 %58, label %237, label %.thread609

237:                                              ; preds = %236
  %. = select i1 %.not552741, i8 66, i8 76
  store i8 %., ptr %27, align 1, !tbaa !11
  call void @stgevc_(ptr noundef nonnull %27, ptr noundef nonnull @.str.11, ptr noundef nonnull %26, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef nonnull %157, ptr noundef nonnull %22) #5
  %238 = load i32, ptr %22, align 4, !tbaa !5
  %.not568 = icmp eq i32 %238, 0
  br i1 %.not568, label %243, label %240

.thread609:                                       ; preds = %236
  store i8 82, ptr %27, align 1, !tbaa !11
  call void @stgevc_(ptr noundef nonnull %27, ptr noundef nonnull @.str.11, ptr noundef nonnull %26, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef nonnull %157, ptr noundef nonnull %22) #5
  %239 = load i32, ptr %22, align 4, !tbaa !5
  %.not568610 = icmp eq i32 %239, 0
  br i1 %.not568610, label %.thread611, label %240

240:                                              ; preds = %.thread609, %237
  %241 = load i32, ptr %2, align 4, !tbaa !5
  %242 = add nsw i32 %241, 2
  br label %.loopexit634.sink.split

243:                                              ; preds = %237
  call void @sggbak_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %14, ptr noundef nonnull %155, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %22) #5
  %244 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %244, ptr %18, align 4, !tbaa !5
  %.not569653 = icmp slt i32 %244, 1
  br i1 %.not569653, label %.thread611, label %.lr.ph655

.lr.ph655:                                        ; preds = %243
  %245 = load float, ptr %31, align 4
  %246 = add nuw i32 %244, 1
  %247 = sext i32 %41 to i64
  %wide.trip.count707 = zext i32 %246 to i64
  %248 = zext nneg i32 %244 to i64
  %249 = shl nsw i64 %247, 2
  %250 = shl nsw i64 %42, 2
  %251 = getelementptr i8, ptr %10, i64 %249
  %252 = getelementptr i8, ptr %251, i64 %250
  %scevgep = getelementptr i8, ptr %252, i64 4
  %253 = shl nuw nsw i64 %wide.trip.count707, 2
  %254 = add nsw i64 %253, -4
  %255 = mul i64 %254, %247
  %256 = getelementptr i8, ptr %10, i64 %255
  %257 = getelementptr i8, ptr %256, i64 %250
  %scevgep792 = getelementptr i8, ptr %257, i64 %253
  %258 = shl nsw i64 %247, 3
  %259 = getelementptr i8, ptr %10, i64 %258
  %260 = getelementptr i8, ptr %259, i64 %250
  %scevgep793 = getelementptr i8, ptr %260, i64 4
  %261 = add nsw i64 %249, 4
  %262 = mul i64 %261, %wide.trip.count707
  %263 = getelementptr i8, ptr %10, i64 %262
  %scevgep794 = getelementptr i8, ptr %263, i64 %250
  %264 = zext nneg i32 %244 to i64
  %265 = zext nneg i32 %244 to i64
  %266 = zext nneg i32 %244 to i64
  %xtraiter = and i64 %265, 1
  %267 = icmp eq i32 %246, 2
  %unroll_iter = and i64 %265, 2147483646
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %min.iters.check798 = icmp ult i32 %244, 8
  %bound0 = icmp ult ptr %scevgep, %scevgep794
  %bound1 = icmp ult ptr %scevgep793, %scevgep792
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i32 %41, 0
  %268 = or i1 %found.conflict, %stride.check
  %n.vec801 = and i64 %264, 2147483640
  %ind.end802 = or disjoint i64 %n.vec801, 1
  %cmp.n814 = icmp eq i64 %n.vec801, %264
  %269 = and i32 %244, 1
  %lcmp.mod870.not = icmp eq i32 %269, 0
  %min.iters.check = icmp ult i32 %244, 8
  %n.vec = and i64 %248, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %n.vec, %248
  br label %270

270:                                              ; preds = %.lr.ph655, %.loopexit635
  %indvars.iv704 = phi i64 [ 1, %.lr.ph655 ], [ %indvars.iv.next705, %.loopexit635 ]
  %271 = getelementptr inbounds float, ptr %40, i64 %indvars.iv704
  %272 = load float, ptr %271, align 4, !tbaa !9
  %273 = fcmp olt float %272, 0.000000e+00
  br i1 %273, label %.loopexit635, label %274

274:                                              ; preds = %270
  %275 = fcmp oeq float %272, 0.000000e+00
  store i32 %244, ptr %19, align 4, !tbaa !5
  %276 = mul nsw i64 %indvars.iv704, %247
  br i1 %275, label %.lr.ph645, label %.lr.ph

.lr.ph645:                                        ; preds = %274
  %invariant.gep757 = getelementptr float, ptr %43, i64 %276
  br i1 %267, label %.loopexit637.loopexit.unr-lcssa, label %.lr.ph645.new

.lr.ph645.new:                                    ; preds = %.lr.ph645
  %invariant.gep882 = getelementptr i8, ptr %invariant.gep757, i64 4
  br label %277

277:                                              ; preds = %277, %.lr.ph645.new
  %indvars.iv689 = phi i64 [ 1, %.lr.ph645.new ], [ %indvars.iv.next690.1, %277 ]
  %.0528643 = phi float [ 0.000000e+00, %.lr.ph645.new ], [ %289, %277 ]
  %niter = phi i64 [ 0, %.lr.ph645.new ], [ %niter.next.1, %277 ]
  %gep758 = getelementptr float, ptr %invariant.gep757, i64 %indvars.iv689
  %278 = load float, ptr %gep758, align 4, !tbaa !9
  %279 = fcmp oge float %278, 0.000000e+00
  %280 = fneg float %278
  %281 = select i1 %279, float %278, float %280
  %282 = fcmp oge float %.0528643, %281
  %283 = select i1 %282, float %.0528643, float %281
  %gep883 = getelementptr float, ptr %invariant.gep882, i64 %indvars.iv689
  %284 = load float, ptr %gep883, align 4, !tbaa !9
  %285 = fcmp oge float %284, 0.000000e+00
  %286 = fneg float %284
  %287 = select i1 %285, float %284, float %286
  %288 = fcmp oge float %283, %287
  %289 = select i1 %288, float %283, float %287
  %indvars.iv.next690.1 = add nuw nsw i64 %indvars.iv689, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.loopexit637.loopexit.unr-lcssa, label %277, !llvm.loop !12

.lr.ph:                                           ; preds = %274
  %290 = add nuw nsw i64 %indvars.iv704, 1
  %291 = mul nsw i64 %290, %247
  %invariant.gep = getelementptr float, ptr %43, i64 %276
  %invariant.gep755 = getelementptr float, ptr %43, i64 %291
  br label %292

292:                                              ; preds = %.lr.ph, %292
  %indvars.iv = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next, %292 ]
  %.1529640 = phi float [ 0.000000e+00, %.lr.ph ], [ %303, %292 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv
  %293 = load float, ptr %gep, align 4, !tbaa !9
  %294 = fcmp oge float %293, 0.000000e+00
  %295 = fneg float %293
  %296 = select i1 %294, float %293, float %295
  %gep756 = getelementptr float, ptr %invariant.gep755, i64 %indvars.iv
  %297 = load float, ptr %gep756, align 4, !tbaa !9
  %298 = fcmp oge float %297, 0.000000e+00
  %299 = fneg float %297
  %300 = select i1 %298, float %297, float %299
  %301 = fadd float %296, %300
  %302 = fcmp oge float %.1529640, %301
  %303 = select i1 %302, float %.1529640, float %301
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count707
  br i1 %exitcond.not, label %.loopexit637, label %292, !llvm.loop !14

.loopexit637.loopexit.unr-lcssa:                  ; preds = %277, %.lr.ph645
  %.lcssa867.ph = phi float [ poison, %.lr.ph645 ], [ %289, %277 ]
  %indvars.iv689.unr = phi i64 [ 1, %.lr.ph645 ], [ %indvars.iv.next690.1, %277 ]
  %.0528643.unr = phi float [ 0.000000e+00, %.lr.ph645 ], [ %289, %277 ]
  br i1 %lcmp.mod.not, label %.loopexit637, label %.loopexit637.loopexit.epilog-lcssa

.loopexit637.loopexit.epilog-lcssa:               ; preds = %.loopexit637.loopexit.unr-lcssa
  %gep758.epil = getelementptr float, ptr %invariant.gep757, i64 %indvars.iv689.unr
  %304 = load float, ptr %gep758.epil, align 4, !tbaa !9
  %305 = fcmp oge float %304, 0.000000e+00
  %306 = fneg float %304
  %307 = select i1 %305, float %304, float %306
  %308 = fcmp oge float %.0528643.unr, %307
  %309 = select i1 %308, float %.0528643.unr, float %307
  br label %.loopexit637

.loopexit637:                                     ; preds = %292, %.loopexit637.loopexit.epilog-lcssa, %.loopexit637.loopexit.unr-lcssa
  %.2530 = phi float [ %.lcssa867.ph, %.loopexit637.loopexit.unr-lcssa ], [ %309, %.loopexit637.loopexit.epilog-lcssa ], [ %303, %292 ]
  %310 = fcmp olt float %.2530, %245
  br i1 %310, label %.loopexit635, label %311

311:                                              ; preds = %.loopexit637
  %312 = fdiv float 1.000000e+00, %.2530
  store i32 %244, ptr %19, align 4, !tbaa !5
  %313 = mul nsw i64 %indvars.iv704, %247
  br i1 %275, label %.lr.ph652, label %.lr.ph649

.lr.ph652:                                        ; preds = %311
  %invariant.gep763 = getelementptr float, ptr %43, i64 %313
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph652
  %broadcast.splatinsert = insertelement <4 x float> poison, float %312, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %314 = getelementptr float, ptr %invariant.gep763, i64 %offset.idx
  %315 = getelementptr i8, ptr %314, i64 16
  %wide.load = load <4 x float>, ptr %314, align 4, !tbaa !9
  %wide.load791 = load <4 x float>, ptr %315, align 4, !tbaa !9
  %316 = fmul <4 x float> %broadcast.splat, %wide.load
  %317 = fmul <4 x float> %broadcast.splat, %wide.load791
  store <4 x float> %316, ptr %314, align 4, !tbaa !9
  store <4 x float> %317, ptr %315, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %318 = icmp eq i64 %index.next, %n.vec
  br i1 %318, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %.loopexit635, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph652
  %indvars.iv699.ph = phi i64 [ 1, %.lr.ph652 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv699 = phi i64 [ %indvars.iv.next700, %scalar.ph ], [ %indvars.iv699.ph, %scalar.ph.preheader ]
  %gep764 = getelementptr float, ptr %invariant.gep763, i64 %indvars.iv699
  %319 = load float, ptr %gep764, align 4, !tbaa !9
  %320 = fmul float %312, %319
  store float %320, ptr %gep764, align 4, !tbaa !9
  %indvars.iv.next700 = add nuw nsw i64 %indvars.iv699, 1
  %exitcond703.not = icmp eq i64 %indvars.iv.next700, %wide.trip.count707
  br i1 %exitcond703.not, label %.loopexit635, label %scalar.ph, !llvm.loop !18

.lr.ph649:                                        ; preds = %311
  %321 = add nuw nsw i64 %indvars.iv704, 1
  %322 = mul nsw i64 %321, %247
  %invariant.gep759 = getelementptr float, ptr %43, i64 %313
  %invariant.gep761 = getelementptr float, ptr %43, i64 %322
  %brmerge = select i1 %min.iters.check798, i1 true, i1 %268
  br i1 %brmerge, label %scalar.ph797.preheader, label %vector.ph799

vector.ph799:                                     ; preds = %.lr.ph649
  %broadcast.splatinsert809 = insertelement <4 x float> poison, float %312, i64 0
  %broadcast.splat810 = shufflevector <4 x float> %broadcast.splatinsert809, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body804

vector.body804:                                   ; preds = %vector.body804, %vector.ph799
  %index805 = phi i64 [ 0, %vector.ph799 ], [ %index.next813, %vector.body804 ]
  %offset.idx806 = or disjoint i64 %index805, 1
  %323 = getelementptr float, ptr %invariant.gep759, i64 %offset.idx806
  %324 = getelementptr i8, ptr %323, i64 16
  %wide.load807 = load <4 x float>, ptr %323, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %wide.load808 = load <4 x float>, ptr %324, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %325 = fmul <4 x float> %broadcast.splat810, %wide.load807
  %326 = fmul <4 x float> %broadcast.splat810, %wide.load808
  store <4 x float> %325, ptr %323, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  store <4 x float> %326, ptr %324, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %327 = getelementptr float, ptr %invariant.gep761, i64 %offset.idx806
  %328 = getelementptr i8, ptr %327, i64 16
  %wide.load811 = load <4 x float>, ptr %327, align 4, !tbaa !9, !alias.scope !22
  %wide.load812 = load <4 x float>, ptr %328, align 4, !tbaa !9, !alias.scope !22
  %329 = fmul <4 x float> %broadcast.splat810, %wide.load811
  %330 = fmul <4 x float> %broadcast.splat810, %wide.load812
  store <4 x float> %329, ptr %327, align 4, !tbaa !9, !alias.scope !22
  store <4 x float> %330, ptr %328, align 4, !tbaa !9, !alias.scope !22
  %index.next813 = add nuw i64 %index805, 8
  %331 = icmp eq i64 %index.next813, %n.vec801
  br i1 %331, label %middle.block796, label %vector.body804, !llvm.loop !24

middle.block796:                                  ; preds = %vector.body804
  br i1 %cmp.n814, label %.loopexit635, label %scalar.ph797.preheader

scalar.ph797.preheader:                           ; preds = %.lr.ph649, %middle.block796
  %indvars.iv694.ph = phi i64 [ 1, %.lr.ph649 ], [ %ind.end802, %middle.block796 ]
  br i1 %lcmp.mod870.not, label %scalar.ph797.prol.loopexit, label %scalar.ph797.prol

scalar.ph797.prol:                                ; preds = %scalar.ph797.preheader
  %gep760.prol = getelementptr float, ptr %invariant.gep759, i64 %indvars.iv694.ph
  %332 = load float, ptr %gep760.prol, align 4, !tbaa !9
  %333 = fmul float %312, %332
  store float %333, ptr %gep760.prol, align 4, !tbaa !9
  %gep762.prol = getelementptr float, ptr %invariant.gep761, i64 %indvars.iv694.ph
  %334 = load float, ptr %gep762.prol, align 4, !tbaa !9
  %335 = fmul float %312, %334
  store float %335, ptr %gep762.prol, align 4, !tbaa !9
  %indvars.iv.next695.prol = add nuw nsw i64 %indvars.iv694.ph, 1
  br label %scalar.ph797.prol.loopexit

scalar.ph797.prol.loopexit:                       ; preds = %scalar.ph797.prol, %scalar.ph797.preheader
  %indvars.iv694.unr = phi i64 [ %indvars.iv694.ph, %scalar.ph797.preheader ], [ %indvars.iv.next695.prol, %scalar.ph797.prol ]
  %336 = icmp eq i64 %indvars.iv694.ph, %266
  br i1 %336, label %.loopexit635, label %scalar.ph797

scalar.ph797:                                     ; preds = %scalar.ph797.prol.loopexit, %scalar.ph797
  %indvars.iv694 = phi i64 [ %indvars.iv.next695.1, %scalar.ph797 ], [ %indvars.iv694.unr, %scalar.ph797.prol.loopexit ]
  %gep760 = getelementptr float, ptr %invariant.gep759, i64 %indvars.iv694
  %337 = load float, ptr %gep760, align 4, !tbaa !9
  %338 = fmul float %312, %337
  store float %338, ptr %gep760, align 4, !tbaa !9
  %gep762 = getelementptr float, ptr %invariant.gep761, i64 %indvars.iv694
  %339 = load float, ptr %gep762, align 4, !tbaa !9
  %340 = fmul float %312, %339
  store float %340, ptr %gep762, align 4, !tbaa !9
  %indvars.iv.next695 = add nuw nsw i64 %indvars.iv694, 1
  %gep760.1 = getelementptr float, ptr %invariant.gep759, i64 %indvars.iv.next695
  %341 = load float, ptr %gep760.1, align 4, !tbaa !9
  %342 = fmul float %312, %341
  store float %342, ptr %gep760.1, align 4, !tbaa !9
  %gep762.1 = getelementptr float, ptr %invariant.gep761, i64 %indvars.iv.next695
  %343 = load float, ptr %gep762.1, align 4, !tbaa !9
  %344 = fmul float %312, %343
  store float %344, ptr %gep762.1, align 4, !tbaa !9
  %indvars.iv.next695.1 = add nuw nsw i64 %indvars.iv694, 2
  %exitcond698.not.1 = icmp eq i64 %indvars.iv.next695.1, %wide.trip.count707
  br i1 %exitcond698.not.1, label %.loopexit635, label %scalar.ph797, !llvm.loop !25

.loopexit635:                                     ; preds = %scalar.ph797.prol.loopexit, %scalar.ph797, %scalar.ph, %middle.block796, %middle.block, %270, %.loopexit637
  %indvars.iv.next705 = add nuw nsw i64 %indvars.iv704, 1
  %exitcond708.not = icmp eq i64 %indvars.iv.next705, %wide.trip.count707
  br i1 %exitcond708.not, label %.thread611, label %270, !llvm.loop !26

.thread611:                                       ; preds = %.loopexit635, %243, %.thread609
  br i1 %.not552741, label %345, label %.loopexit634

345:                                              ; preds = %.thread611
  call void @sggbak_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %14, ptr noundef nonnull %155, ptr noundef nonnull %2, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %22) #5
  %346 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %346, ptr %18, align 4, !tbaa !5
  %.not570672 = icmp slt i32 %346, 1
  br i1 %.not570672, label %.loopexit634, label %.lr.ph674

.lr.ph674:                                        ; preds = %345
  %347 = load float, ptr %31, align 4
  %348 = add nuw i32 %346, 1
  %349 = sext i32 %44 to i64
  %wide.trip.count732 = zext i32 %348 to i64
  %350 = zext nneg i32 %346 to i64
  %351 = shl nsw i64 %349, 2
  %352 = shl nsw i64 %45, 2
  %353 = getelementptr i8, ptr %12, i64 %351
  %354 = getelementptr i8, ptr %353, i64 %352
  %scevgep833 = getelementptr i8, ptr %354, i64 4
  %355 = shl nuw nsw i64 %wide.trip.count732, 2
  %356 = add nsw i64 %355, -4
  %357 = mul i64 %356, %349
  %358 = getelementptr i8, ptr %12, i64 %357
  %359 = getelementptr i8, ptr %358, i64 %352
  %scevgep834 = getelementptr i8, ptr %359, i64 %355
  %360 = shl nsw i64 %349, 3
  %361 = getelementptr i8, ptr %12, i64 %360
  %362 = getelementptr i8, ptr %361, i64 %352
  %scevgep835 = getelementptr i8, ptr %362, i64 4
  %363 = add nsw i64 %351, 4
  %364 = mul i64 %363, %wide.trip.count732
  %365 = getelementptr i8, ptr %12, i64 %364
  %scevgep836 = getelementptr i8, ptr %365, i64 %352
  %366 = zext nneg i32 %346 to i64
  %367 = zext nneg i32 %346 to i64
  %368 = zext nneg i32 %346 to i64
  %xtraiter872 = and i64 %367, 1
  %369 = icmp eq i32 %348, 2
  %unroll_iter875 = and i64 %367, 2147483646
  %lcmp.mod873.not = icmp eq i64 %xtraiter872, 0
  %min.iters.check844 = icmp ult i32 %346, 8
  %bound0837 = icmp ult ptr %scevgep833, %scevgep836
  %bound1838 = icmp ult ptr %scevgep835, %scevgep834
  %found.conflict839 = and i1 %bound0837, %bound1838
  %stride.check840 = icmp slt i32 %44, 0
  %370 = or i1 %found.conflict839, %stride.check840
  %n.vec847 = and i64 %366, 2147483640
  %ind.end848 = or disjoint i64 %n.vec847, 1
  %cmp.n860 = icmp eq i64 %n.vec847, %366
  %371 = and i32 %346, 1
  %lcmp.mod878.not = icmp eq i32 %371, 0
  %min.iters.check817 = icmp ult i32 %346, 8
  %n.vec820 = and i64 %350, 2147483640
  %ind.end821 = or disjoint i64 %n.vec820, 1
  %cmp.n831 = icmp eq i64 %n.vec820, %350
  br label %372

372:                                              ; preds = %.lr.ph674, %.loopexit
  %indvars.iv729 = phi i64 [ 1, %.lr.ph674 ], [ %indvars.iv.next730, %.loopexit ]
  %373 = getelementptr inbounds float, ptr %40, i64 %indvars.iv729
  %374 = load float, ptr %373, align 4, !tbaa !9
  %375 = fcmp olt float %374, 0.000000e+00
  br i1 %375, label %.loopexit, label %376

376:                                              ; preds = %372
  %377 = fcmp oeq float %374, 0.000000e+00
  store i32 %346, ptr %19, align 4, !tbaa !5
  %378 = mul nsw i64 %indvars.iv729, %349
  br i1 %377, label %.lr.ph664, label %.lr.ph659

.lr.ph664:                                        ; preds = %376
  %invariant.gep769 = getelementptr float, ptr %46, i64 %378
  br i1 %369, label %.loopexit632.loopexit.unr-lcssa, label %.lr.ph664.new

.lr.ph664.new:                                    ; preds = %.lr.ph664
  %invariant.gep884 = getelementptr i8, ptr %invariant.gep769, i64 4
  br label %379

379:                                              ; preds = %379, %.lr.ph664.new
  %indvars.iv714 = phi i64 [ 1, %.lr.ph664.new ], [ %indvars.iv.next715.1, %379 ]
  %.3531662 = phi float [ 0.000000e+00, %.lr.ph664.new ], [ %391, %379 ]
  %niter876 = phi i64 [ 0, %.lr.ph664.new ], [ %niter876.next.1, %379 ]
  %gep770 = getelementptr float, ptr %invariant.gep769, i64 %indvars.iv714
  %380 = load float, ptr %gep770, align 4, !tbaa !9
  %381 = fcmp oge float %380, 0.000000e+00
  %382 = fneg float %380
  %383 = select i1 %381, float %380, float %382
  %384 = fcmp oge float %.3531662, %383
  %385 = select i1 %384, float %.3531662, float %383
  %gep885 = getelementptr float, ptr %invariant.gep884, i64 %indvars.iv714
  %386 = load float, ptr %gep885, align 4, !tbaa !9
  %387 = fcmp oge float %386, 0.000000e+00
  %388 = fneg float %386
  %389 = select i1 %387, float %386, float %388
  %390 = fcmp oge float %385, %389
  %391 = select i1 %390, float %385, float %389
  %indvars.iv.next715.1 = add nuw nsw i64 %indvars.iv714, 2
  %niter876.next.1 = add i64 %niter876, 2
  %niter876.ncmp.1 = icmp eq i64 %niter876.next.1, %unroll_iter875
  br i1 %niter876.ncmp.1, label %.loopexit632.loopexit.unr-lcssa, label %379, !llvm.loop !27

.lr.ph659:                                        ; preds = %376
  %392 = add nuw nsw i64 %indvars.iv729, 1
  %393 = mul nsw i64 %392, %349
  %invariant.gep765 = getelementptr float, ptr %46, i64 %378
  %invariant.gep767 = getelementptr float, ptr %46, i64 %393
  br label %394

394:                                              ; preds = %.lr.ph659, %394
  %indvars.iv709 = phi i64 [ 1, %.lr.ph659 ], [ %indvars.iv.next710, %394 ]
  %.4532657 = phi float [ 0.000000e+00, %.lr.ph659 ], [ %405, %394 ]
  %gep766 = getelementptr float, ptr %invariant.gep765, i64 %indvars.iv709
  %395 = load float, ptr %gep766, align 4, !tbaa !9
  %396 = fcmp oge float %395, 0.000000e+00
  %397 = fneg float %395
  %398 = select i1 %396, float %395, float %397
  %gep768 = getelementptr float, ptr %invariant.gep767, i64 %indvars.iv709
  %399 = load float, ptr %gep768, align 4, !tbaa !9
  %400 = fcmp oge float %399, 0.000000e+00
  %401 = fneg float %399
  %402 = select i1 %400, float %399, float %401
  %403 = fadd float %398, %402
  %404 = fcmp oge float %.4532657, %403
  %405 = select i1 %404, float %.4532657, float %403
  %indvars.iv.next710 = add nuw nsw i64 %indvars.iv709, 1
  %exitcond713.not = icmp eq i64 %indvars.iv.next710, %wide.trip.count732
  br i1 %exitcond713.not, label %.loopexit632, label %394, !llvm.loop !28

.loopexit632.loopexit.unr-lcssa:                  ; preds = %379, %.lr.ph664
  %.lcssa863.ph = phi float [ poison, %.lr.ph664 ], [ %391, %379 ]
  %indvars.iv714.unr = phi i64 [ 1, %.lr.ph664 ], [ %indvars.iv.next715.1, %379 ]
  %.3531662.unr = phi float [ 0.000000e+00, %.lr.ph664 ], [ %391, %379 ]
  br i1 %lcmp.mod873.not, label %.loopexit632, label %.loopexit632.loopexit.epilog-lcssa

.loopexit632.loopexit.epilog-lcssa:               ; preds = %.loopexit632.loopexit.unr-lcssa
  %gep770.epil = getelementptr float, ptr %invariant.gep769, i64 %indvars.iv714.unr
  %406 = load float, ptr %gep770.epil, align 4, !tbaa !9
  %407 = fcmp oge float %406, 0.000000e+00
  %408 = fneg float %406
  %409 = select i1 %407, float %406, float %408
  %410 = fcmp oge float %.3531662.unr, %409
  %411 = select i1 %410, float %.3531662.unr, float %409
  br label %.loopexit632

.loopexit632:                                     ; preds = %394, %.loopexit632.loopexit.epilog-lcssa, %.loopexit632.loopexit.unr-lcssa
  %.5533 = phi float [ %.lcssa863.ph, %.loopexit632.loopexit.unr-lcssa ], [ %411, %.loopexit632.loopexit.epilog-lcssa ], [ %405, %394 ]
  %412 = fcmp olt float %.5533, %347
  br i1 %412, label %.loopexit, label %413

413:                                              ; preds = %.loopexit632
  %414 = fdiv float 1.000000e+00, %.5533
  store i32 %346, ptr %19, align 4, !tbaa !5
  %415 = mul nsw i64 %indvars.iv729, %349
  br i1 %377, label %.lr.ph671, label %.lr.ph668

.lr.ph671:                                        ; preds = %413
  %invariant.gep775 = getelementptr float, ptr %46, i64 %415
  br i1 %min.iters.check817, label %scalar.ph816.preheader, label %vector.ph818

vector.ph818:                                     ; preds = %.lr.ph671
  %broadcast.splatinsert828 = insertelement <4 x float> poison, float %414, i64 0
  %broadcast.splat829 = shufflevector <4 x float> %broadcast.splatinsert828, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body823

vector.body823:                                   ; preds = %vector.body823, %vector.ph818
  %index824 = phi i64 [ 0, %vector.ph818 ], [ %index.next830, %vector.body823 ]
  %offset.idx825 = or disjoint i64 %index824, 1
  %416 = getelementptr float, ptr %invariant.gep775, i64 %offset.idx825
  %417 = getelementptr i8, ptr %416, i64 16
  %wide.load826 = load <4 x float>, ptr %416, align 4, !tbaa !9
  %wide.load827 = load <4 x float>, ptr %417, align 4, !tbaa !9
  %418 = fmul <4 x float> %broadcast.splat829, %wide.load826
  %419 = fmul <4 x float> %broadcast.splat829, %wide.load827
  store <4 x float> %418, ptr %416, align 4, !tbaa !9
  store <4 x float> %419, ptr %417, align 4, !tbaa !9
  %index.next830 = add nuw i64 %index824, 8
  %420 = icmp eq i64 %index.next830, %n.vec820
  br i1 %420, label %middle.block815, label %vector.body823, !llvm.loop !29

middle.block815:                                  ; preds = %vector.body823
  br i1 %cmp.n831, label %.loopexit, label %scalar.ph816.preheader

scalar.ph816.preheader:                           ; preds = %middle.block815, %.lr.ph671
  %indvars.iv724.ph = phi i64 [ 1, %.lr.ph671 ], [ %ind.end821, %middle.block815 ]
  br label %scalar.ph816

scalar.ph816:                                     ; preds = %scalar.ph816.preheader, %scalar.ph816
  %indvars.iv724 = phi i64 [ %indvars.iv.next725, %scalar.ph816 ], [ %indvars.iv724.ph, %scalar.ph816.preheader ]
  %gep776 = getelementptr float, ptr %invariant.gep775, i64 %indvars.iv724
  %421 = load float, ptr %gep776, align 4, !tbaa !9
  %422 = fmul float %414, %421
  store float %422, ptr %gep776, align 4, !tbaa !9
  %indvars.iv.next725 = add nuw nsw i64 %indvars.iv724, 1
  %exitcond728.not = icmp eq i64 %indvars.iv.next725, %wide.trip.count732
  br i1 %exitcond728.not, label %.loopexit, label %scalar.ph816, !llvm.loop !30

.lr.ph668:                                        ; preds = %413
  %423 = add nuw nsw i64 %indvars.iv729, 1
  %424 = mul nsw i64 %423, %349
  %invariant.gep771 = getelementptr float, ptr %46, i64 %415
  %invariant.gep773 = getelementptr float, ptr %46, i64 %424
  %brmerge886 = select i1 %min.iters.check844, i1 true, i1 %370
  br i1 %brmerge886, label %scalar.ph843.preheader, label %vector.ph845

vector.ph845:                                     ; preds = %.lr.ph668
  %broadcast.splatinsert855 = insertelement <4 x float> poison, float %414, i64 0
  %broadcast.splat856 = shufflevector <4 x float> %broadcast.splatinsert855, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body850

vector.body850:                                   ; preds = %vector.body850, %vector.ph845
  %index851 = phi i64 [ 0, %vector.ph845 ], [ %index.next859, %vector.body850 ]
  %offset.idx852 = or disjoint i64 %index851, 1
  %425 = getelementptr float, ptr %invariant.gep771, i64 %offset.idx852
  %426 = getelementptr i8, ptr %425, i64 16
  %wide.load853 = load <4 x float>, ptr %425, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %wide.load854 = load <4 x float>, ptr %426, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %427 = fmul <4 x float> %broadcast.splat856, %wide.load853
  %428 = fmul <4 x float> %broadcast.splat856, %wide.load854
  store <4 x float> %427, ptr %425, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  store <4 x float> %428, ptr %426, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %429 = getelementptr float, ptr %invariant.gep773, i64 %offset.idx852
  %430 = getelementptr i8, ptr %429, i64 16
  %wide.load857 = load <4 x float>, ptr %429, align 4, !tbaa !9, !alias.scope !34
  %wide.load858 = load <4 x float>, ptr %430, align 4, !tbaa !9, !alias.scope !34
  %431 = fmul <4 x float> %broadcast.splat856, %wide.load857
  %432 = fmul <4 x float> %broadcast.splat856, %wide.load858
  store <4 x float> %431, ptr %429, align 4, !tbaa !9, !alias.scope !34
  store <4 x float> %432, ptr %430, align 4, !tbaa !9, !alias.scope !34
  %index.next859 = add nuw i64 %index851, 8
  %433 = icmp eq i64 %index.next859, %n.vec847
  br i1 %433, label %middle.block842, label %vector.body850, !llvm.loop !36

middle.block842:                                  ; preds = %vector.body850
  br i1 %cmp.n860, label %.loopexit, label %scalar.ph843.preheader

scalar.ph843.preheader:                           ; preds = %.lr.ph668, %middle.block842
  %indvars.iv719.ph = phi i64 [ 1, %.lr.ph668 ], [ %ind.end848, %middle.block842 ]
  br i1 %lcmp.mod878.not, label %scalar.ph843.prol.loopexit, label %scalar.ph843.prol

scalar.ph843.prol:                                ; preds = %scalar.ph843.preheader
  %gep772.prol = getelementptr float, ptr %invariant.gep771, i64 %indvars.iv719.ph
  %434 = load float, ptr %gep772.prol, align 4, !tbaa !9
  %435 = fmul float %414, %434
  store float %435, ptr %gep772.prol, align 4, !tbaa !9
  %gep774.prol = getelementptr float, ptr %invariant.gep773, i64 %indvars.iv719.ph
  %436 = load float, ptr %gep774.prol, align 4, !tbaa !9
  %437 = fmul float %414, %436
  store float %437, ptr %gep774.prol, align 4, !tbaa !9
  %indvars.iv.next720.prol = add nuw nsw i64 %indvars.iv719.ph, 1
  br label %scalar.ph843.prol.loopexit

scalar.ph843.prol.loopexit:                       ; preds = %scalar.ph843.prol, %scalar.ph843.preheader
  %indvars.iv719.unr = phi i64 [ %indvars.iv719.ph, %scalar.ph843.preheader ], [ %indvars.iv.next720.prol, %scalar.ph843.prol ]
  %438 = icmp eq i64 %indvars.iv719.ph, %368
  br i1 %438, label %.loopexit, label %scalar.ph843

scalar.ph843:                                     ; preds = %scalar.ph843.prol.loopexit, %scalar.ph843
  %indvars.iv719 = phi i64 [ %indvars.iv.next720.1, %scalar.ph843 ], [ %indvars.iv719.unr, %scalar.ph843.prol.loopexit ]
  %gep772 = getelementptr float, ptr %invariant.gep771, i64 %indvars.iv719
  %439 = load float, ptr %gep772, align 4, !tbaa !9
  %440 = fmul float %414, %439
  store float %440, ptr %gep772, align 4, !tbaa !9
  %gep774 = getelementptr float, ptr %invariant.gep773, i64 %indvars.iv719
  %441 = load float, ptr %gep774, align 4, !tbaa !9
  %442 = fmul float %414, %441
  store float %442, ptr %gep774, align 4, !tbaa !9
  %indvars.iv.next720 = add nuw nsw i64 %indvars.iv719, 1
  %gep772.1 = getelementptr float, ptr %invariant.gep771, i64 %indvars.iv.next720
  %443 = load float, ptr %gep772.1, align 4, !tbaa !9
  %444 = fmul float %414, %443
  store float %444, ptr %gep772.1, align 4, !tbaa !9
  %gep774.1 = getelementptr float, ptr %invariant.gep773, i64 %indvars.iv.next720
  %445 = load float, ptr %gep774.1, align 4, !tbaa !9
  %446 = fmul float %414, %445
  store float %446, ptr %gep774.1, align 4, !tbaa !9
  %indvars.iv.next720.1 = add nuw nsw i64 %indvars.iv719, 2
  %exitcond723.not.1 = icmp eq i64 %indvars.iv.next720.1, %wide.trip.count732
  br i1 %exitcond723.not.1, label %.loopexit, label %scalar.ph843, !llvm.loop !37

.loopexit:                                        ; preds = %scalar.ph843.prol.loopexit, %scalar.ph843, %scalar.ph816, %middle.block842, %middle.block815, %372, %.loopexit632
  %indvars.iv.next730 = add nuw nsw i64 %indvars.iv729, 1
  %exitcond733.not = icmp eq i64 %indvars.iv.next730, %wide.trip.count732
  br i1 %exitcond733.not, label %.loopexit634, label %372, !llvm.loop !38

.loopexit634.sink.split:                          ; preds = %226, %240, %231, %233
  %.sink783 = phi i32 [ %234, %233 ], [ %232, %231 ], [ %242, %240 ], [ %225, %226 ]
  store i32 %.sink783, ptr %16, align 4, !tbaa !5
  br label %.loopexit634

.loopexit634:                                     ; preds = %.loopexit, %.loopexit634.sink.split, %345, %235, %.thread611
  br i1 %.not561603, label %448, label %447

447:                                              ; preds = %.loopexit634
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %29, ptr noundef nonnull %20, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %2, ptr noundef nonnull %22) #5
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %29, ptr noundef nonnull %20, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %2, ptr noundef nonnull %22) #5
  br label %448

448:                                              ; preds = %447, %.loopexit634
  br i1 %.not563608, label %450, label %449

449:                                              ; preds = %448
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %30, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %2, ptr noundef nonnull %22) #5
  br label %450

450:                                              ; preds = %449, %448
  %451 = uitofp nneg i32 %115 to float
  store float %451, ptr %14, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %120, %450, %.thread596
  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 1, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #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 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 @sgghd3_(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 @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 @shgeqz_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @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 @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 @stgevc_(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 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16, !17}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !13, !17, !16}
!19 = !{!20}
!20 = distinct !{!20, !21}
!21 = distinct !{!21, !"LVerDomain"}
!22 = !{!23}
!23 = distinct !{!23, !21}
!24 = distinct !{!24, !13, !16, !17}
!25 = distinct !{!25, !13, !16}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13, !16, !17}
!30 = distinct !{!30, !13, !17, !16}
!31 = !{!32}
!32 = distinct !{!32, !33}
!33 = distinct !{!33, !"LVerDomain"}
!34 = !{!35}
!35 = distinct !{!35, !33}
!36 = distinct !{!36, !13, !16, !17}
!37 = distinct !{!37, !13, !16}
!38 = distinct !{!38, !13}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass