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

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

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

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

169:                                              ; preds = %29
  store i64 1, ptr %101, align 8, !tbaa !9
  store i64 0, ptr %89, align 8, !tbaa !9
  br label %177

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

174:                                              ; preds = %170
  store i64 2, ptr %101, align 8, !tbaa !9
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %176

175:                                              ; preds = %170
  store i64 -1, ptr %101, align 8, !tbaa !9
  store i64 0, ptr %89, align 8, !tbaa !9
  br label %176

176:                                              ; preds = %175, %174
  br label %177

177:                                              ; preds = %176, %169
  %178 = load ptr, ptr %33, align 8, !tbaa !5
  %179 = call i64 @lsame_(ptr noundef %178, ptr noundef @.str)
  %180 = icmp ne i64 %179, 0
  br i1 %180, label %181, label %182

181:                                              ; preds = %177
  store i64 1, ptr %102, align 8, !tbaa !9
  store i64 0, ptr %90, align 8, !tbaa !9
  br label %189

182:                                              ; preds = %177
  %183 = load ptr, ptr %33, align 8, !tbaa !5
  %184 = call i64 @lsame_(ptr noundef %183, ptr noundef @.str.1)
  %185 = icmp ne i64 %184, 0
  br i1 %185, label %186, label %187

186:                                              ; preds = %182
  store i64 2, ptr %102, align 8, !tbaa !9
  store i64 1, ptr %90, align 8, !tbaa !9
  br label %188

187:                                              ; preds = %182
  store i64 -1, ptr %102, align 8, !tbaa !9
  store i64 0, ptr %90, align 8, !tbaa !9
  br label %188

188:                                              ; preds = %187, %186
  br label %189

189:                                              ; preds = %188, %181
  %190 = load i64, ptr %89, align 8, !tbaa !9
  %191 = icmp ne i64 %190, 0
  br i1 %191, label %195, label %192

192:                                              ; preds = %189
  %193 = load i64, ptr %90, align 8, !tbaa !9
  %194 = icmp ne i64 %193, 0
  br label %195

195:                                              ; preds = %192, %189
  %196 = phi i1 [ true, %189 ], [ %194, %192 ]
  %197 = zext i1 %196 to i32
  %198 = sext i32 %197 to i64
  store i64 %198, ptr %82, align 8, !tbaa !9
  %199 = load ptr, ptr %31, align 8, !tbaa !5
  %200 = call i64 @lsame_(ptr noundef %199, ptr noundef @.str)
  %201 = icmp ne i64 %200, 0
  br i1 %201, label %206, label %202

202:                                              ; preds = %195
  %203 = load ptr, ptr %31, align 8, !tbaa !5
  %204 = call i64 @lsame_(ptr noundef %203, ptr noundef @.str.2)
  %205 = icmp ne i64 %204, 0
  br label %206

206:                                              ; preds = %202, %195
  %207 = phi i1 [ true, %195 ], [ %205, %202 ]
  %208 = zext i1 %207 to i32
  %209 = sext i32 %208 to i64
  store i64 %209, ptr %94, align 8, !tbaa !9
  %210 = load ptr, ptr %34, align 8, !tbaa !5
  %211 = call i64 @lsame_(ptr noundef %210, ptr noundef @.str)
  store i64 %211, ptr %109, align 8, !tbaa !9
  %212 = load ptr, ptr %34, align 8, !tbaa !5
  %213 = call i64 @lsame_(ptr noundef %212, ptr noundef @.str.3)
  store i64 %213, ptr %105, align 8, !tbaa !9
  %214 = load ptr, ptr %34, align 8, !tbaa !5
  %215 = call i64 @lsame_(ptr noundef %214, ptr noundef @.str.1)
  store i64 %215, ptr %112, align 8, !tbaa !9
  %216 = load ptr, ptr %34, align 8, !tbaa !5
  %217 = call i64 @lsame_(ptr noundef %216, ptr noundef @.str.4)
  store i64 %217, ptr %103, align 8, !tbaa !9
  %218 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 0, ptr %218, align 8, !tbaa !9
  %219 = load ptr, ptr %56, align 8, !tbaa !5
  %220 = load i64, ptr %219, align 8, !tbaa !9
  %221 = icmp eq i64 %220, -1
  %222 = zext i1 %221 to i32
  %223 = sext i32 %222 to i64
  store i64 %223, ptr %111, align 8, !tbaa !9
  %224 = load i64, ptr %94, align 8, !tbaa !9
  %225 = icmp ne i64 %224, 0
  br i1 %225, label %236, label %226

226:                                              ; preds = %206
  %227 = load ptr, ptr %31, align 8, !tbaa !5
  %228 = call i64 @lsame_(ptr noundef %227, ptr noundef @.str.5)
  %229 = icmp ne i64 %228, 0
  br i1 %229, label %236, label %230

230:                                              ; preds = %226
  %231 = load ptr, ptr %31, align 8, !tbaa !5
  %232 = call i64 @lsame_(ptr noundef %231, ptr noundef @.str.4)
  %233 = icmp ne i64 %232, 0
  br i1 %233, label %236, label %234

234:                                              ; preds = %230
  %235 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -1, ptr %235, align 8, !tbaa !9
  br label %334

236:                                              ; preds = %230, %226, %206
  %237 = load i64, ptr %101, align 8, !tbaa !9
  %238 = icmp sle i64 %237, 0
  br i1 %238, label %239, label %241

239:                                              ; preds = %236
  %240 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -2, ptr %240, align 8, !tbaa !9
  br label %333

241:                                              ; preds = %236
  %242 = load i64, ptr %102, align 8, !tbaa !9
  %243 = icmp sle i64 %242, 0
  br i1 %243, label %244, label %246

244:                                              ; preds = %241
  %245 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -3, ptr %245, align 8, !tbaa !9
  br label %332

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

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

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

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

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

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

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

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

272:                                              ; preds = %266
  br label %276

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

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

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

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

287:                                              ; preds = %281
  br label %291

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

342:                                              ; preds = %338
  store i64 1, ptr %107, align 8, !tbaa !9
  store i64 1, ptr %108, align 8, !tbaa !9
  br label %443

343:                                              ; preds = %338
  %344 = load i64, ptr %94, align 8, !tbaa !9
  %345 = icmp ne i64 %344, 0
  br i1 %345, label %346, label %353

346:                                              ; preds = %343
  %347 = load i64, ptr %82, align 8, !tbaa !9
  %348 = icmp ne i64 %347, 0
  br i1 %348, label %353, label %349

349:                                              ; preds = %346
  %350 = load ptr, ptr %35, align 8, !tbaa !5
  %351 = load i64, ptr %350, align 8, !tbaa !9
  %352 = shl i64 %351, 1
  store i64 %352, ptr %107, align 8, !tbaa !9
  br label %357

353:                                              ; preds = %346, %343
  %354 = load ptr, ptr %35, align 8, !tbaa !5
  %355 = load i64, ptr %354, align 8, !tbaa !9
  %356 = mul nsw i64 %355, 6
  store i64 %356, ptr %107, align 8, !tbaa !9
  br label %357

357:                                              ; preds = %353, %349
  %358 = load i64, ptr %105, align 8, !tbaa !9
  %359 = icmp ne i64 %358, 0
  br i1 %359, label %360, label %364

360:                                              ; preds = %357
  %361 = load ptr, ptr %35, align 8, !tbaa !5
  %362 = load i64, ptr %361, align 8, !tbaa !9
  %363 = mul nsw i64 %362, 10
  store i64 %363, ptr %107, align 8, !tbaa !9
  br label %380

364:                                              ; preds = %357
  %365 = load i64, ptr %112, align 8, !tbaa !9
  %366 = icmp ne i64 %365, 0
  br i1 %366, label %370, label %367

367:                                              ; preds = %364
  %368 = load i64, ptr %103, align 8, !tbaa !9
  %369 = icmp ne i64 %368, 0
  br i1 %369, label %370, label %379

370:                                              ; preds = %367, %364
  %371 = load ptr, ptr %35, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = shl i64 %372, 1
  %374 = load ptr, ptr %35, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = add nsw i64 %375, 4
  %377 = mul nsw i64 %373, %376
  %378 = add nsw i64 %377, 16
  store i64 %378, ptr %107, align 8, !tbaa !9
  br label %379

379:                                              ; preds = %370, %367
  br label %380

380:                                              ; preds = %379, %360
  %381 = load i64, ptr %107, align 8, !tbaa !9
  store i64 %381, ptr %108, align 8, !tbaa !9
  %382 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %382, ptr %68, align 8, !tbaa !9
  %383 = load ptr, ptr %35, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  %385 = load ptr, ptr %35, align 8, !tbaa !5
  %386 = load i64, ptr %385, align 8, !tbaa !9
  %387 = load ptr, ptr %35, align 8, !tbaa !5
  %388 = load ptr, ptr %35, align 8, !tbaa !5
  %389 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %387, ptr noundef @c__1, ptr noundef %388, ptr noundef @c__0)
  %390 = mul nsw i64 %386, %389
  %391 = add nsw i64 %384, %390
  store i64 %391, ptr %69, align 8, !tbaa !9
  %392 = load i64, ptr %68, align 8, !tbaa !9
  %393 = load i64, ptr %69, align 8, !tbaa !9
  %394 = icmp sge i64 %392, %393
  br i1 %394, label %395, label %397

395:                                              ; preds = %380
  %396 = load i64, ptr %68, align 8, !tbaa !9
  br label %399

397:                                              ; preds = %380
  %398 = load i64, ptr %69, align 8, !tbaa !9
  br label %399

399:                                              ; preds = %397, %395
  %400 = phi i64 [ %396, %395 ], [ %398, %397 ]
  store i64 %400, ptr %108, align 8, !tbaa !9
  %401 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %401, ptr %68, align 8, !tbaa !9
  %402 = load ptr, ptr %35, align 8, !tbaa !5
  %403 = load i64, ptr %402, align 8, !tbaa !9
  %404 = load ptr, ptr %35, align 8, !tbaa !5
  %405 = load i64, ptr %404, align 8, !tbaa !9
  %406 = load ptr, ptr %35, align 8, !tbaa !5
  %407 = load ptr, ptr %35, align 8, !tbaa !5
  %408 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %406, ptr noundef @c__1, ptr noundef %407, ptr noundef @c__0)
  %409 = mul nsw i64 %405, %408
  %410 = add nsw i64 %403, %409
  store i64 %410, ptr %69, align 8, !tbaa !9
  %411 = load i64, ptr %68, align 8, !tbaa !9
  %412 = load i64, ptr %69, align 8, !tbaa !9
  %413 = icmp sge i64 %411, %412
  br i1 %413, label %414, label %416

414:                                              ; preds = %399
  %415 = load i64, ptr %68, align 8, !tbaa !9
  br label %418

416:                                              ; preds = %399
  %417 = load i64, ptr %69, align 8, !tbaa !9
  br label %418

418:                                              ; preds = %416, %414
  %419 = phi i64 [ %415, %414 ], [ %417, %416 ]
  store i64 %419, ptr %108, align 8, !tbaa !9
  %420 = load i64, ptr %89, align 8, !tbaa !9
  %421 = icmp ne i64 %420, 0
  br i1 %421, label %422, label %442

422:                                              ; preds = %418
  %423 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %423, ptr %68, align 8, !tbaa !9
  %424 = load ptr, ptr %35, align 8, !tbaa !5
  %425 = load i64, ptr %424, align 8, !tbaa !9
  %426 = load ptr, ptr %35, align 8, !tbaa !5
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = load ptr, ptr %35, align 8, !tbaa !5
  %429 = load ptr, ptr %35, align 8, !tbaa !5
  %430 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.9, ptr noundef @.str.7, ptr noundef %428, ptr noundef @c__1, ptr noundef %429, ptr noundef @c__0)
  %431 = mul nsw i64 %427, %430
  %432 = add nsw i64 %425, %431
  store i64 %432, ptr %69, align 8, !tbaa !9
  %433 = load i64, ptr %68, align 8, !tbaa !9
  %434 = load i64, ptr %69, align 8, !tbaa !9
  %435 = icmp sge i64 %433, %434
  br i1 %435, label %436, label %438

436:                                              ; preds = %422
  %437 = load i64, ptr %68, align 8, !tbaa !9
  br label %440

438:                                              ; preds = %422
  %439 = load i64, ptr %69, align 8, !tbaa !9
  br label %440

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

442:                                              ; preds = %440, %418
  br label %443

443:                                              ; preds = %442, %342
  %444 = load i64, ptr %108, align 8, !tbaa !9
  %445 = sitofp i64 %444 to float
  %446 = load ptr, ptr %55, align 8, !tbaa !5
  %447 = getelementptr inbounds float, ptr %446, i64 1
  store float %445, ptr %447, align 4, !tbaa !11
  %448 = load ptr, ptr %56, align 8, !tbaa !5
  %449 = load i64, ptr %448, align 8, !tbaa !9
  %450 = load i64, ptr %107, align 8, !tbaa !9
  %451 = icmp slt i64 %449, %450
  br i1 %451, label %452, label %457

452:                                              ; preds = %443
  %453 = load i64, ptr %111, align 8, !tbaa !9
  %454 = icmp ne i64 %453, 0
  br i1 %454, label %457, label %455

455:                                              ; preds = %452
  %456 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -26, ptr %456, align 8, !tbaa !9
  br label %457

457:                                              ; preds = %455, %452, %443
  br label %458

458:                                              ; preds = %457, %334
  %459 = load ptr, ptr %59, align 8, !tbaa !5
  %460 = load i64, ptr %459, align 8, !tbaa !9
  %461 = icmp ne i64 %460, 0
  br i1 %461, label %462, label %467

462:                                              ; preds = %458
  %463 = load ptr, ptr %59, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = sub nsw i64 0, %464
  store i64 %465, ptr %68, align 8, !tbaa !9
  %466 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %68)
  store i32 0, ptr %30, align 4
  store i32 1, ptr %113, align 4
  br label %1603

467:                                              ; preds = %458
  %468 = load i64, ptr %111, align 8, !tbaa !9
  %469 = icmp ne i64 %468, 0
  br i1 %469, label %470, label %471

470:                                              ; preds = %467
  store i32 0, ptr %30, align 4
  store i32 1, ptr %113, align 4
  br label %1603

471:                                              ; preds = %467
  br label %472

472:                                              ; preds = %471
  %473 = load ptr, ptr %35, align 8, !tbaa !5
  %474 = load i64, ptr %473, align 8, !tbaa !9
  %475 = icmp eq i64 %474, 0
  br i1 %475, label %476, label %477

476:                                              ; preds = %472
  store i32 0, ptr %30, align 4
  store i32 1, ptr %113, align 4
  br label %1603

477:                                              ; preds = %472
  %478 = call double @slamch_(ptr noundef @.str.2)
  %479 = fptrunc double %478 to float
  store float %479, ptr %81, align 4, !tbaa !11
  %480 = call double @slamch_(ptr noundef @.str.5)
  %481 = fptrunc double %480 to float
  store float %481, ptr %110, align 4, !tbaa !11
  %482 = load float, ptr %110, align 4, !tbaa !11
  %483 = fdiv float 1.000000e+00, %482
  store float %483, ptr %100, align 4, !tbaa !11
  %484 = call i32 @slabad_(ptr noundef %110, ptr noundef %100)
  %485 = load float, ptr %110, align 4, !tbaa !11
  %486 = fpext float %485 to double
  %487 = call double @sqrt(double noundef %486) #4
  %488 = load float, ptr %81, align 4, !tbaa !11
  %489 = fpext float %488 to double
  %490 = fdiv double %487, %489
  %491 = fptrunc double %490 to float
  store float %491, ptr %110, align 4, !tbaa !11
  %492 = load float, ptr %110, align 4, !tbaa !11
  %493 = fdiv float 1.000000e+00, %492
  store float %493, ptr %100, align 4, !tbaa !11
  %494 = load ptr, ptr %35, align 8, !tbaa !5
  %495 = load ptr, ptr %35, align 8, !tbaa !5
  %496 = load ptr, ptr %36, align 8, !tbaa !5
  %497 = load i64, ptr %61, align 8, !tbaa !9
  %498 = getelementptr inbounds float, ptr %496, i64 %497
  %499 = load ptr, ptr %37, align 8, !tbaa !5
  %500 = load ptr, ptr %55, align 8, !tbaa !5
  %501 = getelementptr inbounds float, ptr %500, i64 1
  %502 = call double @slange_(ptr noundef @.str.11, ptr noundef %494, ptr noundef %495, ptr noundef %498, ptr noundef %499, ptr noundef %501)
  %503 = fptrunc double %502 to float
  store float %503, ptr %84, align 4, !tbaa !11
  store i64 0, ptr %96, align 8, !tbaa !9
  %504 = load float, ptr %84, align 4, !tbaa !11
  %505 = fcmp ogt float %504, 0.000000e+00
  br i1 %505, label %506, label %512

506:                                              ; preds = %477
  %507 = load float, ptr %84, align 4, !tbaa !11
  %508 = load float, ptr %110, align 4, !tbaa !11
  %509 = fcmp olt float %507, %508
  br i1 %509, label %510, label %512

510:                                              ; preds = %506
  %511 = load float, ptr %110, align 4, !tbaa !11
  store float %511, ptr %104, align 4, !tbaa !11
  store i64 1, ptr %96, align 8, !tbaa !9
  br label %519

512:                                              ; preds = %506, %477
  %513 = load float, ptr %84, align 4, !tbaa !11
  %514 = load float, ptr %100, align 4, !tbaa !11
  %515 = fcmp ogt float %513, %514
  br i1 %515, label %516, label %518

516:                                              ; preds = %512
  %517 = load float, ptr %100, align 4, !tbaa !11
  store float %517, ptr %104, align 4, !tbaa !11
  store i64 1, ptr %96, align 8, !tbaa !9
  br label %518

518:                                              ; preds = %516, %512
  br label %519

519:                                              ; preds = %518, %510
  %520 = load i64, ptr %96, align 8, !tbaa !9
  %521 = icmp ne i64 %520, 0
  br i1 %521, label %522, label %530

522:                                              ; preds = %519
  %523 = load ptr, ptr %35, align 8, !tbaa !5
  %524 = load ptr, ptr %35, align 8, !tbaa !5
  %525 = load ptr, ptr %36, align 8, !tbaa !5
  %526 = load i64, ptr %61, align 8, !tbaa !9
  %527 = getelementptr inbounds float, ptr %525, i64 %526
  %528 = load ptr, ptr %37, align 8, !tbaa !5
  %529 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %84, ptr noundef %104, ptr noundef %523, ptr noundef %524, ptr noundef %527, ptr noundef %528, ptr noundef %86)
  br label %530

530:                                              ; preds = %522, %519
  %531 = load ptr, ptr %35, align 8, !tbaa !5
  %532 = load ptr, ptr %35, align 8, !tbaa !5
  %533 = load ptr, ptr %38, align 8, !tbaa !5
  %534 = load i64, ptr %63, align 8, !tbaa !9
  %535 = getelementptr inbounds float, ptr %533, i64 %534
  %536 = load ptr, ptr %39, align 8, !tbaa !5
  %537 = load ptr, ptr %55, align 8, !tbaa !5
  %538 = getelementptr inbounds float, ptr %537, i64 1
  %539 = call double @slange_(ptr noundef @.str.11, ptr noundef %531, ptr noundef %532, ptr noundef %535, ptr noundef %536, ptr noundef %538)
  %540 = fptrunc double %539 to float
  store float %540, ptr %85, align 4, !tbaa !11
  store i64 0, ptr %97, align 8, !tbaa !9
  %541 = load float, ptr %85, align 4, !tbaa !11
  %542 = fcmp ogt float %541, 0.000000e+00
  br i1 %542, label %543, label %549

