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

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

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

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

140:                                              ; preds = %17
  store i64 1, ptr %88, align 8, !tbaa !9
  store i64 0, ptr %66, align 8, !tbaa !9
  br label %148

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

145:                                              ; preds = %141
  store i64 2, ptr %88, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %147

146:                                              ; preds = %141
  store i64 -1, ptr %88, align 8, !tbaa !9
  store i64 0, ptr %66, align 8, !tbaa !9
  br label %147

147:                                              ; preds = %146, %145
  br label %148

148:                                              ; preds = %147, %140
  %149 = load ptr, ptr %20, align 8, !tbaa !5
  %150 = call i64 @lsame_(ptr noundef %149, ptr noundef @.str)
  %151 = icmp ne i64 %150, 0
  br i1 %151, label %152, label %153

152:                                              ; preds = %148
  store i64 1, ptr %91, align 8, !tbaa !9
  store i64 0, ptr %67, align 8, !tbaa !9
  br label %160

153:                                              ; preds = %148
  %154 = load ptr, ptr %20, align 8, !tbaa !5
  %155 = call i64 @lsame_(ptr noundef %154, ptr noundef @.str.1)
  %156 = icmp ne i64 %155, 0
  br i1 %156, label %157, label %158

157:                                              ; preds = %153
  store i64 2, ptr %91, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %159

158:                                              ; preds = %153
  store i64 -1, ptr %91, align 8, !tbaa !9
  store i64 0, ptr %67, align 8, !tbaa !9
  br label %159

159:                                              ; preds = %158, %157
  br label %160

160:                                              ; preds = %159, %152
  %161 = load i64, ptr %66, align 8, !tbaa !9
  %162 = icmp ne i64 %161, 0
  br i1 %162, label %166, label %163

163:                                              ; preds = %160
  %164 = load i64, ptr %67, align 8, !tbaa !9
  %165 = icmp ne i64 %164, 0
  br label %166

166:                                              ; preds = %163, %160
  %167 = phi i1 [ true, %160 ], [ %165, %163 ]
  %168 = zext i1 %167 to i32
  %169 = sext i32 %168 to i64
  store i64 %169, ptr %60, align 8, !tbaa !9
  %170 = load ptr, ptr %21, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = shl i64 %171, 3
  store i64 %172, ptr %44, align 8, !tbaa !9
  %173 = load i64, ptr %44, align 8, !tbaa !9
  %174 = icmp sge i64 %173, 1
  br i1 %174, label %175, label %177

175:                                              ; preds = %166
  %176 = load i64, ptr %44, align 8, !tbaa !9
  br label %178

177:                                              ; preds = %166
  br label %178

178:                                              ; preds = %177, %175
  %179 = phi i64 [ %176, %175 ], [ 1, %177 ]
  store i64 %179, ptr %93, align 8, !tbaa !9
  %180 = load i64, ptr %93, align 8, !tbaa !9
  store i64 %180, ptr %94, align 8, !tbaa !9
  %181 = load i64, ptr %94, align 8, !tbaa !9
  %182 = sitofp i64 %181 to float
  %183 = load ptr, ptr %33, align 8, !tbaa !5
  %184 = getelementptr inbounds float, ptr %183, i64 1
  store float %182, ptr %184, align 4, !tbaa !11
  %185 = load ptr, ptr %34, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  %187 = icmp eq i64 %186, -1
  %188 = zext i1 %187 to i32
  %189 = sext i32 %188 to i64
  store i64 %189, ptr %95, align 8, !tbaa !9
  %190 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 0, ptr %190, align 8, !tbaa !9
  %191 = load i64, ptr %88, align 8, !tbaa !9
  %192 = icmp sle i64 %191, 0
  br i1 %192, label %193, label %195

193:                                              ; preds = %178
  %194 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -1, ptr %194, align 8, !tbaa !9
  br label %283

195:                                              ; preds = %178
  %196 = load i64, ptr %91, align 8, !tbaa !9
  %197 = icmp sle i64 %196, 0
  br i1 %197, label %198, label %200

198:                                              ; preds = %195
  %199 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -2, ptr %199, align 8, !tbaa !9
  br label %282

200:                                              ; preds = %195
  %201 = load ptr, ptr %21, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  %203 = icmp slt i64 %202, 0
  br i1 %203, label %204, label %206

204:                                              ; preds = %200
  %205 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -3, ptr %205, align 8, !tbaa !9
  br label %281

206:                                              ; preds = %200
  %207 = load ptr, ptr %23, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !9
  %209 = load ptr, ptr %21, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = icmp sge i64 1, %210
  br i1 %211, label %212, label %213

212:                                              ; preds = %206
  br label %216

213:                                              ; preds = %206
  %214 = load ptr, ptr %21, align 8, !tbaa !5
  %215 = load i64, ptr %214, align 8, !tbaa !9
  br label %216

216:                                              ; preds = %213, %212
  %217 = phi i64 [ 1, %212 ], [ %215, %213 ]
  %218 = icmp slt i64 %208, %217
  br i1 %218, label %219, label %221

219:                                              ; preds = %216
  %220 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -5, ptr %220, align 8, !tbaa !9
  br label %280

221:                                              ; preds = %216
  %222 = load ptr, ptr %25, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  %224 = load ptr, ptr %21, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = icmp sge i64 1, %225
  br i1 %226, label %227, label %228

227:                                              ; preds = %221
  br label %231

228:                                              ; preds = %221
  %229 = load ptr, ptr %21, align 8, !tbaa !5
  %230 = load i64, ptr %229, align 8, !tbaa !9
  br label %231

231:                                              ; preds = %228, %227
  %232 = phi i64 [ 1, %227 ], [ %230, %228 ]
  %233 = icmp slt i64 %223, %232
  br i1 %233, label %234, label %236

234:                                              ; preds = %231
  %235 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -7, ptr %235, align 8, !tbaa !9
  br label %279

236:                                              ; preds = %231
  %237 = load ptr, ptr %30, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = icmp slt i64 %238, 1
  br i1 %239, label %249, label %240

240:                                              ; preds = %236
  %241 = load i64, ptr %66, align 8, !tbaa !9
  %242 = icmp ne i64 %241, 0
  br i1 %242, label %243, label %251

243:                                              ; preds = %240
  %244 = load ptr, ptr %30, align 8, !tbaa !5
  %245 = load i64, ptr %244, align 8, !tbaa !9
  %246 = load ptr, ptr %21, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = icmp slt i64 %245, %247
  br i1 %248, label %249, label %251

249:                                              ; preds = %243, %236
  %250 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -12, ptr %250, align 8, !tbaa !9
  br label %278

251:                                              ; preds = %243, %240
  %252 = load ptr, ptr %32, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = icmp slt i64 %253, 1
  br i1 %254, label %264, label %255

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

258:                                              ; preds = %255
  %259 = load ptr, ptr %32, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = load ptr, ptr %21, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp slt i64 %260, %262
  br i1 %263, label %264, label %266

264:                                              ; preds = %258, %251
  %265 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -14, ptr %265, align 8, !tbaa !9
  br label %277

266:                                              ; preds = %258, %255
  %267 = load ptr, ptr %34, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = load i64, ptr %93, align 8, !tbaa !9
  %270 = icmp slt i64 %268, %269
  br i1 %270, label %271, label %276

271:                                              ; preds = %266
  %272 = load i64, ptr %95, align 8, !tbaa !9
  %273 = icmp ne i64 %272, 0
  br i1 %273, label %276, label %274

274:                                              ; preds = %271
  %275 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -16, ptr %275, align 8, !tbaa !9
  br label %276

276:                                              ; preds = %274, %271, %266
  br label %277

277:                                              ; preds = %276, %264
  br label %278

278:                                              ; preds = %277, %249
  br label %279

279:                                              ; preds = %278, %234
  br label %280

280:                                              ; preds = %279, %219
  br label %281

281:                                              ; preds = %280, %204
  br label %282

282:                                              ; preds = %281, %198
  br label %283

283:                                              ; preds = %282, %193
  %284 = load ptr, ptr %35, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = icmp eq i64 %285, 0
  br i1 %286, label %287, label %342

287:                                              ; preds = %283
  %288 = load ptr, ptr %21, align 8, !tbaa !5
  %289 = load ptr, ptr %21, align 8, !tbaa !5
  %290 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %288, ptr noundef %289, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %290, ptr %54, align 8, !tbaa !9
  %291 = load ptr, ptr %21, align 8, !tbaa !5
  %292 = load ptr, ptr %21, align 8, !tbaa !5
  %293 = load ptr, ptr %21, align 8, !tbaa !5
  %294 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %291, ptr noundef %292, ptr noundef %293, ptr noundef @c_n1)
  store i64 %294, ptr %55, align 8, !tbaa !9
  %295 = load ptr, ptr %21, align 8, !tbaa !5
  %296 = load ptr, ptr %21, align 8, !tbaa !5
  %297 = load ptr, ptr %21, align 8, !tbaa !5
  %298 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.3, ptr noundef %295, ptr noundef %296, ptr noundef %297, ptr noundef @c_n1)
  store i64 %298, ptr %56, align 8, !tbaa !9
  %299 = load i64, ptr %54, align 8, !tbaa !9
  %300 = load i64, ptr %55, align 8, !tbaa !9
  %301 = icmp sge i64 %299, %300
  br i1 %301, label %302, label %304

302:                                              ; preds = %287
  %303 = load i64, ptr %54, align 8, !tbaa !9
  br label %306

304:                                              ; preds = %287
  %305 = load i64, ptr %55, align 8, !tbaa !9
  br label %306

306:                                              ; preds = %304, %302
  %307 = phi i64 [ %303, %302 ], [ %305, %304 ]
  store i64 %307, ptr %44, align 8, !tbaa !9
  %308 = load i64, ptr %44, align 8, !tbaa !9
  %309 = load i64, ptr %56, align 8, !tbaa !9
  %310 = icmp sge i64 %308, %309
  br i1 %310, label %311, label %313

311:                                              ; preds = %306
  %312 = load i64, ptr %44, align 8, !tbaa !9
  br label %315

313:                                              ; preds = %306
  %314 = load i64, ptr %56, align 8, !tbaa !9
  br label %315

315:                                              ; preds = %313, %311
  %316 = phi i64 [ %312, %311 ], [ %314, %313 ]
  store i64 %316, ptr %51, align 8, !tbaa !9
  %317 = load ptr, ptr %21, align 8, !tbaa !5
  %318 = load i64, ptr %317, align 8, !tbaa !9
  %319 = mul nsw i64 %318, 6
  store i64 %319, ptr %44, align 8, !tbaa !9
  %320 = load ptr, ptr %21, align 8, !tbaa !5
  %321 = load i64, ptr %320, align 8, !tbaa !9
  %322 = load i64, ptr %51, align 8, !tbaa !9
  %323 = add nsw i64 %322, 1
  %324 = mul nsw i64 %321, %323
  store i64 %324, ptr %45, align 8, !tbaa !9
  %325 = load ptr, ptr %21, align 8, !tbaa !5
  %326 = load i64, ptr %325, align 8, !tbaa !9
  %327 = shl i64 %326, 1
  %328 = load i64, ptr %44, align 8, !tbaa !9
  %329 = load i64, ptr %45, align 8, !tbaa !9
  %330 = icmp sge i64 %328, %329
  br i1 %330, label %331, label %333

331:                                              ; preds = %315
  %332 = load i64, ptr %44, align 8, !tbaa !9
  br label %335

333:                                              ; preds = %315
  %334 = load i64, ptr %45, align 8, !tbaa !9
  br label %335

335:                                              ; preds = %333, %331
  %336 = phi i64 [ %332, %331 ], [ %334, %333 ]
  %337 = add nsw i64 %327, %336
  store i64 %337, ptr %68, align 8, !tbaa !9
  %338 = load i64, ptr %68, align 8, !tbaa !9
  %339 = sitofp i64 %338 to float
  %340 = load ptr, ptr %33, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 1
  store float %339, ptr %341, align 4, !tbaa !11
  br label %342

342:                                              ; preds = %335, %283
  %343 = load ptr, ptr %35, align 8, !tbaa !5
  %344 = load i64, ptr %343, align 8, !tbaa !9
  %345 = icmp ne i64 %344, 0
  br i1 %345, label %346, label %351

346:                                              ; preds = %342
  %347 = load ptr, ptr %35, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = sub nsw i64 0, %348
  store i64 %349, ptr %44, align 8, !tbaa !9
  %350 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %44)
  store i32 0, ptr %18, align 4
  store i32 1, ptr %96, align 4
  br label %1836

351:                                              ; preds = %342
  %352 = load i64, ptr %95, align 8, !tbaa !9
  %353 = icmp ne i64 %352, 0
  br i1 %353, label %354, label %355

354:                                              ; preds = %351
  store i32 0, ptr %18, align 4
  store i32 1, ptr %96, align 4
  br label %1836

355:                                              ; preds = %351
  br label %356

356:                                              ; preds = %355
  %357 = load ptr, ptr %21, align 8, !tbaa !5
  %358 = load i64, ptr %357, align 8, !tbaa !9
  %359 = icmp eq i64 %358, 0
  br i1 %359, label %360, label %361

360:                                              ; preds = %356
  store i32 0, ptr %18, align 4
  store i32 1, ptr %96, align 4
  br label %1836

361:                                              ; preds = %356
  %362 = call double @slamch_(ptr noundef @.str.7)
  %363 = call double @slamch_(ptr noundef @.str.8)
  %364 = fmul double %362, %363
  %365 = fptrunc double %364 to float
  store float %365, ptr %59, align 4, !tbaa !11
  %366 = call double @slamch_(ptr noundef @.str.9)
  %367 = fptrunc double %366 to float
  store float %367, ptr %84, align 4, !tbaa !11
  %368 = load float, ptr %84, align 4, !tbaa !11
  %369 = load float, ptr %84, align 4, !tbaa !11
  %370 = fadd float %369, %368
  store float %370, ptr %84, align 4, !tbaa !11
  %371 = load float, ptr %84, align 4, !tbaa !11
  %372 = fdiv float 1.000000e+00, %371
  store float %372, ptr %85, align 4, !tbaa !11
  %373 = load float, ptr %59, align 4, !tbaa !11
  %374 = call float @llvm.fmuladd.f32(float %373, float 4.000000e+00, float 1.000000e+00)
  store float %374, ptr %92, align 4, !tbaa !11
  %375 = load ptr, ptr %21, align 8, !tbaa !5
  %376 = load ptr, ptr %21, align 8, !tbaa !5
  %377 = load ptr, ptr %22, align 8, !tbaa !5
  %378 = load i64, ptr %37, align 8, !tbaa !9
  %379 = getelementptr inbounds float, ptr %377, i64 %378
  %380 = load ptr, ptr %23, align 8, !tbaa !5
  %381 = load ptr, ptr %33, align 8, !tbaa !5
  %382 = getelementptr inbounds float, ptr %381, i64 1
  %383 = call double @slange_(ptr noundef @.str.10, ptr noundef %375, ptr noundef %376, ptr noundef %379, ptr noundef %380, ptr noundef %382)
  %384 = fptrunc double %383 to float
  store float %384, ptr %62, align 4, !tbaa !11
  %385 = load float, ptr %62, align 4, !tbaa !11
  store float %385, ptr %69, align 4, !tbaa !11
  store float 1.000000e+00, ptr %70, align 4, !tbaa !11
  %386 = load float, ptr %62, align 4, !tbaa !11
  %387 = fcmp olt float %386, 1.000000e+00
  br i1 %387, label %388, label %399

388:                                              ; preds = %361
  %389 = load float, ptr %85, align 4, !tbaa !11
  %390 = load float, ptr %62, align 4, !tbaa !11
  %391 = fmul float %389, %390
  %392 = fcmp olt float %391, 1.000000e+00
  br i1 %392, label %393, label %398

393:                                              ; preds = %388
  %394 = load float, ptr %84, align 4, !tbaa !11
  store float %394, ptr %69, align 4, !tbaa !11
  %395 = load float, ptr %85, align 4, !tbaa !11
  %396 = load float, ptr %62, align 4, !tbaa !11
  %397 = fmul float %395, %396
  store float %397, ptr %70, align 4, !tbaa !11
  br label %398

398:                                              ; preds = %393, %388
  br label %399

399:                                              ; preds = %398, %361
  %400 = load float, ptr %62, align 4, !tbaa !11
  %401 = fcmp ogt float %400, 0.000000e+00
  br i1 %401, label %402, label %418

402:                                              ; preds = %399
  %403 = load ptr, ptr %21, align 8, !tbaa !5
  %404 = load ptr, ptr %21, align 8, !tbaa !5
  %405 = load ptr, ptr %22, align 8, !tbaa !5
  %406 = load i64, ptr %37, align 8, !tbaa !9
  %407 = getelementptr inbounds float, ptr %405, i64 %406
  %408 = load ptr, ptr %23, align 8, !tbaa !5
  %409 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %62, ptr noundef @c_b27, ptr noundef %403, ptr noundef %404, ptr noundef %407, ptr noundef %408, ptr noundef %78)
  %410 = load i64, ptr %78, align 8, !tbaa !9
  %411 = icmp ne i64 %410, 0
  br i1 %411, label %412, label %417

412:                                              ; preds = %402
  %413 = load ptr, ptr %21, align 8, !tbaa !5
  %414 = load i64, ptr %413, align 8, !tbaa !9
  %415 = add nsw i64 %414, 10
  %416 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %415, ptr %416, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %96, align 4
  br label %1836

417:                                              ; preds = %402
  br label %418

418:                                              ; preds = %417, %399
  %419 = load ptr, ptr %21, align 8, !tbaa !5
  %420 = load ptr, ptr %21, align 8, !tbaa !5
  %421 = load ptr, ptr %24, align 8, !tbaa !5
  %422 = load i64, ptr %39, align 8, !tbaa !9
  %423 = getelementptr inbounds float, ptr %421, i64 %422
  %424 = load ptr, ptr %25, align 8, !tbaa !5
  %425 = load ptr, ptr %33, align 8, !tbaa !5
  %426 = getelementptr inbounds float, ptr %425, i64 1
  %427 = call double @slange_(ptr noundef @.str.10, ptr noundef %419, ptr noundef %420, ptr noundef %423, ptr noundef %424, ptr noundef %426)
  %428 = fptrunc double %427 to float
  store float %428, ptr %63, align 4, !tbaa !11
  %429 = load float, ptr %63, align 4, !tbaa !11
  store float %429, ptr %71, align 4, !tbaa !11
  store float 1.000000e+00, ptr %72, align 4, !tbaa !11
  %430 = load float, ptr %63, align 4, !tbaa !11
  %431 = fcmp olt float %430, 1.000000e+00
  br i1 %431, label %432, label %443

432:                                              ; preds = %418
  %433 = load float, ptr %85, align 4, !tbaa !11
  %434 = load float, ptr %63, align 4, !tbaa !11
  %435 = fmul float %433, %434
  %436 = fcmp olt float %435, 1.000000e+00
  br i1 %436, label %437, label %442

437:                                              ; preds = %432
  %438 = load float, ptr %84, align 4, !tbaa !11
  store float %438, ptr %71, align 4, !tbaa !11
  %439 = load float, ptr %85, align 4, !tbaa !11
  %440 = load float, ptr %63, align 4, !tbaa !11
  %441 = fmul float %439, %440
  store float %441, ptr %72, align 4, !tbaa !11
  br label %442

442:                                              ; preds = %437, %432
  br label %443

443:                                              ; preds = %442, %418
  %444 = load float, ptr %63, align 4, !tbaa !11
  %445 = fcmp ogt float %444, 0.000000e+00
  br i1 %445, label %446, label %462

446:                                              ; preds = %443
  %447 = load ptr, ptr %21, align 8, !tbaa !5
  %448 = load ptr, ptr %21, align 8, !tbaa !5
  %449 = load ptr, ptr %24, align 8, !tbaa !5
  %450 = load i64, ptr %39, align 8, !tbaa !9
  %451 = getelementptr inbounds float, ptr %449, i64 %450
  %452 = load ptr, ptr %25, align 8, !tbaa !5
  %453 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %63, ptr noundef @c_b27, ptr noundef %447, ptr noundef %448, ptr noundef %451, ptr noundef %452, ptr noundef %78)
  %454 = load i64, ptr %78, align 8, !tbaa !9
  %455 = icmp ne i64 %454, 0
  br i1 %455, label %456, label %461

456:                                              ; preds = %446
  %457 = load ptr, ptr %21, align 8, !tbaa !5
  %458 = load i64, ptr %457, align 8, !tbaa !9
  %459 = add nsw i64 %458, 10
  %460 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %459, ptr %460, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %96, align 4
  br label %1836

461:                                              ; preds = %446
  br label %462

462:                                              ; preds = %461, %443
  store i64 1, ptr %77, align 8, !tbaa !9
  %463 = load ptr, ptr %21, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = add nsw i64 %464, 1
  store i64 %465, ptr %89, align 8, !tbaa !9
  %466 = load i64, ptr %89, align 8, !tbaa !9
  %467 = load ptr, ptr %21, align 8, !tbaa !5
  %468 = load i64, ptr %467, align 8, !tbaa !9
  %469 = add nsw i64 %466, %468
  store i64 %469, ptr %80, align 8, !tbaa !9
  %470 = load ptr, ptr %21, align 8, !tbaa !5
  %471 = load ptr, ptr %22, align 8, !tbaa !5
  %472 = load i64, ptr %37, align 8, !tbaa !9
  %473 = getelementptr inbounds float, ptr %471, i64 %472
  %474 = load ptr, ptr %23, align 8, !tbaa !5
  %475 = load ptr, ptr %24, align 8, !tbaa !5
  %476 = load i64, ptr %39, align 8, !tbaa !9
  %477 = getelementptr inbounds float, ptr %475, i64 %476
  %478 = load ptr, ptr %25, align 8, !tbaa !5
  %479 = load ptr, ptr %33, align 8, !tbaa !5
  %480 = load i64, ptr %77, align 8, !tbaa !9
  %481 = getelementptr inbounds float, ptr %479, i64 %480
  %482 = load ptr, ptr %33, align 8, !tbaa !5
  %483 = load i64, ptr %89, align 8, !tbaa !9
  %484 = getelementptr inbounds float, ptr %482, i64 %483
  %485 = load ptr, ptr %33, align 8, !tbaa !5
  %486 = load i64, ptr %80, align 8, !tbaa !9
  %487 = getelementptr inbounds float, ptr %485, i64 %486
  %488 = call i32 @sggbal_(ptr noundef @.str.12, ptr noundef %470, ptr noundef %473, ptr noundef %474, ptr noundef %477, ptr noundef %478, ptr noundef %58, ptr noundef %57, ptr noundef %481, ptr noundef %484, ptr noundef %487, ptr noundef %78)
  %489 = load i64, ptr %78, align 8, !tbaa !9
  %490 = icmp ne i64 %489, 0
  br i1 %490, label %491, label %496

