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

176:                                              ; preds = %29
  store i32 1, ptr %98, align 4, !tbaa !9
  store i32 0, ptr %79, align 4, !tbaa !9
  br label %184

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

181:                                              ; preds = %177
  store i32 2, ptr %98, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %183

182:                                              ; preds = %177
  store i32 -1, ptr %98, align 4, !tbaa !9
  store i32 0, ptr %79, align 4, !tbaa !9
  br label %183

183:                                              ; preds = %182, %181
  br label %184

184:                                              ; preds = %183, %176
  %185 = load ptr, ptr %32, align 8, !tbaa !5
  %186 = call i32 @lsame_(ptr noundef %185, ptr noundef @.str)
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %188, label %189

188:                                              ; preds = %184
  store i32 1, ptr %99, align 4, !tbaa !9
  store i32 0, ptr %80, align 4, !tbaa !9
  br label %196

189:                                              ; preds = %184
  %190 = load ptr, ptr %32, align 8, !tbaa !5
  %191 = call i32 @lsame_(ptr noundef %190, ptr noundef @.str.1)
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %193, label %194

193:                                              ; preds = %189
  store i32 2, ptr %99, align 4, !tbaa !9
  store i32 1, ptr %80, align 4, !tbaa !9
  br label %195

194:                                              ; preds = %189
  store i32 -1, ptr %99, align 4, !tbaa !9
  store i32 0, ptr %80, align 4, !tbaa !9
  br label %195

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

196:                                              ; preds = %195, %188
  %197 = load i32, ptr %79, align 4, !tbaa !9
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %202, label %199

199:                                              ; preds = %196
  %200 = load i32, ptr %80, align 4, !tbaa !9
  %201 = icmp ne i32 %200, 0
  br label %202

202:                                              ; preds = %199, %196
  %203 = phi i1 [ true, %196 ], [ %201, %199 ]
  %204 = zext i1 %203 to i32
  store i32 %204, ptr %111, align 4, !tbaa !9
  %205 = load ptr, ptr %30, align 8, !tbaa !5
  %206 = call i32 @lsame_(ptr noundef %205, ptr noundef @.str)
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %212, label %208

208:                                              ; preds = %202
  %209 = load ptr, ptr %30, align 8, !tbaa !5
  %210 = call i32 @lsame_(ptr noundef %209, ptr noundef @.str.2)
  %211 = icmp ne i32 %210, 0
  br label %212

212:                                              ; preds = %208, %202
  %213 = phi i1 [ true, %202 ], [ %211, %208 ]
  %214 = zext i1 %213 to i32
  store i32 %214, ptr %87, align 4, !tbaa !9
  %215 = load ptr, ptr %33, align 8, !tbaa !5
  %216 = call i32 @lsame_(ptr noundef %215, ptr noundef @.str)
  store i32 %216, ptr %106, align 4, !tbaa !9
  %217 = load ptr, ptr %33, align 8, !tbaa !5
  %218 = call i32 @lsame_(ptr noundef %217, ptr noundef @.str.3)
  store i32 %218, ptr %102, align 4, !tbaa !9
  %219 = load ptr, ptr %33, align 8, !tbaa !5
  %220 = call i32 @lsame_(ptr noundef %219, ptr noundef @.str.1)
  store i32 %220, ptr %109, align 4, !tbaa !9
  %221 = load ptr, ptr %33, align 8, !tbaa !5
  %222 = call i32 @lsame_(ptr noundef %221, ptr noundef @.str.4)
  store i32 %222, ptr %100, align 4, !tbaa !9
  %223 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 0, ptr %223, align 4, !tbaa !9
  %224 = load ptr, ptr %55, align 8, !tbaa !5
  %225 = load i32, ptr %224, align 4, !tbaa !9
  %226 = icmp eq i32 %225, -1
  %227 = zext i1 %226 to i32
  store i32 %227, ptr %108, align 4, !tbaa !9
  %228 = load i32, ptr %87, align 4, !tbaa !9
  %229 = icmp ne i32 %228, 0
  br i1 %229, label %240, label %230

230:                                              ; preds = %212
  %231 = load ptr, ptr %30, align 8, !tbaa !5
  %232 = call i32 @lsame_(ptr noundef %231, ptr noundef @.str.5)
  %233 = icmp ne i32 %232, 0
  br i1 %233, label %240, label %234

234:                                              ; preds = %230
  %235 = load ptr, ptr %30, align 8, !tbaa !5
  %236 = call i32 @lsame_(ptr noundef %235, ptr noundef @.str.4)
  %237 = icmp ne i32 %236, 0
  br i1 %237, label %240, label %238

238:                                              ; preds = %234
  %239 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -1, ptr %239, align 4, !tbaa !9
  br label %338

240:                                              ; preds = %234, %230, %212
  %241 = load i32, ptr %98, align 4, !tbaa !9
  %242 = icmp sle i32 %241, 0
  br i1 %242, label %243, label %245

243:                                              ; preds = %240
  %244 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -2, ptr %244, align 4, !tbaa !9
  br label %337

245:                                              ; preds = %240
  %246 = load i32, ptr %99, align 4, !tbaa !9
  %247 = icmp sle i32 %246, 0
  br i1 %247, label %248, label %250

248:                                              ; preds = %245
  %249 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -3, ptr %249, align 4, !tbaa !9
  br label %336

250:                                              ; preds = %245
  %251 = load i32, ptr %106, align 4, !tbaa !9
  %252 = icmp ne i32 %251, 0
  br i1 %252, label %264, label %253

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

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

259:                                              ; preds = %256
  %260 = load i32, ptr %109, align 4, !tbaa !9
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %264, label %262

262:                                              ; preds = %259
  %263 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -4, ptr %263, align 4, !tbaa !9
  br label %335

264:                                              ; preds = %259, %256, %253, %250
  %265 = load ptr, ptr %34, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = icmp slt i32 %266, 0
  br i1 %267, label %268, label %270

268:                                              ; preds = %264
  %269 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -5, ptr %269, align 4, !tbaa !9
  br label %334

270:                                              ; preds = %264
  %271 = load ptr, ptr %36, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  %273 = load ptr, ptr %34, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = icmp sge i32 1, %274
  br i1 %275, label %276, label %277

276:                                              ; preds = %270
  br label %280

277:                                              ; preds = %270
  %278 = load ptr, ptr %34, align 8, !tbaa !5
  %279 = load i32, ptr %278, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %277, %276
  %281 = phi i32 [ 1, %276 ], [ %279, %277 ]
  %282 = icmp slt i32 %272, %281
  br i1 %282, label %283, label %285

283:                                              ; preds = %280
  %284 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -7, ptr %284, align 4, !tbaa !9
  br label %333

285:                                              ; preds = %280
  %286 = load ptr, ptr %38, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  %288 = load ptr, ptr %34, align 8, !tbaa !5
  %289 = load i32, ptr %288, align 4, !tbaa !9
  %290 = icmp sge i32 1, %289
  br i1 %290, label %291, label %292

291:                                              ; preds = %285
  br label %295

292:                                              ; preds = %285
  %293 = load ptr, ptr %34, align 8, !tbaa !5
  %294 = load i32, ptr %293, align 4, !tbaa !9
  br label %295

295:                                              ; preds = %292, %291
  %296 = phi i32 [ 1, %291 ], [ %294, %292 ]
  %297 = icmp slt i32 %287, %296
  br i1 %297, label %298, label %300

298:                                              ; preds = %295
  %299 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -9, ptr %299, align 4, !tbaa !9
  br label %332

300:                                              ; preds = %295
  %301 = load ptr, ptr %43, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  %303 = icmp slt i32 %302, 1
  br i1 %303, label %313, label %304

304:                                              ; preds = %300
  %305 = load i32, ptr %79, align 4, !tbaa !9
  %306 = icmp ne i32 %305, 0
  br i1 %306, label %307, label %315

307:                                              ; preds = %304
  %308 = load ptr, ptr %43, align 8, !tbaa !5
  %309 = load i32, ptr %308, align 4, !tbaa !9
  %310 = load ptr, ptr %34, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = icmp slt i32 %309, %311
  br i1 %312, label %313, label %315

313:                                              ; preds = %307, %300
  %314 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -14, ptr %314, align 4, !tbaa !9
  br label %331

315:                                              ; preds = %307, %304
  %316 = load ptr, ptr %45, align 8, !tbaa !5
  %317 = load i32, ptr %316, align 4, !tbaa !9
  %318 = icmp slt i32 %317, 1
  br i1 %318, label %328, label %319

319:                                              ; preds = %315
  %320 = load i32, ptr %80, align 4, !tbaa !9
  %321 = icmp ne i32 %320, 0
  br i1 %321, label %322, label %330

322:                                              ; preds = %319
  %323 = load ptr, ptr %45, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = load ptr, ptr %34, align 8, !tbaa !5
  %326 = load i32, ptr %325, align 4, !tbaa !9
  %327 = icmp slt i32 %324, %326
  br i1 %327, label %328, label %330

328:                                              ; preds = %322, %315
  %329 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -16, ptr %329, align 4, !tbaa !9
  br label %330

330:                                              ; preds = %328, %322, %319
  br label %331

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

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

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

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

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

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

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

338:                                              ; preds = %337, %238
  %339 = load ptr, ptr %58, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %462

342:                                              ; preds = %338
  %343 = load ptr, ptr %34, align 8, !tbaa !5
  %344 = load i32, ptr %343, align 4, !tbaa !9
  %345 = icmp eq i32 %344, 0
  br i1 %345, label %346, label %347

346:                                              ; preds = %342
  store i32 1, ptr %104, align 4, !tbaa !9
  store i32 1, ptr %105, align 4, !tbaa !9
  br label %447

347:                                              ; preds = %342
  %348 = load i32, ptr %87, align 4, !tbaa !9
  %349 = icmp ne i32 %348, 0
  br i1 %349, label %350, label %357

350:                                              ; preds = %347
  %351 = load i32, ptr %111, align 4, !tbaa !9
  %352 = icmp ne i32 %351, 0
  br i1 %352, label %357, label %353

353:                                              ; preds = %350
  %354 = load ptr, ptr %34, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  %356 = shl i32 %355, 1
  store i32 %356, ptr %104, align 4, !tbaa !9
  br label %361

357:                                              ; preds = %350, %347
  %358 = load ptr, ptr %34, align 8, !tbaa !5
  %359 = load i32, ptr %358, align 4, !tbaa !9
  %360 = mul nsw i32 %359, 6
  store i32 %360, ptr %104, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %357, %353
  %362 = load i32, ptr %102, align 4, !tbaa !9
  %363 = icmp ne i32 %362, 0
  br i1 %363, label %364, label %368

364:                                              ; preds = %361
  %365 = load ptr, ptr %34, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = mul nsw i32 %366, 10
  store i32 %367, ptr %104, align 4, !tbaa !9
  br label %384

368:                                              ; preds = %361
  %369 = load i32, ptr %109, align 4, !tbaa !9
  %370 = icmp ne i32 %369, 0
  br i1 %370, label %374, label %371

371:                                              ; preds = %368
  %372 = load i32, ptr %100, align 4, !tbaa !9
  %373 = icmp ne i32 %372, 0
  br i1 %373, label %374, label %383

374:                                              ; preds = %371, %368
  %375 = load ptr, ptr %34, align 8, !tbaa !5
  %376 = load i32, ptr %375, align 4, !tbaa !9
  %377 = shl i32 %376, 1
  %378 = load ptr, ptr %34, align 8, !tbaa !5
  %379 = load i32, ptr %378, align 4, !tbaa !9
  %380 = add nsw i32 %379, 4
  %381 = mul nsw i32 %377, %380
  %382 = add nsw i32 %381, 16
  store i32 %382, ptr %104, align 4, !tbaa !9
  br label %383

383:                                              ; preds = %374, %371
  br label %384

384:                                              ; preds = %383, %364
  %385 = load i32, ptr %104, align 4, !tbaa !9
  store i32 %385, ptr %105, align 4, !tbaa !9
  %386 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %386, ptr %67, align 4, !tbaa !9
  %387 = load ptr, ptr %34, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = load ptr, ptr %34, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = load ptr, ptr %34, align 8, !tbaa !5
  %392 = load ptr, ptr %34, align 8, !tbaa !5
  %393 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %391, ptr noundef @c__1, ptr noundef %392, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %394 = mul nsw i32 %390, %393
  %395 = add nsw i32 %388, %394
  store i32 %395, ptr %68, align 4, !tbaa !9
  %396 = load i32, ptr %67, align 4, !tbaa !9
  %397 = load i32, ptr %68, align 4, !tbaa !9
  %398 = icmp sge i32 %396, %397
  br i1 %398, label %399, label %401

399:                                              ; preds = %384
  %400 = load i32, ptr %67, align 4, !tbaa !9
  br label %403

401:                                              ; preds = %384
  %402 = load i32, ptr %68, align 4, !tbaa !9
  br label %403

403:                                              ; preds = %401, %399
  %404 = phi i32 [ %400, %399 ], [ %402, %401 ]
  store i32 %404, ptr %105, align 4, !tbaa !9
  %405 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %405, ptr %67, align 4, !tbaa !9
  %406 = load ptr, ptr %34, align 8, !tbaa !5
  %407 = load i32, ptr %406, align 4, !tbaa !9
  %408 = load ptr, ptr %34, align 8, !tbaa !5
  %409 = load i32, ptr %408, align 4, !tbaa !9
  %410 = load ptr, ptr %34, align 8, !tbaa !5
  %411 = load ptr, ptr %34, align 8, !tbaa !5
  %412 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %410, ptr noundef @c__1, ptr noundef %411, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %413 = mul nsw i32 %409, %412
  %414 = add nsw i32 %407, %413
  store i32 %414, ptr %68, align 4, !tbaa !9
  %415 = load i32, ptr %67, align 4, !tbaa !9
  %416 = load i32, ptr %68, align 4, !tbaa !9
  %417 = icmp sge i32 %415, %416
  br i1 %417, label %418, label %420

418:                                              ; preds = %403
  %419 = load i32, ptr %67, align 4, !tbaa !9
  br label %422

420:                                              ; preds = %403
  %421 = load i32, ptr %68, align 4, !tbaa !9
  br label %422

422:                                              ; preds = %420, %418
  %423 = phi i32 [ %419, %418 ], [ %421, %420 ]
  store i32 %423, ptr %105, align 4, !tbaa !9
  %424 = load i32, ptr %79, align 4, !tbaa !9
  %425 = icmp ne i32 %424, 0
  br i1 %425, label %426, label %446

426:                                              ; preds = %422
  %427 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %427, ptr %67, align 4, !tbaa !9
  %428 = load ptr, ptr %34, align 8, !tbaa !5
  %429 = load i32, ptr %428, align 4, !tbaa !9
  %430 = load ptr, ptr %34, align 8, !tbaa !5
  %431 = load i32, ptr %430, align 4, !tbaa !9
  %432 = load ptr, ptr %34, align 8, !tbaa !5
  %433 = load ptr, ptr %34, align 8, !tbaa !5
  %434 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.9, ptr noundef @.str.7, ptr noundef %432, ptr noundef @c__1, ptr noundef %433, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %435 = mul nsw i32 %431, %434
  %436 = add nsw i32 %429, %435
  store i32 %436, ptr %68, align 4, !tbaa !9
  %437 = load i32, ptr %67, align 4, !tbaa !9
  %438 = load i32, ptr %68, align 4, !tbaa !9
  %439 = icmp sge i32 %437, %438
  br i1 %439, label %440, label %442

440:                                              ; preds = %426
  %441 = load i32, ptr %67, align 4, !tbaa !9
  br label %444

442:                                              ; preds = %426
  %443 = load i32, ptr %68, align 4, !tbaa !9
  br label %444

444:                                              ; preds = %442, %440
  %445 = phi i32 [ %441, %440 ], [ %443, %442 ]
  store i32 %445, ptr %105, align 4, !tbaa !9
  br label %446

446:                                              ; preds = %444, %422
  br label %447

447:                                              ; preds = %446, %346
  %448 = load i32, ptr %105, align 4, !tbaa !9
  %449 = sitofp i32 %448 to float
  %450 = load ptr, ptr %54, align 8, !tbaa !5
  %451 = getelementptr inbounds float, ptr %450, i64 1
  store float %449, ptr %451, align 4, !tbaa !11
  %452 = load ptr, ptr %55, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = load i32, ptr %104, align 4, !tbaa !9
  %455 = icmp slt i32 %453, %454
  br i1 %455, label %456, label %461

456:                                              ; preds = %447
  %457 = load i32, ptr %108, align 4, !tbaa !9
  %458 = icmp ne i32 %457, 0
  br i1 %458, label %461, label %459

459:                                              ; preds = %456
  %460 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -26, ptr %460, align 4, !tbaa !9
  br label %461

461:                                              ; preds = %459, %456, %447
  br label %462

462:                                              ; preds = %461, %338
  %463 = load ptr, ptr %58, align 8, !tbaa !5
  %464 = load i32, ptr %463, align 4, !tbaa !9
  %465 = icmp ne i32 %464, 0
  br i1 %465, label %466, label %471

466:                                              ; preds = %462
  %467 = load ptr, ptr %58, align 8, !tbaa !5
  %468 = load i32, ptr %467, align 4, !tbaa !9
  %469 = sub nsw i32 0, %468
  store i32 %469, ptr %67, align 4, !tbaa !9
  %470 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %67, i32 noundef 6)
  store i32 1, ptr %112, align 4
  br label %1633

471:                                              ; preds = %462
  %472 = load i32, ptr %108, align 4, !tbaa !9
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %474, label %475

474:                                              ; preds = %471
  store i32 1, ptr %112, align 4
  br label %1633

475:                                              ; preds = %471
  br label %476

476:                                              ; preds = %475
  %477 = load ptr, ptr %34, align 8, !tbaa !5
  %478 = load i32, ptr %477, align 4, !tbaa !9
  %479 = icmp eq i32 %478, 0
  br i1 %479, label %480, label %481

480:                                              ; preds = %476
  store i32 1, ptr %112, align 4
  br label %1633

481:                                              ; preds = %476
  %482 = call float @slamch_(ptr noundef @.str.2)
  store float %482, ptr %110, align 4, !tbaa !11
  %483 = call float @slamch_(ptr noundef @.str.5)
  store float %483, ptr %107, align 4, !tbaa !11
  %484 = load float, ptr %107, align 4, !tbaa !11
  %485 = fdiv float 1.000000e+00, %484
  store float %485, ptr %97, align 4, !tbaa !11
  call void @slabad_(ptr noundef %107, ptr noundef %97)
  %486 = load float, ptr %107, align 4, !tbaa !11
  %487 = fpext float %486 to double
  %488 = call double @sqrt(double noundef %487) #4
  %489 = load float, ptr %110, align 4, !tbaa !11
  %490 = fpext float %489 to double
  %491 = fdiv double %488, %490
  %492 = fptrunc double %491 to float
  store float %492, ptr %107, align 4, !tbaa !11
  %493 = load float, ptr %107, align 4, !tbaa !11
  %494 = fdiv float 1.000000e+00, %493
  store float %494, ptr %97, align 4, !tbaa !11
  %495 = load ptr, ptr %34, align 8, !tbaa !5
  %496 = load ptr, ptr %34, align 8, !tbaa !5
  %497 = load ptr, ptr %35, align 8, !tbaa !5
  %498 = load i32, ptr %60, align 4, !tbaa !9
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds float, ptr %497, i64 %499
  %501 = load ptr, ptr %36, align 8, !tbaa !5
  %502 = load ptr, ptr %54, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  %504 = call float @slange_(ptr noundef @.str.11, ptr noundef %495, ptr noundef %496, ptr noundef %500, ptr noundef %501, ptr noundef %503)
  store float %504, ptr %74, align 4, !tbaa !11
  store i32 0, ptr %93, align 4, !tbaa !9
  %505 = load float, ptr %74, align 4, !tbaa !11
  %506 = fcmp ogt float %505, 0.000000e+00
  br i1 %506, label %507, label %513