543:                                              ; preds = %530
  %544 = load float, ptr %85, align 4, !tbaa !11
  %545 = load float, ptr %110, align 4, !tbaa !11
  %546 = fcmp olt float %544, %545
  br i1 %546, label %547, label %549

547:                                              ; preds = %543
  %548 = load float, ptr %110, align 4, !tbaa !11
  store float %548, ptr %106, align 4, !tbaa !11
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %556

549:                                              ; preds = %543, %530
  %550 = load float, ptr %85, align 4, !tbaa !11
  %551 = load float, ptr %100, align 4, !tbaa !11
  %552 = fcmp ogt float %550, %551
  br i1 %552, label %553, label %555

553:                                              ; preds = %549
  %554 = load float, ptr %100, align 4, !tbaa !11
  store float %554, ptr %106, align 4, !tbaa !11
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %555

555:                                              ; preds = %553, %549
  br label %556

556:                                              ; preds = %555, %547
  %557 = load i64, ptr %97, align 8, !tbaa !9
  %558 = icmp ne i64 %557, 0
  br i1 %558, label %559, label %567

559:                                              ; preds = %556
  %560 = load ptr, ptr %35, align 8, !tbaa !5
  %561 = load ptr, ptr %35, align 8, !tbaa !5
  %562 = load ptr, ptr %38, align 8, !tbaa !5
  %563 = load i64, ptr %63, align 8, !tbaa !9
  %564 = getelementptr inbounds float, ptr %562, i64 %563
  %565 = load ptr, ptr %39, align 8, !tbaa !5
  %566 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %85, ptr noundef %106, ptr noundef %560, ptr noundef %561, ptr noundef %564, ptr noundef %565, ptr noundef %86)
  br label %567

567:                                              ; preds = %559, %556
  %568 = load ptr, ptr %31, align 8, !tbaa !5
  %569 = load ptr, ptr %35, align 8, !tbaa !5
  %570 = load ptr, ptr %36, align 8, !tbaa !5
  %571 = load i64, ptr %61, align 8, !tbaa !9
  %572 = getelementptr inbounds float, ptr %570, i64 %571
  %573 = load ptr, ptr %37, align 8, !tbaa !5
  %574 = load ptr, ptr %38, align 8, !tbaa !5
  %575 = load i64, ptr %63, align 8, !tbaa !9
  %576 = getelementptr inbounds float, ptr %574, i64 %575
  %577 = load ptr, ptr %39, align 8, !tbaa !5
  %578 = load ptr, ptr %47, align 8, !tbaa !5
  %579 = load ptr, ptr %48, align 8, !tbaa !5
  %580 = load ptr, ptr %49, align 8, !tbaa !5
  %581 = getelementptr inbounds float, ptr %580, i64 1
  %582 = load ptr, ptr %50, align 8, !tbaa !5
  %583 = getelementptr inbounds float, ptr %582, i64 1
  %584 = load ptr, ptr %55, align 8, !tbaa !5
  %585 = getelementptr inbounds float, ptr %584, i64 1
  %586 = call i32 @sggbal_(ptr noundef %568, ptr noundef %569, ptr noundef %572, ptr noundef %573, ptr noundef %576, ptr noundef %577, ptr noundef %578, ptr noundef %579, ptr noundef %581, ptr noundef %583, ptr noundef %585, ptr noundef %86)
  %587 = load ptr, ptr %35, align 8, !tbaa !5
  %588 = load ptr, ptr %35, align 8, !tbaa !5
  %589 = load ptr, ptr %36, align 8, !tbaa !5
  %590 = load i64, ptr %61, align 8, !tbaa !9
  %591 = getelementptr inbounds float, ptr %589, i64 %590
  %592 = load ptr, ptr %37, align 8, !tbaa !5
  %593 = load ptr, ptr %55, align 8, !tbaa !5
  %594 = getelementptr inbounds float, ptr %593, i64 1
  %595 = call double @slange_(ptr noundef @.str.13, ptr noundef %587, ptr noundef %588, ptr noundef %591, ptr noundef %592, ptr noundef %594)
  %596 = fptrunc double %595 to float
  %597 = load ptr, ptr %51, align 8, !tbaa !5
  store float %596, ptr %597, align 4, !tbaa !11
  %598 = load i64, ptr %96, align 8, !tbaa !9
  %599 = icmp ne i64 %598, 0
  br i1 %599, label %600, label %612

600:                                              ; preds = %567
  %601 = load ptr, ptr %51, align 8, !tbaa !5
  %602 = load float, ptr %601, align 4, !tbaa !11
  %603 = load ptr, ptr %55, align 8, !tbaa !5
  %604 = getelementptr inbounds float, ptr %603, i64 1
  store float %602, ptr %604, align 4, !tbaa !11
  %605 = load ptr, ptr %55, align 8, !tbaa !5
  %606 = getelementptr inbounds float, ptr %605, i64 1
  %607 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %104, ptr noundef %84, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %606, ptr noundef @c__1, ptr noundef %86)
  %608 = load ptr, ptr %55, align 8, !tbaa !5
  %609 = getelementptr inbounds float, ptr %608, i64 1
  %610 = load float, ptr %609, align 4, !tbaa !11
  %611 = load ptr, ptr %51, align 8, !tbaa !5
  store float %610, ptr %611, align 4, !tbaa !11
  br label %612

612:                                              ; preds = %600, %567
  %613 = load ptr, ptr %35, align 8, !tbaa !5
  %614 = load ptr, ptr %35, align 8, !tbaa !5
  %615 = load ptr, ptr %38, align 8, !tbaa !5
  %616 = load i64, ptr %63, align 8, !tbaa !9
  %617 = getelementptr inbounds float, ptr %615, i64 %616
  %618 = load ptr, ptr %39, align 8, !tbaa !5
  %619 = load ptr, ptr %55, align 8, !tbaa !5
  %620 = getelementptr inbounds float, ptr %619, i64 1
  %621 = call double @slange_(ptr noundef @.str.13, ptr noundef %613, ptr noundef %614, ptr noundef %617, ptr noundef %618, ptr noundef %620)
  %622 = fptrunc double %621 to float
  %623 = load ptr, ptr %52, align 8, !tbaa !5
  store float %622, ptr %623, align 4, !tbaa !11
  %624 = load i64, ptr %97, align 8, !tbaa !9
  %625 = icmp ne i64 %624, 0
  br i1 %625, label %626, label %638

626:                                              ; preds = %612
  %627 = load ptr, ptr %52, align 8, !tbaa !5
  %628 = load float, ptr %627, align 4, !tbaa !11
  %629 = load ptr, ptr %55, align 8, !tbaa !5
  %630 = getelementptr inbounds float, ptr %629, i64 1
  store float %628, ptr %630, align 4, !tbaa !11
  %631 = load ptr, ptr %55, align 8, !tbaa !5
  %632 = getelementptr inbounds float, ptr %631, i64 1
  %633 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %106, ptr noundef %85, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %632, ptr noundef @c__1, ptr noundef %86)
  %634 = load ptr, ptr %55, align 8, !tbaa !5
  %635 = getelementptr inbounds float, ptr %634, i64 1
  %636 = load float, ptr %635, align 4, !tbaa !11
  %637 = load ptr, ptr %52, align 8, !tbaa !5
  store float %636, ptr %637, align 4, !tbaa !11
  br label %638

638:                                              ; preds = %626, %612
  %639 = load ptr, ptr %48, align 8, !tbaa !5
  %640 = load i64, ptr %639, align 8, !tbaa !9
  %641 = add nsw i64 %640, 1
  %642 = load ptr, ptr %47, align 8, !tbaa !5
  %643 = load i64, ptr %642, align 8, !tbaa !9
  %644 = sub nsw i64 %641, %643
  store i64 %644, ptr %95, align 8, !tbaa !9
  %645 = load i64, ptr %82, align 8, !tbaa !9
  %646 = icmp ne i64 %645, 0
  br i1 %646, label %650, label %647

647:                                              ; preds = %638
  %648 = load i64, ptr %109, align 8, !tbaa !9
  %649 = icmp ne i64 %648, 0
  br i1 %649, label %657, label %650

650:                                              ; preds = %647, %638
  %651 = load ptr, ptr %35, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = add nsw i64 %652, 1
  %654 = load ptr, ptr %47, align 8, !tbaa !5
  %655 = load i64, ptr %654, align 8, !tbaa !9
  %656 = sub nsw i64 %653, %655
  store i64 %656, ptr %93, align 8, !tbaa !9
  br label %659

657:                                              ; preds = %647
  %658 = load i64, ptr %95, align 8, !tbaa !9
  store i64 %658, ptr %93, align 8, !tbaa !9
  br label %659

659:                                              ; preds = %657, %650
  store i64 1, ptr %87, align 8, !tbaa !9
  %660 = load i64, ptr %87, align 8, !tbaa !9
  %661 = load i64, ptr %95, align 8, !tbaa !9
  %662 = add nsw i64 %660, %661
  store i64 %662, ptr %91, align 8, !tbaa !9
  %663 = load ptr, ptr %56, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = add nsw i64 %664, 1
  %666 = load i64, ptr %91, align 8, !tbaa !9
  %667 = sub nsw i64 %665, %666
  store i64 %667, ptr %68, align 8, !tbaa !9
  %668 = load ptr, ptr %38, align 8, !tbaa !5
  %669 = load ptr, ptr %47, align 8, !tbaa !5
  %670 = load i64, ptr %669, align 8, !tbaa !9
  %671 = load ptr, ptr %47, align 8, !tbaa !5
  %672 = load i64, ptr %671, align 8, !tbaa !9
  %673 = load i64, ptr %62, align 8, !tbaa !9
  %674 = mul nsw i64 %672, %673
  %675 = add nsw i64 %670, %674
  %676 = getelementptr inbounds float, ptr %668, i64 %675
  %677 = load ptr, ptr %39, align 8, !tbaa !5
  %678 = load ptr, ptr %55, align 8, !tbaa !5
  %679 = load i64, ptr %87, align 8, !tbaa !9
  %680 = getelementptr inbounds float, ptr %678, i64 %679
  %681 = load ptr, ptr %55, align 8, !tbaa !5
  %682 = load i64, ptr %91, align 8, !tbaa !9
  %683 = getelementptr inbounds float, ptr %681, i64 %682
  %684 = call i32 @sgeqrf_(ptr noundef %95, ptr noundef %93, ptr noundef %676, ptr noundef %677, ptr noundef %680, ptr noundef %683, ptr noundef %68, ptr noundef %86)
  %685 = load ptr, ptr %56, align 8, !tbaa !5
  %686 = load i64, ptr %685, align 8, !tbaa !9
  %687 = add nsw i64 %686, 1
  %688 = load i64, ptr %91, align 8, !tbaa !9
  %689 = sub nsw i64 %687, %688
  store i64 %689, ptr %68, align 8, !tbaa !9
  %690 = load ptr, ptr %38, align 8, !tbaa !5
  %691 = load ptr, ptr %47, align 8, !tbaa !5
  %692 = load i64, ptr %691, align 8, !tbaa !9
  %693 = load ptr, ptr %47, align 8, !tbaa !5
  %694 = load i64, ptr %693, align 8, !tbaa !9
  %695 = load i64, ptr %62, align 8, !tbaa !9
  %696 = mul nsw i64 %694, %695
  %697 = add nsw i64 %692, %696
  %698 = getelementptr inbounds float, ptr %690, i64 %697
  %699 = load ptr, ptr %39, align 8, !tbaa !5
  %700 = load ptr, ptr %55, align 8, !tbaa !5
  %701 = load i64, ptr %87, align 8, !tbaa !9
  %702 = getelementptr inbounds float, ptr %700, i64 %701
  %703 = load ptr, ptr %36, align 8, !tbaa !5
  %704 = load ptr, ptr %47, align 8, !tbaa !5
  %705 = load i64, ptr %704, align 8, !tbaa !9
  %706 = load ptr, ptr %47, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = load i64, ptr %60, align 8, !tbaa !9
  %709 = mul nsw i64 %707, %708
  %710 = add nsw i64 %705, %709
  %711 = getelementptr inbounds float, ptr %703, i64 %710
  %712 = load ptr, ptr %37, align 8, !tbaa !5
  %713 = load ptr, ptr %55, align 8, !tbaa !5
  %714 = load i64, ptr %91, align 8, !tbaa !9
  %715 = getelementptr inbounds float, ptr %713, i64 %714
  %716 = call i32 @sormqr_(ptr noundef @.str.14, ptr noundef @.str.15, ptr noundef %95, ptr noundef %93, ptr noundef %95, ptr noundef %698, ptr noundef %699, ptr noundef %702, ptr noundef %711, ptr noundef %712, ptr noundef %715, ptr noundef %68, ptr noundef %86)
  %717 = load i64, ptr %89, align 8, !tbaa !9
  %718 = icmp ne i64 %717, 0
  br i1 %718, label %719, label %780

719:                                              ; preds = %659
  %720 = load ptr, ptr %35, align 8, !tbaa !5
  %721 = load ptr, ptr %35, align 8, !tbaa !5
  %722 = load ptr, ptr %43, align 8, !tbaa !5
  %723 = load i64, ptr %65, align 8, !tbaa !9
  %724 = getelementptr inbounds float, ptr %722, i64 %723
  %725 = load ptr, ptr %44, align 8, !tbaa !5
  %726 = call i32 @slaset_(ptr noundef @.str.16, ptr noundef %720, ptr noundef %721, ptr noundef @c_b57, ptr noundef @c_b58, ptr noundef %724, ptr noundef %725)
  %727 = load i64, ptr %95, align 8, !tbaa !9
  %728 = icmp sgt i64 %727, 1
  br i1 %728, label %729, label %757

729:                                              ; preds = %719
  %730 = load i64, ptr %95, align 8, !tbaa !9
  %731 = sub nsw i64 %730, 1
  store i64 %731, ptr %68, align 8, !tbaa !9
  %732 = load i64, ptr %95, align 8, !tbaa !9
  %733 = sub nsw i64 %732, 1
  store i64 %733, ptr %69, align 8, !tbaa !9
  %734 = load ptr, ptr %38, align 8, !tbaa !5
  %735 = load ptr, ptr %47, align 8, !tbaa !5
  %736 = load i64, ptr %735, align 8, !tbaa !9
  %737 = add nsw i64 %736, 1
  %738 = load ptr, ptr %47, align 8, !tbaa !5
  %739 = load i64, ptr %738, align 8, !tbaa !9
  %740 = load i64, ptr %62, align 8, !tbaa !9
  %741 = mul nsw i64 %739, %740
  %742 = add nsw i64 %737, %741
  %743 = getelementptr inbounds float, ptr %734, i64 %742
  %744 = load ptr, ptr %39, align 8, !tbaa !5
  %745 = load ptr, ptr %43, align 8, !tbaa !5
  %746 = load ptr, ptr %47, align 8, !tbaa !5
  %747 = load i64, ptr %746, align 8, !tbaa !9
  %748 = add nsw i64 %747, 1
  %749 = load ptr, ptr %47, align 8, !tbaa !5
  %750 = load i64, ptr %749, align 8, !tbaa !9
  %751 = load i64, ptr %64, align 8, !tbaa !9
  %752 = mul nsw i64 %750, %751
  %753 = add nsw i64 %748, %752
  %754 = getelementptr inbounds float, ptr %745, i64 %753
  %755 = load ptr, ptr %44, align 8, !tbaa !5
  %756 = call i32 @slacpy_(ptr noundef @.str.14, ptr noundef %68, ptr noundef %69, ptr noundef %743, ptr noundef %744, ptr noundef %754, ptr noundef %755)
  br label %757

757:                                              ; preds = %729, %719
  %758 = load ptr, ptr %56, align 8, !tbaa !5
  %759 = load i64, ptr %758, align 8, !tbaa !9
  %760 = add nsw i64 %759, 1
  %761 = load i64, ptr %91, align 8, !tbaa !9
  %762 = sub nsw i64 %760, %761
  store i64 %762, ptr %68, align 8, !tbaa !9
  %763 = load ptr, ptr %43, align 8, !tbaa !5
  %764 = load ptr, ptr %47, align 8, !tbaa !5
  %765 = load i64, ptr %764, align 8, !tbaa !9
  %766 = load ptr, ptr %47, align 8, !tbaa !5
  %767 = load i64, ptr %766, align 8, !tbaa !9
  %768 = load i64, ptr %64, align 8, !tbaa !9
  %769 = mul nsw i64 %767, %768
  %770 = add nsw i64 %765, %769
  %771 = getelementptr inbounds float, ptr %763, i64 %770
  %772 = load ptr, ptr %44, align 8, !tbaa !5
  %773 = load ptr, ptr %55, align 8, !tbaa !5
  %774 = load i64, ptr %87, align 8, !tbaa !9
  %775 = getelementptr inbounds float, ptr %773, i64 %774
  %776 = load ptr, ptr %55, align 8, !tbaa !5
  %777 = load i64, ptr %91, align 8, !tbaa !9
  %778 = getelementptr inbounds float, ptr %776, i64 %777
  %779 = call i32 @sorgqr_(ptr noundef %95, ptr noundef %95, ptr noundef %95, ptr noundef %771, ptr noundef %772, ptr noundef %775, ptr noundef %778, ptr noundef %68, ptr noundef %86)
  br label %780

780:                                              ; preds = %757, %659
  %781 = load i64, ptr %90, align 8, !tbaa !9
  %782 = icmp ne i64 %781, 0
  br i1 %782, label %783, label %791

783:                                              ; preds = %780
  %784 = load ptr, ptr %35, align 8, !tbaa !5
  %785 = load ptr, ptr %35, align 8, !tbaa !5
  %786 = load ptr, ptr %45, align 8, !tbaa !5
  %787 = load i64, ptr %67, align 8, !tbaa !9
  %788 = getelementptr inbounds float, ptr %786, i64 %787
  %789 = load ptr, ptr %46, align 8, !tbaa !5
  %790 = call i32 @slaset_(ptr noundef @.str.16, ptr noundef %784, ptr noundef %785, ptr noundef @c_b57, ptr noundef @c_b58, ptr noundef %788, ptr noundef %789)
  br label %791

791:                                              ; preds = %783, %780
  %792 = load i64, ptr %82, align 8, !tbaa !9
  %793 = icmp ne i64 %792, 0
  br i1 %793, label %797, label %794

794:                                              ; preds = %791
  %795 = load i64, ptr %109, align 8, !tbaa !9
  %796 = icmp ne i64 %795, 0
  br i1 %796, label %820, label %797

