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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @sggev_(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 i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca float, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca float, align 4
  %80 = alloca i32, align 4
  %81 = 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #4
  %82 = load ptr, ptr %22, align 8, !tbaa !5
  %83 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %83, ptr %35, align 4, !tbaa !9
  %84 = load i32, ptr %35, align 4, !tbaa !9
  %85 = mul nsw i32 %84, 1
  %86 = add nsw i32 1, %85
  store i32 %86, ptr %36, align 4, !tbaa !9
  %87 = load i32, ptr %36, align 4, !tbaa !9
  %88 = load ptr, ptr %21, align 8, !tbaa !5
  %89 = sext i32 %87 to i64
  %90 = sub i64 0, %89
  %91 = getelementptr inbounds float, ptr %88, i64 %90
  store ptr %91, ptr %21, align 8, !tbaa !5
  %92 = load ptr, ptr %24, align 8, !tbaa !5
  %93 = load i32, ptr %92, align 4, !tbaa !9
  store i32 %93, ptr %37, align 4, !tbaa !9
  %94 = load i32, ptr %37, align 4, !tbaa !9
  %95 = mul nsw i32 %94, 1
  %96 = add nsw i32 1, %95
  store i32 %96, ptr %38, align 4, !tbaa !9
  %97 = load i32, ptr %38, align 4, !tbaa !9
  %98 = load ptr, ptr %23, align 8, !tbaa !5
  %99 = sext i32 %97 to i64
  %100 = sub i64 0, %99
  %101 = getelementptr inbounds float, ptr %98, i64 %100
  store ptr %101, ptr %23, align 8, !tbaa !5
  %102 = load ptr, ptr %25, align 8, !tbaa !5
  %103 = getelementptr inbounds float, ptr %102, i32 -1
  store ptr %103, ptr %25, align 8, !tbaa !5
  %104 = load ptr, ptr %26, align 8, !tbaa !5
  %105 = getelementptr inbounds float, ptr %104, i32 -1
  store ptr %105, ptr %26, align 8, !tbaa !5
  %106 = load ptr, ptr %27, align 8, !tbaa !5
  %107 = getelementptr inbounds float, ptr %106, i32 -1
  store ptr %107, ptr %27, align 8, !tbaa !5
  %108 = load ptr, ptr %29, align 8, !tbaa !5
  %109 = load i32, ptr %108, align 4, !tbaa !9
  store i32 %109, ptr %39, align 4, !tbaa !9
  %110 = load i32, ptr %39, align 4, !tbaa !9
  %111 = mul nsw i32 %110, 1
  %112 = add nsw i32 1, %111
  store i32 %112, ptr %40, align 4, !tbaa !9
  %113 = load i32, ptr %40, align 4, !tbaa !9
  %114 = load ptr, ptr %28, align 8, !tbaa !5
  %115 = sext i32 %113 to i64
  %116 = sub i64 0, %115
  %117 = getelementptr inbounds float, ptr %114, i64 %116
  store ptr %117, ptr %28, align 8, !tbaa !5
  %118 = load ptr, ptr %31, align 8, !tbaa !5
  %119 = load i32, ptr %118, align 4, !tbaa !9
  store i32 %119, ptr %41, align 4, !tbaa !9
  %120 = load i32, ptr %41, align 4, !tbaa !9
  %121 = mul nsw i32 %120, 1
  %122 = add nsw i32 1, %121
  store i32 %122, ptr %42, align 4, !tbaa !9
  %123 = load i32, ptr %42, align 4, !tbaa !9
  %124 = load ptr, ptr %30, align 8, !tbaa !5
  %125 = sext i32 %123 to i64
  %126 = sub i64 0, %125
  %127 = getelementptr inbounds float, ptr %124, i64 %126
  store ptr %127, ptr %30, align 8, !tbaa !5
  %128 = load ptr, ptr %32, align 8, !tbaa !5
  %129 = getelementptr inbounds float, ptr %128, i32 -1
  store ptr %129, ptr %32, align 8, !tbaa !5
  %130 = load ptr, ptr %18, align 8, !tbaa !5
  %131 = call i32 @lsame_(ptr noundef %130, ptr noundef @.str)
  %132 = icmp ne i32 %131, 0
  br i1 %132, label %133, label %134

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

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

138:                                              ; preds = %134
  store i32 2, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %140

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

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

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

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

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

150:                                              ; preds = %146
  store i32 2, ptr %70, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %152

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

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

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

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

159:                                              ; preds = %156, %153
  %160 = phi i1 [ true, %153 ], [ %158, %156 ]
  %161 = zext i1 %160 to i32
  store i32 %161, ptr %80, align 4, !tbaa !9
  %162 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %162, align 4, !tbaa !9
  %163 = load ptr, ptr %33, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = icmp eq i32 %164, -1
  %166 = zext i1 %165 to i32
  store i32 %166, ptr %76, align 4, !tbaa !9
  %167 = load i32, ptr %68, align 4, !tbaa !9
  %168 = icmp sle i32 %167, 0
  br i1 %168, label %169, label %171

169:                                              ; preds = %159
  %170 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %170, align 4, !tbaa !9
  br label %248

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

174:                                              ; preds = %171
  %175 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %175, align 4, !tbaa !9
  br label %247

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

180:                                              ; preds = %176
  %181 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %181, align 4, !tbaa !9
  br label %246

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

188:                                              ; preds = %182
  br label %192

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

192:                                              ; preds = %189, %188
  %193 = phi i32 [ 1, %188 ], [ %191, %189 ]
  %194 = icmp slt i32 %184, %193
  br i1 %194, label %195, label %197

195:                                              ; preds = %192
  %196 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %196, align 4, !tbaa !9
  br label %245

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

203:                                              ; preds = %197
  br label %207

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

207:                                              ; preds = %204, %203
  %208 = phi i32 [ 1, %203 ], [ %206, %204 ]
  %209 = icmp slt i32 %199, %208
  br i1 %209, label %210, label %212

210:                                              ; preds = %207
  %211 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -7, ptr %211, align 4, !tbaa !9
  br label %244

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

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

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

225:                                              ; preds = %219, %212
  %226 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -12, ptr %226, align 4, !tbaa !9
  br label %243

227:                                              ; preds = %219, %216
  %228 = load ptr, ptr %31, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = icmp slt i32 %229, 1
  br i1 %230, label %240, label %231

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

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

240:                                              ; preds = %234, %227
  %241 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -14, ptr %241, align 4, !tbaa !9
  br label %242

242:                                              ; preds = %240, %234, %231
  br label %243

243:                                              ; preds = %242, %225
  br label %244

244:                                              ; preds = %243, %210
  br label %245

245:                                              ; preds = %244, %195
  br label %246

246:                                              ; preds = %245, %180
  br label %247

247:                                              ; preds = %246, %174
  br label %248

248:                                              ; preds = %247, %169
  %249 = load ptr, ptr %34, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  %251 = icmp eq i32 %250, 0
  br i1 %251, label %252, label %333

252:                                              ; preds = %248
  store i32 1, ptr %43, align 4, !tbaa !9
  %253 = load ptr, ptr %20, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = shl i32 %254, 3
  store i32 %255, ptr %44, align 4, !tbaa !9
  %256 = load i32, ptr %43, align 4, !tbaa !9
  %257 = load i32, ptr %44, align 4, !tbaa !9
  %258 = icmp sge i32 %256, %257
  br i1 %258, label %259, label %261

259:                                              ; preds = %252
  %260 = load i32, ptr %43, align 4, !tbaa !9
  br label %263

261:                                              ; preds = %252
  %262 = load i32, ptr %44, align 4, !tbaa !9
  br label %263

263:                                              ; preds = %261, %259
  %264 = phi i32 [ %260, %259 ], [ %262, %261 ]
  store i32 %264, ptr %73, align 4, !tbaa !9
  store i32 1, ptr %43, align 4, !tbaa !9
  %265 = load ptr, ptr %20, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = load ptr, ptr %20, align 8, !tbaa !5
  %268 = load ptr, ptr %20, align 8, !tbaa !5
  %269 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %267, ptr noundef @c__1, ptr noundef %268, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %270 = add nsw i32 %269, 7
  %271 = mul nsw i32 %266, %270
  store i32 %271, ptr %44, align 4, !tbaa !9
  %272 = load i32, ptr %43, align 4, !tbaa !9
  %273 = load i32, ptr %44, align 4, !tbaa !9
  %274 = icmp sge i32 %272, %273
  br i1 %274, label %275, label %277

275:                                              ; preds = %263
  %276 = load i32, ptr %43, align 4, !tbaa !9
  br label %279

277:                                              ; preds = %263
  %278 = load i32, ptr %44, align 4, !tbaa !9
  br label %279

279:                                              ; preds = %277, %275
  %280 = phi i32 [ %276, %275 ], [ %278, %277 ]
  store i32 %280, ptr %74, align 4, !tbaa !9
  %281 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %281, ptr %43, align 4, !tbaa !9
  %282 = load ptr, ptr %20, align 8, !tbaa !5
  %283 = load i32, ptr %282, align 4, !tbaa !9
  %284 = load ptr, ptr %20, align 8, !tbaa !5
  %285 = load ptr, ptr %20, align 8, !tbaa !5
  %286 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %284, ptr noundef @c__1, ptr noundef %285, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %287 = add nsw i32 %286, 7
  %288 = mul nsw i32 %283, %287
  store i32 %288, ptr %44, align 4, !tbaa !9
  %289 = load i32, ptr %43, align 4, !tbaa !9
  %290 = load i32, ptr %44, align 4, !tbaa !9
  %291 = icmp sge i32 %289, %290
  br i1 %291, label %292, label %294

292:                                              ; preds = %279
  %293 = load i32, ptr %43, align 4, !tbaa !9
  br label %296

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

296:                                              ; preds = %294, %292
  %297 = phi i32 [ %293, %292 ], [ %295, %294 ]
  store i32 %297, ptr %74, align 4, !tbaa !9
  %298 = load i32, ptr %54, align 4, !tbaa !9
  %299 = icmp ne i32 %298, 0
  br i1 %299, label %300, label %318

300:                                              ; preds = %296
  %301 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %301, ptr %43, align 4, !tbaa !9
  %302 = load ptr, ptr %20, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = load ptr, ptr %20, align 8, !tbaa !5
  %305 = load ptr, ptr %20, align 8, !tbaa !5
  %306 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.3, ptr noundef %304, ptr noundef @c__1, ptr noundef %305, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %307 = add nsw i32 %306, 7
  %308 = mul nsw i32 %303, %307
  store i32 %308, ptr %44, align 4, !tbaa !9
  %309 = load i32, ptr %43, align 4, !tbaa !9
  %310 = load i32, ptr %44, align 4, !tbaa !9
  %311 = icmp sge i32 %309, %310
  br i1 %311, label %312, label %314

312:                                              ; preds = %300
  %313 = load i32, ptr %43, align 4, !tbaa !9
  br label %316

314:                                              ; preds = %300
  %315 = load i32, ptr %44, align 4, !tbaa !9
  br label %316

316:                                              ; preds = %314, %312
  %317 = phi i32 [ %313, %312 ], [ %315, %314 ]
  store i32 %317, ptr %74, align 4, !tbaa !9
  br label %318

318:                                              ; preds = %316, %296
  %319 = load i32, ptr %74, align 4, !tbaa !9
  %320 = sitofp i32 %319 to float
  %321 = load ptr, ptr %32, align 8, !tbaa !5
  %322 = getelementptr inbounds float, ptr %321, i64 1
  store float %320, ptr %322, align 4, !tbaa !11
  %323 = load ptr, ptr %33, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = load i32, ptr %73, align 4, !tbaa !9
  %326 = icmp slt i32 %324, %325
  br i1 %326, label %327, label %332

327:                                              ; preds = %318
  %328 = load i32, ptr %76, align 4, !tbaa !9
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %332, label %330

330:                                              ; preds = %327
  %331 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -16, ptr %331, align 4, !tbaa !9
  br label %332

332:                                              ; preds = %330, %327, %318
  br label %333

333:                                              ; preds = %332, %248
  %334 = load ptr, ptr %34, align 8, !tbaa !5
  %335 = load i32, ptr %334, align 4, !tbaa !9
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %337, label %342

337:                                              ; preds = %333
  %338 = load ptr, ptr %34, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = sub nsw i32 0, %339
  store i32 %340, ptr %43, align 4, !tbaa !9
  %341 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %43, i32 noundef 6)
  store i32 1, ptr %81, align 4
  br label %1269

342:                                              ; preds = %333
  %343 = load i32, ptr %76, align 4, !tbaa !9
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %345, label %346

345:                                              ; preds = %342
  store i32 1, ptr %81, align 4
  br label %1269

346:                                              ; preds = %342
  br label %347

347:                                              ; preds = %346
  %348 = load ptr, ptr %20, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = icmp eq i32 %349, 0
  br i1 %350, label %351, label %352

351:                                              ; preds = %347
  store i32 1, ptr %81, align 4
  br label %1269

352:                                              ; preds = %347
  %353 = call float @slamch_(ptr noundef @.str.7)
  store float %353, ptr %79, align 4, !tbaa !11
  %354 = call float @slamch_(ptr noundef @.str.8)
  store float %354, ptr %75, align 4, !tbaa !11
  %355 = load float, ptr %75, align 4, !tbaa !11
  %356 = fdiv float 1.000000e+00, %355
  store float %356, ptr %67, align 4, !tbaa !11
  call void @slabad_(ptr noundef %75, ptr noundef %67)
  %357 = load float, ptr %75, align 4, !tbaa !11
  %358 = fpext float %357 to double
  %359 = call double @sqrt(double noundef %358) #4
  %360 = load float, ptr %79, align 4, !tbaa !11
  %361 = fpext float %360 to double
  %362 = fdiv double %359, %361
  %363 = fptrunc double %362 to float
  store float %363, ptr %75, align 4, !tbaa !11
  %364 = load float, ptr %75, align 4, !tbaa !11
  %365 = fdiv float 1.000000e+00, %364
  store float %365, ptr %67, align 4, !tbaa !11
  %366 = load ptr, ptr %20, align 8, !tbaa !5
  %367 = load ptr, ptr %20, align 8, !tbaa !5
  %368 = load ptr, ptr %21, align 8, !tbaa !5
  %369 = load i32, ptr %36, align 4, !tbaa !9
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds float, ptr %368, i64 %370
  %372 = load ptr, ptr %22, align 8, !tbaa !5
  %373 = load ptr, ptr %32, align 8, !tbaa !5
  %374 = getelementptr inbounds float, ptr %373, i64 1
  %375 = call float @slange_(ptr noundef @.str.9, ptr noundef %366, ptr noundef %367, ptr noundef %371, ptr noundef %372, ptr noundef %374)
  store float %375, ptr %49, align 4, !tbaa !11
  store i32 0, ptr %63, align 4, !tbaa !9
  %376 = load float, ptr %49, align 4, !tbaa !11
  %377 = fcmp ogt float %376, 0.000000e+00
  br i1 %377, label %378, label %384