507:                                              ; preds = %481
  %508 = load float, ptr %74, align 4, !tbaa !11
  %509 = load float, ptr %107, align 4, !tbaa !11
  %510 = fcmp olt float %508, %509
  br i1 %510, label %511, label %513

511:                                              ; preds = %507
  %512 = load float, ptr %107, align 4, !tbaa !11
  store float %512, ptr %101, align 4, !tbaa !11
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %520

513:                                              ; preds = %507, %481
  %514 = load float, ptr %74, align 4, !tbaa !11
  %515 = load float, ptr %97, align 4, !tbaa !11
  %516 = fcmp ogt float %514, %515
  br i1 %516, label %517, label %519

517:                                              ; preds = %513
  %518 = load float, ptr %97, align 4, !tbaa !11
  store float %518, ptr %101, align 4, !tbaa !11
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %519

519:                                              ; preds = %517, %513
  br label %520

520:                                              ; preds = %519, %511
  %521 = load i32, ptr %93, align 4, !tbaa !9
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %523, label %531

523:                                              ; preds = %520
  %524 = load ptr, ptr %34, align 8, !tbaa !5
  %525 = load ptr, ptr %34, align 8, !tbaa !5
  %526 = load ptr, ptr %35, align 8, !tbaa !5
  %527 = load i32, ptr %60, align 4, !tbaa !9
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds float, ptr %526, i64 %528
  %530 = load ptr, ptr %36, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %74, ptr noundef %101, ptr noundef %524, ptr noundef %525, ptr noundef %529, ptr noundef %530, ptr noundef %76)
  br label %531

531:                                              ; preds = %523, %520
  %532 = load ptr, ptr %34, align 8, !tbaa !5
  %533 = load ptr, ptr %34, align 8, !tbaa !5
  %534 = load ptr, ptr %37, align 8, !tbaa !5
  %535 = load i32, ptr %62, align 4, !tbaa !9
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds float, ptr %534, i64 %536
  %538 = load ptr, ptr %38, align 8, !tbaa !5
  %539 = load ptr, ptr %54, align 8, !tbaa !5
  %540 = getelementptr inbounds float, ptr %539, i64 1
  %541 = call float @slange_(ptr noundef @.str.11, ptr noundef %532, ptr noundef %533, ptr noundef %537, ptr noundef %538, ptr noundef %540)
  store float %541, ptr %75, align 4, !tbaa !11
  store i32 0, ptr %94, align 4, !tbaa !9
  %542 = load float, ptr %75, align 4, !tbaa !11
  %543 = fcmp ogt float %542, 0.000000e+00
  br i1 %543, label %544, label %550

544:                                              ; preds = %531
  %545 = load float, ptr %75, align 4, !tbaa !11
  %546 = load float, ptr %107, align 4, !tbaa !11
  %547 = fcmp olt float %545, %546
  br i1 %547, label %548, label %550

548:                                              ; preds = %544
  %549 = load float, ptr %107, align 4, !tbaa !11
  store float %549, ptr %103, align 4, !tbaa !11
  store i32 1, ptr %94, align 4, !tbaa !9
  br label %557

550:                                              ; preds = %544, %531
  %551 = load float, ptr %75, align 4, !tbaa !11
  %552 = load float, ptr %97, align 4, !tbaa !11
  %553 = fcmp ogt float %551, %552
  br i1 %553, label %554, label %556

554:                                              ; preds = %550
  %555 = load float, ptr %97, align 4, !tbaa !11
  store float %555, ptr %103, align 4, !tbaa !11
  store i32 1, ptr %94, align 4, !tbaa !9
  br label %556

556:                                              ; preds = %554, %550
  br label %557

557:                                              ; preds = %556, %548
  %558 = load i32, ptr %94, align 4, !tbaa !9
  %559 = icmp ne i32 %558, 0
  br i1 %559, label %560, label %568

560:                                              ; preds = %557
  %561 = load ptr, ptr %34, align 8, !tbaa !5
  %562 = load ptr, ptr %34, align 8, !tbaa !5
  %563 = load ptr, ptr %37, align 8, !tbaa !5
  %564 = load i32, ptr %62, align 4, !tbaa !9
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds float, ptr %563, i64 %565
  %567 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %75, ptr noundef %103, ptr noundef %561, ptr noundef %562, ptr noundef %566, ptr noundef %567, ptr noundef %76)
  br label %568

568:                                              ; preds = %560, %557
  %569 = load ptr, ptr %30, align 8, !tbaa !5
  %570 = load ptr, ptr %34, align 8, !tbaa !5
  %571 = load ptr, ptr %35, align 8, !tbaa !5
  %572 = load i32, ptr %60, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds float, ptr %571, i64 %573
  %575 = load ptr, ptr %36, align 8, !tbaa !5
  %576 = load ptr, ptr %37, align 8, !tbaa !5
  %577 = load i32, ptr %62, align 4, !tbaa !9
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds float, ptr %576, i64 %578
  %580 = load ptr, ptr %38, align 8, !tbaa !5
  %581 = load ptr, ptr %46, align 8, !tbaa !5
  %582 = load ptr, ptr %47, align 8, !tbaa !5
  %583 = load ptr, ptr %48, align 8, !tbaa !5
  %584 = getelementptr inbounds float, ptr %583, i64 1
  %585 = load ptr, ptr %49, align 8, !tbaa !5
  %586 = getelementptr inbounds float, ptr %585, i64 1
  %587 = load ptr, ptr %54, align 8, !tbaa !5
  %588 = getelementptr inbounds float, ptr %587, i64 1
  call void @sggbal_(ptr noundef %569, ptr noundef %570, ptr noundef %574, ptr noundef %575, ptr noundef %579, ptr noundef %580, ptr noundef %581, ptr noundef %582, ptr noundef %584, ptr noundef %586, ptr noundef %588, ptr noundef %76)
  %589 = load ptr, ptr %34, align 8, !tbaa !5
  %590 = load ptr, ptr %34, align 8, !tbaa !5
  %591 = load ptr, ptr %35, align 8, !tbaa !5
  %592 = load i32, ptr %60, align 4, !tbaa !9
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds float, ptr %591, i64 %593
  %595 = load ptr, ptr %36, align 8, !tbaa !5
  %596 = load ptr, ptr %54, align 8, !tbaa !5
  %597 = getelementptr inbounds float, ptr %596, i64 1
  %598 = call float @slange_(ptr noundef @.str.13, ptr noundef %589, ptr noundef %590, ptr noundef %594, ptr noundef %595, ptr noundef %597)
  %599 = load ptr, ptr %50, align 8, !tbaa !5
  store float %598, ptr %599, align 4, !tbaa !11
  %600 = load i32, ptr %93, align 4, !tbaa !9
  %601 = icmp ne i32 %600, 0
  br i1 %601, label %602, label %613

602:                                              ; preds = %568
  %603 = load ptr, ptr %50, align 8, !tbaa !5
  %604 = load float, ptr %603, align 4, !tbaa !11
  %605 = load ptr, ptr %54, align 8, !tbaa !5
  %606 = getelementptr inbounds float, ptr %605, i64 1
  store float %604, ptr %606, align 4, !tbaa !11
  %607 = load ptr, ptr %54, align 8, !tbaa !5
  %608 = getelementptr inbounds float, ptr %607, i64 1
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %101, ptr noundef %74, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %608, ptr noundef @c__1, ptr noundef %76)
  %609 = load ptr, ptr %54, align 8, !tbaa !5
  %610 = getelementptr inbounds float, ptr %609, i64 1
  %611 = load float, ptr %610, align 4, !tbaa !11
  %612 = load ptr, ptr %50, align 8, !tbaa !5
  store float %611, ptr %612, align 4, !tbaa !11
  br label %613

613:                                              ; preds = %602, %568
  %614 = load ptr, ptr %34, align 8, !tbaa !5
  %615 = load ptr, ptr %34, align 8, !tbaa !5
  %616 = load ptr, ptr %37, align 8, !tbaa !5
  %617 = load i32, ptr %62, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds float, ptr %616, i64 %618
  %620 = load ptr, ptr %38, align 8, !tbaa !5
  %621 = load ptr, ptr %54, align 8, !tbaa !5
  %622 = getelementptr inbounds float, ptr %621, i64 1
  %623 = call float @slange_(ptr noundef @.str.13, ptr noundef %614, ptr noundef %615, ptr noundef %619, ptr noundef %620, ptr noundef %622)
  %624 = load ptr, ptr %51, align 8, !tbaa !5
  store float %623, ptr %624, align 4, !tbaa !11
  %625 = load i32, ptr %94, align 4, !tbaa !9
  %626 = icmp ne i32 %625, 0
  br i1 %626, label %627, label %638

627:                                              ; preds = %613
  %628 = load ptr, ptr %51, align 8, !tbaa !5
  %629 = load float, ptr %628, align 4, !tbaa !11
  %630 = load ptr, ptr %54, align 8, !tbaa !5
  %631 = getelementptr inbounds float, ptr %630, i64 1
  store float %629, ptr %631, align 4, !tbaa !11
  %632 = load ptr, ptr %54, align 8, !tbaa !5
  %633 = getelementptr inbounds float, ptr %632, i64 1
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %103, ptr noundef %75, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %633, ptr noundef @c__1, ptr noundef %76)
  %634 = load ptr, ptr %54, 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 %51, align 8, !tbaa !5
  store float %636, ptr %637, align 4, !tbaa !11
  br label %638

638:                                              ; preds = %627, %613
  %639 = load ptr, ptr %47, align 8, !tbaa !5
  %640 = load i32, ptr %639, align 4, !tbaa !9
  %641 = add nsw i32 %640, 1
  %642 = load ptr, ptr %46, align 8, !tbaa !5
  %643 = load i32, ptr %642, align 4, !tbaa !9
  %644 = sub nsw i32 %641, %643
  store i32 %644, ptr %88, align 4, !tbaa !9
  %645 = load i32, ptr %111, align 4, !tbaa !9
  %646 = icmp ne i32 %645, 0
  br i1 %646, label %650, label %647

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

650:                                              ; preds = %647, %638
  %651 = load ptr, ptr %34, align 8, !tbaa !5
  %652 = load i32, ptr %651, align 4, !tbaa !9
  %653 = add nsw i32 %652, 1
  %654 = load ptr, ptr %46, align 8, !tbaa !5
  %655 = load i32, ptr %654, align 4, !tbaa !9
  %656 = sub nsw i32 %653, %655
  store i32 %656, ptr %86, align 4, !tbaa !9
  br label %659

657:                                              ; preds = %647
  %658 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %658, ptr %86, align 4, !tbaa !9
  br label %659

659:                                              ; preds = %657, %650
  store i32 1, ptr %77, align 4, !tbaa !9
  %660 = load i32, ptr %77, align 4, !tbaa !9
  %661 = load i32, ptr %88, align 4, !tbaa !9
  %662 = add nsw i32 %660, %661
  store i32 %662, ptr %81, align 4, !tbaa !9
  %663 = load ptr, ptr %55, align 8, !tbaa !5
  %664 = load i32, ptr %663, align 4, !tbaa !9
  %665 = add nsw i32 %664, 1
  %666 = load i32, ptr %81, align 4, !tbaa !9
  %667 = sub nsw i32 %665, %666
  store i32 %667, ptr %67, align 4, !tbaa !9
  %668 = load ptr, ptr %37, align 8, !tbaa !5
  %669 = load ptr, ptr %46, align 8, !tbaa !5
  %670 = load i32, ptr %669, align 4, !tbaa !9
  %671 = load ptr, ptr %46, align 8, !tbaa !5
  %672 = load i32, ptr %671, align 4, !tbaa !9
  %673 = load i32, ptr %61, align 4, !tbaa !9
  %674 = mul nsw i32 %672, %673
  %675 = add nsw i32 %670, %674
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds float, ptr %668, i64 %676
  %678 = load ptr, ptr %38, align 8, !tbaa !5
  %679 = load ptr, ptr %54, align 8, !tbaa !5
  %680 = load i32, ptr %77, align 4, !tbaa !9
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds float, ptr %679, i64 %681
  %683 = load ptr, ptr %54, align 8, !tbaa !5
  %684 = load i32, ptr %81, align 4, !tbaa !9
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds float, ptr %683, i64 %685
  call void @sgeqrf_(ptr noundef %88, ptr noundef %86, ptr noundef %677, ptr noundef %678, ptr noundef %682, ptr noundef %686, ptr noundef %67, ptr noundef %76)
  %687 = load ptr, ptr %55, align 8, !tbaa !5
  %688 = load i32, ptr %687, align 4, !tbaa !9
  %689 = add nsw i32 %688, 1
  %690 = load i32, ptr %81, align 4, !tbaa !9
  %691 = sub nsw i32 %689, %690
  store i32 %691, ptr %67, align 4, !tbaa !9
  %692 = load ptr, ptr %37, align 8, !tbaa !5
  %693 = load ptr, ptr %46, align 8, !tbaa !5
  %694 = load i32, ptr %693, align 4, !tbaa !9
  %695 = load ptr, ptr %46, align 8, !tbaa !5
  %696 = load i32, ptr %695, align 4, !tbaa !9
  %697 = load i32, ptr %61, align 4, !tbaa !9
  %698 = mul nsw i32 %696, %697
  %699 = add nsw i32 %694, %698
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds float, ptr %692, i64 %700
  %702 = load ptr, ptr %38, align 8, !tbaa !5
  %703 = load ptr, ptr %54, align 8, !tbaa !5
  %704 = load i32, ptr %77, align 4, !tbaa !9
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds float, ptr %703, i64 %705
  %707 = load ptr, ptr %35, align 8, !tbaa !5
  %708 = load ptr, ptr %46, align 8, !tbaa !5
  %709 = load i32, ptr %708, align 4, !tbaa !9
  %710 = load ptr, ptr %46, align 8, !tbaa !5
  %711 = load i32, ptr %710, align 4, !tbaa !9
  %712 = load i32, ptr %59, align 4, !tbaa !9
  %713 = mul nsw i32 %711, %712
  %714 = add nsw i32 %709, %713
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds float, ptr %707, i64 %715
  %717 = load ptr, ptr %36, align 8, !tbaa !5
  %718 = load ptr, ptr %54, align 8, !tbaa !5
  %719 = load i32, ptr %81, align 4, !tbaa !9
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds float, ptr %718, i64 %720
  call void @sormqr_(ptr noundef @.str.14, ptr noundef @.str.15, ptr noundef %88, ptr noundef %86, ptr noundef %88, ptr noundef %701, ptr noundef %702, ptr noundef %706, ptr noundef %716, ptr noundef %717, ptr noundef %721, ptr noundef %67, ptr noundef %76)
  %722 = load i32, ptr %79, align 4, !tbaa !9
  %723 = icmp ne i32 %722, 0
  br i1 %723, label %724, label %788

724:                                              ; preds = %659
  %725 = load ptr, ptr %34, align 8, !tbaa !5
  %726 = load ptr, ptr %34, align 8, !tbaa !5
  %727 = load ptr, ptr %42, align 8, !tbaa !5
  %728 = load i32, ptr %64, align 4, !tbaa !9
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds float, ptr %727, i64 %729
  %731 = load ptr, ptr %43, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.16, ptr noundef %725, ptr noundef %726, ptr noundef @c_b57, ptr noundef @c_b58, ptr noundef %730, ptr noundef %731)
  %732 = load i32, ptr %88, align 4, !tbaa !9
  %733 = icmp sgt i32 %732, 1
  br i1 %733, label %734, label %763

734:                                              ; preds = %724
  %735 = load i32, ptr %88, align 4, !tbaa !9
  %736 = sub nsw i32 %735, 1
  store i32 %736, ptr %67, align 4, !tbaa !9
  %737 = load i32, ptr %88, align 4, !tbaa !9
  %738 = sub nsw i32 %737, 1
  store i32 %738, ptr %68, align 4, !tbaa !9
  %739 = load ptr, ptr %37, align 8, !tbaa !5
  %740 = load ptr, ptr %46, align 8, !tbaa !5
  %741 = load i32, ptr %740, align 4, !tbaa !9
  %742 = add nsw i32 %741, 1
  %743 = load ptr, ptr %46, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = load i32, ptr %61, align 4, !tbaa !9
  %746 = mul nsw i32 %744, %745
  %747 = add nsw i32 %742, %746
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds float, ptr %739, i64 %748
  %750 = load ptr, ptr %38, align 8, !tbaa !5
  %751 = load ptr, ptr %42, align 8, !tbaa !5
  %752 = load ptr, ptr %46, align 8, !tbaa !5
  %753 = load i32, ptr %752, align 4, !tbaa !9
  %754 = add nsw i32 %753, 1
  %755 = load ptr, ptr %46, align 8, !tbaa !5
  %756 = load i32, ptr %755, align 4, !tbaa !9
  %757 = load i32, ptr %63, align 4, !tbaa !9
  %758 = mul nsw i32 %756, %757
  %759 = add nsw i32 %754, %758
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds float, ptr %751, i64 %760
  %762 = load ptr, ptr %43, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.14, ptr noundef %67, ptr noundef %68, ptr noundef %749, ptr noundef %750, ptr noundef %761, ptr noundef %762)
  br label %763

763:                                              ; preds = %734, %724
  %764 = load ptr, ptr %55, align 8, !tbaa !5
  %765 = load i32, ptr %764, align 4, !tbaa !9
  %766 = add nsw i32 %765, 1
  %767 = load i32, ptr %81, align 4, !tbaa !9
  %768 = sub nsw i32 %766, %767
  store i32 %768, ptr %67, align 4, !tbaa !9
  %769 = load ptr, ptr %42, align 8, !tbaa !5
  %770 = load ptr, ptr %46, align 8, !tbaa !5
  %771 = load i32, ptr %770, align 4, !tbaa !9
  %772 = load ptr, ptr %46, align 8, !tbaa !5
  %773 = load i32, ptr %772, align 4, !tbaa !9
  %774 = load i32, ptr %63, align 4, !tbaa !9
  %775 = mul nsw i32 %773, %774
  %776 = add nsw i32 %771, %775
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds float, ptr %769, i64 %777
  %779 = load ptr, ptr %43, align 8, !tbaa !5
  %780 = load ptr, ptr %54, align 8, !tbaa !5
  %781 = load i32, ptr %77, align 4, !tbaa !9
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds float, ptr %780, i64 %782
  %784 = load ptr, ptr %54, align 8, !tbaa !5
  %785 = load i32, ptr %81, align 4, !tbaa !9
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds float, ptr %784, i64 %786
  call void @sorgqr_(ptr noundef %88, ptr noundef %88, ptr noundef %88, ptr noundef %778, ptr noundef %779, ptr noundef %783, ptr noundef %787, ptr noundef %67, ptr noundef %76)
  br label %788