797:                                              ; preds = %794, %791
  %798 = load ptr, ptr %32, align 8, !tbaa !5
  %799 = load ptr, ptr %33, align 8, !tbaa !5
  %800 = load ptr, ptr %35, align 8, !tbaa !5
  %801 = load ptr, ptr %47, align 8, !tbaa !5
  %802 = load ptr, ptr %48, align 8, !tbaa !5
  %803 = load ptr, ptr %36, align 8, !tbaa !5
  %804 = load i64, ptr %61, align 8, !tbaa !9
  %805 = getelementptr inbounds float, ptr %803, i64 %804
  %806 = load ptr, ptr %37, align 8, !tbaa !5
  %807 = load ptr, ptr %38, align 8, !tbaa !5
  %808 = load i64, ptr %63, align 8, !tbaa !9
  %809 = getelementptr inbounds float, ptr %807, i64 %808
  %810 = load ptr, ptr %39, align 8, !tbaa !5
  %811 = load ptr, ptr %43, align 8, !tbaa !5
  %812 = load i64, ptr %65, align 8, !tbaa !9
  %813 = getelementptr inbounds float, ptr %811, i64 %812
  %814 = load ptr, ptr %44, align 8, !tbaa !5
  %815 = load ptr, ptr %45, align 8, !tbaa !5
  %816 = load i64, ptr %67, align 8, !tbaa !9
  %817 = getelementptr inbounds float, ptr %815, i64 %816
  %818 = load ptr, ptr %46, align 8, !tbaa !5
  %819 = call i32 @sgghrd_(ptr noundef %798, ptr noundef %799, ptr noundef %800, ptr noundef %801, ptr noundef %802, ptr noundef %805, ptr noundef %806, ptr noundef %809, ptr noundef %810, ptr noundef %813, ptr noundef %814, ptr noundef %817, ptr noundef %818, ptr noundef %86)
  br label %850

820:                                              ; preds = %794
  %821 = load ptr, ptr %36, align 8, !tbaa !5
  %822 = load ptr, ptr %47, align 8, !tbaa !5
  %823 = load i64, ptr %822, align 8, !tbaa !9
  %824 = load ptr, ptr %47, align 8, !tbaa !5
  %825 = load i64, ptr %824, align 8, !tbaa !9
  %826 = load i64, ptr %60, align 8, !tbaa !9
  %827 = mul nsw i64 %825, %826
  %828 = add nsw i64 %823, %827
  %829 = getelementptr inbounds float, ptr %821, i64 %828
  %830 = load ptr, ptr %37, align 8, !tbaa !5
  %831 = load ptr, ptr %38, align 8, !tbaa !5
  %832 = load ptr, ptr %47, align 8, !tbaa !5
  %833 = load i64, ptr %832, align 8, !tbaa !9
  %834 = load ptr, ptr %47, align 8, !tbaa !5
  %835 = load i64, ptr %834, align 8, !tbaa !9
  %836 = load i64, ptr %62, align 8, !tbaa !9
  %837 = mul nsw i64 %835, %836
  %838 = add nsw i64 %833, %837
  %839 = getelementptr inbounds float, ptr %831, i64 %838
  %840 = load ptr, ptr %39, align 8, !tbaa !5
  %841 = load ptr, ptr %43, align 8, !tbaa !5
  %842 = load i64, ptr %65, align 8, !tbaa !9
  %843 = getelementptr inbounds float, ptr %841, i64 %842
  %844 = load ptr, ptr %44, align 8, !tbaa !5
  %845 = load ptr, ptr %45, align 8, !tbaa !5
  %846 = load i64, ptr %67, align 8, !tbaa !9
  %847 = getelementptr inbounds float, ptr %845, i64 %846
  %848 = load ptr, ptr %46, align 8, !tbaa !5
  %849 = call i32 @sgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %95, ptr noundef @c__1, ptr noundef %95, ptr noundef %829, ptr noundef %830, ptr noundef %839, ptr noundef %840, ptr noundef %843, ptr noundef %844, ptr noundef %847, ptr noundef %848, ptr noundef %86)
  br label %850

850:                                              ; preds = %820, %797
  %851 = load i64, ptr %82, align 8, !tbaa !9
  %852 = icmp ne i64 %851, 0
  br i1 %852, label %856, label %853

853:                                              ; preds = %850
  %854 = load i64, ptr %109, align 8, !tbaa !9
  %855 = icmp ne i64 %854, 0
  br i1 %855, label %858, label %856

856:                                              ; preds = %853, %850
  %857 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  store i8 83, ptr %857, align 1, !tbaa !13
  br label %860

858:                                              ; preds = %853
  %859 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  store i8 69, ptr %859, align 1, !tbaa !13
  br label %860

860:                                              ; preds = %858, %856
  %861 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  %862 = load ptr, ptr %32, align 8, !tbaa !5
  %863 = load ptr, ptr %33, align 8, !tbaa !5
  %864 = load ptr, ptr %35, align 8, !tbaa !5
  %865 = load ptr, ptr %47, align 8, !tbaa !5
  %866 = load ptr, ptr %48, align 8, !tbaa !5
  %867 = load ptr, ptr %36, align 8, !tbaa !5
  %868 = load i64, ptr %61, align 8, !tbaa !9
  %869 = getelementptr inbounds float, ptr %867, i64 %868
  %870 = load ptr, ptr %37, align 8, !tbaa !5
  %871 = load ptr, ptr %38, align 8, !tbaa !5
  %872 = load i64, ptr %63, align 8, !tbaa !9
  %873 = getelementptr inbounds float, ptr %871, i64 %872
  %874 = load ptr, ptr %39, align 8, !tbaa !5
  %875 = load ptr, ptr %40, align 8, !tbaa !5
  %876 = getelementptr inbounds float, ptr %875, i64 1
  %877 = load ptr, ptr %41, align 8, !tbaa !5
  %878 = getelementptr inbounds float, ptr %877, i64 1
  %879 = load ptr, ptr %42, align 8, !tbaa !5
  %880 = getelementptr inbounds float, ptr %879, i64 1
  %881 = load ptr, ptr %43, align 8, !tbaa !5
  %882 = load i64, ptr %65, align 8, !tbaa !9
  %883 = getelementptr inbounds float, ptr %881, i64 %882
  %884 = load ptr, ptr %44, align 8, !tbaa !5
  %885 = load ptr, ptr %45, align 8, !tbaa !5
  %886 = load i64, ptr %67, align 8, !tbaa !9
  %887 = getelementptr inbounds float, ptr %885, i64 %886
  %888 = load ptr, ptr %46, align 8, !tbaa !5
  %889 = load ptr, ptr %55, align 8, !tbaa !5
  %890 = getelementptr inbounds float, ptr %889, i64 1
  %891 = load ptr, ptr %56, align 8, !tbaa !5
  %892 = call i32 @shgeqz_(ptr noundef %861, ptr noundef %862, ptr noundef %863, ptr noundef %864, ptr noundef %865, ptr noundef %866, ptr noundef %869, ptr noundef %870, ptr noundef %873, ptr noundef %874, ptr noundef %876, ptr noundef %878, ptr noundef %880, ptr noundef %883, ptr noundef %884, ptr noundef %887, ptr noundef %888, ptr noundef %890, ptr noundef %891, ptr noundef %86)
  %893 = load i64, ptr %86, align 8, !tbaa !9
  %894 = icmp ne i64 %893, 0
  br i1 %894, label %895, label %930

895:                                              ; preds = %860
  %896 = load i64, ptr %86, align 8, !tbaa !9
  %897 = icmp sgt i64 %896, 0
  br i1 %897, label %898, label %906

898:                                              ; preds = %895
  %899 = load i64, ptr %86, align 8, !tbaa !9
  %900 = load ptr, ptr %35, align 8, !tbaa !5
  %901 = load i64, ptr %900, align 8, !tbaa !9
  %902 = icmp sle i64 %899, %901
  br i1 %902, label %903, label %906

903:                                              ; preds = %898
  %904 = load i64, ptr %86, align 8, !tbaa !9
  %905 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %904, ptr %905, align 8, !tbaa !9
  br label %929

906:                                              ; preds = %898, %895
  %907 = load i64, ptr %86, align 8, !tbaa !9
  %908 = load ptr, ptr %35, align 8, !tbaa !5
  %909 = load i64, ptr %908, align 8, !tbaa !9
  %910 = icmp sgt i64 %907, %909
  br i1 %910, label %911, label %923

911:                                              ; preds = %906
  %912 = load i64, ptr %86, align 8, !tbaa !9
  %913 = load ptr, ptr %35, align 8, !tbaa !5
  %914 = load i64, ptr %913, align 8, !tbaa !9
  %915 = shl i64 %914, 1
  %916 = icmp sle i64 %912, %915
  br i1 %916, label %917, label %923

917:                                              ; preds = %911
  %918 = load i64, ptr %86, align 8, !tbaa !9
  %919 = load ptr, ptr %35, align 8, !tbaa !5
  %920 = load i64, ptr %919, align 8, !tbaa !9
  %921 = sub nsw i64 %918, %920
  %922 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %921, ptr %922, align 8, !tbaa !9
  br label %928

923:                                              ; preds = %911, %906
  %924 = load ptr, ptr %35, align 8, !tbaa !5
  %925 = load i64, ptr %924, align 8, !tbaa !9
  %926 = add nsw i64 %925, 1
  %927 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %926, ptr %927, align 8, !tbaa !9
  br label %928

928:                                              ; preds = %923, %917
  br label %929

929:                                              ; preds = %928, %903
  br label %1598

930:                                              ; preds = %860
  %931 = load i64, ptr %82, align 8, !tbaa !9
  %932 = icmp ne i64 %931, 0
  br i1 %932, label %936, label %933

933:                                              ; preds = %930
  %934 = load i64, ptr %109, align 8, !tbaa !9
  %935 = icmp ne i64 %934, 0
  br i1 %935, label %1140, label %936

936:                                              ; preds = %933, %930
  %937 = load i64, ptr %82, align 8, !tbaa !9
  %938 = icmp ne i64 %937, 0
  br i1 %938, label %939, label %984

939:                                              ; preds = %936
  %940 = load i64, ptr %89, align 8, !tbaa !9
  %941 = icmp ne i64 %940, 0
  br i1 %941, label %942, label %950

942:                                              ; preds = %939
  %943 = load i64, ptr %90, align 8, !tbaa !9
  %944 = icmp ne i64 %943, 0
  br i1 %944, label %945, label %947

945:                                              ; preds = %942
  %946 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  store i8 66, ptr %946, align 1, !tbaa !13
  br label %949

947:                                              ; preds = %942
  %948 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  store i8 76, ptr %948, align 1, !tbaa !13
  br label %949

949:                                              ; preds = %947, %945
  br label %952

950:                                              ; preds = %939
  %951 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  store i8 82, ptr %951, align 1, !tbaa !13
  br label %952

952:                                              ; preds = %950, %949
  %953 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  %954 = getelementptr inbounds [1 x i64], ptr %98, i64 0, i64 0
  %955 = load ptr, ptr %35, align 8, !tbaa !5
  %956 = load ptr, ptr %36, align 8, !tbaa !5
  %957 = load i64, ptr %61, align 8, !tbaa !9
  %958 = getelementptr inbounds float, ptr %956, i64 %957
  %959 = load ptr, ptr %37, align 8, !tbaa !5
  %960 = load ptr, ptr %38, align 8, !tbaa !5
  %961 = load i64, ptr %63, align 8, !tbaa !9
  %962 = getelementptr inbounds float, ptr %960, i64 %961
  %963 = load ptr, ptr %39, align 8, !tbaa !5
  %964 = load ptr, ptr %43, align 8, !tbaa !5
  %965 = load i64, ptr %65, align 8, !tbaa !9
  %966 = getelementptr inbounds float, ptr %964, i64 %965
  %967 = load ptr, ptr %44, align 8, !tbaa !5
  %968 = load ptr, ptr %45, align 8, !tbaa !5
  %969 = load i64, ptr %67, align 8, !tbaa !9
  %970 = getelementptr inbounds float, ptr %968, i64 %969
  %971 = load ptr, ptr %46, align 8, !tbaa !5
  %972 = load ptr, ptr %35, align 8, !tbaa !5
  %973 = load ptr, ptr %55, align 8, !tbaa !5
  %974 = getelementptr inbounds float, ptr %973, i64 1
  %975 = call i32 @stgevc_(ptr noundef %953, ptr noundef @.str.4, ptr noundef %954, ptr noundef %955, ptr noundef %958, ptr noundef %959, ptr noundef %962, ptr noundef %963, ptr noundef %966, ptr noundef %967, ptr noundef %970, ptr noundef %971, ptr noundef %972, ptr noundef %78, ptr noundef %974, ptr noundef %86)
  %976 = load i64, ptr %86, align 8, !tbaa !9
  %977 = icmp ne i64 %976, 0
  br i1 %977, label %978, label %983

978:                                              ; preds = %952
  %979 = load ptr, ptr %35, align 8, !tbaa !5
  %980 = load i64, ptr %979, align 8, !tbaa !9
  %981 = add nsw i64 %980, 2
  %982 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %981, ptr %982, align 8, !tbaa !9
  br label %1598

983:                                              ; preds = %952
  br label %984

984:                                              ; preds = %983, %936
  %985 = load i64, ptr %109, align 8, !tbaa !9
  %986 = icmp ne i64 %985, 0
  br i1 %986, label %1139, label %987

987:                                              ; preds = %984
  store i64 0, ptr %83, align 8, !tbaa !9
  %988 = load ptr, ptr %35, align 8, !tbaa !5
  %989 = load i64, ptr %988, align 8, !tbaa !9
  store i64 %989, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %74, align 8, !tbaa !9
  br label %990

990:                                              ; preds = %1135, %987
  %991 = load i64, ptr %74, align 8, !tbaa !9
  %992 = load i64, ptr %68, align 8, !tbaa !9
  %993 = icmp sle i64 %991, %992
  br i1 %993, label %994, label %1138

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

997:                                              ; preds = %994
  store i64 0, ptr %83, align 8, !tbaa !9
  br label %1134

998:                                              ; preds = %994
  store i64 1, ptr %79, align 8, !tbaa !9
  %999 = load i64, ptr %74, align 8, !tbaa !9
  %1000 = load ptr, ptr %35, align 8, !tbaa !5
  %1001 = load i64, ptr %1000, align 8, !tbaa !9
  %1002 = icmp slt i64 %999, %1001
  br i1 %1002, label %1003, label %1016

1003:                                             ; preds = %998
  %1004 = load ptr, ptr %36, align 8, !tbaa !5
  %1005 = load i64, ptr %74, align 8, !tbaa !9
  %1006 = add nsw i64 %1005, 1
  %1007 = load i64, ptr %74, align 8, !tbaa !9
  %1008 = load i64, ptr %60, align 8, !tbaa !9
  %1009 = mul nsw i64 %1007, %1008
  %1010 = add nsw i64 %1006, %1009
  %1011 = getelementptr inbounds float, ptr %1004, i64 %1010
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  %1013 = fcmp une float %1012, 0.000000e+00
  br i1 %1013, label %1014, label %1015

1014:                                             ; preds = %1003
  store i64 1, ptr %83, align 8, !tbaa !9
  store i64 2, ptr %79, align 8, !tbaa !9
  br label %1015

1015:                                             ; preds = %1014, %1003
  br label %1016

1016:                                             ; preds = %1015, %998
  %1017 = load ptr, ptr %35, align 8, !tbaa !5
  %1018 = load i64, ptr %1017, align 8, !tbaa !9
  store i64 %1018, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %1019

1019:                                             ; preds = %1027, %1016
  %1020 = load i64, ptr %75, align 8, !tbaa !9
  %1021 = load i64, ptr %69, align 8, !tbaa !9
  %1022 = icmp sle i64 %1020, %1021
  br i1 %1022, label %1023, label %1030

1023:                                             ; preds = %1019
  %1024 = load ptr, ptr %58, align 8, !tbaa !5
  %1025 = load i64, ptr %75, align 8, !tbaa !9
  %1026 = getelementptr inbounds i64, ptr %1024, i64 %1025
  store i64 0, ptr %1026, align 8, !tbaa !9
  br label %1027

1027:                                             ; preds = %1023
  %1028 = load i64, ptr %75, align 8, !tbaa !9
  %1029 = add nsw i64 %1028, 1
  store i64 %1029, ptr %75, align 8, !tbaa !9
  br label %1019, !llvm.loop !14

1030:                                             ; preds = %1019
  %1031 = load i64, ptr %79, align 8, !tbaa !9
  %1032 = icmp eq i64 %1031, 1
  br i1 %1032, label %1033, label %1037

1033:                                             ; preds = %1030
  %1034 = load ptr, ptr %58, align 8, !tbaa !5
  %1035 = load i64, ptr %74, align 8, !tbaa !9
  %1036 = getelementptr inbounds i64, ptr %1034, i64 %1035
  store i64 1, ptr %1036, align 8, !tbaa !9
  br label %1049

1037:                                             ; preds = %1030
  %1038 = load i64, ptr %79, align 8, !tbaa !9
  %1039 = icmp eq i64 %1038, 2
  br i1 %1039, label %1040, label %1048

1040:                                             ; preds = %1037
  %1041 = load ptr, ptr %58, align 8, !tbaa !5
  %1042 = load i64, ptr %74, align 8, !tbaa !9
  %1043 = getelementptr inbounds i64, ptr %1041, i64 %1042
  store i64 1, ptr %1043, align 8, !tbaa !9
  %1044 = load ptr, ptr %58, align 8, !tbaa !5
  %1045 = load i64, ptr %74, align 8, !tbaa !9
  %1046 = add nsw i64 %1045, 1
  %1047 = getelementptr inbounds i64, ptr %1044, i64 %1046
  store i64 1, ptr %1047, align 8, !tbaa !9
  br label %1048

1048:                                             ; preds = %1040, %1037
  br label %1049

1049:                                             ; preds = %1048, %1033
  %1050 = load i64, ptr %79, align 8, !tbaa !9
  %1051 = load ptr, ptr %35, align 8, !tbaa !5
  %1052 = load i64, ptr %1051, align 8, !tbaa !9
  %1053 = mul nsw i64 %1050, %1052
  %1054 = add nsw i64 %1053, 1
  store i64 %1054, ptr %91, align 8, !tbaa !9
  %1055 = load i64, ptr %91, align 8, !tbaa !9
  %1056 = load i64, ptr %79, align 8, !tbaa !9
  %1057 = load ptr, ptr %35, align 8, !tbaa !5
  %1058 = load i64, ptr %1057, align 8, !tbaa !9
  %1059 = mul nsw i64 %1056, %1058
  %1060 = add nsw i64 %1055, %1059
  store i64 %1060, ptr %92, align 8, !tbaa !9
  %1061 = load i64, ptr %105, align 8, !tbaa !9
  %1062 = icmp ne i64 %1061, 0
  br i1 %1062, label %1066, label %1063

1063:                                             ; preds = %1049
  %1064 = load i64, ptr %103, align 8, !tbaa !9
  %1065 = icmp ne i64 %1064, 0
  br i1 %1065, label %1066, label %1097

1066:                                             ; preds = %1063, %1049
  %1067 = load ptr, ptr %58, align 8, !tbaa !5
  %1068 = getelementptr inbounds i64, ptr %1067, i64 1
  %1069 = load ptr, ptr %35, align 8, !tbaa !5
  %1070 = load ptr, ptr %36, align 8, !tbaa !5
  %1071 = load i64, ptr %61, align 8, !tbaa !9
  %1072 = getelementptr inbounds float, ptr %1070, i64 %1071
  %1073 = load ptr, ptr %37, align 8, !tbaa !5
  %1074 = load ptr, ptr %38, align 8, !tbaa !5
  %1075 = load i64, ptr %63, align 8, !tbaa !9
  %1076 = getelementptr inbounds float, ptr %1074, i64 %1075
  %1077 = load ptr, ptr %39, align 8, !tbaa !5
  %1078 = load ptr, ptr %55, align 8, !tbaa !5
  %1079 = getelementptr inbounds float, ptr %1078, i64 1
  %1080 = load ptr, ptr %35, align 8, !tbaa !5
  %1081 = load ptr, ptr %55, align 8, !tbaa !5
  %1082 = load i64, ptr %91, align 8, !tbaa !9
  %1083 = getelementptr inbounds float, ptr %1081, i64 %1082
  %1084 = load ptr, ptr %35, align 8, !tbaa !5
  %1085 = load ptr, ptr %55, align 8, !tbaa !5
  %1086 = load i64, ptr %92, align 8, !tbaa !9
  %1087 = getelementptr inbounds float, ptr %1085, i64 %1086
  %1088 = call i32 @stgevc_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %1068, ptr noundef %1069, ptr noundef %1072, ptr noundef %1073, ptr noundef %1076, ptr noundef %1077, ptr noundef %1079, ptr noundef %1080, ptr noundef %1083, ptr noundef %1084, ptr noundef %79, ptr noundef %76, ptr noundef %1087, ptr noundef %86)
  %1089 = load i64, ptr %86, align 8, !tbaa !9
  %1090 = icmp ne i64 %1089, 0
  br i1 %1090, label %1091, label %1096