491:                                              ; preds = %462
  %492 = load ptr, ptr %21, align 8, !tbaa !5
  %493 = load i64, ptr %492, align 8, !tbaa !9
  %494 = add nsw i64 %493, 1
  %495 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %494, ptr %495, align 8, !tbaa !9
  br label %1831

496:                                              ; preds = %462
  %497 = load i64, ptr %57, align 8, !tbaa !9
  %498 = add nsw i64 %497, 1
  %499 = load i64, ptr %58, align 8, !tbaa !9
  %500 = sub nsw i64 %498, %499
  store i64 %500, ptr %81, align 8, !tbaa !9
  %501 = load i64, ptr %60, align 8, !tbaa !9
  %502 = icmp ne i64 %501, 0
  br i1 %502, label %503, label %509

503:                                              ; preds = %496
  %504 = load ptr, ptr %21, align 8, !tbaa !5
  %505 = load i64, ptr %504, align 8, !tbaa !9
  %506 = add nsw i64 %505, 1
  %507 = load i64, ptr %58, align 8, !tbaa !9
  %508 = sub nsw i64 %506, %507
  store i64 %508, ptr %79, align 8, !tbaa !9
  br label %511

509:                                              ; preds = %496
  %510 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %510, ptr %79, align 8, !tbaa !9
  br label %511

511:                                              ; preds = %509, %503
  %512 = load i64, ptr %80, align 8, !tbaa !9
  store i64 %512, ptr %64, align 8, !tbaa !9
  %513 = load i64, ptr %64, align 8, !tbaa !9
  %514 = load i64, ptr %81, align 8, !tbaa !9
  %515 = add nsw i64 %513, %514
  store i64 %515, ptr %80, align 8, !tbaa !9
  %516 = load ptr, ptr %34, align 8, !tbaa !5
  %517 = load i64, ptr %516, align 8, !tbaa !9
  %518 = add nsw i64 %517, 1
  %519 = load i64, ptr %80, align 8, !tbaa !9
  %520 = sub nsw i64 %518, %519
  store i64 %520, ptr %44, align 8, !tbaa !9
  %521 = load ptr, ptr %24, align 8, !tbaa !5
  %522 = load i64, ptr %58, align 8, !tbaa !9
  %523 = load i64, ptr %58, align 8, !tbaa !9
  %524 = load i64, ptr %38, align 8, !tbaa !9
  %525 = mul nsw i64 %523, %524
  %526 = add nsw i64 %522, %525
  %527 = getelementptr inbounds float, ptr %521, i64 %526
  %528 = load ptr, ptr %25, align 8, !tbaa !5
  %529 = load ptr, ptr %33, align 8, !tbaa !5
  %530 = load i64, ptr %64, align 8, !tbaa !9
  %531 = getelementptr inbounds float, ptr %529, i64 %530
  %532 = load ptr, ptr %33, align 8, !tbaa !5
  %533 = load i64, ptr %80, align 8, !tbaa !9
  %534 = getelementptr inbounds float, ptr %532, i64 %533
  %535 = call i32 @sgeqrf_(ptr noundef %81, ptr noundef %79, ptr noundef %527, ptr noundef %528, ptr noundef %531, ptr noundef %534, ptr noundef %44, ptr noundef %78)
  %536 = load i64, ptr %78, align 8, !tbaa !9
  %537 = icmp sge i64 %536, 0
  br i1 %537, label %538, label %557

538:                                              ; preds = %511
  %539 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %539, ptr %44, align 8, !tbaa !9
  %540 = load ptr, ptr %33, align 8, !tbaa !5
  %541 = load i64, ptr %80, align 8, !tbaa !9
  %542 = getelementptr inbounds float, ptr %540, i64 %541
  %543 = load float, ptr %542, align 4, !tbaa !11
  %544 = fptosi float %543 to i64
  %545 = load i64, ptr %80, align 8, !tbaa !9
  %546 = add nsw i64 %544, %545
  %547 = sub nsw i64 %546, 1
  store i64 %547, ptr %45, align 8, !tbaa !9
  %548 = load i64, ptr %44, align 8, !tbaa !9
  %549 = load i64, ptr %45, align 8, !tbaa !9
  %550 = icmp sge i64 %548, %549
  br i1 %550, label %551, label %553

551:                                              ; preds = %538
  %552 = load i64, ptr %44, align 8, !tbaa !9
  br label %555

553:                                              ; preds = %538
  %554 = load i64, ptr %45, align 8, !tbaa !9
  br label %555

555:                                              ; preds = %553, %551
  %556 = phi i64 [ %552, %551 ], [ %554, %553 ]
  store i64 %556, ptr %94, align 8, !tbaa !9
  br label %557

557:                                              ; preds = %555, %511
  %558 = load i64, ptr %78, align 8, !tbaa !9
  %559 = icmp ne i64 %558, 0
  br i1 %559, label %560, label %565

560:                                              ; preds = %557
  %561 = load ptr, ptr %21, align 8, !tbaa !5
  %562 = load i64, ptr %561, align 8, !tbaa !9
  %563 = add nsw i64 %562, 2
  %564 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %563, ptr %564, align 8, !tbaa !9
  br label %1831

565:                                              ; preds = %557
  %566 = load ptr, ptr %34, align 8, !tbaa !5
  %567 = load i64, ptr %566, align 8, !tbaa !9
  %568 = add nsw i64 %567, 1
  %569 = load i64, ptr %80, align 8, !tbaa !9
  %570 = sub nsw i64 %568, %569
  store i64 %570, ptr %44, align 8, !tbaa !9
  %571 = load ptr, ptr %24, align 8, !tbaa !5
  %572 = load i64, ptr %58, align 8, !tbaa !9
  %573 = load i64, ptr %58, align 8, !tbaa !9
  %574 = load i64, ptr %38, align 8, !tbaa !9
  %575 = mul nsw i64 %573, %574
  %576 = add nsw i64 %572, %575
  %577 = getelementptr inbounds float, ptr %571, i64 %576
  %578 = load ptr, ptr %25, align 8, !tbaa !5
  %579 = load ptr, ptr %33, align 8, !tbaa !5
  %580 = load i64, ptr %64, align 8, !tbaa !9
  %581 = getelementptr inbounds float, ptr %579, i64 %580
  %582 = load ptr, ptr %22, align 8, !tbaa !5
  %583 = load i64, ptr %58, align 8, !tbaa !9
  %584 = load i64, ptr %58, align 8, !tbaa !9
  %585 = load i64, ptr %36, align 8, !tbaa !9
  %586 = mul nsw i64 %584, %585
  %587 = add nsw i64 %583, %586
  %588 = getelementptr inbounds float, ptr %582, i64 %587
  %589 = load ptr, ptr %23, align 8, !tbaa !5
  %590 = load ptr, ptr %33, align 8, !tbaa !5
  %591 = load i64, ptr %80, align 8, !tbaa !9
  %592 = getelementptr inbounds float, ptr %590, i64 %591
  %593 = call i32 @sormqr_(ptr noundef @.str.13, ptr noundef @.str.14, ptr noundef %81, ptr noundef %79, ptr noundef %81, ptr noundef %577, ptr noundef %578, ptr noundef %581, ptr noundef %588, ptr noundef %589, ptr noundef %592, ptr noundef %44, ptr noundef %78)
  %594 = load i64, ptr %78, align 8, !tbaa !9
  %595 = icmp sge i64 %594, 0
  br i1 %595, label %596, label %615

596:                                              ; preds = %565
  %597 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %597, ptr %44, align 8, !tbaa !9
  %598 = load ptr, ptr %33, align 8, !tbaa !5
  %599 = load i64, ptr %80, align 8, !tbaa !9
  %600 = getelementptr inbounds float, ptr %598, i64 %599
  %601 = load float, ptr %600, align 4, !tbaa !11
  %602 = fptosi float %601 to i64
  %603 = load i64, ptr %80, align 8, !tbaa !9
  %604 = add nsw i64 %602, %603
  %605 = sub nsw i64 %604, 1
  store i64 %605, ptr %45, align 8, !tbaa !9
  %606 = load i64, ptr %44, align 8, !tbaa !9
  %607 = load i64, ptr %45, align 8, !tbaa !9
  %608 = icmp sge i64 %606, %607
  br i1 %608, label %609, label %611

609:                                              ; preds = %596
  %610 = load i64, ptr %44, align 8, !tbaa !9
  br label %613

611:                                              ; preds = %596
  %612 = load i64, ptr %45, align 8, !tbaa !9
  br label %613

613:                                              ; preds = %611, %609
  %614 = phi i64 [ %610, %609 ], [ %612, %611 ]
  store i64 %614, ptr %94, align 8, !tbaa !9
  br label %615

615:                                              ; preds = %613, %565
  %616 = load i64, ptr %78, align 8, !tbaa !9
  %617 = icmp ne i64 %616, 0
  br i1 %617, label %618, label %623

618:                                              ; preds = %615
  %619 = load ptr, ptr %21, align 8, !tbaa !5
  %620 = load i64, ptr %619, align 8, !tbaa !9
  %621 = add nsw i64 %620, 3
  %622 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %621, ptr %622, align 8, !tbaa !9
  br label %1831

623:                                              ; preds = %615
  %624 = load i64, ptr %66, align 8, !tbaa !9
  %625 = icmp ne i64 %624, 0
  br i1 %625, label %626, label %707

626:                                              ; preds = %623
  %627 = load ptr, ptr %21, align 8, !tbaa !5
  %628 = load ptr, ptr %21, align 8, !tbaa !5
  %629 = load ptr, ptr %29, align 8, !tbaa !5
  %630 = load i64, ptr %41, align 8, !tbaa !9
  %631 = getelementptr inbounds float, ptr %629, i64 %630
  %632 = load ptr, ptr %30, align 8, !tbaa !5
  %633 = call i32 @slaset_(ptr noundef @.str.15, ptr noundef %627, ptr noundef %628, ptr noundef @c_b38, ptr noundef @c_b27, ptr noundef %631, ptr noundef %632)
  %634 = load i64, ptr %81, align 8, !tbaa !9
  %635 = sub nsw i64 %634, 1
  store i64 %635, ptr %44, align 8, !tbaa !9
  %636 = load i64, ptr %81, align 8, !tbaa !9
  %637 = sub nsw i64 %636, 1
  store i64 %637, ptr %45, align 8, !tbaa !9
  %638 = load ptr, ptr %24, align 8, !tbaa !5
  %639 = load i64, ptr %58, align 8, !tbaa !9
  %640 = add nsw i64 %639, 1
  %641 = load i64, ptr %58, align 8, !tbaa !9
  %642 = load i64, ptr %38, align 8, !tbaa !9
  %643 = mul nsw i64 %641, %642
  %644 = add nsw i64 %640, %643
  %645 = getelementptr inbounds float, ptr %638, i64 %644
  %646 = load ptr, ptr %25, align 8, !tbaa !5
  %647 = load ptr, ptr %29, align 8, !tbaa !5
  %648 = load i64, ptr %58, align 8, !tbaa !9
  %649 = add nsw i64 %648, 1
  %650 = load i64, ptr %58, align 8, !tbaa !9
  %651 = load i64, ptr %40, align 8, !tbaa !9
  %652 = mul nsw i64 %650, %651
  %653 = add nsw i64 %649, %652
  %654 = getelementptr inbounds float, ptr %647, i64 %653
  %655 = load ptr, ptr %30, align 8, !tbaa !5
  %656 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %44, ptr noundef %45, ptr noundef %645, ptr noundef %646, ptr noundef %654, ptr noundef %655)
  %657 = load ptr, ptr %34, align 8, !tbaa !5
  %658 = load i64, ptr %657, align 8, !tbaa !9
  %659 = add nsw i64 %658, 1
  %660 = load i64, ptr %80, align 8, !tbaa !9
  %661 = sub nsw i64 %659, %660
  store i64 %661, ptr %44, align 8, !tbaa !9
  %662 = load ptr, ptr %29, align 8, !tbaa !5
  %663 = load i64, ptr %58, align 8, !tbaa !9
  %664 = load i64, ptr %58, align 8, !tbaa !9
  %665 = load i64, ptr %40, align 8, !tbaa !9
  %666 = mul nsw i64 %664, %665
  %667 = add nsw i64 %663, %666
  %668 = getelementptr inbounds float, ptr %662, i64 %667
  %669 = load ptr, ptr %30, align 8, !tbaa !5
  %670 = load ptr, ptr %33, align 8, !tbaa !5
  %671 = load i64, ptr %64, align 8, !tbaa !9
  %672 = getelementptr inbounds float, ptr %670, i64 %671
  %673 = load ptr, ptr %33, align 8, !tbaa !5
  %674 = load i64, ptr %80, align 8, !tbaa !9
  %675 = getelementptr inbounds float, ptr %673, i64 %674
  %676 = call i32 @sorgqr_(ptr noundef %81, ptr noundef %81, ptr noundef %81, ptr noundef %668, ptr noundef %669, ptr noundef %672, ptr noundef %675, ptr noundef %44, ptr noundef %78)
  %677 = load i64, ptr %78, align 8, !tbaa !9
  %678 = icmp sge i64 %677, 0
  br i1 %678, label %679, label %698

679:                                              ; preds = %626
  %680 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %680, ptr %44, align 8, !tbaa !9
  %681 = load ptr, ptr %33, align 8, !tbaa !5
  %682 = load i64, ptr %80, align 8, !tbaa !9
  %683 = getelementptr inbounds float, ptr %681, i64 %682
  %684 = load float, ptr %683, align 4, !tbaa !11
  %685 = fptosi float %684 to i64
  %686 = load i64, ptr %80, align 8, !tbaa !9
  %687 = add nsw i64 %685, %686
  %688 = sub nsw i64 %687, 1
  store i64 %688, ptr %45, align 8, !tbaa !9
  %689 = load i64, ptr %44, align 8, !tbaa !9
  %690 = load i64, ptr %45, align 8, !tbaa !9
  %691 = icmp sge i64 %689, %690
  br i1 %691, label %692, label %694

692:                                              ; preds = %679
  %693 = load i64, ptr %44, align 8, !tbaa !9
  br label %696

694:                                              ; preds = %679
  %695 = load i64, ptr %45, align 8, !tbaa !9
  br label %696

696:                                              ; preds = %694, %692
  %697 = phi i64 [ %693, %692 ], [ %695, %694 ]
  store i64 %697, ptr %94, align 8, !tbaa !9
  br label %698

698:                                              ; preds = %696, %626
  %699 = load i64, ptr %78, align 8, !tbaa !9
  %700 = icmp ne i64 %699, 0
  br i1 %700, label %701, label %706

701:                                              ; preds = %698
  %702 = load ptr, ptr %21, align 8, !tbaa !5
  %703 = load i64, ptr %702, align 8, !tbaa !9
  %704 = add nsw i64 %703, 4
  %705 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %704, ptr %705, align 8, !tbaa !9
  br label %1831

706:                                              ; preds = %698
  br label %707

707:                                              ; preds = %706, %623
  %708 = load i64, ptr %67, align 8, !tbaa !9
  %709 = icmp ne i64 %708, 0
  br i1 %709, label %710, label %718

710:                                              ; preds = %707
  %711 = load ptr, ptr %21, align 8, !tbaa !5
  %712 = load ptr, ptr %21, align 8, !tbaa !5
  %713 = load ptr, ptr %31, align 8, !tbaa !5
  %714 = load i64, ptr %43, align 8, !tbaa !9
  %715 = getelementptr inbounds float, ptr %713, i64 %714
  %716 = load ptr, ptr %32, align 8, !tbaa !5
  %717 = call i32 @slaset_(ptr noundef @.str.15, ptr noundef %711, ptr noundef %712, ptr noundef @c_b38, ptr noundef @c_b27, ptr noundef %715, ptr noundef %716)
  br label %718

718:                                              ; preds = %710, %707
  %719 = load i64, ptr %60, align 8, !tbaa !9
  %720 = icmp ne i64 %719, 0
  br i1 %720, label %721, label %742

721:                                              ; preds = %718
  %722 = load ptr, ptr %19, align 8, !tbaa !5
  %723 = load ptr, ptr %20, align 8, !tbaa !5
  %724 = load ptr, ptr %21, align 8, !tbaa !5
  %725 = load ptr, ptr %22, align 8, !tbaa !5
  %726 = load i64, ptr %37, align 8, !tbaa !9
  %727 = getelementptr inbounds float, ptr %725, i64 %726
  %728 = load ptr, ptr %23, align 8, !tbaa !5
  %729 = load ptr, ptr %24, align 8, !tbaa !5
  %730 = load i64, ptr %39, align 8, !tbaa !9
  %731 = getelementptr inbounds float, ptr %729, i64 %730
  %732 = load ptr, ptr %25, align 8, !tbaa !5
  %733 = load ptr, ptr %29, align 8, !tbaa !5
  %734 = load i64, ptr %41, align 8, !tbaa !9
  %735 = getelementptr inbounds float, ptr %733, i64 %734
  %736 = load ptr, ptr %30, align 8, !tbaa !5
  %737 = load ptr, ptr %31, align 8, !tbaa !5
  %738 = load i64, ptr %43, align 8, !tbaa !9
  %739 = getelementptr inbounds float, ptr %737, i64 %738
  %740 = load ptr, ptr %32, align 8, !tbaa !5
  %741 = call i32 @sgghrd_(ptr noundef %722, ptr noundef %723, ptr noundef %724, ptr noundef %58, ptr noundef %57, ptr noundef %727, ptr noundef %728, ptr noundef %731, ptr noundef %732, ptr noundef %735, ptr noundef %736, ptr noundef %739, ptr noundef %740, ptr noundef %78)
  br label %768

742:                                              ; preds = %718
  %743 = load ptr, ptr %22, align 8, !tbaa !5
  %744 = load i64, ptr %58, align 8, !tbaa !9
  %745 = load i64, ptr %58, align 8, !tbaa !9
  %746 = load i64, ptr %36, align 8, !tbaa !9
  %747 = mul nsw i64 %745, %746
  %748 = add nsw i64 %744, %747
  %749 = getelementptr inbounds float, ptr %743, i64 %748
  %750 = load ptr, ptr %23, align 8, !tbaa !5
  %751 = load ptr, ptr %24, align 8, !tbaa !5
  %752 = load i64, ptr %58, align 8, !tbaa !9
  %753 = load i64, ptr %58, align 8, !tbaa !9
  %754 = load i64, ptr %38, align 8, !tbaa !9
  %755 = mul nsw i64 %753, %754
  %756 = add nsw i64 %752, %755
  %757 = getelementptr inbounds float, ptr %751, i64 %756
  %758 = load ptr, ptr %25, align 8, !tbaa !5
  %759 = load ptr, ptr %29, align 8, !tbaa !5
  %760 = load i64, ptr %41, align 8, !tbaa !9
  %761 = getelementptr inbounds float, ptr %759, i64 %760
  %762 = load ptr, ptr %30, align 8, !tbaa !5
  %763 = load ptr, ptr %31, align 8, !tbaa !5
  %764 = load i64, ptr %43, align 8, !tbaa !9
  %765 = getelementptr inbounds float, ptr %763, i64 %764
  %766 = load ptr, ptr %32, align 8, !tbaa !5
  %767 = call i32 @sgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %81, ptr noundef @c__1, ptr noundef %81, ptr noundef %749, ptr noundef %750, ptr noundef %757, ptr noundef %758, ptr noundef %761, ptr noundef %762, ptr noundef %765, ptr noundef %766, ptr noundef %78)
  br label %768

768:                                              ; preds = %742, %721
  %769 = load i64, ptr %78, align 8, !tbaa !9
  %770 = icmp ne i64 %769, 0
  br i1 %770, label %771, label %776

771:                                              ; preds = %768
  %772 = load ptr, ptr %21, align 8, !tbaa !5
  %773 = load i64, ptr %772, align 8, !tbaa !9
  %774 = add nsw i64 %773, 5
  %775 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %774, ptr %775, align 8, !tbaa !9
  br label %1831

776:                                              ; preds = %768
  %777 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %777, ptr %80, align 8, !tbaa !9
  %778 = load i64, ptr %60, align 8, !tbaa !9
  %779 = icmp ne i64 %778, 0
  br i1 %779, label %780, label %782

780:                                              ; preds = %776
  %781 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  store i8 83, ptr %781, align 1, !tbaa !13
  br label %784

782:                                              ; preds = %776
  %783 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  store i8 69, ptr %783, align 1, !tbaa !13
  br label %784

784:                                              ; preds = %782, %780
  %785 = load ptr, ptr %34, align 8, !tbaa !5
  %786 = load i64, ptr %785, align 8, !tbaa !9
  %787 = add nsw i64 %786, 1
  %788 = load i64, ptr %80, align 8, !tbaa !9
  %789 = sub nsw i64 %787, %788
  store i64 %789, ptr %44, align 8, !tbaa !9
  %790 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  %791 = load ptr, ptr %19, align 8, !tbaa !5
  %792 = load ptr, ptr %20, align 8, !tbaa !5
  %793 = load ptr, ptr %21, align 8, !tbaa !5
  %794 = load ptr, ptr %22, align 8, !tbaa !5
  %795 = load i64, ptr %37, align 8, !tbaa !9
  %796 = getelementptr inbounds float, ptr %794, i64 %795
  %797 = load ptr, ptr %23, align 8, !tbaa !5
  %798 = load ptr, ptr %24, align 8, !tbaa !5
  %799 = load i64, ptr %39, align 8, !tbaa !9
  %800 = getelementptr inbounds float, ptr %798, i64 %799
  %801 = load ptr, ptr %25, align 8, !tbaa !5
  %802 = load ptr, ptr %26, align 8, !tbaa !5
  %803 = getelementptr inbounds float, ptr %802, i64 1
  %804 = load ptr, ptr %27, align 8, !tbaa !5
  %805 = getelementptr inbounds float, ptr %804, i64 1
  %806 = load ptr, ptr %28, align 8, !tbaa !5
  %807 = getelementptr inbounds float, ptr %806, i64 1
  %808 = load ptr, ptr %29, align 8, !tbaa !5
  %809 = load i64, ptr %41, align 8, !tbaa !9
  %810 = getelementptr inbounds float, ptr %808, i64 %809
  %811 = load ptr, ptr %30, align 8, !tbaa !5
  %812 = load ptr, ptr %31, align 8, !tbaa !5
  %813 = load i64, ptr %43, align 8, !tbaa !9
  %814 = getelementptr inbounds float, ptr %812, i64 %813
  %815 = load ptr, ptr %32, align 8, !tbaa !5
  %816 = load ptr, ptr %33, align 8, !tbaa !5
  %817 = load i64, ptr %80, align 8, !tbaa !9
  %818 = getelementptr inbounds float, ptr %816, i64 %817
  %819 = call i32 @shgeqz_(ptr noundef %790, ptr noundef %791, ptr noundef %792, ptr noundef %793, ptr noundef %58, ptr noundef %57, ptr noundef %796, ptr noundef %797, ptr noundef %800, ptr noundef %801, ptr noundef %803, ptr noundef %805, ptr noundef %807, ptr noundef %810, ptr noundef %811, ptr noundef %814, ptr noundef %815, ptr noundef %818, ptr noundef %44, ptr noundef %78)
  %820 = load i64, ptr %78, align 8, !tbaa !9
  %821 = icmp sge i64 %820, 0
  br i1 %821, label %822, label %841