788:                                              ; preds = %763, %659
  %789 = load i32, ptr %80, align 4, !tbaa !9
  %790 = icmp ne i32 %789, 0
  br i1 %790, label %791, label %799

791:                                              ; preds = %788
  %792 = load ptr, ptr %34, align 8, !tbaa !5
  %793 = load ptr, ptr %34, align 8, !tbaa !5
  %794 = load ptr, ptr %44, align 8, !tbaa !5
  %795 = load i32, ptr %66, align 4, !tbaa !9
  %796 = sext i32 %795 to i64
  %797 = getelementptr inbounds float, ptr %794, i64 %796
  %798 = load ptr, ptr %45, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.16, ptr noundef %792, ptr noundef %793, ptr noundef @c_b57, ptr noundef @c_b58, ptr noundef %797, ptr noundef %798)
  br label %799

799:                                              ; preds = %791, %788
  %800 = load i32, ptr %111, align 4, !tbaa !9
  %801 = icmp ne i32 %800, 0
  br i1 %801, label %805, label %802

802:                                              ; preds = %799
  %803 = load i32, ptr %106, align 4, !tbaa !9
  %804 = icmp ne i32 %803, 0
  br i1 %804, label %831, label %805

805:                                              ; preds = %802, %799
  %806 = load ptr, ptr %31, align 8, !tbaa !5
  %807 = load ptr, ptr %32, align 8, !tbaa !5
  %808 = load ptr, ptr %34, align 8, !tbaa !5
  %809 = load ptr, ptr %46, align 8, !tbaa !5
  %810 = load ptr, ptr %47, align 8, !tbaa !5
  %811 = load ptr, ptr %35, align 8, !tbaa !5
  %812 = load i32, ptr %60, align 4, !tbaa !9
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds float, ptr %811, i64 %813
  %815 = load ptr, ptr %36, align 8, !tbaa !5
  %816 = load ptr, ptr %37, align 8, !tbaa !5
  %817 = load i32, ptr %62, align 4, !tbaa !9
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds float, ptr %816, i64 %818
  %820 = load ptr, ptr %38, align 8, !tbaa !5
  %821 = load ptr, ptr %42, align 8, !tbaa !5
  %822 = load i32, ptr %64, align 4, !tbaa !9
  %823 = sext i32 %822 to i64
  %824 = getelementptr inbounds float, ptr %821, i64 %823
  %825 = load ptr, ptr %43, align 8, !tbaa !5
  %826 = load ptr, ptr %44, align 8, !tbaa !5
  %827 = load i32, ptr %66, align 4, !tbaa !9
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds float, ptr %826, i64 %828
  %830 = load ptr, ptr %45, align 8, !tbaa !5
  call void @sgghrd_(ptr noundef %806, ptr noundef %807, ptr noundef %808, ptr noundef %809, ptr noundef %810, ptr noundef %814, ptr noundef %815, ptr noundef %819, ptr noundef %820, ptr noundef %824, ptr noundef %825, ptr noundef %829, ptr noundef %830, ptr noundef %76)
  br label %864

831:                                              ; preds = %802
  %832 = load ptr, ptr %35, align 8, !tbaa !5
  %833 = load ptr, ptr %46, align 8, !tbaa !5
  %834 = load i32, ptr %833, align 4, !tbaa !9
  %835 = load ptr, ptr %46, align 8, !tbaa !5
  %836 = load i32, ptr %835, align 4, !tbaa !9
  %837 = load i32, ptr %59, align 4, !tbaa !9
  %838 = mul nsw i32 %836, %837
  %839 = add nsw i32 %834, %838
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds float, ptr %832, i64 %840
  %842 = load ptr, ptr %36, align 8, !tbaa !5
  %843 = load ptr, ptr %37, align 8, !tbaa !5
  %844 = load ptr, ptr %46, align 8, !tbaa !5
  %845 = load i32, ptr %844, align 4, !tbaa !9
  %846 = load ptr, ptr %46, align 8, !tbaa !5
  %847 = load i32, ptr %846, align 4, !tbaa !9
  %848 = load i32, ptr %61, align 4, !tbaa !9
  %849 = mul nsw i32 %847, %848
  %850 = add nsw i32 %845, %849
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds float, ptr %843, i64 %851
  %853 = load ptr, ptr %38, align 8, !tbaa !5
  %854 = load ptr, ptr %42, align 8, !tbaa !5
  %855 = load i32, ptr %64, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %854, i64 %856
  %858 = load ptr, ptr %43, align 8, !tbaa !5
  %859 = load ptr, ptr %44, align 8, !tbaa !5
  %860 = load i32, ptr %66, align 4, !tbaa !9
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds float, ptr %859, i64 %861
  %863 = load ptr, ptr %45, align 8, !tbaa !5
  call void @sgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %88, ptr noundef @c__1, ptr noundef %88, ptr noundef %841, ptr noundef %842, ptr noundef %852, ptr noundef %853, ptr noundef %857, ptr noundef %858, ptr noundef %862, ptr noundef %863, ptr noundef %76)
  br label %864

864:                                              ; preds = %831, %805
  %865 = load i32, ptr %111, align 4, !tbaa !9
  %866 = icmp ne i32 %865, 0
  br i1 %866, label %870, label %867

867:                                              ; preds = %864
  %868 = load i32, ptr %106, align 4, !tbaa !9
  %869 = icmp ne i32 %868, 0
  br i1 %869, label %872, label %870

870:                                              ; preds = %867, %864
  %871 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  store i8 83, ptr %871, align 1, !tbaa !13
  br label %874

872:                                              ; preds = %867
  %873 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  store i8 69, ptr %873, align 1, !tbaa !13
  br label %874

874:                                              ; preds = %872, %870
  %875 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %876 = load ptr, ptr %31, align 8, !tbaa !5
  %877 = load ptr, ptr %32, align 8, !tbaa !5
  %878 = load ptr, ptr %34, align 8, !tbaa !5
  %879 = load ptr, ptr %46, align 8, !tbaa !5
  %880 = load ptr, ptr %47, align 8, !tbaa !5
  %881 = load ptr, ptr %35, align 8, !tbaa !5
  %882 = load i32, ptr %60, align 4, !tbaa !9
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds float, ptr %881, i64 %883
  %885 = load ptr, ptr %36, align 8, !tbaa !5
  %886 = load ptr, ptr %37, align 8, !tbaa !5
  %887 = load i32, ptr %62, align 4, !tbaa !9
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds float, ptr %886, i64 %888
  %890 = load ptr, ptr %38, align 8, !tbaa !5
  %891 = load ptr, ptr %39, align 8, !tbaa !5
  %892 = getelementptr inbounds float, ptr %891, i64 1
  %893 = load ptr, ptr %40, align 8, !tbaa !5
  %894 = getelementptr inbounds float, ptr %893, i64 1
  %895 = load ptr, ptr %41, align 8, !tbaa !5
  %896 = getelementptr inbounds float, ptr %895, i64 1
  %897 = load ptr, ptr %42, align 8, !tbaa !5
  %898 = load i32, ptr %64, align 4, !tbaa !9
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds float, ptr %897, i64 %899
  %901 = load ptr, ptr %43, align 8, !tbaa !5
  %902 = load ptr, ptr %44, align 8, !tbaa !5
  %903 = load i32, ptr %66, align 4, !tbaa !9
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds float, ptr %902, i64 %904
  %906 = load ptr, ptr %45, align 8, !tbaa !5
  %907 = load ptr, ptr %54, align 8, !tbaa !5
  %908 = getelementptr inbounds float, ptr %907, i64 1
  %909 = load ptr, ptr %55, align 8, !tbaa !5
  call void @shgeqz_(ptr noundef %875, ptr noundef %876, ptr noundef %877, ptr noundef %878, ptr noundef %879, ptr noundef %880, ptr noundef %884, ptr noundef %885, ptr noundef %889, ptr noundef %890, ptr noundef %892, ptr noundef %894, ptr noundef %896, ptr noundef %900, ptr noundef %901, ptr noundef %905, ptr noundef %906, ptr noundef %908, ptr noundef %909, ptr noundef %76)
  %910 = load i32, ptr %76, align 4, !tbaa !9
  %911 = icmp ne i32 %910, 0
  br i1 %911, label %912, label %947

912:                                              ; preds = %874
  %913 = load i32, ptr %76, align 4, !tbaa !9
  %914 = icmp sgt i32 %913, 0
  br i1 %914, label %915, label %923

915:                                              ; preds = %912
  %916 = load i32, ptr %76, align 4, !tbaa !9
  %917 = load ptr, ptr %34, align 8, !tbaa !5
  %918 = load i32, ptr %917, align 4, !tbaa !9
  %919 = icmp sle i32 %916, %918
  br i1 %919, label %920, label %923

920:                                              ; preds = %915
  %921 = load i32, ptr %76, align 4, !tbaa !9
  %922 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %921, ptr %922, align 4, !tbaa !9
  br label %946

923:                                              ; preds = %915, %912
  %924 = load i32, ptr %76, align 4, !tbaa !9
  %925 = load ptr, ptr %34, align 8, !tbaa !5
  %926 = load i32, ptr %925, align 4, !tbaa !9
  %927 = icmp sgt i32 %924, %926
  br i1 %927, label %928, label %940

928:                                              ; preds = %923
  %929 = load i32, ptr %76, align 4, !tbaa !9
  %930 = load ptr, ptr %34, align 8, !tbaa !5
  %931 = load i32, ptr %930, align 4, !tbaa !9
  %932 = shl i32 %931, 1
  %933 = icmp sle i32 %929, %932
  br i1 %933, label %934, label %940

934:                                              ; preds = %928
  %935 = load i32, ptr %76, align 4, !tbaa !9
  %936 = load ptr, ptr %34, align 8, !tbaa !5
  %937 = load i32, ptr %936, align 4, !tbaa !9
  %938 = sub nsw i32 %935, %937
  %939 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %938, ptr %939, align 4, !tbaa !9
  br label %945

940:                                              ; preds = %928, %923
  %941 = load ptr, ptr %34, align 8, !tbaa !5
  %942 = load i32, ptr %941, align 4, !tbaa !9
  %943 = add nsw i32 %942, 1
  %944 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %943, ptr %944, align 4, !tbaa !9
  br label %945

945:                                              ; preds = %940, %934
  br label %946

946:                                              ; preds = %945, %920
  br label %1608

947:                                              ; preds = %874
  %948 = load i32, ptr %111, align 4, !tbaa !9
  %949 = icmp ne i32 %948, 0
  br i1 %949, label %953, label %950

950:                                              ; preds = %947
  %951 = load i32, ptr %106, align 4, !tbaa !9
  %952 = icmp ne i32 %951, 0
  br i1 %952, label %1173, label %953

953:                                              ; preds = %950, %947
  %954 = load i32, ptr %111, align 4, !tbaa !9
  %955 = icmp ne i32 %954, 0
  br i1 %955, label %956, label %1004

956:                                              ; preds = %953
  %957 = load i32, ptr %79, align 4, !tbaa !9
  %958 = icmp ne i32 %957, 0
  br i1 %958, label %959, label %967

959:                                              ; preds = %956
  %960 = load i32, ptr %80, align 4, !tbaa !9
  %961 = icmp ne i32 %960, 0
  br i1 %961, label %962, label %964

962:                                              ; preds = %959
  %963 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  store i8 66, ptr %963, align 1, !tbaa !13
  br label %966

964:                                              ; preds = %959
  %965 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  store i8 76, ptr %965, align 1, !tbaa !13
  br label %966

966:                                              ; preds = %964, %962
  br label %969

967:                                              ; preds = %956
  %968 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  store i8 82, ptr %968, align 1, !tbaa !13
  br label %969

969:                                              ; preds = %967, %966
  %970 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %971 = getelementptr inbounds [1 x i32], ptr %95, i64 0, i64 0
  %972 = load ptr, ptr %34, align 8, !tbaa !5
  %973 = load ptr, ptr %35, align 8, !tbaa !5
  %974 = load i32, ptr %60, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %973, i64 %975
  %977 = load ptr, ptr %36, align 8, !tbaa !5
  %978 = load ptr, ptr %37, align 8, !tbaa !5
  %979 = load i32, ptr %62, align 4, !tbaa !9
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds float, ptr %978, i64 %980
  %982 = load ptr, ptr %38, align 8, !tbaa !5
  %983 = load ptr, ptr %42, align 8, !tbaa !5
  %984 = load i32, ptr %64, align 4, !tbaa !9
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds float, ptr %983, i64 %985
  %987 = load ptr, ptr %43, align 8, !tbaa !5
  %988 = load ptr, ptr %44, align 8, !tbaa !5
  %989 = load i32, ptr %66, align 4, !tbaa !9
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds float, ptr %988, i64 %990
  %992 = load ptr, ptr %45, align 8, !tbaa !5
  %993 = load ptr, ptr %34, align 8, !tbaa !5
  %994 = load ptr, ptr %54, align 8, !tbaa !5
  %995 = getelementptr inbounds float, ptr %994, i64 1
  call void @stgevc_(ptr noundef %970, ptr noundef @.str.4, ptr noundef %971, ptr noundef %972, ptr noundef %976, ptr noundef %977, ptr noundef %981, ptr noundef %982, ptr noundef %986, ptr noundef %987, ptr noundef %991, ptr noundef %992, ptr noundef %993, ptr noundef %90, ptr noundef %995, ptr noundef %76)
  %996 = load i32, ptr %76, align 4, !tbaa !9
  %997 = icmp ne i32 %996, 0
  br i1 %997, label %998, label %1003

998:                                              ; preds = %969
  %999 = load ptr, ptr %34, align 8, !tbaa !5
  %1000 = load i32, ptr %999, align 4, !tbaa !9
  %1001 = add nsw i32 %1000, 2
  %1002 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %1001, ptr %1002, align 4, !tbaa !9
  br label %1608

1003:                                             ; preds = %969
  br label %1004

1004:                                             ; preds = %1003, %953
  %1005 = load i32, ptr %106, align 4, !tbaa !9
  %1006 = icmp ne i32 %1005, 0
  br i1 %1006, label %1172, label %1007

1007:                                             ; preds = %1004
  store i32 0, ptr %73, align 4, !tbaa !9
  %1008 = load ptr, ptr %34, align 8, !tbaa !5
  %1009 = load i32, ptr %1008, align 4, !tbaa !9
  store i32 %1009, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %1010

1010:                                             ; preds = %1168, %1007
  %1011 = load i32, ptr %83, align 4, !tbaa !9
  %1012 = load i32, ptr %67, align 4, !tbaa !9
  %1013 = icmp sle i32 %1011, %1012
  br i1 %1013, label %1014, label %1171

1014:                                             ; preds = %1010
  %1015 = load i32, ptr %73, align 4, !tbaa !9
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1018

1017:                                             ; preds = %1014
  store i32 0, ptr %73, align 4, !tbaa !9
  br label %1167

1018:                                             ; preds = %1014
  store i32 1, ptr %91, align 4, !tbaa !9
  %1019 = load i32, ptr %83, align 4, !tbaa !9
  %1020 = load ptr, ptr %34, align 8, !tbaa !5
  %1021 = load i32, ptr %1020, align 4, !tbaa !9
  %1022 = icmp slt i32 %1019, %1021
  br i1 %1022, label %1023, label %1037

1023:                                             ; preds = %1018
  %1024 = load ptr, ptr %35, align 8, !tbaa !5
  %1025 = load i32, ptr %83, align 4, !tbaa !9
  %1026 = add nsw i32 %1025, 1
  %1027 = load i32, ptr %83, align 4, !tbaa !9
  %1028 = load i32, ptr %59, align 4, !tbaa !9
  %1029 = mul nsw i32 %1027, %1028
  %1030 = add nsw i32 %1026, %1029
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds float, ptr %1024, i64 %1031
  %1033 = load float, ptr %1032, align 4, !tbaa !11
  %1034 = fcmp une float %1033, 0.000000e+00
  br i1 %1034, label %1035, label %1036

1035:                                             ; preds = %1023
  store i32 1, ptr %73, align 4, !tbaa !9
  store i32 2, ptr %91, align 4, !tbaa !9
  br label %1036

1036:                                             ; preds = %1035, %1023
  br label %1037

1037:                                             ; preds = %1036, %1018
  %1038 = load ptr, ptr %34, align 8, !tbaa !5
  %1039 = load i32, ptr %1038, align 4, !tbaa !9
  store i32 %1039, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1040

1040:                                             ; preds = %1049, %1037
  %1041 = load i32, ptr %84, align 4, !tbaa !9
  %1042 = load i32, ptr %68, align 4, !tbaa !9
  %1043 = icmp sle i32 %1041, %1042
  br i1 %1043, label %1044, label %1052

1044:                                             ; preds = %1040
  %1045 = load ptr, ptr %57, align 8, !tbaa !5
  %1046 = load i32, ptr %84, align 4, !tbaa !9
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds i32, ptr %1045, i64 %1047
  store i32 0, ptr %1048, align 4, !tbaa !9
  br label %1049

1049:                                             ; preds = %1044
  %1050 = load i32, ptr %84, align 4, !tbaa !9
  %1051 = add nsw i32 %1050, 1
  store i32 %1051, ptr %84, align 4, !tbaa !9
  br label %1040, !llvm.loop !14

1052:                                             ; preds = %1040
  %1053 = load i32, ptr %91, align 4, !tbaa !9
  %1054 = icmp eq i32 %1053, 1
  br i1 %1054, label %1055, label %1060

1055:                                             ; preds = %1052
  %1056 = load ptr, ptr %57, align 8, !tbaa !5
  %1057 = load i32, ptr %83, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds i32, ptr %1056, i64 %1058
  store i32 1, ptr %1059, align 4, !tbaa !9
  br label %1074

1060:                                             ; preds = %1052
  %1061 = load i32, ptr %91, align 4, !tbaa !9
  %1062 = icmp eq i32 %1061, 2
  br i1 %1062, label %1063, label %1073

1063:                                             ; preds = %1060
  %1064 = load ptr, ptr %57, align 8, !tbaa !5
  %1065 = load i32, ptr %83, align 4, !tbaa !9
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds i32, ptr %1064, i64 %1066
  store i32 1, ptr %1067, align 4, !tbaa !9
  %1068 = load ptr, ptr %57, align 8, !tbaa !5
  %1069 = load i32, ptr %83, align 4, !tbaa !9
  %1070 = add nsw i32 %1069, 1
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds i32, ptr %1068, i64 %1071
  store i32 1, ptr %1072, align 4, !tbaa !9
  br label %1073

1073:                                             ; preds = %1063, %1060
  br label %1074

1074:                                             ; preds = %1073, %1055
  %1075 = load i32, ptr %91, align 4, !tbaa !9
  %1076 = load ptr, ptr %34, align 8, !tbaa !5
  %1077 = load i32, ptr %1076, align 4, !tbaa !9
  %1078 = mul nsw i32 %1075, %1077
  %1079 = add nsw i32 %1078, 1
  store i32 %1079, ptr %81, align 4, !tbaa !9
  %1080 = load i32, ptr %81, align 4, !tbaa !9
  %1081 = load i32, ptr %91, align 4, !tbaa !9
  %1082 = load ptr, ptr %34, align 8, !tbaa !5
  %1083 = load i32, ptr %1082, align 4, !tbaa !9
  %1084 = mul nsw i32 %1081, %1083
  %1085 = add nsw i32 %1080, %1084
  store i32 %1085, ptr %82, align 4, !tbaa !9
  %1086 = load i32, ptr %102, align 4, !tbaa !9
  %1087 = icmp ne i32 %1086, 0
  br i1 %1087, label %1091, label %1088