378:                                              ; preds = %352
  %379 = load float, ptr %49, align 4, !tbaa !11
  %380 = load float, ptr %75, align 4, !tbaa !11
  %381 = fcmp olt float %379, %380
  br i1 %381, label %382, label %384

382:                                              ; preds = %378
  %383 = load float, ptr %75, align 4, !tbaa !11
  store float %383, ptr %71, align 4, !tbaa !11
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %391

384:                                              ; preds = %378, %352
  %385 = load float, ptr %49, align 4, !tbaa !11
  %386 = load float, ptr %67, align 4, !tbaa !11
  %387 = fcmp ogt float %385, %386
  br i1 %387, label %388, label %390

388:                                              ; preds = %384
  %389 = load float, ptr %67, align 4, !tbaa !11
  store float %389, ptr %71, align 4, !tbaa !11
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %390

390:                                              ; preds = %388, %384
  br label %391

391:                                              ; preds = %390, %382
  %392 = load i32, ptr %63, align 4, !tbaa !9
  %393 = icmp ne i32 %392, 0
  br i1 %393, label %394, label %402

394:                                              ; preds = %391
  %395 = load ptr, ptr %20, align 8, !tbaa !5
  %396 = load ptr, ptr %20, align 8, !tbaa !5
  %397 = load ptr, ptr %21, align 8, !tbaa !5
  %398 = load i32, ptr %36, align 4, !tbaa !9
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds float, ptr %397, i64 %399
  %401 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef %71, ptr noundef %395, ptr noundef %396, ptr noundef %400, ptr noundef %401, ptr noundef %51)
  br label %402

402:                                              ; preds = %394, %391
  %403 = load ptr, ptr %20, align 8, !tbaa !5
  %404 = load ptr, ptr %20, align 8, !tbaa !5
  %405 = load ptr, ptr %23, align 8, !tbaa !5
  %406 = load i32, ptr %38, align 4, !tbaa !9
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds float, ptr %405, i64 %407
  %409 = load ptr, ptr %24, align 8, !tbaa !5
  %410 = load ptr, ptr %32, align 8, !tbaa !5
  %411 = getelementptr inbounds float, ptr %410, i64 1
  %412 = call float @slange_(ptr noundef @.str.9, ptr noundef %403, ptr noundef %404, ptr noundef %408, ptr noundef %409, ptr noundef %411)
  store float %412, ptr %50, align 4, !tbaa !11
  store i32 0, ptr %64, align 4, !tbaa !9
  %413 = load float, ptr %50, align 4, !tbaa !11
  %414 = fcmp ogt float %413, 0.000000e+00
  br i1 %414, label %415, label %421

415:                                              ; preds = %402
  %416 = load float, ptr %50, align 4, !tbaa !11
  %417 = load float, ptr %75, align 4, !tbaa !11
  %418 = fcmp olt float %416, %417
  br i1 %418, label %419, label %421

419:                                              ; preds = %415
  %420 = load float, ptr %75, align 4, !tbaa !11
  store float %420, ptr %72, align 4, !tbaa !11
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %428

421:                                              ; preds = %415, %402
  %422 = load float, ptr %50, align 4, !tbaa !11
  %423 = load float, ptr %67, align 4, !tbaa !11
  %424 = fcmp ogt float %422, %423
  br i1 %424, label %425, label %427

425:                                              ; preds = %421
  %426 = load float, ptr %67, align 4, !tbaa !11
  store float %426, ptr %72, align 4, !tbaa !11
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %427

427:                                              ; preds = %425, %421
  br label %428

428:                                              ; preds = %427, %419
  %429 = load i32, ptr %64, align 4, !tbaa !9
  %430 = icmp ne i32 %429, 0
  br i1 %430, label %431, label %439

431:                                              ; preds = %428
  %432 = load ptr, ptr %20, align 8, !tbaa !5
  %433 = load ptr, ptr %20, align 8, !tbaa !5
  %434 = load ptr, ptr %23, align 8, !tbaa !5
  %435 = load i32, ptr %38, align 4, !tbaa !9
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds float, ptr %434, i64 %436
  %438 = load ptr, ptr %24, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %50, ptr noundef %72, ptr noundef %432, ptr noundef %433, ptr noundef %437, ptr noundef %438, ptr noundef %51)
  br label %439

439:                                              ; preds = %431, %428
  store i32 1, ptr %57, align 4, !tbaa !9
  %440 = load ptr, ptr %20, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = add nsw i32 %441, 1
  store i32 %442, ptr %69, align 4, !tbaa !9
  %443 = load i32, ptr %69, align 4, !tbaa !9
  %444 = load ptr, ptr %20, align 8, !tbaa !5
  %445 = load i32, ptr %444, align 4, !tbaa !9
  %446 = add nsw i32 %443, %445
  store i32 %446, ptr %56, align 4, !tbaa !9
  %447 = load ptr, ptr %20, align 8, !tbaa !5
  %448 = load ptr, ptr %21, align 8, !tbaa !5
  %449 = load i32, ptr %36, align 4, !tbaa !9
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds float, ptr %448, i64 %450
  %452 = load ptr, ptr %22, align 8, !tbaa !5
  %453 = load ptr, ptr %23, align 8, !tbaa !5
  %454 = load i32, ptr %38, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds float, ptr %453, i64 %455
  %457 = load ptr, ptr %24, align 8, !tbaa !5
  %458 = load ptr, ptr %32, align 8, !tbaa !5
  %459 = load i32, ptr %57, align 4, !tbaa !9
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds float, ptr %458, i64 %460
  %462 = load ptr, ptr %32, align 8, !tbaa !5
  %463 = load i32, ptr %69, align 4, !tbaa !9
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds float, ptr %462, i64 %464
  %466 = load ptr, ptr %32, align 8, !tbaa !5
  %467 = load i32, ptr %56, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds float, ptr %466, i64 %468
  call void @sggbal_(ptr noundef @.str.7, ptr noundef %447, ptr noundef %451, ptr noundef %452, ptr noundef %456, ptr noundef %457, ptr noundef %78, ptr noundef %77, ptr noundef %461, ptr noundef %465, ptr noundef %469, ptr noundef %51)
  %470 = load i32, ptr %77, align 4, !tbaa !9
  %471 = add nsw i32 %470, 1
  %472 = load i32, ptr %78, align 4, !tbaa !9
  %473 = sub nsw i32 %471, %472
  store i32 %473, ptr %59, align 4, !tbaa !9
  %474 = load i32, ptr %80, align 4, !tbaa !9
  %475 = icmp ne i32 %474, 0
  br i1 %475, label %476, label %482

476:                                              ; preds = %439
  %477 = load ptr, ptr %20, align 8, !tbaa !5
  %478 = load i32, ptr %477, align 4, !tbaa !9
  %479 = add nsw i32 %478, 1
  %480 = load i32, ptr %78, align 4, !tbaa !9
  %481 = sub nsw i32 %479, %480
  store i32 %481, ptr %58, align 4, !tbaa !9
  br label %484

482:                                              ; preds = %439
  %483 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %483, ptr %58, align 4, !tbaa !9
  br label %484

484:                                              ; preds = %482, %476
  %485 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %485, ptr %52, align 4, !tbaa !9
  %486 = load i32, ptr %52, align 4, !tbaa !9
  %487 = load i32, ptr %59, align 4, !tbaa !9
  %488 = add nsw i32 %486, %487
  store i32 %488, ptr %56, align 4, !tbaa !9
  %489 = load ptr, ptr %33, align 8, !tbaa !5
  %490 = load i32, ptr %489, align 4, !tbaa !9
  %491 = add nsw i32 %490, 1
  %492 = load i32, ptr %56, align 4, !tbaa !9
  %493 = sub nsw i32 %491, %492
  store i32 %493, ptr %43, align 4, !tbaa !9
  %494 = load ptr, ptr %23, align 8, !tbaa !5
  %495 = load i32, ptr %78, align 4, !tbaa !9
  %496 = load i32, ptr %78, align 4, !tbaa !9
  %497 = load i32, ptr %37, align 4, !tbaa !9
  %498 = mul nsw i32 %496, %497
  %499 = add nsw i32 %495, %498
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds float, ptr %494, i64 %500
  %502 = load ptr, ptr %24, align 8, !tbaa !5
  %503 = load ptr, ptr %32, align 8, !tbaa !5
  %504 = load i32, ptr %52, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %503, i64 %505
  %507 = load ptr, ptr %32, align 8, !tbaa !5
  %508 = load i32, ptr %56, align 4, !tbaa !9
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds float, ptr %507, i64 %509
  call void @sgeqrf_(ptr noundef %59, ptr noundef %58, ptr noundef %501, ptr noundef %502, ptr noundef %506, ptr noundef %510, ptr noundef %43, ptr noundef %51)
  %511 = load ptr, ptr %33, align 8, !tbaa !5
  %512 = load i32, ptr %511, align 4, !tbaa !9
  %513 = add nsw i32 %512, 1
  %514 = load i32, ptr %56, align 4, !tbaa !9
  %515 = sub nsw i32 %513, %514
  store i32 %515, ptr %43, align 4, !tbaa !9
  %516 = load ptr, ptr %23, align 8, !tbaa !5
  %517 = load i32, ptr %78, align 4, !tbaa !9
  %518 = load i32, ptr %78, align 4, !tbaa !9
  %519 = load i32, ptr %37, align 4, !tbaa !9
  %520 = mul nsw i32 %518, %519
  %521 = add nsw i32 %517, %520
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds float, ptr %516, i64 %522
  %524 = load ptr, ptr %24, align 8, !tbaa !5
  %525 = load ptr, ptr %32, align 8, !tbaa !5
  %526 = load i32, ptr %52, align 4, !tbaa !9
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds float, ptr %525, i64 %527
  %529 = load ptr, ptr %21, align 8, !tbaa !5
  %530 = load i32, ptr %78, align 4, !tbaa !9
  %531 = load i32, ptr %78, align 4, !tbaa !9
  %532 = load i32, ptr %35, align 4, !tbaa !9
  %533 = mul nsw i32 %531, %532
  %534 = add nsw i32 %530, %533
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %529, i64 %535
  %537 = load ptr, ptr %22, align 8, !tbaa !5
  %538 = load ptr, ptr %32, align 8, !tbaa !5
  %539 = load i32, ptr %56, align 4, !tbaa !9
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds float, ptr %538, i64 %540
  call void @sormqr_(ptr noundef @.str.11, ptr noundef @.str.12, ptr noundef %59, ptr noundef %58, ptr noundef %59, ptr noundef %523, ptr noundef %524, ptr noundef %528, ptr noundef %536, ptr noundef %537, ptr noundef %541, ptr noundef %43, ptr noundef %51)
  %542 = load i32, ptr %54, align 4, !tbaa !9
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %602

544:                                              ; preds = %484
  %545 = load ptr, ptr %20, align 8, !tbaa !5
  %546 = load ptr, ptr %20, align 8, !tbaa !5
  %547 = load ptr, ptr %28, align 8, !tbaa !5
  %548 = load i32, ptr %40, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds float, ptr %547, i64 %549
  %551 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.13, ptr noundef %545, ptr noundef %546, ptr noundef @c_b36, ptr noundef @c_b37, ptr noundef %550, ptr noundef %551)
  %552 = load i32, ptr %59, align 4, !tbaa !9
  %553 = icmp sgt i32 %552, 1
  br i1 %553, label %554, label %579

554:                                              ; preds = %544
  %555 = load i32, ptr %59, align 4, !tbaa !9
  %556 = sub nsw i32 %555, 1
  store i32 %556, ptr %43, align 4, !tbaa !9
  %557 = load i32, ptr %59, align 4, !tbaa !9
  %558 = sub nsw i32 %557, 1
  store i32 %558, ptr %44, align 4, !tbaa !9
  %559 = load ptr, ptr %23, align 8, !tbaa !5
  %560 = load i32, ptr %78, align 4, !tbaa !9
  %561 = add nsw i32 %560, 1
  %562 = load i32, ptr %78, align 4, !tbaa !9
  %563 = load i32, ptr %37, align 4, !tbaa !9
  %564 = mul nsw i32 %562, %563
  %565 = add nsw i32 %561, %564
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds float, ptr %559, i64 %566
  %568 = load ptr, ptr %24, align 8, !tbaa !5
  %569 = load ptr, ptr %28, align 8, !tbaa !5
  %570 = load i32, ptr %78, align 4, !tbaa !9
  %571 = add nsw i32 %570, 1
  %572 = load i32, ptr %78, align 4, !tbaa !9
  %573 = load i32, ptr %39, align 4, !tbaa !9
  %574 = mul nsw i32 %572, %573
  %575 = add nsw i32 %571, %574
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds float, ptr %569, i64 %576
  %578 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.11, ptr noundef %43, ptr noundef %44, ptr noundef %567, ptr noundef %568, ptr noundef %577, ptr noundef %578)
  br label %579