1091:                                             ; preds = %1066
  %1092 = load ptr, ptr %35, align 8, !tbaa !5
  %1093 = load i64, ptr %1092, align 8, !tbaa !9
  %1094 = add nsw i64 %1093, 2
  %1095 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %1094, ptr %1095, align 8, !tbaa !9
  br label %1598

1096:                                             ; preds = %1066
  br label %1097

1097:                                             ; preds = %1096, %1063
  %1098 = load ptr, ptr %56, align 8, !tbaa !5
  %1099 = load i64, ptr %1098, align 8, !tbaa !9
  %1100 = load i64, ptr %92, align 8, !tbaa !9
  %1101 = sub nsw i64 %1099, %1100
  %1102 = add nsw i64 %1101, 1
  store i64 %1102, ptr %69, align 8, !tbaa !9
  %1103 = load ptr, ptr %34, align 8, !tbaa !5
  %1104 = load ptr, ptr %58, align 8, !tbaa !5
  %1105 = getelementptr inbounds i64, ptr %1104, i64 1
  %1106 = load ptr, ptr %35, align 8, !tbaa !5
  %1107 = load ptr, ptr %36, align 8, !tbaa !5
  %1108 = load i64, ptr %61, align 8, !tbaa !9
  %1109 = getelementptr inbounds float, ptr %1107, i64 %1108
  %1110 = load ptr, ptr %37, align 8, !tbaa !5
  %1111 = load ptr, ptr %38, align 8, !tbaa !5
  %1112 = load i64, ptr %63, align 8, !tbaa !9
  %1113 = getelementptr inbounds float, ptr %1111, i64 %1112
  %1114 = load ptr, ptr %39, align 8, !tbaa !5
  %1115 = load ptr, ptr %55, align 8, !tbaa !5
  %1116 = getelementptr inbounds float, ptr %1115, i64 1
  %1117 = load ptr, ptr %35, align 8, !tbaa !5
  %1118 = load ptr, ptr %55, align 8, !tbaa !5
  %1119 = load i64, ptr %91, align 8, !tbaa !9
  %1120 = getelementptr inbounds float, ptr %1118, i64 %1119
  %1121 = load ptr, ptr %35, align 8, !tbaa !5
  %1122 = load ptr, ptr %53, align 8, !tbaa !5
  %1123 = load i64, ptr %74, align 8, !tbaa !9
  %1124 = getelementptr inbounds float, ptr %1122, i64 %1123
  %1125 = load ptr, ptr %54, align 8, !tbaa !5
  %1126 = load i64, ptr %74, align 8, !tbaa !9
  %1127 = getelementptr inbounds float, ptr %1125, i64 %1126
  %1128 = load ptr, ptr %55, align 8, !tbaa !5
  %1129 = load i64, ptr %92, align 8, !tbaa !9
  %1130 = getelementptr inbounds float, ptr %1128, i64 %1129
  %1131 = load ptr, ptr %57, align 8, !tbaa !5
  %1132 = getelementptr inbounds i64, ptr %1131, i64 1
  %1133 = call i32 @stgsna_(ptr noundef %1103, ptr noundef @.str.5, ptr noundef %1105, ptr noundef %1106, ptr noundef %1109, ptr noundef %1110, ptr noundef %1113, ptr noundef %1114, ptr noundef %1116, ptr noundef %1117, ptr noundef %1120, ptr noundef %1121, ptr noundef %1124, ptr noundef %1127, ptr noundef %79, ptr noundef %76, ptr noundef %1130, ptr noundef %69, ptr noundef %1132, ptr noundef %86)
  br label %1134

1134:                                             ; preds = %1097, %997
  br label %1135

1135:                                             ; preds = %1134
  %1136 = load i64, ptr %74, align 8, !tbaa !9
  %1137 = add nsw i64 %1136, 1
  store i64 %1137, ptr %74, align 8, !tbaa !9
  br label %990, !llvm.loop !16

1138:                                             ; preds = %990
  br label %1139

1139:                                             ; preds = %1138, %984
  br label %1140

1140:                                             ; preds = %1139, %933
  %1141 = load i64, ptr %89, align 8, !tbaa !9
  %1142 = icmp ne i64 %1141, 0
  br i1 %1142, label %1143, label %1357

1143:                                             ; preds = %1140
  %1144 = load ptr, ptr %31, align 8, !tbaa !5
  %1145 = load ptr, ptr %35, align 8, !tbaa !5
  %1146 = load ptr, ptr %47, align 8, !tbaa !5
  %1147 = load ptr, ptr %48, align 8, !tbaa !5
  %1148 = load ptr, ptr %49, align 8, !tbaa !5
  %1149 = getelementptr inbounds float, ptr %1148, i64 1
  %1150 = load ptr, ptr %50, align 8, !tbaa !5
  %1151 = getelementptr inbounds float, ptr %1150, i64 1
  %1152 = load ptr, ptr %35, align 8, !tbaa !5
  %1153 = load ptr, ptr %43, align 8, !tbaa !5
  %1154 = load i64, ptr %65, align 8, !tbaa !9
  %1155 = getelementptr inbounds float, ptr %1153, i64 %1154
  %1156 = load ptr, ptr %44, align 8, !tbaa !5
  %1157 = call i32 @sggbak_(ptr noundef %1144, ptr noundef @.str.14, ptr noundef %1145, ptr noundef %1146, ptr noundef %1147, ptr noundef %1149, ptr noundef %1151, ptr noundef %1152, ptr noundef %1155, ptr noundef %1156, ptr noundef %86)
  %1158 = load ptr, ptr %35, align 8, !tbaa !5
  %1159 = load i64, ptr %1158, align 8, !tbaa !9
  store i64 %1159, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %1160

1160:                                             ; preds = %1353, %1143
  %1161 = load i64, ptr %77, align 8, !tbaa !9
  %1162 = load i64, ptr %68, align 8, !tbaa !9
  %1163 = icmp sle i64 %1161, %1162
  br i1 %1163, label %1164, label %1356

1164:                                             ; preds = %1160
  %1165 = load ptr, ptr %41, align 8, !tbaa !5
  %1166 = load i64, ptr %77, align 8, !tbaa !9
  %1167 = getelementptr inbounds float, ptr %1165, i64 %1166
  %1168 = load float, ptr %1167, align 4, !tbaa !11
  %1169 = fcmp olt float %1168, 0.000000e+00
  br i1 %1169, label %1170, label %1171

1170:                                             ; preds = %1164
  br label %1352

1171:                                             ; preds = %1164
  store float 0.000000e+00, ptr %88, align 4, !tbaa !11
  %1172 = load ptr, ptr %41, align 8, !tbaa !5
  %1173 = load i64, ptr %77, align 8, !tbaa !9
  %1174 = getelementptr inbounds float, ptr %1172, i64 %1173
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  %1176 = fcmp oeq float %1175, 0.000000e+00
  br i1 %1176, label %1177, label %1220

1177:                                             ; preds = %1171
  %1178 = load ptr, ptr %35, align 8, !tbaa !5
  %1179 = load i64, ptr %1178, align 8, !tbaa !9
  store i64 %1179, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1180

1180:                                             ; preds = %1216, %1177
  %1181 = load i64, ptr %80, align 8, !tbaa !9
  %1182 = load i64, ptr %69, align 8, !tbaa !9
  %1183 = icmp sle i64 %1181, %1182
  br i1 %1183, label %1184, label %1219

1184:                                             ; preds = %1180
  %1185 = load float, ptr %88, align 4, !tbaa !11
  store float %1185, ptr %71, align 4, !tbaa !11
  %1186 = load ptr, ptr %43, align 8, !tbaa !5
  %1187 = load i64, ptr %80, align 8, !tbaa !9
  %1188 = load i64, ptr %77, align 8, !tbaa !9
  %1189 = load i64, ptr %64, align 8, !tbaa !9
  %1190 = mul nsw i64 %1188, %1189
  %1191 = add nsw i64 %1187, %1190
  %1192 = getelementptr inbounds float, ptr %1186, i64 %1191
  %1193 = load float, ptr %1192, align 4, !tbaa !11
  store float %1193, ptr %70, align 4, !tbaa !11
  %1194 = load float, ptr %70, align 4, !tbaa !11
  %1195 = fcmp oge float %1194, 0.000000e+00
  br i1 %1195, label %1196, label %1198

1196:                                             ; preds = %1184
  %1197 = load float, ptr %70, align 4, !tbaa !11
  br label %1201

1198:                                             ; preds = %1184
  %1199 = load float, ptr %70, align 4, !tbaa !11
  %1200 = fneg float %1199
  br label %1201

1201:                                             ; preds = %1198, %1196
  %1202 = phi float [ %1197, %1196 ], [ %1200, %1198 ]
  %1203 = fpext float %1202 to double
  %1204 = fptrunc double %1203 to float
  store float %1204, ptr %72, align 4, !tbaa !11
  %1205 = load float, ptr %71, align 4, !tbaa !11
  %1206 = load float, ptr %72, align 4, !tbaa !11
  %1207 = fcmp oge float %1205, %1206
  br i1 %1207, label %1208, label %1210

1208:                                             ; preds = %1201
  %1209 = load float, ptr %71, align 4, !tbaa !11
  br label %1212

1210:                                             ; preds = %1201
  %1211 = load float, ptr %72, align 4, !tbaa !11
  br label %1212

1212:                                             ; preds = %1210, %1208
  %1213 = phi float [ %1209, %1208 ], [ %1211, %1210 ]
  %1214 = fpext float %1213 to double
  %1215 = fptrunc double %1214 to float
  store float %1215, ptr %88, align 4, !tbaa !11
  br label %1216

1216:                                             ; preds = %1212
  %1217 = load i64, ptr %80, align 8, !tbaa !9
  %1218 = add nsw i64 %1217, 1
  store i64 %1218, ptr %80, align 8, !tbaa !9
  br label %1180, !llvm.loop !17

1219:                                             ; preds = %1180
  br label %1283

1220:                                             ; preds = %1171
  %1221 = load ptr, ptr %35, align 8, !tbaa !5
  %1222 = load i64, ptr %1221, align 8, !tbaa !9
  store i64 %1222, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1223

1223:                                             ; preds = %1279, %1220
  %1224 = load i64, ptr %80, align 8, !tbaa !9
  %1225 = load i64, ptr %69, align 8, !tbaa !9
  %1226 = icmp sle i64 %1224, %1225
  br i1 %1226, label %1227, label %1282

1227:                                             ; preds = %1223
  %1228 = load float, ptr %88, align 4, !tbaa !11
  store float %1228, ptr %72, align 4, !tbaa !11
  %1229 = load ptr, ptr %43, align 8, !tbaa !5
  %1230 = load i64, ptr %80, align 8, !tbaa !9
  %1231 = load i64, ptr %77, align 8, !tbaa !9
  %1232 = load i64, ptr %64, align 8, !tbaa !9
  %1233 = mul nsw i64 %1231, %1232
  %1234 = add nsw i64 %1230, %1233
  %1235 = getelementptr inbounds float, ptr %1229, i64 %1234
  %1236 = load float, ptr %1235, align 4, !tbaa !11
  store float %1236, ptr %70, align 4, !tbaa !11
  %1237 = load float, ptr %70, align 4, !tbaa !11
  %1238 = fcmp oge float %1237, 0.000000e+00
  br i1 %1238, label %1239, label %1241

1239:                                             ; preds = %1227
  %1240 = load float, ptr %70, align 4, !tbaa !11
  br label %1244

1241:                                             ; preds = %1227
  %1242 = load float, ptr %70, align 4, !tbaa !11
  %1243 = fneg float %1242
  br label %1244

1244:                                             ; preds = %1241, %1239
  %1245 = phi float [ %1240, %1239 ], [ %1243, %1241 ]
  %1246 = fpext float %1245 to double
  %1247 = load ptr, ptr %43, align 8, !tbaa !5
  %1248 = load i64, ptr %80, align 8, !tbaa !9
  %1249 = load i64, ptr %77, align 8, !tbaa !9
  %1250 = add nsw i64 %1249, 1
  %1251 = load i64, ptr %64, align 8, !tbaa !9
  %1252 = mul nsw i64 %1250, %1251
  %1253 = add nsw i64 %1248, %1252
  %1254 = getelementptr inbounds float, ptr %1247, i64 %1253
  %1255 = load float, ptr %1254, align 4, !tbaa !11
  store float %1255, ptr %71, align 4, !tbaa !11
  %1256 = load float, ptr %71, align 4, !tbaa !11
  %1257 = fcmp oge float %1256, 0.000000e+00
  br i1 %1257, label %1258, label %1260

1258:                                             ; preds = %1244
  %1259 = load float, ptr %71, align 4, !tbaa !11
  br label %1263

1260:                                             ; preds = %1244
  %1261 = load float, ptr %71, align 4, !tbaa !11
  %1262 = fneg float %1261
  br label %1263

1263:                                             ; preds = %1260, %1258
  %1264 = phi float [ %1259, %1258 ], [ %1262, %1260 ]
  %1265 = fpext float %1264 to double
  %1266 = fadd double %1246, %1265
  %1267 = fptrunc double %1266 to float
  store float %1267, ptr %73, align 4, !tbaa !11
  %1268 = load float, ptr %72, align 4, !tbaa !11
  %1269 = load float, ptr %73, align 4, !tbaa !11
  %1270 = fcmp oge float %1268, %1269
  br i1 %1270, label %1271, label %1273

1271:                                             ; preds = %1263
  %1272 = load float, ptr %72, align 4, !tbaa !11
  br label %1275

1273:                                             ; preds = %1263
  %1274 = load float, ptr %73, align 4, !tbaa !11
  br label %1275

1275:                                             ; preds = %1273, %1271
  %1276 = phi float [ %1272, %1271 ], [ %1274, %1273 ]
  %1277 = fpext float %1276 to double
  %1278 = fptrunc double %1277 to float
  store float %1278, ptr %88, align 4, !tbaa !11
  br label %1279

1279:                                             ; preds = %1275
  %1280 = load i64, ptr %80, align 8, !tbaa !9
  %1281 = add nsw i64 %1280, 1
  store i64 %1281, ptr %80, align 8, !tbaa !9
  br label %1223, !llvm.loop !18

1282:                                             ; preds = %1223
  br label %1283

1283:                                             ; preds = %1282, %1219
  %1284 = load float, ptr %88, align 4, !tbaa !11
  %1285 = load float, ptr %110, align 4, !tbaa !11
  %1286 = fcmp olt float %1284, %1285
  br i1 %1286, label %1287, label %1288

1287:                                             ; preds = %1283
  br label %1352

1288:                                             ; preds = %1283
  %1289 = load float, ptr %88, align 4, !tbaa !11
  %1290 = fdiv float 1.000000e+00, %1289
  store float %1290, ptr %88, align 4, !tbaa !11
  %1291 = load ptr, ptr %41, align 8, !tbaa !5
  %1292 = load i64, ptr %77, align 8, !tbaa !9
  %1293 = getelementptr inbounds float, ptr %1291, i64 %1292
  %1294 = load float, ptr %1293, align 4, !tbaa !11
  %1295 = fcmp oeq float %1294, 0.000000e+00
  br i1 %1295, label %1296, label %1318

1296:                                             ; preds = %1288
  %1297 = load ptr, ptr %35, align 8, !tbaa !5
  %1298 = load i64, ptr %1297, align 8, !tbaa !9
  store i64 %1298, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1299

1299:                                             ; preds = %1314, %1296
  %1300 = load i64, ptr %80, align 8, !tbaa !9
  %1301 = load i64, ptr %69, align 8, !tbaa !9
  %1302 = icmp sle i64 %1300, %1301
  br i1 %1302, label %1303, label %1317

1303:                                             ; preds = %1299
  %1304 = load float, ptr %88, align 4, !tbaa !11
  %1305 = load ptr, ptr %43, align 8, !tbaa !5
  %1306 = load i64, ptr %80, align 8, !tbaa !9
  %1307 = load i64, ptr %77, align 8, !tbaa !9
  %1308 = load i64, ptr %64, align 8, !tbaa !9
  %1309 = mul nsw i64 %1307, %1308
  %1310 = add nsw i64 %1306, %1309
  %1311 = getelementptr inbounds float, ptr %1305, i64 %1310
  %1312 = load float, ptr %1311, align 4, !tbaa !11
  %1313 = fmul float %1312, %1304
  store float %1313, ptr %1311, align 4, !tbaa !11
  br label %1314

1314:                                             ; preds = %1303
  %1315 = load i64, ptr %80, align 8, !tbaa !9
  %1316 = add nsw i64 %1315, 1
  store i64 %1316, ptr %80, align 8, !tbaa !9
  br label %1299, !llvm.loop !19

1317:                                             ; preds = %1299
  br label %1351

1318:                                             ; preds = %1288
  %1319 = load ptr, ptr %35, align 8, !tbaa !5
  %1320 = load i64, ptr %1319, align 8, !tbaa !9
  store i64 %1320, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1321

1321:                                             ; preds = %1347, %1318
  %1322 = load i64, ptr %80, align 8, !tbaa !9
  %1323 = load i64, ptr %69, align 8, !tbaa !9
  %1324 = icmp sle i64 %1322, %1323
  br i1 %1324, label %1325, label %1350

1325:                                             ; preds = %1321
  %1326 = load float, ptr %88, align 4, !tbaa !11
  %1327 = load ptr, ptr %43, align 8, !tbaa !5
  %1328 = load i64, ptr %80, align 8, !tbaa !9
  %1329 = load i64, ptr %77, align 8, !tbaa !9
  %1330 = load i64, ptr %64, align 8, !tbaa !9
  %1331 = mul nsw i64 %1329, %1330
  %1332 = add nsw i64 %1328, %1331
  %1333 = getelementptr inbounds float, ptr %1327, i64 %1332
  %1334 = load float, ptr %1333, align 4, !tbaa !11
  %1335 = fmul float %1334, %1326
  store float %1335, ptr %1333, align 4, !tbaa !11
  %1336 = load float, ptr %88, align 4, !tbaa !11
  %1337 = load ptr, ptr %43, align 8, !tbaa !5
  %1338 = load i64, ptr %80, align 8, !tbaa !9
  %1339 = load i64, ptr %77, align 8, !tbaa !9
  %1340 = add nsw i64 %1339, 1
  %1341 = load i64, ptr %64, align 8, !tbaa !9
  %1342 = mul nsw i64 %1340, %1341
  %1343 = add nsw i64 %1338, %1342
  %1344 = getelementptr inbounds float, ptr %1337, i64 %1343
  %1345 = load float, ptr %1344, align 4, !tbaa !11
  %1346 = fmul float %1345, %1336
  store float %1346, ptr %1344, align 4, !tbaa !11
  br label %1347

1347:                                             ; preds = %1325
  %1348 = load i64, ptr %80, align 8, !tbaa !9
  %1349 = add nsw i64 %1348, 1
  store i64 %1349, ptr %80, align 8, !tbaa !9
  br label %1321, !llvm.loop !20