1088:                                             ; preds = %1074
  %1089 = load i32, ptr %100, align 4, !tbaa !9
  %1090 = icmp ne i32 %1089, 0
  br i1 %1090, label %1091, label %1125

1091:                                             ; preds = %1088, %1074
  %1092 = load ptr, ptr %57, align 8, !tbaa !5
  %1093 = getelementptr inbounds i32, ptr %1092, i64 1
  %1094 = load ptr, ptr %34, align 8, !tbaa !5
  %1095 = load ptr, ptr %35, align 8, !tbaa !5
  %1096 = load i32, ptr %60, align 4, !tbaa !9
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds float, ptr %1095, i64 %1097
  %1099 = load ptr, ptr %36, align 8, !tbaa !5
  %1100 = load ptr, ptr %37, align 8, !tbaa !5
  %1101 = load i32, ptr %62, align 4, !tbaa !9
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds float, ptr %1100, i64 %1102
  %1104 = load ptr, ptr %38, align 8, !tbaa !5
  %1105 = load ptr, ptr %54, align 8, !tbaa !5
  %1106 = getelementptr inbounds float, ptr %1105, i64 1
  %1107 = load ptr, ptr %34, align 8, !tbaa !5
  %1108 = load ptr, ptr %54, align 8, !tbaa !5
  %1109 = load i32, ptr %81, align 4, !tbaa !9
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds float, ptr %1108, i64 %1110
  %1112 = load ptr, ptr %34, align 8, !tbaa !5
  %1113 = load ptr, ptr %54, align 8, !tbaa !5
  %1114 = load i32, ptr %82, align 4, !tbaa !9
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds float, ptr %1113, i64 %1115
  call void @stgevc_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %1093, ptr noundef %1094, ptr noundef %1098, ptr noundef %1099, ptr noundef %1103, ptr noundef %1104, ptr noundef %1106, ptr noundef %1107, ptr noundef %1111, ptr noundef %1112, ptr noundef %91, ptr noundef %85, ptr noundef %1116, ptr noundef %76)
  %1117 = load i32, ptr %76, align 4, !tbaa !9
  %1118 = icmp ne i32 %1117, 0
  br i1 %1118, label %1119, label %1124

1119:                                             ; preds = %1091
  %1120 = load ptr, ptr %34, align 8, !tbaa !5
  %1121 = load i32, ptr %1120, align 4, !tbaa !9
  %1122 = add nsw i32 %1121, 2
  %1123 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %1122, ptr %1123, align 4, !tbaa !9
  br label %1608

1124:                                             ; preds = %1091
  br label %1125

1125:                                             ; preds = %1124, %1088
  %1126 = load ptr, ptr %55, align 8, !tbaa !5
  %1127 = load i32, ptr %1126, align 4, !tbaa !9
  %1128 = load i32, ptr %82, align 4, !tbaa !9
  %1129 = sub nsw i32 %1127, %1128
  %1130 = add nsw i32 %1129, 1
  store i32 %1130, ptr %68, align 4, !tbaa !9
  %1131 = load ptr, ptr %33, align 8, !tbaa !5
  %1132 = load ptr, ptr %57, align 8, !tbaa !5
  %1133 = getelementptr inbounds i32, ptr %1132, i64 1
  %1134 = load ptr, ptr %34, align 8, !tbaa !5
  %1135 = load ptr, ptr %35, align 8, !tbaa !5
  %1136 = load i32, ptr %60, align 4, !tbaa !9
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds float, ptr %1135, i64 %1137
  %1139 = load ptr, ptr %36, align 8, !tbaa !5
  %1140 = load ptr, ptr %37, align 8, !tbaa !5
  %1141 = load i32, ptr %62, align 4, !tbaa !9
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds float, ptr %1140, i64 %1142
  %1144 = load ptr, ptr %38, align 8, !tbaa !5
  %1145 = load ptr, ptr %54, align 8, !tbaa !5
  %1146 = getelementptr inbounds float, ptr %1145, i64 1
  %1147 = load ptr, ptr %34, align 8, !tbaa !5
  %1148 = load ptr, ptr %54, align 8, !tbaa !5
  %1149 = load i32, ptr %81, align 4, !tbaa !9
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds float, ptr %1148, i64 %1150
  %1152 = load ptr, ptr %34, align 8, !tbaa !5
  %1153 = load ptr, ptr %52, align 8, !tbaa !5
  %1154 = load i32, ptr %83, align 4, !tbaa !9
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds float, ptr %1153, i64 %1155
  %1157 = load ptr, ptr %53, align 8, !tbaa !5
  %1158 = load i32, ptr %83, align 4, !tbaa !9
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds float, ptr %1157, i64 %1159
  %1161 = load ptr, ptr %54, align 8, !tbaa !5
  %1162 = load i32, ptr %82, align 4, !tbaa !9
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds float, ptr %1161, i64 %1163
  %1165 = load ptr, ptr %56, align 8, !tbaa !5
  %1166 = getelementptr inbounds i32, ptr %1165, i64 1
  call void @stgsna_(ptr noundef %1131, ptr noundef @.str.5, ptr noundef %1133, ptr noundef %1134, ptr noundef %1138, ptr noundef %1139, ptr noundef %1143, ptr noundef %1144, ptr noundef %1146, ptr noundef %1147, ptr noundef %1151, ptr noundef %1152, ptr noundef %1156, ptr noundef %1160, ptr noundef %91, ptr noundef %85, ptr noundef %1164, ptr noundef %68, ptr noundef %1166, ptr noundef %76)
  br label %1167

1167:                                             ; preds = %1125, %1017
  br label %1168

1168:                                             ; preds = %1167
  %1169 = load i32, ptr %83, align 4, !tbaa !9
  %1170 = add nsw i32 %1169, 1
  store i32 %1170, ptr %83, align 4, !tbaa !9
  br label %1010, !llvm.loop !16

1171:                                             ; preds = %1010
  br label %1172

1172:                                             ; preds = %1171, %1004
  br label %1173

1173:                                             ; preds = %1172, %950
  %1174 = load i32, ptr %79, align 4, !tbaa !9
  %1175 = icmp ne i32 %1174, 0
  br i1 %1175, label %1176, label %1390

1176:                                             ; preds = %1173
  %1177 = load ptr, ptr %30, align 8, !tbaa !5
  %1178 = load ptr, ptr %34, align 8, !tbaa !5
  %1179 = load ptr, ptr %46, align 8, !tbaa !5
  %1180 = load ptr, ptr %47, align 8, !tbaa !5
  %1181 = load ptr, ptr %48, align 8, !tbaa !5
  %1182 = getelementptr inbounds float, ptr %1181, i64 1
  %1183 = load ptr, ptr %49, align 8, !tbaa !5
  %1184 = getelementptr inbounds float, ptr %1183, i64 1
  %1185 = load ptr, ptr %34, align 8, !tbaa !5
  %1186 = load ptr, ptr %42, align 8, !tbaa !5
  %1187 = load i32, ptr %64, align 4, !tbaa !9
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds float, ptr %1186, i64 %1188
  %1190 = load ptr, ptr %43, align 8, !tbaa !5
  call void @sggbak_(ptr noundef %1177, ptr noundef @.str.14, ptr noundef %1178, ptr noundef %1179, ptr noundef %1180, ptr noundef %1182, ptr noundef %1184, ptr noundef %1185, ptr noundef %1189, ptr noundef %1190, ptr noundef %76)
  %1191 = load ptr, ptr %34, align 8, !tbaa !5
  %1192 = load i32, ptr %1191, align 4, !tbaa !9
  store i32 %1192, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %89, align 4, !tbaa !9
  br label %1193

1193:                                             ; preds = %1386, %1176
  %1194 = load i32, ptr %89, align 4, !tbaa !9
  %1195 = load i32, ptr %67, align 4, !tbaa !9
  %1196 = icmp sle i32 %1194, %1195
  br i1 %1196, label %1197, label %1389

1197:                                             ; preds = %1193
  %1198 = load ptr, ptr %40, align 8, !tbaa !5
  %1199 = load i32, ptr %89, align 4, !tbaa !9
  %1200 = sext i32 %1199 to i64
  %1201 = getelementptr inbounds float, ptr %1198, i64 %1200
  %1202 = load float, ptr %1201, align 4, !tbaa !11
  %1203 = fcmp olt float %1202, 0.000000e+00
  br i1 %1203, label %1204, label %1205

1204:                                             ; preds = %1197
  br label %1385

1205:                                             ; preds = %1197
  store float 0.000000e+00, ptr %78, align 4, !tbaa !11
  %1206 = load ptr, ptr %40, align 8, !tbaa !5
  %1207 = load i32, ptr %89, align 4, !tbaa !9
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds float, ptr %1206, i64 %1208
  %1210 = load float, ptr %1209, align 4, !tbaa !11
  %1211 = fcmp oeq float %1210, 0.000000e+00
  br i1 %1211, label %1212, label %1252

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr %34, align 8, !tbaa !5
  %1214 = load i32, ptr %1213, align 4, !tbaa !9
  store i32 %1214, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1215

1215:                                             ; preds = %1248, %1212
  %1216 = load i32, ptr %92, align 4, !tbaa !9
  %1217 = load i32, ptr %68, align 4, !tbaa !9
  %1218 = icmp sle i32 %1216, %1217
  br i1 %1218, label %1219, label %1251

1219:                                             ; preds = %1215
  %1220 = load float, ptr %78, align 4, !tbaa !11
  store float %1220, ptr %70, align 4, !tbaa !11
  %1221 = load ptr, ptr %42, align 8, !tbaa !5
  %1222 = load i32, ptr %92, align 4, !tbaa !9
  %1223 = load i32, ptr %89, align 4, !tbaa !9
  %1224 = load i32, ptr %63, align 4, !tbaa !9
  %1225 = mul nsw i32 %1223, %1224
  %1226 = add nsw i32 %1222, %1225
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds float, ptr %1221, i64 %1227
  %1229 = load float, ptr %1228, align 4, !tbaa !11
  store float %1229, ptr %69, align 4, !tbaa !11
  %1230 = load float, ptr %69, align 4, !tbaa !11
  %1231 = fcmp oge float %1230, 0.000000e+00
  br i1 %1231, label %1232, label %1234

1232:                                             ; preds = %1219
  %1233 = load float, ptr %69, align 4, !tbaa !11
  br label %1237

1234:                                             ; preds = %1219
  %1235 = load float, ptr %69, align 4, !tbaa !11
  %1236 = fneg float %1235
  br label %1237

1237:                                             ; preds = %1234, %1232
  %1238 = phi float [ %1233, %1232 ], [ %1236, %1234 ]
  store float %1238, ptr %71, align 4, !tbaa !11
  %1239 = load float, ptr %70, align 4, !tbaa !11
  %1240 = load float, ptr %71, align 4, !tbaa !11
  %1241 = fcmp oge float %1239, %1240
  br i1 %1241, label %1242, label %1244

1242:                                             ; preds = %1237
  %1243 = load float, ptr %70, align 4, !tbaa !11
  br label %1246

1244:                                             ; preds = %1237
  %1245 = load float, ptr %71, align 4, !tbaa !11
  br label %1246

1246:                                             ; preds = %1244, %1242
  %1247 = phi float [ %1243, %1242 ], [ %1245, %1244 ]
  store float %1247, ptr %78, align 4, !tbaa !11
  br label %1248

1248:                                             ; preds = %1246
  %1249 = load i32, ptr %92, align 4, !tbaa !9
  %1250 = add nsw i32 %1249, 1
  store i32 %1250, ptr %92, align 4, !tbaa !9
  br label %1215, !llvm.loop !17

1251:                                             ; preds = %1215
  br label %1312

1252:                                             ; preds = %1205
  %1253 = load ptr, ptr %34, align 8, !tbaa !5
  %1254 = load i32, ptr %1253, align 4, !tbaa !9
  store i32 %1254, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1255

1255:                                             ; preds = %1308, %1252
  %1256 = load i32, ptr %92, align 4, !tbaa !9
  %1257 = load i32, ptr %68, align 4, !tbaa !9
  %1258 = icmp sle i32 %1256, %1257
  br i1 %1258, label %1259, label %1311

1259:                                             ; preds = %1255
  %1260 = load float, ptr %78, align 4, !tbaa !11
  store float %1260, ptr %71, align 4, !tbaa !11
  %1261 = load ptr, ptr %42, align 8, !tbaa !5
  %1262 = load i32, ptr %92, align 4, !tbaa !9
  %1263 = load i32, ptr %89, align 4, !tbaa !9
  %1264 = load i32, ptr %63, align 4, !tbaa !9
  %1265 = mul nsw i32 %1263, %1264
  %1266 = add nsw i32 %1262, %1265
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds float, ptr %1261, i64 %1267
  %1269 = load float, ptr %1268, align 4, !tbaa !11
  store float %1269, ptr %69, align 4, !tbaa !11
  %1270 = load float, ptr %69, align 4, !tbaa !11
  %1271 = fcmp oge float %1270, 0.000000e+00
  br i1 %1271, label %1272, label %1274

1272:                                             ; preds = %1259
  %1273 = load float, ptr %69, align 4, !tbaa !11
  br label %1277

1274:                                             ; preds = %1259
  %1275 = load float, ptr %69, align 4, !tbaa !11
  %1276 = fneg float %1275
  br label %1277

1277:                                             ; preds = %1274, %1272
  %1278 = phi float [ %1273, %1272 ], [ %1276, %1274 ]
  %1279 = load ptr, ptr %42, align 8, !tbaa !5
  %1280 = load i32, ptr %92, align 4, !tbaa !9
  %1281 = load i32, ptr %89, align 4, !tbaa !9
  %1282 = add nsw i32 %1281, 1
  %1283 = load i32, ptr %63, align 4, !tbaa !9
  %1284 = mul nsw i32 %1282, %1283
  %1285 = add nsw i32 %1280, %1284
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds float, ptr %1279, i64 %1286
  %1288 = load float, ptr %1287, align 4, !tbaa !11
  store float %1288, ptr %70, align 4, !tbaa !11
  %1289 = load float, ptr %70, align 4, !tbaa !11
  %1290 = fcmp oge float %1289, 0.000000e+00
  br i1 %1290, label %1291, label %1293

1291:                                             ; preds = %1277
  %1292 = load float, ptr %70, align 4, !tbaa !11
  br label %1296

1293:                                             ; preds = %1277
  %1294 = load float, ptr %70, align 4, !tbaa !11
  %1295 = fneg float %1294
  br label %1296

1296:                                             ; preds = %1293, %1291
  %1297 = phi float [ %1292, %1291 ], [ %1295, %1293 ]
  %1298 = fadd float %1278, %1297
  store float %1298, ptr %72, align 4, !tbaa !11
  %1299 = load float, ptr %71, align 4, !tbaa !11
  %1300 = load float, ptr %72, align 4, !tbaa !11
  %1301 = fcmp oge float %1299, %1300
  br i1 %1301, label %1302, label %1304

1302:                                             ; preds = %1296
  %1303 = load float, ptr %71, align 4, !tbaa !11
  br label %1306

1304:                                             ; preds = %1296
  %1305 = load float, ptr %72, align 4, !tbaa !11
  br label %1306

1306:                                             ; preds = %1304, %1302
  %1307 = phi float [ %1303, %1302 ], [ %1305, %1304 ]
  store float %1307, ptr %78, align 4, !tbaa !11
  br label %1308

1308:                                             ; preds = %1306
  %1309 = load i32, ptr %92, align 4, !tbaa !9
  %1310 = add nsw i32 %1309, 1
  store i32 %1310, ptr %92, align 4, !tbaa !9
  br label %1255, !llvm.loop !18

1311:                                             ; preds = %1255
  br label %1312

1312:                                             ; preds = %1311, %1251
  %1313 = load float, ptr %78, align 4, !tbaa !11
  %1314 = load float, ptr %107, align 4, !tbaa !11
  %1315 = fcmp olt float %1313, %1314
  br i1 %1315, label %1316, label %1317

1316:                                             ; preds = %1312
  br label %1385

1317:                                             ; preds = %1312
  %1318 = load float, ptr %78, align 4, !tbaa !11
  %1319 = fdiv float 1.000000e+00, %1318
  store float %1319, ptr %78, align 4, !tbaa !11
  %1320 = load ptr, ptr %40, align 8, !tbaa !5
  %1321 = load i32, ptr %89, align 4, !tbaa !9
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds float, ptr %1320, i64 %1322
  %1324 = load float, ptr %1323, align 4, !tbaa !11
  %1325 = fcmp oeq float %1324, 0.000000e+00
  br i1 %1325, label %1326, label %1349

1326:                                             ; preds = %1317
  %1327 = load ptr, ptr %34, align 8, !tbaa !5
  %1328 = load i32, ptr %1327, align 4, !tbaa !9
  store i32 %1328, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1329

1329:                                             ; preds = %1345, %1326
  %1330 = load i32, ptr %92, align 4, !tbaa !9
  %1331 = load i32, ptr %68, align 4, !tbaa !9
  %1332 = icmp sle i32 %1330, %1331
  br i1 %1332, label %1333, label %1348

1333:                                             ; preds = %1329
  %1334 = load float, ptr %78, align 4, !tbaa !11
  %1335 = load ptr, ptr %42, align 8, !tbaa !5
  %1336 = load i32, ptr %92, align 4, !tbaa !9
  %1337 = load i32, ptr %89, align 4, !tbaa !9
  %1338 = load i32, ptr %63, align 4, !tbaa !9
  %1339 = mul nsw i32 %1337, %1338
  %1340 = add nsw i32 %1336, %1339
  %1341 = sext i32 %1340 to i64
  %1342 = getelementptr inbounds float, ptr %1335, i64 %1341
  %1343 = load float, ptr %1342, align 4, !tbaa !11
  %1344 = fmul float %1343, %1334
  store float %1344, ptr %1342, align 4, !tbaa !11
  br label %1345

1345:                                             ; preds = %1333
  %1346 = load i32, ptr %92, align 4, !tbaa !9
  %1347 = add nsw i32 %1346, 1
  store i32 %1347, ptr %92, align 4, !tbaa !9
  br label %1329, !llvm.loop !19

1348:                                             ; preds = %1329
  br label %1384

1349:                                             ; preds = %1317
  %1350 = load ptr, ptr %34, align 8, !tbaa !5
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  store i32 %1351, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1352

1352:                                             ; preds = %1380, %1349
  %1353 = load i32, ptr %92, align 4, !tbaa !9
  %1354 = load i32, ptr %68, align 4, !tbaa !9
  %1355 = icmp sle i32 %1353, %1354
  br i1 %1355, label %1356, label %1383