579:                                              ; preds = %554, %544
  %580 = load ptr, ptr %33, align 8, !tbaa !5
  %581 = load i32, ptr %580, align 4, !tbaa !9
  %582 = add nsw i32 %581, 1
  %583 = load i32, ptr %56, align 4, !tbaa !9
  %584 = sub nsw i32 %582, %583
  store i32 %584, ptr %43, align 4, !tbaa !9
  %585 = load ptr, ptr %28, align 8, !tbaa !5
  %586 = load i32, ptr %78, align 4, !tbaa !9
  %587 = load i32, ptr %78, align 4, !tbaa !9
  %588 = load i32, ptr %39, align 4, !tbaa !9
  %589 = mul nsw i32 %587, %588
  %590 = add nsw i32 %586, %589
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds float, ptr %585, i64 %591
  %593 = load ptr, ptr %29, align 8, !tbaa !5
  %594 = load ptr, ptr %32, align 8, !tbaa !5
  %595 = load i32, ptr %52, align 4, !tbaa !9
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds float, ptr %594, i64 %596
  %598 = load ptr, ptr %32, align 8, !tbaa !5
  %599 = load i32, ptr %56, align 4, !tbaa !9
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %598, i64 %600
  call void @sorgqr_(ptr noundef %59, ptr noundef %59, ptr noundef %59, ptr noundef %592, ptr noundef %593, ptr noundef %597, ptr noundef %601, ptr noundef %43, ptr noundef %51)
  br label %602

602:                                              ; preds = %579, %484
  %603 = load i32, ptr %55, align 4, !tbaa !9
  %604 = icmp ne i32 %603, 0
  br i1 %604, label %605, label %613

605:                                              ; preds = %602
  %606 = load ptr, ptr %20, align 8, !tbaa !5
  %607 = load ptr, ptr %20, align 8, !tbaa !5
  %608 = load ptr, ptr %30, align 8, !tbaa !5
  %609 = load i32, ptr %42, align 4, !tbaa !9
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds float, ptr %608, i64 %610
  %612 = load ptr, ptr %31, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.13, ptr noundef %606, ptr noundef %607, ptr noundef @c_b36, ptr noundef @c_b37, ptr noundef %611, ptr noundef %612)
  br label %613

613:                                              ; preds = %605, %602
  %614 = load i32, ptr %80, align 4, !tbaa !9
  %615 = icmp ne i32 %614, 0
  br i1 %615, label %616, label %640

616:                                              ; preds = %613
  %617 = load ptr, ptr %18, align 8, !tbaa !5
  %618 = load ptr, ptr %19, align 8, !tbaa !5
  %619 = load ptr, ptr %20, align 8, !tbaa !5
  %620 = load ptr, ptr %21, align 8, !tbaa !5
  %621 = load i32, ptr %36, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds float, ptr %620, i64 %622
  %624 = load ptr, ptr %22, align 8, !tbaa !5
  %625 = load ptr, ptr %23, align 8, !tbaa !5
  %626 = load i32, ptr %38, align 4, !tbaa !9
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds float, ptr %625, i64 %627
  %629 = load ptr, ptr %24, align 8, !tbaa !5
  %630 = load ptr, ptr %28, align 8, !tbaa !5
  %631 = load i32, ptr %40, align 4, !tbaa !9
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds float, ptr %630, i64 %632
  %634 = load ptr, ptr %29, align 8, !tbaa !5
  %635 = load ptr, ptr %30, align 8, !tbaa !5
  %636 = load i32, ptr %42, align 4, !tbaa !9
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds float, ptr %635, i64 %637
  %639 = load ptr, ptr %31, align 8, !tbaa !5
  call void @sgghrd_(ptr noundef %617, ptr noundef %618, ptr noundef %619, ptr noundef %78, ptr noundef %77, ptr noundef %623, ptr noundef %624, ptr noundef %628, ptr noundef %629, ptr noundef %633, ptr noundef %634, ptr noundef %638, ptr noundef %639, ptr noundef %51)
  br label %669

640:                                              ; preds = %613
  %641 = load ptr, ptr %21, align 8, !tbaa !5
  %642 = load i32, ptr %78, align 4, !tbaa !9
  %643 = load i32, ptr %78, align 4, !tbaa !9
  %644 = load i32, ptr %35, align 4, !tbaa !9
  %645 = mul nsw i32 %643, %644
  %646 = add nsw i32 %642, %645
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds float, ptr %641, i64 %647
  %649 = load ptr, ptr %22, align 8, !tbaa !5
  %650 = load ptr, ptr %23, align 8, !tbaa !5
  %651 = load i32, ptr %78, align 4, !tbaa !9
  %652 = load i32, ptr %78, align 4, !tbaa !9
  %653 = load i32, ptr %37, align 4, !tbaa !9
  %654 = mul nsw i32 %652, %653
  %655 = add nsw i32 %651, %654
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds float, ptr %650, i64 %656
  %658 = load ptr, ptr %24, align 8, !tbaa !5
  %659 = load ptr, ptr %28, align 8, !tbaa !5
  %660 = load i32, ptr %40, align 4, !tbaa !9
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds float, ptr %659, i64 %661
  %663 = load ptr, ptr %29, align 8, !tbaa !5
  %664 = load ptr, ptr %30, align 8, !tbaa !5
  %665 = load i32, ptr %42, align 4, !tbaa !9
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %664, i64 %666
  %668 = load ptr, ptr %31, align 8, !tbaa !5
  call void @sgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef @c__1, ptr noundef %59, ptr noundef %648, ptr noundef %649, ptr noundef %657, ptr noundef %658, ptr noundef %662, ptr noundef %663, ptr noundef %667, ptr noundef %668, ptr noundef %51)
  br label %669

669:                                              ; preds = %640, %616
  %670 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %670, ptr %56, align 4, !tbaa !9
  %671 = load i32, ptr %80, align 4, !tbaa !9
  %672 = icmp ne i32 %671, 0
  br i1 %672, label %673, label %675

673:                                              ; preds = %669
  %674 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 83, ptr %674, align 1, !tbaa !13
  br label %677

675:                                              ; preds = %669
  %676 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 69, ptr %676, align 1, !tbaa !13
  br label %677

677:                                              ; preds = %675, %673
  %678 = load ptr, ptr %33, align 8, !tbaa !5
  %679 = load i32, ptr %678, align 4, !tbaa !9
  %680 = add nsw i32 %679, 1
  %681 = load i32, ptr %56, align 4, !tbaa !9
  %682 = sub nsw i32 %680, %681
  store i32 %682, ptr %43, align 4, !tbaa !9
  %683 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  %684 = load ptr, ptr %18, align 8, !tbaa !5
  %685 = load ptr, ptr %19, align 8, !tbaa !5
  %686 = load ptr, ptr %20, align 8, !tbaa !5
  %687 = load ptr, ptr %21, align 8, !tbaa !5
  %688 = load i32, ptr %36, align 4, !tbaa !9
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds float, ptr %687, i64 %689
  %691 = load ptr, ptr %22, align 8, !tbaa !5
  %692 = load ptr, ptr %23, align 8, !tbaa !5
  %693 = load i32, ptr %38, align 4, !tbaa !9
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %692, i64 %694
  %696 = load ptr, ptr %24, align 8, !tbaa !5
  %697 = load ptr, ptr %25, align 8, !tbaa !5
  %698 = getelementptr inbounds float, ptr %697, i64 1
  %699 = load ptr, ptr %26, align 8, !tbaa !5
  %700 = getelementptr inbounds float, ptr %699, i64 1
  %701 = load ptr, ptr %27, align 8, !tbaa !5
  %702 = getelementptr inbounds float, ptr %701, i64 1
  %703 = load ptr, ptr %28, align 8, !tbaa !5
  %704 = load i32, ptr %40, align 4, !tbaa !9
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds float, ptr %703, i64 %705
  %707 = load ptr, ptr %29, align 8, !tbaa !5
  %708 = load ptr, ptr %30, align 8, !tbaa !5
  %709 = load i32, ptr %42, align 4, !tbaa !9
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds float, ptr %708, i64 %710
  %712 = load ptr, ptr %31, align 8, !tbaa !5
  %713 = load ptr, ptr %32, align 8, !tbaa !5
  %714 = load i32, ptr %56, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds float, ptr %713, i64 %715
  call void @shgeqz_(ptr noundef %683, ptr noundef %684, ptr noundef %685, ptr noundef %686, ptr noundef %78, ptr noundef %77, ptr noundef %690, ptr noundef %691, ptr noundef %695, ptr noundef %696, ptr noundef %698, ptr noundef %700, ptr noundef %702, ptr noundef %706, ptr noundef %707, ptr noundef %711, ptr noundef %712, ptr noundef %716, ptr noundef %43, ptr noundef %51)
  %717 = load i32, ptr %51, align 4, !tbaa !9
  %718 = icmp ne i32 %717, 0
  br i1 %718, label %719, label %754

719:                                              ; preds = %677
  %720 = load i32, ptr %51, align 4, !tbaa !9
  %721 = icmp sgt i32 %720, 0
  br i1 %721, label %722, label %730

722:                                              ; preds = %719
  %723 = load i32, ptr %51, align 4, !tbaa !9
  %724 = load ptr, ptr %20, align 8, !tbaa !5
  %725 = load i32, ptr %724, align 4, !tbaa !9
  %726 = icmp sle i32 %723, %725
  br i1 %726, label %727, label %730

727:                                              ; preds = %722
  %728 = load i32, ptr %51, align 4, !tbaa !9
  %729 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %728, ptr %729, align 4, !tbaa !9
  br label %753

730:                                              ; preds = %722, %719
  %731 = load i32, ptr %51, align 4, !tbaa !9
  %732 = load ptr, ptr %20, align 8, !tbaa !5
  %733 = load i32, ptr %732, align 4, !tbaa !9
  %734 = icmp sgt i32 %731, %733
  br i1 %734, label %735, label %747

735:                                              ; preds = %730
  %736 = load i32, ptr %51, align 4, !tbaa !9
  %737 = load ptr, ptr %20, align 8, !tbaa !5
  %738 = load i32, ptr %737, align 4, !tbaa !9
  %739 = shl i32 %738, 1
  %740 = icmp sle i32 %736, %739
  br i1 %740, label %741, label %747

741:                                              ; preds = %735
  %742 = load i32, ptr %51, align 4, !tbaa !9
  %743 = load ptr, ptr %20, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = sub nsw i32 %742, %744
  %746 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %745, ptr %746, align 4, !tbaa !9
  br label %752

747:                                              ; preds = %735, %730
  %748 = load ptr, ptr %20, align 8, !tbaa !5
  %749 = load i32, ptr %748, align 4, !tbaa !9
  %750 = add nsw i32 %749, 1
  %751 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %750, ptr %751, align 4, !tbaa !9
  br label %752

752:                                              ; preds = %747, %741
  br label %753

753:                                              ; preds = %752, %727
  br label %1244

754:                                              ; preds = %677
  %755 = load i32, ptr %80, align 4, !tbaa !9
  %756 = icmp ne i32 %755, 0
  br i1 %756, label %757, label %1243

757:                                              ; preds = %754
  %758 = load i32, ptr %54, align 4, !tbaa !9
  %759 = icmp ne i32 %758, 0
  br i1 %759, label %760, label %768

760:                                              ; preds = %757
  %761 = load i32, ptr %55, align 4, !tbaa !9
  %762 = icmp ne i32 %761, 0
  br i1 %762, label %763, label %765

763:                                              ; preds = %760
  %764 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 66, ptr %764, align 1, !tbaa !13
  br label %767

765:                                              ; preds = %760
  %766 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 76, ptr %766, align 1, !tbaa !13
  br label %767

767:                                              ; preds = %765, %763
  br label %770

768:                                              ; preds = %757
  %769 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  store i8 82, ptr %769, align 1, !tbaa !13
  br label %770

770:                                              ; preds = %768, %767
  %771 = getelementptr inbounds [1 x i8], ptr %66, i64 0, i64 0
  %772 = getelementptr inbounds [1 x i32], ptr %65, i64 0, i64 0
  %773 = load ptr, ptr %20, align 8, !tbaa !5
  %774 = load ptr, ptr %21, align 8, !tbaa !5
  %775 = load i32, ptr %36, align 4, !tbaa !9
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds float, ptr %774, i64 %776
  %778 = load ptr, ptr %22, align 8, !tbaa !5
  %779 = load ptr, ptr %23, align 8, !tbaa !5
  %780 = load i32, ptr %38, align 4, !tbaa !9
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds float, ptr %779, i64 %781
  %783 = load ptr, ptr %24, align 8, !tbaa !5
  %784 = load ptr, ptr %28, align 8, !tbaa !5
  %785 = load i32, ptr %40, align 4, !tbaa !9
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds float, ptr %784, i64 %786
  %788 = load ptr, ptr %29, align 8, !tbaa !5
  %789 = load ptr, ptr %30, align 8, !tbaa !5
  %790 = load i32, ptr %42, align 4, !tbaa !9
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds float, ptr %789, i64 %791
  %793 = load ptr, ptr %31, align 8, !tbaa !5
  %794 = load ptr, ptr %20, align 8, !tbaa !5
  %795 = load ptr, ptr %32, align 8, !tbaa !5
  %796 = load i32, ptr %56, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds float, ptr %795, i64 %797
  call void @stgevc_(ptr noundef %771, ptr noundef @.str.14, ptr noundef %772, ptr noundef %773, ptr noundef %777, ptr noundef %778, ptr noundef %782, ptr noundef %783, ptr noundef %787, ptr noundef %788, ptr noundef %792, ptr noundef %793, ptr noundef %794, ptr noundef %61, ptr noundef %798, ptr noundef %51)
  %799 = load i32, ptr %51, align 4, !tbaa !9
  %800 = icmp ne i32 %799, 0
  br i1 %800, label %801, label %806

801:                                              ; preds = %770
  %802 = load ptr, ptr %20, align 8, !tbaa !5
  %803 = load i32, ptr %802, align 4, !tbaa !9
  %804 = add nsw i32 %803, 2
  %805 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %804, ptr %805, align 4, !tbaa !9
  br label %1244