822:                                              ; preds = %784
  %823 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %823, ptr %44, align 8, !tbaa !9
  %824 = load ptr, ptr %33, align 8, !tbaa !5
  %825 = load i64, ptr %80, align 8, !tbaa !9
  %826 = getelementptr inbounds float, ptr %824, i64 %825
  %827 = load float, ptr %826, align 4, !tbaa !11
  %828 = fptosi float %827 to i64
  %829 = load i64, ptr %80, align 8, !tbaa !9
  %830 = add nsw i64 %828, %829
  %831 = sub nsw i64 %830, 1
  store i64 %831, ptr %45, align 8, !tbaa !9
  %832 = load i64, ptr %44, align 8, !tbaa !9
  %833 = load i64, ptr %45, align 8, !tbaa !9
  %834 = icmp sge i64 %832, %833
  br i1 %834, label %835, label %837

835:                                              ; preds = %822
  %836 = load i64, ptr %44, align 8, !tbaa !9
  br label %839

837:                                              ; preds = %822
  %838 = load i64, ptr %45, align 8, !tbaa !9
  br label %839

839:                                              ; preds = %837, %835
  %840 = phi i64 [ %836, %835 ], [ %838, %837 ]
  store i64 %840, ptr %94, align 8, !tbaa !9
  br label %841

841:                                              ; preds = %839, %784
  %842 = load i64, ptr %78, align 8, !tbaa !9
  %843 = icmp ne i64 %842, 0
  br i1 %843, label %844, label %879

844:                                              ; preds = %841
  %845 = load i64, ptr %78, align 8, !tbaa !9
  %846 = icmp sgt i64 %845, 0
  br i1 %846, label %847, label %855

847:                                              ; preds = %844
  %848 = load i64, ptr %78, align 8, !tbaa !9
  %849 = load ptr, ptr %21, align 8, !tbaa !5
  %850 = load i64, ptr %849, align 8, !tbaa !9
  %851 = icmp sle i64 %848, %850
  br i1 %851, label %852, label %855

852:                                              ; preds = %847
  %853 = load i64, ptr %78, align 8, !tbaa !9
  %854 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %853, ptr %854, align 8, !tbaa !9
  br label %878

855:                                              ; preds = %847, %844
  %856 = load i64, ptr %78, align 8, !tbaa !9
  %857 = load ptr, ptr %21, align 8, !tbaa !5
  %858 = load i64, ptr %857, align 8, !tbaa !9
  %859 = icmp sgt i64 %856, %858
  br i1 %859, label %860, label %872

860:                                              ; preds = %855
  %861 = load i64, ptr %78, align 8, !tbaa !9
  %862 = load ptr, ptr %21, align 8, !tbaa !5
  %863 = load i64, ptr %862, align 8, !tbaa !9
  %864 = shl i64 %863, 1
  %865 = icmp sle i64 %861, %864
  br i1 %865, label %866, label %872

866:                                              ; preds = %860
  %867 = load i64, ptr %78, align 8, !tbaa !9
  %868 = load ptr, ptr %21, align 8, !tbaa !5
  %869 = load i64, ptr %868, align 8, !tbaa !9
  %870 = sub nsw i64 %867, %869
  %871 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %870, ptr %871, align 8, !tbaa !9
  br label %877

872:                                              ; preds = %860, %855
  %873 = load ptr, ptr %21, align 8, !tbaa !5
  %874 = load i64, ptr %873, align 8, !tbaa !9
  %875 = add nsw i64 %874, 6
  %876 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %875, ptr %876, align 8, !tbaa !9
  br label %877

877:                                              ; preds = %872, %866
  br label %878

878:                                              ; preds = %877, %852
  br label %1831

879:                                              ; preds = %841
  %880 = load i64, ptr %60, align 8, !tbaa !9
  %881 = icmp ne i64 %880, 0
  br i1 %881, label %882, label %1376

882:                                              ; preds = %879
  %883 = load i64, ptr %66, align 8, !tbaa !9
  %884 = icmp ne i64 %883, 0
  br i1 %884, label %885, label %893

885:                                              ; preds = %882
  %886 = load i64, ptr %67, align 8, !tbaa !9
  %887 = icmp ne i64 %886, 0
  br i1 %887, label %888, label %890

888:                                              ; preds = %885
  %889 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  store i8 66, ptr %889, align 1, !tbaa !13
  br label %892

890:                                              ; preds = %885
  %891 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  store i8 76, ptr %891, align 1, !tbaa !13
  br label %892

892:                                              ; preds = %890, %888
  br label %895

893:                                              ; preds = %882
  %894 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  store i8 82, ptr %894, align 1, !tbaa !13
  br label %895

895:                                              ; preds = %893, %892
  %896 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  %897 = getelementptr inbounds [1 x i64], ptr %87, i64 0, i64 0
  %898 = load ptr, ptr %21, align 8, !tbaa !5
  %899 = load ptr, ptr %22, align 8, !tbaa !5
  %900 = load i64, ptr %37, align 8, !tbaa !9
  %901 = getelementptr inbounds float, ptr %899, i64 %900
  %902 = load ptr, ptr %23, align 8, !tbaa !5
  %903 = load ptr, ptr %24, align 8, !tbaa !5
  %904 = load i64, ptr %39, align 8, !tbaa !9
  %905 = getelementptr inbounds float, ptr %903, i64 %904
  %906 = load ptr, ptr %25, align 8, !tbaa !5
  %907 = load ptr, ptr %29, align 8, !tbaa !5
  %908 = load i64, ptr %41, align 8, !tbaa !9
  %909 = getelementptr inbounds float, ptr %907, i64 %908
  %910 = load ptr, ptr %30, align 8, !tbaa !5
  %911 = load ptr, ptr %31, align 8, !tbaa !5
  %912 = load i64, ptr %43, align 8, !tbaa !9
  %913 = getelementptr inbounds float, ptr %911, i64 %912
  %914 = load ptr, ptr %32, align 8, !tbaa !5
  %915 = load ptr, ptr %21, align 8, !tbaa !5
  %916 = load ptr, ptr %33, align 8, !tbaa !5
  %917 = load i64, ptr %80, align 8, !tbaa !9
  %918 = getelementptr inbounds float, ptr %916, i64 %917
  %919 = call i32 @stgevc_(ptr noundef %896, ptr noundef @.str.8, ptr noundef %897, ptr noundef %898, ptr noundef %901, ptr noundef %902, ptr noundef %905, ptr noundef %906, ptr noundef %909, ptr noundef %910, ptr noundef %913, ptr noundef %914, ptr noundef %915, ptr noundef %52, ptr noundef %918, ptr noundef %78)
  %920 = load i64, ptr %78, align 8, !tbaa !9
  %921 = icmp ne i64 %920, 0
  br i1 %921, label %922, label %927

922:                                              ; preds = %895
  %923 = load ptr, ptr %21, align 8, !tbaa !5
  %924 = load i64, ptr %923, align 8, !tbaa !9
  %925 = add nsw i64 %924, 7
  %926 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %925, ptr %926, align 8, !tbaa !9
  br label %1831

927:                                              ; preds = %895
  %928 = load i64, ptr %66, align 8, !tbaa !9
  %929 = icmp ne i64 %928, 0
  br i1 %929, label %930, label %1151

930:                                              ; preds = %927
  %931 = load ptr, ptr %21, align 8, !tbaa !5
  %932 = load ptr, ptr %33, align 8, !tbaa !5
  %933 = load i64, ptr %77, align 8, !tbaa !9
  %934 = getelementptr inbounds float, ptr %932, i64 %933
  %935 = load ptr, ptr %33, align 8, !tbaa !5
  %936 = load i64, ptr %89, align 8, !tbaa !9
  %937 = getelementptr inbounds float, ptr %935, i64 %936
  %938 = load ptr, ptr %21, align 8, !tbaa !5
  %939 = load ptr, ptr %29, align 8, !tbaa !5
  %940 = load i64, ptr %41, align 8, !tbaa !9
  %941 = getelementptr inbounds float, ptr %939, i64 %940
  %942 = load ptr, ptr %30, align 8, !tbaa !5
  %943 = call i32 @sggbak_(ptr noundef @.str.12, ptr noundef @.str.13, ptr noundef %931, ptr noundef %58, ptr noundef %57, ptr noundef %934, ptr noundef %937, ptr noundef %938, ptr noundef %941, ptr noundef %942, ptr noundef %78)
  %944 = load i64, ptr %78, align 8, !tbaa !9
  %945 = icmp ne i64 %944, 0
  br i1 %945, label %946, label %951

946:                                              ; preds = %930
  %947 = load ptr, ptr %21, align 8, !tbaa !5
  %948 = load i64, ptr %947, align 8, !tbaa !9
  %949 = add nsw i64 %948, 8
  %950 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %949, ptr %950, align 8, !tbaa !9
  br label %1831

951:                                              ; preds = %930
  %952 = load ptr, ptr %21, align 8, !tbaa !5
  %953 = load i64, ptr %952, align 8, !tbaa !9
  store i64 %953, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %954

954:                                              ; preds = %1147, %951
  %955 = load i64, ptr %50, align 8, !tbaa !9
  %956 = load i64, ptr %44, align 8, !tbaa !9
  %957 = icmp sle i64 %955, %956
  br i1 %957, label %958, label %1150

958:                                              ; preds = %954
  %959 = load ptr, ptr %27, align 8, !tbaa !5
  %960 = load i64, ptr %50, align 8, !tbaa !9
  %961 = getelementptr inbounds float, ptr %959, i64 %960
  %962 = load float, ptr %961, align 4, !tbaa !11
  %963 = fcmp olt float %962, 0.000000e+00
  br i1 %963, label %964, label %965

964:                                              ; preds = %958
  br label %1146

965:                                              ; preds = %958
  store float 0.000000e+00, ptr %65, align 4, !tbaa !11
  %966 = load ptr, ptr %27, align 8, !tbaa !5
  %967 = load i64, ptr %50, align 8, !tbaa !9
  %968 = getelementptr inbounds float, ptr %966, i64 %967
  %969 = load float, ptr %968, align 4, !tbaa !11
  %970 = fcmp oeq float %969, 0.000000e+00
  br i1 %970, label %971, label %1014

971:                                              ; preds = %965
  %972 = load ptr, ptr %21, align 8, !tbaa !5
  %973 = load i64, ptr %972, align 8, !tbaa !9
  store i64 %973, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %974

974:                                              ; preds = %1010, %971
  %975 = load i64, ptr %53, align 8, !tbaa !9
  %976 = load i64, ptr %45, align 8, !tbaa !9
  %977 = icmp sle i64 %975, %976
  br i1 %977, label %978, label %1013

978:                                              ; preds = %974
  %979 = load float, ptr %65, align 4, !tbaa !11
  store float %979, ptr %47, align 4, !tbaa !11
  %980 = load ptr, ptr %29, align 8, !tbaa !5
  %981 = load i64, ptr %53, align 8, !tbaa !9
  %982 = load i64, ptr %50, align 8, !tbaa !9
  %983 = load i64, ptr %40, align 8, !tbaa !9
  %984 = mul nsw i64 %982, %983
  %985 = add nsw i64 %981, %984
  %986 = getelementptr inbounds float, ptr %980, i64 %985
  %987 = load float, ptr %986, align 4, !tbaa !11
  store float %987, ptr %46, align 4, !tbaa !11
  %988 = load float, ptr %46, align 4, !tbaa !11
  %989 = fcmp oge float %988, 0.000000e+00
  br i1 %989, label %990, label %992

990:                                              ; preds = %978
  %991 = load float, ptr %46, align 4, !tbaa !11
  br label %995

992:                                              ; preds = %978
  %993 = load float, ptr %46, align 4, !tbaa !11
  %994 = fneg float %993
  br label %995

995:                                              ; preds = %992, %990
  %996 = phi float [ %991, %990 ], [ %994, %992 ]
  %997 = fpext float %996 to double
  %998 = fptrunc double %997 to float
  store float %998, ptr %48, align 4, !tbaa !11
  %999 = load float, ptr %47, align 4, !tbaa !11
  %1000 = load float, ptr %48, align 4, !tbaa !11
  %1001 = fcmp oge float %999, %1000
  br i1 %1001, label %1002, label %1004

1002:                                             ; preds = %995
  %1003 = load float, ptr %47, align 4, !tbaa !11
  br label %1006

1004:                                             ; preds = %995
  %1005 = load float, ptr %48, align 4, !tbaa !11
  br label %1006

1006:                                             ; preds = %1004, %1002
  %1007 = phi float [ %1003, %1002 ], [ %1005, %1004 ]
  %1008 = fpext float %1007 to double
  %1009 = fptrunc double %1008 to float
  store float %1009, ptr %65, align 4, !tbaa !11
  br label %1010

1010:                                             ; preds = %1006
  %1011 = load i64, ptr %53, align 8, !tbaa !9
  %1012 = add nsw i64 %1011, 1
  store i64 %1012, ptr %53, align 8, !tbaa !9
  br label %974, !llvm.loop !14

1013:                                             ; preds = %974
  br label %1077

1014:                                             ; preds = %965
  %1015 = load ptr, ptr %21, align 8, !tbaa !5
  %1016 = load i64, ptr %1015, align 8, !tbaa !9
  store i64 %1016, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %1017

1017:                                             ; preds = %1073, %1014
  %1018 = load i64, ptr %53, align 8, !tbaa !9
  %1019 = load i64, ptr %45, align 8, !tbaa !9
  %1020 = icmp sle i64 %1018, %1019
  br i1 %1020, label %1021, label %1076

1021:                                             ; preds = %1017
  %1022 = load float, ptr %65, align 4, !tbaa !11
  store float %1022, ptr %48, align 4, !tbaa !11
  %1023 = load ptr, ptr %29, align 8, !tbaa !5
  %1024 = load i64, ptr %53, align 8, !tbaa !9
  %1025 = load i64, ptr %50, align 8, !tbaa !9
  %1026 = load i64, ptr %40, align 8, !tbaa !9
  %1027 = mul nsw i64 %1025, %1026
  %1028 = add nsw i64 %1024, %1027
  %1029 = getelementptr inbounds float, ptr %1023, i64 %1028
  %1030 = load float, ptr %1029, align 4, !tbaa !11
  store float %1030, ptr %46, align 4, !tbaa !11
  %1031 = load float, ptr %46, align 4, !tbaa !11
  %1032 = fcmp oge float %1031, 0.000000e+00
  br i1 %1032, label %1033, label %1035

1033:                                             ; preds = %1021
  %1034 = load float, ptr %46, align 4, !tbaa !11
  br label %1038

1035:                                             ; preds = %1021
  %1036 = load float, ptr %46, align 4, !tbaa !11
  %1037 = fneg float %1036
  br label %1038

1038:                                             ; preds = %1035, %1033
  %1039 = phi float [ %1034, %1033 ], [ %1037, %1035 ]
  %1040 = fpext float %1039 to double
  %1041 = load ptr, ptr %29, align 8, !tbaa !5
  %1042 = load i64, ptr %53, align 8, !tbaa !9
  %1043 = load i64, ptr %50, align 8, !tbaa !9
  %1044 = add nsw i64 %1043, 1
  %1045 = load i64, ptr %40, align 8, !tbaa !9
  %1046 = mul nsw i64 %1044, %1045
  %1047 = add nsw i64 %1042, %1046
  %1048 = getelementptr inbounds float, ptr %1041, i64 %1047
  %1049 = load float, ptr %1048, align 4, !tbaa !11
  store float %1049, ptr %47, align 4, !tbaa !11
  %1050 = load float, ptr %47, align 4, !tbaa !11
  %1051 = fcmp oge float %1050, 0.000000e+00
  br i1 %1051, label %1052, label %1054

1052:                                             ; preds = %1038
  %1053 = load float, ptr %47, align 4, !tbaa !11
  br label %1057

1054:                                             ; preds = %1038
  %1055 = load float, ptr %47, align 4, !tbaa !11
  %1056 = fneg float %1055
  br label %1057

1057:                                             ; preds = %1054, %1052
  %1058 = phi float [ %1053, %1052 ], [ %1056, %1054 ]
  %1059 = fpext float %1058 to double
  %1060 = fadd double %1040, %1059
  %1061 = fptrunc double %1060 to float
  store float %1061, ptr %49, align 4, !tbaa !11
  %1062 = load float, ptr %48, align 4, !tbaa !11
  %1063 = load float, ptr %49, align 4, !tbaa !11
  %1064 = fcmp oge float %1062, %1063
  br i1 %1064, label %1065, label %1067

1065:                                             ; preds = %1057
  %1066 = load float, ptr %48, align 4, !tbaa !11
  br label %1069

1067:                                             ; preds = %1057
  %1068 = load float, ptr %49, align 4, !tbaa !11
  br label %1069

1069:                                             ; preds = %1067, %1065
  %1070 = phi float [ %1066, %1065 ], [ %1068, %1067 ]
  %1071 = fpext float %1070 to double
  %1072 = fptrunc double %1071 to float
  store float %1072, ptr %65, align 4, !tbaa !11
  br label %1073

1073:                                             ; preds = %1069
  %1074 = load i64, ptr %53, align 8, !tbaa !9
  %1075 = add nsw i64 %1074, 1
  store i64 %1075, ptr %53, align 8, !tbaa !9
  br label %1017, !llvm.loop !16

1076:                                             ; preds = %1017
  br label %1077

1077:                                             ; preds = %1076, %1013
  %1078 = load float, ptr %65, align 4, !tbaa !11
  %1079 = load float, ptr %84, align 4, !tbaa !11
  %1080 = fcmp olt float %1078, %1079
  br i1 %1080, label %1081, label %1082

1081:                                             ; preds = %1077
  br label %1146

1082:                                             ; preds = %1077
  %1083 = load float, ptr %65, align 4, !tbaa !11
  %1084 = fdiv float 1.000000e+00, %1083
  store float %1084, ptr %65, align 4, !tbaa !11
  %1085 = load ptr, ptr %27, align 8, !tbaa !5
  %1086 = load i64, ptr %50, align 8, !tbaa !9
  %1087 = getelementptr inbounds float, ptr %1085, i64 %1086
  %1088 = load float, ptr %1087, align 4, !tbaa !11
  %1089 = fcmp oeq float %1088, 0.000000e+00
  br i1 %1089, label %1090, label %1112

1090:                                             ; preds = %1082
  %1091 = load ptr, ptr %21, align 8, !tbaa !5
  %1092 = load i64, ptr %1091, align 8, !tbaa !9
  store i64 %1092, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %1093

1093:                                             ; preds = %1108, %1090
  %1094 = load i64, ptr %53, align 8, !tbaa !9
  %1095 = load i64, ptr %45, align 8, !tbaa !9
  %1096 = icmp sle i64 %1094, %1095
  br i1 %1096, label %1097, label %1111

1097:                                             ; preds = %1093
  %1098 = load float, ptr %65, align 4, !tbaa !11
  %1099 = load ptr, ptr %29, align 8, !tbaa !5
  %1100 = load i64, ptr %53, align 8, !tbaa !9
  %1101 = load i64, ptr %50, align 8, !tbaa !9
  %1102 = load i64, ptr %40, align 8, !tbaa !9
  %1103 = mul nsw i64 %1101, %1102
  %1104 = add nsw i64 %1100, %1103
  %1105 = getelementptr inbounds float, ptr %1099, i64 %1104
  %1106 = load float, ptr %1105, align 4, !tbaa !11
  %1107 = fmul float %1106, %1098
  store float %1107, ptr %1105, align 4, !tbaa !11
  br label %1108

1108:                                             ; preds = %1097
  %1109 = load i64, ptr %53, align 8, !tbaa !9
  %1110 = add nsw i64 %1109, 1
  store i64 %1110, ptr %53, align 8, !tbaa !9
  br label %1093, !llvm.loop !17

1111:                                             ; preds = %1093
  br label %1145

1112:                                             ; preds = %1082
  %1113 = load ptr, ptr %21, align 8, !tbaa !5
  %1114 = load i64, ptr %1113, align 8, !tbaa !9
  store i64 %1114, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %1115

1115:                                             ; preds = %1141, %1112
  %1116 = load i64, ptr %53, align 8, !tbaa !9
  %1117 = load i64, ptr %45, align 8, !tbaa !9
  %1118 = icmp sle i64 %1116, %1117
  br i1 %1118, label %1119, label %1144