1356:                                             ; preds = %1352
  %1357 = load float, ptr %78, align 4, !tbaa !11
  %1358 = load ptr, ptr %42, align 8, !tbaa !5
  %1359 = load i32, ptr %92, align 4, !tbaa !9
  %1360 = load i32, ptr %89, align 4, !tbaa !9
  %1361 = load i32, ptr %63, align 4, !tbaa !9
  %1362 = mul nsw i32 %1360, %1361
  %1363 = add nsw i32 %1359, %1362
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr inbounds float, ptr %1358, i64 %1364
  %1366 = load float, ptr %1365, align 4, !tbaa !11
  %1367 = fmul float %1366, %1357
  store float %1367, ptr %1365, align 4, !tbaa !11
  %1368 = load float, ptr %78, align 4, !tbaa !11
  %1369 = load ptr, ptr %42, align 8, !tbaa !5
  %1370 = load i32, ptr %92, align 4, !tbaa !9
  %1371 = load i32, ptr %89, align 4, !tbaa !9
  %1372 = add nsw i32 %1371, 1
  %1373 = load i32, ptr %63, align 4, !tbaa !9
  %1374 = mul nsw i32 %1372, %1373
  %1375 = add nsw i32 %1370, %1374
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds float, ptr %1369, i64 %1376
  %1378 = load float, ptr %1377, align 4, !tbaa !11
  %1379 = fmul float %1378, %1368
  store float %1379, ptr %1377, align 4, !tbaa !11
  br label %1380

1380:                                             ; preds = %1356
  %1381 = load i32, ptr %92, align 4, !tbaa !9
  %1382 = add nsw i32 %1381, 1
  store i32 %1382, ptr %92, align 4, !tbaa !9
  br label %1352, !llvm.loop !20

1383:                                             ; preds = %1352
  br label %1384

1384:                                             ; preds = %1383, %1348
  br label %1385

1385:                                             ; preds = %1384, %1316, %1204
  br label %1386

1386:                                             ; preds = %1385
  %1387 = load i32, ptr %89, align 4, !tbaa !9
  %1388 = add nsw i32 %1387, 1
  store i32 %1388, ptr %89, align 4, !tbaa !9
  br label %1193, !llvm.loop !21

1389:                                             ; preds = %1193
  br label %1390

1390:                                             ; preds = %1389, %1173
  %1391 = load i32, ptr %80, align 4, !tbaa !9
  %1392 = icmp ne i32 %1391, 0
  br i1 %1392, label %1393, label %1607

1393:                                             ; preds = %1390
  %1394 = load ptr, ptr %30, align 8, !tbaa !5
  %1395 = load ptr, ptr %34, align 8, !tbaa !5
  %1396 = load ptr, ptr %46, align 8, !tbaa !5
  %1397 = load ptr, ptr %47, align 8, !tbaa !5
  %1398 = load ptr, ptr %48, align 8, !tbaa !5
  %1399 = getelementptr inbounds float, ptr %1398, i64 1
  %1400 = load ptr, ptr %49, align 8, !tbaa !5
  %1401 = getelementptr inbounds float, ptr %1400, i64 1
  %1402 = load ptr, ptr %34, align 8, !tbaa !5
  %1403 = load ptr, ptr %44, align 8, !tbaa !5
  %1404 = load i32, ptr %66, align 4, !tbaa !9
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds float, ptr %1403, i64 %1405
  %1407 = load ptr, ptr %45, align 8, !tbaa !5
  call void @sggbak_(ptr noundef %1394, ptr noundef @.str.17, ptr noundef %1395, ptr noundef %1396, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, ptr noundef %1402, ptr noundef %1406, ptr noundef %1407, ptr noundef %76)
  %1408 = load ptr, ptr %34, align 8, !tbaa !5
  %1409 = load i32, ptr %1408, align 4, !tbaa !9
  store i32 %1409, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %89, align 4, !tbaa !9
  br label %1410

1410:                                             ; preds = %1603, %1393
  %1411 = load i32, ptr %89, align 4, !tbaa !9
  %1412 = load i32, ptr %67, align 4, !tbaa !9
  %1413 = icmp sle i32 %1411, %1412
  br i1 %1413, label %1414, label %1606

1414:                                             ; preds = %1410
  %1415 = load ptr, ptr %40, align 8, !tbaa !5
  %1416 = load i32, ptr %89, align 4, !tbaa !9
  %1417 = sext i32 %1416 to i64
  %1418 = getelementptr inbounds float, ptr %1415, i64 %1417
  %1419 = load float, ptr %1418, align 4, !tbaa !11
  %1420 = fcmp olt float %1419, 0.000000e+00
  br i1 %1420, label %1421, label %1422

1421:                                             ; preds = %1414
  br label %1602

1422:                                             ; preds = %1414
  store float 0.000000e+00, ptr %78, align 4, !tbaa !11
  %1423 = load ptr, ptr %40, align 8, !tbaa !5
  %1424 = load i32, ptr %89, align 4, !tbaa !9
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds float, ptr %1423, i64 %1425
  %1427 = load float, ptr %1426, align 4, !tbaa !11
  %1428 = fcmp oeq float %1427, 0.000000e+00
  br i1 %1428, label %1429, label %1469

1429:                                             ; preds = %1422
  %1430 = load ptr, ptr %34, align 8, !tbaa !5
  %1431 = load i32, ptr %1430, align 4, !tbaa !9
  store i32 %1431, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1432

1432:                                             ; preds = %1465, %1429
  %1433 = load i32, ptr %92, align 4, !tbaa !9
  %1434 = load i32, ptr %68, align 4, !tbaa !9
  %1435 = icmp sle i32 %1433, %1434
  br i1 %1435, label %1436, label %1468

1436:                                             ; preds = %1432
  %1437 = load float, ptr %78, align 4, !tbaa !11
  store float %1437, ptr %70, align 4, !tbaa !11
  %1438 = load ptr, ptr %44, align 8, !tbaa !5
  %1439 = load i32, ptr %92, align 4, !tbaa !9
  %1440 = load i32, ptr %89, align 4, !tbaa !9
  %1441 = load i32, ptr %65, align 4, !tbaa !9
  %1442 = mul nsw i32 %1440, %1441
  %1443 = add nsw i32 %1439, %1442
  %1444 = sext i32 %1443 to i64
  %1445 = getelementptr inbounds float, ptr %1438, i64 %1444
  %1446 = load float, ptr %1445, align 4, !tbaa !11
  store float %1446, ptr %69, align 4, !tbaa !11
  %1447 = load float, ptr %69, align 4, !tbaa !11
  %1448 = fcmp oge float %1447, 0.000000e+00
  br i1 %1448, label %1449, label %1451

1449:                                             ; preds = %1436
  %1450 = load float, ptr %69, align 4, !tbaa !11
  br label %1454

1451:                                             ; preds = %1436
  %1452 = load float, ptr %69, align 4, !tbaa !11
  %1453 = fneg float %1452
  br label %1454

1454:                                             ; preds = %1451, %1449
  %1455 = phi float [ %1450, %1449 ], [ %1453, %1451 ]
  store float %1455, ptr %71, align 4, !tbaa !11
  %1456 = load float, ptr %70, align 4, !tbaa !11
  %1457 = load float, ptr %71, align 4, !tbaa !11
  %1458 = fcmp oge float %1456, %1457
  br i1 %1458, label %1459, label %1461

1459:                                             ; preds = %1454
  %1460 = load float, ptr %70, align 4, !tbaa !11
  br label %1463

1461:                                             ; preds = %1454
  %1462 = load float, ptr %71, align 4, !tbaa !11
  br label %1463

1463:                                             ; preds = %1461, %1459
  %1464 = phi float [ %1460, %1459 ], [ %1462, %1461 ]
  store float %1464, ptr %78, align 4, !tbaa !11
  br label %1465

1465:                                             ; preds = %1463
  %1466 = load i32, ptr %92, align 4, !tbaa !9
  %1467 = add nsw i32 %1466, 1
  store i32 %1467, ptr %92, align 4, !tbaa !9
  br label %1432, !llvm.loop !22

1468:                                             ; preds = %1432
  br label %1529

1469:                                             ; preds = %1422
  %1470 = load ptr, ptr %34, align 8, !tbaa !5
  %1471 = load i32, ptr %1470, align 4, !tbaa !9
  store i32 %1471, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1472

1472:                                             ; preds = %1525, %1469
  %1473 = load i32, ptr %92, align 4, !tbaa !9
  %1474 = load i32, ptr %68, align 4, !tbaa !9
  %1475 = icmp sle i32 %1473, %1474
  br i1 %1475, label %1476, label %1528

1476:                                             ; preds = %1472
  %1477 = load float, ptr %78, align 4, !tbaa !11
  store float %1477, ptr %71, align 4, !tbaa !11
  %1478 = load ptr, ptr %44, align 8, !tbaa !5
  %1479 = load i32, ptr %92, align 4, !tbaa !9
  %1480 = load i32, ptr %89, align 4, !tbaa !9
  %1481 = load i32, ptr %65, align 4, !tbaa !9
  %1482 = mul nsw i32 %1480, %1481
  %1483 = add nsw i32 %1479, %1482
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds float, ptr %1478, i64 %1484
  %1486 = load float, ptr %1485, align 4, !tbaa !11
  store float %1486, ptr %69, align 4, !tbaa !11
  %1487 = load float, ptr %69, align 4, !tbaa !11
  %1488 = fcmp oge float %1487, 0.000000e+00
  br i1 %1488, label %1489, label %1491

1489:                                             ; preds = %1476
  %1490 = load float, ptr %69, align 4, !tbaa !11
  br label %1494

1491:                                             ; preds = %1476
  %1492 = load float, ptr %69, align 4, !tbaa !11
  %1493 = fneg float %1492
  br label %1494

1494:                                             ; preds = %1491, %1489
  %1495 = phi float [ %1490, %1489 ], [ %1493, %1491 ]
  %1496 = load ptr, ptr %44, align 8, !tbaa !5
  %1497 = load i32, ptr %92, align 4, !tbaa !9
  %1498 = load i32, ptr %89, align 4, !tbaa !9
  %1499 = add nsw i32 %1498, 1
  %1500 = load i32, ptr %65, align 4, !tbaa !9
  %1501 = mul nsw i32 %1499, %1500
  %1502 = add nsw i32 %1497, %1501
  %1503 = sext i32 %1502 to i64
  %1504 = getelementptr inbounds float, ptr %1496, i64 %1503
  %1505 = load float, ptr %1504, align 4, !tbaa !11
  store float %1505, ptr %70, align 4, !tbaa !11
  %1506 = load float, ptr %70, align 4, !tbaa !11
  %1507 = fcmp oge float %1506, 0.000000e+00
  br i1 %1507, label %1508, label %1510

1508:                                             ; preds = %1494
  %1509 = load float, ptr %70, align 4, !tbaa !11
  br label %1513

1510:                                             ; preds = %1494
  %1511 = load float, ptr %70, align 4, !tbaa !11
  %1512 = fneg float %1511
  br label %1513

1513:                                             ; preds = %1510, %1508
  %1514 = phi float [ %1509, %1508 ], [ %1512, %1510 ]
  %1515 = fadd float %1495, %1514
  store float %1515, ptr %72, align 4, !tbaa !11
  %1516 = load float, ptr %71, align 4, !tbaa !11
  %1517 = load float, ptr %72, align 4, !tbaa !11
  %1518 = fcmp oge float %1516, %1517
  br i1 %1518, label %1519, label %1521

1519:                                             ; preds = %1513
  %1520 = load float, ptr %71, align 4, !tbaa !11
  br label %1523

1521:                                             ; preds = %1513
  %1522 = load float, ptr %72, align 4, !tbaa !11
  br label %1523

1523:                                             ; preds = %1521, %1519
  %1524 = phi float [ %1520, %1519 ], [ %1522, %1521 ]
  store float %1524, ptr %78, align 4, !tbaa !11
  br label %1525

1525:                                             ; preds = %1523
  %1526 = load i32, ptr %92, align 4, !tbaa !9
  %1527 = add nsw i32 %1526, 1
  store i32 %1527, ptr %92, align 4, !tbaa !9
  br label %1472, !llvm.loop !23

1528:                                             ; preds = %1472
  br label %1529

1529:                                             ; preds = %1528, %1468
  %1530 = load float, ptr %78, align 4, !tbaa !11
  %1531 = load float, ptr %107, align 4, !tbaa !11
  %1532 = fcmp olt float %1530, %1531
  br i1 %1532, label %1533, label %1534

1533:                                             ; preds = %1529
  br label %1602

1534:                                             ; preds = %1529
  %1535 = load float, ptr %78, align 4, !tbaa !11
  %1536 = fdiv float 1.000000e+00, %1535
  store float %1536, ptr %78, align 4, !tbaa !11
  %1537 = load ptr, ptr %40, align 8, !tbaa !5
  %1538 = load i32, ptr %89, align 4, !tbaa !9
  %1539 = sext i32 %1538 to i64
  %1540 = getelementptr inbounds float, ptr %1537, i64 %1539
  %1541 = load float, ptr %1540, align 4, !tbaa !11
  %1542 = fcmp oeq float %1541, 0.000000e+00
  br i1 %1542, label %1543, label %1566

1543:                                             ; preds = %1534
  %1544 = load ptr, ptr %34, align 8, !tbaa !5
  %1545 = load i32, ptr %1544, align 4, !tbaa !9
  store i32 %1545, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1546

1546:                                             ; preds = %1562, %1543
  %1547 = load i32, ptr %92, align 4, !tbaa !9
  %1548 = load i32, ptr %68, align 4, !tbaa !9
  %1549 = icmp sle i32 %1547, %1548
  br i1 %1549, label %1550, label %1565

1550:                                             ; preds = %1546
  %1551 = load float, ptr %78, align 4, !tbaa !11
  %1552 = load ptr, ptr %44, align 8, !tbaa !5
  %1553 = load i32, ptr %92, align 4, !tbaa !9
  %1554 = load i32, ptr %89, align 4, !tbaa !9
  %1555 = load i32, ptr %65, align 4, !tbaa !9
  %1556 = mul nsw i32 %1554, %1555
  %1557 = add nsw i32 %1553, %1556
  %1558 = sext i32 %1557 to i64
  %1559 = getelementptr inbounds float, ptr %1552, i64 %1558
  %1560 = load float, ptr %1559, align 4, !tbaa !11
  %1561 = fmul float %1560, %1551
  store float %1561, ptr %1559, align 4, !tbaa !11
  br label %1562

1562:                                             ; preds = %1550
  %1563 = load i32, ptr %92, align 4, !tbaa !9
  %1564 = add nsw i32 %1563, 1
  store i32 %1564, ptr %92, align 4, !tbaa !9
  br label %1546, !llvm.loop !24

1565:                                             ; preds = %1546
  br label %1601

1566:                                             ; preds = %1534
  %1567 = load ptr, ptr %34, align 8, !tbaa !5
  %1568 = load i32, ptr %1567, align 4, !tbaa !9
  store i32 %1568, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %1569

1569:                                             ; preds = %1597, %1566
  %1570 = load i32, ptr %92, align 4, !tbaa !9
  %1571 = load i32, ptr %68, align 4, !tbaa !9
  %1572 = icmp sle i32 %1570, %1571
  br i1 %1572, label %1573, label %1600

1573:                                             ; preds = %1569
  %1574 = load float, ptr %78, align 4, !tbaa !11
  %1575 = load ptr, ptr %44, align 8, !tbaa !5
  %1576 = load i32, ptr %92, align 4, !tbaa !9
  %1577 = load i32, ptr %89, align 4, !tbaa !9
  %1578 = load i32, ptr %65, align 4, !tbaa !9
  %1579 = mul nsw i32 %1577, %1578
  %1580 = add nsw i32 %1576, %1579
  %1581 = sext i32 %1580 to i64
  %1582 = getelementptr inbounds float, ptr %1575, i64 %1581
  %1583 = load float, ptr %1582, align 4, !tbaa !11
  %1584 = fmul float %1583, %1574
  store float %1584, ptr %1582, align 4, !tbaa !11
  %1585 = load float, ptr %78, align 4, !tbaa !11
  %1586 = load ptr, ptr %44, align 8, !tbaa !5
  %1587 = load i32, ptr %92, align 4, !tbaa !9
  %1588 = load i32, ptr %89, align 4, !tbaa !9
  %1589 = add nsw i32 %1588, 1
  %1590 = load i32, ptr %65, align 4, !tbaa !9
  %1591 = mul nsw i32 %1589, %1590
  %1592 = add nsw i32 %1587, %1591
  %1593 = sext i32 %1592 to i64
  %1594 = getelementptr inbounds float, ptr %1586, i64 %1593
  %1595 = load float, ptr %1594, align 4, !tbaa !11
  %1596 = fmul float %1595, %1585
  store float %1596, ptr %1594, align 4, !tbaa !11
  br label %1597

1597:                                             ; preds = %1573
  %1598 = load i32, ptr %92, align 4, !tbaa !9
  %1599 = add nsw i32 %1598, 1
  store i32 %1599, ptr %92, align 4, !tbaa !9
  br label %1569, !llvm.loop !25

1600:                                             ; preds = %1569
  br label %1601

1601:                                             ; preds = %1600, %1565
  br label %1602

1602:                                             ; preds = %1601, %1533, %1421
  br label %1603

1603:                                             ; preds = %1602
  %1604 = load i32, ptr %89, align 4, !tbaa !9
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr %89, align 4, !tbaa !9
  br label %1410, !llvm.loop !26

1606:                                             ; preds = %1410
  br label %1607

1607:                                             ; preds = %1606, %1390
  br label %1608

1608:                                             ; preds = %1607, %1119, %998, %946
  %1609 = load i32, ptr %93, align 4, !tbaa !9
  %1610 = icmp ne i32 %1609, 0
  br i1 %1610, label %1611, label %1620

1611:                                             ; preds = %1608
  %1612 = load ptr, ptr %34, align 8, !tbaa !5
  %1613 = load ptr, ptr %39, align 8, !tbaa !5
  %1614 = getelementptr inbounds float, ptr %1613, i64 1
  %1615 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %101, ptr noundef %74, ptr noundef %1612, ptr noundef @c__1, ptr noundef %1614, ptr noundef %1615, ptr noundef %76)
  %1616 = load ptr, ptr %34, align 8, !tbaa !5
  %1617 = load ptr, ptr %40, align 8, !tbaa !5
  %1618 = getelementptr inbounds float, ptr %1617, i64 1
  %1619 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %101, ptr noundef %74, ptr noundef %1616, ptr noundef @c__1, ptr noundef %1618, ptr noundef %1619, ptr noundef %76)
  br label %1620

1620:                                             ; preds = %1611, %1608
  %1621 = load i32, ptr %94, align 4, !tbaa !9
  %1622 = icmp ne i32 %1621, 0
  br i1 %1622, label %1623, label %1628

1623:                                             ; preds = %1620
  %1624 = load ptr, ptr %34, align 8, !tbaa !5
  %1625 = load ptr, ptr %41, align 8, !tbaa !5
  %1626 = getelementptr inbounds float, ptr %1625, i64 1
  %1627 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %103, ptr noundef %75, ptr noundef %1624, ptr noundef @c__1, ptr noundef %1626, ptr noundef %1627, ptr noundef %76)
  br label %1628