806:                                              ; preds = %770
  %807 = load i32, ptr %54, align 4, !tbaa !9
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %809, label %1024

809:                                              ; preds = %806
  %810 = load ptr, ptr %20, align 8, !tbaa !5
  %811 = load ptr, ptr %32, align 8, !tbaa !5
  %812 = load i32, ptr %57, align 4, !tbaa !9
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds float, ptr %811, i64 %813
  %815 = load ptr, ptr %32, align 8, !tbaa !5
  %816 = load i32, ptr %69, align 4, !tbaa !9
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds float, ptr %815, i64 %817
  %819 = load ptr, ptr %20, align 8, !tbaa !5
  %820 = load ptr, ptr %28, align 8, !tbaa !5
  %821 = load i32, ptr %40, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %820, i64 %822
  %824 = load ptr, ptr %29, align 8, !tbaa !5
  call void @sggbak_(ptr noundef @.str.7, ptr noundef @.str.11, ptr noundef %810, ptr noundef %78, ptr noundef %77, ptr noundef %814, ptr noundef %818, ptr noundef %819, ptr noundef %823, ptr noundef %824, ptr noundef %51)
  %825 = load ptr, ptr %20, align 8, !tbaa !5
  %826 = load i32, ptr %825, align 4, !tbaa !9
  store i32 %826, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %827

827:                                              ; preds = %1020, %809
  %828 = load i32, ptr %60, align 4, !tbaa !9
  %829 = load i32, ptr %43, align 4, !tbaa !9
  %830 = icmp sle i32 %828, %829
  br i1 %830, label %831, label %1023

831:                                              ; preds = %827
  %832 = load ptr, ptr %26, align 8, !tbaa !5
  %833 = load i32, ptr %60, align 4, !tbaa !9
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds float, ptr %832, i64 %834
  %836 = load float, ptr %835, align 4, !tbaa !11
  %837 = fcmp olt float %836, 0.000000e+00
  br i1 %837, label %838, label %839

838:                                              ; preds = %831
  br label %1019

839:                                              ; preds = %831
  store float 0.000000e+00, ptr %53, align 4, !tbaa !11
  %840 = load ptr, ptr %26, align 8, !tbaa !5
  %841 = load i32, ptr %60, align 4, !tbaa !9
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds float, ptr %840, i64 %842
  %844 = load float, ptr %843, align 4, !tbaa !11
  %845 = fcmp oeq float %844, 0.000000e+00
  br i1 %845, label %846, label %886

846:                                              ; preds = %839
  %847 = load ptr, ptr %20, align 8, !tbaa !5
  %848 = load i32, ptr %847, align 4, !tbaa !9
  store i32 %848, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %849

849:                                              ; preds = %882, %846
  %850 = load i32, ptr %62, align 4, !tbaa !9
  %851 = load i32, ptr %44, align 4, !tbaa !9
  %852 = icmp sle i32 %850, %851
  br i1 %852, label %853, label %885

853:                                              ; preds = %849
  %854 = load float, ptr %53, align 4, !tbaa !11
  store float %854, ptr %46, align 4, !tbaa !11
  %855 = load ptr, ptr %28, align 8, !tbaa !5
  %856 = load i32, ptr %62, align 4, !tbaa !9
  %857 = load i32, ptr %60, align 4, !tbaa !9
  %858 = load i32, ptr %39, align 4, !tbaa !9
  %859 = mul nsw i32 %857, %858
  %860 = add nsw i32 %856, %859
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds float, ptr %855, i64 %861
  %863 = load float, ptr %862, align 4, !tbaa !11
  store float %863, ptr %45, align 4, !tbaa !11
  %864 = load float, ptr %45, align 4, !tbaa !11
  %865 = fcmp oge float %864, 0.000000e+00
  br i1 %865, label %866, label %868

866:                                              ; preds = %853
  %867 = load float, ptr %45, align 4, !tbaa !11
  br label %871

868:                                              ; preds = %853
  %869 = load float, ptr %45, align 4, !tbaa !11
  %870 = fneg float %869
  br label %871

871:                                              ; preds = %868, %866
  %872 = phi float [ %867, %866 ], [ %870, %868 ]
  store float %872, ptr %47, align 4, !tbaa !11
  %873 = load float, ptr %46, align 4, !tbaa !11
  %874 = load float, ptr %47, align 4, !tbaa !11
  %875 = fcmp oge float %873, %874
  br i1 %875, label %876, label %878

876:                                              ; preds = %871
  %877 = load float, ptr %46, align 4, !tbaa !11
  br label %880

878:                                              ; preds = %871
  %879 = load float, ptr %47, align 4, !tbaa !11
  br label %880

880:                                              ; preds = %878, %876
  %881 = phi float [ %877, %876 ], [ %879, %878 ]
  store float %881, ptr %53, align 4, !tbaa !11
  br label %882

882:                                              ; preds = %880
  %883 = load i32, ptr %62, align 4, !tbaa !9
  %884 = add nsw i32 %883, 1
  store i32 %884, ptr %62, align 4, !tbaa !9
  br label %849, !llvm.loop !14

885:                                              ; preds = %849
  br label %946

886:                                              ; preds = %839
  %887 = load ptr, ptr %20, align 8, !tbaa !5
  %888 = load i32, ptr %887, align 4, !tbaa !9
  store i32 %888, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %889

889:                                              ; preds = %942, %886
  %890 = load i32, ptr %62, align 4, !tbaa !9
  %891 = load i32, ptr %44, align 4, !tbaa !9
  %892 = icmp sle i32 %890, %891
  br i1 %892, label %893, label %945

893:                                              ; preds = %889
  %894 = load float, ptr %53, align 4, !tbaa !11
  store float %894, ptr %47, align 4, !tbaa !11
  %895 = load ptr, ptr %28, align 8, !tbaa !5
  %896 = load i32, ptr %62, align 4, !tbaa !9
  %897 = load i32, ptr %60, align 4, !tbaa !9
  %898 = load i32, ptr %39, align 4, !tbaa !9
  %899 = mul nsw i32 %897, %898
  %900 = add nsw i32 %896, %899
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds float, ptr %895, i64 %901
  %903 = load float, ptr %902, align 4, !tbaa !11
  store float %903, ptr %45, align 4, !tbaa !11
  %904 = load float, ptr %45, align 4, !tbaa !11
  %905 = fcmp oge float %904, 0.000000e+00
  br i1 %905, label %906, label %908

906:                                              ; preds = %893
  %907 = load float, ptr %45, align 4, !tbaa !11
  br label %911

908:                                              ; preds = %893
  %909 = load float, ptr %45, align 4, !tbaa !11
  %910 = fneg float %909
  br label %911

911:                                              ; preds = %908, %906
  %912 = phi float [ %907, %906 ], [ %910, %908 ]
  %913 = load ptr, ptr %28, align 8, !tbaa !5
  %914 = load i32, ptr %62, align 4, !tbaa !9
  %915 = load i32, ptr %60, align 4, !tbaa !9
  %916 = add nsw i32 %915, 1
  %917 = load i32, ptr %39, align 4, !tbaa !9
  %918 = mul nsw i32 %916, %917
  %919 = add nsw i32 %914, %918
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds float, ptr %913, i64 %920
  %922 = load float, ptr %921, align 4, !tbaa !11
  store float %922, ptr %46, align 4, !tbaa !11
  %923 = load float, ptr %46, align 4, !tbaa !11
  %924 = fcmp oge float %923, 0.000000e+00
  br i1 %924, label %925, label %927

925:                                              ; preds = %911
  %926 = load float, ptr %46, align 4, !tbaa !11
  br label %930

927:                                              ; preds = %911
  %928 = load float, ptr %46, align 4, !tbaa !11
  %929 = fneg float %928
  br label %930

930:                                              ; preds = %927, %925
  %931 = phi float [ %926, %925 ], [ %929, %927 ]
  %932 = fadd float %912, %931
  store float %932, ptr %48, align 4, !tbaa !11
  %933 = load float, ptr %47, align 4, !tbaa !11
  %934 = load float, ptr %48, align 4, !tbaa !11
  %935 = fcmp oge float %933, %934
  br i1 %935, label %936, label %938

936:                                              ; preds = %930
  %937 = load float, ptr %47, align 4, !tbaa !11
  br label %940

938:                                              ; preds = %930
  %939 = load float, ptr %48, align 4, !tbaa !11
  br label %940

940:                                              ; preds = %938, %936
  %941 = phi float [ %937, %936 ], [ %939, %938 ]
  store float %941, ptr %53, align 4, !tbaa !11
  br label %942

942:                                              ; preds = %940
  %943 = load i32, ptr %62, align 4, !tbaa !9
  %944 = add nsw i32 %943, 1
  store i32 %944, ptr %62, align 4, !tbaa !9
  br label %889, !llvm.loop !16

945:                                              ; preds = %889
  br label %946

946:                                              ; preds = %945, %885
  %947 = load float, ptr %53, align 4, !tbaa !11
  %948 = load float, ptr %75, align 4, !tbaa !11
  %949 = fcmp olt float %947, %948
  br i1 %949, label %950, label %951

950:                                              ; preds = %946
  br label %1019

951:                                              ; preds = %946
  %952 = load float, ptr %53, align 4, !tbaa !11
  %953 = fdiv float 1.000000e+00, %952
  store float %953, ptr %53, align 4, !tbaa !11
  %954 = load ptr, ptr %26, align 8, !tbaa !5
  %955 = load i32, ptr %60, align 4, !tbaa !9
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds float, ptr %954, i64 %956
  %958 = load float, ptr %957, align 4, !tbaa !11
  %959 = fcmp oeq float %958, 0.000000e+00
  br i1 %959, label %960, label %983

960:                                              ; preds = %951
  %961 = load ptr, ptr %20, align 8, !tbaa !5
  %962 = load i32, ptr %961, align 4, !tbaa !9
  store i32 %962, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %963

963:                                              ; preds = %979, %960
  %964 = load i32, ptr %62, align 4, !tbaa !9
  %965 = load i32, ptr %44, align 4, !tbaa !9
  %966 = icmp sle i32 %964, %965
  br i1 %966, label %967, label %982

967:                                              ; preds = %963
  %968 = load float, ptr %53, align 4, !tbaa !11
  %969 = load ptr, ptr %28, align 8, !tbaa !5
  %970 = load i32, ptr %62, align 4, !tbaa !9
  %971 = load i32, ptr %60, align 4, !tbaa !9
  %972 = load i32, ptr %39, align 4, !tbaa !9
  %973 = mul nsw i32 %971, %972
  %974 = add nsw i32 %970, %973
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %969, i64 %975
  %977 = load float, ptr %976, align 4, !tbaa !11
  %978 = fmul float %977, %968
  store float %978, ptr %976, align 4, !tbaa !11
  br label %979

979:                                              ; preds = %967
  %980 = load i32, ptr %62, align 4, !tbaa !9
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr %62, align 4, !tbaa !9
  br label %963, !llvm.loop !17

982:                                              ; preds = %963
  br label %1018

983:                                              ; preds = %951
  %984 = load ptr, ptr %20, align 8, !tbaa !5
  %985 = load i32, ptr %984, align 4, !tbaa !9
  store i32 %985, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %986

986:                                              ; preds = %1014, %983
  %987 = load i32, ptr %62, align 4, !tbaa !9
  %988 = load i32, ptr %44, align 4, !tbaa !9
  %989 = icmp sle i32 %987, %988
  br i1 %989, label %990, label %1017

990:                                              ; preds = %986
  %991 = load float, ptr %53, align 4, !tbaa !11
  %992 = load ptr, ptr %28, align 8, !tbaa !5
  %993 = load i32, ptr %62, align 4, !tbaa !9
  %994 = load i32, ptr %60, align 4, !tbaa !9
  %995 = load i32, ptr %39, align 4, !tbaa !9
  %996 = mul nsw i32 %994, %995
  %997 = add nsw i32 %993, %996
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds float, ptr %992, i64 %998
  %1000 = load float, ptr %999, align 4, !tbaa !11
  %1001 = fmul float %1000, %991
  store float %1001, ptr %999, align 4, !tbaa !11
  %1002 = load float, ptr %53, align 4, !tbaa !11
  %1003 = load ptr, ptr %28, align 8, !tbaa !5
  %1004 = load i32, ptr %62, align 4, !tbaa !9
  %1005 = load i32, ptr %60, align 4, !tbaa !9
  %1006 = add nsw i32 %1005, 1
  %1007 = load i32, ptr %39, align 4, !tbaa !9
  %1008 = mul nsw i32 %1006, %1007
  %1009 = add nsw i32 %1004, %1008
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds float, ptr %1003, i64 %1010
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  %1013 = fmul float %1012, %1002
  store float %1013, ptr %1011, align 4, !tbaa !11
  br label %1014

1014:                                             ; preds = %990
  %1015 = load i32, ptr %62, align 4, !tbaa !9
  %1016 = add nsw i32 %1015, 1
  store i32 %1016, ptr %62, align 4, !tbaa !9
  br label %986, !llvm.loop !18

1017:                                             ; preds = %986
  br label %1018

1018:                                             ; preds = %1017, %982
  br label %1019

1019:                                             ; preds = %1018, %950, %838
  br label %1020

1020:                                             ; preds = %1019
  %1021 = load i32, ptr %60, align 4, !tbaa !9
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr %60, align 4, !tbaa !9
  br label %827, !llvm.loop !19

1023:                                             ; preds = %827
  br label %1024

1024:                                             ; preds = %1023, %806
  %1025 = load i32, ptr %55, align 4, !tbaa !9
  %1026 = icmp ne i32 %1025, 0
  br i1 %1026, label %1027, label %1242

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

1045:                                             ; preds = %1238, %1027
  %1046 = load i32, ptr %60, align 4, !tbaa !9
  %1047 = load i32, ptr %43, align 4, !tbaa !9
  %1048 = icmp sle i32 %1046, %1047
  br i1 %1048, label %1049, label %1241

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

1056:                                             ; preds = %1049
  br label %1237

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

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