1350:                                             ; preds = %1321
  br label %1351

1351:                                             ; preds = %1350, %1317
  br label %1352

1352:                                             ; preds = %1351, %1287, %1170
  br label %1353

1353:                                             ; preds = %1352
  %1354 = load i64, ptr %77, align 8, !tbaa !9
  %1355 = add nsw i64 %1354, 1
  store i64 %1355, ptr %77, align 8, !tbaa !9
  br label %1160, !llvm.loop !21

1356:                                             ; preds = %1160
  br label %1357

1357:                                             ; preds = %1356, %1140
  %1358 = load i64, ptr %90, align 8, !tbaa !9
  %1359 = icmp ne i64 %1358, 0
  br i1 %1359, label %1360, label %1574

1360:                                             ; preds = %1357
  %1361 = load ptr, ptr %31, align 8, !tbaa !5
  %1362 = load ptr, ptr %35, align 8, !tbaa !5
  %1363 = load ptr, ptr %47, align 8, !tbaa !5
  %1364 = load ptr, ptr %48, align 8, !tbaa !5
  %1365 = load ptr, ptr %49, align 8, !tbaa !5
  %1366 = getelementptr inbounds float, ptr %1365, i64 1
  %1367 = load ptr, ptr %50, align 8, !tbaa !5
  %1368 = getelementptr inbounds float, ptr %1367, i64 1
  %1369 = load ptr, ptr %35, align 8, !tbaa !5
  %1370 = load ptr, ptr %45, align 8, !tbaa !5
  %1371 = load i64, ptr %67, align 8, !tbaa !9
  %1372 = getelementptr inbounds float, ptr %1370, i64 %1371
  %1373 = load ptr, ptr %46, align 8, !tbaa !5
  %1374 = call i32 @sggbak_(ptr noundef %1361, ptr noundef @.str.17, ptr noundef %1362, ptr noundef %1363, ptr noundef %1364, ptr noundef %1366, ptr noundef %1368, ptr noundef %1369, ptr noundef %1372, ptr noundef %1373, ptr noundef %86)
  %1375 = load ptr, ptr %35, align 8, !tbaa !5
  %1376 = load i64, ptr %1375, align 8, !tbaa !9
  store i64 %1376, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %1377

1377:                                             ; preds = %1570, %1360
  %1378 = load i64, ptr %77, align 8, !tbaa !9
  %1379 = load i64, ptr %68, align 8, !tbaa !9
  %1380 = icmp sle i64 %1378, %1379
  br i1 %1380, label %1381, label %1573

1381:                                             ; preds = %1377
  %1382 = load ptr, ptr %41, align 8, !tbaa !5
  %1383 = load i64, ptr %77, align 8, !tbaa !9
  %1384 = getelementptr inbounds float, ptr %1382, i64 %1383
  %1385 = load float, ptr %1384, align 4, !tbaa !11
  %1386 = fcmp olt float %1385, 0.000000e+00
  br i1 %1386, label %1387, label %1388

1387:                                             ; preds = %1381
  br label %1569

1388:                                             ; preds = %1381
  store float 0.000000e+00, ptr %88, align 4, !tbaa !11
  %1389 = load ptr, ptr %41, align 8, !tbaa !5
  %1390 = load i64, ptr %77, align 8, !tbaa !9
  %1391 = getelementptr inbounds float, ptr %1389, i64 %1390
  %1392 = load float, ptr %1391, align 4, !tbaa !11
  %1393 = fcmp oeq float %1392, 0.000000e+00
  br i1 %1393, label %1394, label %1437

1394:                                             ; preds = %1388
  %1395 = load ptr, ptr %35, align 8, !tbaa !5
  %1396 = load i64, ptr %1395, align 8, !tbaa !9
  store i64 %1396, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1397

1397:                                             ; preds = %1433, %1394
  %1398 = load i64, ptr %80, align 8, !tbaa !9
  %1399 = load i64, ptr %69, align 8, !tbaa !9
  %1400 = icmp sle i64 %1398, %1399
  br i1 %1400, label %1401, label %1436

1401:                                             ; preds = %1397
  %1402 = load float, ptr %88, align 4, !tbaa !11
  store float %1402, ptr %71, align 4, !tbaa !11
  %1403 = load ptr, ptr %45, align 8, !tbaa !5
  %1404 = load i64, ptr %80, align 8, !tbaa !9
  %1405 = load i64, ptr %77, align 8, !tbaa !9
  %1406 = load i64, ptr %66, align 8, !tbaa !9
  %1407 = mul nsw i64 %1405, %1406
  %1408 = add nsw i64 %1404, %1407
  %1409 = getelementptr inbounds float, ptr %1403, i64 %1408
  %1410 = load float, ptr %1409, align 4, !tbaa !11
  store float %1410, ptr %70, align 4, !tbaa !11
  %1411 = load float, ptr %70, align 4, !tbaa !11
  %1412 = fcmp oge float %1411, 0.000000e+00
  br i1 %1412, label %1413, label %1415

1413:                                             ; preds = %1401
  %1414 = load float, ptr %70, align 4, !tbaa !11
  br label %1418

1415:                                             ; preds = %1401
  %1416 = load float, ptr %70, align 4, !tbaa !11
  %1417 = fneg float %1416
  br label %1418

1418:                                             ; preds = %1415, %1413
  %1419 = phi float [ %1414, %1413 ], [ %1417, %1415 ]
  %1420 = fpext float %1419 to double
  %1421 = fptrunc double %1420 to float
  store float %1421, ptr %72, align 4, !tbaa !11
  %1422 = load float, ptr %71, align 4, !tbaa !11
  %1423 = load float, ptr %72, align 4, !tbaa !11
  %1424 = fcmp oge float %1422, %1423
  br i1 %1424, label %1425, label %1427

1425:                                             ; preds = %1418
  %1426 = load float, ptr %71, align 4, !tbaa !11
  br label %1429

1427:                                             ; preds = %1418
  %1428 = load float, ptr %72, align 4, !tbaa !11
  br label %1429

1429:                                             ; preds = %1427, %1425
  %1430 = phi float [ %1426, %1425 ], [ %1428, %1427 ]
  %1431 = fpext float %1430 to double
  %1432 = fptrunc double %1431 to float
  store float %1432, ptr %88, align 4, !tbaa !11
  br label %1433

1433:                                             ; preds = %1429
  %1434 = load i64, ptr %80, align 8, !tbaa !9
  %1435 = add nsw i64 %1434, 1
  store i64 %1435, ptr %80, align 8, !tbaa !9
  br label %1397, !llvm.loop !22

1436:                                             ; preds = %1397
  br label %1500

1437:                                             ; preds = %1388
  %1438 = load ptr, ptr %35, align 8, !tbaa !5
  %1439 = load i64, ptr %1438, align 8, !tbaa !9
  store i64 %1439, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1440

1440:                                             ; preds = %1496, %1437
  %1441 = load i64, ptr %80, align 8, !tbaa !9
  %1442 = load i64, ptr %69, align 8, !tbaa !9
  %1443 = icmp sle i64 %1441, %1442
  br i1 %1443, label %1444, label %1499

1444:                                             ; preds = %1440
  %1445 = load float, ptr %88, align 4, !tbaa !11
  store float %1445, ptr %72, align 4, !tbaa !11
  %1446 = load ptr, ptr %45, align 8, !tbaa !5
  %1447 = load i64, ptr %80, align 8, !tbaa !9
  %1448 = load i64, ptr %77, align 8, !tbaa !9
  %1449 = load i64, ptr %66, align 8, !tbaa !9
  %1450 = mul nsw i64 %1448, %1449
  %1451 = add nsw i64 %1447, %1450
  %1452 = getelementptr inbounds float, ptr %1446, i64 %1451
  %1453 = load float, ptr %1452, align 4, !tbaa !11
  store float %1453, ptr %70, align 4, !tbaa !11
  %1454 = load float, ptr %70, align 4, !tbaa !11
  %1455 = fcmp oge float %1454, 0.000000e+00
  br i1 %1455, label %1456, label %1458

1456:                                             ; preds = %1444
  %1457 = load float, ptr %70, align 4, !tbaa !11
  br label %1461

1458:                                             ; preds = %1444
  %1459 = load float, ptr %70, align 4, !tbaa !11
  %1460 = fneg float %1459
  br label %1461

1461:                                             ; preds = %1458, %1456
  %1462 = phi float [ %1457, %1456 ], [ %1460, %1458 ]
  %1463 = fpext float %1462 to double
  %1464 = load ptr, ptr %45, align 8, !tbaa !5
  %1465 = load i64, ptr %80, align 8, !tbaa !9
  %1466 = load i64, ptr %77, align 8, !tbaa !9
  %1467 = add nsw i64 %1466, 1
  %1468 = load i64, ptr %66, align 8, !tbaa !9
  %1469 = mul nsw i64 %1467, %1468
  %1470 = add nsw i64 %1465, %1469
  %1471 = getelementptr inbounds float, ptr %1464, i64 %1470
  %1472 = load float, ptr %1471, align 4, !tbaa !11
  store float %1472, ptr %71, align 4, !tbaa !11
  %1473 = load float, ptr %71, align 4, !tbaa !11
  %1474 = fcmp oge float %1473, 0.000000e+00
  br i1 %1474, label %1475, label %1477

1475:                                             ; preds = %1461
  %1476 = load float, ptr %71, align 4, !tbaa !11
  br label %1480

1477:                                             ; preds = %1461
  %1478 = load float, ptr %71, align 4, !tbaa !11
  %1479 = fneg float %1478
  br label %1480

1480:                                             ; preds = %1477, %1475
  %1481 = phi float [ %1476, %1475 ], [ %1479, %1477 ]
  %1482 = fpext float %1481 to double
  %1483 = fadd double %1463, %1482
  %1484 = fptrunc double %1483 to float
  store float %1484, ptr %73, align 4, !tbaa !11
  %1485 = load float, ptr %72, align 4, !tbaa !11
  %1486 = load float, ptr %73, align 4, !tbaa !11
  %1487 = fcmp oge float %1485, %1486
  br i1 %1487, label %1488, label %1490

1488:                                             ; preds = %1480
  %1489 = load float, ptr %72, align 4, !tbaa !11
  br label %1492

1490:                                             ; preds = %1480
  %1491 = load float, ptr %73, align 4, !tbaa !11
  br label %1492

1492:                                             ; preds = %1490, %1488
  %1493 = phi float [ %1489, %1488 ], [ %1491, %1490 ]
  %1494 = fpext float %1493 to double
  %1495 = fptrunc double %1494 to float
  store float %1495, ptr %88, align 4, !tbaa !11
  br label %1496

1496:                                             ; preds = %1492
  %1497 = load i64, ptr %80, align 8, !tbaa !9
  %1498 = add nsw i64 %1497, 1
  store i64 %1498, ptr %80, align 8, !tbaa !9
  br label %1440, !llvm.loop !23

1499:                                             ; preds = %1440
  br label %1500

1500:                                             ; preds = %1499, %1436
  %1501 = load float, ptr %88, align 4, !tbaa !11
  %1502 = load float, ptr %110, align 4, !tbaa !11
  %1503 = fcmp olt float %1501, %1502
  br i1 %1503, label %1504, label %1505

1504:                                             ; preds = %1500
  br label %1569

1505:                                             ; preds = %1500
  %1506 = load float, ptr %88, align 4, !tbaa !11
  %1507 = fdiv float 1.000000e+00, %1506
  store float %1507, ptr %88, align 4, !tbaa !11
  %1508 = load ptr, ptr %41, align 8, !tbaa !5
  %1509 = load i64, ptr %77, align 8, !tbaa !9
  %1510 = getelementptr inbounds float, ptr %1508, i64 %1509
  %1511 = load float, ptr %1510, align 4, !tbaa !11
  %1512 = fcmp oeq float %1511, 0.000000e+00
  br i1 %1512, label %1513, label %1535

1513:                                             ; preds = %1505
  %1514 = load ptr, ptr %35, align 8, !tbaa !5
  %1515 = load i64, ptr %1514, align 8, !tbaa !9
  store i64 %1515, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1516

1516:                                             ; preds = %1531, %1513
  %1517 = load i64, ptr %80, align 8, !tbaa !9
  %1518 = load i64, ptr %69, align 8, !tbaa !9
  %1519 = icmp sle i64 %1517, %1518
  br i1 %1519, label %1520, label %1534

1520:                                             ; preds = %1516
  %1521 = load float, ptr %88, align 4, !tbaa !11
  %1522 = load ptr, ptr %45, align 8, !tbaa !5
  %1523 = load i64, ptr %80, align 8, !tbaa !9
  %1524 = load i64, ptr %77, align 8, !tbaa !9
  %1525 = load i64, ptr %66, align 8, !tbaa !9
  %1526 = mul nsw i64 %1524, %1525
  %1527 = add nsw i64 %1523, %1526
  %1528 = getelementptr inbounds float, ptr %1522, i64 %1527
  %1529 = load float, ptr %1528, align 4, !tbaa !11
  %1530 = fmul float %1529, %1521
  store float %1530, ptr %1528, align 4, !tbaa !11
  br label %1531

1531:                                             ; preds = %1520
  %1532 = load i64, ptr %80, align 8, !tbaa !9
  %1533 = add nsw i64 %1532, 1
  store i64 %1533, ptr %80, align 8, !tbaa !9
  br label %1516, !llvm.loop !24

1534:                                             ; preds = %1516
  br label %1568

1535:                                             ; preds = %1505
  %1536 = load ptr, ptr %35, align 8, !tbaa !5
  %1537 = load i64, ptr %1536, align 8, !tbaa !9
  store i64 %1537, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1538

1538:                                             ; preds = %1564, %1535
  %1539 = load i64, ptr %80, align 8, !tbaa !9
  %1540 = load i64, ptr %69, align 8, !tbaa !9
  %1541 = icmp sle i64 %1539, %1540
  br i1 %1541, label %1542, label %1567

1542:                                             ; preds = %1538
  %1543 = load float, ptr %88, align 4, !tbaa !11
  %1544 = load ptr, ptr %45, align 8, !tbaa !5
  %1545 = load i64, ptr %80, align 8, !tbaa !9
  %1546 = load i64, ptr %77, align 8, !tbaa !9
  %1547 = load i64, ptr %66, align 8, !tbaa !9
  %1548 = mul nsw i64 %1546, %1547
  %1549 = add nsw i64 %1545, %1548
  %1550 = getelementptr inbounds float, ptr %1544, i64 %1549
  %1551 = load float, ptr %1550, align 4, !tbaa !11
  %1552 = fmul float %1551, %1543
  store float %1552, ptr %1550, align 4, !tbaa !11
  %1553 = load float, ptr %88, align 4, !tbaa !11
  %1554 = load ptr, ptr %45, align 8, !tbaa !5
  %1555 = load i64, ptr %80, align 8, !tbaa !9
  %1556 = load i64, ptr %77, align 8, !tbaa !9
  %1557 = add nsw i64 %1556, 1
  %1558 = load i64, ptr %66, align 8, !tbaa !9
  %1559 = mul nsw i64 %1557, %1558
  %1560 = add nsw i64 %1555, %1559
  %1561 = getelementptr inbounds float, ptr %1554, i64 %1560
  %1562 = load float, ptr %1561, align 4, !tbaa !11
  %1563 = fmul float %1562, %1553
  store float %1563, ptr %1561, align 4, !tbaa !11
  br label %1564

1564:                                             ; preds = %1542
  %1565 = load i64, ptr %80, align 8, !tbaa !9
  %1566 = add nsw i64 %1565, 1
  store i64 %1566, ptr %80, align 8, !tbaa !9
  br label %1538, !llvm.loop !25

1567:                                             ; preds = %1538
  br label %1568

1568:                                             ; preds = %1567, %1534
  br label %1569

1569:                                             ; preds = %1568, %1504, %1387
  br label %1570

1570:                                             ; preds = %1569
  %1571 = load i64, ptr %77, align 8, !tbaa !9
  %1572 = add nsw i64 %1571, 1
  store i64 %1572, ptr %77, align 8, !tbaa !9
  br label %1377, !llvm.loop !26

1573:                                             ; preds = %1377
  br label %1574

1574:                                             ; preds = %1573, %1357
  %1575 = load i64, ptr %96, align 8, !tbaa !9
  %1576 = icmp ne i64 %1575, 0
  br i1 %1576, label %1577, label %1588

1577:                                             ; preds = %1574
  %1578 = load ptr, ptr %35, align 8, !tbaa !5
  %1579 = load ptr, ptr %40, align 8, !tbaa !5
  %1580 = getelementptr inbounds float, ptr %1579, i64 1
  %1581 = load ptr, ptr %35, align 8, !tbaa !5
  %1582 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %104, ptr noundef %84, ptr noundef %1578, ptr noundef @c__1, ptr noundef %1580, ptr noundef %1581, ptr noundef %86)
  %1583 = load ptr, ptr %35, align 8, !tbaa !5
  %1584 = load ptr, ptr %41, align 8, !tbaa !5
  %1585 = getelementptr inbounds float, ptr %1584, i64 1
  %1586 = load ptr, ptr %35, align 8, !tbaa !5
  %1587 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %104, ptr noundef %84, ptr noundef %1583, ptr noundef @c__1, ptr noundef %1585, ptr noundef %1586, ptr noundef %86)
  br label %1588

1588:                                             ; preds = %1577, %1574
  %1589 = load i64, ptr %97, align 8, !tbaa !9
  %1590 = icmp ne i64 %1589, 0
  br i1 %1590, label %1591, label %1597

1591:                                             ; preds = %1588
  %1592 = load ptr, ptr %35, align 8, !tbaa !5
  %1593 = load ptr, ptr %42, align 8, !tbaa !5
  %1594 = getelementptr inbounds float, ptr %1593, i64 1
  %1595 = load ptr, ptr %35, align 8, !tbaa !5
  %1596 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %106, ptr noundef %85, ptr noundef %1592, ptr noundef @c__1, ptr noundef %1594, ptr noundef %1595, ptr noundef %86)
  br label %1597

1597:                                             ; preds = %1591, %1588
  br label %1598

1598:                                             ; preds = %1597, %1091, %978, %929
  %1599 = load i64, ptr %108, align 8, !tbaa !9
  %1600 = sitofp i64 %1599 to float
  %1601 = load ptr, ptr %55, align 8, !tbaa !5
  %1602 = getelementptr inbounds float, ptr %1601, i64 1
  store float %1600, ptr %1602, align 4, !tbaa !11
  store i32 0, ptr %30, align 4
  store i32 1, ptr %113, align 4
  br label %1603

1603:                                             ; preds = %1598, %476, %470, %462
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  %1604 = load i32, ptr %30, align 4
  ret i32 %1604
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @sggevx_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr nocapture noundef writeonly %20, ptr nocapture noundef writeonly %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr nocapture noundef %28) local_unnamed_addr #0 {
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca [1 x i64], align 8
  %41 = alloca [1 x i8], align 1
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  %46 = load i64, ptr %6, align 8, !tbaa !5
  %47 = xor i64 %46, -1
  %48 = getelementptr inbounds float, ptr %5, i64 %47
  %49 = load i64, ptr %8, align 8, !tbaa !5
  %50 = xor i64 %49, -1
  %51 = getelementptr inbounds float, ptr %7, i64 %50
  %52 = getelementptr inbounds i8, ptr %10, i64 -4
  %53 = load i64, ptr %13, align 8, !tbaa !5
  %54 = xor i64 %53, -1
  %55 = getelementptr inbounds float, ptr %12, i64 %54
  %56 = load i64, ptr %15, align 8, !tbaa !5
  %57 = xor i64 %56, -1
  %58 = getelementptr inbounds float, ptr %14, i64 %57
  %59 = getelementptr inbounds i8, ptr %22, i64 -4
  %60 = getelementptr inbounds i8, ptr %23, i64 -4
  %61 = getelementptr inbounds i8, ptr %27, i64 -8
  %62 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %.not = icmp eq i64 %62, 0
  br i1 %.not, label %63, label %65