1628:                                             ; preds = %1623, %1620
  %1629 = load i32, ptr %105, align 4, !tbaa !9
  %1630 = sitofp i32 %1629 to float
  %1631 = load ptr, ptr %54, align 8, !tbaa !5
  %1632 = getelementptr inbounds float, ptr %1631, i64 1
  store float %1630, ptr %1632, align 4, !tbaa !11
  store i32 1, ptr %112, align 4
  br label %1633

1633:                                             ; preds = %1628, %480, %474, %466
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}
!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 i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [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 void @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 i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca [1 x i32], align 4
  %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 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, 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 i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %46, -1
  %47 = sext i32 %narrow to i64
  %48 = getelementptr inbounds float, ptr %5, i64 %47
  %49 = load i32, ptr %8, align 4, !tbaa !5
  %narrow647 = xor i32 %49, -1
  %50 = sext i32 %narrow647 to i64
  %51 = getelementptr inbounds float, ptr %7, i64 %50
  %52 = getelementptr inbounds i8, ptr %10, i64 -4
  %53 = load i32, ptr %13, align 4, !tbaa !5
  %narrow651 = xor i32 %53, -1
  %54 = sext i32 %narrow651 to i64
  %55 = getelementptr inbounds float, ptr %12, i64 %54
  %56 = load i32, ptr %15, align 4, !tbaa !5
  %narrow652 = xor i32 %56, -1
  %57 = sext i32 %narrow652 to i64
  %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 %24, i64 -4
  %62 = getelementptr inbounds i8, ptr %27, i64 -4
  %63 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %.not = icmp eq i32 %63, 0
  br i1 %.not, label %64, label %66

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

66:                                               ; preds = %64, %29
  %67 = phi i1 [ false, %29 ], [ %not..not635, %64 ]
  %68 = phi i1 [ false, %29 ], [ %.not635, %64 ]
  %69 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %.not636 = icmp eq i32 %69, 0
  br i1 %.not636, label %70, label %72

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

72:                                               ; preds = %70, %66
  %73 = phi i1 [ false, %66 ], [ %not..not637, %70 ]
  %74 = phi i1 [ false, %66 ], [ %.not637, %70 ]
  %75 = or i1 %67, %73
  %76 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not638 = icmp eq i32 %76, 0
  br i1 %.not638, label %77, label %80

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

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

88:                                               ; preds = %80
  %89 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #6
  %.not639 = icmp eq i32 %89, 0
  br i1 %.not639, label %90, label %92

90:                                               ; preds = %88
  %91 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not640 = icmp eq i32 %91, 0
  %brmerge = select i1 %.not640, i1 true, i1 %68
  %brmerge872 = select i1 %brmerge, i1 true, i1 %74
  %.mux = select i1 %68, i32 -2, i32 -3
  %.mux.mux = select i1 %.not640, i32 -1, i32 %.mux
  br i1 %brmerge872, label %.thread681.sink.split, label %93

92:                                               ; preds = %88, %80
  %brmerge873 = select i1 %68, i1 true, i1 %74
  %.mux874 = select i1 %68, i32 -2, i32 -3
  br i1 %brmerge873, label %.thread681.sink.split, label %93

93:                                               ; preds = %92, %90
  %94 = icmp ne i32 %82, 0
  %95 = icmp ne i32 %83, 0
  %or.cond = select i1 %94, i1 true, i1 %95
  %96 = icmp ne i32 %85, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %96
  %97 = icmp ne i32 %84, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %97
  br i1 %or.cond5, label %98, label %.thread681.sink.split

98:                                               ; preds = %93
  %99 = load i32, ptr %4, align 4, !tbaa !5
  %100 = icmp slt i32 %99, 0
  br i1 %100, label %.thread681.sink.split, label %101

101:                                              ; preds = %98
  %102 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %99, i32 1)
  %103 = icmp slt i32 %102, %spec.select
  br i1 %103, label %.thread681.sink.split, label %104

104:                                              ; preds = %101
  %105 = load i32, ptr %8, align 4, !tbaa !5
  %106 = icmp slt i32 %105, %spec.select
  br i1 %106, label %.thread681.sink.split, label %107

107:                                              ; preds = %104
  %108 = load i32, ptr %13, align 4, !tbaa !5
  %109 = icmp slt i32 %108, 1
  %110 = icmp ult i32 %108, %99
  %or.cond697 = and i1 %67, %110
  %or.cond699 = select i1 %109, i1 true, i1 %or.cond697
  br i1 %or.cond699, label %.thread681.sink.split, label %111

111:                                              ; preds = %107
  %112 = load i32, ptr %15, align 4, !tbaa !5
  %113 = icmp slt i32 %112, 1
  %114 = icmp ult i32 %112, %99
  %or.cond698 = and i1 %73, %114
  %or.cond700 = select i1 %113, i1 true, i1 %or.cond698
  br i1 %or.cond700, label %.thread681.sink.split, label %115

115:                                              ; preds = %111
  %.pr = load i32, ptr %28, align 4, !tbaa !5
  %116 = icmp eq i32 %.pr, 0
  br i1 %116, label %117, label %.thread681

117:                                              ; preds = %115
  %118 = icmp eq i32 %99, 0
  br i1 %118, label %146, label %119

119:                                              ; preds = %117
  %120 = shl nuw i32 %99, 1
  %.not641 = icmp eq i32 %83, 0
  br i1 %.not641, label %123, label %121

121:                                              ; preds = %119
  %122 = mul nuw nsw i32 %99, 10
  br label %130

123:                                              ; preds = %119
  %124 = xor i1 %81, true
  %or.cond7 = or i1 %75, %124
  %125 = mul nuw nsw i32 %99, 6
  %.0592 = select i1 %or.cond7, i32 %125, i32 %120
  %or.cond9 = select i1 %97, i1 true, i1 %96
  br i1 %or.cond9, label %126, label %130

126:                                              ; preds = %123
  %127 = add nuw nsw i32 %99, 4
  %128 = mul nsw i32 %120, %127
  %129 = add nsw i32 %128, 16
  br label %130

130:                                              ; preds = %126, %123, %121
  %.1593 = phi i32 [ %122, %121 ], [ %129, %126 ], [ %.0592, %123 ]
  %131 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #6
  %132 = add i32 %131, 1
  %133 = mul i32 %132, %99
  %134 = tail call i32 @llvm.smax.i32(i32 %.1593, i32 %133)
  store i32 %134, ptr %30, align 4, !tbaa !5
  %135 = load i32, ptr %4, align 4, !tbaa !5
  %136 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #6
  %137 = add i32 %136, 1
  %138 = mul i32 %137, %135
  store i32 %138, ptr %31, align 4, !tbaa !5
  %139 = tail call i32 @llvm.smax.i32(i32 %134, i32 %138)
  br i1 %67, label %140, label %146

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

146:                                              ; preds = %117, %130, %140
  %.2 = phi i32 [ %.1593, %140 ], [ %.1593, %130 ], [ 1, %117 ]
  %.0 = phi i32 [ %145, %140 ], [ %139, %130 ], [ 1, %117 ]
  %147 = sitofp i32 %.0 to float
  store float %147, ptr %24, align 4, !tbaa !9
  %148 = load i32, ptr %25, align 4, !tbaa !5
  %149 = icmp sge i32 %148, %.2
  %or.cond11 = select i1 %149, i1 true, i1 %87
  br i1 %or.cond11, label %.thread, label %.thread681.sink.split

.thread:                                          ; preds = %146
  %.pr678.pr = load i32, ptr %28, align 4, !tbaa !5
  %.not645 = icmp eq i32 %.pr678.pr, 0
  br i1 %.not645, label %153, label %.thread681

.thread681.sink.split:                            ; preds = %92, %90, %146, %111, %107, %104, %101, %98, %93
  %.sink = phi i32 [ %.mux.mux, %90 ], [ %.mux874, %92 ], [ -4, %93 ], [ -5, %98 ], [ -7, %101 ], [ -9, %104 ], [ -14, %107 ], [ -16, %111 ], [ -26, %146 ]
  store i32 %.sink, ptr %28, align 4, !tbaa !5
  br label %.thread681

.thread681:                                       ; preds = %.thread681.sink.split, %115, %.thread
  %150 = phi i32 [ %.pr678.pr, %.thread ], [ %.pr, %115 ], [ %.sink, %.thread681.sink.split ]
  %151 = sub nsw i32 0, %150
  store i32 %151, ptr %30, align 4, !tbaa !5
  %152 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %30, i32 noundef 6) #6
  br label %535

153:                                              ; preds = %.thread
  br i1 %87, label %535, label %154

154:                                              ; preds = %153
  %155 = load i32, ptr %4, align 4, !tbaa !5
  %156 = icmp eq i32 %155, 0
  br i1 %156, label %535, label %157

157:                                              ; preds = %154
  %158 = tail call float @slamch_(ptr noundef nonnull @.str.2) #6
  %159 = tail call float @slamch_(ptr noundef nonnull @.str.5) #6
  store float %159, ptr %45, align 4, !tbaa !9
  %160 = fdiv float 1.000000e+00, %159
  store float %160, ptr %42, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %45, ptr noundef nonnull %42) #6
  %161 = load float, ptr %45, align 4, !tbaa !9
  %162 = fpext float %161 to double
  %163 = call double @sqrt(double noundef %162) #6
  %164 = fpext float %158 to double
  %165 = fdiv double %163, %164
  %166 = fptrunc double %165 to float
  store float %166, ptr %45, align 4, !tbaa !9
  %167 = fdiv float 1.000000e+00, %166
  store float %167, ptr %42, align 4, !tbaa !9
  %168 = call float @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
  store float %168, ptr %32, align 4, !tbaa !9
  %169 = fcmp ogt float %168, 0.000000e+00
  %170 = load float, ptr %45, align 4
  %171 = fcmp olt float %168, %170
  %or.cond704 = select i1 %169, i1 %171, i1 false
  br i1 %or.cond704, label %175, label %172

172:                                              ; preds = %157
  %173 = load float, ptr %42, align 4, !tbaa !9
  %174 = fcmp ogt float %168, %173
  br i1 %174, label %175, label %176

175:                                              ; preds = %157, %172
  %storemerge701 = phi float [ %173, %172 ], [ %170, %157 ]
  store float %storemerge701, ptr %43, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %32, ptr noundef nonnull %43, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %34) #6
  br label %176

176:                                              ; preds = %172, %175
  %.not646688 = phi i1 [ false, %175 ], [ true, %172 ]
  %177 = call float @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
  store float %177, ptr %33, align 4, !tbaa !9
  %178 = fcmp ogt float %177, 0.000000e+00
  %179 = load float, ptr %45, align 4
  %180 = fcmp olt float %177, %179
  %or.cond706 = select i1 %178, i1 %180, i1 false
  br i1 %or.cond706, label %184, label %181

181:                                              ; preds = %176
  %182 = load float, ptr %42, align 4, !tbaa !9
  %183 = fcmp ogt float %177, %182
  br i1 %183, label %184, label %185

184:                                              ; preds = %176, %181
  %storemerge702 = phi float [ %182, %181 ], [ %179, %176 ]
  store float %storemerge702, ptr %44, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %33, ptr noundef nonnull %44, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %34) #6
  br label %185

185:                                              ; preds = %181, %184
  %.not648693 = phi i1 [ false, %184 ], [ true, %181 ]
  call void @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 %34) #6
  %186 = call float @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
  store float %186, ptr %20, align 4, !tbaa !9
  br i1 %.not646688, label %189, label %187

187:                                              ; preds = %185
  store float %186, ptr %24, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %34) #6
  %188 = load float, ptr %24, align 4, !tbaa !9
  store float %188, ptr %20, align 4, !tbaa !9
  br label %189

189:                                              ; preds = %187, %185
  %190 = call float @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
  store float %190, ptr %21, align 4, !tbaa !9
  br i1 %.not648693, label %193, label %191

191:                                              ; preds = %189
  store float %190, ptr %24, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %33, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %34) #6
  %192 = load float, ptr %24, align 4, !tbaa !9
  store float %192, ptr %21, align 4, !tbaa !9
  br label %193

193:                                              ; preds = %191, %189
  %194 = load i32, ptr %17, align 4, !tbaa !5
  %195 = add nsw i32 %194, 1
  %196 = load i32, ptr %16, align 4, !tbaa !5
  %197 = sub i32 %195, %196
  store i32 %197, ptr %37, align 4, !tbaa !5
  %198 = icmp eq i32 %82, 0
  %or.cond13.not = select i1 %75, i1 true, i1 %198
  br i1 %or.cond13.not, label %199, label %202

199:                                              ; preds = %193
  %200 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub = sub i32 %200, %196
  %201 = add i32 %reass.sub, 1
  br label %202

202:                                              ; preds = %193, %199
  %storemerge = phi i32 [ %201, %199 ], [ %197, %193 ]
  store i32 %storemerge, ptr %36, align 4, !tbaa !5
  %203 = load i32, ptr %25, align 4, !tbaa !5
  %204 = sub i32 %203, %197
  store i32 %204, ptr %30, align 4, !tbaa !5
  %205 = add i32 %49, 1
  %206 = mul i32 %196, %205
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds float, ptr %51, i64 %207
  %209 = sext i32 %197 to i64
  %210 = getelementptr float, ptr %61, i64 %209
  %211 = getelementptr i8, ptr %210, i64 4
  call void @sgeqrf_(ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %208, ptr noundef nonnull %8, ptr noundef nonnull %24, ptr noundef nonnull %211, ptr noundef nonnull %30, ptr noundef nonnull %34) #6
  %212 = load i32, ptr %25, align 4, !tbaa !5
  %213 = sub i32 %212, %197
  store i32 %213, ptr %30, align 4, !tbaa !5
  %214 = load i32, ptr %16, align 4, !tbaa !5
  %215 = mul i32 %214, %205
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds float, ptr %51, i64 %216
  %218 = add i32 %46, 1
  %219 = mul i32 %214, %218
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds float, ptr %48, i64 %220
  call void @sormqr_(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.15, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %217, ptr noundef nonnull %8, ptr noundef nonnull %24, ptr noundef %221, ptr noundef nonnull %6, ptr noundef nonnull %211, ptr noundef nonnull %30, ptr noundef nonnull %34) #6
  br i1 %67, label %222, label %245

222:                                              ; preds = %202
  call void @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
  %223 = load i32, ptr %37, align 4, !tbaa !5
  %224 = icmp sgt i32 %223, 1
  br i1 %224, label %225, label %237

225:                                              ; preds = %222
  %226 = add nsw i32 %223, -1
  store i32 %226, ptr %30, align 4, !tbaa !5
  store i32 %226, ptr %31, align 4, !tbaa !5
  %227 = load i32, ptr %16, align 4, !tbaa !5
  %228 = add nsw i32 %227, 1
  %229 = mul nsw i32 %227, %49
  %230 = add nsw i32 %228, %229
  %231 = sext i32 %230 to i64
  %232 = getelementptr inbounds float, ptr %51, i64 %231
  %233 = mul nsw i32 %227, %53
  %234 = add nsw i32 %228, %233
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds float, ptr %55, i64 %235
  call void @slacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %232, ptr noundef nonnull %8, ptr noundef %236, ptr noundef nonnull %13) #6
  br label %237

237:                                              ; preds = %225, %222
  %238 = load i32, ptr %25, align 4, !tbaa !5
  %239 = sub i32 %238, %197
  store i32 %239, ptr %30, align 4, !tbaa !5
  %240 = load i32, ptr %16, align 4, !tbaa !5
  %241 = add i32 %53, 1
  %242 = mul i32 %240, %241
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds float, ptr %55, i64 %243
  call void @sorgqr_(ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %244, ptr noundef nonnull %13, ptr noundef nonnull %24, ptr noundef nonnull %211, ptr noundef nonnull %30, ptr noundef nonnull %34) #6
  br label %245

245:                                              ; preds = %237, %202
  br i1 %73, label %246, label %247

246:                                              ; preds = %245
  call void @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 %247

247:                                              ; preds = %246, %245
  br i1 %or.cond13.not, label %248, label %249

248:                                              ; preds = %247
  call void @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 %34) #6
  br label %257

249:                                              ; preds = %247
  %250 = load i32, ptr %16, align 4, !tbaa !5
  %251 = mul i32 %250, %218
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds float, ptr %48, i64 %252
  %254 = mul i32 %250, %205
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds float, ptr %51, i64 %255
  call void @sgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %253, ptr noundef nonnull %6, ptr noundef %256, ptr noundef nonnull %8, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %34) #6
  br label %257

257:                                              ; preds = %249, %248
  %.675 = phi i8 [ 69, %249 ], [ 83, %248 ]
  store i8 %.675, ptr %41, align 1, !tbaa !11
  call void @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 %34) #6
  %258 = load i32, ptr %34, align 4, !tbaa !5
  %.not653 = icmp eq i32 %258, 0
  br i1 %.not653, label %268, label %259

259:                                              ; preds = %257
  %260 = icmp slt i32 %258, 1
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  %.not669 = icmp sgt i32 %258, %.pre
  %or.cond870 = select i1 %260, i1 true, i1 %.not669
  br i1 %or.cond870, label %261, label %.loopexit711.sink.split

261:                                              ; preds = %259
  %262 = icmp sle i32 %258, %.pre
  %263 = shl i32 %.pre, 1
  %.not670 = icmp sgt i32 %258, %263
  %or.cond676 = or i1 %262, %.not670
  br i1 %or.cond676, label %266, label %264

264:                                              ; preds = %261
  %265 = sub nsw i32 %258, %.pre
  br label %.loopexit711.sink.split

266:                                              ; preds = %261
  %267 = add nsw i32 %.pre, 1
  br label %.loopexit711.sink.split

268:                                              ; preds = %257
  br i1 %or.cond13.not, label %269, label %.loopexit717

269:                                              ; preds = %268
  br i1 %75, label %270, label %280

270:                                              ; preds = %269
  br i1 %67, label %271, label %274

271:                                              ; preds = %270
  br i1 %73, label %272, label %273

272:                                              ; preds = %271
  store i8 66, ptr %41, align 1, !tbaa !11
  br label %275

273:                                              ; preds = %271
  store i8 76, ptr %41, align 1, !tbaa !11
  br label %275

274:                                              ; preds = %270
  store i8 82, ptr %41, align 1, !tbaa !11
  br label %275

275:                                              ; preds = %272, %273, %274
  call void @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 %38, ptr noundef nonnull %24, ptr noundef nonnull %34) #6
  %276 = load i32, ptr %34, align 4, !tbaa !5
  %.not654 = icmp eq i32 %276, 0
  br i1 %.not654, label %280, label %277

277:                                              ; preds = %275
  %278 = load i32, ptr %4, align 4, !tbaa !5
  %279 = add nsw i32 %278, 2
  br label %.loopexit711.sink.split

280:                                              ; preds = %275, %269
  br i1 %198, label %281, label %.loopexit717

281:                                              ; preds = %280
  %282 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %282, ptr %30, align 4, !tbaa !5
  %.not655720 = icmp slt i32 %282, 1
  br i1 %.not655720, label %.loopexit717, label %.lr.ph724

.lr.ph724:                                        ; preds = %281
  %or.cond21 = select i1 %95, i1 true, i1 %96
  %283 = sext i32 %46 to i64
  %invariant.gep = getelementptr i8, ptr %48, i64 4
  br label %284