1067:                                             ; preds = %1100, %1064
  %1068 = load i32, ptr %62, align 4, !tbaa !9
  %1069 = load i32, ptr %44, align 4, !tbaa !9
  %1070 = icmp sle i32 %1068, %1069
  br i1 %1070, label %1071, label %1103

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

1084:                                             ; preds = %1071
  %1085 = load float, ptr %45, align 4, !tbaa !11
  br label %1089

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

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

1094:                                             ; preds = %1089
  %1095 = load float, ptr %46, align 4, !tbaa !11
  br label %1098

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

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

1100:                                             ; preds = %1098
  %1101 = load i32, ptr %62, align 4, !tbaa !9
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr %62, align 4, !tbaa !9
  br label %1067, !llvm.loop !20

1103:                                             ; preds = %1067
  br label %1164

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

1107:                                             ; preds = %1160, %1104
  %1108 = load i32, ptr %62, align 4, !tbaa !9
  %1109 = load i32, ptr %44, align 4, !tbaa !9
  %1110 = icmp sle i32 %1108, %1109
  br i1 %1110, label %1111, label %1163

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

1124:                                             ; preds = %1111
  %1125 = load float, ptr %45, align 4, !tbaa !11
  br label %1129

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

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

1143:                                             ; preds = %1129
  %1144 = load float, ptr %46, align 4, !tbaa !11
  br label %1148

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

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

1154:                                             ; preds = %1148
  %1155 = load float, ptr %47, align 4, !tbaa !11
  br label %1158

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

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

1160:                                             ; preds = %1158
  %1161 = load i32, ptr %62, align 4, !tbaa !9
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr %62, align 4, !tbaa !9
  br label %1107, !llvm.loop !21

1163:                                             ; preds = %1107
  br label %1164

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

1168:                                             ; preds = %1164
  br label %1237

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

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

1181:                                             ; preds = %1197, %1178
  %1182 = load i32, ptr %62, align 4, !tbaa !9
  %1183 = load i32, ptr %44, align 4, !tbaa !9
  %1184 = icmp sle i32 %1182, %1183
  br i1 %1184, label %1185, label %1200

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

1197:                                             ; preds = %1185
  %1198 = load i32, ptr %62, align 4, !tbaa !9
  %1199 = add nsw i32 %1198, 1
  store i32 %1199, ptr %62, align 4, !tbaa !9
  br label %1181, !llvm.loop !22

1200:                                             ; preds = %1181
  br label %1236

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

1204:                                             ; preds = %1232, %1201
  %1205 = load i32, ptr %62, align 4, !tbaa !9
  %1206 = load i32, ptr %44, align 4, !tbaa !9
  %1207 = icmp sle i32 %1205, %1206
  br i1 %1207, label %1208, label %1235

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

1232:                                             ; preds = %1208
  %1233 = load i32, ptr %62, align 4, !tbaa !9
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr %62, align 4, !tbaa !9
  br label %1204, !llvm.loop !23

1235:                                             ; preds = %1204
  br label %1236

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

1237:                                             ; preds = %1236, %1168, %1056
  br label %1238

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

1241:                                             ; preds = %1045
  br label %1242

1242:                                             ; preds = %1241, %1024
  br label %1243

1243:                                             ; preds = %1242, %754
  br label %1244

1244:                                             ; preds = %1243, %801, %753
  %1245 = load i32, ptr %63, align 4, !tbaa !9
  %1246 = icmp ne i32 %1245, 0
  br i1 %1246, label %1247, label %1256

1247:                                             ; preds = %1244
  %1248 = load ptr, ptr %20, align 8, !tbaa !5
  %1249 = load ptr, ptr %25, align 8, !tbaa !5
  %1250 = getelementptr inbounds float, ptr %1249, i64 1
  %1251 = load ptr, ptr %20, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %71, ptr noundef %49, ptr noundef %1248, ptr noundef @c__1, ptr noundef %1250, ptr noundef %1251, ptr noundef %51)
  %1252 = load ptr, ptr %20, align 8, !tbaa !5
  %1253 = load ptr, ptr %26, align 8, !tbaa !5
  %1254 = getelementptr inbounds float, ptr %1253, i64 1
  %1255 = load ptr, ptr %20, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %71, ptr noundef %49, ptr noundef %1252, ptr noundef @c__1, ptr noundef %1254, ptr noundef %1255, ptr noundef %51)
  br label %1256

1256:                                             ; preds = %1247, %1244
  %1257 = load i32, ptr %64, align 4, !tbaa !9
  %1258 = icmp ne i32 %1257, 0
  br i1 %1258, label %1259, label %1264

1259:                                             ; preds = %1256
  %1260 = load ptr, ptr %20, align 8, !tbaa !5
  %1261 = load ptr, ptr %27, align 8, !tbaa !5
  %1262 = getelementptr inbounds float, ptr %1261, i64 1
  %1263 = load ptr, ptr %20, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %72, ptr noundef %50, ptr noundef %1260, ptr noundef @c__1, ptr noundef %1262, ptr noundef %1263, ptr noundef %51)
  br label %1264

1264:                                             ; preds = %1259, %1256
  %1265 = load i32, ptr %74, align 4, !tbaa !9
  %1266 = sitofp i32 %1265 to float
  %1267 = load ptr, ptr %32, align 8, !tbaa !5
  %1268 = getelementptr inbounds float, ptr %1267, i64 1
  store float %1266, ptr %1268, align 4, !tbaa !11
  store i32 1, ptr %81, align 4
  br label %1269

1269:                                             ; preds = %1264, %351, %345, %337
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 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 i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

declare void @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__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b36 = external hidden global float, align 4
@c_b37 = external hidden global float, align 4
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @sggev_(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
  %narrow462 = xor i32 %37, -1
  %38 = sext i32 %narrow462 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
  %narrow465 = xor i32 %41, -1
  %42 = sext i32 %narrow465 to i64
  %43 = getelementptr inbounds float, ptr %10, i64 %42
  %44 = load i32, ptr %13, align 4, !tbaa !5
  %narrow466 = xor i32 %44, -1
  %45 = sext i32 %narrow466 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 %.thread639

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

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

.thread645:                                       ; preds = %.thread639
  %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 = %.thread639
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %.thread487

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 %.not454, label %56, label %.thread499.sink.split

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

56:                                               ; preds = %.thread645, %54
  %57 = phi i32 [ %53, %.thread645 ], [ %55, %54 ]
  %.not456.not = icmp eq i32 %57, 0
  br i1 %.not456.not, label %.thread499.sink.split, label %.thread487

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

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

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

69:                                               ; preds = %66
  %70 = load i32, ptr %11, align 4, !tbaa !5
  %71 = icmp slt i32 %70, 1
  %72 = icmp ult i32 %70, %61
  %or.cond521 = and i1 %58, %72
  %or.cond523 = select i1 %71, i1 true, i1 %or.cond521
  br i1 %or.cond523, label %.thread499.sink.split, label %73

73:                                               ; preds = %69
  %74 = load i32, ptr %13, align 4, !tbaa !5
  %75 = icmp slt i32 %74, 1
  %76 = icmp ult i32 %74, %61
  %or.cond522 = and i1 %.not455641, %76
  %or.cond524 = or i1 %75, %or.cond522
  br i1 %or.cond524, label %.thread499.sink.split, label %77

77:                                               ; preds = %73
  %78 = shl i32 %61, 3
  %79 = tail call i32 @llvm.smax.i32(i32 %78, i32 1)
  %80 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #5
  %81 = add nsw i32 %80, 7
  %82 = mul nsw i32 %81, %61
  %83 = tail call i32 @llvm.smax.i32(i32 %82, i32 1)
  store i32 %83, ptr %18, align 4, !tbaa !5
  %84 = load i32, ptr %2, align 4, !tbaa !5
  %85 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #5
  %86 = add nsw i32 %85, 7
  %87 = mul nsw i32 %86, %84
  store i32 %87, ptr %19, align 4, !tbaa !5
  %88 = tail call i32 @llvm.smax.i32(i32 %83, i32 %87)
  br i1 %58, label %89, label %95

89:                                               ; preds = %77
  store i32 %88, ptr %18, align 4, !tbaa !5
  %90 = load i32, ptr %2, align 4, !tbaa !5
  %91 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %92 = add nsw i32 %91, 7
  %93 = mul nsw i32 %92, %90
  store i32 %93, ptr %19, align 4, !tbaa !5
  %94 = tail call i32 @llvm.smax.i32(i32 %88, i32 %93)
  br label %95

95:                                               ; preds = %89, %77
  %.0 = phi i32 [ %94, %89 ], [ %88, %77 ]
  %96 = uitofp nneg i32 %.0 to float
  store float %96, ptr %14, align 4, !tbaa !9
  %97 = load i32, ptr %15, align 4, !tbaa !5
  %98 = icmp sge i32 %97, %79
  %or.cond = select i1 %98, i1 true, i1 %60
  br i1 %or.cond, label %.thread491, label %.thread499.sink.split

.thread491:                                       ; preds = %95
  %.pr495.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not460 = icmp eq i32 %.pr495.pr, 0
  br i1 %.not460, label %102, label %.thread499

.thread499.sink.split:                            ; preds = %95, %73, %69, %66, %63, %.thread487, %56, %54, %.thread
  %.sink = phi i32 [ -1, %.thread ], [ -1, %54 ], [ -2, %56 ], [ -3, %.thread487 ], [ -5, %63 ], [ -7, %66 ], [ -12, %69 ], [ -14, %73 ], [ -16, %95 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread499

.thread499:                                       ; preds = %.thread499.sink.split, %.thread491
  %99 = phi i32 [ %.pr495.pr, %.thread491 ], [ %.sink, %.thread499.sink.split ]
  %100 = sub nsw i32 0, %99
  store i32 %100, ptr %18, align 4, !tbaa !5
  %101 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %18, i32 noundef 6) #5
  br label %433

102:                                              ; preds = %.thread491
  br i1 %60, label %433, label %103

103:                                              ; preds = %102
  %104 = load i32, ptr %2, align 4, !tbaa !5
  %105 = icmp eq i32 %104, 0
  br i1 %105, label %433, label %106

106:                                              ; preds = %103
  %107 = tail call float @slamch_(ptr noundef nonnull @.str.7) #5
  %108 = tail call float @slamch_(ptr noundef nonnull @.str.8) #5
  store float %108, ptr %31, align 4, !tbaa !9
  %109 = fdiv float 1.000000e+00, %108
  store float %109, ptr %28, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %31, ptr noundef nonnull %28) #5
  %110 = load float, ptr %31, align 4, !tbaa !9
  %111 = fpext float %110 to double
  %112 = call double @sqrt(double noundef %111) #5
  %113 = fpext float %107 to double
  %114 = fdiv double %112, %113
  %115 = fptrunc double %114 to float
  store float %115, ptr %31, align 4, !tbaa !9
  %116 = fdiv float 1.000000e+00, %115
  store float %116, ptr %28, align 4, !tbaa !9
  %117 = call float @slange_(ptr noundef nonnull @.str.9, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  store float %117, ptr %20, align 4, !tbaa !9
  %118 = fcmp ogt float %117, 0.000000e+00
  %119 = load float, ptr %31, align 4
  %120 = fcmp olt float %117, %119
  %or.cond529 = select i1 %118, i1 %120, i1 false
  br i1 %or.cond529, label %124, label %121

121:                                              ; preds = %106
  %122 = load float, ptr %28, align 4, !tbaa !9
  %123 = fcmp ogt float %117, %122
  br i1 %123, label %124, label %125

124:                                              ; preds = %106, %121
  %storemerge525 = phi float [ %122, %121 ], [ %119, %106 ]
  store float %storemerge525, ptr %29, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.10, 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 %125

125:                                              ; preds = %121, %124
  %.not461506 = phi i1 [ false, %124 ], [ true, %121 ]
  %126 = call float @slange_(ptr noundef nonnull @.str.9, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %14) #5
  store float %126, ptr %21, align 4, !tbaa !9
  %127 = fcmp ogt float %126, 0.000000e+00
  %128 = load float, ptr %31, align 4
  %129 = fcmp olt float %126, %128
  %or.cond531 = select i1 %127, i1 %129, i1 false
  br i1 %or.cond531, label %133, label %130

130:                                              ; preds = %125
  %131 = load float, ptr %28, align 4, !tbaa !9
  %132 = fcmp ogt float %126, %131
  br i1 %132, label %133, label %134

133:                                              ; preds = %125, %130
  %storemerge526 = phi float [ %131, %130 ], [ %128, %125 ]
  store float %storemerge526, ptr %30, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.10, 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 %134

134:                                              ; preds = %130, %133
  %.not463511 = phi i1 [ false, %133 ], [ true, %130 ]
  %135 = load i32, ptr %2, align 4, !tbaa !5
  %136 = add nsw i32 %135, 1
  %137 = add nsw i32 %136, %135
  %138 = sext i32 %136 to i64
  %139 = getelementptr inbounds float, ptr %47, i64 %138
  %140 = sext i32 %137 to i64
  %141 = getelementptr inbounds float, ptr %47, i64 %140
  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 %139, ptr noundef nonnull %141, ptr noundef nonnull %22) #5
  %142 = load i32, ptr %32, align 4, !tbaa !5
  %143 = add nsw i32 %142, 1
  %144 = load i32, ptr %33, align 4, !tbaa !5
  %145 = sub i32 %143, %144
  store i32 %145, ptr %24, align 4, !tbaa !5
  br i1 %59, label %146, label %149

146:                                              ; preds = %134
  %147 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub = sub i32 %147, %144
  %148 = add i32 %reass.sub, 1
  br label %149