63:                                               ; preds = %29
  %64 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %.not636 = icmp eq i64 %64, 0
  %not..not636 = xor i1 %.not636, true
  br label %65

65:                                               ; preds = %63, %29
  %66 = phi i1 [ false, %29 ], [ %not..not636, %63 ]
  %67 = phi i1 [ false, %29 ], [ %.not636, %63 ]
  %68 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %.not637 = icmp eq i64 %68, 0
  br i1 %.not637, label %69, label %71

69:                                               ; preds = %65
  %70 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #6
  %.not638 = icmp eq i64 %70, 0
  %not..not638 = xor i1 %.not638, true
  br label %71

71:                                               ; preds = %69, %65
  %72 = phi i1 [ false, %65 ], [ %not..not638, %69 ]
  %73 = phi i1 [ false, %65 ], [ %.not638, %69 ]
  %74 = or i1 %66, %72
  %75 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not639 = icmp eq i64 %75, 0
  br i1 %.not639, label %76, label %79

76:                                               ; preds = %71
  %77 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %78 = icmp ne i64 %77, 0
  br label %79

79:                                               ; preds = %76, %71
  %80 = phi i1 [ true, %71 ], [ %78, %76 ]
  %81 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #6
  %82 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.3) #6
  %83 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %84 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.4) #6
  store i64 0, ptr %28, align 8, !tbaa !5
  %85 = load i64, ptr %25, align 8, !tbaa !5
  %86 = icmp eq i64 %85, -1
  br i1 %80, label %91, label %87

87:                                               ; preds = %79
  %88 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #6
  %.not640 = icmp eq i64 %88, 0
  br i1 %.not640, label %89, label %91

89:                                               ; preds = %87
  %90 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not641 = icmp eq i64 %90, 0
  %brmerge = select i1 %.not641, i1 true, i1 %67
  %brmerge807 = select i1 %brmerge, i1 true, i1 %73
  %.mux = select i1 %67, i64 -2, i64 -3
  %.mux.mux = select i1 %.not641, i64 -1, i64 %.mux
  br i1 %brmerge807, label %.thread679.sink.split, label %92

91:                                               ; preds = %87, %79
  %brmerge808 = select i1 %67, i1 true, i1 %73
  %.mux809 = select i1 %67, i64 -2, i64 -3
  br i1 %brmerge808, label %.thread679.sink.split, label %92

92:                                               ; preds = %91, %89
  %93 = icmp ne i64 %81, 0
  %94 = icmp ne i64 %82, 0
  %or.cond = select i1 %93, i1 true, i1 %94
  %95 = icmp ne i64 %84, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %95
  %96 = icmp ne i64 %83, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %96
  br i1 %or.cond5, label %97, label %.thread679.sink.split

97:                                               ; preds = %92
  %98 = load i64, ptr %4, align 8, !tbaa !5
  %99 = icmp slt i64 %98, 0
  br i1 %99, label %.thread679.sink.split, label %100

100:                                              ; preds = %97
  %101 = load i64, ptr %6, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %98, i64 1)
  %102 = icmp slt i64 %101, %spec.select
  br i1 %102, label %.thread679.sink.split, label %103

103:                                              ; preds = %100
  %104 = load i64, ptr %8, align 8, !tbaa !5
  %105 = icmp slt i64 %104, %spec.select
  br i1 %105, label %.thread679.sink.split, label %106

106:                                              ; preds = %103
  %107 = load i64, ptr %13, align 8, !tbaa !5
  %108 = icmp slt i64 %107, 1
  %109 = icmp ult i64 %107, %98
  %or.cond695 = and i1 %66, %109
  %or.cond697 = select i1 %108, i1 true, i1 %or.cond695
  br i1 %or.cond697, label %.thread679.sink.split, label %110

110:                                              ; preds = %106
  %111 = load i64, ptr %15, align 8, !tbaa !5
  %112 = icmp slt i64 %111, 1
  %113 = icmp ult i64 %111, %98
  %or.cond696 = and i1 %72, %113
  %or.cond698 = select i1 %112, i1 true, i1 %or.cond696
  br i1 %or.cond698, label %.thread679.sink.split, label %114

114:                                              ; preds = %110
  %.pr = load i64, ptr %28, align 8, !tbaa !5
  %115 = icmp eq i64 %.pr, 0
  br i1 %115, label %116, label %.thread679

116:                                              ; preds = %114
  %117 = icmp eq i64 %98, 0
  br i1 %117, label %145, label %118

118:                                              ; preds = %116
  %119 = shl nuw i64 %98, 1
  %.not642 = icmp eq i64 %82, 0
  br i1 %.not642, label %122, label %120

120:                                              ; preds = %118
  %121 = mul nuw nsw i64 %98, 10
  br label %129

122:                                              ; preds = %118
  %123 = xor i1 %80, true
  %or.cond7 = or i1 %74, %123
  %124 = mul nuw nsw i64 %98, 6
  %.0594 = select i1 %or.cond7, i64 %124, i64 %119
  %or.cond9 = select i1 %96, i1 true, i1 %95
  br i1 %or.cond9, label %125, label %129

125:                                              ; preds = %122
  %126 = add nuw nsw i64 %98, 4
  %127 = mul nsw i64 %119, %126
  %128 = add nsw i64 %127, 16
  br label %129

129:                                              ; preds = %125, %122, %120
  %.1595 = phi i64 [ %121, %120 ], [ %128, %125 ], [ %.0594, %122 ]
  %130 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0) #6
  %131 = add i64 %130, 1
  %132 = mul i64 %131, %98
  %133 = tail call i64 @llvm.smax.i64(i64 %.1595, i64 %132)
  store i64 %133, ptr %30, align 8, !tbaa !5
  %134 = load i64, ptr %4, align 8, !tbaa !5
  %135 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0) #6
  %136 = add i64 %135, 1
  %137 = mul i64 %136, %134
  store i64 %137, ptr %31, align 8, !tbaa !5
  %138 = tail call i64 @llvm.smax.i64(i64 %133, i64 %137)
  br i1 %66, label %139, label %145

139:                                              ; preds = %129
  store i64 %138, ptr %30, align 8, !tbaa !5
  %140 = load i64, ptr %4, align 8, !tbaa !5
  %141 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0) #6
  %142 = add i64 %141, 1
  %143 = mul i64 %142, %140
  store i64 %143, ptr %31, align 8, !tbaa !5
  %144 = tail call i64 @llvm.smax.i64(i64 %138, i64 %143)
  br label %145

145:                                              ; preds = %116, %129, %139
  %.2 = phi i64 [ %.1595, %139 ], [ %.1595, %129 ], [ 1, %116 ]
  %.0593 = phi i64 [ %144, %139 ], [ %138, %129 ], [ 1, %116 ]
  %146 = sitofp i64 %.0593 to float
  store float %146, ptr %24, align 4, !tbaa !9
  %147 = load i64, ptr %25, align 8, !tbaa !5
  %148 = icmp sge i64 %147, %.2
  %or.cond11 = select i1 %148, i1 true, i1 %86
  br i1 %or.cond11, label %.thread, label %.thread679.sink.split

.thread:                                          ; preds = %145
  %.pr676.pr = load i64, ptr %28, align 8, !tbaa !5
  %.not646 = icmp eq i64 %.pr676.pr, 0
  br i1 %.not646, label %152, label %.thread679

.thread679.sink.split:                            ; preds = %91, %89, %145, %110, %106, %103, %100, %97, %92
  %.sink = phi i64 [ %.mux.mux, %89 ], [ %.mux809, %91 ], [ -4, %92 ], [ -5, %97 ], [ -7, %100 ], [ -9, %103 ], [ -14, %106 ], [ -16, %110 ], [ -26, %145 ]
  store i64 %.sink, ptr %28, align 8, !tbaa !5
  br label %.thread679

.thread679:                                       ; preds = %.thread679.sink.split, %114, %.thread
  %149 = phi i64 [ %.pr676.pr, %.thread ], [ %.pr, %114 ], [ %.sink, %.thread679.sink.split ]
  %150 = sub nsw i64 0, %149
  store i64 %150, ptr %30, align 8, !tbaa !5
  %151 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %30) #6
  br label %557

152:                                              ; preds = %.thread
  br i1 %86, label %557, label %153

153:                                              ; preds = %152
  %154 = load i64, ptr %4, align 8, !tbaa !5
  %155 = icmp eq i64 %154, 0
  br i1 %155, label %557, label %156

156:                                              ; preds = %153
  %157 = tail call double @slamch_(ptr noundef nonnull @.str.2) #6
  %158 = fptrunc double %157 to float
  %159 = tail call double @slamch_(ptr noundef nonnull @.str.5) #6
  %160 = fptrunc double %159 to float
  store float %160, ptr %45, align 4, !tbaa !9
  %161 = fdiv float 1.000000e+00, %160
  store float %161, ptr %42, align 4, !tbaa !9
  %162 = call i32 @slabad_(ptr noundef nonnull %45, ptr noundef nonnull %42) #6
  %163 = load float, ptr %45, align 4, !tbaa !9
  %164 = fpext float %163 to double
  %165 = call double @sqrt(double noundef %164) #6
  %166 = fpext float %158 to double
  %167 = fdiv double %165, %166
  %168 = fptrunc double %167 to float
  store float %168, ptr %45, align 4, !tbaa !9
  %169 = fdiv float 1.000000e+00, %168
  store float %169, ptr %42, align 4, !tbaa !9
  %170 = call double @slange_(ptr noundef nonnull @.str.11, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24) #6
  %171 = fptrunc double %170 to float
  store float %171, ptr %35, align 4, !tbaa !9
  %172 = fcmp ogt float %171, 0.000000e+00
  %173 = load float, ptr %45, align 4
  %174 = fcmp ogt float %173, %171
  %or.cond702 = select i1 %172, i1 %174, i1 false
  br i1 %or.cond702, label %178, label %175

175:                                              ; preds = %156
  %176 = load float, ptr %42, align 4, !tbaa !9
  %177 = fcmp olt float %176, %171
  br i1 %177, label %178, label %180

178:                                              ; preds = %156, %175
  %storemerge699 = phi float [ %176, %175 ], [ %173, %156 ]
  store float %storemerge699, ptr %43, align 4, !tbaa !9
  %179 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %35, ptr noundef nonnull %43, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %37) #6
  br label %180

180:                                              ; preds = %175, %178
  %.not647686 = phi i1 [ false, %178 ], [ true, %175 ]
  %181 = call double @slange_(ptr noundef nonnull @.str.11, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %24) #6
  %182 = fptrunc double %181 to float
  store float %182, ptr %36, align 4, !tbaa !9
  %183 = fcmp ogt float %182, 0.000000e+00
  %184 = load float, ptr %45, align 4
  %185 = fcmp ogt float %184, %182
  %or.cond704 = select i1 %183, i1 %185, i1 false
  br i1 %or.cond704, label %189, label %186

186:                                              ; preds = %180
  %187 = load float, ptr %42, align 4, !tbaa !9
  %188 = fcmp olt float %187, %182
  br i1 %188, label %189, label %191

189:                                              ; preds = %180, %186
  %storemerge700 = phi float [ %187, %186 ], [ %184, %180 ]
  store float %storemerge700, ptr %44, align 4, !tbaa !9
  %190 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %44, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %37) #6
  br label %191

191:                                              ; preds = %186, %189
  %.not648691 = phi i1 [ false, %189 ], [ true, %186 ]
  %192 = call i32 @sggbal_(ptr noundef %0, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef nonnull %24, ptr noundef nonnull %37) #6
  %193 = call double @slange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24) #6
  %194 = fptrunc double %193 to float
  store float %194, ptr %20, align 4, !tbaa !9
  br i1 %.not647686, label %198, label %195

195:                                              ; preds = %191
  store float %194, ptr %24, align 4, !tbaa !9
  %196 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %35, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %37) #6
  %197 = load float, ptr %24, align 4, !tbaa !9
  store float %197, ptr %20, align 4, !tbaa !9
  br label %198

198:                                              ; preds = %195, %191
  %199 = call double @slange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %24) #6
  %200 = fptrunc double %199 to float
  store float %200, ptr %21, align 4, !tbaa !9
  br i1 %.not648691, label %204, label %201

201:                                              ; preds = %198
  store float %200, ptr %24, align 4, !tbaa !9
  %202 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %37) #6
  %203 = load float, ptr %24, align 4, !tbaa !9
  store float %203, ptr %21, align 4, !tbaa !9
  br label %204

204:                                              ; preds = %201, %198
  %205 = load i64, ptr %17, align 8, !tbaa !5
  %206 = add nsw i64 %205, 1
  %207 = load i64, ptr %16, align 8, !tbaa !5
  %208 = sub i64 %206, %207
  store i64 %208, ptr %39, align 8, !tbaa !5
  %209 = icmp eq i64 %81, 0
  %or.cond13.not = select i1 %74, i1 true, i1 %209
  br i1 %or.cond13.not, label %210, label %213

210:                                              ; preds = %204
  %211 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub = sub i64 %211, %207
  %212 = add i64 %reass.sub, 1
  br label %213

213:                                              ; preds = %204, %210
  %storemerge = phi i64 [ %212, %210 ], [ %208, %204 ]
  store i64 %storemerge, ptr %38, align 8, !tbaa !5
  %214 = load i64, ptr %25, align 8, !tbaa !5
  %215 = sub i64 %214, %208
  store i64 %215, ptr %30, align 8, !tbaa !5
  %216 = add i64 %49, 1
  %217 = mul i64 %207, %216
  %218 = getelementptr inbounds float, ptr %51, i64 %217
  %219 = getelementptr float, ptr %24, i64 %208
  %220 = call i32 @sgeqrf_(ptr noundef nonnull %39, ptr noundef nonnull %38, ptr noundef %218, ptr noundef nonnull %8, ptr noundef nonnull %24, ptr noundef %219, ptr noundef nonnull %30, ptr noundef nonnull %37) #6
  %221 = load i64, ptr %25, align 8, !tbaa !5
  %222 = sub i64 %221, %208
  store i64 %222, ptr %30, align 8, !tbaa !5
  %223 = load i64, ptr %16, align 8, !tbaa !5
  %224 = mul i64 %223, %216
  %225 = getelementptr inbounds float, ptr %51, i64 %224
  %226 = add i64 %46, 1
  %227 = mul i64 %223, %226
  %228 = getelementptr inbounds float, ptr %48, i64 %227
  %229 = call i32 @sormqr_(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.15, ptr noundef nonnull %39, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %225, ptr noundef nonnull %8, ptr noundef nonnull %24, ptr noundef %228, ptr noundef nonnull %6, ptr noundef %219, ptr noundef nonnull %30, ptr noundef nonnull %37) #6
  br i1 %66, label %230, label %253

230:                                              ; preds = %213
  %231 = call i32 @slaset_(ptr noundef nonnull @.str.16, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b57, ptr noundef nonnull @c_b58, ptr noundef %12, ptr noundef nonnull %13) #6
  %232 = load i64, ptr %39, align 8, !tbaa !5
  %233 = icmp sgt i64 %232, 1
  br i1 %233, label %234, label %245

234:                                              ; preds = %230
  %235 = add nsw i64 %232, -1
  store i64 %235, ptr %30, align 8, !tbaa !5
  store i64 %235, ptr %31, align 8, !tbaa !5
  %236 = load i64, ptr %16, align 8, !tbaa !5
  %237 = add nsw i64 %236, 1
  %238 = mul nsw i64 %236, %49
  %239 = getelementptr float, ptr %51, i64 %237
  %240 = getelementptr float, ptr %239, i64 %238
  %241 = mul nsw i64 %236, %53
  %242 = getelementptr float, ptr %55, i64 %237
  %243 = getelementptr float, ptr %242, i64 %241
  %244 = call i32 @slacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %240, ptr noundef nonnull %8, ptr noundef %243, ptr noundef nonnull %13) #6
  br label %245

245:                                              ; preds = %234, %230
  %246 = load i64, ptr %25, align 8, !tbaa !5
  %247 = sub i64 %246, %208
  store i64 %247, ptr %30, align 8, !tbaa !5
  %248 = load i64, ptr %16, align 8, !tbaa !5
  %249 = add i64 %53, 1
  %250 = mul i64 %248, %249
  %251 = getelementptr inbounds float, ptr %55, i64 %250
  %252 = call i32 @sorgqr_(ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %251, ptr noundef nonnull %13, ptr noundef nonnull %24, ptr noundef %219, ptr noundef nonnull %30, ptr noundef nonnull %37) #6
  br label %253

253:                                              ; preds = %245, %213
  br i1 %72, label %254, label %256

254:                                              ; preds = %253
  %255 = call i32 @slaset_(ptr noundef nonnull @.str.16, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b57, ptr noundef nonnull @c_b58, ptr noundef %14, ptr noundef nonnull %15) #6
  br label %256

256:                                              ; preds = %254, %253
  br i1 %or.cond13.not, label %257, label %259

257:                                              ; preds = %256
  %258 = call i32 @sgghrd_(ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %37) #6
  br label %266

259:                                              ; preds = %256
  %260 = load i64, ptr %16, align 8, !tbaa !5
  %261 = mul i64 %260, %226
  %262 = getelementptr inbounds float, ptr %48, i64 %261
  %263 = mul i64 %260, %216
  %264 = getelementptr inbounds float, ptr %51, i64 %263
  %265 = call i32 @sgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %39, ptr noundef nonnull @c__1, ptr noundef nonnull %39, ptr noundef %262, ptr noundef nonnull %6, ptr noundef %264, ptr noundef nonnull %8, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %37) #6
  br label %266

266:                                              ; preds = %259, %257
  %.673 = phi i8 [ 69, %259 ], [ 83, %257 ]
  store i8 %.673, ptr %41, align 1, !tbaa !11
  %267 = call i32 @shgeqz_(ptr noundef nonnull %41, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %37) #6
  %268 = load i64, ptr %37, align 8, !tbaa !5
  %.not651 = icmp eq i64 %268, 0
  br i1 %.not651, label %279, label %269

269:                                              ; preds = %266
  %270 = icmp slt i64 %268, 1
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  %.not667 = icmp sgt i64 %268, %.pre
  %or.cond806 = select i1 %270, i1 true, i1 %.not667
  br i1 %or.cond806, label %272, label %271

271:                                              ; preds = %269
  store i64 %268, ptr %28, align 8, !tbaa !5
  br label %556

272:                                              ; preds = %269
  %273 = icmp sle i64 %268, %.pre
  %274 = shl i64 %.pre, 1
  %.not668 = icmp sgt i64 %268, %274
  %or.cond674 = or i1 %273, %.not668
  br i1 %or.cond674, label %277, label %275

275:                                              ; preds = %272
  %276 = sub nsw i64 %268, %.pre
  store i64 %276, ptr %28, align 8, !tbaa !5
  br label %556

277:                                              ; preds = %272
  %278 = add nsw i64 %.pre, 1
  store i64 %278, ptr %28, align 8, !tbaa !5
  br label %556

279:                                              ; preds = %266
  br i1 %or.cond13.not, label %280, label %.loopexit714