284:                                              ; preds = %.lr.ph724, %324
  %285 = phi i32 [ %282, %.lr.ph724 ], [ %325, %324 ]
  %indvars.iv = phi i64 [ 1, %.lr.ph724 ], [ %indvars.iv.next, %324 ]
  %.0613721 = phi i32 [ 0, %.lr.ph724 ], [ %.2615, %324 ]
  %.not656 = icmp eq i32 %.0613721, 0
  br i1 %.not656, label %286, label %324

286:                                              ; preds = %284
  store i32 1, ptr %39, align 4, !tbaa !5
  %287 = load i32, ptr %4, align 4, !tbaa !5
  %288 = sext i32 %287 to i64
  %289 = icmp slt i64 %indvars.iv, %288
  br i1 %289, label %290, label %296

290:                                              ; preds = %286
  %291 = mul nsw i64 %indvars.iv, %283
  %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv
  %292 = getelementptr float, ptr %gep, i64 %291
  %293 = load float, ptr %292, align 4, !tbaa !9
  %294 = fcmp une float %293, 0.000000e+00
  br i1 %294, label %295, label %296

295:                                              ; preds = %290
  store i32 2, ptr %39, align 4, !tbaa !5
  br label %296

296:                                              ; preds = %290, %295, %286
  %switch = phi i1 [ false, %295 ], [ true, %290 ], [ true, %286 ]
  %297 = phi i32 [ 2, %295 ], [ 1, %290 ], [ 1, %286 ]
  %.1614 = phi i32 [ 1, %295 ], [ 0, %290 ], [ 0, %286 ]
  store i32 %287, ptr %31, align 4, !tbaa !5
  %.not657718 = icmp slt i32 %287, 1
  br i1 %.not657718, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %296
  %298 = zext nneg i32 %287 to i64
  %299 = shl nuw nsw i64 %298, 2
  call void @llvm.memset.p0.i64(ptr align 4 %27, i8 0, i64 %299, i1 false), !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.preheader, %296
  %300 = getelementptr inbounds i32, ptr %62, i64 %indvars.iv
  store i32 1, ptr %300, align 4, !tbaa !5
  br i1 %switch, label %303, label %301

301:                                              ; preds = %._crit_edge
  %302 = getelementptr inbounds i8, ptr %300, i64 4
  store i32 1, ptr %302, align 4, !tbaa !5
  br label %303

303:                                              ; preds = %._crit_edge, %301
  %304 = load i32, ptr %4, align 4, !tbaa !5
  %305 = mul nsw i32 %304, %297
  %306 = add nsw i32 %305, 1
  %307 = add nsw i32 %306, %305
  %308 = sext i32 %306 to i64
  br i1 %or.cond21, label %309, label %._crit_edge835

._crit_edge835:                                   ; preds = %303
  %.pre837 = sext i32 %307 to i64
  br label %317

309:                                              ; preds = %303
  %310 = getelementptr inbounds float, ptr %61, i64 %308
  %311 = sext i32 %307 to i64
  %312 = getelementptr inbounds float, ptr %61, i64 %311
  call void @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 nonnull %24, ptr noundef nonnull %4, ptr noundef nonnull %310, ptr noundef nonnull %4, ptr noundef nonnull %39, ptr noundef nonnull %35, ptr noundef nonnull %312, ptr noundef nonnull %34) #6
  %313 = load i32, ptr %34, align 4, !tbaa !5
  %.not658 = icmp eq i32 %313, 0
  br i1 %.not658, label %317, label %314

314:                                              ; preds = %309
  %315 = load i32, ptr %4, align 4, !tbaa !5
  %316 = add nsw i32 %315, 2
  br label %.loopexit711.sink.split

317:                                              ; preds = %._crit_edge835, %309
  %.pre-phi838 = phi i64 [ %.pre837, %._crit_edge835 ], [ %311, %309 ]
  %318 = load i32, ptr %25, align 4, !tbaa !5
  %reass.sub772 = sub i32 %318, %307
  %319 = add i32 %reass.sub772, 1
  store i32 %319, ptr %31, align 4, !tbaa !5
  %320 = getelementptr inbounds float, ptr %61, i64 %308
  %321 = getelementptr inbounds float, ptr %59, i64 %indvars.iv
  %322 = getelementptr inbounds float, ptr %60, i64 %indvars.iv
  %323 = getelementptr inbounds float, ptr %61, i64 %.pre-phi838
  call void @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 nonnull %24, ptr noundef nonnull %4, ptr noundef nonnull %320, ptr noundef nonnull %4, ptr noundef nonnull %321, ptr noundef nonnull %322, ptr noundef nonnull %39, ptr noundef nonnull %35, ptr noundef nonnull %323, ptr noundef nonnull %31, ptr noundef %26, ptr noundef nonnull %34) #6
  %.pre830 = load i32, ptr %30, align 4, !tbaa !5
  br label %324

324:                                              ; preds = %284, %317
  %325 = phi i32 [ %.pre830, %317 ], [ %285, %284 ]
  %.2615 = phi i32 [ %.1614, %317 ], [ 0, %284 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %326 = sext i32 %325 to i64
  %.not655.not = icmp slt i64 %indvars.iv, %326
  br i1 %.not655.not, label %284, label %.loopexit717, !llvm.loop !12

.loopexit717:                                     ; preds = %324, %281, %280, %268
  br i1 %67, label %327, label %.loopexit716

327:                                              ; preds = %.loopexit717
  call void @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 %34) #6
  %328 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %328, ptr %30, align 4, !tbaa !5
  %.not659744 = icmp slt i32 %328, 1
  br i1 %.not659744, label %.loopexit716, label %.lr.ph747

.lr.ph747:                                        ; preds = %327
  %329 = load float, ptr %45, align 4
  %330 = add nuw i32 %328, 1
  %331 = sext i32 %53 to i64
  %wide.trip.count803 = zext i32 %330 to i64
  %332 = zext nneg i32 %328 to i64
  %333 = shl nsw i64 %331, 2
  %334 = shl nsw i64 %54, 2
  %335 = getelementptr i8, ptr %12, i64 %333
  %336 = getelementptr i8, ptr %335, i64 %334
  %scevgep = getelementptr i8, ptr %336, i64 4
  %337 = shl nuw nsw i64 %wide.trip.count803, 2
  %338 = add nsw i64 %337, -4
  %339 = mul i64 %338, %331
  %340 = getelementptr i8, ptr %12, i64 %339
  %341 = getelementptr i8, ptr %340, i64 %334
  %scevgep883 = getelementptr i8, ptr %341, i64 %337
  %342 = shl nsw i64 %331, 3
  %343 = getelementptr i8, ptr %12, i64 %342
  %344 = getelementptr i8, ptr %343, i64 %334
  %scevgep884 = getelementptr i8, ptr %344, i64 4
  %345 = add nsw i64 %333, 4
  %346 = mul i64 %345, %wide.trip.count803
  %347 = getelementptr i8, ptr %12, i64 %346
  %scevgep885 = getelementptr i8, ptr %347, i64 %334
  %348 = zext nneg i32 %328 to i64
  %349 = zext nneg i32 %328 to i64
  %350 = zext nneg i32 %328 to i64
  %xtraiter = and i64 %349, 1
  %351 = icmp eq i32 %330, 2
  %unroll_iter = and i64 %349, 2147483646
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %min.iters.check889 = icmp ult i32 %328, 8
  %bound0 = icmp ult ptr %scevgep, %scevgep885
  %bound1 = icmp ult ptr %scevgep884, %scevgep883
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i32 %53, 0
  %352 = or i1 %found.conflict, %stride.check
  %n.vec892 = and i64 %348, 2147483640
  %ind.end893 = or disjoint i64 %n.vec892, 1
  %cmp.n905 = icmp eq i64 %n.vec892, %348
  %353 = and i32 %328, 1
  %lcmp.mod961.not = icmp eq i32 %353, 0
  %min.iters.check = icmp ult i32 %328, 8
  %n.vec = and i64 %332, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %n.vec, %332
  br label %354

354:                                              ; preds = %.lr.ph747, %.loopexit712
  %indvars.iv800 = phi i64 [ 1, %.lr.ph747 ], [ %indvars.iv.next801, %.loopexit712 ]
  %355 = getelementptr inbounds float, ptr %52, i64 %indvars.iv800
  %356 = load float, ptr %355, align 4, !tbaa !9
  %357 = fcmp olt float %356, 0.000000e+00
  br i1 %357, label %.loopexit712, label %358

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

.lr.ph734:                                        ; preds = %358
  %invariant.gep850 = getelementptr float, ptr %55, i64 %360
  br i1 %351, label %.loopexit714.loopexit.unr-lcssa, label %.lr.ph734.new

.lr.ph734.new:                                    ; preds = %.lr.ph734
  %invariant.gep973 = getelementptr i8, ptr %invariant.gep850, i64 4
  br label %361

361:                                              ; preds = %361, %.lr.ph734.new
  %indvars.iv785 = phi i64 [ 1, %.lr.ph734.new ], [ %indvars.iv.next786.1, %361 ]
  %.0607731 = phi float [ 0.000000e+00, %.lr.ph734.new ], [ %373, %361 ]
  %niter = phi i64 [ 0, %.lr.ph734.new ], [ %niter.next.1, %361 ]
  %gep851 = getelementptr float, ptr %invariant.gep850, i64 %indvars.iv785
  %362 = load float, ptr %gep851, align 4, !tbaa !9
  %363 = fcmp oge float %362, 0.000000e+00
  %364 = fneg float %362
  %365 = select i1 %363, float %362, float %364
  %366 = fcmp oge float %.0607731, %365
  %367 = select i1 %366, float %.0607731, float %365
  %gep974 = getelementptr float, ptr %invariant.gep973, i64 %indvars.iv785
  %368 = load float, ptr %gep974, align 4, !tbaa !9
  %369 = fcmp oge float %368, 0.000000e+00
  %370 = fneg float %368
  %371 = select i1 %369, float %368, float %370
  %372 = fcmp oge float %367, %371
  %373 = select i1 %372, float %367, float %371
  %indvars.iv.next786.1 = add nuw nsw i64 %indvars.iv785, 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 %.loopexit714.loopexit.unr-lcssa, label %361, !llvm.loop !14

.lr.ph729:                                        ; preds = %358
  %374 = add nuw nsw i64 %indvars.iv800, 1
  %375 = mul nsw i64 %374, %331
  %invariant.gep846 = getelementptr float, ptr %55, i64 %360
  %invariant.gep848 = getelementptr float, ptr %55, i64 %375
  br label %376

376:                                              ; preds = %.lr.ph729, %376
  %indvars.iv782 = phi i64 [ 1, %.lr.ph729 ], [ %indvars.iv.next783, %376 ]
  %.1608726 = phi float [ 0.000000e+00, %.lr.ph729 ], [ %387, %376 ]
  %gep847 = getelementptr float, ptr %invariant.gep846, i64 %indvars.iv782
  %377 = load float, ptr %gep847, align 4, !tbaa !9
  %378 = fcmp oge float %377, 0.000000e+00
  %379 = fneg float %377
  %380 = select i1 %378, float %377, float %379
  %gep849 = getelementptr float, ptr %invariant.gep848, i64 %indvars.iv782
  %381 = load float, ptr %gep849, align 4, !tbaa !9
  %382 = fcmp oge float %381, 0.000000e+00
  %383 = fneg float %381
  %384 = select i1 %382, float %381, float %383
  %385 = fadd float %380, %384
  %386 = fcmp oge float %.1608726, %385
  %387 = select i1 %386, float %.1608726, float %385
  %indvars.iv.next783 = add nuw nsw i64 %indvars.iv782, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next783, %wide.trip.count803
  br i1 %exitcond.not, label %.loopexit714, label %376, !llvm.loop !15

.loopexit714.loopexit.unr-lcssa:                  ; preds = %361, %.lr.ph734
  %.lcssa958.ph = phi float [ poison, %.lr.ph734 ], [ %373, %361 ]
  %indvars.iv785.unr = phi i64 [ 1, %.lr.ph734 ], [ %indvars.iv.next786.1, %361 ]
  %.0607731.unr = phi float [ 0.000000e+00, %.lr.ph734 ], [ %373, %361 ]
  br i1 %lcmp.mod.not, label %.loopexit714, label %.loopexit714.loopexit.epilog-lcssa

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

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

395:                                              ; preds = %.loopexit714
  %396 = fdiv float 1.000000e+00, %.2609
  store i32 %328, ptr %31, align 4, !tbaa !5
  %397 = mul nsw i64 %indvars.iv800, %331
  br i1 %359, label %.lr.ph743, label %.lr.ph739

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

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

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

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv795 = phi i64 [ %indvars.iv.next796, %scalar.ph ], [ %indvars.iv795.ph, %scalar.ph.preheader ]
  %gep857 = getelementptr float, ptr %invariant.gep856, i64 %indvars.iv795
  %403 = load float, ptr %gep857, align 4, !tbaa !9
  %404 = fmul float %396, %403
  store float %404, ptr %gep857, align 4, !tbaa !9
  %indvars.iv.next796 = add nuw nsw i64 %indvars.iv795, 1
  %exitcond799.not = icmp eq i64 %indvars.iv.next796, %wide.trip.count803
  br i1 %exitcond799.not, label %.loopexit712, label %scalar.ph, !llvm.loop !19

.lr.ph739:                                        ; preds = %395
  %405 = add nuw nsw i64 %indvars.iv800, 1
  %406 = mul nsw i64 %405, %331
  %invariant.gep852 = getelementptr float, ptr %55, i64 %397
  %invariant.gep854 = getelementptr float, ptr %55, i64 %406
  %brmerge977 = select i1 %min.iters.check889, i1 true, i1 %352
  br i1 %brmerge977, label %scalar.ph888.preheader, label %vector.ph890

vector.ph890:                                     ; preds = %.lr.ph739
  %broadcast.splatinsert900 = insertelement <4 x float> poison, float %396, i64 0
  %broadcast.splat901 = shufflevector <4 x float> %broadcast.splatinsert900, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body895

vector.body895:                                   ; preds = %vector.body895, %vector.ph890
  %index896 = phi i64 [ 0, %vector.ph890 ], [ %index.next904, %vector.body895 ]
  %offset.idx897 = or disjoint i64 %index896, 1
  %407 = getelementptr float, ptr %invariant.gep852, i64 %offset.idx897
  %408 = getelementptr i8, ptr %407, i64 16
  %wide.load898 = load <4 x float>, ptr %407, align 4, !tbaa !9, !alias.scope !20, !noalias !23
  %wide.load899 = load <4 x float>, ptr %408, align 4, !tbaa !9, !alias.scope !20, !noalias !23
  %409 = fmul <4 x float> %broadcast.splat901, %wide.load898
  %410 = fmul <4 x float> %broadcast.splat901, %wide.load899
  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 %invariant.gep854, i64 %offset.idx897
  %412 = getelementptr i8, ptr %411, i64 16
  %wide.load902 = load <4 x float>, ptr %411, align 4, !tbaa !9, !alias.scope !23
  %wide.load903 = load <4 x float>, ptr %412, align 4, !tbaa !9, !alias.scope !23
  %413 = fmul <4 x float> %broadcast.splat901, %wide.load902
  %414 = fmul <4 x float> %broadcast.splat901, %wide.load903
  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.next904 = add nuw i64 %index896, 8
  %415 = icmp eq i64 %index.next904, %n.vec892
  br i1 %415, label %middle.block887, label %vector.body895, !llvm.loop !25

middle.block887:                                  ; preds = %vector.body895
  br i1 %cmp.n905, label %.loopexit712, label %scalar.ph888.preheader

scalar.ph888.preheader:                           ; preds = %.lr.ph739, %middle.block887
  %indvars.iv790.ph = phi i64 [ 1, %.lr.ph739 ], [ %ind.end893, %middle.block887 ]
  br i1 %lcmp.mod961.not, label %scalar.ph888.prol.loopexit, label %scalar.ph888.prol

scalar.ph888.prol:                                ; preds = %scalar.ph888.preheader
  %gep853.prol = getelementptr float, ptr %invariant.gep852, i64 %indvars.iv790.ph
  %416 = load float, ptr %gep853.prol, align 4, !tbaa !9
  %417 = fmul float %396, %416
  store float %417, ptr %gep853.prol, align 4, !tbaa !9
  %gep855.prol = getelementptr float, ptr %invariant.gep854, i64 %indvars.iv790.ph
  %418 = load float, ptr %gep855.prol, align 4, !tbaa !9
  %419 = fmul float %396, %418
  store float %419, ptr %gep855.prol, align 4, !tbaa !9
  %indvars.iv.next791.prol = add nuw nsw i64 %indvars.iv790.ph, 1
  br label %scalar.ph888.prol.loopexit

scalar.ph888.prol.loopexit:                       ; preds = %scalar.ph888.prol, %scalar.ph888.preheader
  %indvars.iv790.unr = phi i64 [ %indvars.iv790.ph, %scalar.ph888.preheader ], [ %indvars.iv.next791.prol, %scalar.ph888.prol ]
  %420 = icmp eq i64 %indvars.iv790.ph, %350
  br i1 %420, label %.loopexit712, label %scalar.ph888

scalar.ph888:                                     ; preds = %scalar.ph888.prol.loopexit, %scalar.ph888
  %indvars.iv790 = phi i64 [ %indvars.iv.next791.1, %scalar.ph888 ], [ %indvars.iv790.unr, %scalar.ph888.prol.loopexit ]
  %gep853 = getelementptr float, ptr %invariant.gep852, i64 %indvars.iv790
  %421 = load float, ptr %gep853, align 4, !tbaa !9
  %422 = fmul float %396, %421
  store float %422, ptr %gep853, align 4, !tbaa !9
  %gep855 = getelementptr float, ptr %invariant.gep854, i64 %indvars.iv790
  %423 = load float, ptr %gep855, align 4, !tbaa !9
  %424 = fmul float %396, %423
  store float %424, ptr %gep855, align 4, !tbaa !9
  %indvars.iv.next791 = add nuw nsw i64 %indvars.iv790, 1
  %gep853.1 = getelementptr float, ptr %invariant.gep852, i64 %indvars.iv.next791
  %425 = load float, ptr %gep853.1, align 4, !tbaa !9
  %426 = fmul float %396, %425
  store float %426, ptr %gep853.1, align 4, !tbaa !9
  %gep855.1 = getelementptr float, ptr %invariant.gep854, i64 %indvars.iv.next791
  %427 = load float, ptr %gep855.1, align 4, !tbaa !9
  %428 = fmul float %396, %427
  store float %428, ptr %gep855.1, align 4, !tbaa !9
  %indvars.iv.next791.1 = add nuw nsw i64 %indvars.iv790, 2
  %exitcond794.not.1 = icmp eq i64 %indvars.iv.next791.1, %wide.trip.count803
  br i1 %exitcond794.not.1, label %.loopexit712, label %scalar.ph888, !llvm.loop !26

.loopexit712:                                     ; preds = %scalar.ph888.prol.loopexit, %scalar.ph888, %scalar.ph, %middle.block887, %middle.block, %354, %.loopexit714
  %indvars.iv.next801 = add nuw nsw i64 %indvars.iv800, 1
  %exitcond804.not = icmp eq i64 %indvars.iv.next801, %wide.trip.count803
  br i1 %exitcond804.not, label %.loopexit716, label %354, !llvm.loop !27

.loopexit716:                                     ; preds = %.loopexit712, %327, %.loopexit717
  br i1 %73, label %429, label %.loopexit711