149:                                              ; preds = %134, %146
  %storemerge = phi i32 [ %148, %146 ], [ %145, %134 ]
  store i32 %storemerge, ptr %23, align 4, !tbaa !5
  %150 = add nsw i32 %145, %137
  %151 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub578 = sub i32 %151, %150
  %152 = add i32 %reass.sub578, 1
  store i32 %152, ptr %18, align 4, !tbaa !5
  %153 = add i32 %37, 1
  %154 = mul i32 %144, %153
  %155 = sext i32 %154 to i64
  %156 = getelementptr inbounds float, ptr %39, i64 %155
  %157 = sext i32 %150 to i64
  %158 = getelementptr inbounds float, ptr %47, i64 %157
  call void @sgeqrf_(ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef %156, ptr noundef nonnull %6, ptr noundef nonnull %141, ptr noundef nonnull %158, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %159 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub579 = sub i32 %159, %150
  %160 = add i32 %reass.sub579, 1
  store i32 %160, ptr %18, align 4, !tbaa !5
  %161 = load i32, ptr %33, align 4, !tbaa !5
  %162 = mul i32 %161, %153
  %163 = sext i32 %162 to i64
  %164 = getelementptr inbounds float, ptr %39, i64 %163
  %165 = add i32 %34, 1
  %166 = mul i32 %161, %165
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds float, ptr %36, i64 %167
  call void @sormqr_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef %164, ptr noundef nonnull %6, ptr noundef nonnull %141, ptr noundef %168, ptr noundef nonnull %4, ptr noundef nonnull %158, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  br i1 %58, label %169, label %192

169:                                              ; preds = %149
  call void @slaset_(ptr noundef nonnull @.str.13, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b36, ptr noundef nonnull @c_b37, ptr noundef %10, ptr noundef nonnull %11) #5
  %170 = load i32, ptr %24, align 4, !tbaa !5
  %171 = icmp sgt i32 %170, 1
  br i1 %171, label %172, label %184

172:                                              ; preds = %169
  %173 = add nsw i32 %170, -1
  store i32 %173, ptr %18, align 4, !tbaa !5
  store i32 %173, ptr %19, align 4, !tbaa !5
  %174 = load i32, ptr %33, align 4, !tbaa !5
  %175 = add nsw i32 %174, 1
  %176 = mul nsw i32 %174, %37
  %177 = add nsw i32 %175, %176
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds float, ptr %39, i64 %178
  %180 = mul nsw i32 %174, %41
  %181 = add nsw i32 %175, %180
  %182 = sext i32 %181 to i64
  %183 = getelementptr inbounds float, ptr %43, i64 %182
  call void @slacpy_(ptr noundef nonnull @.str.11, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %179, ptr noundef nonnull %6, ptr noundef %183, ptr noundef nonnull %11) #5
  br label %184

184:                                              ; preds = %172, %169
  %185 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub580 = sub i32 %185, %150
  %186 = add i32 %reass.sub580, 1
  store i32 %186, ptr %18, align 4, !tbaa !5
  %187 = load i32, ptr %33, align 4, !tbaa !5
  %188 = add i32 %41, 1
  %189 = mul i32 %187, %188
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds float, ptr %43, i64 %190
  call void @sorgqr_(ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef %191, ptr noundef nonnull %11, ptr noundef nonnull %141, ptr noundef nonnull %158, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  br label %192

192:                                              ; preds = %184, %149
  br i1 %.not455641, label %193, label %194

193:                                              ; preds = %192
  call void @slaset_(ptr noundef nonnull @.str.13, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b36, ptr noundef nonnull @c_b37, ptr noundef %12, ptr noundef nonnull %13) #5
  br label %194

194:                                              ; preds = %193, %192
  br i1 %59, label %195, label %196

195:                                              ; preds = %194
  call void @sgghrd_(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 %22) #5
  br label %204

196:                                              ; preds = %194
  %197 = load i32, ptr %33, align 4, !tbaa !5
  %198 = mul i32 %197, %165
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds float, ptr %36, i64 %199
  %201 = mul i32 %197, %153
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds float, ptr %39, i64 %202
  call void @sgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef %200, ptr noundef nonnull %4, ptr noundef %203, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %22) #5
  br label %204

204:                                              ; preds = %196, %195
  %.485 = phi i8 [ 69, %196 ], [ 83, %195 ]
  store i8 %.485, ptr %27, align 1, !tbaa !11
  %205 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub581 = sub i32 %205, %137
  %206 = add i32 %reass.sub581, 1
  store i32 %206, 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 %141, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %207 = load i32, ptr %22, align 4, !tbaa !5
  %.not467 = icmp eq i32 %207, 0
  br i1 %.not467, label %217, label %208

208:                                              ; preds = %204
  %209 = icmp slt i32 %207, 1
  %.pre = load i32, ptr %2, align 4, !tbaa !5
  %.not479 = icmp sgt i32 %207, %.pre
  %or.cond677 = select i1 %209, i1 true, i1 %.not479
  br i1 %or.cond677, label %210, label %.loopexit537.sink.split

210:                                              ; preds = %208
  %211 = icmp sle i32 %207, %.pre
  %212 = shl i32 %.pre, 1
  %.not480 = icmp sgt i32 %207, %212
  %or.cond486 = or i1 %211, %.not480
  br i1 %or.cond486, label %215, label %213

213:                                              ; preds = %210
  %214 = sub nsw i32 %207, %.pre
  br label %.loopexit537.sink.split

215:                                              ; preds = %210
  %216 = add nsw i32 %.pre, 1
  br label %.loopexit537.sink.split

217:                                              ; preds = %204
  br i1 %59, label %218, label %.loopexit537

218:                                              ; preds = %217
  br i1 %58, label %219, label %.thread512

219:                                              ; preds = %218
  %. = select i1 %.not455641, i8 66, i8 76
  store i8 %., ptr %27, align 1, !tbaa !11
  call void @stgevc_(ptr noundef nonnull %27, ptr noundef nonnull @.str.14, 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 %141, ptr noundef nonnull %22) #5
  %220 = load i32, ptr %22, align 4, !tbaa !5
  %.not468 = icmp eq i32 %220, 0
  br i1 %.not468, label %225, label %222

.thread512:                                       ; preds = %218
  store i8 82, ptr %27, align 1, !tbaa !11
  call void @stgevc_(ptr noundef nonnull %27, ptr noundef nonnull @.str.14, 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 %141, ptr noundef nonnull %22) #5
  %221 = load i32, ptr %22, align 4, !tbaa !5
  %.not468513 = icmp eq i32 %221, 0
  br i1 %.not468513, label %.thread514, label %222

222:                                              ; preds = %.thread512, %219
  %223 = load i32, ptr %2, align 4, !tbaa !5
  %224 = add nsw i32 %223, 2
  br label %.loopexit537.sink.split

225:                                              ; preds = %219
  call void @sggbak_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.11, ptr noundef nonnull %2, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %14, ptr noundef nonnull %139, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %22) #5
  %226 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %226, ptr %18, align 4, !tbaa !5
  %.not469556 = icmp slt i32 %226, 1
  br i1 %.not469556, label %.thread514, label %.lr.ph558

.lr.ph558:                                        ; preds = %225
  %227 = load float, ptr %31, align 4
  %228 = add nuw i32 %226, 1
  %229 = sext i32 %41 to i64
  %wide.trip.count608 = zext i32 %228 to i64
  %230 = zext nneg i32 %226 to i64
  %231 = shl nsw i64 %229, 2
  %232 = shl nsw i64 %42, 2
  %233 = getelementptr i8, ptr %10, i64 %231
  %234 = getelementptr i8, ptr %233, i64 %232
  %scevgep = getelementptr i8, ptr %234, i64 4
  %235 = shl nuw nsw i64 %wide.trip.count608, 2
  %236 = add nsw i64 %235, -4
  %237 = mul i64 %236, %229
  %238 = getelementptr i8, ptr %10, i64 %237
  %239 = getelementptr i8, ptr %238, i64 %232
  %scevgep687 = getelementptr i8, ptr %239, i64 %235
  %240 = shl nsw i64 %229, 3
  %241 = getelementptr i8, ptr %10, i64 %240
  %242 = getelementptr i8, ptr %241, i64 %232
  %scevgep688 = getelementptr i8, ptr %242, i64 4
  %243 = add nsw i64 %231, 4
  %244 = mul i64 %243, %wide.trip.count608
  %245 = getelementptr i8, ptr %10, i64 %244
  %scevgep689 = getelementptr i8, ptr %245, i64 %232
  %246 = zext nneg i32 %226 to i64
  %247 = zext nneg i32 %226 to i64
  %248 = zext nneg i32 %226 to i64
  %xtraiter = and i64 %247, 1
  %249 = icmp eq i32 %228, 2
  %unroll_iter = and i64 %247, 2147483646
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %min.iters.check693 = icmp ult i32 %226, 8
  %bound0 = icmp ult ptr %scevgep, %scevgep689
  %bound1 = icmp ult ptr %scevgep688, %scevgep687
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i32 %41, 0
  %250 = or i1 %found.conflict, %stride.check
  %n.vec696 = and i64 %246, 2147483640
  %ind.end697 = or disjoint i64 %n.vec696, 1
  %cmp.n709 = icmp eq i64 %n.vec696, %246
  %251 = and i32 %226, 1
  %lcmp.mod765.not = icmp eq i32 %251, 0
  %min.iters.check = icmp ult i32 %226, 8
  %n.vec = and i64 %230, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %n.vec, %230
  br label %252

252:                                              ; preds = %.lr.ph558, %.loopexit538
  %indvars.iv605 = phi i64 [ 1, %.lr.ph558 ], [ %indvars.iv.next606, %.loopexit538 ]
  %253 = getelementptr inbounds float, ptr %40, i64 %indvars.iv605
  %254 = load float, ptr %253, align 4, !tbaa !9
  %255 = fcmp olt float %254, 0.000000e+00
  br i1 %255, label %.loopexit538, label %256

256:                                              ; preds = %252
  %257 = fcmp oeq float %254, 0.000000e+00
  store i32 %226, ptr %19, align 4, !tbaa !5
  %258 = mul nsw i64 %indvars.iv605, %229
  br i1 %257, label %.lr.ph548, label %.lr.ph

.lr.ph548:                                        ; preds = %256
  %invariant.gep657 = getelementptr float, ptr %43, i64 %258
  br i1 %249, label %.loopexit540.loopexit.unr-lcssa, label %.lr.ph548.new

.lr.ph548.new:                                    ; preds = %.lr.ph548
  %invariant.gep777 = getelementptr i8, ptr %invariant.gep657, i64 4
  br label %259

259:                                              ; preds = %259, %.lr.ph548.new
  %indvars.iv590 = phi i64 [ 1, %.lr.ph548.new ], [ %indvars.iv.next591.1, %259 ]
  %.0431546 = phi float [ 0.000000e+00, %.lr.ph548.new ], [ %271, %259 ]
  %niter = phi i64 [ 0, %.lr.ph548.new ], [ %niter.next.1, %259 ]
  %gep658 = getelementptr float, ptr %invariant.gep657, i64 %indvars.iv590
  %260 = load float, ptr %gep658, align 4, !tbaa !9
  %261 = fcmp oge float %260, 0.000000e+00
  %262 = fneg float %260
  %263 = select i1 %261, float %260, float %262
  %264 = fcmp oge float %.0431546, %263
  %265 = select i1 %264, float %.0431546, float %263
  %gep778 = getelementptr float, ptr %invariant.gep777, i64 %indvars.iv590
  %266 = load float, ptr %gep778, align 4, !tbaa !9
  %267 = fcmp oge float %266, 0.000000e+00
  %268 = fneg float %266
  %269 = select i1 %267, float %266, float %268
  %270 = fcmp oge float %265, %269
  %271 = select i1 %270, float %265, float %269
  %indvars.iv.next591.1 = add nuw nsw i64 %indvars.iv590, 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 %.loopexit540.loopexit.unr-lcssa, label %259, !llvm.loop !12

.lr.ph:                                           ; preds = %256
  %272 = add nuw nsw i64 %indvars.iv605, 1
  %273 = mul nsw i64 %272, %229
  %invariant.gep = getelementptr float, ptr %43, i64 %258
  %invariant.gep655 = getelementptr float, ptr %43, i64 %273
  br label %274