1119:                                             ; preds = %1115
  %1120 = load float, ptr %65, align 4, !tbaa !11
  %1121 = load ptr, ptr %29, align 8, !tbaa !5
  %1122 = load i64, ptr %53, align 8, !tbaa !9
  %1123 = load i64, ptr %50, align 8, !tbaa !9
  %1124 = load i64, ptr %40, align 8, !tbaa !9
  %1125 = mul nsw i64 %1123, %1124
  %1126 = add nsw i64 %1122, %1125
  %1127 = getelementptr inbounds float, ptr %1121, i64 %1126
  %1128 = load float, ptr %1127, align 4, !tbaa !11
  %1129 = fmul float %1128, %1120
  store float %1129, ptr %1127, align 4, !tbaa !11
  %1130 = load float, ptr %65, align 4, !tbaa !11
  %1131 = load ptr, ptr %29, align 8, !tbaa !5
  %1132 = load i64, ptr %53, align 8, !tbaa !9
  %1133 = load i64, ptr %50, align 8, !tbaa !9
  %1134 = add nsw i64 %1133, 1
  %1135 = load i64, ptr %40, align 8, !tbaa !9
  %1136 = mul nsw i64 %1134, %1135
  %1137 = add nsw i64 %1132, %1136
  %1138 = getelementptr inbounds float, ptr %1131, i64 %1137
  %1139 = load float, ptr %1138, align 4, !tbaa !11
  %1140 = fmul float %1139, %1130
  store float %1140, ptr %1138, align 4, !tbaa !11
  br label %1141

1141:                                             ; preds = %1119
  %1142 = load i64, ptr %53, align 8, !tbaa !9
  %1143 = add nsw i64 %1142, 1
  store i64 %1143, ptr %53, align 8, !tbaa !9
  br label %1115, !llvm.loop !18

1144:                                             ; preds = %1115
  br label %1145

1145:                                             ; preds = %1144, %1111
  br label %1146

1146:                                             ; preds = %1145, %1081, %964
  br label %1147

1147:                                             ; preds = %1146
  %1148 = load i64, ptr %50, align 8, !tbaa !9
  %1149 = add nsw i64 %1148, 1
  store i64 %1149, ptr %50, align 8, !tbaa !9
  br label %954, !llvm.loop !19

1150:                                             ; preds = %954
  br label %1151

1151:                                             ; preds = %1150, %927
  %1152 = load i64, ptr %67, align 8, !tbaa !9
  %1153 = icmp ne i64 %1152, 0
  br i1 %1153, label %1154, label %1375

1154:                                             ; preds = %1151
  %1155 = load ptr, ptr %21, align 8, !tbaa !5
  %1156 = load ptr, ptr %33, align 8, !tbaa !5
  %1157 = load i64, ptr %77, align 8, !tbaa !9
  %1158 = getelementptr inbounds float, ptr %1156, i64 %1157
  %1159 = load ptr, ptr %33, align 8, !tbaa !5
  %1160 = load i64, ptr %89, align 8, !tbaa !9
  %1161 = getelementptr inbounds float, ptr %1159, i64 %1160
  %1162 = load ptr, ptr %21, align 8, !tbaa !5
  %1163 = load ptr, ptr %31, align 8, !tbaa !5
  %1164 = load i64, ptr %43, align 8, !tbaa !9
  %1165 = getelementptr inbounds float, ptr %1163, i64 %1164
  %1166 = load ptr, ptr %32, align 8, !tbaa !5
  %1167 = call i32 @sggbak_(ptr noundef @.str.12, ptr noundef @.str.16, ptr noundef %1155, ptr noundef %58, ptr noundef %57, ptr noundef %1158, ptr noundef %1161, ptr noundef %1162, ptr noundef %1165, ptr noundef %1166, ptr noundef %78)
  %1168 = load i64, ptr %78, align 8, !tbaa !9
  %1169 = icmp ne i64 %1168, 0
  br i1 %1169, label %1170, label %1175

1170:                                             ; preds = %1154
  %1171 = load ptr, ptr %21, align 8, !tbaa !5
  %1172 = load i64, ptr %1171, align 8, !tbaa !9
  %1173 = add nsw i64 %1172, 9
  %1174 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %1173, ptr %1174, align 8, !tbaa !9
  br label %1831

1175:                                             ; preds = %1154
  %1176 = load ptr, ptr %21, align 8, !tbaa !5
  %1177 = load i64, ptr %1176, align 8, !tbaa !9
  store i64 %1177, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %1178

1178:                                             ; preds = %1371, %1175
  %1179 = load i64, ptr %50, align 8, !tbaa !9
  %1180 = load i64, ptr %44, align 8, !tbaa !9
  %1181 = icmp sle i64 %1179, %1180
  br i1 %1181, label %1182, label %1374

1182:                                             ; preds = %1178
  %1183 = load ptr, ptr %27, align 8, !tbaa !5
  %1184 = load i64, ptr %50, align 8, !tbaa !9
  %1185 = getelementptr inbounds float, ptr %1183, i64 %1184
  %1186 = load float, ptr %1185, align 4, !tbaa !11
  %1187 = fcmp olt float %1186, 0.000000e+00
  br i1 %1187, label %1188, label %1189

1188:                                             ; preds = %1182
  br label %1370

1189:                                             ; preds = %1182
  store float 0.000000e+00, ptr %65, align 4, !tbaa !11
  %1190 = load ptr, ptr %27, align 8, !tbaa !5
  %1191 = load i64, ptr %50, align 8, !tbaa !9
  %1192 = getelementptr inbounds float, ptr %1190, i64 %1191
  %1193 = load float, ptr %1192, align 4, !tbaa !11
  %1194 = fcmp oeq float %1193, 0.000000e+00
  br i1 %1194, label %1195, label %1238

1195:                                             ; preds = %1189
  %1196 = load ptr, ptr %21, align 8, !tbaa !5
  %1197 = load i64, ptr %1196, align 8, !tbaa !9
  store i64 %1197, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %1198

1198:                                             ; preds = %1234, %1195
  %1199 = load i64, ptr %53, align 8, !tbaa !9
  %1200 = load i64, ptr %45, align 8, !tbaa !9
  %1201 = icmp sle i64 %1199, %1200
  br i1 %1201, label %1202, label %1237

1202:                                             ; preds = %1198
  %1203 = load float, ptr %65, align 4, !tbaa !11
  store float %1203, ptr %47, align 4, !tbaa !11
  %1204 = load ptr, ptr %31, align 8, !tbaa !5
  %1205 = load i64, ptr %53, align 8, !tbaa !9
  %1206 = load i64, ptr %50, align 8, !tbaa !9
  %1207 = load i64, ptr %42, align 8, !tbaa !9
  %1208 = mul nsw i64 %1206, %1207
  %1209 = add nsw i64 %1205, %1208
  %1210 = getelementptr inbounds float, ptr %1204, i64 %1209
  %1211 = load float, ptr %1210, align 4, !tbaa !11
  store float %1211, ptr %46, align 4, !tbaa !11
  %1212 = load float, ptr %46, align 4, !tbaa !11
  %1213 = fcmp oge float %1212, 0.000000e+00
  br i1 %1213, label %1214, label %1216

1214:                                             ; preds = %1202
  %1215 = load float, ptr %46, align 4, !tbaa !11
  br label %1219

1216:                                             ; preds = %1202
  %1217 = load float, ptr %46, align 4, !tbaa !11
  %1218 = fneg float %1217
  br label %1219

1219:                                             ; preds = %1216, %1214
  %1220 = phi float [ %1215, %1214 ], [ %1218, %1216 ]
  %1221 = fpext float %1220 to double
  %1222 = fptrunc double %1221 to float
  store float %1222, ptr %48, align 4, !tbaa !11
  %1223 = load float, ptr %47, align 4, !tbaa !11
  %1224 = load float, ptr %48, align 4, !tbaa !11
  %1225 = fcmp oge float %1223, %1224
  br i1 %1225, label %1226, label %1228

1226:                                             ; preds = %1219
  %1227 = load float, ptr %47, align 4, !tbaa !11
  br label %1230

1228:                                             ; preds = %1219
  %1229 = load float, ptr %48, align 4, !tbaa !11
  br label %1230

1230:                                             ; preds = %1228, %1226
  %1231 = phi float [ %1227, %1226 ], [ %1229, %1228 ]
  %1232 = fpext float %1231 to double
  %1233 = fptrunc double %1232 to float
  store float %1233, ptr %65, align 4, !tbaa !11
  br label %1234

1234:                                             ; preds = %1230
  %1235 = load i64, ptr %53, align 8, !tbaa !9
  %1236 = add nsw i64 %1235, 1
  store i64 %1236, ptr %53, align 8, !tbaa !9
  br label %1198, !llvm.loop !20

1237:                                             ; preds = %1198
  br label %1301

1238:                                             ; preds = %1189
  %1239 = load ptr, ptr %21, align 8, !tbaa !5
  %1240 = load i64, ptr %1239, align 8, !tbaa !9
  store i64 %1240, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %1241

1241:                                             ; preds = %1297, %1238
  %1242 = load i64, ptr %53, align 8, !tbaa !9
  %1243 = load i64, ptr %45, align 8, !tbaa !9
  %1244 = icmp sle i64 %1242, %1243
  br i1 %1244, label %1245, label %1300

1245:                                             ; preds = %1241
  %1246 = load float, ptr %65, align 4, !tbaa !11
  store float %1246, ptr %48, align 4, !tbaa !11
  %1247 = load ptr, ptr %31, align 8, !tbaa !5
  %1248 = load i64, ptr %53, align 8, !tbaa !9
  %1249 = load i64, ptr %50, align 8, !tbaa !9
  %1250 = load i64, ptr %42, align 8, !tbaa !9
  %1251 = mul nsw i64 %1249, %1250
  %1252 = add nsw i64 %1248, %1251
  %1253 = getelementptr inbounds float, ptr %1247, i64 %1252
  %1254 = load float, ptr %1253, align 4, !tbaa !11
  store float %1254, ptr %46, align 4, !tbaa !11
  %1255 = load float, ptr %46, align 4, !tbaa !11
  %1256 = fcmp oge float %1255, 0.000000e+00
  br i1 %1256, label %1257, label %1259

1257:                                             ; preds = %1245
  %1258 = load float, ptr %46, align 4, !tbaa !11
  br label %1262

1259:                                             ; preds = %1245
  %1260 = load float, ptr %46, align 4, !tbaa !11
  %1261 = fneg float %1260
  br label %1262

1262:                                             ; preds = %1259, %1257
  %1263 = phi float [ %1258, %1257 ], [ %1261, %1259 ]
  %1264 = fpext float %1263 to double
  %1265 = load ptr, ptr %31, align 8, !tbaa !5
  %1266 = load i64, ptr %53, align 8, !tbaa !9
  %1267 = load i64, ptr %50, align 8, !tbaa !9
  %1268 = add nsw i64 %1267, 1
  %1269 = load i64, ptr %42, align 8, !tbaa !9
  %1270 = mul nsw i64 %1268, %1269
  %1271 = add nsw i64 %1266, %1270
  %1272 = getelementptr inbounds float, ptr %1265, i64 %1271
  %1273 = load float, ptr %1272, align 4, !tbaa !11
  store float %1273, ptr %47, align 4, !tbaa !11
  %1274 = load float, ptr %47, align 4, !tbaa !11
  %1275 = fcmp oge float %1274, 0.000000e+00
  br i1 %1275, label %1276, label %1278

1276:                                             ; preds = %1262
  %1277 = load float, ptr %47, align 4, !tbaa !11
  br label %1281

1278:                                             ; preds = %1262
  %1279 = load float, ptr %47, align 4, !tbaa !11
  %1280 = fneg float %1279
  br label %1281

1281:                                             ; preds = %1278, %1276
  %1282 = phi float [ %1277, %1276 ], [ %1280, %1278 ]
  %1283 = fpext float %1282 to double
  %1284 = fadd double %1264, %1283
  %1285 = fptrunc double %1284 to float
  store float %1285, ptr %49, align 4, !tbaa !11
  %1286 = load float, ptr %48, align 4, !tbaa !11
  %1287 = load float, ptr %49, align 4, !tbaa !11
  %1288 = fcmp oge float %1286, %1287
  br i1 %1288, label %1289, label %1291

1289:                                             ; preds = %1281
  %1290 = load float, ptr %48, align 4, !tbaa !11
  br label %1293

1291:                                             ; preds = %1281
  %1292 = load float, ptr %49, align 4, !tbaa !11
  br label %1293

1293:                                             ; preds = %1291, %1289
  %1294 = phi float [ %1290, %1289 ], [ %1292, %1291 ]
  %1295 = fpext float %1294 to double
  %1296 = fptrunc double %1295 to float
  store float %1296, ptr %65, align 4, !tbaa !11
  br label %1297

1297:                                             ; preds = %1293
  %1298 = load i64, ptr %53, align 8, !tbaa !9
  %1299 = add nsw i64 %1298, 1
  store i64 %1299, ptr %53, align 8, !tbaa !9
  br label %1241, !llvm.loop !21

1300:                                             ; preds = %1241
  br label %1301

1301:                                             ; preds = %1300, %1237
  %1302 = load float, ptr %65, align 4, !tbaa !11
  %1303 = load float, ptr %84, align 4, !tbaa !11
  %1304 = fcmp olt float %1302, %1303
  br i1 %1304, label %1305, label %1306

1305:                                             ; preds = %1301
  br label %1370

1306:                                             ; preds = %1301
  %1307 = load float, ptr %65, align 4, !tbaa !11
  %1308 = fdiv float 1.000000e+00, %1307
  store float %1308, ptr %65, align 4, !tbaa !11
  %1309 = load ptr, ptr %27, align 8, !tbaa !5
  %1310 = load i64, ptr %50, align 8, !tbaa !9
  %1311 = getelementptr inbounds float, ptr %1309, i64 %1310
  %1312 = load float, ptr %1311, align 4, !tbaa !11
  %1313 = fcmp oeq float %1312, 0.000000e+00
  br i1 %1313, label %1314, label %1336

1314:                                             ; preds = %1306
  %1315 = load ptr, ptr %21, align 8, !tbaa !5
  %1316 = load i64, ptr %1315, align 8, !tbaa !9
  store i64 %1316, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %1317

1317:                                             ; preds = %1332, %1314
  %1318 = load i64, ptr %53, align 8, !tbaa !9
  %1319 = load i64, ptr %45, align 8, !tbaa !9
  %1320 = icmp sle i64 %1318, %1319
  br i1 %1320, label %1321, label %1335

1321:                                             ; preds = %1317
  %1322 = load float, ptr %65, align 4, !tbaa !11
  %1323 = load ptr, ptr %31, align 8, !tbaa !5
  %1324 = load i64, ptr %53, align 8, !tbaa !9
  %1325 = load i64, ptr %50, align 8, !tbaa !9
  %1326 = load i64, ptr %42, align 8, !tbaa !9
  %1327 = mul nsw i64 %1325, %1326
  %1328 = add nsw i64 %1324, %1327
  %1329 = getelementptr inbounds float, ptr %1323, i64 %1328
  %1330 = load float, ptr %1329, align 4, !tbaa !11
  %1331 = fmul float %1330, %1322
  store float %1331, ptr %1329, align 4, !tbaa !11
  br label %1332

1332:                                             ; preds = %1321
  %1333 = load i64, ptr %53, align 8, !tbaa !9
  %1334 = add nsw i64 %1333, 1
  store i64 %1334, ptr %53, align 8, !tbaa !9
  br label %1317, !llvm.loop !22

1335:                                             ; preds = %1317
  br label %1369

1336:                                             ; preds = %1306
  %1337 = load ptr, ptr %21, align 8, !tbaa !5
  %1338 = load i64, ptr %1337, align 8, !tbaa !9
  store i64 %1338, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %1339

1339:                                             ; preds = %1365, %1336
  %1340 = load i64, ptr %53, align 8, !tbaa !9
  %1341 = load i64, ptr %45, align 8, !tbaa !9
  %1342 = icmp sle i64 %1340, %1341
  br i1 %1342, label %1343, label %1368

1343:                                             ; preds = %1339
  %1344 = load float, ptr %65, align 4, !tbaa !11
  %1345 = load ptr, ptr %31, align 8, !tbaa !5
  %1346 = load i64, ptr %53, align 8, !tbaa !9
  %1347 = load i64, ptr %50, align 8, !tbaa !9
  %1348 = load i64, ptr %42, align 8, !tbaa !9
  %1349 = mul nsw i64 %1347, %1348
  %1350 = add nsw i64 %1346, %1349
  %1351 = getelementptr inbounds float, ptr %1345, i64 %1350
  %1352 = load float, ptr %1351, align 4, !tbaa !11
  %1353 = fmul float %1352, %1344
  store float %1353, ptr %1351, align 4, !tbaa !11
  %1354 = load float, ptr %65, align 4, !tbaa !11
  %1355 = load ptr, ptr %31, align 8, !tbaa !5
  %1356 = load i64, ptr %53, align 8, !tbaa !9
  %1357 = load i64, ptr %50, align 8, !tbaa !9
  %1358 = add nsw i64 %1357, 1
  %1359 = load i64, ptr %42, align 8, !tbaa !9
  %1360 = mul nsw i64 %1358, %1359
  %1361 = add nsw i64 %1356, %1360
  %1362 = getelementptr inbounds float, ptr %1355, i64 %1361
  %1363 = load float, ptr %1362, align 4, !tbaa !11
  %1364 = fmul float %1363, %1354
  store float %1364, ptr %1362, align 4, !tbaa !11
  br label %1365

1365:                                             ; preds = %1343
  %1366 = load i64, ptr %53, align 8, !tbaa !9
  %1367 = add nsw i64 %1366, 1
  store i64 %1367, ptr %53, align 8, !tbaa !9
  br label %1339, !llvm.loop !23

1368:                                             ; preds = %1339
  br label %1369

1369:                                             ; preds = %1368, %1335
  br label %1370

1370:                                             ; preds = %1369, %1305, %1188
  br label %1371

1371:                                             ; preds = %1370
  %1372 = load i64, ptr %50, align 8, !tbaa !9
  %1373 = add nsw i64 %1372, 1
  store i64 %1373, ptr %50, align 8, !tbaa !9
  br label %1178, !llvm.loop !24

1374:                                             ; preds = %1178
  br label %1375

1375:                                             ; preds = %1374, %1151
  br label %1376

1376:                                             ; preds = %1375, %879
  %1377 = load ptr, ptr %21, align 8, !tbaa !5
  %1378 = load i64, ptr %1377, align 8, !tbaa !9
  store i64 %1378, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %50, align 8, !tbaa !9
  br label %1379

1379:                                             ; preds = %1827, %1376
  %1380 = load i64, ptr %50, align 8, !tbaa !9
  %1381 = load i64, ptr %44, align 8, !tbaa !9
  %1382 = icmp sle i64 %1380, %1381
  br i1 %1382, label %1383, label %1830

1383:                                             ; preds = %1379
  %1384 = load ptr, ptr %26, align 8, !tbaa !5
  %1385 = load i64, ptr %50, align 8, !tbaa !9
  %1386 = getelementptr inbounds float, ptr %1384, i64 %1385
  %1387 = load float, ptr %1386, align 4, !tbaa !11
  store float %1387, ptr %46, align 4, !tbaa !11
  %1388 = load float, ptr %46, align 4, !tbaa !11
  %1389 = fcmp oge float %1388, 0.000000e+00
  br i1 %1389, label %1390, label %1392

1390:                                             ; preds = %1383
  %1391 = load float, ptr %46, align 4, !tbaa !11
  br label %1395

1392:                                             ; preds = %1383
  %1393 = load float, ptr %46, align 4, !tbaa !11
  %1394 = fneg float %1393
  br label %1395

1395:                                             ; preds = %1392, %1390
  %1396 = phi float [ %1391, %1390 ], [ %1394, %1392 ]
  %1397 = fpext float %1396 to double
  %1398 = fptrunc double %1397 to float
  store float %1398, ptr %75, align 4, !tbaa !11
  %1399 = load ptr, ptr %27, align 8, !tbaa !5
  %1400 = load i64, ptr %50, align 8, !tbaa !9
  %1401 = getelementptr inbounds float, ptr %1399, i64 %1400
  %1402 = load float, ptr %1401, align 4, !tbaa !11
  store float %1402, ptr %46, align 4, !tbaa !11
  %1403 = load float, ptr %46, align 4, !tbaa !11
  %1404 = fcmp oge float %1403, 0.000000e+00
  br i1 %1404, label %1405, label %1407

1405:                                             ; preds = %1395
  %1406 = load float, ptr %46, align 4, !tbaa !11
  br label %1410

1407:                                             ; preds = %1395
  %1408 = load float, ptr %46, align 4, !tbaa !11
  %1409 = fneg float %1408
  br label %1410

1410:                                             ; preds = %1407, %1405
  %1411 = phi float [ %1406, %1405 ], [ %1409, %1407 ]
  %1412 = fpext float %1411 to double
  %1413 = fptrunc double %1412 to float
  store float %1413, ptr %73, align 4, !tbaa !11
  %1414 = load ptr, ptr %28, align 8, !tbaa !5
  %1415 = load i64, ptr %50, align 8, !tbaa !9
  %1416 = getelementptr inbounds float, ptr %1414, i64 %1415
  %1417 = load float, ptr %1416, align 4, !tbaa !11
  store float %1417, ptr %46, align 4, !tbaa !11
  %1418 = load float, ptr %46, align 4, !tbaa !11
  %1419 = fcmp oge float %1418, 0.000000e+00
  br i1 %1419, label %1420, label %1422

1420:                                             ; preds = %1410
  %1421 = load float, ptr %46, align 4, !tbaa !11
  br label %1425

1422:                                             ; preds = %1410
  %1423 = load float, ptr %46, align 4, !tbaa !11
  %1424 = fneg float %1423
  br label %1425

1425:                                             ; preds = %1422, %1420
  %1426 = phi float [ %1421, %1420 ], [ %1424, %1422 ]
  %1427 = fpext float %1426 to double
  %1428 = fptrunc double %1427 to float
  store float %1428, ptr %61, align 4, !tbaa !11
  %1429 = load float, ptr %62, align 4, !tbaa !11
  %1430 = load ptr, ptr %26, align 8, !tbaa !5
  %1431 = load i64, ptr %50, align 8, !tbaa !9
  %1432 = getelementptr inbounds float, ptr %1430, i64 %1431
  %1433 = load float, ptr %1432, align 4, !tbaa !11
  %1434 = fmul float %1429, %1433
  store float %1434, ptr %83, align 4, !tbaa !11
  %1435 = load float, ptr %62, align 4, !tbaa !11
  %1436 = load ptr, ptr %27, align 8, !tbaa !5
  %1437 = load i64, ptr %50, align 8, !tbaa !9
  %1438 = getelementptr inbounds float, ptr %1436, i64 %1437
  %1439 = load float, ptr %1438, align 4, !tbaa !11
  %1440 = fmul float %1435, %1439
  store float %1440, ptr %82, align 4, !tbaa !11
  %1441 = load float, ptr %63, align 4, !tbaa !11
  %1442 = load ptr, ptr %28, align 8, !tbaa !5
  %1443 = load i64, ptr %50, align 8, !tbaa !9
  %1444 = getelementptr inbounds float, ptr %1442, i64 %1443
  %1445 = load float, ptr %1444, align 4, !tbaa !11
  %1446 = fmul float %1441, %1445
  store float %1446, ptr %76, align 4, !tbaa !11
  store i64 0, ptr %90, align 8, !tbaa !9
  store float 1.000000e+00, ptr %74, align 4, !tbaa !11
  %1447 = load float, ptr %84, align 4, !tbaa !11
  store float %1447, ptr %46, align 4, !tbaa !11
  %1448 = load float, ptr %59, align 4, !tbaa !11
  %1449 = load float, ptr %75, align 4, !tbaa !11
  %1450 = fmul float %1448, %1449
  store float %1450, ptr %47, align 4, !tbaa !11
  %1451 = load float, ptr %46, align 4, !tbaa !11
  %1452 = load float, ptr %47, align 4, !tbaa !11
  %1453 = fcmp oge float %1451, %1452
  br i1 %1453, label %1454, label %1456

1454:                                             ; preds = %1425
  %1455 = load float, ptr %46, align 4, !tbaa !11
  br label %1458

1456:                                             ; preds = %1425
  %1457 = load float, ptr %47, align 4, !tbaa !11
  br label %1458

1458:                                             ; preds = %1456, %1454
  %1459 = phi float [ %1455, %1454 ], [ %1457, %1456 ]
  store float %1459, ptr %46, align 4, !tbaa !11
  %1460 = load float, ptr %59, align 4, !tbaa !11
  %1461 = load float, ptr %61, align 4, !tbaa !11
  %1462 = fmul float %1460, %1461
  store float %1462, ptr %47, align 4, !tbaa !11
  %1463 = load float, ptr %82, align 4, !tbaa !11
  %1464 = fcmp oge float %1463, 0.000000e+00
  br i1 %1464, label %1465, label %1467

1465:                                             ; preds = %1458
  %1466 = load float, ptr %82, align 4, !tbaa !11
  br label %1470

1467:                                             ; preds = %1458
  %1468 = load float, ptr %82, align 4, !tbaa !11
  %1469 = fneg float %1468
  br label %1470

1470:                                             ; preds = %1467, %1465
  %1471 = phi float [ %1466, %1465 ], [ %1469, %1467 ]
  %1472 = fpext float %1471 to double
  %1473 = load float, ptr %84, align 4, !tbaa !11
  %1474 = fpext float %1473 to double
  %1475 = fcmp olt double %1472, %1474
  br i1 %1475, label %1476, label %1515

1476:                                             ; preds = %1470
  %1477 = load float, ptr %73, align 4, !tbaa !11
  %1478 = fpext float %1477 to double
  %1479 = load float, ptr %46, align 4, !tbaa !11
  %1480 = load float, ptr %47, align 4, !tbaa !11
  %1481 = fcmp oge float %1479, %1480
  br i1 %1481, label %1482, label %1484

1482:                                             ; preds = %1476
  %1483 = load float, ptr %46, align 4, !tbaa !11
  br label %1486

1484:                                             ; preds = %1476
  %1485 = load float, ptr %47, align 4, !tbaa !11
  br label %1486

1486:                                             ; preds = %1484, %1482
  %1487 = phi float [ %1483, %1482 ], [ %1485, %1484 ]
  %1488 = fpext float %1487 to double
  %1489 = fcmp oge double %1478, %1488
  br i1 %1489, label %1490, label %1515

1490:                                             ; preds = %1486
  store i64 1, ptr %90, align 8, !tbaa !9
  %1491 = load float, ptr %92, align 4, !tbaa !11
  %1492 = load float, ptr %84, align 4, !tbaa !11
  %1493 = fmul float %1491, %1492
  store float %1493, ptr %46, align 4, !tbaa !11
  %1494 = load float, ptr %70, align 4, !tbaa !11
  %1495 = load float, ptr %73, align 4, !tbaa !11
  %1496 = fmul float %1494, %1495
  store float %1496, ptr %47, align 4, !tbaa !11
  %1497 = load float, ptr %92, align 4, !tbaa !11
  %1498 = load float, ptr %84, align 4, !tbaa !11
  %1499 = fmul float %1497, %1498
  %1500 = load float, ptr %69, align 4, !tbaa !11
  %1501 = fdiv float %1499, %1500
  %1502 = fpext float %1501 to double
  %1503 = load float, ptr %46, align 4, !tbaa !11
  %1504 = load float, ptr %47, align 4, !tbaa !11
  %1505 = fcmp oge float %1503, %1504
  br i1 %1505, label %1506, label %1508

1506:                                             ; preds = %1490
  %1507 = load float, ptr %46, align 4, !tbaa !11
  br label %1510

1508:                                             ; preds = %1490
  %1509 = load float, ptr %47, align 4, !tbaa !11
  br label %1510

1510:                                             ; preds = %1508, %1506
  %1511 = phi float [ %1507, %1506 ], [ %1509, %1508 ]
  %1512 = fpext float %1511 to double
  %1513 = fdiv double %1502, %1512
  %1514 = fptrunc double %1513 to float
  store float %1514, ptr %74, align 4, !tbaa !11
  br label %1551

1515:                                             ; preds = %1486, %1470
  %1516 = load float, ptr %82, align 4, !tbaa !11
  %1517 = fcmp oeq float %1516, 0.000000e+00
  br i1 %1517, label %1518, label %1550

1518:                                             ; preds = %1515
  %1519 = load ptr, ptr %27, align 8, !tbaa !5
  %1520 = load i64, ptr %50, align 8, !tbaa !9
  %1521 = getelementptr inbounds float, ptr %1519, i64 %1520
  %1522 = load float, ptr %1521, align 4, !tbaa !11
  %1523 = fcmp olt float %1522, 0.000000e+00
  br i1 %1523, label %1524, label %1532

1524:                                             ; preds = %1518
  %1525 = load i64, ptr %50, align 8, !tbaa !9
  %1526 = icmp sgt i64 %1525, 1
  br i1 %1526, label %1527, label %1532

1527:                                             ; preds = %1524
  %1528 = load ptr, ptr %27, align 8, !tbaa !5
  %1529 = load i64, ptr %50, align 8, !tbaa !9
  %1530 = sub nsw i64 %1529, 1
  %1531 = getelementptr inbounds float, ptr %1528, i64 %1530
  store float 0.000000e+00, ptr %1531, align 4, !tbaa !11
  br label %1549

1532:                                             ; preds = %1524, %1518
  %1533 = load ptr, ptr %27, align 8, !tbaa !5
  %1534 = load i64, ptr %50, align 8, !tbaa !9
  %1535 = getelementptr inbounds float, ptr %1533, i64 %1534
  %1536 = load float, ptr %1535, align 4, !tbaa !11
  %1537 = fcmp ogt float %1536, 0.000000e+00
  br i1 %1537, label %1538, label %1548

1538:                                             ; preds = %1532
  %1539 = load i64, ptr %50, align 8, !tbaa !9
  %1540 = load ptr, ptr %21, align 8, !tbaa !5
  %1541 = load i64, ptr %1540, align 8, !tbaa !9
  %1542 = icmp slt i64 %1539, %1541
  br i1 %1542, label %1543, label %1548

1543:                                             ; preds = %1538
  %1544 = load ptr, ptr %27, align 8, !tbaa !5
  %1545 = load i64, ptr %50, align 8, !tbaa !9
  %1546 = add nsw i64 %1545, 1
  %1547 = getelementptr inbounds float, ptr %1544, i64 %1546
  store float 0.000000e+00, ptr %1547, align 4, !tbaa !11
  br label %1548

1548:                                             ; preds = %1543, %1538, %1532
  br label %1549

1549:                                             ; preds = %1548, %1527
  br label %1550

1550:                                             ; preds = %1549, %1515
  br label %1551

1551:                                             ; preds = %1550, %1510
  %1552 = load float, ptr %84, align 4, !tbaa !11
  store float %1552, ptr %46, align 4, !tbaa !11
  %1553 = load float, ptr %59, align 4, !tbaa !11
  %1554 = load float, ptr %73, align 4, !tbaa !11
  %1555 = fmul float %1553, %1554
  store float %1555, ptr %47, align 4, !tbaa !11
  %1556 = load float, ptr %46, align 4, !tbaa !11
  %1557 = load float, ptr %47, align 4, !tbaa !11
  %1558 = fcmp oge float %1556, %1557
  br i1 %1558, label %1559, label %1561

1559:                                             ; preds = %1551
  %1560 = load float, ptr %46, align 4, !tbaa !11
  br label %1563

1561:                                             ; preds = %1551
  %1562 = load float, ptr %47, align 4, !tbaa !11
  br label %1563

1563:                                             ; preds = %1561, %1559
  %1564 = phi float [ %1560, %1559 ], [ %1562, %1561 ]
  store float %1564, ptr %46, align 4, !tbaa !11
  %1565 = load float, ptr %59, align 4, !tbaa !11
  %1566 = load float, ptr %61, align 4, !tbaa !11
  %1567 = fmul float %1565, %1566
  store float %1567, ptr %47, align 4, !tbaa !11
  %1568 = load float, ptr %83, align 4, !tbaa !11
  %1569 = fcmp oge float %1568, 0.000000e+00
  br i1 %1569, label %1570, label %1572

1570:                                             ; preds = %1563
  %1571 = load float, ptr %83, align 4, !tbaa !11
  br label %1575

1572:                                             ; preds = %1563
  %1573 = load float, ptr %83, align 4, !tbaa !11
  %1574 = fneg float %1573
  br label %1575

1575:                                             ; preds = %1572, %1570
  %1576 = phi float [ %1571, %1570 ], [ %1574, %1572 ]
  %1577 = fpext float %1576 to double
  %1578 = load float, ptr %84, align 4, !tbaa !11
  %1579 = fpext float %1578 to double
  %1580 = fcmp olt double %1577, %1579
  br i1 %1580, label %1581, label %1632

1581:                                             ; preds = %1575
  %1582 = load float, ptr %75, align 4, !tbaa !11
  %1583 = fpext float %1582 to double
  %1584 = load float, ptr %46, align 4, !tbaa !11
  %1585 = load float, ptr %47, align 4, !tbaa !11
  %1586 = fcmp oge float %1584, %1585
  br i1 %1586, label %1587, label %1589

1587:                                             ; preds = %1581
  %1588 = load float, ptr %46, align 4, !tbaa !11
  br label %1591

1589:                                             ; preds = %1581
  %1590 = load float, ptr %47, align 4, !tbaa !11
  br label %1591

1591:                                             ; preds = %1589, %1587
  %1592 = phi float [ %1588, %1587 ], [ %1590, %1589 ]
  %1593 = fpext float %1592 to double
  %1594 = fcmp oge double %1583, %1593
  br i1 %1594, label %1595, label %1632

1595:                                             ; preds = %1591
  store i64 1, ptr %90, align 8, !tbaa !9
  %1596 = load float, ptr %92, align 4, !tbaa !11
  %1597 = load float, ptr %84, align 4, !tbaa !11
  %1598 = fmul float %1596, %1597
  store float %1598, ptr %48, align 4, !tbaa !11
  %1599 = load float, ptr %70, align 4, !tbaa !11
  %1600 = load float, ptr %75, align 4, !tbaa !11
  %1601 = fmul float %1599, %1600
  store float %1601, ptr %49, align 4, !tbaa !11
  %1602 = load float, ptr %74, align 4, !tbaa !11
  store float %1602, ptr %46, align 4, !tbaa !11
  %1603 = load float, ptr %92, align 4, !tbaa !11
  %1604 = load float, ptr %84, align 4, !tbaa !11
  %1605 = fmul float %1603, %1604
  %1606 = load float, ptr %69, align 4, !tbaa !11
  %1607 = fdiv float %1605, %1606
  %1608 = fpext float %1607 to double
  %1609 = load float, ptr %48, align 4, !tbaa !11
  %1610 = load float, ptr %49, align 4, !tbaa !11
  %1611 = fcmp oge float %1609, %1610
  br i1 %1611, label %1612, label %1614

1612:                                             ; preds = %1595
  %1613 = load float, ptr %48, align 4, !tbaa !11
  br label %1616

1614:                                             ; preds = %1595
  %1615 = load float, ptr %49, align 4, !tbaa !11
  br label %1616

1616:                                             ; preds = %1614, %1612
  %1617 = phi float [ %1613, %1612 ], [ %1615, %1614 ]
  %1618 = fpext float %1617 to double
  %1619 = fdiv double %1608, %1618
  %1620 = fptrunc double %1619 to float
  store float %1620, ptr %47, align 4, !tbaa !11
  %1621 = load float, ptr %46, align 4, !tbaa !11
  %1622 = load float, ptr %47, align 4, !tbaa !11
  %1623 = fcmp oge float %1621, %1622
  br i1 %1623, label %1624, label %1626

1624:                                             ; preds = %1616
  %1625 = load float, ptr %46, align 4, !tbaa !11
  br label %1628

1626:                                             ; preds = %1616
  %1627 = load float, ptr %47, align 4, !tbaa !11
  br label %1628

1628:                                             ; preds = %1626, %1624
  %1629 = phi float [ %1625, %1624 ], [ %1627, %1626 ]
  %1630 = fpext float %1629 to double
  %1631 = fptrunc double %1630 to float
  store float %1631, ptr %74, align 4, !tbaa !11
  br label %1632

1632:                                             ; preds = %1628, %1591, %1575
  %1633 = load float, ptr %84, align 4, !tbaa !11
  store float %1633, ptr %46, align 4, !tbaa !11
  %1634 = load float, ptr %59, align 4, !tbaa !11
  %1635 = load float, ptr %75, align 4, !tbaa !11
  %1636 = fmul float %1634, %1635
  store float %1636, ptr %47, align 4, !tbaa !11
  %1637 = load float, ptr %46, align 4, !tbaa !11
  %1638 = load float, ptr %47, align 4, !tbaa !11
  %1639 = fcmp oge float %1637, %1638
  br i1 %1639, label %1640, label %1642

1640:                                             ; preds = %1632
  %1641 = load float, ptr %46, align 4, !tbaa !11
  br label %1644

1642:                                             ; preds = %1632
  %1643 = load float, ptr %47, align 4, !tbaa !11
  br label %1644

1644:                                             ; preds = %1642, %1640
  %1645 = phi float [ %1641, %1640 ], [ %1643, %1642 ]
  store float %1645, ptr %46, align 4, !tbaa !11
  %1646 = load float, ptr %59, align 4, !tbaa !11
  %1647 = load float, ptr %73, align 4, !tbaa !11
  %1648 = fmul float %1646, %1647
  store float %1648, ptr %47, align 4, !tbaa !11
  %1649 = load float, ptr %76, align 4, !tbaa !11
  %1650 = fcmp oge float %1649, 0.000000e+00
  br i1 %1650, label %1651, label %1653

1651:                                             ; preds = %1644
  %1652 = load float, ptr %76, align 4, !tbaa !11
  br label %1656

1653:                                             ; preds = %1644
  %1654 = load float, ptr %76, align 4, !tbaa !11
  %1655 = fneg float %1654
  br label %1656

1656:                                             ; preds = %1653, %1651
  %1657 = phi float [ %1652, %1651 ], [ %1655, %1653 ]
  %1658 = fpext float %1657 to double
  %1659 = load float, ptr %84, align 4, !tbaa !11
  %1660 = fpext float %1659 to double
  %1661 = fcmp olt double %1658, %1660
  br i1 %1661, label %1662, label %1713

1662:                                             ; preds = %1656
  %1663 = load float, ptr %61, align 4, !tbaa !11
  %1664 = fpext float %1663 to double
  %1665 = load float, ptr %46, align 4, !tbaa !11
  %1666 = load float, ptr %47, align 4, !tbaa !11
  %1667 = fcmp oge float %1665, %1666
  br i1 %1667, label %1668, label %1670

1668:                                             ; preds = %1662
  %1669 = load float, ptr %46, align 4, !tbaa !11
  br label %1672

1670:                                             ; preds = %1662
  %1671 = load float, ptr %47, align 4, !tbaa !11
  br label %1672

1672:                                             ; preds = %1670, %1668
  %1673 = phi float [ %1669, %1668 ], [ %1671, %1670 ]
  %1674 = fpext float %1673 to double
  %1675 = fcmp oge double %1664, %1674
  br i1 %1675, label %1676, label %1713

1676:                                             ; preds = %1672
  store i64 1, ptr %90, align 8, !tbaa !9
  %1677 = load float, ptr %92, align 4, !tbaa !11
  %1678 = load float, ptr %84, align 4, !tbaa !11
  %1679 = fmul float %1677, %1678
  store float %1679, ptr %48, align 4, !tbaa !11
  %1680 = load float, ptr %72, align 4, !tbaa !11
  %1681 = load float, ptr %61, align 4, !tbaa !11
  %1682 = fmul float %1680, %1681
  store float %1682, ptr %49, align 4, !tbaa !11
  %1683 = load float, ptr %74, align 4, !tbaa !11
  store float %1683, ptr %46, align 4, !tbaa !11
  %1684 = load float, ptr %92, align 4, !tbaa !11
  %1685 = load float, ptr %84, align 4, !tbaa !11
  %1686 = fmul float %1684, %1685
  %1687 = load float, ptr %71, align 4, !tbaa !11
  %1688 = fdiv float %1686, %1687
  %1689 = fpext float %1688 to double
  %1690 = load float, ptr %48, align 4, !tbaa !11
  %1691 = load float, ptr %49, align 4, !tbaa !11
  %1692 = fcmp oge float %1690, %1691
  br i1 %1692, label %1693, label %1695

1693:                                             ; preds = %1676
  %1694 = load float, ptr %48, align 4, !tbaa !11
  br label %1697

1695:                                             ; preds = %1676
  %1696 = load float, ptr %49, align 4, !tbaa !11
  br label %1697

1697:                                             ; preds = %1695, %1693
  %1698 = phi float [ %1694, %1693 ], [ %1696, %1695 ]
  %1699 = fpext float %1698 to double
  %1700 = fdiv double %1689, %1699
  %1701 = fptrunc double %1700 to float
  store float %1701, ptr %47, align 4, !tbaa !11
  %1702 = load float, ptr %46, align 4, !tbaa !11
  %1703 = load float, ptr %47, align 4, !tbaa !11
  %1704 = fcmp oge float %1702, %1703
  br i1 %1704, label %1705, label %1707

1705:                                             ; preds = %1697
  %1706 = load float, ptr %46, align 4, !tbaa !11
  br label %1709

1707:                                             ; preds = %1697
  %1708 = load float, ptr %47, align 4, !tbaa !11
  br label %1709

1709:                                             ; preds = %1707, %1705
  %1710 = phi float [ %1706, %1705 ], [ %1708, %1707 ]
  %1711 = fpext float %1710 to double
  %1712 = fptrunc double %1711 to float
  store float %1712, ptr %74, align 4, !tbaa !11
  br label %1713

1713:                                             ; preds = %1709, %1672, %1656
  %1714 = load i64, ptr %90, align 8, !tbaa !9
  %1715 = icmp ne i64 %1714, 0
  br i1 %1715, label %1716, label %1786

1716:                                             ; preds = %1713
  %1717 = load float, ptr %83, align 4, !tbaa !11
  %1718 = fcmp oge float %1717, 0.000000e+00
  br i1 %1718, label %1719, label %1721

1719:                                             ; preds = %1716
  %1720 = load float, ptr %83, align 4, !tbaa !11
  br label %1724

1721:                                             ; preds = %1716
  %1722 = load float, ptr %83, align 4, !tbaa !11
  %1723 = fneg float %1722
  br label %1724

1724:                                             ; preds = %1721, %1719
  %1725 = phi float [ %1720, %1719 ], [ %1723, %1721 ]
  %1726 = fpext float %1725 to double
  %1727 = fptrunc double %1726 to float
  store float %1727, ptr %46, align 4, !tbaa !11
  %1728 = load float, ptr %82, align 4, !tbaa !11
  %1729 = fcmp oge float %1728, 0.000000e+00
  br i1 %1729, label %1730, label %1732

1730:                                             ; preds = %1724
  %1731 = load float, ptr %82, align 4, !tbaa !11
  br label %1735

1732:                                             ; preds = %1724
  %1733 = load float, ptr %82, align 4, !tbaa !11
  %1734 = fneg float %1733
  br label %1735

1735:                                             ; preds = %1732, %1730
  %1736 = phi float [ %1731, %1730 ], [ %1734, %1732 ]
  %1737 = fpext float %1736 to double
  %1738 = fptrunc double %1737 to float
  store float %1738, ptr %47, align 4, !tbaa !11
  %1739 = load float, ptr %46, align 4, !tbaa !11
  %1740 = load float, ptr %47, align 4, !tbaa !11
  %1741 = fcmp oge float %1739, %1740
  br i1 %1741, label %1742, label %1744

1742:                                             ; preds = %1735
  %1743 = load float, ptr %46, align 4, !tbaa !11
  br label %1746

1744:                                             ; preds = %1735
  %1745 = load float, ptr %47, align 4, !tbaa !11
  br label %1746

1746:                                             ; preds = %1744, %1742
  %1747 = phi float [ %1743, %1742 ], [ %1745, %1744 ]
  store float %1747, ptr %46, align 4, !tbaa !11
  %1748 = load float, ptr %76, align 4, !tbaa !11
  %1749 = fcmp oge float %1748, 0.000000e+00
  br i1 %1749, label %1750, label %1752

1750:                                             ; preds = %1746
  %1751 = load float, ptr %76, align 4, !tbaa !11
  br label %1755

1752:                                             ; preds = %1746
  %1753 = load float, ptr %76, align 4, !tbaa !11
  %1754 = fneg float %1753
  br label %1755

1755:                                             ; preds = %1752, %1750
  %1756 = phi float [ %1751, %1750 ], [ %1754, %1752 ]
  %1757 = fpext float %1756 to double
  %1758 = fptrunc double %1757 to float
  store float %1758, ptr %47, align 4, !tbaa !11
  %1759 = load float, ptr %74, align 4, !tbaa !11
  %1760 = load float, ptr %84, align 4, !tbaa !11
  %1761 = fmul float %1759, %1760
  %1762 = fpext float %1761 to double
  %1763 = load float, ptr %46, align 4, !tbaa !11
  %1764 = load float, ptr %47, align 4, !tbaa !11
  %1765 = fcmp oge float %1763, %1764
  br i1 %1765, label %1766, label %1768

1766:                                             ; preds = %1755
  %1767 = load float, ptr %46, align 4, !tbaa !11
  br label %1770

1768:                                             ; preds = %1755
  %1769 = load float, ptr %47, align 4, !tbaa !11
  br label %1770

1770:                                             ; preds = %1768, %1766
  %1771 = phi float [ %1767, %1766 ], [ %1769, %1768 ]
  %1772 = fpext float %1771 to double
  %1773 = fmul double %1762, %1772
  %1774 = fptrunc double %1773 to float
  store float %1774, ptr %65, align 4, !tbaa !11
  %1775 = load float, ptr %65, align 4, !tbaa !11
  %1776 = fcmp ogt float %1775, 1.000000e+00
  br i1 %1776, label %1777, label %1781

1777:                                             ; preds = %1770
  %1778 = load float, ptr %65, align 4, !tbaa !11
  %1779 = load float, ptr %74, align 4, !tbaa !11
  %1780 = fdiv float %1779, %1778
  store float %1780, ptr %74, align 4, !tbaa !11
  br label %1781

1781:                                             ; preds = %1777, %1770
  %1782 = load float, ptr %74, align 4, !tbaa !11
  %1783 = fcmp olt float %1782, 1.000000e+00
  br i1 %1783, label %1784, label %1785

1784:                                             ; preds = %1781
  store i64 0, ptr %90, align 8, !tbaa !9
  br label %1785

1785:                                             ; preds = %1784, %1781
  br label %1786

1786:                                             ; preds = %1785, %1713
  %1787 = load i64, ptr %90, align 8, !tbaa !9
  %1788 = icmp ne i64 %1787, 0
  br i1 %1788, label %1789, label %1814

1789:                                             ; preds = %1786
  %1790 = load float, ptr %74, align 4, !tbaa !11
  %1791 = load ptr, ptr %26, align 8, !tbaa !5
  %1792 = load i64, ptr %50, align 8, !tbaa !9
  %1793 = getelementptr inbounds float, ptr %1791, i64 %1792
  %1794 = load float, ptr %1793, align 4, !tbaa !11
  %1795 = fmul float %1790, %1794
  %1796 = load float, ptr %62, align 4, !tbaa !11
  %1797 = fmul float %1795, %1796
  store float %1797, ptr %83, align 4, !tbaa !11
  %1798 = load float, ptr %74, align 4, !tbaa !11
  %1799 = load ptr, ptr %27, align 8, !tbaa !5
  %1800 = load i64, ptr %50, align 8, !tbaa !9
  %1801 = getelementptr inbounds float, ptr %1799, i64 %1800
  %1802 = load float, ptr %1801, align 4, !tbaa !11
  %1803 = fmul float %1798, %1802
  %1804 = load float, ptr %62, align 4, !tbaa !11
  %1805 = fmul float %1803, %1804
  store float %1805, ptr %82, align 4, !tbaa !11
  %1806 = load float, ptr %74, align 4, !tbaa !11
  %1807 = load ptr, ptr %28, align 8, !tbaa !5
  %1808 = load i64, ptr %50, align 8, !tbaa !9
  %1809 = getelementptr inbounds float, ptr %1807, i64 %1808
  %1810 = load float, ptr %1809, align 4, !tbaa !11
  %1811 = fmul float %1806, %1810
  %1812 = load float, ptr %63, align 4, !tbaa !11
  %1813 = fmul float %1811, %1812
  store float %1813, ptr %76, align 4, !tbaa !11
  br label %1814

1814:                                             ; preds = %1789, %1786
  %1815 = load float, ptr %83, align 4, !tbaa !11
  %1816 = load ptr, ptr %26, align 8, !tbaa !5
  %1817 = load i64, ptr %50, align 8, !tbaa !9
  %1818 = getelementptr inbounds float, ptr %1816, i64 %1817
  store float %1815, ptr %1818, align 4, !tbaa !11
  %1819 = load float, ptr %82, align 4, !tbaa !11
  %1820 = load ptr, ptr %27, align 8, !tbaa !5
  %1821 = load i64, ptr %50, align 8, !tbaa !9
  %1822 = getelementptr inbounds float, ptr %1820, i64 %1821
  store float %1819, ptr %1822, align 4, !tbaa !11
  %1823 = load float, ptr %76, align 4, !tbaa !11
  %1824 = load ptr, ptr %28, align 8, !tbaa !5
  %1825 = load i64, ptr %50, align 8, !tbaa !9
  %1826 = getelementptr inbounds float, ptr %1824, i64 %1825
  store float %1823, ptr %1826, align 4, !tbaa !11
  br label %1827

1827:                                             ; preds = %1814
  %1828 = load i64, ptr %50, align 8, !tbaa !9
  %1829 = add nsw i64 %1828, 1
  store i64 %1829, ptr %50, align 8, !tbaa !9
  br label %1379, !llvm.loop !25

1830:                                             ; preds = %1379
  br label %1831

1831:                                             ; preds = %1830, %1170, %946, %922, %878, %771, %701, %618, %560, %491
  %1832 = load i64, ptr %94, align 8, !tbaa !9
  %1833 = sitofp i64 %1832 to float
  %1834 = load ptr, ptr %33, align 8, !tbaa !5
  %1835 = getelementptr inbounds float, ptr %1834, i64 1
  store float %1833, ptr %1835, align 4, !tbaa !11
  store i32 0, ptr %18, align 4
  store i32 1, ptr %96, align 4
  br label %1836

1836:                                             ; preds = %1831, %456, %412, %360, %354, %346
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  %1837 = load i32, ptr %18, align 4
  ret i32 %1837
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

declare i32 @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 i32 @sggbak_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!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}
!25 = distinct !{!25, !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 i64, align 8
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b27 = external hidden global float, align 4
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b38 = external hidden global float, align 4
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

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

47:                                               ; preds = %17
  %48 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not693 = icmp eq i64 %48, 0
  %not..not693 = xor i1 %.not693, true
  br label %49

49:                                               ; preds = %47, %17
  %50 = phi i1 [ false, %17 ], [ %not..not693, %47 ]
  %51 = phi i1 [ false, %17 ], [ %.not693, %47 ]
  %52 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %.not694 = icmp eq i64 %52, 0
  br i1 %.not694, label %53, label %55

53:                                               ; preds = %49
  %54 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %.not695 = icmp eq i64 %54, 0
  %not..not695 = xor i1 %.not695, true
  br label %55

55:                                               ; preds = %53, %49
  %56 = phi i1 [ false, %49 ], [ %not..not695, %53 ]
  %57 = phi i1 [ false, %49 ], [ %.not695, %53 ]
  %58 = or i1 %50, %56
  %59 = load i64, ptr %2, align 8, !tbaa !5
  %60 = shl i64 %59, 3
  %61 = tail call i64 @llvm.smax.i64(i64 %60, i64 1)
  %62 = uitofp nneg i64 %61 to float
  store float %62, ptr %14, align 4, !tbaa !9
  %63 = load i64, ptr %15, align 8, !tbaa !5
  %64 = icmp eq i64 %63, -1
  store i64 0, ptr %16, align 8, !tbaa !5
  %brmerge = select i1 %51, i1 true, i1 %57
  %.mux = select i1 %51, i64 -1, i64 -2
  br i1 %brmerge, label %.thread739.sink.split, label %65

65:                                               ; preds = %55
  %66 = load i64, ptr %2, align 8, !tbaa !5
  %67 = icmp slt i64 %66, 0
  br i1 %67, label %.thread739.sink.split, label %68

68:                                               ; preds = %65
  %69 = load i64, ptr %4, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %66, i64 1)
  %70 = icmp slt i64 %69, %spec.select
  br i1 %70, label %.thread739.sink.split, label %71

71:                                               ; preds = %68
  %72 = load i64, ptr %6, align 8, !tbaa !5
  %73 = icmp slt i64 %72, %spec.select
  br i1 %73, label %.thread739.sink.split, label %74

74:                                               ; preds = %71
  %75 = load i64, ptr %11, align 8, !tbaa !5
  %76 = icmp slt i64 %75, 1
  %77 = icmp ult i64 %75, %66
  %or.cond784 = and i1 %50, %77
  %or.cond787 = select i1 %76, i1 true, i1 %or.cond784
  br i1 %or.cond787, label %.thread739.sink.split, label %78

78:                                               ; preds = %74
  %79 = load i64, ptr %13, align 8, !tbaa !5
  %80 = icmp slt i64 %79, 1
  %81 = icmp ult i64 %79, %66
  %or.cond785 = and i1 %56, %81
  %or.cond788 = select i1 %80, i1 true, i1 %or.cond785
  br i1 %or.cond788, label %.thread739.sink.split, label %82

82:                                               ; preds = %78
  %83 = load i64, ptr %15, align 8, !tbaa !5
  %84 = icmp sge i64 %83, %61
  %or.cond = select i1 %84, i1 true, i1 %64
  br i1 %or.cond, label %.thread, label %.thread739.sink.split

.thread:                                          ; preds = %82
  %85 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  %86 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1) #5
  %87 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1) #5
  %88 = tail call i64 @llvm.smax.i64(i64 %85, i64 %86)
  %89 = tail call i64 @llvm.smax.i64(i64 %88, i64 %87)
  %90 = load i64, ptr %2, align 8, !tbaa !5
  %91 = mul nsw i64 %90, 6
  store i64 %91, ptr %18, align 8, !tbaa !5
  %92 = add nsw i64 %89, 1
  %93 = mul nsw i64 %90, %92
  store i64 %93, ptr %19, align 8, !tbaa !5
  %94 = shl i64 %90, 1
  %95 = tail call i64 @llvm.smax.i64(i64 %91, i64 %93)
  %96 = add nsw i64 %95, %94
  %97 = sitofp i64 %96 to float
  store float %97, ptr %14, align 4, !tbaa !9
  %.pr738.pr = load i64, ptr %16, align 8, !tbaa !5
  %.not699 = icmp eq i64 %.pr738.pr, 0
  br i1 %.not699, label %101, label %.thread739

.thread739.sink.split:                            ; preds = %55, %82, %78, %74, %71, %68, %65
  %.sink = phi i64 [ %.mux, %55 ], [ -3, %65 ], [ -5, %68 ], [ -7, %71 ], [ -12, %74 ], [ -14, %78 ], [ -16, %82 ]
  store i64 %.sink, ptr %16, align 8, !tbaa !5
  br label %.thread739

.thread739:                                       ; preds = %.thread739.sink.split, %.thread
  %98 = phi i64 [ %.pr738.pr, %.thread ], [ %.sink, %.thread739.sink.split ]
  %99 = sub nsw i64 0, %98
  store i64 %99, ptr %18, align 8, !tbaa !5
  %100 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %18) #5
  br label %606

101:                                              ; preds = %.thread
  %102 = icmp eq i64 %90, 0
  %or.cond879 = select i1 %64, i1 true, i1 %102
  br i1 %or.cond879, label %606, label %103

103:                                              ; preds = %101
  %104 = tail call double @slamch_(ptr noundef nonnull @.str.7) #5
  %105 = tail call double @slamch_(ptr noundef nonnull @.str.8) #5
  %106 = fmul double %104, %105
  %107 = fptrunc double %106 to float
  %108 = tail call double @slamch_(ptr noundef nonnull @.str.9) #5
  %109 = fptrunc double %108 to float
  %110 = fadd float %109, %109
  %111 = fdiv float 1.000000e+00, %110
  %112 = tail call float @llvm.fmuladd.f32(float %107, float 4.000000e+00, float 1.000000e+00)
  %113 = tail call double @slange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  %114 = fptrunc double %113 to float
  store float %114, ptr %23, align 4, !tbaa !9
  %115 = fcmp olt float %114, 1.000000e+00
  br i1 %115, label %116, label %120

116:                                              ; preds = %103
  %117 = fmul float %111, %114
  %118 = fcmp olt float %117, 1.000000e+00
  br i1 %118, label %119, label %120

119:                                              ; preds = %116
  br label %120

120:                                              ; preds = %116, %119, %103
  %.0659 = phi float [ %110, %119 ], [ %114, %116 ], [ %114, %103 ]
  %.0658 = phi float [ %117, %119 ], [ 1.000000e+00, %116 ], [ 1.000000e+00, %103 ]
  %121 = fcmp ogt float %114, 0.000000e+00
  br i1 %121, label %122, label %128

122:                                              ; preds = %120
  %123 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %23, ptr noundef nonnull @c_b27, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %25) #5
  %124 = load i64, ptr %25, align 8, !tbaa !5
  %.not700 = icmp eq i64 %124, 0
  br i1 %.not700, label %128, label %125

125:                                              ; preds = %122
  %126 = load i64, ptr %2, align 8, !tbaa !5
  %127 = add nsw i64 %126, 10
  store i64 %127, ptr %16, align 8, !tbaa !5
  br label %606

128:                                              ; preds = %122, %120
  %129 = call double @slange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %14) #5
  %130 = fptrunc double %129 to float
  store float %130, ptr %24, align 4, !tbaa !9
  %131 = fcmp olt float %130, 1.000000e+00
  br i1 %131, label %132, label %136

132:                                              ; preds = %128
  %133 = fmul float %111, %130
  %134 = fcmp olt float %133, 1.000000e+00
  br i1 %134, label %135, label %136

135:                                              ; preds = %132
  br label %136

136:                                              ; preds = %132, %135, %128
  %.0657 = phi float [ %110, %135 ], [ %130, %132 ], [ %130, %128 ]
  %.0656 = phi float [ %133, %135 ], [ 1.000000e+00, %132 ], [ 1.000000e+00, %128 ]
  %137 = fcmp ogt float %130, 0.000000e+00
  br i1 %137, label %138, label %144

138:                                              ; preds = %136
  %139 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %24, ptr noundef nonnull @c_b27, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %25) #5
  %140 = load i64, ptr %25, align 8, !tbaa !5
  %.not701 = icmp eq i64 %140, 0
  br i1 %.not701, label %144, label %141

141:                                              ; preds = %138
  %142 = load i64, ptr %2, align 8, !tbaa !5
  %143 = add nsw i64 %142, 10
  store i64 %143, ptr %16, align 8, !tbaa !5
  br label %606

144:                                              ; preds = %138, %136
  %145 = load i64, ptr %2, align 8, !tbaa !5
  %reass.add = shl i64 %145, 1
  %146 = or disjoint i64 %reass.add, 1
  %147 = getelementptr float, ptr %14, i64 %145
  %148 = getelementptr float, ptr %14, i64 %reass.add
  %149 = call i32 @sggbal_(ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef nonnull %14, ptr noundef %147, ptr noundef %148, ptr noundef nonnull %25) #5
  %150 = load i64, ptr %25, align 8, !tbaa !5
  %.not702 = icmp eq i64 %150, 0
  br i1 %.not702, label %154, label %151

151:                                              ; preds = %144
  %152 = load i64, ptr %2, align 8, !tbaa !5
  %153 = add nsw i64 %152, 1
  br label %.loopexit.sink.split

154:                                              ; preds = %144
  %155 = load i64, ptr %21, align 8, !tbaa !5
  %156 = add nsw i64 %155, 1
  %157 = load i64, ptr %22, align 8, !tbaa !5
  %158 = sub i64 %156, %157
  store i64 %158, ptr %27, align 8, !tbaa !5
  br i1 %58, label %159, label %162

159:                                              ; preds = %154
  %160 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub = sub i64 %160, %157
  %161 = add i64 %reass.sub, 1
  br label %162

162:                                              ; preds = %154, %159
  %storemerge = phi i64 [ %161, %159 ], [ %158, %154 ]
  store i64 %storemerge, ptr %26, align 8, !tbaa !5
  %163 = add nsw i64 %158, %146
  %164 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub846 = sub i64 %164, %163
  %165 = add i64 %reass.sub846, 1
  store i64 %165, ptr %18, align 8, !tbaa !5
  %166 = add i64 %33, 1
  %167 = mul i64 %157, %166
  %168 = getelementptr inbounds float, ptr %35, i64 %167
  %169 = getelementptr inbounds float, ptr %45, i64 %163
  %170 = call i32 @sgeqrf_(ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef %168, ptr noundef nonnull %6, ptr noundef %148, ptr noundef nonnull %169, ptr noundef nonnull %18, ptr noundef nonnull %25) #5
  %171 = load i64, ptr %25, align 8, !tbaa !5
  %172 = icmp sgt i64 %171, -1
  br i1 %172, label %173, label %.thread741

173:                                              ; preds = %162
  %174 = load float, ptr %169, align 4, !tbaa !9
  %175 = fptosi float %174 to i64
  %176 = add i64 %163, -1
  %177 = add i64 %176, %175
  store i64 %177, ptr %19, align 8, !tbaa !5
  %178 = call i64 @llvm.smax.i64(i64 %61, i64 %177)
  %.not704 = icmp eq i64 %171, 0
  br i1 %.not704, label %181, label %.thread741

.thread741:                                       ; preds = %162, %173
  %.0641744 = phi i64 [ %178, %173 ], [ %61, %162 ]
  %179 = load i64, ptr %2, align 8, !tbaa !5
  %180 = add nsw i64 %179, 2
  br label %.loopexit.sink.split

181:                                              ; preds = %173
  %182 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub847 = sub i64 %182, %163
  %183 = add i64 %reass.sub847, 1
  store i64 %183, ptr %18, align 8, !tbaa !5
  %184 = load i64, ptr %22, align 8, !tbaa !5
  %185 = mul i64 %184, %166
  %186 = getelementptr inbounds float, ptr %35, i64 %185
  %187 = add i64 %30, 1
  %188 = mul i64 %184, %187
  %189 = getelementptr inbounds float, ptr %32, i64 %188
  %190 = call i32 @sormqr_(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %186, ptr noundef nonnull %6, ptr noundef %148, ptr noundef %189, ptr noundef nonnull %4, ptr noundef nonnull %169, ptr noundef nonnull %18, ptr noundef nonnull %25) #5
  %191 = load i64, ptr %25, align 8, !tbaa !5
  %192 = icmp sgt i64 %191, -1
  br i1 %192, label %193, label %.thread745

193:                                              ; preds = %181
  store i64 %178, ptr %18, align 8, !tbaa !5
  %194 = load float, ptr %169, align 4, !tbaa !9
  %195 = fptosi float %194 to i64
  %196 = add i64 %176, %195
  store i64 %196, ptr %19, align 8, !tbaa !5
  %197 = call i64 @llvm.smax.i64(i64 %178, i64 %196)
  %.not706 = icmp eq i64 %191, 0
  br i1 %.not706, label %200, label %.thread745

.thread745:                                       ; preds = %181, %193
  %.1748 = phi i64 [ %197, %193 ], [ %178, %181 ]
  %198 = load i64, ptr %2, align 8, !tbaa !5
  %199 = add nsw i64 %198, 3
  br label %.loopexit.sink.split

200:                                              ; preds = %193
  br i1 %50, label %201, label %230

201:                                              ; preds = %200
  %202 = call i32 @slaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b38, ptr noundef nonnull @c_b27, ptr noundef %10, ptr noundef nonnull %11) #5
  %203 = load i64, ptr %27, align 8, !tbaa !5
  %204 = add nsw i64 %203, -1
  store i64 %204, ptr %18, align 8, !tbaa !5
  store i64 %204, ptr %19, align 8, !tbaa !5
  %205 = load i64, ptr %22, align 8, !tbaa !5
  %206 = add nsw i64 %205, 1
  %207 = mul nsw i64 %205, %33
  %208 = getelementptr float, ptr %35, i64 %206
  %209 = getelementptr float, ptr %208, i64 %207
  %210 = mul nsw i64 %205, %39
  %211 = getelementptr float, ptr %41, i64 %206
  %212 = getelementptr float, ptr %211, i64 %210
  %213 = call i32 @slacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %209, ptr noundef nonnull %6, ptr noundef %212, ptr noundef nonnull %11) #5
  %214 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub848 = sub i64 %214, %163
  %215 = add i64 %reass.sub848, 1
  store i64 %215, ptr %18, align 8, !tbaa !5
  %216 = load i64, ptr %22, align 8, !tbaa !5
  %217 = add i64 %39, 1
  %218 = mul i64 %216, %217
  %219 = getelementptr inbounds float, ptr %41, i64 %218
  %220 = call i32 @sorgqr_(ptr noundef nonnull %27, ptr noundef nonnull %27, ptr noundef nonnull %27, ptr noundef %219, ptr noundef nonnull %11, ptr noundef %148, ptr noundef nonnull %169, ptr noundef nonnull %18, ptr noundef nonnull %25) #5
  %221 = load i64, ptr %25, align 8, !tbaa !5
  %222 = icmp sgt i64 %221, -1
  br i1 %222, label %223, label %.thread749

223:                                              ; preds = %201
  store i64 %197, ptr %18, align 8, !tbaa !5
  %224 = load float, ptr %169, align 4, !tbaa !9
  %225 = fptosi float %224 to i64
  %226 = add i64 %176, %225
  store i64 %226, ptr %19, align 8, !tbaa !5
  %227 = call i64 @llvm.smax.i64(i64 %197, i64 %226)
  %.not708 = icmp eq i64 %221, 0
  br i1 %.not708, label %.thread754, label %.thread749

.thread749:                                       ; preds = %201, %223
  %.2752 = phi i64 [ %227, %223 ], [ %197, %201 ]
  %228 = load i64, ptr %2, align 8, !tbaa !5
  %229 = add nsw i64 %228, 4
  br label %.loopexit.sink.split

230:                                              ; preds = %200
  br i1 %56, label %.thread753, label %232

.thread754:                                       ; preds = %223
  br i1 %56, label %.thread753, label %.thread760

.thread753:                                       ; preds = %230, %.thread754
  %.3759 = phi i64 [ %227, %.thread754 ], [ %197, %230 ]
  %231 = call i32 @slaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b38, ptr noundef nonnull @c_b27, ptr noundef %12, ptr noundef nonnull %13) #5
  br label %.thread760

232:                                              ; preds = %230
  br i1 %58, label %.thread760, label %234

.thread760:                                       ; preds = %.thread754, %.thread753, %232
  %.3757 = phi i64 [ %.3759, %.thread753 ], [ %197, %232 ], [ %227, %.thread754 ]
  %233 = call i32 @sgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, 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 %25) #5
  br label %241

234:                                              ; preds = %232
  %235 = load i64, ptr %22, align 8, !tbaa !5
  %236 = mul i64 %235, %187
  %237 = getelementptr inbounds float, ptr %32, i64 %236
  %238 = mul i64 %235, %166
  %239 = getelementptr inbounds float, ptr %35, i64 %238
  %240 = call i32 @sgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %27, ptr noundef nonnull @c__1, ptr noundef nonnull %27, ptr noundef %237, ptr noundef nonnull %4, ptr noundef %239, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %25) #5
  br label %241

241:                                              ; preds = %234, %.thread760
  %.3756 = phi i64 [ %197, %234 ], [ %.3757, %.thread760 ]
  %242 = load i64, ptr %25, align 8, !tbaa !5
  %.not709 = icmp eq i64 %242, 0
  br i1 %.not709, label %246, label %243

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

246:                                              ; preds = %241
  %.735 = select i1 %58, i8 83, i8 69
  store i8 %.735, ptr %28, align 1, !tbaa !11
  %247 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub849 = sub i64 %247, %146
  %248 = add i64 %reass.sub849, 1
  store i64 %248, ptr %18, align 8, !tbaa !5
  %249 = call i32 @shgeqz_(ptr noundef nonnull %28, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, 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 %148, ptr noundef nonnull %18, ptr noundef nonnull %25) #5
  %250 = load i64, ptr %25, align 8, !tbaa !5
  %251 = icmp sgt i64 %250, -1
  br i1 %251, label %252, label %._crit_edge

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

252:                                              ; preds = %246
  store i64 %.3756, ptr %18, align 8, !tbaa !5
  %253 = load float, ptr %148, align 4, !tbaa !9
  %254 = fptosi float %253 to i64
  %255 = add i64 %reass.add, %254
  store i64 %255, ptr %19, align 8, !tbaa !5
  %256 = call i64 @llvm.smax.i64(i64 %.3756, i64 %255)
  %.not712 = icmp eq i64 %250, 0
  br i1 %.not712, label %267, label %257

257:                                              ; preds = %252
  %258 = load i64, ptr %2, align 8, !tbaa !5
  %.not729 = icmp sgt i64 %250, %258
  br i1 %.not729, label %259, label %.loopexit.sink.split

259:                                              ; preds = %._crit_edge, %257
  %260 = phi i64 [ %258, %257 ], [ %.pre, %._crit_edge ]
  %.4765769 = phi i64 [ %256, %257 ], [ %.3756, %._crit_edge ]
  %261 = icmp sle i64 %250, %260
  %262 = shl i64 %260, 1
  %.not730 = icmp sgt i64 %250, %262
  %or.cond736 = or i1 %261, %.not730
  br i1 %or.cond736, label %265, label %263

263:                                              ; preds = %259
  %264 = sub nsw i64 %250, %260
  br label %.loopexit.sink.split

265:                                              ; preds = %259
  %266 = add nsw i64 %260, 6
  br label %.loopexit.sink.split

267:                                              ; preds = %252
  br i1 %58, label %268, label %.loopexit796

268:                                              ; preds = %267
  br i1 %50, label %269, label %.thread770

269:                                              ; preds = %268
  %. = select i1 %56, i8 66, i8 76
  store i8 %., ptr %28, align 1, !tbaa !11
  %270 = call i32 @stgevc_(ptr noundef nonnull %28, ptr noundef nonnull @.str.8, ptr noundef nonnull %29, 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 %20, ptr noundef nonnull %148, ptr noundef nonnull %25) #5
  %271 = load i64, ptr %25, align 8, !tbaa !5
  %.not713 = icmp eq i64 %271, 0
  br i1 %.not713, label %277, label %274

.thread770:                                       ; preds = %268
  store i8 82, ptr %28, align 1, !tbaa !11
  %272 = call i32 @stgevc_(ptr noundef nonnull %28, ptr noundef nonnull @.str.8, ptr noundef nonnull %29, 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 %20, ptr noundef nonnull %148, ptr noundef nonnull %25) #5
  %273 = load i64, ptr %25, align 8, !tbaa !5
  %.not713771 = icmp eq i64 %273, 0
  br i1 %.not713771, label %.thread772, label %274

274:                                              ; preds = %.thread770, %269
  %275 = load i64, ptr %2, align 8, !tbaa !5
  %276 = add nsw i64 %275, 7
  br label %.loopexit.sink.split

277:                                              ; preds = %269
  %278 = call i32 @sggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef nonnull %14, ptr noundef %147, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %25) #5
  %279 = load i64, ptr %25, align 8, !tbaa !5
  %.not714 = icmp eq i64 %279, 0
  %280 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not714, label %283, label %281

281:                                              ; preds = %277
  %282 = add nsw i64 %280, 8
  br label %.loopexit.sink.split

283:                                              ; preds = %277
  store i64 %280, ptr %18, align 8, !tbaa !5
  %.not715817 = icmp slt i64 %280, 1
  br i1 %.not715817, label %.thread772, label %.lr.ph819.preheader

.lr.ph819.preheader:                              ; preds = %283
  %284 = add nuw i64 %280, 4611686018427387903
  %285 = mul i64 %39, %284
  %286 = add i64 %285, %280
  %287 = shl i64 %286, 2
  %scevgep = getelementptr i8, ptr %10, i64 %287
  %288 = shl i64 %39, 2
  %scevgep889 = getelementptr i8, ptr %10, i64 %288
  %289 = add i64 %288, 4
  %290 = mul i64 %280, %289
  %scevgep890 = getelementptr i8, ptr %10, i64 %290
  %xtraiter = and i64 %280, 1
  %291 = icmp eq i64 %280, 1
  %unroll_iter = and i64 %280, 9223372036854775806
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %min.iters.check894 = icmp ult i64 %280, 8
  %bound0 = icmp ugt ptr %scevgep890, %10
  %bound1 = icmp ult ptr %scevgep889, %scevgep
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i64 %288, 0
  %292 = or i1 %found.conflict, %stride.check
  %n.vec897 = and i64 %280, 9223372036854775800
  %ind.end898 = or disjoint i64 %n.vec897, 1
  %cmp.n910 = icmp eq i64 %280, %n.vec897
  %xtraiter964 = and i64 %280, 1
  %lcmp.mod965.not = icmp eq i64 %xtraiter964, 0
  %min.iters.check = icmp ult i64 %280, 8
  %n.vec = and i64 %280, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %280, %n.vec
  br label %.lr.ph819

.lr.ph819:                                        ; preds = %.lr.ph819.preheader, %.loopexit797
  %.0668818 = phi i64 [ %386, %.loopexit797 ], [ 1, %.lr.ph819.preheader ]
  %293 = getelementptr inbounds float, ptr %37, i64 %.0668818
  %294 = load float, ptr %293, align 4, !tbaa !9
  %295 = fcmp olt float %294, 0.000000e+00
  br i1 %295, label %.loopexit797, label %296

296:                                              ; preds = %.lr.ph819
  %297 = fcmp oeq float %294, 0.000000e+00
  store i64 %280, ptr %19, align 8, !tbaa !5
  %298 = mul nsw i64 %.0668818, %39
  br i1 %297, label %.lr.ph807, label %.lr.ph

.lr.ph807:                                        ; preds = %296
  %invariant.gep = getelementptr float, ptr %41, i64 %298
  br i1 %291, label %.loopexit799.loopexit.unr-lcssa, label %.lr.ph807.new

.lr.ph807.new:                                    ; preds = %.lr.ph807
  %invariant.gep979 = getelementptr i8, ptr %invariant.gep, i64 4
  br label %299

299:                                              ; preds = %299, %.lr.ph807.new
  %.0662806 = phi float [ 0.000000e+00, %.lr.ph807.new ], [ %311, %299 ]
  %.0671805 = phi i64 [ 1, %.lr.ph807.new ], [ %312, %299 ]
  %niter = phi i64 [ 0, %.lr.ph807.new ], [ %niter.next.1, %299 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %.0671805
  %300 = load float, ptr %gep, align 4, !tbaa !9
  %301 = fcmp oge float %300, 0.000000e+00
  %302 = fneg float %300
  %303 = select i1 %301, float %300, float %302
  %304 = fcmp oge float %.0662806, %303
  %305 = select i1 %304, float %.0662806, float %303
  %gep980 = getelementptr float, ptr %invariant.gep979, i64 %.0671805
  %306 = load float, ptr %gep980, align 4, !tbaa !9
  %307 = fcmp oge float %306, 0.000000e+00
  %308 = fneg float %306
  %309 = select i1 %307, float %306, float %308
  %310 = fcmp oge float %305, %309
  %311 = select i1 %310, float %305, float %309
  %312 = add nuw i64 %.0671805, 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 %.loopexit799.loopexit.unr-lcssa, label %299, !llvm.loop !12

.lr.ph:                                           ; preds = %296
  %313 = add nuw nsw i64 %.0668818, 1
  %314 = mul nsw i64 %313, %39
  br label %315

315:                                              ; preds = %.lr.ph, %315
  %.1663803 = phi float [ 0.000000e+00, %.lr.ph ], [ %329, %315 ]
  %.1672802 = phi i64 [ 1, %.lr.ph ], [ %330, %315 ]
  %316 = getelementptr float, ptr %41, i64 %.1672802
  %317 = getelementptr float, ptr %316, i64 %298
  %318 = load float, ptr %317, align 4, !tbaa !9
  %319 = fcmp oge float %318, 0.000000e+00
  %320 = fneg float %318
  %321 = select i1 %319, float %318, float %320
  %322 = getelementptr float, ptr %316, i64 %314
  %323 = load float, ptr %322, align 4, !tbaa !9
  %324 = fcmp oge float %323, 0.000000e+00
  %325 = fneg float %323
  %326 = select i1 %324, float %323, float %325
  %327 = fadd float %321, %326
  %328 = fcmp oge float %.1663803, %327
  %329 = select i1 %328, float %.1663803, float %327
  %330 = add nuw i64 %.1672802, 1
  %exitcond.not = icmp eq i64 %.1672802, %280
  br i1 %exitcond.not, label %.loopexit799, label %315, !llvm.loop !14

.loopexit799.loopexit.unr-lcssa:                  ; preds = %299, %.lr.ph807
  %.lcssa962.ph = phi float [ poison, %.lr.ph807 ], [ %311, %299 ]
  %.0662806.unr = phi float [ 0.000000e+00, %.lr.ph807 ], [ %311, %299 ]
  %.0671805.unr = phi i64 [ 1, %.lr.ph807 ], [ %312, %299 ]
  br i1 %lcmp.mod.not, label %.loopexit799, label %.loopexit799.loopexit.epilog-lcssa

.loopexit799.loopexit.epilog-lcssa:               ; preds = %.loopexit799.loopexit.unr-lcssa
  %gep.epil = getelementptr float, ptr %invariant.gep, i64 %.0671805.unr
  %331 = load float, ptr %gep.epil, align 4, !tbaa !9
  %332 = fcmp oge float %331, 0.000000e+00
  %333 = fneg float %331
  %334 = select i1 %332, float %331, float %333
  %335 = fcmp oge float %.0662806.unr, %334
  %336 = select i1 %335, float %.0662806.unr, float %334
  br label %.loopexit799

.loopexit799:                                     ; preds = %315, %.loopexit799.loopexit.epilog-lcssa, %.loopexit799.loopexit.unr-lcssa
  %.2664 = phi float [ %.lcssa962.ph, %.loopexit799.loopexit.unr-lcssa ], [ %336, %.loopexit799.loopexit.epilog-lcssa ], [ %329, %315 ]
  %337 = fcmp olt float %.2664, %110
  br i1 %337, label %.loopexit797, label %338

338:                                              ; preds = %.loopexit799
  %339 = fdiv float 1.000000e+00, %.2664
  store i64 %280, ptr %19, align 8, !tbaa !5
  %340 = mul nsw i64 %.0668818, %39
  br i1 %297, label %.lr.ph814, label %.lr.ph811

.lr.ph814:                                        ; preds = %338
  %invariant.gep815 = getelementptr float, ptr %41, i64 %340
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph814
  %broadcast.splatinsert = insertelement <4 x float> poison, float %339, 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
  %341 = getelementptr float, ptr %invariant.gep815, i64 %offset.idx
  %342 = getelementptr i8, ptr %341, i64 16
  %wide.load = load <4 x float>, ptr %341, align 4, !tbaa !9
  %wide.load888 = load <4 x float>, ptr %342, align 4, !tbaa !9
  %343 = fmul <4 x float> %broadcast.splat, %wide.load
  %344 = fmul <4 x float> %broadcast.splat, %wide.load888
  store <4 x float> %343, ptr %341, align 4, !tbaa !9
  store <4 x float> %344, ptr %342, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %345 = icmp eq i64 %index.next, %n.vec
  br i1 %345, label %middle.block, label %vector.body, !llvm.loop !15

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

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

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.2673813 = phi i64 [ %348, %scalar.ph ], [ %.2673813.ph, %scalar.ph.preheader ]
  %gep816 = getelementptr float, ptr %invariant.gep815, i64 %.2673813
  %346 = load float, ptr %gep816, align 4, !tbaa !9
  %347 = fmul float %339, %346
  store float %347, ptr %gep816, align 4, !tbaa !9
  %348 = add nuw i64 %.2673813, 1
  %exitcond859.not = icmp eq i64 %.2673813, %280
  br i1 %exitcond859.not, label %.loopexit797, label %scalar.ph, !llvm.loop !18

.lr.ph811:                                        ; preds = %338
  %349 = add nuw nsw i64 %.0668818, 1
  %350 = mul nsw i64 %349, %39
  %brmerge983 = select i1 %min.iters.check894, i1 true, i1 %292
  br i1 %brmerge983, label %scalar.ph893.preheader, label %vector.ph895

vector.ph895:                                     ; preds = %.lr.ph811
  %broadcast.splatinsert905 = insertelement <4 x float> poison, float %339, i64 0
  %broadcast.splat906 = shufflevector <4 x float> %broadcast.splatinsert905, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body900

vector.body900:                                   ; preds = %vector.body900, %vector.ph895
  %index901 = phi i64 [ 0, %vector.ph895 ], [ %index.next909, %vector.body900 ]
  %offset.idx902 = or disjoint i64 %index901, 1
  %351 = getelementptr float, ptr %41, i64 %offset.idx902
  %352 = getelementptr float, ptr %351, i64 %340
  %353 = getelementptr i8, ptr %352, i64 16
  %wide.load903 = load <4 x float>, ptr %352, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %wide.load904 = load <4 x float>, ptr %353, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %354 = fmul <4 x float> %broadcast.splat906, %wide.load903
  %355 = fmul <4 x float> %broadcast.splat906, %wide.load904
  store <4 x float> %354, ptr %352, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  store <4 x float> %355, ptr %353, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %356 = getelementptr float, ptr %351, i64 %350
  %357 = getelementptr i8, ptr %356, i64 16
  %wide.load907 = load <4 x float>, ptr %356, align 4, !tbaa !9, !alias.scope !22
  %wide.load908 = load <4 x float>, ptr %357, align 4, !tbaa !9, !alias.scope !22
  %358 = fmul <4 x float> %broadcast.splat906, %wide.load907
  %359 = fmul <4 x float> %broadcast.splat906, %wide.load908
  store <4 x float> %358, ptr %356, align 4, !tbaa !9, !alias.scope !22
  store <4 x float> %359, ptr %357, align 4, !tbaa !9, !alias.scope !22
  %index.next909 = add nuw i64 %index901, 8
  %360 = icmp eq i64 %index.next909, %n.vec897
  br i1 %360, label %middle.block892, label %vector.body900, !llvm.loop !24

middle.block892:                                  ; preds = %vector.body900
  br i1 %cmp.n910, label %.loopexit797, label %scalar.ph893.preheader

scalar.ph893.preheader:                           ; preds = %.lr.ph811, %middle.block892
  %.3674810.ph = phi i64 [ 1, %.lr.ph811 ], [ %ind.end898, %middle.block892 ]
  br i1 %lcmp.mod965.not, label %scalar.ph893.prol.loopexit, label %scalar.ph893.prol

scalar.ph893.prol:                                ; preds = %scalar.ph893.preheader
  %361 = getelementptr float, ptr %41, i64 %.3674810.ph
  %362 = getelementptr float, ptr %361, i64 %340
  %363 = load float, ptr %362, align 4, !tbaa !9
  %364 = fmul float %339, %363
  store float %364, ptr %362, align 4, !tbaa !9
  %365 = getelementptr float, ptr %361, i64 %350
  %366 = load float, ptr %365, align 4, !tbaa !9
  %367 = fmul float %339, %366
  store float %367, ptr %365, align 4, !tbaa !9
  %368 = add nuw i64 %.3674810.ph, 1
  br label %scalar.ph893.prol.loopexit

scalar.ph893.prol.loopexit:                       ; preds = %scalar.ph893.prol, %scalar.ph893.preheader
  %.3674810.unr = phi i64 [ %.3674810.ph, %scalar.ph893.preheader ], [ %368, %scalar.ph893.prol ]
  %369 = icmp eq i64 %280, %.3674810.ph
  br i1 %369, label %.loopexit797, label %scalar.ph893

scalar.ph893:                                     ; preds = %scalar.ph893.prol.loopexit, %scalar.ph893
  %.3674810 = phi i64 [ %385, %scalar.ph893 ], [ %.3674810.unr, %scalar.ph893.prol.loopexit ]
  %370 = getelementptr float, ptr %41, i64 %.3674810
  %371 = getelementptr float, ptr %370, i64 %340
  %372 = load float, ptr %371, align 4, !tbaa !9
  %373 = fmul float %339, %372
  store float %373, ptr %371, align 4, !tbaa !9
  %374 = getelementptr float, ptr %370, i64 %350
  %375 = load float, ptr %374, align 4, !tbaa !9
  %376 = fmul float %339, %375
  store float %376, ptr %374, align 4, !tbaa !9
  %377 = add nuw i64 %.3674810, 1
  %378 = getelementptr float, ptr %41, i64 %377
  %379 = getelementptr float, ptr %378, i64 %340
  %380 = load float, ptr %379, align 4, !tbaa !9
  %381 = fmul float %339, %380
  store float %381, ptr %379, align 4, !tbaa !9
  %382 = getelementptr float, ptr %378, i64 %350
  %383 = load float, ptr %382, align 4, !tbaa !9
  %384 = fmul float %339, %383
  store float %384, ptr %382, align 4, !tbaa !9
  %385 = add nuw i64 %.3674810, 2
  %exitcond858.not.1 = icmp eq i64 %377, %280
  br i1 %exitcond858.not.1, label %.loopexit797, label %scalar.ph893, !llvm.loop !25

.loopexit797:                                     ; preds = %scalar.ph893.prol.loopexit, %scalar.ph893, %scalar.ph, %middle.block892, %middle.block, %.lr.ph819, %.loopexit799
  %386 = add nuw i64 %.0668818, 1
  %exitcond860.not = icmp eq i64 %.0668818, %280
  br i1 %exitcond860.not, label %.thread772, label %.lr.ph819, !llvm.loop !26

.thread772:                                       ; preds = %.loopexit797, %283, %.thread770
  br i1 %56, label %387, label %.loopexit796

387:                                              ; preds = %.thread772
  %388 = call i32 @sggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.16, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef nonnull %14, ptr noundef %147, ptr noundef nonnull %2, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %25) #5
  %389 = load i64, ptr %25, align 8, !tbaa !5
  %.not716 = icmp eq i64 %389, 0
  %390 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not716, label %393, label %391

391:                                              ; preds = %387
  %392 = add nsw i64 %390, 9
  br label %.loopexit.sink.split

393:                                              ; preds = %387
  %.not717840 = icmp slt i64 %390, 1
  br i1 %.not717840, label %.loopexit, label %.lr.ph842.preheader

.lr.ph842.preheader:                              ; preds = %393
  %394 = add nuw i64 %390, 4611686018427387903
  %395 = mul i64 %42, %394
  %396 = add i64 %395, %390
  %397 = shl i64 %396, 2
  %scevgep929 = getelementptr i8, ptr %12, i64 %397
  %398 = shl i64 %42, 2
  %scevgep930 = getelementptr i8, ptr %12, i64 %398
  %399 = add i64 %398, 4
  %400 = mul i64 %390, %399
  %scevgep931 = getelementptr i8, ptr %12, i64 %400
  %xtraiter967 = and i64 %390, 1
  %401 = icmp eq i64 %390, 1
  %unroll_iter970 = and i64 %390, 9223372036854775806
  %lcmp.mod968.not = icmp eq i64 %xtraiter967, 0
  %min.iters.check939 = icmp ult i64 %390, 8
  %bound0932 = icmp ugt ptr %scevgep931, %12
  %bound1933 = icmp ult ptr %scevgep930, %scevgep929
  %found.conflict934 = and i1 %bound0932, %bound1933
  %stride.check935 = icmp slt i64 %398, 0
  %402 = or i1 %found.conflict934, %stride.check935
  %n.vec942 = and i64 %390, 9223372036854775800
  %ind.end943 = or disjoint i64 %n.vec942, 1
  %cmp.n955 = icmp eq i64 %390, %n.vec942
  %xtraiter972 = and i64 %390, 1
  %lcmp.mod973.not = icmp eq i64 %xtraiter972, 0
  %min.iters.check913 = icmp ult i64 %390, 8
  %n.vec916 = and i64 %390, 9223372036854775800
  %ind.end917 = or disjoint i64 %n.vec916, 1
  %cmp.n927 = icmp eq i64 %390, %n.vec916
  br label %.lr.ph842

.lr.ph842:                                        ; preds = %.lr.ph842.preheader, %.loopexit792
  %.1669841 = phi i64 [ %496, %.loopexit792 ], [ 1, %.lr.ph842.preheader ]
  %403 = getelementptr inbounds float, ptr %37, i64 %.1669841
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = fcmp olt float %404, 0.000000e+00
  br i1 %405, label %.loopexit792, label %406

406:                                              ; preds = %.lr.ph842
  %407 = fcmp oeq float %404, 0.000000e+00
  %408 = mul nsw i64 %.1669841, %42
  br i1 %407, label %.lr.ph828, label %.lr.ph823

.lr.ph828:                                        ; preds = %406
  %invariant.gep830 = getelementptr float, ptr %44, i64 %408
  br i1 %401, label %.loopexit794.loopexit.unr-lcssa, label %.lr.ph828.new