429:                                              ; preds = %.loopexit716
  call void @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 %34) #6
  %430 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %430, ptr %30, align 4, !tbaa !5
  %.not660768 = icmp slt i32 %430, 1
  br i1 %.not660768, label %.loopexit711, label %.lr.ph771

.lr.ph771:                                        ; preds = %429
  %431 = load float, ptr %45, align 4
  %432 = add nuw i32 %430, 1
  %433 = sext i32 %56 to i64
  %wide.trip.count828 = zext i32 %432 to i64
  %434 = zext nneg i32 %430 to i64
  %435 = shl nsw i64 %433, 2
  %436 = shl nsw i64 %57, 2
  %437 = getelementptr i8, ptr %14, i64 %435
  %438 = getelementptr i8, ptr %437, i64 %436
  %scevgep924 = getelementptr i8, ptr %438, i64 4
  %439 = shl nuw nsw i64 %wide.trip.count828, 2
  %440 = add nsw i64 %439, -4
  %441 = mul i64 %440, %433
  %442 = getelementptr i8, ptr %14, i64 %441
  %443 = getelementptr i8, ptr %442, i64 %436
  %scevgep925 = getelementptr i8, ptr %443, i64 %439
  %444 = shl nsw i64 %433, 3
  %445 = getelementptr i8, ptr %14, i64 %444
  %446 = getelementptr i8, ptr %445, i64 %436
  %scevgep926 = getelementptr i8, ptr %446, i64 4
  %447 = add nsw i64 %435, 4
  %448 = mul i64 %447, %wide.trip.count828
  %449 = getelementptr i8, ptr %14, i64 %448
  %scevgep927 = getelementptr i8, ptr %449, i64 %436
  %450 = zext nneg i32 %430 to i64
  %451 = zext nneg i32 %430 to i64
  %452 = zext nneg i32 %430 to i64
  %xtraiter963 = and i64 %451, 1
  %453 = icmp eq i32 %432, 2
  %unroll_iter966 = and i64 %451, 2147483646
  %lcmp.mod964.not = icmp eq i64 %xtraiter963, 0
  %min.iters.check935 = icmp ult i32 %430, 8
  %bound0928 = icmp ult ptr %scevgep924, %scevgep927
  %bound1929 = icmp ult ptr %scevgep926, %scevgep925
  %found.conflict930 = and i1 %bound0928, %bound1929
  %stride.check931 = icmp slt i32 %56, 0
  %454 = or i1 %found.conflict930, %stride.check931
  %n.vec938 = and i64 %450, 2147483640
  %ind.end939 = or disjoint i64 %n.vec938, 1
  %cmp.n951 = icmp eq i64 %n.vec938, %450
  %455 = and i32 %430, 1
  %lcmp.mod969.not = icmp eq i32 %455, 0
  %min.iters.check908 = icmp ult i32 %430, 8
  %n.vec911 = and i64 %434, 2147483640
  %ind.end912 = or disjoint i64 %n.vec911, 1
  %cmp.n922 = icmp eq i64 %n.vec911, %434
  br label %456

456:                                              ; preds = %.lr.ph771, %.loopexit
  %indvars.iv825 = phi i64 [ 1, %.lr.ph771 ], [ %indvars.iv.next826, %.loopexit ]
  %457 = getelementptr inbounds float, ptr %52, i64 %indvars.iv825
  %458 = load float, ptr %457, align 4, !tbaa !9
  %459 = fcmp olt float %458, 0.000000e+00
  br i1 %459, label %.loopexit, label %460

460:                                              ; preds = %456
  %461 = fcmp oeq float %458, 0.000000e+00
  store i32 %430, ptr %31, align 4, !tbaa !5
  %462 = mul nsw i64 %indvars.iv825, %433
  br i1 %461, label %.lr.ph758, label %.lr.ph752

.lr.ph758:                                        ; preds = %460
  %invariant.gep862 = getelementptr float, ptr %58, i64 %462
  br i1 %453, label %.loopexit709.loopexit.unr-lcssa, label %.lr.ph758.new

.lr.ph758.new:                                    ; preds = %.lr.ph758
  %invariant.gep975 = getelementptr i8, ptr %invariant.gep862, i64 4
  br label %463

463:                                              ; preds = %463, %.lr.ph758.new
  %indvars.iv810 = phi i64 [ 1, %.lr.ph758.new ], [ %indvars.iv.next811.1, %463 ]
  %.3610755 = phi float [ 0.000000e+00, %.lr.ph758.new ], [ %475, %463 ]
  %niter967 = phi i64 [ 0, %.lr.ph758.new ], [ %niter967.next.1, %463 ]
  %gep863 = getelementptr float, ptr %invariant.gep862, i64 %indvars.iv810
  %464 = load float, ptr %gep863, align 4, !tbaa !9
  %465 = fcmp oge float %464, 0.000000e+00
  %466 = fneg float %464
  %467 = select i1 %465, float %464, float %466
  %468 = fcmp oge float %.3610755, %467
  %469 = select i1 %468, float %.3610755, float %467
  %gep976 = getelementptr float, ptr %invariant.gep975, i64 %indvars.iv810
  %470 = load float, ptr %gep976, align 4, !tbaa !9
  %471 = fcmp oge float %470, 0.000000e+00
  %472 = fneg float %470
  %473 = select i1 %471, float %470, float %472
  %474 = fcmp oge float %469, %473
  %475 = select i1 %474, float %469, float %473
  %indvars.iv.next811.1 = add nuw nsw i64 %indvars.iv810, 2
  %niter967.next.1 = add i64 %niter967, 2
  %niter967.ncmp.1 = icmp eq i64 %niter967.next.1, %unroll_iter966
  br i1 %niter967.ncmp.1, label %.loopexit709.loopexit.unr-lcssa, label %463, !llvm.loop !28

.lr.ph752:                                        ; preds = %460
  %476 = add nuw nsw i64 %indvars.iv825, 1
  %477 = mul nsw i64 %476, %433
  %invariant.gep858 = getelementptr float, ptr %58, i64 %462
  %invariant.gep860 = getelementptr float, ptr %58, i64 %477
  br label %478

478:                                              ; preds = %.lr.ph752, %478
  %indvars.iv805 = phi i64 [ 1, %.lr.ph752 ], [ %indvars.iv.next806, %478 ]
  %.4611749 = phi float [ 0.000000e+00, %.lr.ph752 ], [ %489, %478 ]
  %gep859 = getelementptr float, ptr %invariant.gep858, i64 %indvars.iv805
  %479 = load float, ptr %gep859, align 4, !tbaa !9
  %480 = fcmp oge float %479, 0.000000e+00
  %481 = fneg float %479
  %482 = select i1 %480, float %479, float %481
  %gep861 = getelementptr float, ptr %invariant.gep860, i64 %indvars.iv805
  %483 = load float, ptr %gep861, align 4, !tbaa !9
  %484 = fcmp oge float %483, 0.000000e+00
  %485 = fneg float %483
  %486 = select i1 %484, float %483, float %485
  %487 = fadd float %482, %486
  %488 = fcmp oge float %.4611749, %487
  %489 = select i1 %488, float %.4611749, float %487
  %indvars.iv.next806 = add nuw nsw i64 %indvars.iv805, 1
  %exitcond809.not = icmp eq i64 %indvars.iv.next806, %wide.trip.count828
  br i1 %exitcond809.not, label %.loopexit709, label %478, !llvm.loop !29

.loopexit709.loopexit.unr-lcssa:                  ; preds = %463, %.lr.ph758
  %.lcssa954.ph = phi float [ poison, %.lr.ph758 ], [ %475, %463 ]
  %indvars.iv810.unr = phi i64 [ 1, %.lr.ph758 ], [ %indvars.iv.next811.1, %463 ]
  %.3610755.unr = phi float [ 0.000000e+00, %.lr.ph758 ], [ %475, %463 ]
  br i1 %lcmp.mod964.not, label %.loopexit709, label %.loopexit709.loopexit.epilog-lcssa

.loopexit709.loopexit.epilog-lcssa:               ; preds = %.loopexit709.loopexit.unr-lcssa
  %gep863.epil = getelementptr float, ptr %invariant.gep862, i64 %indvars.iv810.unr
  %490 = load float, ptr %gep863.epil, align 4, !tbaa !9
  %491 = fcmp oge float %490, 0.000000e+00
  %492 = fneg float %490
  %493 = select i1 %491, float %490, float %492
  %494 = fcmp oge float %.3610755.unr, %493
  %495 = select i1 %494, float %.3610755.unr, float %493
  br label %.loopexit709

.loopexit709:                                     ; preds = %478, %.loopexit709.loopexit.epilog-lcssa, %.loopexit709.loopexit.unr-lcssa
  %.5612 = phi float [ %.lcssa954.ph, %.loopexit709.loopexit.unr-lcssa ], [ %495, %.loopexit709.loopexit.epilog-lcssa ], [ %489, %478 ]
  %496 = fcmp olt float %.5612, %431
  br i1 %496, label %.loopexit, label %497

497:                                              ; preds = %.loopexit709
  %498 = fdiv float 1.000000e+00, %.5612
  store i32 %430, ptr %31, align 4, !tbaa !5
  %499 = mul nsw i64 %indvars.iv825, %433
  br i1 %461, label %.lr.ph767, label %.lr.ph763

.lr.ph767:                                        ; preds = %497
  %invariant.gep868 = getelementptr float, ptr %58, i64 %499
  br i1 %min.iters.check908, label %scalar.ph907.preheader, label %vector.ph909

vector.ph909:                                     ; preds = %.lr.ph767
  %broadcast.splatinsert919 = insertelement <4 x float> poison, float %498, i64 0
  %broadcast.splat920 = shufflevector <4 x float> %broadcast.splatinsert919, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body914

vector.body914:                                   ; preds = %vector.body914, %vector.ph909
  %index915 = phi i64 [ 0, %vector.ph909 ], [ %index.next921, %vector.body914 ]
  %offset.idx916 = or disjoint i64 %index915, 1
  %500 = getelementptr float, ptr %invariant.gep868, i64 %offset.idx916
  %501 = getelementptr i8, ptr %500, i64 16
  %wide.load917 = load <4 x float>, ptr %500, align 4, !tbaa !9
  %wide.load918 = load <4 x float>, ptr %501, align 4, !tbaa !9
  %502 = fmul <4 x float> %broadcast.splat920, %wide.load917
  %503 = fmul <4 x float> %broadcast.splat920, %wide.load918
  store <4 x float> %502, ptr %500, align 4, !tbaa !9
  store <4 x float> %503, ptr %501, align 4, !tbaa !9
  %index.next921 = add nuw i64 %index915, 8
  %504 = icmp eq i64 %index.next921, %n.vec911
  br i1 %504, label %middle.block906, label %vector.body914, !llvm.loop !30

middle.block906:                                  ; preds = %vector.body914
  br i1 %cmp.n922, label %.loopexit, label %scalar.ph907.preheader

scalar.ph907.preheader:                           ; preds = %middle.block906, %.lr.ph767
  %indvars.iv820.ph = phi i64 [ 1, %.lr.ph767 ], [ %ind.end912, %middle.block906 ]
  br label %scalar.ph907

scalar.ph907:                                     ; preds = %scalar.ph907.preheader, %scalar.ph907
  %indvars.iv820 = phi i64 [ %indvars.iv.next821, %scalar.ph907 ], [ %indvars.iv820.ph, %scalar.ph907.preheader ]
  %gep869 = getelementptr float, ptr %invariant.gep868, i64 %indvars.iv820
  %505 = load float, ptr %gep869, align 4, !tbaa !9
  %506 = fmul float %498, %505
  store float %506, ptr %gep869, align 4, !tbaa !9
  %indvars.iv.next821 = add nuw nsw i64 %indvars.iv820, 1
  %exitcond824.not = icmp eq i64 %indvars.iv.next821, %wide.trip.count828
  br i1 %exitcond824.not, label %.loopexit, label %scalar.ph907, !llvm.loop !31

.lr.ph763:                                        ; preds = %497
  %507 = add nuw nsw i64 %indvars.iv825, 1
  %508 = mul nsw i64 %507, %433
  %invariant.gep864 = getelementptr float, ptr %58, i64 %499
  %invariant.gep866 = getelementptr float, ptr %58, i64 %508
  %brmerge978 = select i1 %min.iters.check935, i1 true, i1 %454
  br i1 %brmerge978, label %scalar.ph934.preheader, label %vector.ph936

vector.ph936:                                     ; preds = %.lr.ph763
  %broadcast.splatinsert946 = insertelement <4 x float> poison, float %498, i64 0
  %broadcast.splat947 = shufflevector <4 x float> %broadcast.splatinsert946, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body941

vector.body941:                                   ; preds = %vector.body941, %vector.ph936
  %index942 = phi i64 [ 0, %vector.ph936 ], [ %index.next950, %vector.body941 ]
  %offset.idx943 = or disjoint i64 %index942, 1
  %509 = getelementptr float, ptr %invariant.gep864, i64 %offset.idx943
  %510 = getelementptr i8, ptr %509, i64 16
  %wide.load944 = load <4 x float>, ptr %509, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  %wide.load945 = load <4 x float>, ptr %510, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  %511 = fmul <4 x float> %broadcast.splat947, %wide.load944
  %512 = fmul <4 x float> %broadcast.splat947, %wide.load945
  store <4 x float> %511, ptr %509, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  store <4 x float> %512, ptr %510, align 4, !tbaa !9, !alias.scope !32, !noalias !35
  %513 = getelementptr float, ptr %invariant.gep866, i64 %offset.idx943
  %514 = getelementptr i8, ptr %513, i64 16
  %wide.load948 = load <4 x float>, ptr %513, align 4, !tbaa !9, !alias.scope !35
  %wide.load949 = load <4 x float>, ptr %514, align 4, !tbaa !9, !alias.scope !35
  %515 = fmul <4 x float> %broadcast.splat947, %wide.load948
  %516 = fmul <4 x float> %broadcast.splat947, %wide.load949
  store <4 x float> %515, ptr %513, align 4, !tbaa !9, !alias.scope !35
  store <4 x float> %516, ptr %514, align 4, !tbaa !9, !alias.scope !35
  %index.next950 = add nuw i64 %index942, 8
  %517 = icmp eq i64 %index.next950, %n.vec938
  br i1 %517, label %middle.block933, label %vector.body941, !llvm.loop !37

middle.block933:                                  ; preds = %vector.body941
  br i1 %cmp.n951, label %.loopexit, label %scalar.ph934.preheader

scalar.ph934.preheader:                           ; preds = %.lr.ph763, %middle.block933
  %indvars.iv815.ph = phi i64 [ 1, %.lr.ph763 ], [ %ind.end939, %middle.block933 ]
  br i1 %lcmp.mod969.not, label %scalar.ph934.prol.loopexit, label %scalar.ph934.prol

scalar.ph934.prol:                                ; preds = %scalar.ph934.preheader
  %gep865.prol = getelementptr float, ptr %invariant.gep864, i64 %indvars.iv815.ph
  %518 = load float, ptr %gep865.prol, align 4, !tbaa !9
  %519 = fmul float %498, %518
  store float %519, ptr %gep865.prol, align 4, !tbaa !9
  %gep867.prol = getelementptr float, ptr %invariant.gep866, i64 %indvars.iv815.ph
  %520 = load float, ptr %gep867.prol, align 4, !tbaa !9
  %521 = fmul float %498, %520
  store float %521, ptr %gep867.prol, align 4, !tbaa !9
  %indvars.iv.next816.prol = add nuw nsw i64 %indvars.iv815.ph, 1
  br label %scalar.ph934.prol.loopexit

scalar.ph934.prol.loopexit:                       ; preds = %scalar.ph934.prol, %scalar.ph934.preheader
  %indvars.iv815.unr = phi i64 [ %indvars.iv815.ph, %scalar.ph934.preheader ], [ %indvars.iv.next816.prol, %scalar.ph934.prol ]
  %522 = icmp eq i64 %indvars.iv815.ph, %452
  br i1 %522, label %.loopexit, label %scalar.ph934

scalar.ph934:                                     ; preds = %scalar.ph934.prol.loopexit, %scalar.ph934
  %indvars.iv815 = phi i64 [ %indvars.iv.next816.1, %scalar.ph934 ], [ %indvars.iv815.unr, %scalar.ph934.prol.loopexit ]
  %gep865 = getelementptr float, ptr %invariant.gep864, i64 %indvars.iv815
  %523 = load float, ptr %gep865, align 4, !tbaa !9
  %524 = fmul float %498, %523
  store float %524, ptr %gep865, align 4, !tbaa !9
  %gep867 = getelementptr float, ptr %invariant.gep866, i64 %indvars.iv815
  %525 = load float, ptr %gep867, align 4, !tbaa !9
  %526 = fmul float %498, %525
  store float %526, ptr %gep867, align 4, !tbaa !9
  %indvars.iv.next816 = add nuw nsw i64 %indvars.iv815, 1
  %gep865.1 = getelementptr float, ptr %invariant.gep864, i64 %indvars.iv.next816
  %527 = load float, ptr %gep865.1, align 4, !tbaa !9
  %528 = fmul float %498, %527
  store float %528, ptr %gep865.1, align 4, !tbaa !9
  %gep867.1 = getelementptr float, ptr %invariant.gep866, i64 %indvars.iv.next816
  %529 = load float, ptr %gep867.1, align 4, !tbaa !9
  %530 = fmul float %498, %529
  store float %530, ptr %gep867.1, align 4, !tbaa !9
  %indvars.iv.next816.1 = add nuw nsw i64 %indvars.iv815, 2
  %exitcond819.not.1 = icmp eq i64 %indvars.iv.next816.1, %wide.trip.count828
  br i1 %exitcond819.not.1, label %.loopexit, label %scalar.ph934, !llvm.loop !38

.loopexit:                                        ; preds = %scalar.ph934.prol.loopexit, %scalar.ph934, %scalar.ph907, %middle.block933, %middle.block906, %456, %.loopexit709
  %indvars.iv.next826 = add nuw nsw i64 %indvars.iv825, 1
  %exitcond829.not = icmp eq i64 %indvars.iv.next826, %wide.trip.count828
  br i1 %exitcond829.not, label %.loopexit711, label %456, !llvm.loop !39

.loopexit711.sink.split:                          ; preds = %259, %277, %314, %264, %266
  %.sink871 = phi i32 [ %267, %266 ], [ %265, %264 ], [ %316, %314 ], [ %279, %277 ], [ %258, %259 ]
  store i32 %.sink871, ptr %28, align 4, !tbaa !5
  br label %.loopexit711

.loopexit711:                                     ; preds = %.loopexit, %.loopexit711.sink.split, %429, %.loopexit716
  br i1 %.not646688, label %532, label %531

531:                                              ; preds = %.loopexit711
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %4, ptr noundef nonnull %34) #6
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %34) #6
  br label %532

532:                                              ; preds = %531, %.loopexit711
  br i1 %.not648693, label %534, label %533

533:                                              ; preds = %532
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %44, ptr noundef nonnull %33, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %4, ptr noundef nonnull %34) #6
  br label %534

534:                                              ; preds = %533, %532
  store float %147, ptr %24, align 4, !tbaa !9
  br label %535

535:                                              ; preds = %154, %153, %534, %.thread681
  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 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = 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