274:                                              ; preds = %.lr.ph, %274
  %indvars.iv = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next, %274 ]
  %.1432543 = phi float [ 0.000000e+00, %.lr.ph ], [ %285, %274 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv
  %275 = load float, ptr %gep, align 4, !tbaa !9
  %276 = fcmp oge float %275, 0.000000e+00
  %277 = fneg float %275
  %278 = select i1 %276, float %275, float %277
  %gep656 = getelementptr float, ptr %invariant.gep655, i64 %indvars.iv
  %279 = load float, ptr %gep656, align 4, !tbaa !9
  %280 = fcmp oge float %279, 0.000000e+00
  %281 = fneg float %279
  %282 = select i1 %280, float %279, float %281
  %283 = fadd float %278, %282
  %284 = fcmp oge float %.1432543, %283
  %285 = select i1 %284, float %.1432543, float %283
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count608
  br i1 %exitcond.not, label %.loopexit540, label %274, !llvm.loop !14

.loopexit540.loopexit.unr-lcssa:                  ; preds = %259, %.lr.ph548
  %.lcssa762.ph = phi float [ poison, %.lr.ph548 ], [ %271, %259 ]
  %indvars.iv590.unr = phi i64 [ 1, %.lr.ph548 ], [ %indvars.iv.next591.1, %259 ]
  %.0431546.unr = phi float [ 0.000000e+00, %.lr.ph548 ], [ %271, %259 ]
  br i1 %lcmp.mod.not, label %.loopexit540, label %.loopexit540.loopexit.epilog-lcssa

.loopexit540.loopexit.epilog-lcssa:               ; preds = %.loopexit540.loopexit.unr-lcssa
  %gep658.epil = getelementptr float, ptr %invariant.gep657, i64 %indvars.iv590.unr
  %286 = load float, ptr %gep658.epil, align 4, !tbaa !9
  %287 = fcmp oge float %286, 0.000000e+00
  %288 = fneg float %286
  %289 = select i1 %287, float %286, float %288
  %290 = fcmp oge float %.0431546.unr, %289
  %291 = select i1 %290, float %.0431546.unr, float %289
  br label %.loopexit540

.loopexit540:                                     ; preds = %274, %.loopexit540.loopexit.epilog-lcssa, %.loopexit540.loopexit.unr-lcssa
  %.2433 = phi float [ %.lcssa762.ph, %.loopexit540.loopexit.unr-lcssa ], [ %291, %.loopexit540.loopexit.epilog-lcssa ], [ %285, %274 ]
  %292 = fcmp olt float %.2433, %227
  br i1 %292, label %.loopexit538, label %293

293:                                              ; preds = %.loopexit540
  %294 = fdiv float 1.000000e+00, %.2433
  store i32 %226, ptr %19, align 4, !tbaa !5
  %295 = mul nsw i64 %indvars.iv605, %229
  br i1 %257, label %.lr.ph555, label %.lr.ph552

.lr.ph555:                                        ; preds = %293
  %invariant.gep663 = getelementptr float, ptr %43, i64 %295
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph555
  %broadcast.splatinsert = insertelement <4 x float> poison, float %294, 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
  %296 = getelementptr float, ptr %invariant.gep663, i64 %offset.idx
  %297 = getelementptr i8, ptr %296, i64 16
  %wide.load = load <4 x float>, ptr %296, align 4, !tbaa !9
  %wide.load686 = load <4 x float>, ptr %297, align 4, !tbaa !9
  %298 = fmul <4 x float> %broadcast.splat, %wide.load
  %299 = fmul <4 x float> %broadcast.splat, %wide.load686
  store <4 x float> %298, ptr %296, align 4, !tbaa !9
  store <4 x float> %299, ptr %297, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %300 = icmp eq i64 %index.next, %n.vec
  br i1 %300, label %middle.block, label %vector.body, !llvm.loop !15

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

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

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv600 = phi i64 [ %indvars.iv.next601, %scalar.ph ], [ %indvars.iv600.ph, %scalar.ph.preheader ]
  %gep664 = getelementptr float, ptr %invariant.gep663, i64 %indvars.iv600
  %301 = load float, ptr %gep664, align 4, !tbaa !9
  %302 = fmul float %294, %301
  store float %302, ptr %gep664, align 4, !tbaa !9
  %indvars.iv.next601 = add nuw nsw i64 %indvars.iv600, 1
  %exitcond604.not = icmp eq i64 %indvars.iv.next601, %wide.trip.count608
  br i1 %exitcond604.not, label %.loopexit538, label %scalar.ph, !llvm.loop !18

.lr.ph552:                                        ; preds = %293
  %303 = add nuw nsw i64 %indvars.iv605, 1
  %304 = mul nsw i64 %303, %229
  %invariant.gep659 = getelementptr float, ptr %43, i64 %295
  %invariant.gep661 = getelementptr float, ptr %43, i64 %304
  %brmerge = select i1 %min.iters.check693, i1 true, i1 %250
  br i1 %brmerge, label %scalar.ph692.preheader, label %vector.ph694

vector.ph694:                                     ; preds = %.lr.ph552
  %broadcast.splatinsert704 = insertelement <4 x float> poison, float %294, i64 0
  %broadcast.splat705 = shufflevector <4 x float> %broadcast.splatinsert704, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body699

vector.body699:                                   ; preds = %vector.body699, %vector.ph694
  %index700 = phi i64 [ 0, %vector.ph694 ], [ %index.next708, %vector.body699 ]
  %offset.idx701 = or disjoint i64 %index700, 1
  %305 = getelementptr float, ptr %invariant.gep659, i64 %offset.idx701
  %306 = getelementptr i8, ptr %305, i64 16
  %wide.load702 = load <4 x float>, ptr %305, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %wide.load703 = load <4 x float>, ptr %306, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %307 = fmul <4 x float> %broadcast.splat705, %wide.load702
  %308 = fmul <4 x float> %broadcast.splat705, %wide.load703
  store <4 x float> %307, ptr %305, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  store <4 x float> %308, ptr %306, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %309 = getelementptr float, ptr %invariant.gep661, i64 %offset.idx701
  %310 = getelementptr i8, ptr %309, i64 16
  %wide.load706 = load <4 x float>, ptr %309, align 4, !tbaa !9, !alias.scope !22
  %wide.load707 = load <4 x float>, ptr %310, align 4, !tbaa !9, !alias.scope !22
  %311 = fmul <4 x float> %broadcast.splat705, %wide.load706
  %312 = fmul <4 x float> %broadcast.splat705, %wide.load707
  store <4 x float> %311, ptr %309, align 4, !tbaa !9, !alias.scope !22
  store <4 x float> %312, ptr %310, align 4, !tbaa !9, !alias.scope !22
  %index.next708 = add nuw i64 %index700, 8
  %313 = icmp eq i64 %index.next708, %n.vec696
  br i1 %313, label %middle.block691, label %vector.body699, !llvm.loop !24

middle.block691:                                  ; preds = %vector.body699
  br i1 %cmp.n709, label %.loopexit538, label %scalar.ph692.preheader

scalar.ph692.preheader:                           ; preds = %.lr.ph552, %middle.block691
  %indvars.iv595.ph = phi i64 [ 1, %.lr.ph552 ], [ %ind.end697, %middle.block691 ]
  br i1 %lcmp.mod765.not, label %scalar.ph692.prol.loopexit, label %scalar.ph692.prol

scalar.ph692.prol:                                ; preds = %scalar.ph692.preheader
  %gep660.prol = getelementptr float, ptr %invariant.gep659, i64 %indvars.iv595.ph
  %314 = load float, ptr %gep660.prol, align 4, !tbaa !9
  %315 = fmul float %294, %314
  store float %315, ptr %gep660.prol, align 4, !tbaa !9
  %gep662.prol = getelementptr float, ptr %invariant.gep661, i64 %indvars.iv595.ph
  %316 = load float, ptr %gep662.prol, align 4, !tbaa !9
  %317 = fmul float %294, %316
  store float %317, ptr %gep662.prol, align 4, !tbaa !9
  %indvars.iv.next596.prol = add nuw nsw i64 %indvars.iv595.ph, 1
  br label %scalar.ph692.prol.loopexit

scalar.ph692.prol.loopexit:                       ; preds = %scalar.ph692.prol, %scalar.ph692.preheader
  %indvars.iv595.unr = phi i64 [ %indvars.iv595.ph, %scalar.ph692.preheader ], [ %indvars.iv.next596.prol, %scalar.ph692.prol ]
  %318 = icmp eq i64 %indvars.iv595.ph, %248
  br i1 %318, label %.loopexit538, label %scalar.ph692

scalar.ph692:                                     ; preds = %scalar.ph692.prol.loopexit, %scalar.ph692
  %indvars.iv595 = phi i64 [ %indvars.iv.next596.1, %scalar.ph692 ], [ %indvars.iv595.unr, %scalar.ph692.prol.loopexit ]
  %gep660 = getelementptr float, ptr %invariant.gep659, i64 %indvars.iv595
  %319 = load float, ptr %gep660, align 4, !tbaa !9
  %320 = fmul float %294, %319
  store float %320, ptr %gep660, align 4, !tbaa !9
  %gep662 = getelementptr float, ptr %invariant.gep661, i64 %indvars.iv595
  %321 = load float, ptr %gep662, align 4, !tbaa !9
  %322 = fmul float %294, %321
  store float %322, ptr %gep662, align 4, !tbaa !9
  %indvars.iv.next596 = add nuw nsw i64 %indvars.iv595, 1
  %gep660.1 = getelementptr float, ptr %invariant.gep659, i64 %indvars.iv.next596
  %323 = load float, ptr %gep660.1, align 4, !tbaa !9
  %324 = fmul float %294, %323
  store float %324, ptr %gep660.1, align 4, !tbaa !9
  %gep662.1 = getelementptr float, ptr %invariant.gep661, i64 %indvars.iv.next596
  %325 = load float, ptr %gep662.1, align 4, !tbaa !9
  %326 = fmul float %294, %325
  store float %326, ptr %gep662.1, align 4, !tbaa !9
  %indvars.iv.next596.1 = add nuw nsw i64 %indvars.iv595, 2
  %exitcond599.not.1 = icmp eq i64 %indvars.iv.next596.1, %wide.trip.count608
  br i1 %exitcond599.not.1, label %.loopexit538, label %scalar.ph692, !llvm.loop !25

.loopexit538:                                     ; preds = %scalar.ph692.prol.loopexit, %scalar.ph692, %scalar.ph, %middle.block691, %middle.block, %252, %.loopexit540
  %indvars.iv.next606 = add nuw nsw i64 %indvars.iv605, 1
  %exitcond609.not = icmp eq i64 %indvars.iv.next606, %wide.trip.count608
  br i1 %exitcond609.not, label %.thread514, label %252, !llvm.loop !26

.thread514:                                       ; preds = %.loopexit538, %225, %.thread512
  br i1 %.not455641, label %327, label %.loopexit537

327:                                              ; preds = %.thread514
  call void @sggbak_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %14, ptr noundef nonnull %139, ptr noundef nonnull %2, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %22) #5
  %328 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %328, ptr %18, align 4, !tbaa !5
  %.not470575 = icmp slt i32 %328, 1
  br i1 %.not470575, label %.loopexit537, label %.lr.ph577

.lr.ph577:                                        ; preds = %327
  %329 = load float, ptr %31, align 4
  %330 = add nuw i32 %328, 1
  %331 = sext i32 %44 to i64
  %wide.trip.count633 = zext i32 %330 to i64
  %332 = zext nneg i32 %328 to i64
  %333 = shl nsw i64 %331, 2
  %334 = shl nsw i64 %45, 2
  %335 = getelementptr i8, ptr %12, i64 %333
  %336 = getelementptr i8, ptr %335, i64 %334
  %scevgep728 = getelementptr i8, ptr %336, i64 4
  %337 = shl nuw nsw i64 %wide.trip.count633, 2
  %338 = add nsw i64 %337, -4
  %339 = mul i64 %338, %331
  %340 = getelementptr i8, ptr %12, i64 %339
  %341 = getelementptr i8, ptr %340, i64 %334
  %scevgep729 = getelementptr i8, ptr %341, i64 %337
  %342 = shl nsw i64 %331, 3
  %343 = getelementptr i8, ptr %12, i64 %342
  %344 = getelementptr i8, ptr %343, i64 %334
  %scevgep730 = getelementptr i8, ptr %344, i64 4
  %345 = add nsw i64 %333, 4
  %346 = mul i64 %345, %wide.trip.count633
  %347 = getelementptr i8, ptr %12, i64 %346
  %scevgep731 = getelementptr i8, ptr %347, i64 %334
  %348 = zext nneg i32 %328 to i64
  %349 = zext nneg i32 %328 to i64
  %350 = zext nneg i32 %328 to i64
  %xtraiter767 = and i64 %349, 1
  %351 = icmp eq i32 %330, 2
  %unroll_iter770 = and i64 %349, 2147483646
  %lcmp.mod768.not = icmp eq i64 %xtraiter767, 0
  %min.iters.check739 = icmp ult i32 %328, 8
  %bound0732 = icmp ult ptr %scevgep728, %scevgep731
  %bound1733 = icmp ult ptr %scevgep730, %scevgep729
  %found.conflict734 = and i1 %bound0732, %bound1733
  %stride.check735 = icmp slt i32 %44, 0
  %352 = or i1 %found.conflict734, %stride.check735
  %n.vec742 = and i64 %348, 2147483640
  %ind.end743 = or disjoint i64 %n.vec742, 1
  %cmp.n755 = icmp eq i64 %n.vec742, %348
  %353 = and i32 %328, 1
  %lcmp.mod773.not = icmp eq i32 %353, 0
  %min.iters.check712 = icmp ult i32 %328, 8
  %n.vec715 = and i64 %332, 2147483640
  %ind.end716 = or disjoint i64 %n.vec715, 1
  %cmp.n726 = icmp eq i64 %n.vec715, %332
  br label %354

354:                                              ; preds = %.lr.ph577, %.loopexit
  %indvars.iv630 = phi i64 [ 1, %.lr.ph577 ], [ %indvars.iv.next631, %.loopexit ]
  %355 = getelementptr inbounds float, ptr %40, i64 %indvars.iv630
  %356 = load float, ptr %355, align 4, !tbaa !9
  %357 = fcmp olt float %356, 0.000000e+00
  br i1 %357, label %.loopexit, label %358

358:                                              ; preds = %354
  %359 = fcmp oeq float %356, 0.000000e+00
  store i32 %328, ptr %19, align 4, !tbaa !5
  %360 = mul nsw i64 %indvars.iv630, %331
  br i1 %359, label %.lr.ph567, label %.lr.ph562

.lr.ph567:                                        ; preds = %358
  %invariant.gep669 = getelementptr float, ptr %46, i64 %360
  br i1 %351, label %.loopexit535.loopexit.unr-lcssa, label %.lr.ph567.new

.lr.ph567.new:                                    ; preds = %.lr.ph567
  %invariant.gep779 = getelementptr i8, ptr %invariant.gep669, i64 4
  br label %361

361:                                              ; preds = %361, %.lr.ph567.new
  %indvars.iv615 = phi i64 [ 1, %.lr.ph567.new ], [ %indvars.iv.next616.1, %361 ]
  %.3434565 = phi float [ 0.000000e+00, %.lr.ph567.new ], [ %373, %361 ]
  %niter771 = phi i64 [ 0, %.lr.ph567.new ], [ %niter771.next.1, %361 ]
  %gep670 = getelementptr float, ptr %invariant.gep669, i64 %indvars.iv615
  %362 = load float, ptr %gep670, align 4, !tbaa !9
  %363 = fcmp oge float %362, 0.000000e+00
  %364 = fneg float %362
  %365 = select i1 %363, float %362, float %364
  %366 = fcmp oge float %.3434565, %365
  %367 = select i1 %366, float %.3434565, float %365
  %gep780 = getelementptr float, ptr %invariant.gep779, i64 %indvars.iv615
  %368 = load float, ptr %gep780, align 4, !tbaa !9
  %369 = fcmp oge float %368, 0.000000e+00
  %370 = fneg float %368
  %371 = select i1 %369, float %368, float %370
  %372 = fcmp oge float %367, %371
  %373 = select i1 %372, float %367, float %371
  %indvars.iv.next616.1 = add nuw nsw i64 %indvars.iv615, 2
  %niter771.next.1 = add i64 %niter771, 2
  %niter771.ncmp.1 = icmp eq i64 %niter771.next.1, %unroll_iter770
  br i1 %niter771.ncmp.1, label %.loopexit535.loopexit.unr-lcssa, label %361, !llvm.loop !27