280:                                              ; preds = %279
  br i1 %74, label %281, label %292

281:                                              ; preds = %280
  br i1 %66, label %282, label %285

282:                                              ; preds = %281
  br i1 %72, label %283, label %284

283:                                              ; preds = %282
  store i8 66, ptr %41, align 1, !tbaa !11
  br label %286

284:                                              ; preds = %282
  store i8 76, ptr %41, align 1, !tbaa !11
  br label %286

285:                                              ; preds = %281
  store i8 82, ptr %41, align 1, !tbaa !11
  br label %286

286:                                              ; preds = %283, %284, %285
  %287 = call i32 @stgevc_(ptr noundef nonnull %41, ptr noundef nonnull @.str.4, ptr noundef nonnull %40, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %4, ptr noundef nonnull %33, ptr noundef nonnull %24, ptr noundef nonnull %37) #6
  %288 = load i64, ptr %37, align 8, !tbaa !5
  %.not652 = icmp eq i64 %288, 0
  br i1 %.not652, label %292, label %289

289:                                              ; preds = %286
  %290 = load i64, ptr %4, align 8, !tbaa !5
  %291 = add nsw i64 %290, 2
  store i64 %291, ptr %28, align 8, !tbaa !5
  br label %556

292:                                              ; preds = %286, %280
  br i1 %209, label %293, label %.loopexit714

293:                                              ; preds = %292
  %294 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %294, ptr %30, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %48, i64 4
  %.not653717 = icmp slt i64 %294, 1
  br i1 %.not653717, label %.loopexit714, label %.lr.ph722

.lr.ph722:                                        ; preds = %293
  %or.cond21 = select i1 %94, i1 true, i1 %95
  br label %295

295:                                              ; preds = %.lr.ph722, %331
  %296 = phi i64 [ %294, %.lr.ph722 ], [ %332, %331 ]
  %.0605720 = phi i64 [ 0, %.lr.ph722 ], [ %.2607, %331 ]
  %.0617718 = phi i64 [ 1, %.lr.ph722 ], [ %333, %331 ]
  %.not654 = icmp eq i64 %.0605720, 0
  br i1 %.not654, label %297, label %331

297:                                              ; preds = %295
  store i64 1, ptr %34, align 8, !tbaa !5
  %298 = load i64, ptr %4, align 8, !tbaa !5
  %299 = icmp slt i64 %.0617718, %298
  br i1 %299, label %300, label %306

300:                                              ; preds = %297
  %301 = mul nsw i64 %.0617718, %46
  %gep = getelementptr float, ptr %invariant.gep, i64 %.0617718
  %302 = getelementptr float, ptr %gep, i64 %301
  %303 = load float, ptr %302, align 4, !tbaa !9
  %304 = fcmp une float %303, 0.000000e+00
  br i1 %304, label %305, label %306

305:                                              ; preds = %300
  store i64 2, ptr %34, align 8, !tbaa !5
  br label %306

306:                                              ; preds = %300, %305, %297
  %switch = phi i1 [ false, %305 ], [ true, %300 ], [ true, %297 ]
  %307 = phi i64 [ 2, %305 ], [ 1, %300 ], [ 1, %297 ]
  %.1606 = phi i64 [ 1, %305 ], [ 0, %300 ], [ 0, %297 ]
  store i64 %298, ptr %31, align 8, !tbaa !5
  %.not655715 = icmp slt i64 %298, 1
  br i1 %.not655715, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %306
  %308 = shl nuw i64 %298, 3
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 %308, i1 false), !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.preheader, %306
  %309 = getelementptr inbounds i64, ptr %61, i64 %.0617718
  store i64 1, ptr %309, align 8, !tbaa !5
  br i1 %switch, label %312, label %310

310:                                              ; preds = %._crit_edge
  %311 = getelementptr i64, ptr %27, i64 %.0617718
  store i64 1, ptr %311, align 8, !tbaa !5
  br label %312

312:                                              ; preds = %._crit_edge, %310
  %313 = load i64, ptr %4, align 8, !tbaa !5
  %314 = mul nsw i64 %313, %307
  %reass.add = shl i64 %314, 1
  br i1 %or.cond21, label %315, label %323

315:                                              ; preds = %312
  %316 = getelementptr float, ptr %24, i64 %314
  %317 = getelementptr float, ptr %24, i64 %reass.add
  %318 = call i32 @stgevc_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %24, ptr noundef nonnull %4, ptr noundef %316, ptr noundef nonnull %4, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %317, ptr noundef nonnull %37) #6
  %319 = load i64, ptr %37, align 8, !tbaa !5
  %.not656 = icmp eq i64 %319, 0
  br i1 %.not656, label %323, label %320

320:                                              ; preds = %315
  %321 = load i64, ptr %4, align 8, !tbaa !5
  %322 = add nsw i64 %321, 2
  store i64 %322, ptr %28, align 8, !tbaa !5
  br label %556

323:                                              ; preds = %315, %312
  %324 = load i64, ptr %25, align 8, !tbaa !5
  %325 = sub i64 %324, %reass.add
  store i64 %325, ptr %31, align 8, !tbaa !5
  %326 = getelementptr float, ptr %24, i64 %314
  %327 = getelementptr inbounds float, ptr %59, i64 %.0617718
  %328 = getelementptr inbounds float, ptr %60, i64 %.0617718
  %329 = getelementptr float, ptr %24, i64 %reass.add
  %330 = call i32 @stgsna_(ptr noundef %3, ptr noundef nonnull @.str.5, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %24, ptr noundef nonnull %4, ptr noundef %326, ptr noundef nonnull %4, ptr noundef nonnull %327, ptr noundef nonnull %328, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef %329, ptr noundef nonnull %31, ptr noundef %26, ptr noundef nonnull %37) #6
  %.pre794 = load i64, ptr %30, align 8, !tbaa !5
  br label %331

331:                                              ; preds = %295, %323
  %332 = phi i64 [ %.pre794, %323 ], [ %296, %295 ]
  %.2607 = phi i64 [ %.1606, %323 ], [ 0, %295 ]
  %333 = add nuw nsw i64 %.0617718, 1
  %.not653.not = icmp slt i64 %.0617718, %332
  br i1 %.not653.not, label %295, label %.loopexit714, !llvm.loop !12

.loopexit714:                                     ; preds = %331, %293, %292, %279
  br i1 %66, label %334, label %.loopexit713

334:                                              ; preds = %.loopexit714
  %335 = call i32 @sggbak_(ptr noundef %0, ptr noundef nonnull @.str.14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef %18, ptr noundef %19, ptr noundef nonnull %4, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %37) #6
  %336 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %336, ptr %30, align 8, !tbaa !5
  %.not657746 = icmp slt i64 %336, 1
  br i1 %.not657746, label %.loopexit713, label %.lr.ph749

.lr.ph749:                                        ; preds = %334
  %337 = load float, ptr %45, align 4
  %338 = add nuw i64 %336, 4611686018427387903
  %339 = mul i64 %53, %338
  %340 = add i64 %339, %336
  %341 = shl i64 %340, 2
  %scevgep = getelementptr i8, ptr %12, i64 %341
  %342 = shl i64 %53, 2
  %scevgep818 = getelementptr i8, ptr %12, i64 %342
  %343 = add i64 %342, 4
  %344 = mul i64 %336, %343
  %scevgep819 = getelementptr i8, ptr %12, i64 %344
  %xtraiter = and i64 %336, 1
  %345 = icmp eq i64 %336, 1
  %unroll_iter = and i64 %336, 9223372036854775806
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %min.iters.check823 = icmp ult i64 %336, 8
  %bound0 = icmp ugt ptr %scevgep819, %12
  %bound1 = icmp ult ptr %scevgep818, %scevgep
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i64 %342, 0
  %346 = or i1 %found.conflict, %stride.check
  %n.vec826 = and i64 %336, 9223372036854775800
  %ind.end827 = or disjoint i64 %n.vec826, 1
  %cmp.n839 = icmp eq i64 %336, %n.vec826
  %xtraiter893 = and i64 %336, 1
  %lcmp.mod894.not = icmp eq i64 %xtraiter893, 0
  %min.iters.check = icmp ult i64 %336, 8
  %n.vec = and i64 %336, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %336, %n.vec
  br label %347

347:                                              ; preds = %.lr.ph749, %.loopexit709
  %.0614747 = phi i64 [ 1, %.lr.ph749 ], [ %441, %.loopexit709 ]
  %348 = getelementptr inbounds float, ptr %52, i64 %.0614747
  %349 = load float, ptr %348, align 4, !tbaa !9
  %350 = fcmp olt float %349, 0.000000e+00
  br i1 %350, label %.loopexit709, label %351

351:                                              ; preds = %347
  %352 = fcmp oeq float %349, 0.000000e+00
  store i64 %336, ptr %31, align 8, !tbaa !5
  %353 = mul nsw i64 %.0614747, %53
  br i1 %352, label %.lr.ph732, label %.lr.ph727

.lr.ph732:                                        ; preds = %351
  %invariant.gep734 = getelementptr float, ptr %55, i64 %353
  br i1 %345, label %.loopexit711.loopexit.unr-lcssa, label %.lr.ph732.new

.lr.ph732.new:                                    ; preds = %.lr.ph732
  %invariant.gep908 = getelementptr i8, ptr %invariant.gep734, i64 4
  br label %354

354:                                              ; preds = %354, %.lr.ph732.new
  %.0602730 = phi float [ 0.000000e+00, %.lr.ph732.new ], [ %366, %354 ]
  %.0608729 = phi i64 [ 1, %.lr.ph732.new ], [ %367, %354 ]
  %niter = phi i64 [ 0, %.lr.ph732.new ], [ %niter.next.1, %354 ]
  %gep735 = getelementptr float, ptr %invariant.gep734, i64 %.0608729
  %355 = load float, ptr %gep735, align 4, !tbaa !9
  %356 = fcmp oge float %355, 0.000000e+00
  %357 = fneg float %355
  %358 = select i1 %356, float %355, float %357
  %359 = fcmp oge float %.0602730, %358
  %360 = select i1 %359, float %.0602730, float %358
  %gep909 = getelementptr float, ptr %invariant.gep908, i64 %.0608729
  %361 = load float, ptr %gep909, align 4, !tbaa !9
  %362 = fcmp oge float %361, 0.000000e+00
  %363 = fneg float %361
  %364 = select i1 %362, float %361, float %363
  %365 = fcmp oge float %360, %364
  %366 = select i1 %365, float %360, float %364
  %367 = add nuw i64 %.0608729, 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 %.loopexit711.loopexit.unr-lcssa, label %354, !llvm.loop !14

.lr.ph727:                                        ; preds = %351
  %368 = add nuw nsw i64 %.0614747, 1
  %369 = mul nsw i64 %368, %53
  br label %370

370:                                              ; preds = %.lr.ph727, %370
  %.1603725 = phi float [ 0.000000e+00, %.lr.ph727 ], [ %384, %370 ]
  %.1609724 = phi i64 [ 1, %.lr.ph727 ], [ %385, %370 ]
  %371 = getelementptr float, ptr %55, i64 %.1609724
  %372 = getelementptr float, ptr %371, i64 %353
  %373 = load float, ptr %372, align 4, !tbaa !9
  %374 = fcmp oge float %373, 0.000000e+00
  %375 = fneg float %373
  %376 = select i1 %374, float %373, float %375
  %377 = getelementptr float, ptr %371, i64 %369
  %378 = load float, ptr %377, align 4, !tbaa !9
  %379 = fcmp oge float %378, 0.000000e+00
  %380 = fneg float %378
  %381 = select i1 %379, float %378, float %380
  %382 = fadd float %376, %381
  %383 = fcmp oge float %.1603725, %382
  %384 = select i1 %383, float %.1603725, float %382
  %385 = add nuw i64 %.1609724, 1
  %exitcond.not = icmp eq i64 %.1609724, %336
  br i1 %exitcond.not, label %.loopexit711, label %370, !llvm.loop !15

.loopexit711.loopexit.unr-lcssa:                  ; preds = %354, %.lr.ph732
  %.lcssa891.ph = phi float [ poison, %.lr.ph732 ], [ %366, %354 ]
  %.0602730.unr = phi float [ 0.000000e+00, %.lr.ph732 ], [ %366, %354 ]
  %.0608729.unr = phi i64 [ 1, %.lr.ph732 ], [ %367, %354 ]
  br i1 %lcmp.mod.not, label %.loopexit711, label %.loopexit711.loopexit.epilog-lcssa

.loopexit711.loopexit.epilog-lcssa:               ; preds = %.loopexit711.loopexit.unr-lcssa
  %gep735.epil = getelementptr float, ptr %invariant.gep734, i64 %.0608729.unr
  %386 = load float, ptr %gep735.epil, align 4, !tbaa !9
  %387 = fcmp oge float %386, 0.000000e+00
  %388 = fneg float %386
  %389 = select i1 %387, float %386, float %388
  %390 = fcmp oge float %.0602730.unr, %389
  %391 = select i1 %390, float %.0602730.unr, float %389
  br label %.loopexit711

.loopexit711:                                     ; preds = %370, %.loopexit711.loopexit.epilog-lcssa, %.loopexit711.loopexit.unr-lcssa
  %.2604 = phi float [ %.lcssa891.ph, %.loopexit711.loopexit.unr-lcssa ], [ %391, %.loopexit711.loopexit.epilog-lcssa ], [ %384, %370 ]
  %392 = fcmp olt float %.2604, %337
  br i1 %392, label %.loopexit709, label %393

393:                                              ; preds = %.loopexit711
  %394 = fdiv float 1.000000e+00, %.2604
  store i64 %336, ptr %31, align 8, !tbaa !5
  %395 = mul nsw i64 %.0614747, %53
  br i1 %352, label %.lr.ph743, label %.lr.ph739

.lr.ph743:                                        ; preds = %393
  %invariant.gep744 = getelementptr float, ptr %55, i64 %395
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph743
  %broadcast.splatinsert = insertelement <4 x float> poison, float %394, 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
  %396 = getelementptr float, ptr %invariant.gep744, i64 %offset.idx
  %397 = getelementptr i8, ptr %396, i64 16
  %wide.load = load <4 x float>, ptr %396, align 4, !tbaa !9
  %wide.load817 = load <4 x float>, ptr %397, align 4, !tbaa !9
  %398 = fmul <4 x float> %broadcast.splat, %wide.load
  %399 = fmul <4 x float> %broadcast.splat, %wide.load817
  store <4 x float> %398, ptr %396, align 4, !tbaa !9
  store <4 x float> %399, ptr %397, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %400 = icmp eq i64 %index.next, %n.vec
  br i1 %400, label %middle.block, label %vector.body, !llvm.loop !16

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

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

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.2610741 = phi i64 [ %403, %scalar.ph ], [ %.2610741.ph, %scalar.ph.preheader ]
  %gep745 = getelementptr float, ptr %invariant.gep744, i64 %.2610741
  %401 = load float, ptr %gep745, align 4, !tbaa !9
  %402 = fmul float %394, %401
  store float %402, ptr %gep745, align 4, !tbaa !9
  %403 = add nuw i64 %.2610741, 1
  %exitcond787.not = icmp eq i64 %.2610741, %336
  br i1 %exitcond787.not, label %.loopexit709, label %scalar.ph, !llvm.loop !19

.lr.ph739:                                        ; preds = %393
  %404 = add nuw nsw i64 %.0614747, 1
  %405 = mul nsw i64 %404, %53
  %brmerge912 = select i1 %min.iters.check823, i1 true, i1 %346
  br i1 %brmerge912, label %scalar.ph822.preheader, label %vector.ph824

vector.ph824:                                     ; preds = %.lr.ph739
  %broadcast.splatinsert834 = insertelement <4 x float> poison, float %394, i64 0
  %broadcast.splat835 = shufflevector <4 x float> %broadcast.splatinsert834, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body829

vector.body829:                                   ; preds = %vector.body829, %vector.ph824
  %index830 = phi i64 [ 0, %vector.ph824 ], [ %index.next838, %vector.body829 ]
  %offset.idx831 = or disjoint i64 %index830, 1
  %406 = getelementptr float, ptr %55, i64 %offset.idx831
  %407 = getelementptr float, ptr %406, i64 %395
  %408 = getelementptr i8, ptr %407, i64 16
  %wide.load832 = load <4 x float>, ptr %407, align 4, !tbaa !9, !alias.scope !20, !noalias !23
  %wide.load833 = load <4 x float>, ptr %408, align 4, !tbaa !9, !alias.scope !20, !noalias !23
  %409 = fmul <4 x float> %broadcast.splat835, %wide.load832
  %410 = fmul <4 x float> %broadcast.splat835, %wide.load833
  store <4 x float> %409, ptr %407, align 4, !tbaa !9, !alias.scope !20, !noalias !23
  store <4 x float> %410, ptr %408, align 4, !tbaa !9, !alias.scope !20, !noalias !23
  %411 = getelementptr float, ptr %406, i64 %405
  %412 = getelementptr i8, ptr %411, i64 16
  %wide.load836 = load <4 x float>, ptr %411, align 4, !tbaa !9, !alias.scope !23
  %wide.load837 = load <4 x float>, ptr %412, align 4, !tbaa !9, !alias.scope !23
  %413 = fmul <4 x float> %broadcast.splat835, %wide.load836
  %414 = fmul <4 x float> %broadcast.splat835, %wide.load837
  store <4 x float> %413, ptr %411, align 4, !tbaa !9, !alias.scope !23
  store <4 x float> %414, ptr %412, align 4, !tbaa !9, !alias.scope !23
  %index.next838 = add nuw i64 %index830, 8
  %415 = icmp eq i64 %index.next838, %n.vec826
  br i1 %415, label %middle.block821, label %vector.body829, !llvm.loop !25

middle.block821:                                  ; preds = %vector.body829
  br i1 %cmp.n839, label %.loopexit709, label %scalar.ph822.preheader

scalar.ph822.preheader:                           ; preds = %.lr.ph739, %middle.block821
  %.3611737.ph = phi i64 [ 1, %.lr.ph739 ], [ %ind.end827, %middle.block821 ]
  br i1 %lcmp.mod894.not, label %scalar.ph822.prol.loopexit, label %scalar.ph822.prol

scalar.ph822.prol:                                ; preds = %scalar.ph822.preheader
  %416 = getelementptr float, ptr %55, i64 %.3611737.ph
  %417 = getelementptr float, ptr %416, i64 %395
  %418 = load float, ptr %417, align 4, !tbaa !9
  %419 = fmul float %394, %418
  store float %419, ptr %417, align 4, !tbaa !9
  %420 = getelementptr float, ptr %416, i64 %405
  %421 = load float, ptr %420, align 4, !tbaa !9
  %422 = fmul float %394, %421
  store float %422, ptr %420, align 4, !tbaa !9
  %423 = add nuw i64 %.3611737.ph, 1
  br label %scalar.ph822.prol.loopexit

scalar.ph822.prol.loopexit:                       ; preds = %scalar.ph822.prol, %scalar.ph822.preheader
  %.3611737.unr = phi i64 [ %.3611737.ph, %scalar.ph822.preheader ], [ %423, %scalar.ph822.prol ]
  %424 = icmp eq i64 %336, %.3611737.ph
  br i1 %424, label %.loopexit709, label %scalar.ph822

scalar.ph822:                                     ; preds = %scalar.ph822.prol.loopexit, %scalar.ph822
  %.3611737 = phi i64 [ %440, %scalar.ph822 ], [ %.3611737.unr, %scalar.ph822.prol.loopexit ]
  %425 = getelementptr float, ptr %55, i64 %.3611737
  %426 = getelementptr float, ptr %425, i64 %395
  %427 = load float, ptr %426, align 4, !tbaa !9
  %428 = fmul float %394, %427
  store float %428, ptr %426, align 4, !tbaa !9
  %429 = getelementptr float, ptr %425, i64 %405
  %430 = load float, ptr %429, align 4, !tbaa !9
  %431 = fmul float %394, %430
  store float %431, ptr %429, align 4, !tbaa !9
  %432 = add nuw i64 %.3611737, 1
  %433 = getelementptr float, ptr %55, i64 %432
  %434 = getelementptr float, ptr %433, i64 %395
  %435 = load float, ptr %434, align 4, !tbaa !9
  %436 = fmul float %394, %435
  store float %436, ptr %434, align 4, !tbaa !9
  %437 = getelementptr float, ptr %433, i64 %405
  %438 = load float, ptr %437, align 4, !tbaa !9
  %439 = fmul float %394, %438
  store float %439, ptr %437, align 4, !tbaa !9
  %440 = add nuw i64 %.3611737, 2
  %exitcond786.not.1 = icmp eq i64 %432, %336
  br i1 %exitcond786.not.1, label %.loopexit709, label %scalar.ph822, !llvm.loop !26

.loopexit709:                                     ; preds = %scalar.ph822.prol.loopexit, %scalar.ph822, %scalar.ph, %middle.block821, %middle.block, %347, %.loopexit711
  %441 = add nuw i64 %.0614747, 1
  %exitcond788.not = icmp eq i64 %.0614747, %336
  br i1 %exitcond788.not, label %.loopexit713, label %347, !llvm.loop !27

.loopexit713:                                     ; preds = %.loopexit709, %334, %.loopexit714
  br i1 %72, label %442, label %.loopexit708

442:                                              ; preds = %.loopexit713
  %443 = call i32 @sggbak_(ptr noundef %0, ptr noundef nonnull @.str.17, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef %18, ptr noundef %19, ptr noundef nonnull %4, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %37) #6
  %444 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %444, ptr %30, align 8, !tbaa !5
  %.not658774 = icmp slt i64 %444, 1
  br i1 %.not658774, label %.loopexit708, label %.lr.ph777

.lr.ph777:                                        ; preds = %442
  %445 = load float, ptr %45, align 4
  %446 = add nuw i64 %444, 4611686018427387903
  %447 = mul i64 %56, %446
  %448 = add i64 %447, %444
  %449 = shl i64 %448, 2
  %scevgep858 = getelementptr i8, ptr %14, i64 %449
  %450 = shl i64 %56, 2
  %scevgep859 = getelementptr i8, ptr %14, i64 %450
  %451 = add i64 %450, 4
  %452 = mul i64 %444, %451
  %scevgep860 = getelementptr i8, ptr %14, i64 %452
  %xtraiter896 = and i64 %444, 1
  %453 = icmp eq i64 %444, 1
  %unroll_iter899 = and i64 %444, 9223372036854775806
  %lcmp.mod897.not = icmp eq i64 %xtraiter896, 0
  %min.iters.check868 = icmp ult i64 %444, 8
  %bound0861 = icmp ugt ptr %scevgep860, %14
  %bound1862 = icmp ult ptr %scevgep859, %scevgep858
  %found.conflict863 = and i1 %bound0861, %bound1862
  %stride.check864 = icmp slt i64 %450, 0
  %454 = or i1 %found.conflict863, %stride.check864
  %n.vec871 = and i64 %444, 9223372036854775800
  %ind.end872 = or disjoint i64 %n.vec871, 1
  %cmp.n884 = icmp eq i64 %444, %n.vec871
  %xtraiter901 = and i64 %444, 1
  %lcmp.mod902.not = icmp eq i64 %xtraiter901, 0
  %min.iters.check842 = icmp ult i64 %444, 8
  %n.vec845 = and i64 %444, 9223372036854775800
  %ind.end846 = or disjoint i64 %n.vec845, 1
  %cmp.n856 = icmp eq i64 %444, %n.vec845
  br label %455

455:                                              ; preds = %.lr.ph777, %.loopexit
  %.1615775 = phi i64 [ 1, %.lr.ph777 ], [ %549, %.loopexit ]
  %456 = getelementptr inbounds float, ptr %52, i64 %.1615775
  %457 = load float, ptr %456, align 4, !tbaa !9
  %458 = fcmp olt float %457, 0.000000e+00
  br i1 %458, label %.loopexit, label %459

459:                                              ; preds = %455
  %460 = fcmp oeq float %457, 0.000000e+00
  store i64 %444, ptr %31, align 8, !tbaa !5
  %461 = mul nsw i64 %.1615775, %56
  br i1 %460, label %.lr.ph760, label %.lr.ph754

.lr.ph760:                                        ; preds = %459
  %invariant.gep762 = getelementptr float, ptr %58, i64 %461
  br i1 %453, label %.loopexit706.loopexit.unr-lcssa, label %.lr.ph760.new

.lr.ph760.new:                                    ; preds = %.lr.ph760
  %invariant.gep910 = getelementptr i8, ptr %invariant.gep762, i64 4
  br label %462

462:                                              ; preds = %462, %.lr.ph760.new
  %.3758 = phi float [ 0.000000e+00, %.lr.ph760.new ], [ %474, %462 ]
  %.4612757 = phi i64 [ 1, %.lr.ph760.new ], [ %475, %462 ]
  %niter900 = phi i64 [ 0, %.lr.ph760.new ], [ %niter900.next.1, %462 ]
  %gep763 = getelementptr float, ptr %invariant.gep762, i64 %.4612757
  %463 = load float, ptr %gep763, align 4, !tbaa !9
  %464 = fcmp oge float %463, 0.000000e+00
  %465 = fneg float %463
  %466 = select i1 %464, float %463, float %465
  %467 = fcmp oge float %.3758, %466
  %468 = select i1 %467, float %.3758, float %466
  %gep911 = getelementptr float, ptr %invariant.gep910, i64 %.4612757
  %469 = load float, ptr %gep911, align 4, !tbaa !9
  %470 = fcmp oge float %469, 0.000000e+00
  %471 = fneg float %469
  %472 = select i1 %470, float %469, float %471
  %473 = fcmp oge float %468, %472
  %474 = select i1 %473, float %468, float %472
  %475 = add nuw i64 %.4612757, 2
  %niter900.next.1 = add i64 %niter900, 2
  %niter900.ncmp.1 = icmp eq i64 %niter900.next.1, %unroll_iter899
  br i1 %niter900.ncmp.1, label %.loopexit706.loopexit.unr-lcssa, label %462, !llvm.loop !28

.lr.ph754:                                        ; preds = %459
  %476 = add nuw nsw i64 %.1615775, 1
  %477 = mul nsw i64 %476, %56
  br label %478

478:                                              ; preds = %.lr.ph754, %478
  %.4752 = phi float [ 0.000000e+00, %.lr.ph754 ], [ %492, %478 ]
  %.5613751 = phi i64 [ 1, %.lr.ph754 ], [ %493, %478 ]
  %479 = getelementptr float, ptr %58, i64 %.5613751
  %480 = getelementptr float, ptr %479, i64 %461
  %481 = load float, ptr %480, align 4, !tbaa !9
  %482 = fcmp oge float %481, 0.000000e+00
  %483 = fneg float %481
  %484 = select i1 %482, float %481, float %483
  %485 = getelementptr float, ptr %479, i64 %477
  %486 = load float, ptr %485, align 4, !tbaa !9
  %487 = fcmp oge float %486, 0.000000e+00
  %488 = fneg float %486
  %489 = select i1 %487, float %486, float %488
  %490 = fadd float %484, %489
  %491 = fcmp oge float %.4752, %490
  %492 = select i1 %491, float %.4752, float %490
  %493 = add nuw i64 %.5613751, 1
  %exitcond789.not = icmp eq i64 %.5613751, %444
  br i1 %exitcond789.not, label %.loopexit706, label %478, !llvm.loop !29

.loopexit706.loopexit.unr-lcssa:                  ; preds = %462, %.lr.ph760
  %.lcssa887.ph = phi float [ poison, %.lr.ph760 ], [ %474, %462 ]
  %.3758.unr = phi float [ 0.000000e+00, %.lr.ph760 ], [ %474, %462 ]
  %.4612757.unr = phi i64 [ 1, %.lr.ph760 ], [ %475, %462 ]
  br i1 %lcmp.mod897.not, label %.loopexit706, label %.loopexit706.loopexit.epilog-lcssa

.loopexit706.loopexit.epilog-lcssa:               ; preds = %.loopexit706.loopexit.unr-lcssa
  %gep763.epil = getelementptr float, ptr %invariant.gep762, i64 %.4612757.unr
  %494 = load float, ptr %gep763.epil, align 4, !tbaa !9
  %495 = fcmp oge float %494, 0.000000e+00
  %496 = fneg float %494
  %497 = select i1 %495, float %494, float %496
  %498 = fcmp oge float %.3758.unr, %497
  %499 = select i1 %498, float %.3758.unr, float %497
  br label %.loopexit706

.loopexit706:                                     ; preds = %478, %.loopexit706.loopexit.epilog-lcssa, %.loopexit706.loopexit.unr-lcssa
  %.5 = phi float [ %.lcssa887.ph, %.loopexit706.loopexit.unr-lcssa ], [ %499, %.loopexit706.loopexit.epilog-lcssa ], [ %492, %478 ]
  %500 = fcmp olt float %.5, %445
  br i1 %500, label %.loopexit, label %501

501:                                              ; preds = %.loopexit706
  %502 = fdiv float 1.000000e+00, %.5
  store i64 %444, ptr %31, align 8, !tbaa !5
  %503 = mul nsw i64 %.1615775, %56
  br i1 %460, label %.lr.ph771, label %.lr.ph767

.lr.ph771:                                        ; preds = %501
  %invariant.gep772 = getelementptr float, ptr %58, i64 %503
  br i1 %min.iters.check842, label %scalar.ph841.preheader, label %vector.ph843

vector.ph843:                                     ; preds = %.lr.ph771
  %broadcast.splatinsert853 = insertelement <4 x float> poison, float %502, i64 0
  %broadcast.splat854 = shufflevector <4 x float> %broadcast.splatinsert853, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body848

vector.body848:                                   ; preds = %vector.body848, %vector.ph843
  %index849 = phi i64 [ 0, %vector.ph843 ], [ %index.next855, %vector.body848 ]
  %offset.idx850 = or disjoint i64 %index849, 1
  %504 = getelementptr float, ptr %invariant.gep772, i64 %offset.idx850
  %505 = getelementptr i8, ptr %504, i64 16
  %wide.load851 = load <4 x float>, ptr %504, align 4, !tbaa !9
  %wide.load852 = load <4 x float>, ptr %505, align 4, !tbaa !9
  %506 = fmul <4 x float> %broadcast.splat854, %wide.load851
  %507 = fmul <4 x float> %broadcast.splat854, %wide.load852
  store <4 x float> %506, ptr %504, align 4, !tbaa !9
  store <4 x float> %507, ptr %505, align 4, !tbaa !9
  %index.next855 = add nuw i64 %index849, 8
  %508 = icmp eq i64 %index.next855, %n.vec845
  br i1 %508, label %middle.block840, label %vector.body848, !llvm.loop !30

middle.block840:                                  ; preds = %vector.body848
  br i1 %cmp.n856, label %.loopexit, label %scalar.ph841.preheader

scalar.ph841.preheader:                           ; preds = %middle.block840, %.lr.ph771
  %.6769.ph = phi i64 [ 1, %.lr.ph771 ], [ %ind.end846, %middle.block840 ]
  br label %scalar.ph841

scalar.ph841:                                     ; preds = %scalar.ph841.preheader, %scalar.ph841
  %.6769 = phi i64 [ %511, %scalar.ph841 ], [ %.6769.ph, %scalar.ph841.preheader ]
  %gep773 = getelementptr float, ptr %invariant.gep772, i64 %.6769
  %509 = load float, ptr %gep773, align 4, !tbaa !9
  %510 = fmul float %502, %509
  store float %510, ptr %gep773, align 4, !tbaa !9
  %511 = add nuw i64 %.6769, 1
  %exitcond792.not = icmp eq i64 %.6769, %444
  br i1 %exitcond792.not, label %.loopexit, label %scalar.ph841, !llvm.loop !31

.lr.ph767:                                        ; preds = %501
  %512 = add nuw nsw i64 %.1615775, 1
  %513 = mul nsw i64 %512, %56
  %brmerge913 = select i1 %min.iters.check868, i1 true, i1 %454
  br i1 %brmerge913, label %scalar.ph867.preheader, label %vector.ph869

vector.ph869:                                     ; preds = %.lr.ph767
  %broadcast.splatinsert879 = insertelement <4 x float> poison, float %502, i64 0
  %broadcast.splat880 = shufflevector <4 x float> %broadcast.splatinsert879, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body874

vector.body874:                                   ; preds = %vector.body874, %vector.ph869
  %index875 = phi i64 [ 0, %vector.ph869 ], [ %index.next883, %vector.body874 ]
  %offset.idx876 = or disjoint i64 %index875, 1
  %514 = getelementptr float, ptr %58, i64 %offset.idx876
  %515 = getelementptr float, ptr %514, i64 %503
  %516 = getelementptr i8, ptr %515, i64 16
  %wide.load877 = load <4 x float>, ptr %515, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  %wide.load878 = load <4 x float>, ptr %516, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  %517 = fmul <4 x float> %broadcast.splat880, %wide.load877
  %518 = fmul <4 x float> %broadcast.splat880, %wide.load878
  store <4 x float> %517, ptr %515, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  store <4 x float> %518, ptr %516, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  %519 = getelementptr float, ptr %514, i64 %513
  %520 = getelementptr i8, ptr %519, i64 16
  %wide.load881 = load <4 x float>, ptr %519, align 4, !tbaa !9, !alias.scope !35
  %wide.load882 = load <4 x float>, ptr %520, align 4, !tbaa !9, !alias.scope !35
  %521 = fmul <4 x float> %broadcast.splat880, %wide.load881
  %522 = fmul <4 x float> %broadcast.splat880, %wide.load882
  store <4 x float> %521, ptr %519, align 4, !tbaa !9, !alias.scope !35
  store <4 x float> %522, ptr %520, align 4, !tbaa !9, !alias.scope !35
  %index.next883 = add nuw i64 %index875, 8
  %523 = icmp eq i64 %index.next883, %n.vec871
  br i1 %523, label %middle.block866, label %vector.body874, !llvm.loop !37

middle.block866:                                  ; preds = %vector.body874
  br i1 %cmp.n884, label %.loopexit, label %scalar.ph867.preheader

scalar.ph867.preheader:                           ; preds = %.lr.ph767, %middle.block866
  %.7765.ph = phi i64 [ 1, %.lr.ph767 ], [ %ind.end872, %middle.block866 ]
  br i1 %lcmp.mod902.not, label %scalar.ph867.prol.loopexit, label %scalar.ph867.prol

scalar.ph867.prol:                                ; preds = %scalar.ph867.preheader
  %524 = getelementptr float, ptr %58, i64 %.7765.ph
  %525 = getelementptr float, ptr %524, i64 %503
  %526 = load float, ptr %525, align 4, !tbaa !9
  %527 = fmul float %502, %526
  store float %527, ptr %525, align 4, !tbaa !9
  %528 = getelementptr float, ptr %524, i64 %513
  %529 = load float, ptr %528, align 4, !tbaa !9
  %530 = fmul float %502, %529
  store float %530, ptr %528, align 4, !tbaa !9
  %531 = add nuw i64 %.7765.ph, 1
  br label %scalar.ph867.prol.loopexit

scalar.ph867.prol.loopexit:                       ; preds = %scalar.ph867.prol, %scalar.ph867.preheader
  %.7765.unr = phi i64 [ %.7765.ph, %scalar.ph867.preheader ], [ %531, %scalar.ph867.prol ]
  %532 = icmp eq i64 %444, %.7765.ph
  br i1 %532, label %.loopexit, label %scalar.ph867

scalar.ph867:                                     ; preds = %scalar.ph867.prol.loopexit, %scalar.ph867
  %.7765 = phi i64 [ %548, %scalar.ph867 ], [ %.7765.unr, %scalar.ph867.prol.loopexit ]
  %533 = getelementptr float, ptr %58, i64 %.7765
  %534 = getelementptr float, ptr %533, i64 %503
  %535 = load float, ptr %534, align 4, !tbaa !9
  %536 = fmul float %502, %535
  store float %536, ptr %534, align 4, !tbaa !9
  %537 = getelementptr float, ptr %533, i64 %513
  %538 = load float, ptr %537, align 4, !tbaa !9
  %539 = fmul float %502, %538
  store float %539, ptr %537, align 4, !tbaa !9
  %540 = add nuw i64 %.7765, 1
  %541 = getelementptr float, ptr %58, i64 %540
  %542 = getelementptr float, ptr %541, i64 %503
  %543 = load float, ptr %542, align 4, !tbaa !9
  %544 = fmul float %502, %543
  store float %544, ptr %542, align 4, !tbaa !9
  %545 = getelementptr float, ptr %541, i64 %513
  %546 = load float, ptr %545, align 4, !tbaa !9
  %547 = fmul float %502, %546
  store float %547, ptr %545, align 4, !tbaa !9
  %548 = add nuw i64 %.7765, 2
  %exitcond791.not.1 = icmp eq i64 %540, %444
  br i1 %exitcond791.not.1, label %.loopexit, label %scalar.ph867, !llvm.loop !38

.loopexit:                                        ; preds = %scalar.ph867.prol.loopexit, %scalar.ph867, %scalar.ph841, %middle.block866, %middle.block840, %455, %.loopexit706
  %549 = add nuw i64 %.1615775, 1
  %exitcond793.not = icmp eq i64 %.1615775, %444
  br i1 %exitcond793.not, label %.loopexit708, label %455, !llvm.loop !39

.loopexit708:                                     ; preds = %.loopexit, %442, %.loopexit713
  br i1 %.not647686, label %553, label %550

550:                                              ; preds = %.loopexit708
  %551 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %35, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %4, ptr noundef nonnull %37) #6
  %552 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %35, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %37) #6
  br label %553

553:                                              ; preds = %550, %.loopexit708
  br i1 %.not648691, label %556, label %554

554:                                              ; preds = %553
  %555 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %36, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %4, ptr noundef nonnull %37) #6
  br label %556

556:                                              ; preds = %553, %554, %271, %277, %275, %320, %289
  store float %146, ptr %24, align 4, !tbaa !9
  br label %557

557:                                              ; preds = %153, %152, %556, %.thread679
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { 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 = distinct !{!16, !13, !17, !18}
!17 = !{!"llvm.loop.isvectorized", i32 1}
!18 = !{!"llvm.loop.unroll.runtime.disable"}
!19 = distinct !{!19, !13, !18, !17}
!20 = !{!21}
!21 = distinct !{!21, !22}
!22 = distinct !{!22, !"LVerDomain"}
!23 = !{!24}
!24 = distinct !{!24, !22}
!25 = distinct !{!25, !13, !17, !18}
!26 = distinct !{!26, !13, !17}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13, !17, !18}
!31 = distinct !{!31, !13, !18, !17}
!32 = !{!33}
!33 = distinct !{!33, !34}
!34 = distinct !{!34, !"LVerDomain"}
!35 = !{!36}
!36 = distinct !{!36, !34}
!37 = distinct !{!37, !13, !17, !18}
!38 = distinct !{!38, !13, !17}
!39 = distinct !{!39, !13}


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