.lr.ph828.new:                                    ; preds = %.lr.ph828
  %invariant.gep981 = getelementptr i8, ptr %invariant.gep830, i64 4
  br label %409

409:                                              ; preds = %409, %.lr.ph828.new
  %.3665827 = phi float [ 0.000000e+00, %.lr.ph828.new ], [ %421, %409 ]
  %.4675826 = phi i64 [ 1, %.lr.ph828.new ], [ %422, %409 ]
  %niter971 = phi i64 [ 0, %.lr.ph828.new ], [ %niter971.next.1, %409 ]
  %gep831 = getelementptr float, ptr %invariant.gep830, i64 %.4675826
  %410 = load float, ptr %gep831, align 4, !tbaa !9
  %411 = fcmp oge float %410, 0.000000e+00
  %412 = fneg float %410
  %413 = select i1 %411, float %410, float %412
  %414 = fcmp oge float %.3665827, %413
  %415 = select i1 %414, float %.3665827, float %413
  %gep982 = getelementptr float, ptr %invariant.gep981, i64 %.4675826
  %416 = load float, ptr %gep982, align 4, !tbaa !9
  %417 = fcmp oge float %416, 0.000000e+00
  %418 = fneg float %416
  %419 = select i1 %417, float %416, float %418
  %420 = fcmp oge float %415, %419
  %421 = select i1 %420, float %415, float %419
  %422 = add nuw i64 %.4675826, 2
  %niter971.next.1 = add i64 %niter971, 2
  %niter971.ncmp.1 = icmp eq i64 %niter971.next.1, %unroll_iter970
  br i1 %niter971.ncmp.1, label %.loopexit794.loopexit.unr-lcssa, label %409, !llvm.loop !27

.lr.ph823:                                        ; preds = %406
  %423 = add nuw nsw i64 %.1669841, 1
  %424 = mul nsw i64 %423, %42
  br label %425

425:                                              ; preds = %.lr.ph823, %425
  %.4666822 = phi float [ 0.000000e+00, %.lr.ph823 ], [ %439, %425 ]
  %.5676821 = phi i64 [ 1, %.lr.ph823 ], [ %440, %425 ]
  %426 = getelementptr float, ptr %44, i64 %.5676821
  %427 = getelementptr float, ptr %426, i64 %408
  %428 = load float, ptr %427, align 4, !tbaa !9
  %429 = fcmp oge float %428, 0.000000e+00
  %430 = fneg float %428
  %431 = select i1 %429, float %428, float %430
  %432 = getelementptr float, ptr %426, i64 %424
  %433 = load float, ptr %432, align 4, !tbaa !9
  %434 = fcmp oge float %433, 0.000000e+00
  %435 = fneg float %433
  %436 = select i1 %434, float %433, float %435
  %437 = fadd float %431, %436
  %438 = fcmp oge float %.4666822, %437
  %439 = select i1 %438, float %.4666822, float %437
  %440 = add nuw i64 %.5676821, 1
  %exitcond861.not = icmp eq i64 %.5676821, %390
  br i1 %exitcond861.not, label %.loopexit794, label %425, !llvm.loop !28

.loopexit794.loopexit.unr-lcssa:                  ; preds = %409, %.lr.ph828
  %.lcssa958.ph = phi float [ poison, %.lr.ph828 ], [ %421, %409 ]
  %.3665827.unr = phi float [ 0.000000e+00, %.lr.ph828 ], [ %421, %409 ]
  %.4675826.unr = phi i64 [ 1, %.lr.ph828 ], [ %422, %409 ]
  br i1 %lcmp.mod968.not, label %.loopexit794, label %.loopexit794.loopexit.epilog-lcssa

.loopexit794.loopexit.epilog-lcssa:               ; preds = %.loopexit794.loopexit.unr-lcssa
  %gep831.epil = getelementptr float, ptr %invariant.gep830, i64 %.4675826.unr
  %441 = load float, ptr %gep831.epil, align 4, !tbaa !9
  %442 = fcmp oge float %441, 0.000000e+00
  %443 = fneg float %441
  %444 = select i1 %442, float %441, float %443
  %445 = fcmp oge float %.3665827.unr, %444
  %446 = select i1 %445, float %.3665827.unr, float %444
  br label %.loopexit794

.loopexit794:                                     ; preds = %425, %.loopexit794.loopexit.epilog-lcssa, %.loopexit794.loopexit.unr-lcssa
  %.5667 = phi float [ %.lcssa958.ph, %.loopexit794.loopexit.unr-lcssa ], [ %446, %.loopexit794.loopexit.epilog-lcssa ], [ %439, %425 ]
  %447 = fcmp olt float %.5667, %110
  br i1 %447, label %.loopexit792, label %448

448:                                              ; preds = %.loopexit794
  %449 = fdiv float 1.000000e+00, %.5667
  %450 = mul nsw i64 %.1669841, %42
  br i1 %407, label %.lr.ph837, label %.lr.ph834

.lr.ph837:                                        ; preds = %448
  %invariant.gep838 = getelementptr float, ptr %44, i64 %450
  br i1 %min.iters.check913, label %scalar.ph912.preheader, label %vector.ph914

vector.ph914:                                     ; preds = %.lr.ph837
  %broadcast.splatinsert924 = insertelement <4 x float> poison, float %449, i64 0
  %broadcast.splat925 = shufflevector <4 x float> %broadcast.splatinsert924, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body919

vector.body919:                                   ; preds = %vector.body919, %vector.ph914
  %index920 = phi i64 [ 0, %vector.ph914 ], [ %index.next926, %vector.body919 ]
  %offset.idx921 = or disjoint i64 %index920, 1
  %451 = getelementptr float, ptr %invariant.gep838, i64 %offset.idx921
  %452 = getelementptr i8, ptr %451, i64 16
  %wide.load922 = load <4 x float>, ptr %451, align 4, !tbaa !9
  %wide.load923 = load <4 x float>, ptr %452, align 4, !tbaa !9
  %453 = fmul <4 x float> %broadcast.splat925, %wide.load922
  %454 = fmul <4 x float> %broadcast.splat925, %wide.load923
  store <4 x float> %453, ptr %451, align 4, !tbaa !9
  store <4 x float> %454, ptr %452, align 4, !tbaa !9
  %index.next926 = add nuw i64 %index920, 8
  %455 = icmp eq i64 %index.next926, %n.vec916
  br i1 %455, label %middle.block911, label %vector.body919, !llvm.loop !29

middle.block911:                                  ; preds = %vector.body919
  br i1 %cmp.n927, label %.loopexit792, label %scalar.ph912.preheader

scalar.ph912.preheader:                           ; preds = %middle.block911, %.lr.ph837
  %.6836.ph = phi i64 [ 1, %.lr.ph837 ], [ %ind.end917, %middle.block911 ]
  br label %scalar.ph912

scalar.ph912:                                     ; preds = %scalar.ph912.preheader, %scalar.ph912
  %.6836 = phi i64 [ %458, %scalar.ph912 ], [ %.6836.ph, %scalar.ph912.preheader ]
  %gep839 = getelementptr float, ptr %invariant.gep838, i64 %.6836
  %456 = load float, ptr %gep839, align 4, !tbaa !9
  %457 = fmul float %449, %456
  store float %457, ptr %gep839, align 4, !tbaa !9
  %458 = add nuw i64 %.6836, 1
  %exitcond864.not = icmp eq i64 %.6836, %390
  br i1 %exitcond864.not, label %.loopexit792, label %scalar.ph912, !llvm.loop !30

.lr.ph834:                                        ; preds = %448
  %459 = add nuw nsw i64 %.1669841, 1
  %460 = mul nsw i64 %459, %42
  %brmerge984 = select i1 %min.iters.check939, i1 true, i1 %402
  br i1 %brmerge984, label %scalar.ph938.preheader, label %vector.ph940

vector.ph940:                                     ; preds = %.lr.ph834
  %broadcast.splatinsert950 = insertelement <4 x float> poison, float %449, i64 0
  %broadcast.splat951 = shufflevector <4 x float> %broadcast.splatinsert950, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body945

vector.body945:                                   ; preds = %vector.body945, %vector.ph940
  %index946 = phi i64 [ 0, %vector.ph940 ], [ %index.next954, %vector.body945 ]
  %offset.idx947 = or disjoint i64 %index946, 1
  %461 = getelementptr float, ptr %44, i64 %offset.idx947
  %462 = getelementptr float, ptr %461, i64 %450
  %463 = getelementptr i8, ptr %462, i64 16
  %wide.load948 = load <4 x float>, ptr %462, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %wide.load949 = load <4 x float>, ptr %463, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %464 = fmul <4 x float> %broadcast.splat951, %wide.load948
  %465 = fmul <4 x float> %broadcast.splat951, %wide.load949
  store <4 x float> %464, ptr %462, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  store <4 x float> %465, ptr %463, align 4, !tbaa !9, !alias.scope !31, !noalias !34
  %466 = getelementptr float, ptr %461, i64 %460
  %467 = getelementptr i8, ptr %466, i64 16
  %wide.load952 = load <4 x float>, ptr %466, align 4, !tbaa !9, !alias.scope !34
  %wide.load953 = load <4 x float>, ptr %467, align 4, !tbaa !9, !alias.scope !34
  %468 = fmul <4 x float> %broadcast.splat951, %wide.load952
  %469 = fmul <4 x float> %broadcast.splat951, %wide.load953
  store <4 x float> %468, ptr %466, align 4, !tbaa !9, !alias.scope !34
  store <4 x float> %469, ptr %467, align 4, !tbaa !9, !alias.scope !34
  %index.next954 = add nuw i64 %index946, 8
  %470 = icmp eq i64 %index.next954, %n.vec942
  br i1 %470, label %middle.block937, label %vector.body945, !llvm.loop !36

middle.block937:                                  ; preds = %vector.body945
  br i1 %cmp.n955, label %.loopexit792, label %scalar.ph938.preheader

scalar.ph938.preheader:                           ; preds = %.lr.ph834, %middle.block937
  %.7833.ph = phi i64 [ 1, %.lr.ph834 ], [ %ind.end943, %middle.block937 ]
  br i1 %lcmp.mod973.not, label %scalar.ph938.prol.loopexit, label %scalar.ph938.prol

scalar.ph938.prol:                                ; preds = %scalar.ph938.preheader
  %471 = getelementptr float, ptr %44, i64 %.7833.ph
  %472 = getelementptr float, ptr %471, i64 %450
  %473 = load float, ptr %472, align 4, !tbaa !9
  %474 = fmul float %449, %473
  store float %474, ptr %472, align 4, !tbaa !9
  %475 = getelementptr float, ptr %471, i64 %460
  %476 = load float, ptr %475, align 4, !tbaa !9
  %477 = fmul float %449, %476
  store float %477, ptr %475, align 4, !tbaa !9
  %478 = add nuw i64 %.7833.ph, 1
  br label %scalar.ph938.prol.loopexit

scalar.ph938.prol.loopexit:                       ; preds = %scalar.ph938.prol, %scalar.ph938.preheader
  %.7833.unr = phi i64 [ %.7833.ph, %scalar.ph938.preheader ], [ %478, %scalar.ph938.prol ]
  %479 = icmp eq i64 %390, %.7833.ph
  br i1 %479, label %.loopexit792, label %scalar.ph938

scalar.ph938:                                     ; preds = %scalar.ph938.prol.loopexit, %scalar.ph938
  %.7833 = phi i64 [ %495, %scalar.ph938 ], [ %.7833.unr, %scalar.ph938.prol.loopexit ]
  %480 = getelementptr float, ptr %44, i64 %.7833
  %481 = getelementptr float, ptr %480, i64 %450
  %482 = load float, ptr %481, align 4, !tbaa !9
  %483 = fmul float %449, %482
  store float %483, ptr %481, align 4, !tbaa !9
  %484 = getelementptr float, ptr %480, i64 %460
  %485 = load float, ptr %484, align 4, !tbaa !9
  %486 = fmul float %449, %485
  store float %486, ptr %484, align 4, !tbaa !9
  %487 = add nuw i64 %.7833, 1
  %488 = getelementptr float, ptr %44, i64 %487
  %489 = getelementptr float, ptr %488, i64 %450
  %490 = load float, ptr %489, align 4, !tbaa !9
  %491 = fmul float %449, %490
  store float %491, ptr %489, align 4, !tbaa !9
  %492 = getelementptr float, ptr %488, i64 %460
  %493 = load float, ptr %492, align 4, !tbaa !9
  %494 = fmul float %449, %493
  store float %494, ptr %492, align 4, !tbaa !9
  %495 = add nuw i64 %.7833, 2
  %exitcond863.not.1 = icmp eq i64 %487, %390
  br i1 %exitcond863.not.1, label %.loopexit792, label %scalar.ph938, !llvm.loop !37

.loopexit792:                                     ; preds = %scalar.ph938.prol.loopexit, %scalar.ph938, %scalar.ph912, %middle.block937, %middle.block911, %.lr.ph842, %.loopexit794
  %496 = add nuw i64 %.1669841, 1
  %exitcond865.not = icmp eq i64 %.1669841, %390
  br i1 %exitcond865.not, label %.loopexit796, label %.lr.ph842, !llvm.loop !38

.loopexit796:                                     ; preds = %.loopexit792, %.thread772, %267
  %.pr = load i64, ptr %2, align 8, !tbaa !5
  %.not718843 = icmp slt i64 %.pr, 1
  br i1 %.not718843, label %.loopexit, label %.lr.ph845

.lr.ph845:                                        ; preds = %.loopexit796
  %497 = load float, ptr %23, align 4, !tbaa !9
  %498 = load float, ptr %24, align 4, !tbaa !9
  %499 = fmul float %112, %110
  %500 = fdiv float %499, %.0659
  %501 = fdiv float %499, %.0657
  br label %502

502:                                              ; preds = %.lr.ph845, %.thread779
  %.2670844 = phi i64 [ 1, %.lr.ph845 ], [ %604, %.thread779 ]
  %503 = getelementptr inbounds float, ptr %36, i64 %.2670844
  %504 = load float, ptr %503, align 4, !tbaa !9
  %505 = fcmp oge float %504, 0.000000e+00
  %506 = fneg float %504
  %507 = select i1 %505, float %504, float %506
  %508 = getelementptr inbounds float, ptr %37, i64 %.2670844
  %509 = load float, ptr %508, align 4, !tbaa !9
  %510 = fcmp oge float %509, 0.000000e+00
  %511 = fneg float %509
  %512 = select i1 %510, float %509, float %511
  %513 = getelementptr inbounds float, ptr %38, i64 %.2670844
  %514 = load float, ptr %513, align 4, !tbaa !9
  %515 = fcmp oge float %514, 0.000000e+00
  %516 = fneg float %514
  %517 = select i1 %515, float %514, float %516
  %518 = fmul float %504, %497
  %519 = fmul float %509, %497
  %520 = fmul float %514, %498
  %521 = fmul float %507, %107
  %522 = fcmp oge float %110, %521
  %523 = select i1 %522, float %110, float %521
  %524 = fmul float %517, %107
  %525 = fcmp oge float %519, 0.000000e+00
  %526 = fneg float %519
  %527 = select i1 %525, float %519, float %526
  %528 = fcmp olt float %527, %110
  br i1 %528, label %529, label %538

529:                                              ; preds = %502
  %530 = fcmp oge float %523, %524
  %531 = select i1 %530, float %523, float %524
  %532 = fcmp ult float %512, %531
  br i1 %532, label %538, label %533

533:                                              ; preds = %529
  %534 = fmul float %.0658, %512
  %535 = fcmp oge float %499, %534
  %536 = select i1 %535, float %499, float %534
  %537 = fdiv float %500, %536
  br label %550

538:                                              ; preds = %529, %502
  %539 = fcmp oeq float %519, 0.000000e+00
  br i1 %539, label %540, label %550

540:                                              ; preds = %538
  %541 = fcmp olt float %509, 0.000000e+00
  %542 = icmp ugt i64 %.2670844, 1
  %or.cond3 = and i1 %542, %541
  br i1 %or.cond3, label %543, label %545

543:                                              ; preds = %540
  %544 = getelementptr i8, ptr %508, i64 -4
  store float 0.000000e+00, ptr %544, align 4, !tbaa !9
  br label %550

545:                                              ; preds = %540
  %546 = fcmp ogt float %509, 0.000000e+00
  %547 = icmp slt i64 %.2670844, %.pr
  %or.cond786 = and i1 %547, %546
  br i1 %or.cond786, label %548, label %550

548:                                              ; preds = %545
  %549 = getelementptr float, ptr %8, i64 %.2670844
  store float 0.000000e+00, ptr %549, align 4, !tbaa !9
  br label %550

550:                                              ; preds = %538, %545, %548, %543, %533
  %.0651 = phi float [ %537, %533 ], [ 1.000000e+00, %543 ], [ 1.000000e+00, %548 ], [ 1.000000e+00, %545 ], [ 1.000000e+00, %538 ]
  %.0643 = phi i64 [ 1, %533 ], [ 0, %543 ], [ 0, %548 ], [ 0, %545 ], [ 0, %538 ]
  %551 = fmul float %512, %107
  %552 = fcmp oge float %518, 0.000000e+00
  %553 = fneg float %518
  %554 = select i1 %552, float %518, float %553
  %555 = fcmp olt float %554, %110
  br i1 %555, label %556, label %569

556:                                              ; preds = %550
  %557 = fcmp oge float %110, %551
  %558 = select i1 %557, float %110, float %551
  %559 = fcmp oge float %558, %524
  %560 = select i1 %559, float %558, float %524
  %561 = fcmp ult float %507, %560
  br i1 %561, label %569, label %562

562:                                              ; preds = %556
  %563 = fmul float %.0658, %507
  %564 = fcmp oge float %499, %563
  %565 = select i1 %564, float %499, float %563
  %566 = fdiv float %500, %565
  %567 = fcmp oge float %.0651, %566
  %568 = select i1 %567, float %.0651, float %566
  br label %569

569:                                              ; preds = %562, %556, %550
  %.1652 = phi float [ %568, %562 ], [ %.0651, %556 ], [ %.0651, %550 ]
  %.1644 = phi i64 [ 1, %562 ], [ %.0643, %556 ], [ %.0643, %550 ]
  %570 = fcmp oge float %520, 0.000000e+00
  %571 = fneg float %520
  %572 = select i1 %570, float %520, float %571
  %573 = fcmp olt float %572, %110
  br i1 %573, label %574, label %584

574:                                              ; preds = %569
  %575 = fcmp oge float %523, %551
  %576 = select i1 %575, float %523, float %551
  %577 = fcmp ult float %517, %576
  br i1 %577, label %584, label %.thread773

.thread773:                                       ; preds = %574
  %578 = fmul float %.0656, %517
  %579 = fcmp oge float %499, %578
  %580 = select i1 %579, float %499, float %578
  %581 = fdiv float %501, %580
  %582 = fcmp oge float %.1652, %581
  %583 = select i1 %582, float %.1652, float %581
  br label %585

584:                                              ; preds = %574, %569
  %.not719 = icmp eq i64 %.1644, 0
  br i1 %.not719, label %.thread779, label %585

585:                                              ; preds = %.thread773, %584
  %.2653777 = phi float [ %583, %.thread773 ], [ %.1652, %584 ]
  %586 = fcmp oge float %554, %527
  %587 = select i1 %586, float %554, float %527
  %588 = fmul float %110, %.2653777
  %589 = fcmp oge float %587, %572
  %590 = select i1 %589, float %587, float %572
  %591 = fmul float %590, %588
  %592 = fcmp ogt float %591, 1.000000e+00
  %593 = fdiv float %.2653777, %591
  %.3654 = select i1 %592, float %593, float %.2653777
  %594 = fcmp olt float %.3654, 1.000000e+00
  br i1 %594, label %.thread779, label %595

595:                                              ; preds = %585
  %596 = load float, ptr %503, align 4, !tbaa !9
  %597 = fmul float %.3654, %596
  %598 = fmul float %497, %597
  %599 = fmul float %.3654, %509
  %600 = fmul float %497, %599
  %601 = load float, ptr %513, align 4, !tbaa !9
  %602 = fmul float %.3654, %601
  %603 = fmul float %498, %602
  br label %.thread779

.thread779:                                       ; preds = %585, %584, %595
  %.0650 = phi float [ %603, %595 ], [ %520, %584 ], [ %520, %585 ]
  %.0649 = phi float [ %600, %595 ], [ %519, %584 ], [ %519, %585 ]
  %.0648 = phi float [ %598, %595 ], [ %518, %584 ], [ %518, %585 ]
  store float %.0648, ptr %503, align 4, !tbaa !9
  store float %.0649, ptr %508, align 4, !tbaa !9
  store float %.0650, ptr %513, align 4, !tbaa !9
  %604 = add nuw i64 %.2670844, 1
  %exitcond866.not = icmp eq i64 %.2670844, %.pr
  br i1 %exitcond866.not, label %.loopexit, label %502, !llvm.loop !39

.loopexit.sink.split:                             ; preds = %257, %151, %.thread741, %.thread745, %.thread749, %243, %274, %281, %391, %263, %265
  %.sink880 = phi i64 [ %266, %265 ], [ %264, %263 ], [ %392, %391 ], [ %282, %281 ], [ %276, %274 ], [ %245, %243 ], [ %229, %.thread749 ], [ %199, %.thread745 ], [ %180, %.thread741 ], [ %153, %151 ], [ %250, %257 ]
  %.5.ph = phi i64 [ %.4765769, %265 ], [ %.4765769, %263 ], [ %256, %391 ], [ %256, %281 ], [ %256, %274 ], [ %.3756, %243 ], [ %.2752, %.thread749 ], [ %.1748, %.thread745 ], [ %.0641744, %.thread741 ], [ %61, %151 ], [ %256, %257 ]
  store i64 %.sink880, ptr %16, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread779, %.loopexit.sink.split, %393, %.loopexit796
  %.5 = phi i64 [ %256, %.loopexit796 ], [ %256, %393 ], [ %.5.ph, %.loopexit.sink.split ], [ %256, %.thread779 ]
  %605 = uitofp nneg i64 %.5 to float
  store float %605, ptr %14, align 4, !tbaa !9
  br label %606

606:                                              ; preds = %101, %.loopexit, %141, %125, %.thread739
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #3

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

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

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

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

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

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

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

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

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

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

declare i32 @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 i32 @sggbak_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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


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