.lr.ph562:                                        ; preds = %358
  %374 = add nuw nsw i64 %indvars.iv630, 1
  %375 = mul nsw i64 %374, %331
  %invariant.gep665 = getelementptr float, ptr %46, i64 %360
  %invariant.gep667 = getelementptr float, ptr %46, i64 %375
  br label %376

376:                                              ; preds = %.lr.ph562, %376
  %indvars.iv610 = phi i64 [ 1, %.lr.ph562 ], [ %indvars.iv.next611, %376 ]
  %.4435560 = phi float [ 0.000000e+00, %.lr.ph562 ], [ %387, %376 ]
  %gep666 = getelementptr float, ptr %invariant.gep665, i64 %indvars.iv610
  %377 = load float, ptr %gep666, align 4, !tbaa !9
  %378 = fcmp oge float %377, 0.000000e+00
  %379 = fneg float %377
  %380 = select i1 %378, float %377, float %379
  %gep668 = getelementptr float, ptr %invariant.gep667, i64 %indvars.iv610
  %381 = load float, ptr %gep668, align 4, !tbaa !9
  %382 = fcmp oge float %381, 0.000000e+00
  %383 = fneg float %381
  %384 = select i1 %382, float %381, float %383
  %385 = fadd float %380, %384
  %386 = fcmp oge float %.4435560, %385
  %387 = select i1 %386, float %.4435560, float %385
  %indvars.iv.next611 = add nuw nsw i64 %indvars.iv610, 1
  %exitcond614.not = icmp eq i64 %indvars.iv.next611, %wide.trip.count633
  br i1 %exitcond614.not, label %.loopexit535, label %376, !llvm.loop !28

.loopexit535.loopexit.unr-lcssa:                  ; preds = %361, %.lr.ph567
  %.lcssa758.ph = phi float [ poison, %.lr.ph567 ], [ %373, %361 ]
  %indvars.iv615.unr = phi i64 [ 1, %.lr.ph567 ], [ %indvars.iv.next616.1, %361 ]
  %.3434565.unr = phi float [ 0.000000e+00, %.lr.ph567 ], [ %373, %361 ]
  br i1 %lcmp.mod768.not, label %.loopexit535, label %.loopexit535.loopexit.epilog-lcssa

.loopexit535.loopexit.epilog-lcssa:               ; preds = %.loopexit535.loopexit.unr-lcssa
  %gep670.epil = getelementptr float, ptr %invariant.gep669, i64 %indvars.iv615.unr
  %388 = load float, ptr %gep670.epil, align 4, !tbaa !9
  %389 = fcmp oge float %388, 0.000000e+00
  %390 = fneg float %388
  %391 = select i1 %389, float %388, float %390
  %392 = fcmp oge float %.3434565.unr, %391
  %393 = select i1 %392, float %.3434565.unr, float %391
  br label %.loopexit535

.loopexit535:                                     ; preds = %376, %.loopexit535.loopexit.epilog-lcssa, %.loopexit535.loopexit.unr-lcssa
  %.5436 = phi float [ %.lcssa758.ph, %.loopexit535.loopexit.unr-lcssa ], [ %393, %.loopexit535.loopexit.epilog-lcssa ], [ %387, %376 ]
  %394 = fcmp olt float %.5436, %329
  br i1 %394, label %.loopexit, label %395

395:                                              ; preds = %.loopexit535
  %396 = fdiv float 1.000000e+00, %.5436
  store i32 %328, ptr %19, align 4, !tbaa !5
  %397 = mul nsw i64 %indvars.iv630, %331
  br i1 %359, label %.lr.ph574, label %.lr.ph571

.lr.ph574:                                        ; preds = %395
  %invariant.gep675 = getelementptr float, ptr %46, i64 %397
  br i1 %min.iters.check712, label %scalar.ph711.preheader, label %vector.ph713

vector.ph713:                                     ; preds = %.lr.ph574
  %broadcast.splatinsert723 = insertelement <4 x float> poison, float %396, i64 0
  %broadcast.splat724 = shufflevector <4 x float> %broadcast.splatinsert723, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body718

vector.body718:                                   ; preds = %vector.body718, %vector.ph713
  %index719 = phi i64 [ 0, %vector.ph713 ], [ %index.next725, %vector.body718 ]
  %offset.idx720 = or disjoint i64 %index719, 1
  %398 = getelementptr float, ptr %invariant.gep675, i64 %offset.idx720
  %399 = getelementptr i8, ptr %398, i64 16
  %wide.load721 = load <4 x float>, ptr %398, align 4, !tbaa !9
  %wide.load722 = load <4 x float>, ptr %399, align 4, !tbaa !9
  %400 = fmul <4 x float> %broadcast.splat724, %wide.load721
  %401 = fmul <4 x float> %broadcast.splat724, %wide.load722
  store <4 x float> %400, ptr %398, align 4, !tbaa !9
  store <4 x float> %401, ptr %399, align 4, !tbaa !9
  %index.next725 = add nuw i64 %index719, 8
  %402 = icmp eq i64 %index.next725, %n.vec715
  br i1 %402, label %middle.block710, label %vector.body718, !llvm.loop !29

middle.block710:                                  ; preds = %vector.body718
  br i1 %cmp.n726, label %.loopexit, label %scalar.ph711.preheader

scalar.ph711.preheader:                           ; preds = %middle.block710, %.lr.ph574
  %indvars.iv625.ph = phi i64 [ 1, %.lr.ph574 ], [ %ind.end716, %middle.block710 ]
  br label %scalar.ph711

scalar.ph711:                                     ; preds = %scalar.ph711.preheader, %scalar.ph711
  %indvars.iv625 = phi i64 [ %indvars.iv.next626, %scalar.ph711 ], [ %indvars.iv625.ph, %scalar.ph711.preheader ]
  %gep676 = getelementptr float, ptr %invariant.gep675, i64 %indvars.iv625
  %403 = load float, ptr %gep676, align 4, !tbaa !9
  %404 = fmul float %396, %403
  store float %404, ptr %gep676, align 4, !tbaa !9
  %indvars.iv.next626 = add nuw nsw i64 %indvars.iv625, 1
  %exitcond629.not = icmp eq i64 %indvars.iv.next626, %wide.trip.count633
  br i1 %exitcond629.not, label %.loopexit, label %scalar.ph711, !llvm.loop !30

.lr.ph571:                                        ; preds = %395
  %405 = add nuw nsw i64 %indvars.iv630, 1
  %406 = mul nsw i64 %405, %331
  %invariant.gep671 = getelementptr float, ptr %46, i64 %397
  %invariant.gep673 = getelementptr float, ptr %46, i64 %406
  %brmerge781 = select i1 %min.iters.check739, i1 true, i1 %352
  br i1 %brmerge781, label %scalar.ph738.preheader, label %vector.ph740

vector.ph740:                                     ; preds = %.lr.ph571
  %broadcast.splatinsert750 = insertelement <4 x float> poison, float %396, i64 0
  %broadcast.splat751 = shufflevector <4 x float> %broadcast.splatinsert750, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body745

vector.body745:                                   ; preds = %vector.body745, %vector.ph740
  %index746 = phi i64 [ 0, %vector.ph740 ], [ %index.next754, %vector.body745 ]
  %offset.idx747 = or disjoint i64 %index746, 1
  %407 = getelementptr float, ptr %invariant.gep671, i64 %offset.idx747
  %408 = getelementptr i8, ptr %407, i64 16
  %wide.load748 = load <4 x float>, ptr %407, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %wide.load749 = load <4 x float>, ptr %408, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %409 = fmul <4 x float> %broadcast.splat751, %wide.load748
  %410 = fmul <4 x float> %broadcast.splat751, %wide.load749
  store <4 x float> %409, ptr %407, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  store <4 x float> %410, ptr %408, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %411 = getelementptr float, ptr %invariant.gep673, i64 %offset.idx747
  %412 = getelementptr i8, ptr %411, i64 16
  %wide.load752 = load <4 x float>, ptr %411, align 4, !tbaa !9, !alias.scope !34
  %wide.load753 = load <4 x float>, ptr %412, align 4, !tbaa !9, !alias.scope !34
  %413 = fmul <4 x float> %broadcast.splat751, %wide.load752
  %414 = fmul <4 x float> %broadcast.splat751, %wide.load753
  store <4 x float> %413, ptr %411, align 4, !tbaa !9, !alias.scope !34
  store <4 x float> %414, ptr %412, align 4, !tbaa !9, !alias.scope !34
  %index.next754 = add nuw i64 %index746, 8
  %415 = icmp eq i64 %index.next754, %n.vec742
  br i1 %415, label %middle.block737, label %vector.body745, !llvm.loop !36

middle.block737:                                  ; preds = %vector.body745
  br i1 %cmp.n755, label %.loopexit, label %scalar.ph738.preheader

scalar.ph738.preheader:                           ; preds = %.lr.ph571, %middle.block737
  %indvars.iv620.ph = phi i64 [ 1, %.lr.ph571 ], [ %ind.end743, %middle.block737 ]
  br i1 %lcmp.mod773.not, label %scalar.ph738.prol.loopexit, label %scalar.ph738.prol

scalar.ph738.prol:                                ; preds = %scalar.ph738.preheader
  %gep672.prol = getelementptr float, ptr %invariant.gep671, i64 %indvars.iv620.ph
  %416 = load float, ptr %gep672.prol, align 4, !tbaa !9
  %417 = fmul float %396, %416
  store float %417, ptr %gep672.prol, align 4, !tbaa !9
  %gep674.prol = getelementptr float, ptr %invariant.gep673, i64 %indvars.iv620.ph
  %418 = load float, ptr %gep674.prol, align 4, !tbaa !9
  %419 = fmul float %396, %418
  store float %419, ptr %gep674.prol, align 4, !tbaa !9
  %indvars.iv.next621.prol = add nuw nsw i64 %indvars.iv620.ph, 1
  br label %scalar.ph738.prol.loopexit

scalar.ph738.prol.loopexit:                       ; preds = %scalar.ph738.prol, %scalar.ph738.preheader
  %indvars.iv620.unr = phi i64 [ %indvars.iv620.ph, %scalar.ph738.preheader ], [ %indvars.iv.next621.prol, %scalar.ph738.prol ]
  %420 = icmp eq i64 %indvars.iv620.ph, %350
  br i1 %420, label %.loopexit, label %scalar.ph738

scalar.ph738:                                     ; preds = %scalar.ph738.prol.loopexit, %scalar.ph738
  %indvars.iv620 = phi i64 [ %indvars.iv.next621.1, %scalar.ph738 ], [ %indvars.iv620.unr, %scalar.ph738.prol.loopexit ]
  %gep672 = getelementptr float, ptr %invariant.gep671, i64 %indvars.iv620
  %421 = load float, ptr %gep672, align 4, !tbaa !9
  %422 = fmul float %396, %421
  store float %422, ptr %gep672, align 4, !tbaa !9
  %gep674 = getelementptr float, ptr %invariant.gep673, i64 %indvars.iv620
  %423 = load float, ptr %gep674, align 4, !tbaa !9
  %424 = fmul float %396, %423
  store float %424, ptr %gep674, align 4, !tbaa !9
  %indvars.iv.next621 = add nuw nsw i64 %indvars.iv620, 1
  %gep672.1 = getelementptr float, ptr %invariant.gep671, i64 %indvars.iv.next621
  %425 = load float, ptr %gep672.1, align 4, !tbaa !9
  %426 = fmul float %396, %425
  store float %426, ptr %gep672.1, align 4, !tbaa !9
  %gep674.1 = getelementptr float, ptr %invariant.gep673, i64 %indvars.iv.next621
  %427 = load float, ptr %gep674.1, align 4, !tbaa !9
  %428 = fmul float %396, %427
  store float %428, ptr %gep674.1, align 4, !tbaa !9
  %indvars.iv.next621.1 = add nuw nsw i64 %indvars.iv620, 2
  %exitcond624.not.1 = icmp eq i64 %indvars.iv.next621.1, %wide.trip.count633
  br i1 %exitcond624.not.1, label %.loopexit, label %scalar.ph738, !llvm.loop !37

.loopexit:                                        ; preds = %scalar.ph738.prol.loopexit, %scalar.ph738, %scalar.ph711, %middle.block737, %middle.block710, %354, %.loopexit535
  %indvars.iv.next631 = add nuw nsw i64 %indvars.iv630, 1
  %exitcond634.not = icmp eq i64 %indvars.iv.next631, %wide.trip.count633
  br i1 %exitcond634.not, label %.loopexit537, label %354, !llvm.loop !38

.loopexit537.sink.split:                          ; preds = %208, %222, %213, %215
  %.sink678 = phi i32 [ %216, %215 ], [ %214, %213 ], [ %224, %222 ], [ %207, %208 ]
  store i32 %.sink678, ptr %16, align 4, !tbaa !5
  br label %.loopexit537

.loopexit537:                                     ; preds = %.loopexit, %.loopexit537.sink.split, %327, %217, %.thread514
  br i1 %.not461506, label %430, label %429

429:                                              ; preds = %.loopexit537
  call void @slascl_(ptr noundef nonnull @.str.10, 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.10, 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 %430

430:                                              ; preds = %429, %.loopexit537
  br i1 %.not463511, label %432, label %431

431:                                              ; preds = %430
  call void @slascl_(ptr noundef nonnull @.str.10, 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 %432

432:                                              ; preds = %431, %430
  store float %96, ptr %14, align 4, !tbaa !9
  br label %433

433:                                              ; preds = %103, %102, %432, %.thread499
  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 i32 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

declare void @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,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass