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

; 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
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b34 = external hidden global float, align 4
@c_b35 = external hidden global float, align 4
@c__0 = external hidden global i32, align 4
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [6 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.26 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [6 x i8], align 1

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

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

149:                                              ; preds = %145, %19
  %150 = phi i1 [ true, %19 ], [ %148, %145 ]
  %151 = zext i1 %150 to i32
  store i32 %151, ptr %73, align 4, !tbaa !9
  %152 = load ptr, ptr %22, align 8, !tbaa !5
  %153 = call i32 @lsame_(ptr noundef %152, ptr noundef @.str.2)
  store i32 %153, ptr %69, align 4, !tbaa !9
  %154 = load ptr, ptr %22, align 8, !tbaa !5
  %155 = call i32 @lsame_(ptr noundef %154, ptr noundef @.str.3)
  %156 = icmp ne i32 %155, 0
  br i1 %156, label %160, label %157

157:                                              ; preds = %149
  %158 = load i32, ptr %69, align 4, !tbaa !9
  %159 = icmp ne i32 %158, 0
  br label %160

160:                                              ; preds = %157, %149
  %161 = phi i1 [ true, %149 ], [ %159, %157 ]
  %162 = zext i1 %161 to i32
  store i32 %162, ptr %75, align 4, !tbaa !9
  %163 = load ptr, ptr %20, align 8, !tbaa !5
  %164 = call i32 @lsame_(ptr noundef %163, ptr noundef @.str.1)
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %170, label %166

166:                                              ; preds = %160
  %167 = load ptr, ptr %20, align 8, !tbaa !5
  %168 = call i32 @lsame_(ptr noundef %167, ptr noundef @.str.4)
  %169 = icmp ne i32 %168, 0
  br label %170

170:                                              ; preds = %166, %160
  %171 = phi i1 [ true, %160 ], [ %169, %166 ]
  %172 = zext i1 %171 to i32
  store i32 %172, ptr %98, align 4, !tbaa !9
  %173 = load ptr, ptr %20, align 8, !tbaa !5
  %174 = call i32 @lsame_(ptr noundef %173, ptr noundef @.str.5)
  store i32 %174, ptr %83, align 4, !tbaa !9
  %175 = load ptr, ptr %20, align 8, !tbaa !5
  %176 = call i32 @lsame_(ptr noundef %175, ptr noundef @.str.6)
  store i32 %176, ptr %77, align 4, !tbaa !9
  %177 = load ptr, ptr %20, align 8, !tbaa !5
  %178 = call i32 @lsame_(ptr noundef %177, ptr noundef @.str.7)
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %184, label %180

180:                                              ; preds = %170
  %181 = load ptr, ptr %20, align 8, !tbaa !5
  %182 = call i32 @lsame_(ptr noundef %181, ptr noundef @.str.4)
  %183 = icmp ne i32 %182, 0
  br label %184

184:                                              ; preds = %180, %170
  %185 = phi i1 [ true, %170 ], [ %183, %180 ]
  %186 = zext i1 %185 to i32
  store i32 %186, ptr %96, align 4, !tbaa !9
  %187 = load ptr, ptr %24, align 8, !tbaa !5
  %188 = call i32 @lsame_(ptr noundef %187, ptr noundef @.str.8)
  store i32 %188, ptr %84, align 4, !tbaa !9
  %189 = load ptr, ptr %23, align 8, !tbaa !5
  %190 = call i32 @lsame_(ptr noundef %189, ptr noundef @.str.5)
  store i32 %190, ptr %82, align 4, !tbaa !9
  %191 = load ptr, ptr %23, align 8, !tbaa !5
  %192 = call i32 @lsame_(ptr noundef %191, ptr noundef @.str.9)
  store i32 %192, ptr %61, align 4, !tbaa !9
  %193 = load ptr, ptr %25, align 8, !tbaa !5
  %194 = call i32 @lsame_(ptr noundef %193, ptr noundef @.str.10)
  store i32 %194, ptr %85, align 4, !tbaa !9
  %195 = load i32, ptr %98, align 4, !tbaa !9
  %196 = icmp ne i32 %195, 0
  br i1 %196, label %212, label %197

197:                                              ; preds = %184
  %198 = load i32, ptr %83, align 4, !tbaa !9
  %199 = icmp ne i32 %198, 0
  br i1 %199, label %212, label %200

200:                                              ; preds = %197
  %201 = load i32, ptr %77, align 4, !tbaa !9
  %202 = icmp ne i32 %201, 0
  br i1 %202, label %212, label %203

203:                                              ; preds = %200
  %204 = load i32, ptr %96, align 4, !tbaa !9
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %212, label %206

206:                                              ; preds = %203
  %207 = load ptr, ptr %20, align 8, !tbaa !5
  %208 = call i32 @lsame_(ptr noundef %207, ptr noundef @.str.11)
  %209 = icmp ne i32 %208, 0
  br i1 %209, label %212, label %210

210:                                              ; preds = %206
  %211 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -1, ptr %211, align 4, !tbaa !9
  br label %590

212:                                              ; preds = %206, %203, %200, %197, %184
  %213 = load i32, ptr %73, align 4, !tbaa !9
  %214 = icmp ne i32 %213, 0
  br i1 %214, label %225, label %215

215:                                              ; preds = %212
  %216 = load ptr, ptr %21, align 8, !tbaa !5
  %217 = call i32 @lsame_(ptr noundef %216, ptr noundef @.str.9)
  %218 = icmp ne i32 %217, 0
  br i1 %218, label %225, label %219

219:                                              ; preds = %215
  %220 = load ptr, ptr %21, align 8, !tbaa !5
  %221 = call i32 @lsame_(ptr noundef %220, ptr noundef @.str.12)
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %225, label %223

223:                                              ; preds = %219
  %224 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -2, ptr %224, align 4, !tbaa !9
  br label %589

225:                                              ; preds = %219, %215, %212
  %226 = load i32, ptr %75, align 4, !tbaa !9
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %236, label %228

228:                                              ; preds = %225
  %229 = load ptr, ptr %22, align 8, !tbaa !5
  %230 = call i32 @lsame_(ptr noundef %229, ptr noundef @.str.9)
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %236, label %232

232:                                              ; preds = %228
  %233 = load ptr, ptr %22, align 8, !tbaa !5
  %234 = call i32 @lsame_(ptr noundef %233, ptr noundef @.str.12)
  %235 = icmp ne i32 %234, 0
  br i1 %235, label %236, label %242

236:                                              ; preds = %232, %228, %225
  %237 = load i32, ptr %69, align 4, !tbaa !9
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %244

239:                                              ; preds = %236
  %240 = load i32, ptr %73, align 4, !tbaa !9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %244, label %242

242:                                              ; preds = %239, %232
  %243 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -3, ptr %243, align 4, !tbaa !9
  br label %588

244:                                              ; preds = %239, %236
  %245 = load i32, ptr %82, align 4, !tbaa !9
  %246 = icmp ne i32 %245, 0
  br i1 %246, label %252, label %247

247:                                              ; preds = %244
  %248 = load i32, ptr %61, align 4, !tbaa !9
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %252, label %250

250:                                              ; preds = %247
  %251 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -4, ptr %251, align 4, !tbaa !9
  br label %587

252:                                              ; preds = %247, %244
  %253 = load i32, ptr %84, align 4, !tbaa !9
  %254 = icmp ne i32 %253, 0
  br i1 %254, label %261, label %255

255:                                              ; preds = %252
  %256 = load ptr, ptr %24, align 8, !tbaa !5
  %257 = call i32 @lsame_(ptr noundef %256, ptr noundef @.str.9)
  %258 = icmp ne i32 %257, 0
  br i1 %258, label %261, label %259

259:                                              ; preds = %255
  %260 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -5, ptr %260, align 4, !tbaa !9
  br label %586

261:                                              ; preds = %255, %252
  %262 = load i32, ptr %85, align 4, !tbaa !9
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %270, label %264

264:                                              ; preds = %261
  %265 = load ptr, ptr %25, align 8, !tbaa !5
  %266 = call i32 @lsame_(ptr noundef %265, ptr noundef @.str.9)
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %270, label %268

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

270:                                              ; preds = %264, %261
  %271 = load ptr, ptr %26, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  %273 = icmp slt i32 %272, 0
  br i1 %273, label %274, label %276

274:                                              ; preds = %270
  %275 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -7, ptr %275, align 4, !tbaa !9
  br label %584

276:                                              ; preds = %270
  %277 = load ptr, ptr %27, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = icmp slt i32 %278, 0
  br i1 %279, label %286, label %280

280:                                              ; preds = %276
  %281 = load ptr, ptr %27, align 8, !tbaa !5
  %282 = load i32, ptr %281, align 4, !tbaa !9
  %283 = load ptr, ptr %26, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  %285 = icmp sgt i32 %282, %284
  br i1 %285, label %286, label %288

286:                                              ; preds = %280, %276
  %287 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -8, ptr %287, align 4, !tbaa !9
  br label %583

288:                                              ; preds = %280
  %289 = load ptr, ptr %29, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = load ptr, ptr %26, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = icmp slt i32 %290, %292
  br i1 %293, label %294, label %296

294:                                              ; preds = %288
  %295 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -10, ptr %295, align 4, !tbaa !9
  br label %582

296:                                              ; preds = %288
  %297 = load i32, ptr %73, align 4, !tbaa !9
  %298 = icmp ne i32 %297, 0
  br i1 %298, label %299, label %307

299:                                              ; preds = %296
  %300 = load ptr, ptr %32, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = load ptr, ptr %26, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = icmp slt i32 %301, %303
  br i1 %304, label %305, label %307

305:                                              ; preds = %299
  %306 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -13, ptr %306, align 4, !tbaa !9
  br label %581

307:                                              ; preds = %299, %296
  %308 = load i32, ptr %75, align 4, !tbaa !9
  %309 = icmp ne i32 %308, 0
  br i1 %309, label %310, label %318

310:                                              ; preds = %307
  %311 = load ptr, ptr %34, align 8, !tbaa !5
  %312 = load i32, ptr %311, align 4, !tbaa !9
  %313 = load ptr, ptr %27, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = icmp slt i32 %312, %314
  br i1 %315, label %316, label %318

316:                                              ; preds = %310
  %317 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -15, ptr %317, align 4, !tbaa !9
  br label %580

318:                                              ; preds = %310, %307
  store i32 7, ptr %45, align 4, !tbaa !9
  %319 = load ptr, ptr %27, align 8, !tbaa !5
  %320 = load i32, ptr %319, align 4, !tbaa !9
  %321 = shl i32 %320, 2
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr %46, align 4, !tbaa !9
  %323 = load i32, ptr %45, align 4, !tbaa !9
  %324 = load i32, ptr %46, align 4, !tbaa !9
  %325 = icmp sge i32 %323, %324
  br i1 %325, label %326, label %328

326:                                              ; preds = %318
  %327 = load i32, ptr %45, align 4, !tbaa !9
  br label %330

328:                                              ; preds = %318
  %329 = load i32, ptr %46, align 4, !tbaa !9
  br label %330

330:                                              ; preds = %328, %326
  %331 = phi i32 [ %327, %326 ], [ %329, %328 ]
  store i32 %331, ptr %45, align 4, !tbaa !9
  %332 = load ptr, ptr %26, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = shl i32 %333, 1
  %335 = load ptr, ptr %27, align 8, !tbaa !5
  %336 = load i32, ptr %335, align 4, !tbaa !9
  %337 = add nsw i32 %334, %336
  store i32 %337, ptr %46, align 4, !tbaa !9
  store i32 7, ptr %47, align 4, !tbaa !9
  %338 = load ptr, ptr %27, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = shl i32 %339, 2
  %341 = load ptr, ptr %27, align 8, !tbaa !5
  %342 = load i32, ptr %341, align 4, !tbaa !9
  %343 = load ptr, ptr %27, align 8, !tbaa !5
  %344 = load i32, ptr %343, align 4, !tbaa !9
  %345 = mul nsw i32 %342, %344
  %346 = add nsw i32 %340, %345
  store i32 %346, ptr %48, align 4, !tbaa !9
  %347 = load i32, ptr %47, align 4, !tbaa !9
  %348 = load i32, ptr %48, align 4, !tbaa !9
  %349 = icmp sge i32 %347, %348
  br i1 %349, label %350, label %352

350:                                              ; preds = %330
  %351 = load i32, ptr %47, align 4, !tbaa !9
  br label %354

352:                                              ; preds = %330
  %353 = load i32, ptr %48, align 4, !tbaa !9
  br label %354

354:                                              ; preds = %352, %350
  %355 = phi i32 [ %351, %350 ], [ %353, %352 ]
  store i32 %355, ptr %47, align 4, !tbaa !9
  %356 = load ptr, ptr %26, align 8, !tbaa !5
  %357 = load i32, ptr %356, align 4, !tbaa !9
  %358 = shl i32 %357, 1
  %359 = load ptr, ptr %27, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = add nsw i32 %358, %360
  store i32 %361, ptr %48, align 4, !tbaa !9
  store i32 7, ptr %49, align 4, !tbaa !9
  %362 = load ptr, ptr %26, align 8, !tbaa !5
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = shl i32 %363, 1
  %365 = load ptr, ptr %27, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = add nsw i32 %364, %366
  store i32 %367, ptr %50, align 4, !tbaa !9
  %368 = load i32, ptr %49, align 4, !tbaa !9
  %369 = load i32, ptr %50, align 4, !tbaa !9
  %370 = icmp sge i32 %368, %369
  br i1 %370, label %371, label %373

371:                                              ; preds = %354
  %372 = load i32, ptr %49, align 4, !tbaa !9
  br label %375

373:                                              ; preds = %354
  %374 = load i32, ptr %50, align 4, !tbaa !9
  br label %375

375:                                              ; preds = %373, %371
  %376 = phi i32 [ %372, %371 ], [ %374, %373 ]
  store i32 %376, ptr %49, align 4, !tbaa !9
  %377 = load ptr, ptr %27, align 8, !tbaa !5
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = shl i32 %378, 2
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr %50, align 4, !tbaa !9
  store i32 7, ptr %51, align 4, !tbaa !9
  %381 = load ptr, ptr %26, align 8, !tbaa !5
  %382 = load i32, ptr %381, align 4, !tbaa !9
  %383 = shl i32 %382, 1
  %384 = load ptr, ptr %27, align 8, !tbaa !5
  %385 = load i32, ptr %384, align 4, !tbaa !9
  %386 = add nsw i32 %383, %385
  store i32 %386, ptr %52, align 4, !tbaa !9
  %387 = load i32, ptr %51, align 4, !tbaa !9
  %388 = load i32, ptr %52, align 4, !tbaa !9
  %389 = icmp sge i32 %387, %388
  br i1 %389, label %390, label %392

390:                                              ; preds = %375
  %391 = load i32, ptr %51, align 4, !tbaa !9
  br label %394

392:                                              ; preds = %375
  %393 = load i32, ptr %52, align 4, !tbaa !9
  br label %394

394:                                              ; preds = %392, %390
  %395 = phi i32 [ %391, %390 ], [ %393, %392 ]
  store i32 %395, ptr %51, align 4, !tbaa !9
  %396 = load ptr, ptr %27, align 8, !tbaa !5
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = shl i32 %397, 2
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr %52, align 4, !tbaa !9
  %400 = load ptr, ptr %26, align 8, !tbaa !5
  %401 = load i32, ptr %400, align 4, !tbaa !9
  %402 = shl i32 %401, 1
  %403 = load ptr, ptr %27, align 8, !tbaa !5
  %404 = load i32, ptr %403, align 4, !tbaa !9
  %405 = add nsw i32 %402, %404
  store i32 %405, ptr %53, align 4, !tbaa !9
  %406 = load ptr, ptr %27, align 8, !tbaa !5
  %407 = load i32, ptr %406, align 4, !tbaa !9
  %408 = mul nsw i32 %407, 6
  %409 = load ptr, ptr %27, align 8, !tbaa !5
  %410 = load i32, ptr %409, align 4, !tbaa !9
  %411 = shl i32 %410, 1
  %412 = load ptr, ptr %27, align 8, !tbaa !5
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = mul nsw i32 %411, %413
  %415 = add nsw i32 %408, %414
  store i32 %415, ptr %54, align 4, !tbaa !9
  %416 = load ptr, ptr %26, align 8, !tbaa !5
  %417 = load i32, ptr %416, align 4, !tbaa !9
  %418 = shl i32 %417, 1
  %419 = load ptr, ptr %27, align 8, !tbaa !5
  %420 = load i32, ptr %419, align 4, !tbaa !9
  %421 = add nsw i32 %418, %420
  store i32 %421, ptr %55, align 4, !tbaa !9
  %422 = load ptr, ptr %27, align 8, !tbaa !5
  %423 = load i32, ptr %422, align 4, !tbaa !9
  %424 = shl i32 %423, 2
  %425 = load ptr, ptr %27, align 8, !tbaa !5
  %426 = load i32, ptr %425, align 4, !tbaa !9
  %427 = load ptr, ptr %27, align 8, !tbaa !5
  %428 = load i32, ptr %427, align 4, !tbaa !9
  %429 = mul nsw i32 %426, %428
  %430 = add nsw i32 %424, %429
  store i32 %430, ptr %56, align 4, !tbaa !9
  %431 = load i32, ptr %55, align 4, !tbaa !9
  %432 = load i32, ptr %56, align 4, !tbaa !9
  %433 = icmp sge i32 %431, %432
  br i1 %433, label %434, label %436

434:                                              ; preds = %394
  %435 = load i32, ptr %55, align 4, !tbaa !9
  br label %438

436:                                              ; preds = %394
  %437 = load i32, ptr %56, align 4, !tbaa !9
  br label %438

438:                                              ; preds = %436, %434
  %439 = phi i32 [ %435, %434 ], [ %437, %436 ]
  store i32 %439, ptr %55, align 4, !tbaa !9
  %440 = load ptr, ptr %27, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = shl i32 %441, 1
  %443 = load ptr, ptr %27, align 8, !tbaa !5
  %444 = load i32, ptr %443, align 4, !tbaa !9
  %445 = load ptr, ptr %27, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = mul nsw i32 %444, %446
  %448 = add nsw i32 %442, %447
  %449 = add nsw i32 %448, 6
  store i32 %449, ptr %56, align 4, !tbaa !9
  %450 = load i32, ptr %73, align 4, !tbaa !9
  %451 = icmp ne i32 %450, 0
  br i1 %451, label %471, label %452

452:                                              ; preds = %438
  %453 = load i32, ptr %75, align 4, !tbaa !9
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %471, label %455

455:                                              ; preds = %452
  %456 = load i32, ptr %96, align 4, !tbaa !9
  %457 = icmp ne i32 %456, 0
  br i1 %457, label %471, label %458

458:                                              ; preds = %455
  %459 = load ptr, ptr %36, align 8, !tbaa !5
  %460 = load i32, ptr %459, align 4, !tbaa !9
  %461 = load i32, ptr %45, align 4, !tbaa !9
  %462 = load i32, ptr %46, align 4, !tbaa !9
  %463 = icmp sge i32 %461, %462
  br i1 %463, label %464, label %466

464:                                              ; preds = %458
  %465 = load i32, ptr %45, align 4, !tbaa !9
  br label %468

466:                                              ; preds = %458
  %467 = load i32, ptr %46, align 4, !tbaa !9
  br label %468

468:                                              ; preds = %466, %464
  %469 = phi i32 [ %465, %464 ], [ %467, %466 ]
  %470 = icmp slt i32 %460, %469
  br i1 %470, label %575, label %471

471:                                              ; preds = %468, %455, %452, %438
  %472 = load i32, ptr %73, align 4, !tbaa !9
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %493, label %474

474:                                              ; preds = %471
  %475 = load i32, ptr %75, align 4, !tbaa !9
  %476 = icmp ne i32 %475, 0
  br i1 %476, label %493, label %477

477:                                              ; preds = %474
  %478 = load i32, ptr %96, align 4, !tbaa !9
  %479 = icmp ne i32 %478, 0
  br i1 %479, label %480, label %493

480:                                              ; preds = %477
  %481 = load ptr, ptr %36, align 8, !tbaa !5
  %482 = load i32, ptr %481, align 4, !tbaa !9
  %483 = load i32, ptr %47, align 4, !tbaa !9
  %484 = load i32, ptr %48, align 4, !tbaa !9
  %485 = icmp sge i32 %483, %484
  br i1 %485, label %486, label %488

486:                                              ; preds = %480
  %487 = load i32, ptr %47, align 4, !tbaa !9
  br label %490

488:                                              ; preds = %480
  %489 = load i32, ptr %48, align 4, !tbaa !9
  br label %490

490:                                              ; preds = %488, %486
  %491 = phi i32 [ %487, %486 ], [ %489, %488 ]
  %492 = icmp slt i32 %482, %491
  br i1 %492, label %575, label %493

493:                                              ; preds = %490, %477, %474, %471
  %494 = load i32, ptr %73, align 4, !tbaa !9
  %495 = icmp ne i32 %494, 0
  br i1 %495, label %496, label %512

496:                                              ; preds = %493
  %497 = load i32, ptr %75, align 4, !tbaa !9
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %512, label %499

499:                                              ; preds = %496
  %500 = load ptr, ptr %36, align 8, !tbaa !5
  %501 = load i32, ptr %500, align 4, !tbaa !9
  %502 = load i32, ptr %49, align 4, !tbaa !9
  %503 = load i32, ptr %50, align 4, !tbaa !9
  %504 = icmp sge i32 %502, %503
  br i1 %504, label %505, label %507

505:                                              ; preds = %499
  %506 = load i32, ptr %49, align 4, !tbaa !9
  br label %509

507:                                              ; preds = %499
  %508 = load i32, ptr %50, align 4, !tbaa !9
  br label %509

509:                                              ; preds = %507, %505
  %510 = phi i32 [ %506, %505 ], [ %508, %507 ]
  %511 = icmp slt i32 %501, %510
  br i1 %511, label %575, label %512

512:                                              ; preds = %509, %496, %493
  %513 = load i32, ptr %75, align 4, !tbaa !9
  %514 = icmp ne i32 %513, 0
  br i1 %514, label %515, label %531

515:                                              ; preds = %512
  %516 = load i32, ptr %73, align 4, !tbaa !9
  %517 = icmp ne i32 %516, 0
  br i1 %517, label %531, label %518

518:                                              ; preds = %515
  %519 = load ptr, ptr %36, align 8, !tbaa !5
  %520 = load i32, ptr %519, align 4, !tbaa !9
  %521 = load i32, ptr %51, align 4, !tbaa !9
  %522 = load i32, ptr %52, align 4, !tbaa !9
  %523 = icmp sge i32 %521, %522
  br i1 %523, label %524, label %526

524:                                              ; preds = %518
  %525 = load i32, ptr %51, align 4, !tbaa !9
  br label %528

526:                                              ; preds = %518
  %527 = load i32, ptr %52, align 4, !tbaa !9
  br label %528

528:                                              ; preds = %526, %524
  %529 = phi i32 [ %525, %524 ], [ %527, %526 ]
  %530 = icmp slt i32 %520, %529
  br i1 %530, label %575, label %531

531:                                              ; preds = %528, %515, %512
  %532 = load i32, ptr %73, align 4, !tbaa !9
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %534, label %553

534:                                              ; preds = %531
  %535 = load i32, ptr %75, align 4, !tbaa !9
  %536 = icmp ne i32 %535, 0
  br i1 %536, label %537, label %553

537:                                              ; preds = %534
  %538 = load i32, ptr %69, align 4, !tbaa !9
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %553, label %540

540:                                              ; preds = %537
  %541 = load ptr, ptr %36, align 8, !tbaa !5
  %542 = load i32, ptr %541, align 4, !tbaa !9
  %543 = load i32, ptr %53, align 4, !tbaa !9
  %544 = load i32, ptr %54, align 4, !tbaa !9
  %545 = icmp sge i32 %543, %544
  br i1 %545, label %546, label %548

546:                                              ; preds = %540
  %547 = load i32, ptr %53, align 4, !tbaa !9
  br label %550

548:                                              ; preds = %540
  %549 = load i32, ptr %54, align 4, !tbaa !9
  br label %550

550:                                              ; preds = %548, %546
  %551 = phi i32 [ %547, %546 ], [ %549, %548 ]
  %552 = icmp slt i32 %542, %551
  br i1 %552, label %575, label %553

553:                                              ; preds = %550, %537, %534, %531
  %554 = load i32, ptr %73, align 4, !tbaa !9
  %555 = icmp ne i32 %554, 0
  br i1 %555, label %556, label %577

556:                                              ; preds = %553
  %557 = load i32, ptr %75, align 4, !tbaa !9
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %577

559:                                              ; preds = %556
  %560 = load i32, ptr %69, align 4, !tbaa !9
  %561 = icmp ne i32 %560, 0
  br i1 %561, label %562, label %577

562:                                              ; preds = %559
  %563 = load ptr, ptr %36, align 8, !tbaa !5
  %564 = load i32, ptr %563, align 4, !tbaa !9
  %565 = load i32, ptr %55, align 4, !tbaa !9
  %566 = load i32, ptr %56, align 4, !tbaa !9
  %567 = icmp sge i32 %565, %566
  br i1 %567, label %568, label %570

568:                                              ; preds = %562
  %569 = load i32, ptr %55, align 4, !tbaa !9
  br label %572

570:                                              ; preds = %562
  %571 = load i32, ptr %56, align 4, !tbaa !9
  br label %572

572:                                              ; preds = %570, %568
  %573 = phi i32 [ %569, %568 ], [ %571, %570 ]
  %574 = icmp slt i32 %564, %573
  br i1 %574, label %575, label %577

575:                                              ; preds = %572, %550, %528, %509, %490, %468
  %576 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -17, ptr %576, align 4, !tbaa !9
  br label %579

577:                                              ; preds = %572, %559, %556, %553
  %578 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 0, ptr %578, align 4, !tbaa !9
  br label %579

579:                                              ; preds = %577, %575
  br label %580

580:                                              ; preds = %579, %316
  br label %581

581:                                              ; preds = %580, %305
  br label %582

582:                                              ; preds = %581, %294
  br label %583

583:                                              ; preds = %582, %286
  br label %584

584:                                              ; preds = %583, %274
  br label %585

585:                                              ; preds = %584, %268
  br label %586

586:                                              ; preds = %585, %259
  br label %587

587:                                              ; preds = %586, %250
  br label %588

588:                                              ; preds = %587, %242
  br label %589

589:                                              ; preds = %588, %223
  br label %590

590:                                              ; preds = %589, %210
  %591 = load ptr, ptr %38, align 8, !tbaa !5
  %592 = load i32, ptr %591, align 4, !tbaa !9
  %593 = icmp ne i32 %592, 0
  br i1 %593, label %594, label %599

594:                                              ; preds = %590
  %595 = load ptr, ptr %38, align 8, !tbaa !5
  %596 = load i32, ptr %595, align 4, !tbaa !9
  %597 = sub nsw i32 0, %596
  store i32 %597, ptr %45, align 4, !tbaa !9
  %598 = call i32 @xerbla_(ptr noundef @.str.13, ptr noundef %45, i32 noundef 6)
  store i32 1, ptr %105, align 4
  br label %7259

599:                                              ; preds = %590
  %600 = load ptr, ptr %26, align 8, !tbaa !5
  %601 = load i32, ptr %600, align 4, !tbaa !9
  %602 = icmp eq i32 %601, 0
  br i1 %602, label %607, label %603

603:                                              ; preds = %599
  %604 = load ptr, ptr %27, align 8, !tbaa !5
  %605 = load i32, ptr %604, align 4, !tbaa !9
  %606 = icmp eq i32 %605, 0
  br i1 %606, label %607, label %628

607:                                              ; preds = %603, %599
  %608 = load ptr, ptr %37, align 8, !tbaa !5
  %609 = getelementptr inbounds i32, ptr %608, i64 1
  store i32 0, ptr %609, align 4, !tbaa !9
  %610 = load ptr, ptr %37, align 8, !tbaa !5
  %611 = getelementptr inbounds i32, ptr %610, i64 2
  store i32 0, ptr %611, align 4, !tbaa !9
  %612 = load ptr, ptr %37, align 8, !tbaa !5
  %613 = getelementptr inbounds i32, ptr %612, i64 3
  store i32 0, ptr %613, align 4, !tbaa !9
  %614 = load ptr, ptr %35, align 8, !tbaa !5
  %615 = getelementptr inbounds float, ptr %614, i64 1
  store float 0.000000e+00, ptr %615, align 4, !tbaa !11
  %616 = load ptr, ptr %35, align 8, !tbaa !5
  %617 = getelementptr inbounds float, ptr %616, i64 2
  store float 0.000000e+00, ptr %617, align 4, !tbaa !11
  %618 = load ptr, ptr %35, align 8, !tbaa !5
  %619 = getelementptr inbounds float, ptr %618, i64 3
  store float 0.000000e+00, ptr %619, align 4, !tbaa !11
  %620 = load ptr, ptr %35, align 8, !tbaa !5
  %621 = getelementptr inbounds float, ptr %620, i64 4
  store float 0.000000e+00, ptr %621, align 4, !tbaa !11
  %622 = load ptr, ptr %35, align 8, !tbaa !5
  %623 = getelementptr inbounds float, ptr %622, i64 5
  store float 0.000000e+00, ptr %623, align 4, !tbaa !11
  %624 = load ptr, ptr %35, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 6
  store float 0.000000e+00, ptr %625, align 4, !tbaa !11
  %626 = load ptr, ptr %35, align 8, !tbaa !5
  %627 = getelementptr inbounds float, ptr %626, i64 7
  store float 0.000000e+00, ptr %627, align 4, !tbaa !11
  store i32 1, ptr %105, align 4
  br label %7259

628:                                              ; preds = %603
  %629 = load i32, ptr %73, align 4, !tbaa !9
  %630 = icmp ne i32 %629, 0
  br i1 %630, label %631, label %641

631:                                              ; preds = %628
  %632 = load ptr, ptr %27, align 8, !tbaa !5
  %633 = load i32, ptr %632, align 4, !tbaa !9
  store i32 %633, ptr %76, align 4, !tbaa !9
  %634 = load ptr, ptr %21, align 8, !tbaa !5
  %635 = call i32 @lsame_(ptr noundef %634, ptr noundef @.str.1)
  %636 = icmp ne i32 %635, 0
  br i1 %636, label %637, label %640

637:                                              ; preds = %631
  %638 = load ptr, ptr %26, align 8, !tbaa !5
  %639 = load i32, ptr %638, align 4, !tbaa !9
  store i32 %639, ptr %76, align 4, !tbaa !9
  br label %640

640:                                              ; preds = %637, %631
  br label %641

641:                                              ; preds = %640, %628
  %642 = call float @slamch_(ptr noundef @.str.14)
  store float %642, ptr %74, align 4, !tbaa !11
  %643 = call float @slamch_(ptr noundef @.str.15)
  store float %643, ptr %72, align 4, !tbaa !11
  %644 = load float, ptr %72, align 4, !tbaa !11
  %645 = load float, ptr %74, align 4, !tbaa !11
  %646 = fdiv float %644, %645
  store float %646, ptr %70, align 4, !tbaa !11
  %647 = call float @slamch_(ptr noundef @.str.16)
  store float %647, ptr %99, align 4, !tbaa !11
  %648 = load ptr, ptr %26, align 8, !tbaa !5
  %649 = load i32, ptr %648, align 4, !tbaa !9
  %650 = sitofp i32 %649 to float
  %651 = load ptr, ptr %27, align 8, !tbaa !5
  %652 = load i32, ptr %651, align 4, !tbaa !9
  %653 = sitofp i32 %652 to float
  %654 = fmul float %650, %653
  %655 = fpext float %654 to double
  %656 = call double @sqrt(double noundef %655) #5
  %657 = fdiv double 1.000000e+00, %656
  %658 = fptrunc double %657 to float
  store float %658, ptr %87, align 4, !tbaa !11
  store i32 1, ptr %92, align 4, !tbaa !9
  store i32 1, ptr %89, align 4, !tbaa !9
  %659 = load ptr, ptr %27, align 8, !tbaa !5
  %660 = load i32, ptr %659, align 4, !tbaa !9
  store i32 %660, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %661

661:                                              ; preds = %723, %641
  %662 = load i32, ptr %67, align 4, !tbaa !9
  %663 = load i32, ptr %45, align 4, !tbaa !9
  %664 = icmp sle i32 %662, %663
  br i1 %664, label %665, label %726

665:                                              ; preds = %661
  store float 0.000000e+00, ptr %62, align 4, !tbaa !11
  store float 1.000000e+00, ptr %63, align 4, !tbaa !11
  %666 = load ptr, ptr %26, align 8, !tbaa !5
  %667 = load ptr, ptr %28, align 8, !tbaa !5
  %668 = load i32, ptr %67, align 4, !tbaa !9
  %669 = load i32, ptr %39, align 4, !tbaa !9
  %670 = mul nsw i32 %668, %669
  %671 = add nsw i32 %670, 1
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds float, ptr %667, i64 %672
  call void @slassq_(ptr noundef %666, ptr noundef %673, ptr noundef @c__1, ptr noundef %62, ptr noundef %63)
  %674 = load float, ptr %62, align 4, !tbaa !11
  %675 = load float, ptr %99, align 4, !tbaa !11
  %676 = fcmp ogt float %674, %675
  br i1 %676, label %677, label %683

677:                                              ; preds = %665
  %678 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 -9, ptr %678, align 4, !tbaa !9
  %679 = load ptr, ptr %38, align 8, !tbaa !5
  %680 = load i32, ptr %679, align 4, !tbaa !9
  %681 = sub nsw i32 0, %680
  store i32 %681, ptr %46, align 4, !tbaa !9
  %682 = call i32 @xerbla_(ptr noundef @.str.13, ptr noundef %46, i32 noundef 6)
  store i32 1, ptr %105, align 4
  br label %7259

683:                                              ; preds = %665
  %684 = load float, ptr %63, align 4, !tbaa !11
  %685 = fpext float %684 to double
  %686 = call double @sqrt(double noundef %685) #5
  %687 = fptrunc double %686 to float
  store float %687, ptr %63, align 4, !tbaa !11
  %688 = load float, ptr %62, align 4, !tbaa !11
  %689 = load float, ptr %99, align 4, !tbaa !11
  %690 = load float, ptr %63, align 4, !tbaa !11
  %691 = fdiv float %689, %690
  %692 = fcmp olt float %688, %691
  br i1 %692, label %693, label %704

693:                                              ; preds = %683
  %694 = load i32, ptr %92, align 4, !tbaa !9
  %695 = icmp ne i32 %694, 0
  br i1 %695, label %696, label %704

696:                                              ; preds = %693
  %697 = load float, ptr %62, align 4, !tbaa !11
  %698 = load float, ptr %63, align 4, !tbaa !11
  %699 = fmul float %697, %698
  %700 = load ptr, ptr %30, align 8, !tbaa !5
  %701 = load i32, ptr %67, align 4, !tbaa !9
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds float, ptr %700, i64 %702
  store float %699, ptr %703, align 4, !tbaa !11
  br label %722

704:                                              ; preds = %693, %683
  store i32 0, ptr %92, align 4, !tbaa !9
  %705 = load float, ptr %62, align 4, !tbaa !11
  %706 = load float, ptr %63, align 4, !tbaa !11
  %707 = load float, ptr %87, align 4, !tbaa !11
  %708 = fmul float %706, %707
  %709 = fmul float %705, %708
  %710 = load ptr, ptr %30, align 8, !tbaa !5
  %711 = load i32, ptr %67, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds float, ptr %710, i64 %712
  store float %709, ptr %713, align 4, !tbaa !11
  %714 = load i32, ptr %89, align 4, !tbaa !9
  %715 = icmp ne i32 %714, 0
  br i1 %715, label %716, label %721

716:                                              ; preds = %704
  store i32 0, ptr %89, align 4, !tbaa !9
  %717 = load i32, ptr %67, align 4, !tbaa !9
  %718 = sub nsw i32 %717, 1
  store i32 %718, ptr %46, align 4, !tbaa !9
  %719 = load ptr, ptr %30, align 8, !tbaa !5
  %720 = getelementptr inbounds float, ptr %719, i64 1
  call void @sscal_(ptr noundef %46, ptr noundef %87, ptr noundef %720, ptr noundef @c__1)
  br label %721

721:                                              ; preds = %716, %704
  br label %722

722:                                              ; preds = %721, %696
  br label %723

723:                                              ; preds = %722
  %724 = load i32, ptr %67, align 4, !tbaa !9
  %725 = add nsw i32 %724, 1
  store i32 %725, ptr %67, align 4, !tbaa !9
  br label %661, !llvm.loop !13

726:                                              ; preds = %661
  %727 = load i32, ptr %92, align 4, !tbaa !9
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %729, label %730

729:                                              ; preds = %726
  store float 1.000000e+00, ptr %87, align 4, !tbaa !11
  br label %730

730:                                              ; preds = %729, %726
  store float 0.000000e+00, ptr %62, align 4, !tbaa !11
  %731 = load float, ptr %99, align 4, !tbaa !11
  store float %731, ptr %63, align 4, !tbaa !11
  %732 = load ptr, ptr %27, align 8, !tbaa !5
  %733 = load i32, ptr %732, align 4, !tbaa !9
  store i32 %733, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %734

734:                                              ; preds = %777, %730
  %735 = load i32, ptr %67, align 4, !tbaa !9
  %736 = load i32, ptr %45, align 4, !tbaa !9
  %737 = icmp sle i32 %735, %736
  br i1 %737, label %738, label %780

738:                                              ; preds = %734
  %739 = load float, ptr %62, align 4, !tbaa !11
  store float %739, ptr %57, align 4, !tbaa !11
  %740 = load ptr, ptr %30, align 8, !tbaa !5
  %741 = load i32, ptr %67, align 4, !tbaa !9
  %742 = sext i32 %741 to i64
  %743 = getelementptr inbounds float, ptr %740, i64 %742
  %744 = load float, ptr %743, align 4, !tbaa !11
  store float %744, ptr %58, align 4, !tbaa !11
  %745 = load float, ptr %57, align 4, !tbaa !11
  %746 = load float, ptr %58, align 4, !tbaa !11
  %747 = fcmp oge float %745, %746
  br i1 %747, label %748, label %750

748:                                              ; preds = %738
  %749 = load float, ptr %57, align 4, !tbaa !11
  br label %752

750:                                              ; preds = %738
  %751 = load float, ptr %58, align 4, !tbaa !11
  br label %752

752:                                              ; preds = %750, %748
  %753 = phi float [ %749, %748 ], [ %751, %750 ]
  store float %753, ptr %62, align 4, !tbaa !11
  %754 = load ptr, ptr %30, align 8, !tbaa !5
  %755 = load i32, ptr %67, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds float, ptr %754, i64 %756
  %758 = load float, ptr %757, align 4, !tbaa !11
  %759 = fcmp une float %758, 0.000000e+00
  br i1 %759, label %760, label %776

760:                                              ; preds = %752
  %761 = load float, ptr %63, align 4, !tbaa !11
  store float %761, ptr %57, align 4, !tbaa !11
  %762 = load ptr, ptr %30, align 8, !tbaa !5
  %763 = load i32, ptr %67, align 4, !tbaa !9
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds float, ptr %762, i64 %764
  %766 = load float, ptr %765, align 4, !tbaa !11
  store float %766, ptr %58, align 4, !tbaa !11
  %767 = load float, ptr %57, align 4, !tbaa !11
  %768 = load float, ptr %58, align 4, !tbaa !11
  %769 = fcmp ole float %767, %768
  br i1 %769, label %770, label %772

770:                                              ; preds = %760
  %771 = load float, ptr %57, align 4, !tbaa !11
  br label %774

772:                                              ; preds = %760
  %773 = load float, ptr %58, align 4, !tbaa !11
  br label %774

774:                                              ; preds = %772, %770
  %775 = phi float [ %771, %770 ], [ %773, %772 ]
  store float %775, ptr %63, align 4, !tbaa !11
  br label %776

776:                                              ; preds = %774, %752
  br label %777

777:                                              ; preds = %776
  %778 = load i32, ptr %67, align 4, !tbaa !9
  %779 = add nsw i32 %778, 1
  store i32 %779, ptr %67, align 4, !tbaa !9
  br label %734, !llvm.loop !15

780:                                              ; preds = %734
  %781 = load float, ptr %62, align 4, !tbaa !11
  %782 = fcmp oeq float %781, 0.000000e+00
  br i1 %782, label %783, label %840

783:                                              ; preds = %780
  %784 = load i32, ptr %73, align 4, !tbaa !9
  %785 = icmp ne i32 %784, 0
  br i1 %785, label %786, label %793

786:                                              ; preds = %783
  %787 = load ptr, ptr %26, align 8, !tbaa !5
  %788 = load ptr, ptr %31, align 8, !tbaa !5
  %789 = load i32, ptr %42, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds float, ptr %788, i64 %790
  %792 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.4, ptr noundef %787, ptr noundef %76, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %791, ptr noundef %792)
  br label %793

793:                                              ; preds = %786, %783
  %794 = load i32, ptr %75, align 4, !tbaa !9
  %795 = icmp ne i32 %794, 0
  br i1 %795, label %796, label %804

796:                                              ; preds = %793
  %797 = load ptr, ptr %27, align 8, !tbaa !5
  %798 = load ptr, ptr %27, align 8, !tbaa !5
  %799 = load ptr, ptr %33, align 8, !tbaa !5
  %800 = load i32, ptr %44, align 4, !tbaa !9
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds float, ptr %799, i64 %801
  %803 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.4, ptr noundef %797, ptr noundef %798, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %802, ptr noundef %803)
  br label %804

804:                                              ; preds = %796, %793
  %805 = load ptr, ptr %35, align 8, !tbaa !5
  %806 = getelementptr inbounds float, ptr %805, i64 1
  store float 1.000000e+00, ptr %806, align 4, !tbaa !11
  %807 = load ptr, ptr %35, align 8, !tbaa !5
  %808 = getelementptr inbounds float, ptr %807, i64 2
  store float 1.000000e+00, ptr %808, align 4, !tbaa !11
  %809 = load i32, ptr %96, align 4, !tbaa !9
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %814

811:                                              ; preds = %804
  %812 = load ptr, ptr %35, align 8, !tbaa !5
  %813 = getelementptr inbounds float, ptr %812, i64 3
  store float 1.000000e+00, ptr %813, align 4, !tbaa !11
  br label %814

814:                                              ; preds = %811, %804
  %815 = load i32, ptr %73, align 4, !tbaa !9
  %816 = icmp ne i32 %815, 0
  br i1 %816, label %817, label %825

817:                                              ; preds = %814
  %818 = load i32, ptr %75, align 4, !tbaa !9
  %819 = icmp ne i32 %818, 0
  br i1 %819, label %820, label %825

820:                                              ; preds = %817
  %821 = load ptr, ptr %35, align 8, !tbaa !5
  %822 = getelementptr inbounds float, ptr %821, i64 4
  store float 1.000000e+00, ptr %822, align 4, !tbaa !11
  %823 = load ptr, ptr %35, align 8, !tbaa !5
  %824 = getelementptr inbounds float, ptr %823, i64 5
  store float 1.000000e+00, ptr %824, align 4, !tbaa !11
  br label %825

825:                                              ; preds = %820, %817, %814
  %826 = load i32, ptr %84, align 4, !tbaa !9
  %827 = icmp ne i32 %826, 0
  br i1 %827, label %828, label %833

828:                                              ; preds = %825
  %829 = load ptr, ptr %35, align 8, !tbaa !5
  %830 = getelementptr inbounds float, ptr %829, i64 6
  store float 0.000000e+00, ptr %830, align 4, !tbaa !11
  %831 = load ptr, ptr %35, align 8, !tbaa !5
  %832 = getelementptr inbounds float, ptr %831, i64 7
  store float 0.000000e+00, ptr %832, align 4, !tbaa !11
  br label %833

833:                                              ; preds = %828, %825
  %834 = load ptr, ptr %37, align 8, !tbaa !5
  %835 = getelementptr inbounds i32, ptr %834, i64 1
  store i32 0, ptr %835, align 4, !tbaa !9
  %836 = load ptr, ptr %37, align 8, !tbaa !5
  %837 = getelementptr inbounds i32, ptr %836, i64 2
  store i32 0, ptr %837, align 4, !tbaa !9
  %838 = load ptr, ptr %37, align 8, !tbaa !5
  %839 = getelementptr inbounds i32, ptr %838, i64 3
  store i32 0, ptr %839, align 4, !tbaa !9
  store i32 1, ptr %105, align 4
  br label %7259

840:                                              ; preds = %780
  store i32 0, ptr %103, align 4, !tbaa !9
  %841 = load float, ptr %63, align 4, !tbaa !11
  %842 = load float, ptr %72, align 4, !tbaa !11
  %843 = fcmp ole float %841, %842
  br i1 %843, label %844, label %845

844:                                              ; preds = %840
  store i32 1, ptr %83, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  store i32 1, ptr %103, align 4, !tbaa !9
  br label %845

845:                                              ; preds = %844, %840
  %846 = load ptr, ptr %27, align 8, !tbaa !5
  %847 = load i32, ptr %846, align 4, !tbaa !9
  %848 = icmp eq i32 %847, 1
  br i1 %848, label %849, label %1013

849:                                              ; preds = %845
  %850 = load i32, ptr %73, align 4, !tbaa !9
  %851 = icmp ne i32 %850, 0
  br i1 %851, label %852, label %929

852:                                              ; preds = %849
  %853 = load ptr, ptr %30, align 8, !tbaa !5
  %854 = getelementptr inbounds float, ptr %853, i64 1
  %855 = load ptr, ptr %26, align 8, !tbaa !5
  %856 = load ptr, ptr %28, align 8, !tbaa !5
  %857 = load i32, ptr %39, align 4, !tbaa !9
  %858 = add nsw i32 %857, 1
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds float, ptr %856, i64 %859
  %861 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %854, ptr noundef %87, ptr noundef %855, ptr noundef @c__1, ptr noundef %860, ptr noundef %861, ptr noundef %65)
  %862 = load ptr, ptr %26, align 8, !tbaa !5
  %863 = load ptr, ptr %28, align 8, !tbaa !5
  %864 = load i32, ptr %40, align 4, !tbaa !9
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds float, ptr %863, i64 %865
  %867 = load ptr, ptr %29, align 8, !tbaa !5
  %868 = load ptr, ptr %31, align 8, !tbaa !5
  %869 = load i32, ptr %42, align 4, !tbaa !9
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds float, ptr %868, i64 %870
  %872 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.6, ptr noundef %862, ptr noundef @c__1, ptr noundef %866, ptr noundef %867, ptr noundef %871, ptr noundef %872)
  %873 = load i32, ptr %76, align 4, !tbaa !9
  %874 = load ptr, ptr %27, align 8, !tbaa !5
  %875 = load i32, ptr %874, align 4, !tbaa !9
  %876 = icmp ne i32 %873, %875
  br i1 %876, label %877, label %928

877:                                              ; preds = %852
  %878 = load ptr, ptr %36, align 8, !tbaa !5
  %879 = load i32, ptr %878, align 4, !tbaa !9
  %880 = load ptr, ptr %27, align 8, !tbaa !5
  %881 = load i32, ptr %880, align 4, !tbaa !9
  %882 = sub nsw i32 %879, %881
  store i32 %882, ptr %45, align 4, !tbaa !9
  %883 = load ptr, ptr %26, align 8, !tbaa !5
  %884 = load ptr, ptr %27, align 8, !tbaa !5
  %885 = load ptr, ptr %31, align 8, !tbaa !5
  %886 = load i32, ptr %42, align 4, !tbaa !9
  %887 = sext i32 %886 to i64
  %888 = getelementptr inbounds float, ptr %885, i64 %887
  %889 = load ptr, ptr %32, align 8, !tbaa !5
  %890 = load ptr, ptr %35, align 8, !tbaa !5
  %891 = getelementptr inbounds float, ptr %890, i64 1
  %892 = load ptr, ptr %35, align 8, !tbaa !5
  %893 = load ptr, ptr %27, align 8, !tbaa !5
  %894 = load i32, ptr %893, align 4, !tbaa !9
  %895 = add nsw i32 %894, 1
  %896 = sext i32 %895 to i64
  %897 = getelementptr inbounds float, ptr %892, i64 %896
  call void @sgeqrf_(ptr noundef %883, ptr noundef %884, ptr noundef %888, ptr noundef %889, ptr noundef %891, ptr noundef %897, ptr noundef %45, ptr noundef %65)
  %898 = load ptr, ptr %36, align 8, !tbaa !5
  %899 = load i32, ptr %898, align 4, !tbaa !9
  %900 = load ptr, ptr %27, align 8, !tbaa !5
  %901 = load i32, ptr %900, align 4, !tbaa !9
  %902 = sub nsw i32 %899, %901
  store i32 %902, ptr %45, align 4, !tbaa !9
  %903 = load ptr, ptr %26, align 8, !tbaa !5
  %904 = load ptr, ptr %31, align 8, !tbaa !5
  %905 = load i32, ptr %42, align 4, !tbaa !9
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds float, ptr %904, i64 %906
  %908 = load ptr, ptr %32, align 8, !tbaa !5
  %909 = load ptr, ptr %35, align 8, !tbaa !5
  %910 = getelementptr inbounds float, ptr %909, i64 1
  %911 = load ptr, ptr %35, align 8, !tbaa !5
  %912 = load ptr, ptr %27, align 8, !tbaa !5
  %913 = load i32, ptr %912, align 4, !tbaa !9
  %914 = add nsw i32 %913, 1
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds float, ptr %911, i64 %915
  call void @sorgqr_(ptr noundef %903, ptr noundef %76, ptr noundef @c__1, ptr noundef %907, ptr noundef %908, ptr noundef %910, ptr noundef %916, ptr noundef %45, ptr noundef %65)
  %917 = load ptr, ptr %26, align 8, !tbaa !5
  %918 = load ptr, ptr %28, align 8, !tbaa !5
  %919 = load i32, ptr %39, align 4, !tbaa !9
  %920 = add nsw i32 %919, 1
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds float, ptr %918, i64 %921
  %923 = load ptr, ptr %31, align 8, !tbaa !5
  %924 = load i32, ptr %41, align 4, !tbaa !9
  %925 = add nsw i32 %924, 1
  %926 = sext i32 %925 to i64
  %927 = getelementptr inbounds float, ptr %923, i64 %926
  call void @scopy_(ptr noundef %917, ptr noundef %922, ptr noundef @c__1, ptr noundef %927, ptr noundef @c__1)
  br label %928

928:                                              ; preds = %877, %852
  br label %929

929:                                              ; preds = %928, %849
  %930 = load i32, ptr %75, align 4, !tbaa !9
  %931 = icmp ne i32 %930, 0
  br i1 %931, label %932, label %938

932:                                              ; preds = %929
  %933 = load ptr, ptr %33, align 8, !tbaa !5
  %934 = load i32, ptr %43, align 4, !tbaa !9
  %935 = add nsw i32 %934, 1
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds float, ptr %933, i64 %936
  store float 1.000000e+00, ptr %937, align 4, !tbaa !11
  br label %938

938:                                              ; preds = %932, %929
  %939 = load ptr, ptr %30, align 8, !tbaa !5
  %940 = getelementptr inbounds float, ptr %939, i64 1
  %941 = load float, ptr %940, align 4, !tbaa !11
  %942 = load float, ptr %99, align 4, !tbaa !11
  %943 = load float, ptr %87, align 4, !tbaa !11
  %944 = fmul float %942, %943
  %945 = fcmp olt float %941, %944
  br i1 %945, label %946, label %952

946:                                              ; preds = %938
  %947 = load float, ptr %87, align 4, !tbaa !11
  %948 = load ptr, ptr %30, align 8, !tbaa !5
  %949 = getelementptr inbounds float, ptr %948, i64 1
  %950 = load float, ptr %949, align 4, !tbaa !11
  %951 = fdiv float %950, %947
  store float %951, ptr %949, align 4, !tbaa !11
  store float 1.000000e+00, ptr %87, align 4, !tbaa !11
  br label %952

952:                                              ; preds = %946, %938
  %953 = load float, ptr %87, align 4, !tbaa !11
  %954 = fdiv float 1.000000e+00, %953
  %955 = load ptr, ptr %35, align 8, !tbaa !5
  %956 = getelementptr inbounds float, ptr %955, i64 1
  store float %954, ptr %956, align 4, !tbaa !11
  %957 = load ptr, ptr %35, align 8, !tbaa !5
  %958 = getelementptr inbounds float, ptr %957, i64 2
  store float 1.000000e+00, ptr %958, align 4, !tbaa !11
  %959 = load ptr, ptr %30, align 8, !tbaa !5
  %960 = getelementptr inbounds float, ptr %959, i64 1
  %961 = load float, ptr %960, align 4, !tbaa !11
  %962 = fcmp une float %961, 0.000000e+00
  br i1 %962, label %963, label %980

963:                                              ; preds = %952
  %964 = load ptr, ptr %37, align 8, !tbaa !5
  %965 = getelementptr inbounds i32, ptr %964, i64 1
  store i32 1, ptr %965, align 4, !tbaa !9
  %966 = load ptr, ptr %30, align 8, !tbaa !5
  %967 = getelementptr inbounds float, ptr %966, i64 1
  %968 = load float, ptr %967, align 4, !tbaa !11
  %969 = load float, ptr %87, align 4, !tbaa !11
  %970 = fdiv float %968, %969
  %971 = load float, ptr %72, align 4, !tbaa !11
  %972 = fcmp oge float %970, %971
  br i1 %972, label %973, label %976

973:                                              ; preds = %963
  %974 = load ptr, ptr %37, align 8, !tbaa !5
  %975 = getelementptr inbounds i32, ptr %974, i64 2
  store i32 1, ptr %975, align 4, !tbaa !9
  br label %979

976:                                              ; preds = %963
  %977 = load ptr, ptr %37, align 8, !tbaa !5
  %978 = getelementptr inbounds i32, ptr %977, i64 2
  store i32 0, ptr %978, align 4, !tbaa !9
  br label %979

979:                                              ; preds = %976, %973
  br label %985

980:                                              ; preds = %952
  %981 = load ptr, ptr %37, align 8, !tbaa !5
  %982 = getelementptr inbounds i32, ptr %981, i64 1
  store i32 0, ptr %982, align 4, !tbaa !9
  %983 = load ptr, ptr %37, align 8, !tbaa !5
  %984 = getelementptr inbounds i32, ptr %983, i64 2
  store i32 0, ptr %984, align 4, !tbaa !9
  br label %985

985:                                              ; preds = %980, %979
  %986 = load ptr, ptr %37, align 8, !tbaa !5
  %987 = getelementptr inbounds i32, ptr %986, i64 3
  store i32 0, ptr %987, align 4, !tbaa !9
  %988 = load i32, ptr %96, align 4, !tbaa !9
  %989 = icmp ne i32 %988, 0
  br i1 %989, label %990, label %993

990:                                              ; preds = %985
  %991 = load ptr, ptr %35, align 8, !tbaa !5
  %992 = getelementptr inbounds float, ptr %991, i64 3
  store float 1.000000e+00, ptr %992, align 4, !tbaa !11
  br label %993

993:                                              ; preds = %990, %985
  %994 = load i32, ptr %73, align 4, !tbaa !9
  %995 = icmp ne i32 %994, 0
  br i1 %995, label %996, label %1004

996:                                              ; preds = %993
  %997 = load i32, ptr %75, align 4, !tbaa !9
  %998 = icmp ne i32 %997, 0
  br i1 %998, label %999, label %1004

999:                                              ; preds = %996
  %1000 = load ptr, ptr %35, align 8, !tbaa !5
  %1001 = getelementptr inbounds float, ptr %1000, i64 4
  store float 1.000000e+00, ptr %1001, align 4, !tbaa !11
  %1002 = load ptr, ptr %35, align 8, !tbaa !5
  %1003 = getelementptr inbounds float, ptr %1002, i64 5
  store float 1.000000e+00, ptr %1003, align 4, !tbaa !11
  br label %1004

1004:                                             ; preds = %999, %996, %993
  %1005 = load i32, ptr %84, align 4, !tbaa !9
  %1006 = icmp ne i32 %1005, 0
  br i1 %1006, label %1007, label %1012

1007:                                             ; preds = %1004
  %1008 = load ptr, ptr %35, align 8, !tbaa !5
  %1009 = getelementptr inbounds float, ptr %1008, i64 6
  store float 0.000000e+00, ptr %1009, align 4, !tbaa !11
  %1010 = load ptr, ptr %35, align 8, !tbaa !5
  %1011 = getelementptr inbounds float, ptr %1010, i64 7
  store float 0.000000e+00, ptr %1011, align 4, !tbaa !11
  br label %1012

1012:                                             ; preds = %1007, %1004
  store i32 1, ptr %105, align 4
  br label %7259

1013:                                             ; preds = %845
  store i32 0, ptr %97, align 4, !tbaa !9
  %1014 = load i32, ptr %84, align 4, !tbaa !9
  %1015 = icmp ne i32 %1014, 0
  br i1 %1015, label %1016, label %1022

1016:                                             ; preds = %1013
  %1017 = load ptr, ptr %26, align 8, !tbaa !5
  %1018 = load i32, ptr %1017, align 4, !tbaa !9
  %1019 = load ptr, ptr %27, align 8, !tbaa !5
  %1020 = load i32, ptr %1019, align 4, !tbaa !9
  %1021 = icmp eq i32 %1018, %1020
  br label %1022

1022:                                             ; preds = %1016, %1013
  %1023 = phi i1 [ false, %1013 ], [ %1021, %1016 ]
  %1024 = zext i1 %1023 to i32
  store i32 %1024, ptr %84, align 4, !tbaa !9
  store float -1.000000e+00, ptr %91, align 4, !tbaa !11
  %1025 = load float, ptr %99, align 4, !tbaa !11
  store float %1025, ptr %90, align 4, !tbaa !11
  %1026 = load i32, ptr %98, align 4, !tbaa !9
  %1027 = icmp ne i32 %1026, 0
  br i1 %1027, label %1031, label %1028

1028:                                             ; preds = %1022
  %1029 = load i32, ptr %84, align 4, !tbaa !9
  %1030 = icmp ne i32 %1029, 0
  br i1 %1030, label %1031, label %1224

1031:                                             ; preds = %1028, %1022
  %1032 = load i32, ptr %84, align 4, !tbaa !9
  %1033 = icmp ne i32 %1032, 0
  br i1 %1033, label %1034, label %1131

1034:                                             ; preds = %1031
  %1035 = load ptr, ptr %26, align 8, !tbaa !5
  %1036 = load i32, ptr %1035, align 4, !tbaa !9
  store i32 %1036, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1037

1037:                                             ; preds = %1127, %1034
  %1038 = load i32, ptr %67, align 4, !tbaa !9
  %1039 = load i32, ptr %45, align 4, !tbaa !9
  %1040 = icmp sle i32 %1038, %1039
  br i1 %1040, label %1041, label %1130

1041:                                             ; preds = %1037
  store float 0.000000e+00, ptr %101, align 4, !tbaa !11
  store float 1.000000e+00, ptr %66, align 4, !tbaa !11
  %1042 = load ptr, ptr %27, align 8, !tbaa !5
  %1043 = load ptr, ptr %28, align 8, !tbaa !5
  %1044 = load i32, ptr %67, align 4, !tbaa !9
  %1045 = load i32, ptr %39, align 4, !tbaa !9
  %1046 = add nsw i32 %1044, %1045
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds float, ptr %1043, i64 %1047
  %1049 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slassq_(ptr noundef %1042, ptr noundef %1048, ptr noundef %1049, ptr noundef %101, ptr noundef %66)
  %1050 = load float, ptr %101, align 4, !tbaa !11
  %1051 = load float, ptr %87, align 4, !tbaa !11
  %1052 = fmul float %1050, %1051
  %1053 = load ptr, ptr %35, align 8, !tbaa !5
  %1054 = load ptr, ptr %26, align 8, !tbaa !5
  %1055 = load i32, ptr %1054, align 4, !tbaa !9
  %1056 = load ptr, ptr %27, align 8, !tbaa !5
  %1057 = load i32, ptr %1056, align 4, !tbaa !9
  %1058 = add nsw i32 %1055, %1057
  %1059 = load i32, ptr %67, align 4, !tbaa !9
  %1060 = add nsw i32 %1058, %1059
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds float, ptr %1053, i64 %1061
  store float %1052, ptr %1062, align 4, !tbaa !11
  %1063 = load float, ptr %101, align 4, !tbaa !11
  %1064 = fpext float %1063 to double
  %1065 = load float, ptr %87, align 4, !tbaa !11
  %1066 = fpext float %1065 to double
  %1067 = load float, ptr %66, align 4, !tbaa !11
  %1068 = fpext float %1067 to double
  %1069 = call double @sqrt(double noundef %1068) #5
  %1070 = fmul double %1066, %1069
  %1071 = fmul double %1064, %1070
  %1072 = fptrunc double %1071 to float
  %1073 = load ptr, ptr %35, align 8, !tbaa !5
  %1074 = load ptr, ptr %27, align 8, !tbaa !5
  %1075 = load i32, ptr %1074, align 4, !tbaa !9
  %1076 = load i32, ptr %67, align 4, !tbaa !9
  %1077 = add nsw i32 %1075, %1076
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds float, ptr %1073, i64 %1078
  store float %1072, ptr %1079, align 4, !tbaa !11
  %1080 = load float, ptr %91, align 4, !tbaa !11
  store float %1080, ptr %57, align 4, !tbaa !11
  %1081 = load ptr, ptr %35, align 8, !tbaa !5
  %1082 = load ptr, ptr %27, align 8, !tbaa !5
  %1083 = load i32, ptr %1082, align 4, !tbaa !9
  %1084 = load i32, ptr %67, align 4, !tbaa !9
  %1085 = add nsw i32 %1083, %1084
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds float, ptr %1081, i64 %1086
  %1088 = load float, ptr %1087, align 4, !tbaa !11
  store float %1088, ptr %58, align 4, !tbaa !11
  %1089 = load float, ptr %57, align 4, !tbaa !11
  %1090 = load float, ptr %58, align 4, !tbaa !11
  %1091 = fcmp oge float %1089, %1090
  br i1 %1091, label %1092, label %1094

1092:                                             ; preds = %1041
  %1093 = load float, ptr %57, align 4, !tbaa !11
  br label %1096

1094:                                             ; preds = %1041
  %1095 = load float, ptr %58, align 4, !tbaa !11
  br label %1096

1096:                                             ; preds = %1094, %1092
  %1097 = phi float [ %1093, %1092 ], [ %1095, %1094 ]
  store float %1097, ptr %91, align 4, !tbaa !11
  %1098 = load ptr, ptr %35, align 8, !tbaa !5
  %1099 = load ptr, ptr %27, align 8, !tbaa !5
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = load i32, ptr %67, align 4, !tbaa !9
  %1102 = add nsw i32 %1100, %1101
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds float, ptr %1098, i64 %1103
  %1105 = load float, ptr %1104, align 4, !tbaa !11
  %1106 = fcmp une float %1105, 0.000000e+00
  br i1 %1106, label %1107, label %1126

1107:                                             ; preds = %1096
  %1108 = load float, ptr %90, align 4, !tbaa !11
  store float %1108, ptr %57, align 4, !tbaa !11
  %1109 = load ptr, ptr %35, align 8, !tbaa !5
  %1110 = load ptr, ptr %27, align 8, !tbaa !5
  %1111 = load i32, ptr %1110, align 4, !tbaa !9
  %1112 = load i32, ptr %67, align 4, !tbaa !9
  %1113 = add nsw i32 %1111, %1112
  %1114 = sext i32 %1113 to i64
  %1115 = getelementptr inbounds float, ptr %1109, i64 %1114
  %1116 = load float, ptr %1115, align 4, !tbaa !11
  store float %1116, ptr %58, align 4, !tbaa !11
  %1117 = load float, ptr %57, align 4, !tbaa !11
  %1118 = load float, ptr %58, align 4, !tbaa !11
  %1119 = fcmp ole float %1117, %1118
  br i1 %1119, label %1120, label %1122

1120:                                             ; preds = %1107
  %1121 = load float, ptr %57, align 4, !tbaa !11
  br label %1124

1122:                                             ; preds = %1107
  %1123 = load float, ptr %58, align 4, !tbaa !11
  br label %1124

1124:                                             ; preds = %1122, %1120
  %1125 = phi float [ %1121, %1120 ], [ %1123, %1122 ]
  store float %1125, ptr %90, align 4, !tbaa !11
  br label %1126

1126:                                             ; preds = %1124, %1096
  br label %1127

1127:                                             ; preds = %1126
  %1128 = load i32, ptr %67, align 4, !tbaa !9
  %1129 = add nsw i32 %1128, 1
  store i32 %1129, ptr %67, align 4, !tbaa !9
  br label %1037, !llvm.loop !16

1130:                                             ; preds = %1037
  br label %1223

1131:                                             ; preds = %1031
  %1132 = load ptr, ptr %26, align 8, !tbaa !5
  %1133 = load i32, ptr %1132, align 4, !tbaa !9
  store i32 %1133, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1134

1134:                                             ; preds = %1219, %1131
  %1135 = load i32, ptr %67, align 4, !tbaa !9
  %1136 = load i32, ptr %45, align 4, !tbaa !9
  %1137 = icmp sle i32 %1135, %1136
  br i1 %1137, label %1138, label %1222

1138:                                             ; preds = %1134
  %1139 = load float, ptr %87, align 4, !tbaa !11
  %1140 = load ptr, ptr %28, align 8, !tbaa !5
  %1141 = load i32, ptr %67, align 4, !tbaa !9
  %1142 = load ptr, ptr %27, align 8, !tbaa !5
  %1143 = load ptr, ptr %28, align 8, !tbaa !5
  %1144 = load i32, ptr %67, align 4, !tbaa !9
  %1145 = load i32, ptr %39, align 4, !tbaa !9
  %1146 = add nsw i32 %1144, %1145
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds float, ptr %1143, i64 %1147
  %1149 = load ptr, ptr %29, align 8, !tbaa !5
  %1150 = call i32 @isamax_(ptr noundef %1142, ptr noundef %1148, ptr noundef %1149)
  %1151 = load i32, ptr %39, align 4, !tbaa !9
  %1152 = mul nsw i32 %1150, %1151
  %1153 = add nsw i32 %1141, %1152
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds float, ptr %1140, i64 %1154
  %1156 = load float, ptr %1155, align 4, !tbaa !11
  store float %1156, ptr %57, align 4, !tbaa !11
  %1157 = load float, ptr %57, align 4, !tbaa !11
  %1158 = fcmp oge float %1157, 0.000000e+00
  br i1 %1158, label %1159, label %1161

1159:                                             ; preds = %1138
  %1160 = load float, ptr %57, align 4, !tbaa !11
  br label %1164

1161:                                             ; preds = %1138
  %1162 = load float, ptr %57, align 4, !tbaa !11
  %1163 = fneg float %1162
  br label %1164

1164:                                             ; preds = %1161, %1159
  %1165 = phi float [ %1160, %1159 ], [ %1163, %1161 ]
  %1166 = fmul float %1139, %1165
  %1167 = load ptr, ptr %35, align 8, !tbaa !5
  %1168 = load ptr, ptr %26, align 8, !tbaa !5
  %1169 = load i32, ptr %1168, align 4, !tbaa !9
  %1170 = load ptr, ptr %27, align 8, !tbaa !5
  %1171 = load i32, ptr %1170, align 4, !tbaa !9
  %1172 = add nsw i32 %1169, %1171
  %1173 = load i32, ptr %67, align 4, !tbaa !9
  %1174 = add nsw i32 %1172, %1173
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds float, ptr %1167, i64 %1175
  store float %1166, ptr %1176, align 4, !tbaa !11
  %1177 = load float, ptr %91, align 4, !tbaa !11
  store float %1177, ptr %57, align 4, !tbaa !11
  %1178 = load ptr, ptr %35, align 8, !tbaa !5
  %1179 = load ptr, ptr %26, align 8, !tbaa !5
  %1180 = load i32, ptr %1179, align 4, !tbaa !9
  %1181 = load ptr, ptr %27, align 8, !tbaa !5
  %1182 = load i32, ptr %1181, align 4, !tbaa !9
  %1183 = add nsw i32 %1180, %1182
  %1184 = load i32, ptr %67, align 4, !tbaa !9
  %1185 = add nsw i32 %1183, %1184
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds float, ptr %1178, i64 %1186
  %1188 = load float, ptr %1187, align 4, !tbaa !11
  store float %1188, ptr %58, align 4, !tbaa !11
  %1189 = load float, ptr %57, align 4, !tbaa !11
  %1190 = load float, ptr %58, align 4, !tbaa !11
  %1191 = fcmp oge float %1189, %1190
  br i1 %1191, label %1192, label %1194

1192:                                             ; preds = %1164
  %1193 = load float, ptr %57, align 4, !tbaa !11
  br label %1196

1194:                                             ; preds = %1164
  %1195 = load float, ptr %58, align 4, !tbaa !11
  br label %1196

1196:                                             ; preds = %1194, %1192
  %1197 = phi float [ %1193, %1192 ], [ %1195, %1194 ]
  store float %1197, ptr %91, align 4, !tbaa !11
  %1198 = load float, ptr %90, align 4, !tbaa !11
  store float %1198, ptr %57, align 4, !tbaa !11
  %1199 = load ptr, ptr %35, align 8, !tbaa !5
  %1200 = load ptr, ptr %26, align 8, !tbaa !5
  %1201 = load i32, ptr %1200, align 4, !tbaa !9
  %1202 = load ptr, ptr %27, align 8, !tbaa !5
  %1203 = load i32, ptr %1202, align 4, !tbaa !9
  %1204 = add nsw i32 %1201, %1203
  %1205 = load i32, ptr %67, align 4, !tbaa !9
  %1206 = add nsw i32 %1204, %1205
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds float, ptr %1199, i64 %1207
  %1209 = load float, ptr %1208, align 4, !tbaa !11
  store float %1209, ptr %58, align 4, !tbaa !11
  %1210 = load float, ptr %57, align 4, !tbaa !11
  %1211 = load float, ptr %58, align 4, !tbaa !11
  %1212 = fcmp ole float %1210, %1211
  br i1 %1212, label %1213, label %1215

1213:                                             ; preds = %1196
  %1214 = load float, ptr %57, align 4, !tbaa !11
  br label %1217

1215:                                             ; preds = %1196
  %1216 = load float, ptr %58, align 4, !tbaa !11
  br label %1217

1217:                                             ; preds = %1215, %1213
  %1218 = phi float [ %1214, %1213 ], [ %1216, %1215 ]
  store float %1218, ptr %90, align 4, !tbaa !11
  br label %1219

1219:                                             ; preds = %1217
  %1220 = load i32, ptr %67, align 4, !tbaa !9
  %1221 = add nsw i32 %1220, 1
  store i32 %1221, ptr %67, align 4, !tbaa !9
  br label %1134, !llvm.loop !17

1222:                                             ; preds = %1134
  br label %1223

1223:                                             ; preds = %1222, %1130
  br label %1224

1224:                                             ; preds = %1223, %1028
  store float 0.000000e+00, ptr %71, align 4, !tbaa !11
  store float 0.000000e+00, ptr %93, align 4, !tbaa !11
  %1225 = load i32, ptr %84, align 4, !tbaa !9
  %1226 = icmp ne i32 %1225, 0
  br i1 %1226, label %1227, label %1452

1227:                                             ; preds = %1224
  store float 0.000000e+00, ptr %101, align 4, !tbaa !11
  store float 1.000000e+00, ptr %66, align 4, !tbaa !11
  %1228 = load ptr, ptr %27, align 8, !tbaa !5
  %1229 = load ptr, ptr %30, align 8, !tbaa !5
  %1230 = getelementptr inbounds float, ptr %1229, i64 1
  call void @slassq_(ptr noundef %1228, ptr noundef %1230, ptr noundef @c__1, ptr noundef %101, ptr noundef %66)
  %1231 = load float, ptr %66, align 4, !tbaa !11
  %1232 = fdiv float 1.000000e+00, %1231
  store float %1232, ptr %66, align 4, !tbaa !11
  store float 0.000000e+00, ptr %71, align 4, !tbaa !11
  %1233 = load ptr, ptr %27, align 8, !tbaa !5
  %1234 = load i32, ptr %1233, align 4, !tbaa !9
  store i32 %1234, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1235

1235:                                             ; preds = %1265, %1227
  %1236 = load i32, ptr %67, align 4, !tbaa !9
  %1237 = load i32, ptr %45, align 4, !tbaa !9
  %1238 = icmp sle i32 %1236, %1237
  br i1 %1238, label %1239, label %1268

1239:                                             ; preds = %1235
  %1240 = load ptr, ptr %30, align 8, !tbaa !5
  %1241 = load i32, ptr %67, align 4, !tbaa !9
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds float, ptr %1240, i64 %1242
  %1244 = load float, ptr %1243, align 4, !tbaa !11
  %1245 = load float, ptr %101, align 4, !tbaa !11
  %1246 = fdiv float %1244, %1245
  store float %1246, ptr %57, align 4, !tbaa !11
  %1247 = load float, ptr %57, align 4, !tbaa !11
  %1248 = load float, ptr %57, align 4, !tbaa !11
  %1249 = fmul float %1247, %1248
  %1250 = load float, ptr %66, align 4, !tbaa !11
  %1251 = fmul float %1249, %1250
  store float %1251, ptr %102, align 4, !tbaa !11
  %1252 = load float, ptr %102, align 4, !tbaa !11
  %1253 = fcmp une float %1252, 0.000000e+00
  br i1 %1253, label %1254, label %1264

1254:                                             ; preds = %1239
  %1255 = load float, ptr %102, align 4, !tbaa !11
  %1256 = fpext float %1255 to double
  %1257 = load float, ptr %102, align 4, !tbaa !11
  %1258 = fpext float %1257 to double
  %1259 = call double @log(double noundef %1258) #5
  %1260 = load float, ptr %71, align 4, !tbaa !11
  %1261 = fpext float %1260 to double
  %1262 = call double @llvm.fmuladd.f64(double %1256, double %1259, double %1261)
  %1263 = fptrunc double %1262 to float
  store float %1263, ptr %71, align 4, !tbaa !11
  br label %1264

1264:                                             ; preds = %1254, %1239
  br label %1265

1265:                                             ; preds = %1264
  %1266 = load i32, ptr %67, align 4, !tbaa !9
  %1267 = add nsw i32 %1266, 1
  store i32 %1267, ptr %67, align 4, !tbaa !9
  br label %1235, !llvm.loop !18

1268:                                             ; preds = %1235
  %1269 = load float, ptr %71, align 4, !tbaa !11
  %1270 = fneg float %1269
  %1271 = fpext float %1270 to double
  %1272 = load ptr, ptr %27, align 8, !tbaa !5
  %1273 = load i32, ptr %1272, align 4, !tbaa !9
  %1274 = sitofp i32 %1273 to float
  %1275 = fpext float %1274 to double
  %1276 = call double @log(double noundef %1275) #5
  %1277 = fdiv double %1271, %1276
  %1278 = fptrunc double %1277 to float
  store float %1278, ptr %71, align 4, !tbaa !11
  store float 0.000000e+00, ptr %93, align 4, !tbaa !11
  %1279 = load ptr, ptr %27, align 8, !tbaa !5
  %1280 = load i32, ptr %1279, align 4, !tbaa !9
  %1281 = load ptr, ptr %26, align 8, !tbaa !5
  %1282 = load i32, ptr %1281, align 4, !tbaa !9
  %1283 = add nsw i32 %1280, %1282
  store i32 %1283, ptr %45, align 4, !tbaa !9
  %1284 = load ptr, ptr %27, align 8, !tbaa !5
  %1285 = load i32, ptr %1284, align 4, !tbaa !9
  %1286 = add nsw i32 %1285, 1
  store i32 %1286, ptr %67, align 4, !tbaa !9
  br label %1287

1287:                                             ; preds = %1317, %1268
  %1288 = load i32, ptr %67, align 4, !tbaa !9
  %1289 = load i32, ptr %45, align 4, !tbaa !9
  %1290 = icmp sle i32 %1288, %1289
  br i1 %1290, label %1291, label %1320

1291:                                             ; preds = %1287
  %1292 = load ptr, ptr %35, align 8, !tbaa !5
  %1293 = load i32, ptr %67, align 4, !tbaa !9
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1292, i64 %1294
  %1296 = load float, ptr %1295, align 4, !tbaa !11
  %1297 = load float, ptr %101, align 4, !tbaa !11
  %1298 = fdiv float %1296, %1297
  store float %1298, ptr %57, align 4, !tbaa !11
  %1299 = load float, ptr %57, align 4, !tbaa !11
  %1300 = load float, ptr %57, align 4, !tbaa !11
  %1301 = fmul float %1299, %1300
  %1302 = load float, ptr %66, align 4, !tbaa !11
  %1303 = fmul float %1301, %1302
  store float %1303, ptr %102, align 4, !tbaa !11
  %1304 = load float, ptr %102, align 4, !tbaa !11
  %1305 = fcmp une float %1304, 0.000000e+00
  br i1 %1305, label %1306, label %1316

1306:                                             ; preds = %1291
  %1307 = load float, ptr %102, align 4, !tbaa !11
  %1308 = fpext float %1307 to double
  %1309 = load float, ptr %102, align 4, !tbaa !11
  %1310 = fpext float %1309 to double
  %1311 = call double @log(double noundef %1310) #5
  %1312 = load float, ptr %93, align 4, !tbaa !11
  %1313 = fpext float %1312 to double
  %1314 = call double @llvm.fmuladd.f64(double %1308, double %1311, double %1313)
  %1315 = fptrunc double %1314 to float
  store float %1315, ptr %93, align 4, !tbaa !11
  br label %1316

1316:                                             ; preds = %1306, %1291
  br label %1317

1317:                                             ; preds = %1316
  %1318 = load i32, ptr %67, align 4, !tbaa !9
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr %67, align 4, !tbaa !9
  br label %1287, !llvm.loop !19

1320:                                             ; preds = %1287
  %1321 = load float, ptr %93, align 4, !tbaa !11
  %1322 = fneg float %1321
  %1323 = fpext float %1322 to double
  %1324 = load ptr, ptr %26, align 8, !tbaa !5
  %1325 = load i32, ptr %1324, align 4, !tbaa !9
  %1326 = sitofp i32 %1325 to float
  %1327 = fpext float %1326 to double
  %1328 = call double @log(double noundef %1327) #5
  %1329 = fdiv double %1323, %1328
  %1330 = fptrunc double %1329 to float
  store float %1330, ptr %93, align 4, !tbaa !11
  %1331 = load float, ptr %93, align 4, !tbaa !11
  %1332 = load float, ptr %71, align 4, !tbaa !11
  %1333 = fcmp olt float %1331, %1332
  %1334 = zext i1 %1333 to i32
  store i32 %1334, ptr %97, align 4, !tbaa !9
  %1335 = load i32, ptr %97, align 4, !tbaa !9
  %1336 = icmp ne i32 %1335, 0
  br i1 %1336, label %1337, label %1451

1337:                                             ; preds = %1320
  %1338 = load ptr, ptr %27, align 8, !tbaa !5
  %1339 = load i32, ptr %1338, align 4, !tbaa !9
  %1340 = sub nsw i32 %1339, 1
  store i32 %1340, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1341

1341:                                             ; preds = %1394, %1337
  %1342 = load i32, ptr %67, align 4, !tbaa !9
  %1343 = load i32, ptr %45, align 4, !tbaa !9
  %1344 = icmp sle i32 %1342, %1343
  br i1 %1344, label %1345, label %1397

1345:                                             ; preds = %1341
  %1346 = load ptr, ptr %27, align 8, !tbaa !5
  %1347 = load i32, ptr %1346, align 4, !tbaa !9
  store i32 %1347, ptr %46, align 4, !tbaa !9
  %1348 = load i32, ptr %67, align 4, !tbaa !9
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr %68, align 4, !tbaa !9
  br label %1350

1350:                                             ; preds = %1390, %1345
  %1351 = load i32, ptr %68, align 4, !tbaa !9
  %1352 = load i32, ptr %46, align 4, !tbaa !9
  %1353 = icmp sle i32 %1351, %1352
  br i1 %1353, label %1354, label %1393

1354:                                             ; preds = %1350
  %1355 = load ptr, ptr %28, align 8, !tbaa !5
  %1356 = load i32, ptr %68, align 4, !tbaa !9
  %1357 = load i32, ptr %67, align 4, !tbaa !9
  %1358 = load i32, ptr %39, align 4, !tbaa !9
  %1359 = mul nsw i32 %1357, %1358
  %1360 = add nsw i32 %1356, %1359
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds float, ptr %1355, i64 %1361
  %1363 = load float, ptr %1362, align 4, !tbaa !11
  store float %1363, ptr %66, align 4, !tbaa !11
  %1364 = load ptr, ptr %28, align 8, !tbaa !5
  %1365 = load i32, ptr %67, align 4, !tbaa !9
  %1366 = load i32, ptr %68, align 4, !tbaa !9
  %1367 = load i32, ptr %39, align 4, !tbaa !9
  %1368 = mul nsw i32 %1366, %1367
  %1369 = add nsw i32 %1365, %1368
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds float, ptr %1364, i64 %1370
  %1372 = load float, ptr %1371, align 4, !tbaa !11
  %1373 = load ptr, ptr %28, align 8, !tbaa !5
  %1374 = load i32, ptr %68, align 4, !tbaa !9
  %1375 = load i32, ptr %67, align 4, !tbaa !9
  %1376 = load i32, ptr %39, align 4, !tbaa !9
  %1377 = mul nsw i32 %1375, %1376
  %1378 = add nsw i32 %1374, %1377
  %1379 = sext i32 %1378 to i64
  %1380 = getelementptr inbounds float, ptr %1373, i64 %1379
  store float %1372, ptr %1380, align 4, !tbaa !11
  %1381 = load float, ptr %66, align 4, !tbaa !11
  %1382 = load ptr, ptr %28, align 8, !tbaa !5
  %1383 = load i32, ptr %67, align 4, !tbaa !9
  %1384 = load i32, ptr %68, align 4, !tbaa !9
  %1385 = load i32, ptr %39, align 4, !tbaa !9
  %1386 = mul nsw i32 %1384, %1385
  %1387 = add nsw i32 %1383, %1386
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds float, ptr %1382, i64 %1388
  store float %1381, ptr %1389, align 4, !tbaa !11
  br label %1390

1390:                                             ; preds = %1354
  %1391 = load i32, ptr %68, align 4, !tbaa !9
  %1392 = add nsw i32 %1391, 1
  store i32 %1392, ptr %68, align 4, !tbaa !9
  br label %1350, !llvm.loop !20

1393:                                             ; preds = %1350
  br label %1394

1394:                                             ; preds = %1393
  %1395 = load i32, ptr %67, align 4, !tbaa !9
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr %67, align 4, !tbaa !9
  br label %1341, !llvm.loop !21

1397:                                             ; preds = %1341
  %1398 = load ptr, ptr %27, align 8, !tbaa !5
  %1399 = load i32, ptr %1398, align 4, !tbaa !9
  store i32 %1399, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1400

1400:                                             ; preds = %1432, %1397
  %1401 = load i32, ptr %67, align 4, !tbaa !9
  %1402 = load i32, ptr %45, align 4, !tbaa !9
  %1403 = icmp sle i32 %1401, %1402
  br i1 %1403, label %1404, label %1435

1404:                                             ; preds = %1400
  %1405 = load ptr, ptr %30, align 8, !tbaa !5
  %1406 = load i32, ptr %67, align 4, !tbaa !9
  %1407 = sext i32 %1406 to i64
  %1408 = getelementptr inbounds float, ptr %1405, i64 %1407
  %1409 = load float, ptr %1408, align 4, !tbaa !11
  %1410 = load ptr, ptr %35, align 8, !tbaa !5
  %1411 = load ptr, ptr %26, align 8, !tbaa !5
  %1412 = load i32, ptr %1411, align 4, !tbaa !9
  %1413 = load ptr, ptr %27, align 8, !tbaa !5
  %1414 = load i32, ptr %1413, align 4, !tbaa !9
  %1415 = add nsw i32 %1412, %1414
  %1416 = load i32, ptr %67, align 4, !tbaa !9
  %1417 = add nsw i32 %1415, %1416
  %1418 = sext i32 %1417 to i64
  %1419 = getelementptr inbounds float, ptr %1410, i64 %1418
  store float %1409, ptr %1419, align 4, !tbaa !11
  %1420 = load ptr, ptr %35, align 8, !tbaa !5
  %1421 = load ptr, ptr %27, align 8, !tbaa !5
  %1422 = load i32, ptr %1421, align 4, !tbaa !9
  %1423 = load i32, ptr %67, align 4, !tbaa !9
  %1424 = add nsw i32 %1422, %1423
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds float, ptr %1420, i64 %1425
  %1427 = load float, ptr %1426, align 4, !tbaa !11
  %1428 = load ptr, ptr %30, align 8, !tbaa !5
  %1429 = load i32, ptr %67, align 4, !tbaa !9
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds float, ptr %1428, i64 %1430
  store float %1427, ptr %1431, align 4, !tbaa !11
  br label %1432

1432:                                             ; preds = %1404
  %1433 = load i32, ptr %67, align 4, !tbaa !9
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr %67, align 4, !tbaa !9
  br label %1400, !llvm.loop !22

1435:                                             ; preds = %1400
  %1436 = load float, ptr %62, align 4, !tbaa !11
  store float %1436, ptr %66, align 4, !tbaa !11
  %1437 = load float, ptr %91, align 4, !tbaa !11
  store float %1437, ptr %62, align 4, !tbaa !11
  %1438 = load float, ptr %66, align 4, !tbaa !11
  store float %1438, ptr %91, align 4, !tbaa !11
  %1439 = load float, ptr %63, align 4, !tbaa !11
  store float %1439, ptr %66, align 4, !tbaa !11
  %1440 = load float, ptr %90, align 4, !tbaa !11
  store float %1440, ptr %63, align 4, !tbaa !11
  %1441 = load float, ptr %66, align 4, !tbaa !11
  store float %1441, ptr %90, align 4, !tbaa !11
  %1442 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %1442, ptr %64, align 4, !tbaa !9
  %1443 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %1443, ptr %73, align 4, !tbaa !9
  %1444 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %1444, ptr %75, align 4, !tbaa !9
  %1445 = load i32, ptr %73, align 4, !tbaa !9
  %1446 = icmp ne i32 %1445, 0
  br i1 %1446, label %1447, label %1450

1447:                                             ; preds = %1435
  %1448 = load ptr, ptr %27, align 8, !tbaa !5
  %1449 = load i32, ptr %1448, align 4, !tbaa !9
  store i32 %1449, ptr %76, align 4, !tbaa !9
  br label %1450

1450:                                             ; preds = %1447, %1435
  store i32 1, ptr %98, align 4, !tbaa !9
  br label %1451

1451:                                             ; preds = %1450, %1320
  br label %1452

1452:                                             ; preds = %1451, %1224
  %1453 = load float, ptr %99, align 4, !tbaa !11
  %1454 = fpext float %1453 to double
  %1455 = call double @sqrt(double noundef %1454) #5
  %1456 = fptrunc double %1455 to float
  store float %1456, ptr %102, align 4, !tbaa !11
  %1457 = load float, ptr %99, align 4, !tbaa !11
  %1458 = load ptr, ptr %27, align 8, !tbaa !5
  %1459 = load i32, ptr %1458, align 4, !tbaa !9
  %1460 = sitofp i32 %1459 to float
  %1461 = fdiv float %1457, %1460
  %1462 = fpext float %1461 to double
  %1463 = call double @sqrt(double noundef %1462) #5
  %1464 = fptrunc double %1463 to float
  store float %1464, ptr %66, align 4, !tbaa !11
  %1465 = load ptr, ptr %27, align 8, !tbaa !5
  %1466 = load ptr, ptr %30, align 8, !tbaa !5
  %1467 = getelementptr inbounds float, ptr %1466, i64 1
  %1468 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %62, ptr noundef %66, ptr noundef %1465, ptr noundef @c__1, ptr noundef %1467, ptr noundef %1468, ptr noundef %65)
  %1469 = load float, ptr %63, align 4, !tbaa !11
  %1470 = load float, ptr %62, align 4, !tbaa !11
  %1471 = load float, ptr %72, align 4, !tbaa !11
  %1472 = fmul float %1470, %1471
  %1473 = fcmp ogt float %1469, %1472
  br i1 %1473, label %1474, label %1480

1474:                                             ; preds = %1452
  %1475 = load float, ptr %63, align 4, !tbaa !11
  %1476 = load float, ptr %62, align 4, !tbaa !11
  %1477 = fdiv float %1475, %1476
  %1478 = load float, ptr %66, align 4, !tbaa !11
  %1479 = fmul float %1477, %1478
  store float %1479, ptr %63, align 4, !tbaa !11
  br label %1486

1480:                                             ; preds = %1452
  %1481 = load float, ptr %63, align 4, !tbaa !11
  %1482 = load float, ptr %66, align 4, !tbaa !11
  %1483 = fmul float %1481, %1482
  %1484 = load float, ptr %62, align 4, !tbaa !11
  %1485 = fdiv float %1483, %1484
  store float %1485, ptr %63, align 4, !tbaa !11
  br label %1486

1486:                                             ; preds = %1480, %1474
  %1487 = load float, ptr %87, align 4, !tbaa !11
  %1488 = load float, ptr %66, align 4, !tbaa !11
  %1489 = fmul float %1488, %1487
  store float %1489, ptr %66, align 4, !tbaa !11
  %1490 = load ptr, ptr %26, align 8, !tbaa !5
  %1491 = load ptr, ptr %27, align 8, !tbaa !5
  %1492 = load ptr, ptr %28, align 8, !tbaa !5
  %1493 = load i32, ptr %40, align 4, !tbaa !9
  %1494 = sext i32 %1493 to i64
  %1495 = getelementptr inbounds float, ptr %1492, i64 %1494
  %1496 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %62, ptr noundef %66, ptr noundef %1490, ptr noundef %1491, ptr noundef %1495, ptr noundef %1496, ptr noundef %65)
  %1497 = load float, ptr %66, align 4, !tbaa !11
  store float %1497, ptr %80, align 4, !tbaa !11
  %1498 = load float, ptr %62, align 4, !tbaa !11
  store float %1498, ptr %81, align 4, !tbaa !11
  %1499 = load i32, ptr %82, align 4, !tbaa !9
  %1500 = icmp ne i32 %1499, 0
  br i1 %1500, label %1501, label %1506

1501:                                             ; preds = %1486
  %1502 = load float, ptr %72, align 4, !tbaa !11
  %1503 = fpext float %1502 to double
  %1504 = call double @sqrt(double noundef %1503) #5
  %1505 = fptrunc double %1504 to float
  store float %1505, ptr %101, align 4, !tbaa !11
  br label %1522

1506:                                             ; preds = %1486
  %1507 = load float, ptr %70, align 4, !tbaa !11
  store float %1507, ptr %101, align 4, !tbaa !11
  %1508 = load float, ptr %63, align 4, !tbaa !11
  %1509 = fpext float %1508 to double
  %1510 = load float, ptr %72, align 4, !tbaa !11
  %1511 = fpext float %1510 to double
  %1512 = call double @sqrt(double noundef %1511) #5
  %1513 = fcmp olt double %1509, %1512
  br i1 %1513, label %1514, label %1521

1514:                                             ; preds = %1506
  %1515 = load i32, ptr %73, align 4, !tbaa !9
  %1516 = icmp ne i32 %1515, 0
  br i1 %1516, label %1517, label %1521

1517:                                             ; preds = %1514
  %1518 = load i32, ptr %75, align 4, !tbaa !9
  %1519 = icmp ne i32 %1518, 0
  br i1 %1519, label %1520, label %1521

1520:                                             ; preds = %1517
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1521

1521:                                             ; preds = %1520, %1517, %1514, %1506
  br label %1522

1522:                                             ; preds = %1521, %1501
  %1523 = load float, ptr %63, align 4, !tbaa !11
  %1524 = load float, ptr %101, align 4, !tbaa !11
  %1525 = fcmp olt float %1523, %1524
  br i1 %1525, label %1526, label %1560

1526:                                             ; preds = %1522
  %1527 = load ptr, ptr %27, align 8, !tbaa !5
  %1528 = load i32, ptr %1527, align 4, !tbaa !9
  store i32 %1528, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1529

1529:                                             ; preds = %1556, %1526
  %1530 = load i32, ptr %67, align 4, !tbaa !9
  %1531 = load i32, ptr %45, align 4, !tbaa !9
  %1532 = icmp sle i32 %1530, %1531
  br i1 %1532, label %1533, label %1559

1533:                                             ; preds = %1529
  %1534 = load ptr, ptr %30, align 8, !tbaa !5
  %1535 = load i32, ptr %67, align 4, !tbaa !9
  %1536 = sext i32 %1535 to i64
  %1537 = getelementptr inbounds float, ptr %1534, i64 %1536
  %1538 = load float, ptr %1537, align 4, !tbaa !11
  %1539 = load float, ptr %101, align 4, !tbaa !11
  %1540 = fcmp olt float %1538, %1539
  br i1 %1540, label %1541, label %1555

1541:                                             ; preds = %1533
  %1542 = load ptr, ptr %26, align 8, !tbaa !5
  %1543 = load ptr, ptr %28, align 8, !tbaa !5
  %1544 = load i32, ptr %67, align 4, !tbaa !9
  %1545 = load i32, ptr %39, align 4, !tbaa !9
  %1546 = mul nsw i32 %1544, %1545
  %1547 = add nsw i32 %1546, 1
  %1548 = sext i32 %1547 to i64
  %1549 = getelementptr inbounds float, ptr %1543, i64 %1548
  %1550 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %1542, ptr noundef @c__1, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %1549, ptr noundef %1550)
  %1551 = load ptr, ptr %30, align 8, !tbaa !5
  %1552 = load i32, ptr %67, align 4, !tbaa !9
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds float, ptr %1551, i64 %1553
  store float 0.000000e+00, ptr %1554, align 4, !tbaa !11
  br label %1555

1555:                                             ; preds = %1541, %1533
  br label %1556

1556:                                             ; preds = %1555
  %1557 = load i32, ptr %67, align 4, !tbaa !9
  %1558 = add nsw i32 %1557, 1
  store i32 %1558, ptr %67, align 4, !tbaa !9
  br label %1529, !llvm.loop !23

1559:                                             ; preds = %1529
  br label %1560

1560:                                             ; preds = %1559, %1522
  %1561 = load i32, ptr %98, align 4, !tbaa !9
  %1562 = icmp ne i32 %1561, 0
  br i1 %1562, label %1563, label %1669

1563:                                             ; preds = %1560
  %1564 = load ptr, ptr %26, align 8, !tbaa !5
  %1565 = load i32, ptr %1564, align 4, !tbaa !9
  %1566 = sub nsw i32 %1565, 1
  store i32 %1566, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1567

1567:                                             ; preds = %1648, %1563
  %1568 = load i32, ptr %67, align 4, !tbaa !9
  %1569 = load i32, ptr %45, align 4, !tbaa !9
  %1570 = icmp sle i32 %1568, %1569
  br i1 %1570, label %1571, label %1651

1571:                                             ; preds = %1567
  %1572 = load ptr, ptr %26, align 8, !tbaa !5
  %1573 = load i32, ptr %1572, align 4, !tbaa !9
  %1574 = load i32, ptr %67, align 4, !tbaa !9
  %1575 = sub nsw i32 %1573, %1574
  %1576 = add nsw i32 %1575, 1
  store i32 %1576, ptr %46, align 4, !tbaa !9
  %1577 = load ptr, ptr %35, align 8, !tbaa !5
  %1578 = load ptr, ptr %26, align 8, !tbaa !5
  %1579 = load i32, ptr %1578, align 4, !tbaa !9
  %1580 = load ptr, ptr %27, align 8, !tbaa !5
  %1581 = load i32, ptr %1580, align 4, !tbaa !9
  %1582 = add nsw i32 %1579, %1581
  %1583 = load i32, ptr %67, align 4, !tbaa !9
  %1584 = add nsw i32 %1582, %1583
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds float, ptr %1577, i64 %1585
  %1587 = call i32 @isamax_(ptr noundef %46, ptr noundef %1586, ptr noundef @c__1)
  %1588 = load i32, ptr %67, align 4, !tbaa !9
  %1589 = add nsw i32 %1587, %1588
  %1590 = sub nsw i32 %1589, 1
  store i32 %1590, ptr %68, align 4, !tbaa !9
  %1591 = load i32, ptr %68, align 4, !tbaa !9
  %1592 = load ptr, ptr %37, align 8, !tbaa !5
  %1593 = load ptr, ptr %27, align 8, !tbaa !5
  %1594 = load i32, ptr %1593, align 4, !tbaa !9
  %1595 = shl i32 %1594, 1
  %1596 = load i32, ptr %67, align 4, !tbaa !9
  %1597 = add nsw i32 %1595, %1596
  %1598 = sext i32 %1597 to i64
  %1599 = getelementptr inbounds i32, ptr %1592, i64 %1598
  store i32 %1591, ptr %1599, align 4, !tbaa !9
  %1600 = load i32, ptr %67, align 4, !tbaa !9
  %1601 = load i32, ptr %68, align 4, !tbaa !9
  %1602 = icmp ne i32 %1600, %1601
  br i1 %1602, label %1603, label %1647

1603:                                             ; preds = %1571
  %1604 = load ptr, ptr %35, align 8, !tbaa !5
  %1605 = load ptr, ptr %26, align 8, !tbaa !5
  %1606 = load i32, ptr %1605, align 4, !tbaa !9
  %1607 = load ptr, ptr %27, align 8, !tbaa !5
  %1608 = load i32, ptr %1607, align 4, !tbaa !9
  %1609 = add nsw i32 %1606, %1608
  %1610 = load i32, ptr %67, align 4, !tbaa !9
  %1611 = add nsw i32 %1609, %1610
  %1612 = sext i32 %1611 to i64
  %1613 = getelementptr inbounds float, ptr %1604, i64 %1612
  %1614 = load float, ptr %1613, align 4, !tbaa !11
  store float %1614, ptr %66, align 4, !tbaa !11
  %1615 = load ptr, ptr %35, align 8, !tbaa !5
  %1616 = load ptr, ptr %26, align 8, !tbaa !5
  %1617 = load i32, ptr %1616, align 4, !tbaa !9
  %1618 = load ptr, ptr %27, align 8, !tbaa !5
  %1619 = load i32, ptr %1618, align 4, !tbaa !9
  %1620 = add nsw i32 %1617, %1619
  %1621 = load i32, ptr %68, align 4, !tbaa !9
  %1622 = add nsw i32 %1620, %1621
  %1623 = sext i32 %1622 to i64
  %1624 = getelementptr inbounds float, ptr %1615, i64 %1623
  %1625 = load float, ptr %1624, align 4, !tbaa !11
  %1626 = load ptr, ptr %35, align 8, !tbaa !5
  %1627 = load ptr, ptr %26, align 8, !tbaa !5
  %1628 = load i32, ptr %1627, align 4, !tbaa !9
  %1629 = load ptr, ptr %27, align 8, !tbaa !5
  %1630 = load i32, ptr %1629, align 4, !tbaa !9
  %1631 = add nsw i32 %1628, %1630
  %1632 = load i32, ptr %67, align 4, !tbaa !9
  %1633 = add nsw i32 %1631, %1632
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds float, ptr %1626, i64 %1634
  store float %1625, ptr %1635, align 4, !tbaa !11
  %1636 = load float, ptr %66, align 4, !tbaa !11
  %1637 = load ptr, ptr %35, align 8, !tbaa !5
  %1638 = load ptr, ptr %26, align 8, !tbaa !5
  %1639 = load i32, ptr %1638, align 4, !tbaa !9
  %1640 = load ptr, ptr %27, align 8, !tbaa !5
  %1641 = load i32, ptr %1640, align 4, !tbaa !9
  %1642 = add nsw i32 %1639, %1641
  %1643 = load i32, ptr %68, align 4, !tbaa !9
  %1644 = add nsw i32 %1642, %1643
  %1645 = sext i32 %1644 to i64
  %1646 = getelementptr inbounds float, ptr %1637, i64 %1645
  store float %1636, ptr %1646, align 4, !tbaa !11
  br label %1647

1647:                                             ; preds = %1603, %1571
  br label %1648

1648:                                             ; preds = %1647
  %1649 = load i32, ptr %67, align 4, !tbaa !9
  %1650 = add nsw i32 %1649, 1
  store i32 %1650, ptr %67, align 4, !tbaa !9
  br label %1567, !llvm.loop !24

1651:                                             ; preds = %1567
  %1652 = load ptr, ptr %26, align 8, !tbaa !5
  %1653 = load i32, ptr %1652, align 4, !tbaa !9
  %1654 = sub nsw i32 %1653, 1
  store i32 %1654, ptr %45, align 4, !tbaa !9
  %1655 = load ptr, ptr %27, align 8, !tbaa !5
  %1656 = load ptr, ptr %28, align 8, !tbaa !5
  %1657 = load i32, ptr %40, align 4, !tbaa !9
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds float, ptr %1656, i64 %1658
  %1660 = load ptr, ptr %29, align 8, !tbaa !5
  %1661 = load ptr, ptr %37, align 8, !tbaa !5
  %1662 = load ptr, ptr %27, align 8, !tbaa !5
  %1663 = load i32, ptr %1662, align 4, !tbaa !9
  %1664 = shl i32 %1663, 1
  %1665 = add nsw i32 %1664, 1
  %1666 = sext i32 %1665 to i64
  %1667 = getelementptr inbounds i32, ptr %1661, i64 %1666
  %1668 = call i32 @slaswp_(ptr noundef %1655, ptr noundef %1659, ptr noundef %1660, ptr noundef @c__1, ptr noundef %45, ptr noundef %1667, ptr noundef @c__1)
  br label %1669

1669:                                             ; preds = %1651, %1560
  %1670 = load ptr, ptr %27, align 8, !tbaa !5
  %1671 = load i32, ptr %1670, align 4, !tbaa !9
  store i32 %1671, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1672

1672:                                             ; preds = %1681, %1669
  %1673 = load i32, ptr %67, align 4, !tbaa !9
  %1674 = load i32, ptr %45, align 4, !tbaa !9
  %1675 = icmp sle i32 %1673, %1674
  br i1 %1675, label %1676, label %1684

1676:                                             ; preds = %1672
  %1677 = load ptr, ptr %37, align 8, !tbaa !5
  %1678 = load i32, ptr %67, align 4, !tbaa !9
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds i32, ptr %1677, i64 %1679
  store i32 0, ptr %1680, align 4, !tbaa !9
  br label %1681

1681:                                             ; preds = %1676
  %1682 = load i32, ptr %67, align 4, !tbaa !9
  %1683 = add nsw i32 %1682, 1
  store i32 %1683, ptr %67, align 4, !tbaa !9
  br label %1672, !llvm.loop !25

1684:                                             ; preds = %1672
  %1685 = load ptr, ptr %36, align 8, !tbaa !5
  %1686 = load i32, ptr %1685, align 4, !tbaa !9
  %1687 = load ptr, ptr %27, align 8, !tbaa !5
  %1688 = load i32, ptr %1687, align 4, !tbaa !9
  %1689 = sub nsw i32 %1686, %1688
  store i32 %1689, ptr %45, align 4, !tbaa !9
  %1690 = load ptr, ptr %26, align 8, !tbaa !5
  %1691 = load ptr, ptr %27, align 8, !tbaa !5
  %1692 = load ptr, ptr %28, align 8, !tbaa !5
  %1693 = load i32, ptr %40, align 4, !tbaa !9
  %1694 = sext i32 %1693 to i64
  %1695 = getelementptr inbounds float, ptr %1692, i64 %1694
  %1696 = load ptr, ptr %29, align 8, !tbaa !5
  %1697 = load ptr, ptr %37, align 8, !tbaa !5
  %1698 = getelementptr inbounds i32, ptr %1697, i64 1
  %1699 = load ptr, ptr %35, align 8, !tbaa !5
  %1700 = getelementptr inbounds float, ptr %1699, i64 1
  %1701 = load ptr, ptr %35, align 8, !tbaa !5
  %1702 = load ptr, ptr %27, align 8, !tbaa !5
  %1703 = load i32, ptr %1702, align 4, !tbaa !9
  %1704 = add nsw i32 %1703, 1
  %1705 = sext i32 %1704 to i64
  %1706 = getelementptr inbounds float, ptr %1701, i64 %1705
  call void @sgeqp3_(ptr noundef %1690, ptr noundef %1691, ptr noundef %1695, ptr noundef %1696, ptr noundef %1698, ptr noundef %1700, ptr noundef %1706, ptr noundef %45, ptr noundef %65)
  store i32 1, ptr %86, align 4, !tbaa !9
  %1707 = load i32, ptr %77, align 4, !tbaa !9
  %1708 = icmp ne i32 %1707, 0
  br i1 %1708, label %1709, label %1772

1709:                                             ; preds = %1684
  %1710 = load ptr, ptr %27, align 8, !tbaa !5
  %1711 = load i32, ptr %1710, align 4, !tbaa !9
  %1712 = sitofp i32 %1711 to float
  %1713 = fpext float %1712 to double
  %1714 = call double @sqrt(double noundef %1713) #5
  %1715 = load float, ptr %74, align 4, !tbaa !11
  %1716 = fpext float %1715 to double
  %1717 = fmul double %1714, %1716
  %1718 = fptrunc double %1717 to float
  store float %1718, ptr %66, align 4, !tbaa !11
  %1719 = load ptr, ptr %27, align 8, !tbaa !5
  %1720 = load i32, ptr %1719, align 4, !tbaa !9
  store i32 %1720, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %1721

1721:                                             ; preds = %1767, %1709
  %1722 = load i32, ptr %67, align 4, !tbaa !9
  %1723 = load i32, ptr %45, align 4, !tbaa !9
  %1724 = icmp sle i32 %1722, %1723
  br i1 %1724, label %1725, label %1770

1725:                                             ; preds = %1721
  %1726 = load ptr, ptr %28, align 8, !tbaa !5
  %1727 = load i32, ptr %67, align 4, !tbaa !9
  %1728 = load i32, ptr %67, align 4, !tbaa !9
  %1729 = load i32, ptr %39, align 4, !tbaa !9
  %1730 = mul nsw i32 %1728, %1729
  %1731 = add nsw i32 %1727, %1730
  %1732 = sext i32 %1731 to i64
  %1733 = getelementptr inbounds float, ptr %1726, i64 %1732
  %1734 = load float, ptr %1733, align 4, !tbaa !11
  store float %1734, ptr %58, align 4, !tbaa !11
  %1735 = load float, ptr %58, align 4, !tbaa !11
  %1736 = fcmp oge float %1735, 0.000000e+00
  br i1 %1736, label %1737, label %1739

1737:                                             ; preds = %1725
  %1738 = load float, ptr %58, align 4, !tbaa !11
  br label %1742

1739:                                             ; preds = %1725
  %1740 = load float, ptr %58, align 4, !tbaa !11
  %1741 = fneg float %1740
  br label %1742

1742:                                             ; preds = %1739, %1737
  %1743 = phi float [ %1738, %1737 ], [ %1741, %1739 ]
  %1744 = load float, ptr %66, align 4, !tbaa !11
  %1745 = load ptr, ptr %28, align 8, !tbaa !5
  %1746 = load i32, ptr %39, align 4, !tbaa !9
  %1747 = add nsw i32 %1746, 1
  %1748 = sext i32 %1747 to i64
  %1749 = getelementptr inbounds float, ptr %1745, i64 %1748
  %1750 = load float, ptr %1749, align 4, !tbaa !11
  store float %1750, ptr %57, align 4, !tbaa !11
  %1751 = load float, ptr %57, align 4, !tbaa !11
  %1752 = fcmp oge float %1751, 0.000000e+00
  br i1 %1752, label %1753, label %1755

1753:                                             ; preds = %1742
  %1754 = load float, ptr %57, align 4, !tbaa !11
  br label %1758

1755:                                             ; preds = %1742
  %1756 = load float, ptr %57, align 4, !tbaa !11
  %1757 = fneg float %1756
  br label %1758

1758:                                             ; preds = %1755, %1753
  %1759 = phi float [ %1754, %1753 ], [ %1757, %1755 ]
  %1760 = fmul float %1744, %1759
  %1761 = fcmp oge float %1743, %1760
  br i1 %1761, label %1762, label %1765

1762:                                             ; preds = %1758
  %1763 = load i32, ptr %86, align 4, !tbaa !9
  %1764 = add nsw i32 %1763, 1
  store i32 %1764, ptr %86, align 4, !tbaa !9
  br label %1766

1765:                                             ; preds = %1758
  br label %1771

1766:                                             ; preds = %1762
  br label %1767

1767:                                             ; preds = %1766
  %1768 = load i32, ptr %67, align 4, !tbaa !9
  %1769 = add nsw i32 %1768, 1
  store i32 %1769, ptr %67, align 4, !tbaa !9
  br label %1721, !llvm.loop !26

1770:                                             ; preds = %1721
  br label %1771

1771:                                             ; preds = %1770, %1765
  br label %1948

1772:                                             ; preds = %1684
  %1773 = load i32, ptr %83, align 4, !tbaa !9
  %1774 = icmp ne i32 %1773, 0
  br i1 %1774, label %1775, label %1882

1775:                                             ; preds = %1772
  %1776 = load float, ptr %72, align 4, !tbaa !11
  %1777 = fpext float %1776 to double
  %1778 = call double @sqrt(double noundef %1777) #5
  %1779 = fptrunc double %1778 to float
  store float %1779, ptr %66, align 4, !tbaa !11
  %1780 = load ptr, ptr %27, align 8, !tbaa !5
  %1781 = load i32, ptr %1780, align 4, !tbaa !9
  store i32 %1781, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %1782

1782:                                             ; preds = %1877, %1775
  %1783 = load i32, ptr %67, align 4, !tbaa !9
  %1784 = load i32, ptr %45, align 4, !tbaa !9
  %1785 = icmp sle i32 %1783, %1784
  br i1 %1785, label %1786, label %1880

1786:                                             ; preds = %1782
  %1787 = load ptr, ptr %28, align 8, !tbaa !5
  %1788 = load i32, ptr %67, align 4, !tbaa !9
  %1789 = load i32, ptr %67, align 4, !tbaa !9
  %1790 = load i32, ptr %39, align 4, !tbaa !9
  %1791 = mul nsw i32 %1789, %1790
  %1792 = add nsw i32 %1788, %1791
  %1793 = sext i32 %1792 to i64
  %1794 = getelementptr inbounds float, ptr %1787, i64 %1793
  %1795 = load float, ptr %1794, align 4, !tbaa !11
  store float %1795, ptr %58, align 4, !tbaa !11
  %1796 = load float, ptr %58, align 4, !tbaa !11
  %1797 = fcmp oge float %1796, 0.000000e+00
  br i1 %1797, label %1798, label %1800

1798:                                             ; preds = %1786
  %1799 = load float, ptr %58, align 4, !tbaa !11
  br label %1803

1800:                                             ; preds = %1786
  %1801 = load float, ptr %58, align 4, !tbaa !11
  %1802 = fneg float %1801
  br label %1803

1803:                                             ; preds = %1800, %1798
  %1804 = phi float [ %1799, %1798 ], [ %1802, %1800 ]
  %1805 = load float, ptr %74, align 4, !tbaa !11
  %1806 = load ptr, ptr %28, align 8, !tbaa !5
  %1807 = load i32, ptr %67, align 4, !tbaa !9
  %1808 = sub nsw i32 %1807, 1
  %1809 = load i32, ptr %67, align 4, !tbaa !9
  %1810 = sub nsw i32 %1809, 1
  %1811 = load i32, ptr %39, align 4, !tbaa !9
  %1812 = mul nsw i32 %1810, %1811
  %1813 = add nsw i32 %1808, %1812
  %1814 = sext i32 %1813 to i64
  %1815 = getelementptr inbounds float, ptr %1806, i64 %1814
  %1816 = load float, ptr %1815, align 4, !tbaa !11
  store float %1816, ptr %57, align 4, !tbaa !11
  %1817 = load float, ptr %57, align 4, !tbaa !11
  %1818 = fcmp oge float %1817, 0.000000e+00
  br i1 %1818, label %1819, label %1821

1819:                                             ; preds = %1803
  %1820 = load float, ptr %57, align 4, !tbaa !11
  br label %1824

1821:                                             ; preds = %1803
  %1822 = load float, ptr %57, align 4, !tbaa !11
  %1823 = fneg float %1822
  br label %1824

1824:                                             ; preds = %1821, %1819
  %1825 = phi float [ %1820, %1819 ], [ %1823, %1821 ]
  %1826 = fmul float %1805, %1825
  %1827 = fcmp olt float %1804, %1826
  br i1 %1827, label %1873, label %1828

1828:                                             ; preds = %1824
  %1829 = load ptr, ptr %28, align 8, !tbaa !5
  %1830 = load i32, ptr %67, align 4, !tbaa !9
  %1831 = load i32, ptr %67, align 4, !tbaa !9
  %1832 = load i32, ptr %39, align 4, !tbaa !9
  %1833 = mul nsw i32 %1831, %1832
  %1834 = add nsw i32 %1830, %1833
  %1835 = sext i32 %1834 to i64
  %1836 = getelementptr inbounds float, ptr %1829, i64 %1835
  %1837 = load float, ptr %1836, align 4, !tbaa !11
  store float %1837, ptr %59, align 4, !tbaa !11
  %1838 = load float, ptr %59, align 4, !tbaa !11
  %1839 = fcmp oge float %1838, 0.000000e+00
  br i1 %1839, label %1840, label %1842

1840:                                             ; preds = %1828
  %1841 = load float, ptr %59, align 4, !tbaa !11
  br label %1845

1842:                                             ; preds = %1828
  %1843 = load float, ptr %59, align 4, !tbaa !11
  %1844 = fneg float %1843
  br label %1845

1845:                                             ; preds = %1842, %1840
  %1846 = phi float [ %1841, %1840 ], [ %1844, %1842 ]
  %1847 = load float, ptr %70, align 4, !tbaa !11
  %1848 = fcmp olt float %1846, %1847
  br i1 %1848, label %1873, label %1849

1849:                                             ; preds = %1845
  %1850 = load i32, ptr %82, align 4, !tbaa !9
  %1851 = icmp ne i32 %1850, 0
  br i1 %1851, label %1852, label %1874

1852:                                             ; preds = %1849
  %1853 = load ptr, ptr %28, align 8, !tbaa !5
  %1854 = load i32, ptr %67, align 4, !tbaa !9
  %1855 = load i32, ptr %67, align 4, !tbaa !9
  %1856 = load i32, ptr %39, align 4, !tbaa !9
  %1857 = mul nsw i32 %1855, %1856
  %1858 = add nsw i32 %1854, %1857
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds float, ptr %1853, i64 %1859
  %1861 = load float, ptr %1860, align 4, !tbaa !11
  store float %1861, ptr %60, align 4, !tbaa !11
  %1862 = load float, ptr %60, align 4, !tbaa !11
  %1863 = fcmp oge float %1862, 0.000000e+00
  br i1 %1863, label %1864, label %1866

1864:                                             ; preds = %1852
  %1865 = load float, ptr %60, align 4, !tbaa !11
  br label %1869

1866:                                             ; preds = %1852
  %1867 = load float, ptr %60, align 4, !tbaa !11
  %1868 = fneg float %1867
  br label %1869

1869:                                             ; preds = %1866, %1864
  %1870 = phi float [ %1865, %1864 ], [ %1868, %1866 ]
  %1871 = load float, ptr %66, align 4, !tbaa !11
  %1872 = fcmp olt float %1870, %1871
  br i1 %1872, label %1873, label %1874

1873:                                             ; preds = %1869, %1845, %1824
  br label %1881

1874:                                             ; preds = %1869, %1849
  %1875 = load i32, ptr %86, align 4, !tbaa !9
  %1876 = add nsw i32 %1875, 1
  store i32 %1876, ptr %86, align 4, !tbaa !9
  br label %1877

1877:                                             ; preds = %1874
  %1878 = load i32, ptr %67, align 4, !tbaa !9
  %1879 = add nsw i32 %1878, 1
  store i32 %1879, ptr %67, align 4, !tbaa !9
  br label %1782, !llvm.loop !27

1880:                                             ; preds = %1782
  br label %1881

1881:                                             ; preds = %1880, %1873
  br label %1947

1882:                                             ; preds = %1772
  %1883 = load float, ptr %72, align 4, !tbaa !11
  %1884 = fpext float %1883 to double
  %1885 = call double @sqrt(double noundef %1884) #5
  %1886 = fptrunc double %1885 to float
  store float %1886, ptr %66, align 4, !tbaa !11
  %1887 = load ptr, ptr %27, align 8, !tbaa !5
  %1888 = load i32, ptr %1887, align 4, !tbaa !9
  store i32 %1888, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %1889

1889:                                             ; preds = %1942, %1882
  %1890 = load i32, ptr %67, align 4, !tbaa !9
  %1891 = load i32, ptr %45, align 4, !tbaa !9
  %1892 = icmp sle i32 %1890, %1891
  br i1 %1892, label %1893, label %1945

1893:                                             ; preds = %1889
  %1894 = load ptr, ptr %28, align 8, !tbaa !5
  %1895 = load i32, ptr %67, align 4, !tbaa !9
  %1896 = load i32, ptr %67, align 4, !tbaa !9
  %1897 = load i32, ptr %39, align 4, !tbaa !9
  %1898 = mul nsw i32 %1896, %1897
  %1899 = add nsw i32 %1895, %1898
  %1900 = sext i32 %1899 to i64
  %1901 = getelementptr inbounds float, ptr %1894, i64 %1900
  %1902 = load float, ptr %1901, align 4, !tbaa !11
  store float %1902, ptr %57, align 4, !tbaa !11
  %1903 = load float, ptr %57, align 4, !tbaa !11
  %1904 = fcmp oge float %1903, 0.000000e+00
  br i1 %1904, label %1905, label %1907

1905:                                             ; preds = %1893
  %1906 = load float, ptr %57, align 4, !tbaa !11
  br label %1910

1907:                                             ; preds = %1893
  %1908 = load float, ptr %57, align 4, !tbaa !11
  %1909 = fneg float %1908
  br label %1910

1910:                                             ; preds = %1907, %1905
  %1911 = phi float [ %1906, %1905 ], [ %1909, %1907 ]
  %1912 = load float, ptr %70, align 4, !tbaa !11
  %1913 = fcmp olt float %1911, %1912
  br i1 %1913, label %1938, label %1914

1914:                                             ; preds = %1910
  %1915 = load i32, ptr %82, align 4, !tbaa !9
  %1916 = icmp ne i32 %1915, 0
  br i1 %1916, label %1917, label %1939

1917:                                             ; preds = %1914
  %1918 = load ptr, ptr %28, align 8, !tbaa !5
  %1919 = load i32, ptr %67, align 4, !tbaa !9
  %1920 = load i32, ptr %67, align 4, !tbaa !9
  %1921 = load i32, ptr %39, align 4, !tbaa !9
  %1922 = mul nsw i32 %1920, %1921
  %1923 = add nsw i32 %1919, %1922
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds float, ptr %1918, i64 %1924
  %1926 = load float, ptr %1925, align 4, !tbaa !11
  store float %1926, ptr %58, align 4, !tbaa !11
  %1927 = load float, ptr %58, align 4, !tbaa !11
  %1928 = fcmp oge float %1927, 0.000000e+00
  br i1 %1928, label %1929, label %1931

1929:                                             ; preds = %1917
  %1930 = load float, ptr %58, align 4, !tbaa !11
  br label %1934

1931:                                             ; preds = %1917
  %1932 = load float, ptr %58, align 4, !tbaa !11
  %1933 = fneg float %1932
  br label %1934

1934:                                             ; preds = %1931, %1929
  %1935 = phi float [ %1930, %1929 ], [ %1933, %1931 ]
  %1936 = load float, ptr %66, align 4, !tbaa !11
  %1937 = fcmp olt float %1935, %1936
  br i1 %1937, label %1938, label %1939

1938:                                             ; preds = %1934, %1910
  br label %1946

1939:                                             ; preds = %1934, %1914
  %1940 = load i32, ptr %86, align 4, !tbaa !9
  %1941 = add nsw i32 %1940, 1
  store i32 %1941, ptr %86, align 4, !tbaa !9
  br label %1942

1942:                                             ; preds = %1939
  %1943 = load i32, ptr %67, align 4, !tbaa !9
  %1944 = add nsw i32 %1943, 1
  store i32 %1944, ptr %67, align 4, !tbaa !9
  br label %1889, !llvm.loop !28

1945:                                             ; preds = %1889
  br label %1946

1946:                                             ; preds = %1945, %1938
  br label %1947

1947:                                             ; preds = %1946, %1881
  br label %1948

1948:                                             ; preds = %1947, %1771
  store i32 0, ptr %94, align 4, !tbaa !9
  %1949 = load i32, ptr %86, align 4, !tbaa !9
  %1950 = load ptr, ptr %27, align 8, !tbaa !5
  %1951 = load i32, ptr %1950, align 4, !tbaa !9
  %1952 = icmp eq i32 %1949, %1951
  br i1 %1952, label %1953, label %2015

1953:                                             ; preds = %1948
  store float 1.000000e+00, ptr %95, align 4, !tbaa !11
  %1954 = load ptr, ptr %27, align 8, !tbaa !5
  %1955 = load i32, ptr %1954, align 4, !tbaa !9
  store i32 %1955, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %1956

1956:                                             ; preds = %1998, %1953
  %1957 = load i32, ptr %67, align 4, !tbaa !9
  %1958 = load i32, ptr %45, align 4, !tbaa !9
  %1959 = icmp sle i32 %1957, %1958
  br i1 %1959, label %1960, label %2001

1960:                                             ; preds = %1956
  %1961 = load ptr, ptr %28, align 8, !tbaa !5
  %1962 = load i32, ptr %67, align 4, !tbaa !9
  %1963 = load i32, ptr %67, align 4, !tbaa !9
  %1964 = load i32, ptr %39, align 4, !tbaa !9
  %1965 = mul nsw i32 %1963, %1964
  %1966 = add nsw i32 %1962, %1965
  %1967 = sext i32 %1966 to i64
  %1968 = getelementptr inbounds float, ptr %1961, i64 %1967
  %1969 = load float, ptr %1968, align 4, !tbaa !11
  store float %1969, ptr %57, align 4, !tbaa !11
  %1970 = load float, ptr %57, align 4, !tbaa !11
  %1971 = fcmp oge float %1970, 0.000000e+00
  br i1 %1971, label %1972, label %1974

1972:                                             ; preds = %1960
  %1973 = load float, ptr %57, align 4, !tbaa !11
  br label %1977

1974:                                             ; preds = %1960
  %1975 = load float, ptr %57, align 4, !tbaa !11
  %1976 = fneg float %1975
  br label %1977

1977:                                             ; preds = %1974, %1972
  %1978 = phi float [ %1973, %1972 ], [ %1976, %1974 ]
  %1979 = load ptr, ptr %30, align 8, !tbaa !5
  %1980 = load ptr, ptr %37, align 8, !tbaa !5
  %1981 = load i32, ptr %67, align 4, !tbaa !9
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds i32, ptr %1980, i64 %1982
  %1984 = load i32, ptr %1983, align 4, !tbaa !9
  %1985 = sext i32 %1984 to i64
  %1986 = getelementptr inbounds float, ptr %1979, i64 %1985
  %1987 = load float, ptr %1986, align 4, !tbaa !11
  %1988 = fdiv float %1978, %1987
  store float %1988, ptr %66, align 4, !tbaa !11
  %1989 = load float, ptr %95, align 4, !tbaa !11
  %1990 = load float, ptr %66, align 4, !tbaa !11
  %1991 = fcmp ole float %1989, %1990
  br i1 %1991, label %1992, label %1994

1992:                                             ; preds = %1977
  %1993 = load float, ptr %95, align 4, !tbaa !11
  br label %1996

1994:                                             ; preds = %1977
  %1995 = load float, ptr %66, align 4, !tbaa !11
  br label %1996

1996:                                             ; preds = %1994, %1992
  %1997 = phi float [ %1993, %1992 ], [ %1995, %1994 ]
  store float %1997, ptr %95, align 4, !tbaa !11
  br label %1998

1998:                                             ; preds = %1996
  %1999 = load i32, ptr %67, align 4, !tbaa !9
  %2000 = add nsw i32 %1999, 1
  store i32 %2000, ptr %67, align 4, !tbaa !9
  br label %1956, !llvm.loop !29

2001:                                             ; preds = %1956
  %2002 = load float, ptr %95, align 4, !tbaa !11
  store float %2002, ptr %57, align 4, !tbaa !11
  %2003 = load float, ptr %57, align 4, !tbaa !11
  %2004 = load float, ptr %57, align 4, !tbaa !11
  %2005 = fmul float %2003, %2004
  %2006 = load ptr, ptr %27, align 8, !tbaa !5
  %2007 = load i32, ptr %2006, align 4, !tbaa !9
  %2008 = sitofp i32 %2007 to float
  %2009 = load float, ptr %74, align 4, !tbaa !11
  %2010 = fneg float %2008
  %2011 = call float @llvm.fmuladd.f32(float %2010, float %2009, float 1.000000e+00)
  %2012 = fcmp oge float %2005, %2011
  br i1 %2012, label %2013, label %2014

2013:                                             ; preds = %2001
  store i32 1, ptr %94, align 4, !tbaa !9
  br label %2014

2014:                                             ; preds = %2013, %2001
  br label %2015

2015:                                             ; preds = %2014, %1948
  store float -1.000000e+00, ptr %88, align 4, !tbaa !11
  store float -1.000000e+00, ptr %78, align 4, !tbaa !11
  store float -1.000000e+00, ptr %79, align 4, !tbaa !11
  %2016 = load i32, ptr %96, align 4, !tbaa !9
  %2017 = icmp ne i32 %2016, 0
  br i1 %2017, label %2018, label %2245

2018:                                             ; preds = %2015
  %2019 = load ptr, ptr %27, align 8, !tbaa !5
  %2020 = load i32, ptr %2019, align 4, !tbaa !9
  %2021 = load i32, ptr %86, align 4, !tbaa !9
  %2022 = icmp eq i32 %2020, %2021
  br i1 %2022, label %2023, label %2243

2023:                                             ; preds = %2018
  %2024 = load i32, ptr %75, align 4, !tbaa !9
  %2025 = icmp ne i32 %2024, 0
  br i1 %2025, label %2026, label %2090

2026:                                             ; preds = %2023
  %2027 = load ptr, ptr %27, align 8, !tbaa !5
  %2028 = load ptr, ptr %27, align 8, !tbaa !5
  %2029 = load ptr, ptr %28, align 8, !tbaa !5
  %2030 = load i32, ptr %40, align 4, !tbaa !9
  %2031 = sext i32 %2030 to i64
  %2032 = getelementptr inbounds float, ptr %2029, i64 %2031
  %2033 = load ptr, ptr %29, align 8, !tbaa !5
  %2034 = load ptr, ptr %33, align 8, !tbaa !5
  %2035 = load i32, ptr %44, align 4, !tbaa !9
  %2036 = sext i32 %2035 to i64
  %2037 = getelementptr inbounds float, ptr %2034, i64 %2036
  %2038 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %2027, ptr noundef %2028, ptr noundef %2032, ptr noundef %2033, ptr noundef %2037, ptr noundef %2038)
  %2039 = load ptr, ptr %27, align 8, !tbaa !5
  %2040 = load i32, ptr %2039, align 4, !tbaa !9
  store i32 %2040, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2041

2041:                                             ; preds = %2064, %2026
  %2042 = load i32, ptr %67, align 4, !tbaa !9
  %2043 = load i32, ptr %45, align 4, !tbaa !9
  %2044 = icmp sle i32 %2042, %2043
  br i1 %2044, label %2045, label %2067

2045:                                             ; preds = %2041
  %2046 = load ptr, ptr %30, align 8, !tbaa !5
  %2047 = load ptr, ptr %37, align 8, !tbaa !5
  %2048 = load i32, ptr %67, align 4, !tbaa !9
  %2049 = sext i32 %2048 to i64
  %2050 = getelementptr inbounds i32, ptr %2047, i64 %2049
  %2051 = load i32, ptr %2050, align 4, !tbaa !9
  %2052 = sext i32 %2051 to i64
  %2053 = getelementptr inbounds float, ptr %2046, i64 %2052
  %2054 = load float, ptr %2053, align 4, !tbaa !11
  store float %2054, ptr %66, align 4, !tbaa !11
  %2055 = load float, ptr %66, align 4, !tbaa !11
  %2056 = fdiv float 1.000000e+00, %2055
  store float %2056, ptr %57, align 4, !tbaa !11
  %2057 = load ptr, ptr %33, align 8, !tbaa !5
  %2058 = load i32, ptr %67, align 4, !tbaa !9
  %2059 = load i32, ptr %43, align 4, !tbaa !9
  %2060 = mul nsw i32 %2058, %2059
  %2061 = add nsw i32 %2060, 1
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds float, ptr %2057, i64 %2062
  call void @sscal_(ptr noundef %67, ptr noundef %57, ptr noundef %2063, ptr noundef @c__1)
  br label %2064

2064:                                             ; preds = %2045
  %2065 = load i32, ptr %67, align 4, !tbaa !9
  %2066 = add nsw i32 %2065, 1
  store i32 %2066, ptr %67, align 4, !tbaa !9
  br label %2041, !llvm.loop !30

2067:                                             ; preds = %2041
  %2068 = load ptr, ptr %27, align 8, !tbaa !5
  %2069 = load ptr, ptr %33, align 8, !tbaa !5
  %2070 = load i32, ptr %44, align 4, !tbaa !9
  %2071 = sext i32 %2070 to i64
  %2072 = getelementptr inbounds float, ptr %2069, i64 %2071
  %2073 = load ptr, ptr %34, align 8, !tbaa !5
  %2074 = load ptr, ptr %35, align 8, !tbaa !5
  %2075 = load ptr, ptr %27, align 8, !tbaa !5
  %2076 = load i32, ptr %2075, align 4, !tbaa !9
  %2077 = add nsw i32 %2076, 1
  %2078 = sext i32 %2077 to i64
  %2079 = getelementptr inbounds float, ptr %2074, i64 %2078
  %2080 = load ptr, ptr %37, align 8, !tbaa !5
  %2081 = load ptr, ptr %27, align 8, !tbaa !5
  %2082 = load i32, ptr %2081, align 4, !tbaa !9
  %2083 = shl i32 %2082, 1
  %2084 = load ptr, ptr %26, align 8, !tbaa !5
  %2085 = load i32, ptr %2084, align 4, !tbaa !9
  %2086 = add nsw i32 %2083, %2085
  %2087 = add nsw i32 %2086, 1
  %2088 = sext i32 %2087 to i64
  %2089 = getelementptr inbounds i32, ptr %2080, i64 %2088
  call void @spocon_(ptr noundef @.str, ptr noundef %2068, ptr noundef %2072, ptr noundef %2073, ptr noundef @c_b35, ptr noundef %66, ptr noundef %2079, ptr noundef %2089, ptr noundef %65)
  br label %2237

2090:                                             ; preds = %2023
  %2091 = load i32, ptr %73, align 4, !tbaa !9
  %2092 = icmp ne i32 %2091, 0
  br i1 %2092, label %2093, label %2157

2093:                                             ; preds = %2090
  %2094 = load ptr, ptr %27, align 8, !tbaa !5
  %2095 = load ptr, ptr %27, align 8, !tbaa !5
  %2096 = load ptr, ptr %28, align 8, !tbaa !5
  %2097 = load i32, ptr %40, align 4, !tbaa !9
  %2098 = sext i32 %2097 to i64
  %2099 = getelementptr inbounds float, ptr %2096, i64 %2098
  %2100 = load ptr, ptr %29, align 8, !tbaa !5
  %2101 = load ptr, ptr %31, align 8, !tbaa !5
  %2102 = load i32, ptr %42, align 4, !tbaa !9
  %2103 = sext i32 %2102 to i64
  %2104 = getelementptr inbounds float, ptr %2101, i64 %2103
  %2105 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %2094, ptr noundef %2095, ptr noundef %2099, ptr noundef %2100, ptr noundef %2104, ptr noundef %2105)
  %2106 = load ptr, ptr %27, align 8, !tbaa !5
  %2107 = load i32, ptr %2106, align 4, !tbaa !9
  store i32 %2107, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2108

2108:                                             ; preds = %2131, %2093
  %2109 = load i32, ptr %67, align 4, !tbaa !9
  %2110 = load i32, ptr %45, align 4, !tbaa !9
  %2111 = icmp sle i32 %2109, %2110
  br i1 %2111, label %2112, label %2134

2112:                                             ; preds = %2108
  %2113 = load ptr, ptr %30, align 8, !tbaa !5
  %2114 = load ptr, ptr %37, align 8, !tbaa !5
  %2115 = load i32, ptr %67, align 4, !tbaa !9
  %2116 = sext i32 %2115 to i64
  %2117 = getelementptr inbounds i32, ptr %2114, i64 %2116
  %2118 = load i32, ptr %2117, align 4, !tbaa !9
  %2119 = sext i32 %2118 to i64
  %2120 = getelementptr inbounds float, ptr %2113, i64 %2119
  %2121 = load float, ptr %2120, align 4, !tbaa !11
  store float %2121, ptr %66, align 4, !tbaa !11
  %2122 = load float, ptr %66, align 4, !tbaa !11
  %2123 = fdiv float 1.000000e+00, %2122
  store float %2123, ptr %57, align 4, !tbaa !11
  %2124 = load ptr, ptr %31, align 8, !tbaa !5
  %2125 = load i32, ptr %67, align 4, !tbaa !9
  %2126 = load i32, ptr %41, align 4, !tbaa !9
  %2127 = mul nsw i32 %2125, %2126
  %2128 = add nsw i32 %2127, 1
  %2129 = sext i32 %2128 to i64
  %2130 = getelementptr inbounds float, ptr %2124, i64 %2129
  call void @sscal_(ptr noundef %67, ptr noundef %57, ptr noundef %2130, ptr noundef @c__1)
  br label %2131

2131:                                             ; preds = %2112
  %2132 = load i32, ptr %67, align 4, !tbaa !9
  %2133 = add nsw i32 %2132, 1
  store i32 %2133, ptr %67, align 4, !tbaa !9
  br label %2108, !llvm.loop !31

2134:                                             ; preds = %2108
  %2135 = load ptr, ptr %27, align 8, !tbaa !5
  %2136 = load ptr, ptr %31, align 8, !tbaa !5
  %2137 = load i32, ptr %42, align 4, !tbaa !9
  %2138 = sext i32 %2137 to i64
  %2139 = getelementptr inbounds float, ptr %2136, i64 %2138
  %2140 = load ptr, ptr %32, align 8, !tbaa !5
  %2141 = load ptr, ptr %35, align 8, !tbaa !5
  %2142 = load ptr, ptr %27, align 8, !tbaa !5
  %2143 = load i32, ptr %2142, align 4, !tbaa !9
  %2144 = add nsw i32 %2143, 1
  %2145 = sext i32 %2144 to i64
  %2146 = getelementptr inbounds float, ptr %2141, i64 %2145
  %2147 = load ptr, ptr %37, align 8, !tbaa !5
  %2148 = load ptr, ptr %27, align 8, !tbaa !5
  %2149 = load i32, ptr %2148, align 4, !tbaa !9
  %2150 = shl i32 %2149, 1
  %2151 = load ptr, ptr %26, align 8, !tbaa !5
  %2152 = load i32, ptr %2151, align 4, !tbaa !9
  %2153 = add nsw i32 %2150, %2152
  %2154 = add nsw i32 %2153, 1
  %2155 = sext i32 %2154 to i64
  %2156 = getelementptr inbounds i32, ptr %2147, i64 %2155
  call void @spocon_(ptr noundef @.str, ptr noundef %2135, ptr noundef %2139, ptr noundef %2140, ptr noundef @c_b35, ptr noundef %66, ptr noundef %2146, ptr noundef %2156, ptr noundef %65)
  br label %2236

2157:                                             ; preds = %2090
  %2158 = load ptr, ptr %27, align 8, !tbaa !5
  %2159 = load ptr, ptr %27, align 8, !tbaa !5
  %2160 = load ptr, ptr %28, align 8, !tbaa !5
  %2161 = load i32, ptr %40, align 4, !tbaa !9
  %2162 = sext i32 %2161 to i64
  %2163 = getelementptr inbounds float, ptr %2160, i64 %2162
  %2164 = load ptr, ptr %29, align 8, !tbaa !5
  %2165 = load ptr, ptr %35, align 8, !tbaa !5
  %2166 = load ptr, ptr %27, align 8, !tbaa !5
  %2167 = load i32, ptr %2166, align 4, !tbaa !9
  %2168 = add nsw i32 %2167, 1
  %2169 = sext i32 %2168 to i64
  %2170 = getelementptr inbounds float, ptr %2165, i64 %2169
  %2171 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %2158, ptr noundef %2159, ptr noundef %2163, ptr noundef %2164, ptr noundef %2170, ptr noundef %2171)
  %2172 = load ptr, ptr %27, align 8, !tbaa !5
  %2173 = load i32, ptr %2172, align 4, !tbaa !9
  store i32 %2173, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2174

2174:                                             ; preds = %2202, %2157
  %2175 = load i32, ptr %67, align 4, !tbaa !9
  %2176 = load i32, ptr %45, align 4, !tbaa !9
  %2177 = icmp sle i32 %2175, %2176
  br i1 %2177, label %2178, label %2205

2178:                                             ; preds = %2174
  %2179 = load ptr, ptr %30, align 8, !tbaa !5
  %2180 = load ptr, ptr %37, align 8, !tbaa !5
  %2181 = load i32, ptr %67, align 4, !tbaa !9
  %2182 = sext i32 %2181 to i64
  %2183 = getelementptr inbounds i32, ptr %2180, i64 %2182
  %2184 = load i32, ptr %2183, align 4, !tbaa !9
  %2185 = sext i32 %2184 to i64
  %2186 = getelementptr inbounds float, ptr %2179, i64 %2185
  %2187 = load float, ptr %2186, align 4, !tbaa !11
  store float %2187, ptr %66, align 4, !tbaa !11
  %2188 = load float, ptr %66, align 4, !tbaa !11
  %2189 = fdiv float 1.000000e+00, %2188
  store float %2189, ptr %57, align 4, !tbaa !11
  %2190 = load ptr, ptr %35, align 8, !tbaa !5
  %2191 = load ptr, ptr %27, align 8, !tbaa !5
  %2192 = load i32, ptr %2191, align 4, !tbaa !9
  %2193 = load i32, ptr %67, align 4, !tbaa !9
  %2194 = sub nsw i32 %2193, 1
  %2195 = load ptr, ptr %27, align 8, !tbaa !5
  %2196 = load i32, ptr %2195, align 4, !tbaa !9
  %2197 = mul nsw i32 %2194, %2196
  %2198 = add nsw i32 %2192, %2197
  %2199 = add nsw i32 %2198, 1
  %2200 = sext i32 %2199 to i64
  %2201 = getelementptr inbounds float, ptr %2190, i64 %2200
  call void @sscal_(ptr noundef %67, ptr noundef %57, ptr noundef %2201, ptr noundef @c__1)
  br label %2202

2202:                                             ; preds = %2178
  %2203 = load i32, ptr %67, align 4, !tbaa !9
  %2204 = add nsw i32 %2203, 1
  store i32 %2204, ptr %67, align 4, !tbaa !9
  br label %2174, !llvm.loop !32

2205:                                             ; preds = %2174
  %2206 = load ptr, ptr %27, align 8, !tbaa !5
  %2207 = load ptr, ptr %35, align 8, !tbaa !5
  %2208 = load ptr, ptr %27, align 8, !tbaa !5
  %2209 = load i32, ptr %2208, align 4, !tbaa !9
  %2210 = add nsw i32 %2209, 1
  %2211 = sext i32 %2210 to i64
  %2212 = getelementptr inbounds float, ptr %2207, i64 %2211
  %2213 = load ptr, ptr %27, align 8, !tbaa !5
  %2214 = load ptr, ptr %35, align 8, !tbaa !5
  %2215 = load ptr, ptr %27, align 8, !tbaa !5
  %2216 = load i32, ptr %2215, align 4, !tbaa !9
  %2217 = load ptr, ptr %27, align 8, !tbaa !5
  %2218 = load i32, ptr %2217, align 4, !tbaa !9
  %2219 = load ptr, ptr %27, align 8, !tbaa !5
  %2220 = load i32, ptr %2219, align 4, !tbaa !9
  %2221 = mul nsw i32 %2218, %2220
  %2222 = add nsw i32 %2216, %2221
  %2223 = add nsw i32 %2222, 1
  %2224 = sext i32 %2223 to i64
  %2225 = getelementptr inbounds float, ptr %2214, i64 %2224
  %2226 = load ptr, ptr %37, align 8, !tbaa !5
  %2227 = load ptr, ptr %27, align 8, !tbaa !5
  %2228 = load i32, ptr %2227, align 4, !tbaa !9
  %2229 = shl i32 %2228, 1
  %2230 = load ptr, ptr %26, align 8, !tbaa !5
  %2231 = load i32, ptr %2230, align 4, !tbaa !9
  %2232 = add nsw i32 %2229, %2231
  %2233 = add nsw i32 %2232, 1
  %2234 = sext i32 %2233 to i64
  %2235 = getelementptr inbounds i32, ptr %2226, i64 %2234
  call void @spocon_(ptr noundef @.str, ptr noundef %2206, ptr noundef %2212, ptr noundef %2213, ptr noundef @c_b35, ptr noundef %66, ptr noundef %2225, ptr noundef %2235, ptr noundef %65)
  br label %2236

2236:                                             ; preds = %2205, %2134
  br label %2237

2237:                                             ; preds = %2236, %2067
  %2238 = load float, ptr %66, align 4, !tbaa !11
  %2239 = fpext float %2238 to double
  %2240 = call double @sqrt(double noundef %2239) #5
  %2241 = fdiv double 1.000000e+00, %2240
  %2242 = fptrunc double %2241 to float
  store float %2242, ptr %88, align 4, !tbaa !11
  br label %2244

2243:                                             ; preds = %2018
  store float -1.000000e+00, ptr %88, align 4, !tbaa !11
  br label %2244

2244:                                             ; preds = %2243, %2237
  br label %2245

2245:                                             ; preds = %2244, %2015
  %2246 = load i32, ptr %85, align 4, !tbaa !9
  %2247 = icmp ne i32 %2246, 0
  br i1 %2247, label %2248, label %2279

2248:                                             ; preds = %2245
  %2249 = load ptr, ptr %28, align 8, !tbaa !5
  %2250 = load i32, ptr %39, align 4, !tbaa !9
  %2251 = add nsw i32 %2250, 1
  %2252 = sext i32 %2251 to i64
  %2253 = getelementptr inbounds float, ptr %2249, i64 %2252
  %2254 = load float, ptr %2253, align 4, !tbaa !11
  %2255 = load ptr, ptr %28, align 8, !tbaa !5
  %2256 = load i32, ptr %86, align 4, !tbaa !9
  %2257 = load i32, ptr %86, align 4, !tbaa !9
  %2258 = load i32, ptr %39, align 4, !tbaa !9
  %2259 = mul nsw i32 %2257, %2258
  %2260 = add nsw i32 %2256, %2259
  %2261 = sext i32 %2260 to i64
  %2262 = getelementptr inbounds float, ptr %2255, i64 %2261
  %2263 = load float, ptr %2262, align 4, !tbaa !11
  %2264 = fdiv float %2254, %2263
  store float %2264, ptr %57, align 4, !tbaa !11
  %2265 = load float, ptr %57, align 4, !tbaa !11
  %2266 = fcmp oge float %2265, 0.000000e+00
  br i1 %2266, label %2267, label %2269

2267:                                             ; preds = %2248
  %2268 = load float, ptr %57, align 4, !tbaa !11
  br label %2272

2269:                                             ; preds = %2248
  %2270 = load float, ptr %57, align 4, !tbaa !11
  %2271 = fneg float %2270
  br label %2272

2272:                                             ; preds = %2269, %2267
  %2273 = phi float [ %2268, %2267 ], [ %2271, %2269 ]
  %2274 = fpext float %2273 to double
  %2275 = load float, ptr %102, align 4, !tbaa !11
  %2276 = fpext float %2275 to double
  %2277 = call double @sqrt(double noundef %2276) #5
  %2278 = fcmp ogt double %2274, %2277
  br label %2279

2279:                                             ; preds = %2272, %2245
  %2280 = phi i1 [ false, %2245 ], [ %2278, %2272 ]
  %2281 = zext i1 %2280 to i32
  store i32 %2281, ptr %85, align 4, !tbaa !9
  %2282 = load i32, ptr %75, align 4, !tbaa !9
  %2283 = icmp ne i32 %2282, 0
  br i1 %2283, label %2695, label %2284

2284:                                             ; preds = %2279
  %2285 = load i32, ptr %73, align 4, !tbaa !9
  %2286 = icmp ne i32 %2285, 0
  br i1 %2286, label %2695, label %2287

2287:                                             ; preds = %2284
  %2288 = load ptr, ptr %27, align 8, !tbaa !5
  %2289 = load i32, ptr %2288, align 4, !tbaa !9
  %2290 = sub nsw i32 %2289, 1
  store i32 %2290, ptr %46, align 4, !tbaa !9
  %2291 = load i32, ptr %46, align 4, !tbaa !9
  %2292 = load i32, ptr %86, align 4, !tbaa !9
  %2293 = icmp sle i32 %2291, %2292
  br i1 %2293, label %2294, label %2296

2294:                                             ; preds = %2287
  %2295 = load i32, ptr %46, align 4, !tbaa !9
  br label %2298

2296:                                             ; preds = %2287
  %2297 = load i32, ptr %86, align 4, !tbaa !9
  br label %2298

2298:                                             ; preds = %2296, %2294
  %2299 = phi i32 [ %2295, %2294 ], [ %2297, %2296 ]
  store i32 %2299, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2300

2300:                                             ; preds = %2328, %2298
  %2301 = load i32, ptr %67, align 4, !tbaa !9
  %2302 = load i32, ptr %45, align 4, !tbaa !9
  %2303 = icmp sle i32 %2301, %2302
  br i1 %2303, label %2304, label %2331

2304:                                             ; preds = %2300
  %2305 = load ptr, ptr %27, align 8, !tbaa !5
  %2306 = load i32, ptr %2305, align 4, !tbaa !9
  %2307 = load i32, ptr %67, align 4, !tbaa !9
  %2308 = sub nsw i32 %2306, %2307
  store i32 %2308, ptr %46, align 4, !tbaa !9
  %2309 = load ptr, ptr %28, align 8, !tbaa !5
  %2310 = load i32, ptr %67, align 4, !tbaa !9
  %2311 = load i32, ptr %67, align 4, !tbaa !9
  %2312 = add nsw i32 %2311, 1
  %2313 = load i32, ptr %39, align 4, !tbaa !9
  %2314 = mul nsw i32 %2312, %2313
  %2315 = add nsw i32 %2310, %2314
  %2316 = sext i32 %2315 to i64
  %2317 = getelementptr inbounds float, ptr %2309, i64 %2316
  %2318 = load ptr, ptr %29, align 8, !tbaa !5
  %2319 = load ptr, ptr %28, align 8, !tbaa !5
  %2320 = load i32, ptr %67, align 4, !tbaa !9
  %2321 = add nsw i32 %2320, 1
  %2322 = load i32, ptr %67, align 4, !tbaa !9
  %2323 = load i32, ptr %39, align 4, !tbaa !9
  %2324 = mul nsw i32 %2322, %2323
  %2325 = add nsw i32 %2321, %2324
  %2326 = sext i32 %2325 to i64
  %2327 = getelementptr inbounds float, ptr %2319, i64 %2326
  call void @scopy_(ptr noundef %46, ptr noundef %2317, ptr noundef %2318, ptr noundef %2327, ptr noundef @c__1)
  br label %2328

2328:                                             ; preds = %2304
  %2329 = load i32, ptr %67, align 4, !tbaa !9
  %2330 = add nsw i32 %2329, 1
  store i32 %2330, ptr %67, align 4, !tbaa !9
  br label %2300, !llvm.loop !33

2331:                                             ; preds = %2300
  %2332 = load i32, ptr %94, align 4, !tbaa !9
  %2333 = icmp ne i32 %2332, 0
  br i1 %2333, label %2520, label %2334

2334:                                             ; preds = %2331
  %2335 = load i32, ptr %85, align 4, !tbaa !9
  %2336 = icmp ne i32 %2335, 0
  br i1 %2336, label %2337, label %2455

2337:                                             ; preds = %2334
  %2338 = load float, ptr %74, align 4, !tbaa !11
  %2339 = load ptr, ptr %27, align 8, !tbaa !5
  %2340 = load i32, ptr %2339, align 4, !tbaa !9
  %2341 = sitofp i32 %2340 to float
  %2342 = fdiv float %2338, %2341
  store float %2342, ptr %101, align 4, !tbaa !11
  %2343 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2343, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %2344

2344:                                             ; preds = %2451, %2337
  %2345 = load i32, ptr %68, align 4, !tbaa !9
  %2346 = load i32, ptr %45, align 4, !tbaa !9
  %2347 = icmp sle i32 %2345, %2346
  br i1 %2347, label %2348, label %2454

2348:                                             ; preds = %2344
  %2349 = load float, ptr %101, align 4, !tbaa !11
  %2350 = load ptr, ptr %28, align 8, !tbaa !5
  %2351 = load i32, ptr %68, align 4, !tbaa !9
  %2352 = load i32, ptr %68, align 4, !tbaa !9
  %2353 = load i32, ptr %39, align 4, !tbaa !9
  %2354 = mul nsw i32 %2352, %2353
  %2355 = add nsw i32 %2351, %2354
  %2356 = sext i32 %2355 to i64
  %2357 = getelementptr inbounds float, ptr %2350, i64 %2356
  %2358 = load float, ptr %2357, align 4, !tbaa !11
  store float %2358, ptr %57, align 4, !tbaa !11
  %2359 = load float, ptr %57, align 4, !tbaa !11
  %2360 = fcmp oge float %2359, 0.000000e+00
  br i1 %2360, label %2361, label %2363

2361:                                             ; preds = %2348
  %2362 = load float, ptr %57, align 4, !tbaa !11
  br label %2366

2363:                                             ; preds = %2348
  %2364 = load float, ptr %57, align 4, !tbaa !11
  %2365 = fneg float %2364
  br label %2366

2366:                                             ; preds = %2363, %2361
  %2367 = phi float [ %2362, %2361 ], [ %2365, %2363 ]
  %2368 = fmul float %2349, %2367
  store float %2368, ptr %66, align 4, !tbaa !11
  %2369 = load ptr, ptr %27, align 8, !tbaa !5
  %2370 = load i32, ptr %2369, align 4, !tbaa !9
  store i32 %2370, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2371

2371:                                             ; preds = %2447, %2366
  %2372 = load i32, ptr %67, align 4, !tbaa !9
  %2373 = load i32, ptr %46, align 4, !tbaa !9
  %2374 = icmp sle i32 %2372, %2373
  br i1 %2374, label %2375, label %2450

2375:                                             ; preds = %2371
  %2376 = load i32, ptr %67, align 4, !tbaa !9
  %2377 = load i32, ptr %68, align 4, !tbaa !9
  %2378 = icmp sgt i32 %2376, %2377
  br i1 %2378, label %2379, label %2400

2379:                                             ; preds = %2375
  %2380 = load ptr, ptr %28, align 8, !tbaa !5
  %2381 = load i32, ptr %67, align 4, !tbaa !9
  %2382 = load i32, ptr %68, align 4, !tbaa !9
  %2383 = load i32, ptr %39, align 4, !tbaa !9
  %2384 = mul nsw i32 %2382, %2383
  %2385 = add nsw i32 %2381, %2384
  %2386 = sext i32 %2385 to i64
  %2387 = getelementptr inbounds float, ptr %2380, i64 %2386
  %2388 = load float, ptr %2387, align 4, !tbaa !11
  store float %2388, ptr %57, align 4, !tbaa !11
  %2389 = load float, ptr %57, align 4, !tbaa !11
  %2390 = fcmp oge float %2389, 0.000000e+00
  br i1 %2390, label %2391, label %2393

2391:                                             ; preds = %2379
  %2392 = load float, ptr %57, align 4, !tbaa !11
  br label %2396

2393:                                             ; preds = %2379
  %2394 = load float, ptr %57, align 4, !tbaa !11
  %2395 = fneg float %2394
  br label %2396

2396:                                             ; preds = %2393, %2391
  %2397 = phi float [ %2392, %2391 ], [ %2395, %2393 ]
  %2398 = load float, ptr %66, align 4, !tbaa !11
  %2399 = fcmp ole float %2397, %2398
  br i1 %2399, label %2404, label %2400

2400:                                             ; preds = %2396, %2375
  %2401 = load i32, ptr %67, align 4, !tbaa !9
  %2402 = load i32, ptr %68, align 4, !tbaa !9
  %2403 = icmp slt i32 %2401, %2402
  br i1 %2403, label %2404, label %2446

2404:                                             ; preds = %2400, %2396
  %2405 = load ptr, ptr %28, align 8, !tbaa !5
  %2406 = load i32, ptr %67, align 4, !tbaa !9
  %2407 = load i32, ptr %68, align 4, !tbaa !9
  %2408 = load i32, ptr %39, align 4, !tbaa !9
  %2409 = mul nsw i32 %2407, %2408
  %2410 = add nsw i32 %2406, %2409
  %2411 = sext i32 %2410 to i64
  %2412 = getelementptr inbounds float, ptr %2405, i64 %2411
  %2413 = load float, ptr %2412, align 4, !tbaa !11
  %2414 = fcmp oge float %2413, 0.000000e+00
  br i1 %2414, label %2415, label %2425

2415:                                             ; preds = %2404
  %2416 = load float, ptr %66, align 4, !tbaa !11
  %2417 = fcmp oge float %2416, 0.000000e+00
  br i1 %2417, label %2418, label %2420

2418:                                             ; preds = %2415
  %2419 = load float, ptr %66, align 4, !tbaa !11
  br label %2423

2420:                                             ; preds = %2415
  %2421 = load float, ptr %66, align 4, !tbaa !11
  %2422 = fneg float %2421
  br label %2423

2423:                                             ; preds = %2420, %2418
  %2424 = phi float [ %2419, %2418 ], [ %2422, %2420 ]
  br label %2436

2425:                                             ; preds = %2404
  %2426 = load float, ptr %66, align 4, !tbaa !11
  %2427 = fcmp oge float %2426, 0.000000e+00
  br i1 %2427, label %2428, label %2430

2428:                                             ; preds = %2425
  %2429 = load float, ptr %66, align 4, !tbaa !11
  br label %2433

2430:                                             ; preds = %2425
  %2431 = load float, ptr %66, align 4, !tbaa !11
  %2432 = fneg float %2431
  br label %2433

2433:                                             ; preds = %2430, %2428
  %2434 = phi float [ %2429, %2428 ], [ %2432, %2430 ]
  %2435 = fneg float %2434
  br label %2436

2436:                                             ; preds = %2433, %2423
  %2437 = phi float [ %2424, %2423 ], [ %2435, %2433 ]
  %2438 = load ptr, ptr %28, align 8, !tbaa !5
  %2439 = load i32, ptr %67, align 4, !tbaa !9
  %2440 = load i32, ptr %68, align 4, !tbaa !9
  %2441 = load i32, ptr %39, align 4, !tbaa !9
  %2442 = mul nsw i32 %2440, %2441
  %2443 = add nsw i32 %2439, %2442
  %2444 = sext i32 %2443 to i64
  %2445 = getelementptr inbounds float, ptr %2438, i64 %2444
  store float %2437, ptr %2445, align 4, !tbaa !11
  br label %2446

2446:                                             ; preds = %2436, %2400
  br label %2447

2447:                                             ; preds = %2446
  %2448 = load i32, ptr %67, align 4, !tbaa !9
  %2449 = add nsw i32 %2448, 1
  store i32 %2449, ptr %67, align 4, !tbaa !9
  br label %2371, !llvm.loop !34

2450:                                             ; preds = %2371
  br label %2451

2451:                                             ; preds = %2450
  %2452 = load i32, ptr %68, align 4, !tbaa !9
  %2453 = add nsw i32 %2452, 1
  store i32 %2453, ptr %68, align 4, !tbaa !9
  br label %2344, !llvm.loop !35

2454:                                             ; preds = %2344
  br label %2467

2455:                                             ; preds = %2334
  %2456 = load i32, ptr %86, align 4, !tbaa !9
  %2457 = sub nsw i32 %2456, 1
  store i32 %2457, ptr %45, align 4, !tbaa !9
  %2458 = load i32, ptr %86, align 4, !tbaa !9
  %2459 = sub nsw i32 %2458, 1
  store i32 %2459, ptr %46, align 4, !tbaa !9
  %2460 = load ptr, ptr %28, align 8, !tbaa !5
  %2461 = load i32, ptr %39, align 4, !tbaa !9
  %2462 = shl i32 %2461, 1
  %2463 = add nsw i32 %2462, 1
  %2464 = sext i32 %2463 to i64
  %2465 = getelementptr inbounds float, ptr %2460, i64 %2464
  %2466 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %2465, ptr noundef %2466)
  br label %2467

2467:                                             ; preds = %2455, %2454
  %2468 = load ptr, ptr %36, align 8, !tbaa !5
  %2469 = load i32, ptr %2468, align 4, !tbaa !9
  %2470 = load ptr, ptr %27, align 8, !tbaa !5
  %2471 = load i32, ptr %2470, align 4, !tbaa !9
  %2472 = sub nsw i32 %2469, %2471
  store i32 %2472, ptr %45, align 4, !tbaa !9
  %2473 = load ptr, ptr %27, align 8, !tbaa !5
  %2474 = load ptr, ptr %28, align 8, !tbaa !5
  %2475 = load i32, ptr %40, align 4, !tbaa !9
  %2476 = sext i32 %2475 to i64
  %2477 = getelementptr inbounds float, ptr %2474, i64 %2476
  %2478 = load ptr, ptr %29, align 8, !tbaa !5
  %2479 = load ptr, ptr %35, align 8, !tbaa !5
  %2480 = getelementptr inbounds float, ptr %2479, i64 1
  %2481 = load ptr, ptr %35, align 8, !tbaa !5
  %2482 = load ptr, ptr %27, align 8, !tbaa !5
  %2483 = load i32, ptr %2482, align 4, !tbaa !9
  %2484 = add nsw i32 %2483, 1
  %2485 = sext i32 %2484 to i64
  %2486 = getelementptr inbounds float, ptr %2481, i64 %2485
  call void @sgeqrf_(ptr noundef %2473, ptr noundef %86, ptr noundef %2477, ptr noundef %2478, ptr noundef %2480, ptr noundef %2486, ptr noundef %45, ptr noundef %65)
  %2487 = load i32, ptr %86, align 4, !tbaa !9
  %2488 = sub nsw i32 %2487, 1
  store i32 %2488, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2489

2489:                                             ; preds = %2516, %2467
  %2490 = load i32, ptr %67, align 4, !tbaa !9
  %2491 = load i32, ptr %45, align 4, !tbaa !9
  %2492 = icmp sle i32 %2490, %2491
  br i1 %2492, label %2493, label %2519

2493:                                             ; preds = %2489
  %2494 = load i32, ptr %86, align 4, !tbaa !9
  %2495 = load i32, ptr %67, align 4, !tbaa !9
  %2496 = sub nsw i32 %2494, %2495
  store i32 %2496, ptr %46, align 4, !tbaa !9
  %2497 = load ptr, ptr %28, align 8, !tbaa !5
  %2498 = load i32, ptr %67, align 4, !tbaa !9
  %2499 = load i32, ptr %67, align 4, !tbaa !9
  %2500 = add nsw i32 %2499, 1
  %2501 = load i32, ptr %39, align 4, !tbaa !9
  %2502 = mul nsw i32 %2500, %2501
  %2503 = add nsw i32 %2498, %2502
  %2504 = sext i32 %2503 to i64
  %2505 = getelementptr inbounds float, ptr %2497, i64 %2504
  %2506 = load ptr, ptr %29, align 8, !tbaa !5
  %2507 = load ptr, ptr %28, align 8, !tbaa !5
  %2508 = load i32, ptr %67, align 4, !tbaa !9
  %2509 = add nsw i32 %2508, 1
  %2510 = load i32, ptr %67, align 4, !tbaa !9
  %2511 = load i32, ptr %39, align 4, !tbaa !9
  %2512 = mul nsw i32 %2510, %2511
  %2513 = add nsw i32 %2509, %2512
  %2514 = sext i32 %2513 to i64
  %2515 = getelementptr inbounds float, ptr %2507, i64 %2514
  call void @scopy_(ptr noundef %46, ptr noundef %2505, ptr noundef %2506, ptr noundef %2515, ptr noundef @c__1)
  br label %2516

2516:                                             ; preds = %2493
  %2517 = load i32, ptr %67, align 4, !tbaa !9
  %2518 = add nsw i32 %2517, 1
  store i32 %2518, ptr %67, align 4, !tbaa !9
  br label %2489, !llvm.loop !36

2519:                                             ; preds = %2489
  br label %2520

2520:                                             ; preds = %2519, %2331
  %2521 = load i32, ptr %85, align 4, !tbaa !9
  %2522 = icmp ne i32 %2521, 0
  br i1 %2522, label %2523, label %2640

2523:                                             ; preds = %2520
  %2524 = load float, ptr %74, align 4, !tbaa !11
  %2525 = load ptr, ptr %27, align 8, !tbaa !5
  %2526 = load i32, ptr %2525, align 4, !tbaa !9
  %2527 = sitofp i32 %2526 to float
  %2528 = fdiv float %2524, %2527
  store float %2528, ptr %101, align 4, !tbaa !11
  %2529 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2529, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %2530

2530:                                             ; preds = %2636, %2523
  %2531 = load i32, ptr %68, align 4, !tbaa !9
  %2532 = load i32, ptr %45, align 4, !tbaa !9
  %2533 = icmp sle i32 %2531, %2532
  br i1 %2533, label %2534, label %2639

2534:                                             ; preds = %2530
  %2535 = load float, ptr %101, align 4, !tbaa !11
  %2536 = load ptr, ptr %28, align 8, !tbaa !5
  %2537 = load i32, ptr %68, align 4, !tbaa !9
  %2538 = load i32, ptr %68, align 4, !tbaa !9
  %2539 = load i32, ptr %39, align 4, !tbaa !9
  %2540 = mul nsw i32 %2538, %2539
  %2541 = add nsw i32 %2537, %2540
  %2542 = sext i32 %2541 to i64
  %2543 = getelementptr inbounds float, ptr %2536, i64 %2542
  %2544 = load float, ptr %2543, align 4, !tbaa !11
  store float %2544, ptr %57, align 4, !tbaa !11
  %2545 = load float, ptr %57, align 4, !tbaa !11
  %2546 = fcmp oge float %2545, 0.000000e+00
  br i1 %2546, label %2547, label %2549

2547:                                             ; preds = %2534
  %2548 = load float, ptr %57, align 4, !tbaa !11
  br label %2552

2549:                                             ; preds = %2534
  %2550 = load float, ptr %57, align 4, !tbaa !11
  %2551 = fneg float %2550
  br label %2552

2552:                                             ; preds = %2549, %2547
  %2553 = phi float [ %2548, %2547 ], [ %2551, %2549 ]
  %2554 = fmul float %2535, %2553
  store float %2554, ptr %66, align 4, !tbaa !11
  %2555 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2555, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2556

2556:                                             ; preds = %2632, %2552
  %2557 = load i32, ptr %67, align 4, !tbaa !9
  %2558 = load i32, ptr %46, align 4, !tbaa !9
  %2559 = icmp sle i32 %2557, %2558
  br i1 %2559, label %2560, label %2635

2560:                                             ; preds = %2556
  %2561 = load i32, ptr %67, align 4, !tbaa !9
  %2562 = load i32, ptr %68, align 4, !tbaa !9
  %2563 = icmp sgt i32 %2561, %2562
  br i1 %2563, label %2564, label %2585

2564:                                             ; preds = %2560
  %2565 = load ptr, ptr %28, align 8, !tbaa !5
  %2566 = load i32, ptr %67, align 4, !tbaa !9
  %2567 = load i32, ptr %68, align 4, !tbaa !9
  %2568 = load i32, ptr %39, align 4, !tbaa !9
  %2569 = mul nsw i32 %2567, %2568
  %2570 = add nsw i32 %2566, %2569
  %2571 = sext i32 %2570 to i64
  %2572 = getelementptr inbounds float, ptr %2565, i64 %2571
  %2573 = load float, ptr %2572, align 4, !tbaa !11
  store float %2573, ptr %57, align 4, !tbaa !11
  %2574 = load float, ptr %57, align 4, !tbaa !11
  %2575 = fcmp oge float %2574, 0.000000e+00
  br i1 %2575, label %2576, label %2578

2576:                                             ; preds = %2564
  %2577 = load float, ptr %57, align 4, !tbaa !11
  br label %2581

2578:                                             ; preds = %2564
  %2579 = load float, ptr %57, align 4, !tbaa !11
  %2580 = fneg float %2579
  br label %2581

2581:                                             ; preds = %2578, %2576
  %2582 = phi float [ %2577, %2576 ], [ %2580, %2578 ]
  %2583 = load float, ptr %66, align 4, !tbaa !11
  %2584 = fcmp ole float %2582, %2583
  br i1 %2584, label %2589, label %2585

2585:                                             ; preds = %2581, %2560
  %2586 = load i32, ptr %67, align 4, !tbaa !9
  %2587 = load i32, ptr %68, align 4, !tbaa !9
  %2588 = icmp slt i32 %2586, %2587
  br i1 %2588, label %2589, label %2631

2589:                                             ; preds = %2585, %2581
  %2590 = load ptr, ptr %28, align 8, !tbaa !5
  %2591 = load i32, ptr %67, align 4, !tbaa !9
  %2592 = load i32, ptr %68, align 4, !tbaa !9
  %2593 = load i32, ptr %39, align 4, !tbaa !9
  %2594 = mul nsw i32 %2592, %2593
  %2595 = add nsw i32 %2591, %2594
  %2596 = sext i32 %2595 to i64
  %2597 = getelementptr inbounds float, ptr %2590, i64 %2596
  %2598 = load float, ptr %2597, align 4, !tbaa !11
  %2599 = fcmp oge float %2598, 0.000000e+00
  br i1 %2599, label %2600, label %2610

2600:                                             ; preds = %2589
  %2601 = load float, ptr %66, align 4, !tbaa !11
  %2602 = fcmp oge float %2601, 0.000000e+00
  br i1 %2602, label %2603, label %2605

2603:                                             ; preds = %2600
  %2604 = load float, ptr %66, align 4, !tbaa !11
  br label %2608

2605:                                             ; preds = %2600
  %2606 = load float, ptr %66, align 4, !tbaa !11
  %2607 = fneg float %2606
  br label %2608

2608:                                             ; preds = %2605, %2603
  %2609 = phi float [ %2604, %2603 ], [ %2607, %2605 ]
  br label %2621

2610:                                             ; preds = %2589
  %2611 = load float, ptr %66, align 4, !tbaa !11
  %2612 = fcmp oge float %2611, 0.000000e+00
  br i1 %2612, label %2613, label %2615

2613:                                             ; preds = %2610
  %2614 = load float, ptr %66, align 4, !tbaa !11
  br label %2618

2615:                                             ; preds = %2610
  %2616 = load float, ptr %66, align 4, !tbaa !11
  %2617 = fneg float %2616
  br label %2618

2618:                                             ; preds = %2615, %2613
  %2619 = phi float [ %2614, %2613 ], [ %2617, %2615 ]
  %2620 = fneg float %2619
  br label %2621

2621:                                             ; preds = %2618, %2608
  %2622 = phi float [ %2609, %2608 ], [ %2620, %2618 ]
  %2623 = load ptr, ptr %28, align 8, !tbaa !5
  %2624 = load i32, ptr %67, align 4, !tbaa !9
  %2625 = load i32, ptr %68, align 4, !tbaa !9
  %2626 = load i32, ptr %39, align 4, !tbaa !9
  %2627 = mul nsw i32 %2625, %2626
  %2628 = add nsw i32 %2624, %2627
  %2629 = sext i32 %2628 to i64
  %2630 = getelementptr inbounds float, ptr %2623, i64 %2629
  store float %2622, ptr %2630, align 4, !tbaa !11
  br label %2631

2631:                                             ; preds = %2621, %2585
  br label %2632

2632:                                             ; preds = %2631
  %2633 = load i32, ptr %67, align 4, !tbaa !9
  %2634 = add nsw i32 %2633, 1
  store i32 %2634, ptr %67, align 4, !tbaa !9
  br label %2556, !llvm.loop !37

2635:                                             ; preds = %2556
  br label %2636

2636:                                             ; preds = %2635
  %2637 = load i32, ptr %68, align 4, !tbaa !9
  %2638 = add nsw i32 %2637, 1
  store i32 %2638, ptr %68, align 4, !tbaa !9
  br label %2530, !llvm.loop !38

2639:                                             ; preds = %2530
  br label %2652

2640:                                             ; preds = %2520
  %2641 = load i32, ptr %86, align 4, !tbaa !9
  %2642 = sub nsw i32 %2641, 1
  store i32 %2642, ptr %45, align 4, !tbaa !9
  %2643 = load i32, ptr %86, align 4, !tbaa !9
  %2644 = sub nsw i32 %2643, 1
  store i32 %2644, ptr %46, align 4, !tbaa !9
  %2645 = load ptr, ptr %28, align 8, !tbaa !5
  %2646 = load i32, ptr %39, align 4, !tbaa !9
  %2647 = shl i32 %2646, 1
  %2648 = add nsw i32 %2647, 1
  %2649 = sext i32 %2648 to i64
  %2650 = getelementptr inbounds float, ptr %2645, i64 %2649
  %2651 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %2650, ptr noundef %2651)
  br label %2652

2652:                                             ; preds = %2640, %2639
  %2653 = load ptr, ptr %28, align 8, !tbaa !5
  %2654 = load i32, ptr %40, align 4, !tbaa !9
  %2655 = sext i32 %2654 to i64
  %2656 = getelementptr inbounds float, ptr %2653, i64 %2655
  %2657 = load ptr, ptr %29, align 8, !tbaa !5
  %2658 = load ptr, ptr %30, align 8, !tbaa !5
  %2659 = getelementptr inbounds float, ptr %2658, i64 1
  %2660 = load ptr, ptr %27, align 8, !tbaa !5
  %2661 = load ptr, ptr %33, align 8, !tbaa !5
  %2662 = load i32, ptr %44, align 4, !tbaa !9
  %2663 = sext i32 %2662 to i64
  %2664 = getelementptr inbounds float, ptr %2661, i64 %2663
  %2665 = load ptr, ptr %34, align 8, !tbaa !5
  %2666 = load ptr, ptr %35, align 8, !tbaa !5
  %2667 = getelementptr inbounds float, ptr %2666, i64 1
  %2668 = load ptr, ptr %36, align 8, !tbaa !5
  %2669 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.17, ptr noundef @.str.18, ptr noundef @.str.19, ptr noundef %86, ptr noundef %86, ptr noundef %2656, ptr noundef %2657, ptr noundef %2659, ptr noundef %2660, ptr noundef %2664, ptr noundef %2665, ptr noundef %2667, ptr noundef %2668, ptr noundef %2669)
  %2670 = load ptr, ptr %35, align 8, !tbaa !5
  %2671 = getelementptr inbounds float, ptr %2670, i64 1
  %2672 = load float, ptr %2671, align 4, !tbaa !11
  store float %2672, ptr %87, align 4, !tbaa !11
  %2673 = load ptr, ptr %35, align 8, !tbaa !5
  %2674 = getelementptr inbounds float, ptr %2673, i64 2
  %2675 = load float, ptr %2674, align 4, !tbaa !11
  %2676 = fcmp oge float %2675, 0.000000e+00
  br i1 %2676, label %2677, label %2684

2677:                                             ; preds = %2652
  %2678 = load ptr, ptr %35, align 8, !tbaa !5
  %2679 = getelementptr inbounds float, ptr %2678, i64 2
  %2680 = load float, ptr %2679, align 4, !tbaa !11
  %2681 = fpext float %2680 to double
  %2682 = fadd double %2681, 5.000000e-01
  %2683 = call double @llvm.floor.f64(double %2682)
  br label %2692

2684:                                             ; preds = %2652
  %2685 = load ptr, ptr %35, align 8, !tbaa !5
  %2686 = getelementptr inbounds float, ptr %2685, i64 2
  %2687 = load float, ptr %2686, align 4, !tbaa !11
  %2688 = fpext float %2687 to double
  %2689 = fsub double 5.000000e-01, %2688
  %2690 = call double @llvm.floor.f64(double %2689)
  %2691 = fneg double %2690
  br label %2692

2692:                                             ; preds = %2684, %2677
  %2693 = phi double [ %2683, %2677 ], [ %2691, %2684 ]
  %2694 = fptosi double %2693 to i32
  store i32 %2694, ptr %104, align 4, !tbaa !9
  br label %7174

2695:                                             ; preds = %2284, %2279
  %2696 = load i32, ptr %75, align 4, !tbaa !9
  %2697 = icmp ne i32 %2696, 0
  br i1 %2697, label %2698, label %3106

2698:                                             ; preds = %2695
  %2699 = load i32, ptr %73, align 4, !tbaa !9
  %2700 = icmp ne i32 %2699, 0
  br i1 %2700, label %3106, label %2701

2701:                                             ; preds = %2698
  %2702 = load i32, ptr %94, align 4, !tbaa !9
  %2703 = icmp ne i32 %2702, 0
  br i1 %2703, label %2704, label %2790

2704:                                             ; preds = %2701
  %2705 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2705, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2706

2706:                                             ; preds = %2733, %2704
  %2707 = load i32, ptr %67, align 4, !tbaa !9
  %2708 = load i32, ptr %45, align 4, !tbaa !9
  %2709 = icmp sle i32 %2707, %2708
  br i1 %2709, label %2710, label %2736

2710:                                             ; preds = %2706
  %2711 = load ptr, ptr %27, align 8, !tbaa !5
  %2712 = load i32, ptr %2711, align 4, !tbaa !9
  %2713 = load i32, ptr %67, align 4, !tbaa !9
  %2714 = sub nsw i32 %2712, %2713
  %2715 = add nsw i32 %2714, 1
  store i32 %2715, ptr %46, align 4, !tbaa !9
  %2716 = load ptr, ptr %28, align 8, !tbaa !5
  %2717 = load i32, ptr %67, align 4, !tbaa !9
  %2718 = load i32, ptr %67, align 4, !tbaa !9
  %2719 = load i32, ptr %39, align 4, !tbaa !9
  %2720 = mul nsw i32 %2718, %2719
  %2721 = add nsw i32 %2717, %2720
  %2722 = sext i32 %2721 to i64
  %2723 = getelementptr inbounds float, ptr %2716, i64 %2722
  %2724 = load ptr, ptr %29, align 8, !tbaa !5
  %2725 = load ptr, ptr %33, align 8, !tbaa !5
  %2726 = load i32, ptr %67, align 4, !tbaa !9
  %2727 = load i32, ptr %67, align 4, !tbaa !9
  %2728 = load i32, ptr %43, align 4, !tbaa !9
  %2729 = mul nsw i32 %2727, %2728
  %2730 = add nsw i32 %2726, %2729
  %2731 = sext i32 %2730 to i64
  %2732 = getelementptr inbounds float, ptr %2725, i64 %2731
  call void @scopy_(ptr noundef %46, ptr noundef %2723, ptr noundef %2724, ptr noundef %2732, ptr noundef @c__1)
  br label %2733

2733:                                             ; preds = %2710
  %2734 = load i32, ptr %67, align 4, !tbaa !9
  %2735 = add nsw i32 %2734, 1
  store i32 %2735, ptr %67, align 4, !tbaa !9
  br label %2706, !llvm.loop !39

2736:                                             ; preds = %2706
  %2737 = load i32, ptr %86, align 4, !tbaa !9
  %2738 = sub nsw i32 %2737, 1
  store i32 %2738, ptr %45, align 4, !tbaa !9
  %2739 = load i32, ptr %86, align 4, !tbaa !9
  %2740 = sub nsw i32 %2739, 1
  store i32 %2740, ptr %46, align 4, !tbaa !9
  %2741 = load ptr, ptr %33, align 8, !tbaa !5
  %2742 = load i32, ptr %43, align 4, !tbaa !9
  %2743 = shl i32 %2742, 1
  %2744 = add nsw i32 %2743, 1
  %2745 = sext i32 %2744 to i64
  %2746 = getelementptr inbounds float, ptr %2741, i64 %2745
  %2747 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.20, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %2746, ptr noundef %2747)
  %2748 = load ptr, ptr %27, align 8, !tbaa !5
  %2749 = load ptr, ptr %33, align 8, !tbaa !5
  %2750 = load i32, ptr %44, align 4, !tbaa !9
  %2751 = sext i32 %2750 to i64
  %2752 = getelementptr inbounds float, ptr %2749, i64 %2751
  %2753 = load ptr, ptr %34, align 8, !tbaa !5
  %2754 = load ptr, ptr %30, align 8, !tbaa !5
  %2755 = getelementptr inbounds float, ptr %2754, i64 1
  %2756 = load ptr, ptr %28, align 8, !tbaa !5
  %2757 = load i32, ptr %40, align 4, !tbaa !9
  %2758 = sext i32 %2757 to i64
  %2759 = getelementptr inbounds float, ptr %2756, i64 %2758
  %2760 = load ptr, ptr %29, align 8, !tbaa !5
  %2761 = load ptr, ptr %35, align 8, !tbaa !5
  %2762 = getelementptr inbounds float, ptr %2761, i64 1
  %2763 = load ptr, ptr %36, align 8, !tbaa !5
  %2764 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.9, ptr noundef %2748, ptr noundef %86, ptr noundef %2752, ptr noundef %2753, ptr noundef %2755, ptr noundef %86, ptr noundef %2759, ptr noundef %2760, ptr noundef %2762, ptr noundef %2763, ptr noundef %2764)
  %2765 = load ptr, ptr %35, align 8, !tbaa !5
  %2766 = getelementptr inbounds float, ptr %2765, i64 1
  %2767 = load float, ptr %2766, align 4, !tbaa !11
  store float %2767, ptr %87, align 4, !tbaa !11
  %2768 = load ptr, ptr %35, align 8, !tbaa !5
  %2769 = getelementptr inbounds float, ptr %2768, i64 2
  %2770 = load float, ptr %2769, align 4, !tbaa !11
  %2771 = fcmp oge float %2770, 0.000000e+00
  br i1 %2771, label %2772, label %2779

2772:                                             ; preds = %2736
  %2773 = load ptr, ptr %35, align 8, !tbaa !5
  %2774 = getelementptr inbounds float, ptr %2773, i64 2
  %2775 = load float, ptr %2774, align 4, !tbaa !11
  %2776 = fpext float %2775 to double
  %2777 = fadd double %2776, 5.000000e-01
  %2778 = call double @llvm.floor.f64(double %2777)
  br label %2787

2779:                                             ; preds = %2736
  %2780 = load ptr, ptr %35, align 8, !tbaa !5
  %2781 = getelementptr inbounds float, ptr %2780, i64 2
  %2782 = load float, ptr %2781, align 4, !tbaa !11
  %2783 = fpext float %2782 to double
  %2784 = fsub double 5.000000e-01, %2783
  %2785 = call double @llvm.floor.f64(double %2784)
  %2786 = fneg double %2785
  br label %2787

2787:                                             ; preds = %2779, %2772
  %2788 = phi double [ %2778, %2772 ], [ %2786, %2779 ]
  %2789 = fptosi double %2788 to i32
  store i32 %2789, ptr %104, align 4, !tbaa !9
  br label %3047

2790:                                             ; preds = %2701
  %2791 = load i32, ptr %86, align 4, !tbaa !9
  %2792 = sub nsw i32 %2791, 1
  store i32 %2792, ptr %45, align 4, !tbaa !9
  %2793 = load i32, ptr %86, align 4, !tbaa !9
  %2794 = sub nsw i32 %2793, 1
  store i32 %2794, ptr %46, align 4, !tbaa !9
  %2795 = load ptr, ptr %28, align 8, !tbaa !5
  %2796 = load i32, ptr %39, align 4, !tbaa !9
  %2797 = add nsw i32 %2796, 2
  %2798 = sext i32 %2797 to i64
  %2799 = getelementptr inbounds float, ptr %2795, i64 %2798
  %2800 = load ptr, ptr %29, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.21, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %2799, ptr noundef %2800)
  %2801 = load ptr, ptr %36, align 8, !tbaa !5
  %2802 = load i32, ptr %2801, align 4, !tbaa !9
  %2803 = load ptr, ptr %27, align 8, !tbaa !5
  %2804 = load i32, ptr %2803, align 4, !tbaa !9
  %2805 = sub nsw i32 %2802, %2804
  store i32 %2805, ptr %45, align 4, !tbaa !9
  %2806 = load ptr, ptr %27, align 8, !tbaa !5
  %2807 = load ptr, ptr %28, align 8, !tbaa !5
  %2808 = load i32, ptr %40, align 4, !tbaa !9
  %2809 = sext i32 %2808 to i64
  %2810 = getelementptr inbounds float, ptr %2807, i64 %2809
  %2811 = load ptr, ptr %29, align 8, !tbaa !5
  %2812 = load ptr, ptr %35, align 8, !tbaa !5
  %2813 = getelementptr inbounds float, ptr %2812, i64 1
  %2814 = load ptr, ptr %35, align 8, !tbaa !5
  %2815 = load ptr, ptr %27, align 8, !tbaa !5
  %2816 = load i32, ptr %2815, align 4, !tbaa !9
  %2817 = add nsw i32 %2816, 1
  %2818 = sext i32 %2817 to i64
  %2819 = getelementptr inbounds float, ptr %2814, i64 %2818
  call void @sgelqf_(ptr noundef %86, ptr noundef %2806, ptr noundef %2810, ptr noundef %2811, ptr noundef %2813, ptr noundef %2819, ptr noundef %45, ptr noundef %65)
  %2820 = load ptr, ptr %28, align 8, !tbaa !5
  %2821 = load i32, ptr %40, align 4, !tbaa !9
  %2822 = sext i32 %2821 to i64
  %2823 = getelementptr inbounds float, ptr %2820, i64 %2822
  %2824 = load ptr, ptr %29, align 8, !tbaa !5
  %2825 = load ptr, ptr %33, align 8, !tbaa !5
  %2826 = load i32, ptr %44, align 4, !tbaa !9
  %2827 = sext i32 %2826 to i64
  %2828 = getelementptr inbounds float, ptr %2825, i64 %2827
  %2829 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.21, ptr noundef %86, ptr noundef %86, ptr noundef %2823, ptr noundef %2824, ptr noundef %2828, ptr noundef %2829)
  %2830 = load i32, ptr %86, align 4, !tbaa !9
  %2831 = sub nsw i32 %2830, 1
  store i32 %2831, ptr %45, align 4, !tbaa !9
  %2832 = load i32, ptr %86, align 4, !tbaa !9
  %2833 = sub nsw i32 %2832, 1
  store i32 %2833, ptr %46, align 4, !tbaa !9
  %2834 = load ptr, ptr %33, align 8, !tbaa !5
  %2835 = load i32, ptr %43, align 4, !tbaa !9
  %2836 = shl i32 %2835, 1
  %2837 = add nsw i32 %2836, 1
  %2838 = sext i32 %2837 to i64
  %2839 = getelementptr inbounds float, ptr %2834, i64 %2838
  %2840 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.20, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %2839, ptr noundef %2840)
  %2841 = load ptr, ptr %36, align 8, !tbaa !5
  %2842 = load i32, ptr %2841, align 4, !tbaa !9
  %2843 = load ptr, ptr %27, align 8, !tbaa !5
  %2844 = load i32, ptr %2843, align 4, !tbaa !9
  %2845 = shl i32 %2844, 1
  %2846 = sub nsw i32 %2842, %2845
  store i32 %2846, ptr %45, align 4, !tbaa !9
  %2847 = load ptr, ptr %33, align 8, !tbaa !5
  %2848 = load i32, ptr %44, align 4, !tbaa !9
  %2849 = sext i32 %2848 to i64
  %2850 = getelementptr inbounds float, ptr %2847, i64 %2849
  %2851 = load ptr, ptr %34, align 8, !tbaa !5
  %2852 = load ptr, ptr %35, align 8, !tbaa !5
  %2853 = load ptr, ptr %27, align 8, !tbaa !5
  %2854 = load i32, ptr %2853, align 4, !tbaa !9
  %2855 = add nsw i32 %2854, 1
  %2856 = sext i32 %2855 to i64
  %2857 = getelementptr inbounds float, ptr %2852, i64 %2856
  %2858 = load ptr, ptr %35, align 8, !tbaa !5
  %2859 = load ptr, ptr %27, align 8, !tbaa !5
  %2860 = load i32, ptr %2859, align 4, !tbaa !9
  %2861 = shl i32 %2860, 1
  %2862 = add nsw i32 %2861, 1
  %2863 = sext i32 %2862 to i64
  %2864 = getelementptr inbounds float, ptr %2858, i64 %2863
  call void @sgeqrf_(ptr noundef %86, ptr noundef %86, ptr noundef %2850, ptr noundef %2851, ptr noundef %2857, ptr noundef %2864, ptr noundef %45, ptr noundef %65)
  %2865 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %2865, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %2866

2866:                                             ; preds = %2892, %2790
  %2867 = load i32, ptr %67, align 4, !tbaa !9
  %2868 = load i32, ptr %45, align 4, !tbaa !9
  %2869 = icmp sle i32 %2867, %2868
  br i1 %2869, label %2870, label %2895

2870:                                             ; preds = %2866
  %2871 = load i32, ptr %86, align 4, !tbaa !9
  %2872 = load i32, ptr %67, align 4, !tbaa !9
  %2873 = sub nsw i32 %2871, %2872
  %2874 = add nsw i32 %2873, 1
  store i32 %2874, ptr %46, align 4, !tbaa !9
  %2875 = load ptr, ptr %33, align 8, !tbaa !5
  %2876 = load i32, ptr %67, align 4, !tbaa !9
  %2877 = load i32, ptr %67, align 4, !tbaa !9
  %2878 = load i32, ptr %43, align 4, !tbaa !9
  %2879 = mul nsw i32 %2877, %2878
  %2880 = add nsw i32 %2876, %2879
  %2881 = sext i32 %2880 to i64
  %2882 = getelementptr inbounds float, ptr %2875, i64 %2881
  %2883 = load ptr, ptr %34, align 8, !tbaa !5
  %2884 = load ptr, ptr %33, align 8, !tbaa !5
  %2885 = load i32, ptr %67, align 4, !tbaa !9
  %2886 = load i32, ptr %67, align 4, !tbaa !9
  %2887 = load i32, ptr %43, align 4, !tbaa !9
  %2888 = mul nsw i32 %2886, %2887
  %2889 = add nsw i32 %2885, %2888
  %2890 = sext i32 %2889 to i64
  %2891 = getelementptr inbounds float, ptr %2884, i64 %2890
  call void @scopy_(ptr noundef %46, ptr noundef %2882, ptr noundef %2883, ptr noundef %2891, ptr noundef @c__1)
  br label %2892

2892:                                             ; preds = %2870
  %2893 = load i32, ptr %67, align 4, !tbaa !9
  %2894 = add nsw i32 %2893, 1
  store i32 %2894, ptr %67, align 4, !tbaa !9
  br label %2866, !llvm.loop !40

2895:                                             ; preds = %2866
  %2896 = load i32, ptr %86, align 4, !tbaa !9
  %2897 = sub nsw i32 %2896, 1
  store i32 %2897, ptr %45, align 4, !tbaa !9
  %2898 = load i32, ptr %86, align 4, !tbaa !9
  %2899 = sub nsw i32 %2898, 1
  store i32 %2899, ptr %46, align 4, !tbaa !9
  %2900 = load ptr, ptr %33, align 8, !tbaa !5
  %2901 = load i32, ptr %43, align 4, !tbaa !9
  %2902 = shl i32 %2901, 1
  %2903 = add nsw i32 %2902, 1
  %2904 = sext i32 %2903 to i64
  %2905 = getelementptr inbounds float, ptr %2900, i64 %2904
  %2906 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.20, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %2905, ptr noundef %2906)
  %2907 = load ptr, ptr %36, align 8, !tbaa !5
  %2908 = load i32, ptr %2907, align 4, !tbaa !9
  %2909 = load ptr, ptr %27, align 8, !tbaa !5
  %2910 = load i32, ptr %2909, align 4, !tbaa !9
  %2911 = sub nsw i32 %2908, %2910
  store i32 %2911, ptr %45, align 4, !tbaa !9
  %2912 = load ptr, ptr %33, align 8, !tbaa !5
  %2913 = load i32, ptr %44, align 4, !tbaa !9
  %2914 = sext i32 %2913 to i64
  %2915 = getelementptr inbounds float, ptr %2912, i64 %2914
  %2916 = load ptr, ptr %34, align 8, !tbaa !5
  %2917 = load ptr, ptr %30, align 8, !tbaa !5
  %2918 = getelementptr inbounds float, ptr %2917, i64 1
  %2919 = load ptr, ptr %31, align 8, !tbaa !5
  %2920 = load i32, ptr %42, align 4, !tbaa !9
  %2921 = sext i32 %2920 to i64
  %2922 = getelementptr inbounds float, ptr %2919, i64 %2921
  %2923 = load ptr, ptr %32, align 8, !tbaa !5
  %2924 = load ptr, ptr %35, align 8, !tbaa !5
  %2925 = load ptr, ptr %27, align 8, !tbaa !5
  %2926 = load i32, ptr %2925, align 4, !tbaa !9
  %2927 = add nsw i32 %2926, 1
  %2928 = sext i32 %2927 to i64
  %2929 = getelementptr inbounds float, ptr %2924, i64 %2928
  %2930 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.21, ptr noundef @.str, ptr noundef @.str.9, ptr noundef %86, ptr noundef %86, ptr noundef %2915, ptr noundef %2916, ptr noundef %2918, ptr noundef %86, ptr noundef %2922, ptr noundef %2923, ptr noundef %2929, ptr noundef %45, ptr noundef %2930)
  %2931 = load ptr, ptr %35, align 8, !tbaa !5
  %2932 = load ptr, ptr %27, align 8, !tbaa !5
  %2933 = load i32, ptr %2932, align 4, !tbaa !9
  %2934 = add nsw i32 %2933, 1
  %2935 = sext i32 %2934 to i64
  %2936 = getelementptr inbounds float, ptr %2931, i64 %2935
  %2937 = load float, ptr %2936, align 4, !tbaa !11
  store float %2937, ptr %87, align 4, !tbaa !11
  %2938 = load ptr, ptr %35, align 8, !tbaa !5
  %2939 = load ptr, ptr %27, align 8, !tbaa !5
  %2940 = load i32, ptr %2939, align 4, !tbaa !9
  %2941 = add nsw i32 %2940, 2
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds float, ptr %2938, i64 %2942
  %2944 = load float, ptr %2943, align 4, !tbaa !11
  %2945 = fcmp oge float %2944, 0.000000e+00
  br i1 %2945, label %2946, label %2957

2946:                                             ; preds = %2895
  %2947 = load ptr, ptr %35, align 8, !tbaa !5
  %2948 = load ptr, ptr %27, align 8, !tbaa !5
  %2949 = load i32, ptr %2948, align 4, !tbaa !9
  %2950 = add nsw i32 %2949, 2
  %2951 = sext i32 %2950 to i64
  %2952 = getelementptr inbounds float, ptr %2947, i64 %2951
  %2953 = load float, ptr %2952, align 4, !tbaa !11
  %2954 = fpext float %2953 to double
  %2955 = fadd double %2954, 5.000000e-01
  %2956 = call double @llvm.floor.f64(double %2955)
  br label %2969

2957:                                             ; preds = %2895
  %2958 = load ptr, ptr %35, align 8, !tbaa !5
  %2959 = load ptr, ptr %27, align 8, !tbaa !5
  %2960 = load i32, ptr %2959, align 4, !tbaa !9
  %2961 = add nsw i32 %2960, 2
  %2962 = sext i32 %2961 to i64
  %2963 = getelementptr inbounds float, ptr %2958, i64 %2962
  %2964 = load float, ptr %2963, align 4, !tbaa !11
  %2965 = fpext float %2964 to double
  %2966 = fsub double 5.000000e-01, %2965
  %2967 = call double @llvm.floor.f64(double %2966)
  %2968 = fneg double %2967
  br label %2969

2969:                                             ; preds = %2957, %2946
  %2970 = phi double [ %2956, %2946 ], [ %2968, %2957 ]
  %2971 = fptosi double %2970 to i32
  store i32 %2971, ptr %104, align 4, !tbaa !9
  %2972 = load i32, ptr %86, align 4, !tbaa !9
  %2973 = load ptr, ptr %27, align 8, !tbaa !5
  %2974 = load i32, ptr %2973, align 4, !tbaa !9
  %2975 = icmp slt i32 %2972, %2974
  br i1 %2975, label %2976, label %3021

2976:                                             ; preds = %2969
  %2977 = load ptr, ptr %27, align 8, !tbaa !5
  %2978 = load i32, ptr %2977, align 4, !tbaa !9
  %2979 = load i32, ptr %86, align 4, !tbaa !9
  %2980 = sub nsw i32 %2978, %2979
  store i32 %2980, ptr %45, align 4, !tbaa !9
  %2981 = load ptr, ptr %33, align 8, !tbaa !5
  %2982 = load i32, ptr %86, align 4, !tbaa !9
  %2983 = add nsw i32 %2982, 1
  %2984 = load i32, ptr %43, align 4, !tbaa !9
  %2985 = add nsw i32 %2983, %2984
  %2986 = sext i32 %2985 to i64
  %2987 = getelementptr inbounds float, ptr %2981, i64 %2986
  %2988 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %2987, ptr noundef %2988)
  %2989 = load ptr, ptr %27, align 8, !tbaa !5
  %2990 = load i32, ptr %2989, align 4, !tbaa !9
  %2991 = load i32, ptr %86, align 4, !tbaa !9
  %2992 = sub nsw i32 %2990, %2991
  store i32 %2992, ptr %45, align 4, !tbaa !9
  %2993 = load ptr, ptr %33, align 8, !tbaa !5
  %2994 = load i32, ptr %86, align 4, !tbaa !9
  %2995 = add nsw i32 %2994, 1
  %2996 = load i32, ptr %43, align 4, !tbaa !9
  %2997 = mul nsw i32 %2995, %2996
  %2998 = add nsw i32 %2997, 1
  %2999 = sext i32 %2998 to i64
  %3000 = getelementptr inbounds float, ptr %2993, i64 %2999
  %3001 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %3000, ptr noundef %3001)
  %3002 = load ptr, ptr %27, align 8, !tbaa !5
  %3003 = load i32, ptr %3002, align 4, !tbaa !9
  %3004 = load i32, ptr %86, align 4, !tbaa !9
  %3005 = sub nsw i32 %3003, %3004
  store i32 %3005, ptr %45, align 4, !tbaa !9
  %3006 = load ptr, ptr %27, align 8, !tbaa !5
  %3007 = load i32, ptr %3006, align 4, !tbaa !9
  %3008 = load i32, ptr %86, align 4, !tbaa !9
  %3009 = sub nsw i32 %3007, %3008
  store i32 %3009, ptr %46, align 4, !tbaa !9
  %3010 = load ptr, ptr %33, align 8, !tbaa !5
  %3011 = load i32, ptr %86, align 4, !tbaa !9
  %3012 = add nsw i32 %3011, 1
  %3013 = load i32, ptr %86, align 4, !tbaa !9
  %3014 = add nsw i32 %3013, 1
  %3015 = load i32, ptr %43, align 4, !tbaa !9
  %3016 = mul nsw i32 %3014, %3015
  %3017 = add nsw i32 %3012, %3016
  %3018 = sext i32 %3017 to i64
  %3019 = getelementptr inbounds float, ptr %3010, i64 %3018
  %3020 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %3019, ptr noundef %3020)
  br label %3021

3021:                                             ; preds = %2976, %2969
  %3022 = load ptr, ptr %36, align 8, !tbaa !5
  %3023 = load i32, ptr %3022, align 4, !tbaa !9
  %3024 = load ptr, ptr %27, align 8, !tbaa !5
  %3025 = load i32, ptr %3024, align 4, !tbaa !9
  %3026 = sub nsw i32 %3023, %3025
  store i32 %3026, ptr %45, align 4, !tbaa !9
  %3027 = load ptr, ptr %27, align 8, !tbaa !5
  %3028 = load ptr, ptr %27, align 8, !tbaa !5
  %3029 = load ptr, ptr %28, align 8, !tbaa !5
  %3030 = load i32, ptr %40, align 4, !tbaa !9
  %3031 = sext i32 %3030 to i64
  %3032 = getelementptr inbounds float, ptr %3029, i64 %3031
  %3033 = load ptr, ptr %29, align 8, !tbaa !5
  %3034 = load ptr, ptr %35, align 8, !tbaa !5
  %3035 = getelementptr inbounds float, ptr %3034, i64 1
  %3036 = load ptr, ptr %33, align 8, !tbaa !5
  %3037 = load i32, ptr %44, align 4, !tbaa !9
  %3038 = sext i32 %3037 to i64
  %3039 = getelementptr inbounds float, ptr %3036, i64 %3038
  %3040 = load ptr, ptr %34, align 8, !tbaa !5
  %3041 = load ptr, ptr %35, align 8, !tbaa !5
  %3042 = load ptr, ptr %27, align 8, !tbaa !5
  %3043 = load i32, ptr %3042, align 4, !tbaa !9
  %3044 = add nsw i32 %3043, 1
  %3045 = sext i32 %3044 to i64
  %3046 = getelementptr inbounds float, ptr %3041, i64 %3045
  call void @sormlq_(ptr noundef @.str.22, ptr noundef @.str.23, ptr noundef %3027, ptr noundef %3028, ptr noundef %86, ptr noundef %3032, ptr noundef %3033, ptr noundef %3035, ptr noundef %3039, ptr noundef %3040, ptr noundef %3046, ptr noundef %45, ptr noundef %65)
  br label %3047

3047:                                             ; preds = %3021, %2787
  %3048 = load ptr, ptr %27, align 8, !tbaa !5
  %3049 = load i32, ptr %3048, align 4, !tbaa !9
  store i32 %3049, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3050

3050:                                             ; preds = %3074, %3047
  %3051 = load i32, ptr %67, align 4, !tbaa !9
  %3052 = load i32, ptr %45, align 4, !tbaa !9
  %3053 = icmp sle i32 %3051, %3052
  br i1 %3053, label %3054, label %3077

3054:                                             ; preds = %3050
  %3055 = load ptr, ptr %27, align 8, !tbaa !5
  %3056 = load ptr, ptr %33, align 8, !tbaa !5
  %3057 = load i32, ptr %67, align 4, !tbaa !9
  %3058 = load i32, ptr %43, align 4, !tbaa !9
  %3059 = add nsw i32 %3057, %3058
  %3060 = sext i32 %3059 to i64
  %3061 = getelementptr inbounds float, ptr %3056, i64 %3060
  %3062 = load ptr, ptr %34, align 8, !tbaa !5
  %3063 = load ptr, ptr %28, align 8, !tbaa !5
  %3064 = load ptr, ptr %37, align 8, !tbaa !5
  %3065 = load i32, ptr %67, align 4, !tbaa !9
  %3066 = sext i32 %3065 to i64
  %3067 = getelementptr inbounds i32, ptr %3064, i64 %3066
  %3068 = load i32, ptr %3067, align 4, !tbaa !9
  %3069 = load i32, ptr %39, align 4, !tbaa !9
  %3070 = add nsw i32 %3068, %3069
  %3071 = sext i32 %3070 to i64
  %3072 = getelementptr inbounds float, ptr %3063, i64 %3071
  %3073 = load ptr, ptr %29, align 8, !tbaa !5
  call void @scopy_(ptr noundef %3055, ptr noundef %3061, ptr noundef %3062, ptr noundef %3072, ptr noundef %3073)
  br label %3074

3074:                                             ; preds = %3054
  %3075 = load i32, ptr %67, align 4, !tbaa !9
  %3076 = add nsw i32 %3075, 1
  store i32 %3076, ptr %67, align 4, !tbaa !9
  br label %3050, !llvm.loop !41

3077:                                             ; preds = %3050
  %3078 = load ptr, ptr %27, align 8, !tbaa !5
  %3079 = load ptr, ptr %27, align 8, !tbaa !5
  %3080 = load ptr, ptr %28, align 8, !tbaa !5
  %3081 = load i32, ptr %40, align 4, !tbaa !9
  %3082 = sext i32 %3081 to i64
  %3083 = getelementptr inbounds float, ptr %3080, i64 %3082
  %3084 = load ptr, ptr %29, align 8, !tbaa !5
  %3085 = load ptr, ptr %33, align 8, !tbaa !5
  %3086 = load i32, ptr %44, align 4, !tbaa !9
  %3087 = sext i32 %3086 to i64
  %3088 = getelementptr inbounds float, ptr %3085, i64 %3087
  %3089 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.24, ptr noundef %3078, ptr noundef %3079, ptr noundef %3083, ptr noundef %3084, ptr noundef %3088, ptr noundef %3089)
  %3090 = load i32, ptr %97, align 4, !tbaa !9
  %3091 = icmp ne i32 %3090, 0
  br i1 %3091, label %3092, label %3105

3092:                                             ; preds = %3077
  %3093 = load ptr, ptr %27, align 8, !tbaa !5
  %3094 = load ptr, ptr %27, align 8, !tbaa !5
  %3095 = load ptr, ptr %33, align 8, !tbaa !5
  %3096 = load i32, ptr %44, align 4, !tbaa !9
  %3097 = sext i32 %3096 to i64
  %3098 = getelementptr inbounds float, ptr %3095, i64 %3097
  %3099 = load ptr, ptr %34, align 8, !tbaa !5
  %3100 = load ptr, ptr %31, align 8, !tbaa !5
  %3101 = load i32, ptr %42, align 4, !tbaa !9
  %3102 = sext i32 %3101 to i64
  %3103 = getelementptr inbounds float, ptr %3100, i64 %3102
  %3104 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.24, ptr noundef %3093, ptr noundef %3094, ptr noundef %3098, ptr noundef %3099, ptr noundef %3103, ptr noundef %3104)
  br label %3105

3105:                                             ; preds = %3092, %3077
  br label %7173

3106:                                             ; preds = %2698, %2695
  %3107 = load i32, ptr %73, align 4, !tbaa !9
  %3108 = icmp ne i32 %3107, 0
  br i1 %3108, label %3109, label %3432

3109:                                             ; preds = %3106
  %3110 = load i32, ptr %75, align 4, !tbaa !9
  %3111 = icmp ne i32 %3110, 0
  br i1 %3111, label %3432, label %3112

3112:                                             ; preds = %3109
  %3113 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3113, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3114

3114:                                             ; preds = %3141, %3112
  %3115 = load i32, ptr %67, align 4, !tbaa !9
  %3116 = load i32, ptr %45, align 4, !tbaa !9
  %3117 = icmp sle i32 %3115, %3116
  br i1 %3117, label %3118, label %3144

3118:                                             ; preds = %3114
  %3119 = load ptr, ptr %27, align 8, !tbaa !5
  %3120 = load i32, ptr %3119, align 4, !tbaa !9
  %3121 = load i32, ptr %67, align 4, !tbaa !9
  %3122 = sub nsw i32 %3120, %3121
  %3123 = add nsw i32 %3122, 1
  store i32 %3123, ptr %46, align 4, !tbaa !9
  %3124 = load ptr, ptr %28, align 8, !tbaa !5
  %3125 = load i32, ptr %67, align 4, !tbaa !9
  %3126 = load i32, ptr %67, align 4, !tbaa !9
  %3127 = load i32, ptr %39, align 4, !tbaa !9
  %3128 = mul nsw i32 %3126, %3127
  %3129 = add nsw i32 %3125, %3128
  %3130 = sext i32 %3129 to i64
  %3131 = getelementptr inbounds float, ptr %3124, i64 %3130
  %3132 = load ptr, ptr %29, align 8, !tbaa !5
  %3133 = load ptr, ptr %31, align 8, !tbaa !5
  %3134 = load i32, ptr %67, align 4, !tbaa !9
  %3135 = load i32, ptr %67, align 4, !tbaa !9
  %3136 = load i32, ptr %41, align 4, !tbaa !9
  %3137 = mul nsw i32 %3135, %3136
  %3138 = add nsw i32 %3134, %3137
  %3139 = sext i32 %3138 to i64
  %3140 = getelementptr inbounds float, ptr %3133, i64 %3139
  call void @scopy_(ptr noundef %46, ptr noundef %3131, ptr noundef %3132, ptr noundef %3140, ptr noundef @c__1)
  br label %3141

3141:                                             ; preds = %3118
  %3142 = load i32, ptr %67, align 4, !tbaa !9
  %3143 = add nsw i32 %3142, 1
  store i32 %3143, ptr %67, align 4, !tbaa !9
  br label %3114, !llvm.loop !42

3144:                                             ; preds = %3114
  %3145 = load i32, ptr %86, align 4, !tbaa !9
  %3146 = sub nsw i32 %3145, 1
  store i32 %3146, ptr %45, align 4, !tbaa !9
  %3147 = load i32, ptr %86, align 4, !tbaa !9
  %3148 = sub nsw i32 %3147, 1
  store i32 %3148, ptr %46, align 4, !tbaa !9
  %3149 = load ptr, ptr %31, align 8, !tbaa !5
  %3150 = load i32, ptr %41, align 4, !tbaa !9
  %3151 = shl i32 %3150, 1
  %3152 = add nsw i32 %3151, 1
  %3153 = sext i32 %3152 to i64
  %3154 = getelementptr inbounds float, ptr %3149, i64 %3153
  %3155 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.20, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %3154, ptr noundef %3155)
  %3156 = load ptr, ptr %36, align 8, !tbaa !5
  %3157 = load i32, ptr %3156, align 4, !tbaa !9
  %3158 = load ptr, ptr %27, align 8, !tbaa !5
  %3159 = load i32, ptr %3158, align 4, !tbaa !9
  %3160 = shl i32 %3159, 1
  %3161 = sub nsw i32 %3157, %3160
  store i32 %3161, ptr %45, align 4, !tbaa !9
  %3162 = load ptr, ptr %27, align 8, !tbaa !5
  %3163 = load ptr, ptr %31, align 8, !tbaa !5
  %3164 = load i32, ptr %42, align 4, !tbaa !9
  %3165 = sext i32 %3164 to i64
  %3166 = getelementptr inbounds float, ptr %3163, i64 %3165
  %3167 = load ptr, ptr %32, align 8, !tbaa !5
  %3168 = load ptr, ptr %35, align 8, !tbaa !5
  %3169 = load ptr, ptr %27, align 8, !tbaa !5
  %3170 = load i32, ptr %3169, align 4, !tbaa !9
  %3171 = add nsw i32 %3170, 1
  %3172 = sext i32 %3171 to i64
  %3173 = getelementptr inbounds float, ptr %3168, i64 %3172
  %3174 = load ptr, ptr %35, align 8, !tbaa !5
  %3175 = load ptr, ptr %27, align 8, !tbaa !5
  %3176 = load i32, ptr %3175, align 4, !tbaa !9
  %3177 = shl i32 %3176, 1
  %3178 = add nsw i32 %3177, 1
  %3179 = sext i32 %3178 to i64
  %3180 = getelementptr inbounds float, ptr %3174, i64 %3179
  call void @sgeqrf_(ptr noundef %3162, ptr noundef %86, ptr noundef %3166, ptr noundef %3167, ptr noundef %3173, ptr noundef %3180, ptr noundef %45, ptr noundef %65)
  %3181 = load i32, ptr %86, align 4, !tbaa !9
  %3182 = sub nsw i32 %3181, 1
  store i32 %3182, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3183

3183:                                             ; preds = %3210, %3144
  %3184 = load i32, ptr %67, align 4, !tbaa !9
  %3185 = load i32, ptr %45, align 4, !tbaa !9
  %3186 = icmp sle i32 %3184, %3185
  br i1 %3186, label %3187, label %3213

3187:                                             ; preds = %3183
  %3188 = load i32, ptr %86, align 4, !tbaa !9
  %3189 = load i32, ptr %67, align 4, !tbaa !9
  %3190 = sub nsw i32 %3188, %3189
  store i32 %3190, ptr %46, align 4, !tbaa !9
  %3191 = load ptr, ptr %31, align 8, !tbaa !5
  %3192 = load i32, ptr %67, align 4, !tbaa !9
  %3193 = load i32, ptr %67, align 4, !tbaa !9
  %3194 = add nsw i32 %3193, 1
  %3195 = load i32, ptr %41, align 4, !tbaa !9
  %3196 = mul nsw i32 %3194, %3195
  %3197 = add nsw i32 %3192, %3196
  %3198 = sext i32 %3197 to i64
  %3199 = getelementptr inbounds float, ptr %3191, i64 %3198
  %3200 = load ptr, ptr %32, align 8, !tbaa !5
  %3201 = load ptr, ptr %31, align 8, !tbaa !5
  %3202 = load i32, ptr %67, align 4, !tbaa !9
  %3203 = add nsw i32 %3202, 1
  %3204 = load i32, ptr %67, align 4, !tbaa !9
  %3205 = load i32, ptr %41, align 4, !tbaa !9
  %3206 = mul nsw i32 %3204, %3205
  %3207 = add nsw i32 %3203, %3206
  %3208 = sext i32 %3207 to i64
  %3209 = getelementptr inbounds float, ptr %3201, i64 %3208
  call void @scopy_(ptr noundef %46, ptr noundef %3199, ptr noundef %3200, ptr noundef %3209, ptr noundef @c__1)
  br label %3210

3210:                                             ; preds = %3187
  %3211 = load i32, ptr %67, align 4, !tbaa !9
  %3212 = add nsw i32 %3211, 1
  store i32 %3212, ptr %67, align 4, !tbaa !9
  br label %3183, !llvm.loop !43

3213:                                             ; preds = %3183
  %3214 = load i32, ptr %86, align 4, !tbaa !9
  %3215 = sub nsw i32 %3214, 1
  store i32 %3215, ptr %45, align 4, !tbaa !9
  %3216 = load i32, ptr %86, align 4, !tbaa !9
  %3217 = sub nsw i32 %3216, 1
  store i32 %3217, ptr %46, align 4, !tbaa !9
  %3218 = load ptr, ptr %31, align 8, !tbaa !5
  %3219 = load i32, ptr %41, align 4, !tbaa !9
  %3220 = shl i32 %3219, 1
  %3221 = add nsw i32 %3220, 1
  %3222 = sext i32 %3221 to i64
  %3223 = getelementptr inbounds float, ptr %3218, i64 %3222
  %3224 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.20, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %3223, ptr noundef %3224)
  %3225 = load ptr, ptr %36, align 8, !tbaa !5
  %3226 = load i32, ptr %3225, align 4, !tbaa !9
  %3227 = load ptr, ptr %27, align 8, !tbaa !5
  %3228 = load i32, ptr %3227, align 4, !tbaa !9
  %3229 = sub nsw i32 %3226, %3228
  store i32 %3229, ptr %45, align 4, !tbaa !9
  %3230 = load ptr, ptr %31, align 8, !tbaa !5
  %3231 = load i32, ptr %42, align 4, !tbaa !9
  %3232 = sext i32 %3231 to i64
  %3233 = getelementptr inbounds float, ptr %3230, i64 %3232
  %3234 = load ptr, ptr %32, align 8, !tbaa !5
  %3235 = load ptr, ptr %30, align 8, !tbaa !5
  %3236 = getelementptr inbounds float, ptr %3235, i64 1
  %3237 = load ptr, ptr %28, align 8, !tbaa !5
  %3238 = load i32, ptr %40, align 4, !tbaa !9
  %3239 = sext i32 %3238 to i64
  %3240 = getelementptr inbounds float, ptr %3237, i64 %3239
  %3241 = load ptr, ptr %29, align 8, !tbaa !5
  %3242 = load ptr, ptr %35, align 8, !tbaa !5
  %3243 = load ptr, ptr %27, align 8, !tbaa !5
  %3244 = load i32, ptr %3243, align 4, !tbaa !9
  %3245 = add nsw i32 %3244, 1
  %3246 = sext i32 %3245 to i64
  %3247 = getelementptr inbounds float, ptr %3242, i64 %3246
  %3248 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.21, ptr noundef @.str, ptr noundef @.str.9, ptr noundef %86, ptr noundef %86, ptr noundef %3233, ptr noundef %3234, ptr noundef %3236, ptr noundef %86, ptr noundef %3240, ptr noundef %3241, ptr noundef %3247, ptr noundef %45, ptr noundef %3248)
  %3249 = load ptr, ptr %35, align 8, !tbaa !5
  %3250 = load ptr, ptr %27, align 8, !tbaa !5
  %3251 = load i32, ptr %3250, align 4, !tbaa !9
  %3252 = add nsw i32 %3251, 1
  %3253 = sext i32 %3252 to i64
  %3254 = getelementptr inbounds float, ptr %3249, i64 %3253
  %3255 = load float, ptr %3254, align 4, !tbaa !11
  store float %3255, ptr %87, align 4, !tbaa !11
  %3256 = load ptr, ptr %35, align 8, !tbaa !5
  %3257 = load ptr, ptr %27, align 8, !tbaa !5
  %3258 = load i32, ptr %3257, align 4, !tbaa !9
  %3259 = add nsw i32 %3258, 2
  %3260 = sext i32 %3259 to i64
  %3261 = getelementptr inbounds float, ptr %3256, i64 %3260
  %3262 = load float, ptr %3261, align 4, !tbaa !11
  %3263 = fcmp oge float %3262, 0.000000e+00
  br i1 %3263, label %3264, label %3275

3264:                                             ; preds = %3213
  %3265 = load ptr, ptr %35, align 8, !tbaa !5
  %3266 = load ptr, ptr %27, align 8, !tbaa !5
  %3267 = load i32, ptr %3266, align 4, !tbaa !9
  %3268 = add nsw i32 %3267, 2
  %3269 = sext i32 %3268 to i64
  %3270 = getelementptr inbounds float, ptr %3265, i64 %3269
  %3271 = load float, ptr %3270, align 4, !tbaa !11
  %3272 = fpext float %3271 to double
  %3273 = fadd double %3272, 5.000000e-01
  %3274 = call double @llvm.floor.f64(double %3273)
  br label %3287

3275:                                             ; preds = %3213
  %3276 = load ptr, ptr %35, align 8, !tbaa !5
  %3277 = load ptr, ptr %27, align 8, !tbaa !5
  %3278 = load i32, ptr %3277, align 4, !tbaa !9
  %3279 = add nsw i32 %3278, 2
  %3280 = sext i32 %3279 to i64
  %3281 = getelementptr inbounds float, ptr %3276, i64 %3280
  %3282 = load float, ptr %3281, align 4, !tbaa !11
  %3283 = fpext float %3282 to double
  %3284 = fsub double 5.000000e-01, %3283
  %3285 = call double @llvm.floor.f64(double %3284)
  %3286 = fneg double %3285
  br label %3287

3287:                                             ; preds = %3275, %3264
  %3288 = phi double [ %3274, %3264 ], [ %3286, %3275 ]
  %3289 = fptosi double %3288 to i32
  store i32 %3289, ptr %104, align 4, !tbaa !9
  %3290 = load i32, ptr %86, align 4, !tbaa !9
  %3291 = load ptr, ptr %26, align 8, !tbaa !5
  %3292 = load i32, ptr %3291, align 4, !tbaa !9
  %3293 = icmp slt i32 %3290, %3292
  br i1 %3293, label %3294, label %3342

3294:                                             ; preds = %3287
  %3295 = load ptr, ptr %26, align 8, !tbaa !5
  %3296 = load i32, ptr %3295, align 4, !tbaa !9
  %3297 = load i32, ptr %86, align 4, !tbaa !9
  %3298 = sub nsw i32 %3296, %3297
  store i32 %3298, ptr %45, align 4, !tbaa !9
  %3299 = load ptr, ptr %31, align 8, !tbaa !5
  %3300 = load i32, ptr %86, align 4, !tbaa !9
  %3301 = add nsw i32 %3300, 1
  %3302 = load i32, ptr %41, align 4, !tbaa !9
  %3303 = add nsw i32 %3301, %3302
  %3304 = sext i32 %3303 to i64
  %3305 = getelementptr inbounds float, ptr %3299, i64 %3304
  %3306 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %3305, ptr noundef %3306)
  %3307 = load i32, ptr %86, align 4, !tbaa !9
  %3308 = load i32, ptr %76, align 4, !tbaa !9
  %3309 = icmp slt i32 %3307, %3308
  br i1 %3309, label %3310, label %3341

3310:                                             ; preds = %3294
  %3311 = load i32, ptr %76, align 4, !tbaa !9
  %3312 = load i32, ptr %86, align 4, !tbaa !9
  %3313 = sub nsw i32 %3311, %3312
  store i32 %3313, ptr %45, align 4, !tbaa !9
  %3314 = load ptr, ptr %31, align 8, !tbaa !5
  %3315 = load i32, ptr %86, align 4, !tbaa !9
  %3316 = add nsw i32 %3315, 1
  %3317 = load i32, ptr %41, align 4, !tbaa !9
  %3318 = mul nsw i32 %3316, %3317
  %3319 = add nsw i32 %3318, 1
  %3320 = sext i32 %3319 to i64
  %3321 = getelementptr inbounds float, ptr %3314, i64 %3320
  %3322 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %3321, ptr noundef %3322)
  %3323 = load ptr, ptr %26, align 8, !tbaa !5
  %3324 = load i32, ptr %3323, align 4, !tbaa !9
  %3325 = load i32, ptr %86, align 4, !tbaa !9
  %3326 = sub nsw i32 %3324, %3325
  store i32 %3326, ptr %45, align 4, !tbaa !9
  %3327 = load i32, ptr %76, align 4, !tbaa !9
  %3328 = load i32, ptr %86, align 4, !tbaa !9
  %3329 = sub nsw i32 %3327, %3328
  store i32 %3329, ptr %46, align 4, !tbaa !9
  %3330 = load ptr, ptr %31, align 8, !tbaa !5
  %3331 = load i32, ptr %86, align 4, !tbaa !9
  %3332 = add nsw i32 %3331, 1
  %3333 = load i32, ptr %86, align 4, !tbaa !9
  %3334 = add nsw i32 %3333, 1
  %3335 = load i32, ptr %41, align 4, !tbaa !9
  %3336 = mul nsw i32 %3334, %3335
  %3337 = add nsw i32 %3332, %3336
  %3338 = sext i32 %3337 to i64
  %3339 = getelementptr inbounds float, ptr %3330, i64 %3338
  %3340 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %3339, ptr noundef %3340)
  br label %3341

3341:                                             ; preds = %3310, %3294
  br label %3342

3342:                                             ; preds = %3341, %3287
  %3343 = load ptr, ptr %36, align 8, !tbaa !5
  %3344 = load i32, ptr %3343, align 4, !tbaa !9
  %3345 = load ptr, ptr %27, align 8, !tbaa !5
  %3346 = load i32, ptr %3345, align 4, !tbaa !9
  %3347 = sub nsw i32 %3344, %3346
  store i32 %3347, ptr %45, align 4, !tbaa !9
  %3348 = load ptr, ptr %26, align 8, !tbaa !5
  %3349 = load ptr, ptr %27, align 8, !tbaa !5
  %3350 = load ptr, ptr %28, align 8, !tbaa !5
  %3351 = load i32, ptr %40, align 4, !tbaa !9
  %3352 = sext i32 %3351 to i64
  %3353 = getelementptr inbounds float, ptr %3350, i64 %3352
  %3354 = load ptr, ptr %29, align 8, !tbaa !5
  %3355 = load ptr, ptr %35, align 8, !tbaa !5
  %3356 = getelementptr inbounds float, ptr %3355, i64 1
  %3357 = load ptr, ptr %31, align 8, !tbaa !5
  %3358 = load i32, ptr %42, align 4, !tbaa !9
  %3359 = sext i32 %3358 to i64
  %3360 = getelementptr inbounds float, ptr %3357, i64 %3359
  %3361 = load ptr, ptr %32, align 8, !tbaa !5
  %3362 = load ptr, ptr %35, align 8, !tbaa !5
  %3363 = load ptr, ptr %27, align 8, !tbaa !5
  %3364 = load i32, ptr %3363, align 4, !tbaa !9
  %3365 = add nsw i32 %3364, 1
  %3366 = sext i32 %3365 to i64
  %3367 = getelementptr inbounds float, ptr %3362, i64 %3366
  call void @sormqr_(ptr noundef @.str.22, ptr noundef @.str.25, ptr noundef %3348, ptr noundef %76, ptr noundef %3349, ptr noundef %3353, ptr noundef %3354, ptr noundef %3356, ptr noundef %3360, ptr noundef %3361, ptr noundef %3367, ptr noundef %45, ptr noundef %65)
  %3368 = load i32, ptr %98, align 4, !tbaa !9
  %3369 = icmp ne i32 %3368, 0
  br i1 %3369, label %3370, label %3387

3370:                                             ; preds = %3342
  %3371 = load ptr, ptr %26, align 8, !tbaa !5
  %3372 = load i32, ptr %3371, align 4, !tbaa !9
  %3373 = sub nsw i32 %3372, 1
  store i32 %3373, ptr %45, align 4, !tbaa !9
  %3374 = load ptr, ptr %31, align 8, !tbaa !5
  %3375 = load i32, ptr %42, align 4, !tbaa !9
  %3376 = sext i32 %3375 to i64
  %3377 = getelementptr inbounds float, ptr %3374, i64 %3376
  %3378 = load ptr, ptr %32, align 8, !tbaa !5
  %3379 = load ptr, ptr %37, align 8, !tbaa !5
  %3380 = load ptr, ptr %27, align 8, !tbaa !5
  %3381 = load i32, ptr %3380, align 4, !tbaa !9
  %3382 = shl i32 %3381, 1
  %3383 = add nsw i32 %3382, 1
  %3384 = sext i32 %3383 to i64
  %3385 = getelementptr inbounds i32, ptr %3379, i64 %3384
  %3386 = call i32 @slaswp_(ptr noundef %76, ptr noundef %3377, ptr noundef %3378, ptr noundef @c__1, ptr noundef %45, ptr noundef %3385, ptr noundef @c_n1)
  br label %3387

3387:                                             ; preds = %3370, %3342
  %3388 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %3388, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3389

3389:                                             ; preds = %3412, %3387
  %3390 = load i32, ptr %67, align 4, !tbaa !9
  %3391 = load i32, ptr %45, align 4, !tbaa !9
  %3392 = icmp sle i32 %3390, %3391
  br i1 %3392, label %3393, label %3415

3393:                                             ; preds = %3389
  %3394 = load ptr, ptr %26, align 8, !tbaa !5
  %3395 = load ptr, ptr %31, align 8, !tbaa !5
  %3396 = load i32, ptr %67, align 4, !tbaa !9
  %3397 = load i32, ptr %41, align 4, !tbaa !9
  %3398 = mul nsw i32 %3396, %3397
  %3399 = add nsw i32 %3398, 1
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds float, ptr %3395, i64 %3400
  %3402 = call float @snrm2_(ptr noundef %3394, ptr noundef %3401, ptr noundef @c__1)
  %3403 = fdiv float 1.000000e+00, %3402
  store float %3403, ptr %101, align 4, !tbaa !11
  %3404 = load ptr, ptr %26, align 8, !tbaa !5
  %3405 = load ptr, ptr %31, align 8, !tbaa !5
  %3406 = load i32, ptr %67, align 4, !tbaa !9
  %3407 = load i32, ptr %41, align 4, !tbaa !9
  %3408 = mul nsw i32 %3406, %3407
  %3409 = add nsw i32 %3408, 1
  %3410 = sext i32 %3409 to i64
  %3411 = getelementptr inbounds float, ptr %3405, i64 %3410
  call void @sscal_(ptr noundef %3404, ptr noundef %101, ptr noundef %3411, ptr noundef @c__1)
  br label %3412

3412:                                             ; preds = %3393
  %3413 = load i32, ptr %67, align 4, !tbaa !9
  %3414 = add nsw i32 %3413, 1
  store i32 %3414, ptr %67, align 4, !tbaa !9
  br label %3389, !llvm.loop !44

3415:                                             ; preds = %3389
  %3416 = load i32, ptr %97, align 4, !tbaa !9
  %3417 = icmp ne i32 %3416, 0
  br i1 %3417, label %3418, label %3431

3418:                                             ; preds = %3415
  %3419 = load ptr, ptr %27, align 8, !tbaa !5
  %3420 = load ptr, ptr %27, align 8, !tbaa !5
  %3421 = load ptr, ptr %31, align 8, !tbaa !5
  %3422 = load i32, ptr %42, align 4, !tbaa !9
  %3423 = sext i32 %3422 to i64
  %3424 = getelementptr inbounds float, ptr %3421, i64 %3423
  %3425 = load ptr, ptr %32, align 8, !tbaa !5
  %3426 = load ptr, ptr %33, align 8, !tbaa !5
  %3427 = load i32, ptr %44, align 4, !tbaa !9
  %3428 = sext i32 %3427 to i64
  %3429 = getelementptr inbounds float, ptr %3426, i64 %3428
  %3430 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.24, ptr noundef %3419, ptr noundef %3420, ptr noundef %3424, ptr noundef %3425, ptr noundef %3429, ptr noundef %3430)
  br label %3431

3431:                                             ; preds = %3418, %3415
  br label %7172

3432:                                             ; preds = %3109, %3106
  %3433 = load i32, ptr %69, align 4, !tbaa !9
  %3434 = icmp ne i32 %3433, 0
  br i1 %3434, label %6328, label %3435

3435:                                             ; preds = %3432
  %3436 = load i32, ptr %94, align 4, !tbaa !9
  %3437 = icmp ne i32 %3436, 0
  br i1 %3437, label %5794, label %3438

3438:                                             ; preds = %3435
  %3439 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3439, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3440

3440:                                             ; preds = %3467, %3438
  %3441 = load i32, ptr %67, align 4, !tbaa !9
  %3442 = load i32, ptr %45, align 4, !tbaa !9
  %3443 = icmp sle i32 %3441, %3442
  br i1 %3443, label %3444, label %3470

3444:                                             ; preds = %3440
  %3445 = load ptr, ptr %27, align 8, !tbaa !5
  %3446 = load i32, ptr %3445, align 4, !tbaa !9
  %3447 = load i32, ptr %67, align 4, !tbaa !9
  %3448 = sub nsw i32 %3446, %3447
  %3449 = add nsw i32 %3448, 1
  store i32 %3449, ptr %46, align 4, !tbaa !9
  %3450 = load ptr, ptr %28, align 8, !tbaa !5
  %3451 = load i32, ptr %67, align 4, !tbaa !9
  %3452 = load i32, ptr %67, align 4, !tbaa !9
  %3453 = load i32, ptr %39, align 4, !tbaa !9
  %3454 = mul nsw i32 %3452, %3453
  %3455 = add nsw i32 %3451, %3454
  %3456 = sext i32 %3455 to i64
  %3457 = getelementptr inbounds float, ptr %3450, i64 %3456
  %3458 = load ptr, ptr %29, align 8, !tbaa !5
  %3459 = load ptr, ptr %33, align 8, !tbaa !5
  %3460 = load i32, ptr %67, align 4, !tbaa !9
  %3461 = load i32, ptr %67, align 4, !tbaa !9
  %3462 = load i32, ptr %43, align 4, !tbaa !9
  %3463 = mul nsw i32 %3461, %3462
  %3464 = add nsw i32 %3460, %3463
  %3465 = sext i32 %3464 to i64
  %3466 = getelementptr inbounds float, ptr %3459, i64 %3465
  call void @scopy_(ptr noundef %46, ptr noundef %3457, ptr noundef %3458, ptr noundef %3466, ptr noundef @c__1)
  br label %3467

3467:                                             ; preds = %3444
  %3468 = load i32, ptr %67, align 4, !tbaa !9
  %3469 = add nsw i32 %3468, 1
  store i32 %3469, ptr %67, align 4, !tbaa !9
  br label %3440, !llvm.loop !45

3470:                                             ; preds = %3440
  %3471 = load i32, ptr %85, align 4, !tbaa !9
  %3472 = icmp ne i32 %3471, 0
  br i1 %3472, label %3473, label %3613

3473:                                             ; preds = %3470
  %3474 = load float, ptr %70, align 4, !tbaa !11
  %3475 = fpext float %3474 to double
  %3476 = call double @sqrt(double noundef %3475) #5
  %3477 = fptrunc double %3476 to float
  store float %3477, ptr %101, align 4, !tbaa !11
  %3478 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3478, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %3479

3479:                                             ; preds = %3609, %3473
  %3480 = load i32, ptr %68, align 4, !tbaa !9
  %3481 = load i32, ptr %45, align 4, !tbaa !9
  %3482 = icmp sle i32 %3480, %3481
  br i1 %3482, label %3483, label %3612

3483:                                             ; preds = %3479
  %3484 = load float, ptr %101, align 4, !tbaa !11
  %3485 = load ptr, ptr %33, align 8, !tbaa !5
  %3486 = load i32, ptr %68, align 4, !tbaa !9
  %3487 = load i32, ptr %68, align 4, !tbaa !9
  %3488 = load i32, ptr %43, align 4, !tbaa !9
  %3489 = mul nsw i32 %3487, %3488
  %3490 = add nsw i32 %3486, %3489
  %3491 = sext i32 %3490 to i64
  %3492 = getelementptr inbounds float, ptr %3485, i64 %3491
  %3493 = load float, ptr %3492, align 4, !tbaa !11
  store float %3493, ptr %57, align 4, !tbaa !11
  %3494 = load float, ptr %57, align 4, !tbaa !11
  %3495 = fcmp oge float %3494, 0.000000e+00
  br i1 %3495, label %3496, label %3498

3496:                                             ; preds = %3483
  %3497 = load float, ptr %57, align 4, !tbaa !11
  br label %3501

3498:                                             ; preds = %3483
  %3499 = load float, ptr %57, align 4, !tbaa !11
  %3500 = fneg float %3499
  br label %3501

3501:                                             ; preds = %3498, %3496
  %3502 = phi float [ %3497, %3496 ], [ %3500, %3498 ]
  %3503 = fmul float %3484, %3502
  store float %3503, ptr %66, align 4, !tbaa !11
  %3504 = load ptr, ptr %27, align 8, !tbaa !5
  %3505 = load i32, ptr %3504, align 4, !tbaa !9
  store i32 %3505, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3506

3506:                                             ; preds = %3605, %3501
  %3507 = load i32, ptr %67, align 4, !tbaa !9
  %3508 = load i32, ptr %46, align 4, !tbaa !9
  %3509 = icmp sle i32 %3507, %3508
  br i1 %3509, label %3510, label %3608

3510:                                             ; preds = %3506
  %3511 = load i32, ptr %67, align 4, !tbaa !9
  %3512 = load i32, ptr %68, align 4, !tbaa !9
  %3513 = icmp sgt i32 %3511, %3512
  br i1 %3513, label %3514, label %3535

3514:                                             ; preds = %3510
  %3515 = load ptr, ptr %33, align 8, !tbaa !5
  %3516 = load i32, ptr %67, align 4, !tbaa !9
  %3517 = load i32, ptr %68, align 4, !tbaa !9
  %3518 = load i32, ptr %43, align 4, !tbaa !9
  %3519 = mul nsw i32 %3517, %3518
  %3520 = add nsw i32 %3516, %3519
  %3521 = sext i32 %3520 to i64
  %3522 = getelementptr inbounds float, ptr %3515, i64 %3521
  %3523 = load float, ptr %3522, align 4, !tbaa !11
  store float %3523, ptr %57, align 4, !tbaa !11
  %3524 = load float, ptr %57, align 4, !tbaa !11
  %3525 = fcmp oge float %3524, 0.000000e+00
  br i1 %3525, label %3526, label %3528

3526:                                             ; preds = %3514
  %3527 = load float, ptr %57, align 4, !tbaa !11
  br label %3531

3528:                                             ; preds = %3514
  %3529 = load float, ptr %57, align 4, !tbaa !11
  %3530 = fneg float %3529
  br label %3531

3531:                                             ; preds = %3528, %3526
  %3532 = phi float [ %3527, %3526 ], [ %3530, %3528 ]
  %3533 = load float, ptr %66, align 4, !tbaa !11
  %3534 = fcmp ole float %3532, %3533
  br i1 %3534, label %3539, label %3535

3535:                                             ; preds = %3531, %3510
  %3536 = load i32, ptr %67, align 4, !tbaa !9
  %3537 = load i32, ptr %68, align 4, !tbaa !9
  %3538 = icmp slt i32 %3536, %3537
  br i1 %3538, label %3539, label %3581

3539:                                             ; preds = %3535, %3531
  %3540 = load ptr, ptr %33, align 8, !tbaa !5
  %3541 = load i32, ptr %67, align 4, !tbaa !9
  %3542 = load i32, ptr %68, align 4, !tbaa !9
  %3543 = load i32, ptr %43, align 4, !tbaa !9
  %3544 = mul nsw i32 %3542, %3543
  %3545 = add nsw i32 %3541, %3544
  %3546 = sext i32 %3545 to i64
  %3547 = getelementptr inbounds float, ptr %3540, i64 %3546
  %3548 = load float, ptr %3547, align 4, !tbaa !11
  %3549 = fcmp oge float %3548, 0.000000e+00
  br i1 %3549, label %3550, label %3560

3550:                                             ; preds = %3539
  %3551 = load float, ptr %66, align 4, !tbaa !11
  %3552 = fcmp oge float %3551, 0.000000e+00
  br i1 %3552, label %3553, label %3555

3553:                                             ; preds = %3550
  %3554 = load float, ptr %66, align 4, !tbaa !11
  br label %3558

3555:                                             ; preds = %3550
  %3556 = load float, ptr %66, align 4, !tbaa !11
  %3557 = fneg float %3556
  br label %3558

3558:                                             ; preds = %3555, %3553
  %3559 = phi float [ %3554, %3553 ], [ %3557, %3555 ]
  br label %3571

3560:                                             ; preds = %3539
  %3561 = load float, ptr %66, align 4, !tbaa !11
  %3562 = fcmp oge float %3561, 0.000000e+00
  br i1 %3562, label %3563, label %3565

3563:                                             ; preds = %3560
  %3564 = load float, ptr %66, align 4, !tbaa !11
  br label %3568

3565:                                             ; preds = %3560
  %3566 = load float, ptr %66, align 4, !tbaa !11
  %3567 = fneg float %3566
  br label %3568

3568:                                             ; preds = %3565, %3563
  %3569 = phi float [ %3564, %3563 ], [ %3567, %3565 ]
  %3570 = fneg float %3569
  br label %3571

3571:                                             ; preds = %3568, %3558
  %3572 = phi float [ %3559, %3558 ], [ %3570, %3568 ]
  %3573 = load ptr, ptr %33, align 8, !tbaa !5
  %3574 = load i32, ptr %67, align 4, !tbaa !9
  %3575 = load i32, ptr %68, align 4, !tbaa !9
  %3576 = load i32, ptr %43, align 4, !tbaa !9
  %3577 = mul nsw i32 %3575, %3576
  %3578 = add nsw i32 %3574, %3577
  %3579 = sext i32 %3578 to i64
  %3580 = getelementptr inbounds float, ptr %3573, i64 %3579
  store float %3572, ptr %3580, align 4, !tbaa !11
  br label %3581

3581:                                             ; preds = %3571, %3535
  %3582 = load i32, ptr %67, align 4, !tbaa !9
  %3583 = load i32, ptr %68, align 4, !tbaa !9
  %3584 = icmp slt i32 %3582, %3583
  br i1 %3584, label %3585, label %3604

3585:                                             ; preds = %3581
  %3586 = load ptr, ptr %33, align 8, !tbaa !5
  %3587 = load i32, ptr %67, align 4, !tbaa !9
  %3588 = load i32, ptr %68, align 4, !tbaa !9
  %3589 = load i32, ptr %43, align 4, !tbaa !9
  %3590 = mul nsw i32 %3588, %3589
  %3591 = add nsw i32 %3587, %3590
  %3592 = sext i32 %3591 to i64
  %3593 = getelementptr inbounds float, ptr %3586, i64 %3592
  %3594 = load float, ptr %3593, align 4, !tbaa !11
  %3595 = fneg float %3594
  %3596 = load ptr, ptr %33, align 8, !tbaa !5
  %3597 = load i32, ptr %67, align 4, !tbaa !9
  %3598 = load i32, ptr %68, align 4, !tbaa !9
  %3599 = load i32, ptr %43, align 4, !tbaa !9
  %3600 = mul nsw i32 %3598, %3599
  %3601 = add nsw i32 %3597, %3600
  %3602 = sext i32 %3601 to i64
  %3603 = getelementptr inbounds float, ptr %3596, i64 %3602
  store float %3595, ptr %3603, align 4, !tbaa !11
  br label %3604

3604:                                             ; preds = %3585, %3581
  br label %3605

3605:                                             ; preds = %3604
  %3606 = load i32, ptr %67, align 4, !tbaa !9
  %3607 = add nsw i32 %3606, 1
  store i32 %3607, ptr %67, align 4, !tbaa !9
  br label %3506, !llvm.loop !46

3608:                                             ; preds = %3506
  br label %3609

3609:                                             ; preds = %3608
  %3610 = load i32, ptr %68, align 4, !tbaa !9
  %3611 = add nsw i32 %3610, 1
  store i32 %3611, ptr %68, align 4, !tbaa !9
  br label %3479, !llvm.loop !47

3612:                                             ; preds = %3479
  br label %3625

3613:                                             ; preds = %3470
  %3614 = load i32, ptr %86, align 4, !tbaa !9
  %3615 = sub nsw i32 %3614, 1
  store i32 %3615, ptr %45, align 4, !tbaa !9
  %3616 = load i32, ptr %86, align 4, !tbaa !9
  %3617 = sub nsw i32 %3616, 1
  store i32 %3617, ptr %46, align 4, !tbaa !9
  %3618 = load ptr, ptr %33, align 8, !tbaa !5
  %3619 = load i32, ptr %43, align 4, !tbaa !9
  %3620 = shl i32 %3619, 1
  %3621 = add nsw i32 %3620, 1
  %3622 = sext i32 %3621 to i64
  %3623 = getelementptr inbounds float, ptr %3618, i64 %3622
  %3624 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %3623, ptr noundef %3624)
  br label %3625

3625:                                             ; preds = %3613, %3612
  %3626 = load ptr, ptr %33, align 8, !tbaa !5
  %3627 = load i32, ptr %44, align 4, !tbaa !9
  %3628 = sext i32 %3627 to i64
  %3629 = getelementptr inbounds float, ptr %3626, i64 %3628
  %3630 = load ptr, ptr %34, align 8, !tbaa !5
  %3631 = load ptr, ptr %35, align 8, !tbaa !5
  %3632 = load ptr, ptr %27, align 8, !tbaa !5
  %3633 = load i32, ptr %3632, align 4, !tbaa !9
  %3634 = shl i32 %3633, 1
  %3635 = add nsw i32 %3634, 1
  %3636 = sext i32 %3635 to i64
  %3637 = getelementptr inbounds float, ptr %3631, i64 %3636
  call void @slacpy_(ptr noundef @.str.17, ptr noundef %86, ptr noundef %86, ptr noundef %3629, ptr noundef %3630, ptr noundef %3637, ptr noundef %86)
  %3638 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3638, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3639

3639:                                             ; preds = %3681, %3625
  %3640 = load i32, ptr %67, align 4, !tbaa !9
  %3641 = load i32, ptr %45, align 4, !tbaa !9
  %3642 = icmp sle i32 %3640, %3641
  br i1 %3642, label %3643, label %3684

3643:                                             ; preds = %3639
  %3644 = load i32, ptr %86, align 4, !tbaa !9
  %3645 = load i32, ptr %67, align 4, !tbaa !9
  %3646 = sub nsw i32 %3644, %3645
  %3647 = add nsw i32 %3646, 1
  store i32 %3647, ptr %46, align 4, !tbaa !9
  %3648 = load ptr, ptr %35, align 8, !tbaa !5
  %3649 = load ptr, ptr %27, align 8, !tbaa !5
  %3650 = load i32, ptr %3649, align 4, !tbaa !9
  %3651 = shl i32 %3650, 1
  %3652 = load i32, ptr %67, align 4, !tbaa !9
  %3653 = sub nsw i32 %3652, 1
  %3654 = load i32, ptr %86, align 4, !tbaa !9
  %3655 = mul nsw i32 %3653, %3654
  %3656 = add nsw i32 %3651, %3655
  %3657 = load i32, ptr %67, align 4, !tbaa !9
  %3658 = add nsw i32 %3656, %3657
  %3659 = sext i32 %3658 to i64
  %3660 = getelementptr inbounds float, ptr %3648, i64 %3659
  %3661 = call float @snrm2_(ptr noundef %46, ptr noundef %3660, ptr noundef @c__1)
  store float %3661, ptr %66, align 4, !tbaa !11
  %3662 = load i32, ptr %86, align 4, !tbaa !9
  %3663 = load i32, ptr %67, align 4, !tbaa !9
  %3664 = sub nsw i32 %3662, %3663
  %3665 = add nsw i32 %3664, 1
  store i32 %3665, ptr %46, align 4, !tbaa !9
  %3666 = load float, ptr %66, align 4, !tbaa !11
  %3667 = fdiv float 1.000000e+00, %3666
  store float %3667, ptr %57, align 4, !tbaa !11
  %3668 = load ptr, ptr %35, align 8, !tbaa !5
  %3669 = load ptr, ptr %27, align 8, !tbaa !5
  %3670 = load i32, ptr %3669, align 4, !tbaa !9
  %3671 = shl i32 %3670, 1
  %3672 = load i32, ptr %67, align 4, !tbaa !9
  %3673 = sub nsw i32 %3672, 1
  %3674 = load i32, ptr %86, align 4, !tbaa !9
  %3675 = mul nsw i32 %3673, %3674
  %3676 = add nsw i32 %3671, %3675
  %3677 = load i32, ptr %67, align 4, !tbaa !9
  %3678 = add nsw i32 %3676, %3677
  %3679 = sext i32 %3678 to i64
  %3680 = getelementptr inbounds float, ptr %3668, i64 %3679
  call void @sscal_(ptr noundef %46, ptr noundef %57, ptr noundef %3680, ptr noundef @c__1)
  br label %3681

3681:                                             ; preds = %3643
  %3682 = load i32, ptr %67, align 4, !tbaa !9
  %3683 = add nsw i32 %3682, 1
  store i32 %3683, ptr %67, align 4, !tbaa !9
  br label %3639, !llvm.loop !48

3684:                                             ; preds = %3639
  %3685 = load ptr, ptr %35, align 8, !tbaa !5
  %3686 = load ptr, ptr %27, align 8, !tbaa !5
  %3687 = load i32, ptr %3686, align 4, !tbaa !9
  %3688 = shl i32 %3687, 1
  %3689 = add nsw i32 %3688, 1
  %3690 = sext i32 %3689 to i64
  %3691 = getelementptr inbounds float, ptr %3685, i64 %3690
  %3692 = load ptr, ptr %35, align 8, !tbaa !5
  %3693 = load ptr, ptr %27, align 8, !tbaa !5
  %3694 = load i32, ptr %3693, align 4, !tbaa !9
  %3695 = shl i32 %3694, 1
  %3696 = load i32, ptr %86, align 4, !tbaa !9
  %3697 = load i32, ptr %86, align 4, !tbaa !9
  %3698 = mul nsw i32 %3696, %3697
  %3699 = add nsw i32 %3695, %3698
  %3700 = add nsw i32 %3699, 1
  %3701 = sext i32 %3700 to i64
  %3702 = getelementptr inbounds float, ptr %3692, i64 %3701
  %3703 = load ptr, ptr %37, align 8, !tbaa !5
  %3704 = load ptr, ptr %26, align 8, !tbaa !5
  %3705 = load i32, ptr %3704, align 4, !tbaa !9
  %3706 = load ptr, ptr %27, align 8, !tbaa !5
  %3707 = load i32, ptr %3706, align 4, !tbaa !9
  %3708 = shl i32 %3707, 1
  %3709 = add nsw i32 %3705, %3708
  %3710 = add nsw i32 %3709, 1
  %3711 = sext i32 %3710 to i64
  %3712 = getelementptr inbounds i32, ptr %3703, i64 %3711
  call void @spocon_(ptr noundef @.str.21, ptr noundef %86, ptr noundef %3691, ptr noundef %86, ptr noundef @c_b35, ptr noundef %66, ptr noundef %3702, ptr noundef %3712, ptr noundef %65)
  %3713 = load float, ptr %66, align 4, !tbaa !11
  %3714 = fpext float %3713 to double
  %3715 = call double @sqrt(double noundef %3714) #5
  %3716 = fdiv double 1.000000e+00, %3715
  %3717 = fptrunc double %3716 to float
  store float %3717, ptr %78, align 4, !tbaa !11
  %3718 = load i32, ptr %86, align 4, !tbaa !9
  %3719 = sitofp i32 %3718 to float
  %3720 = fpext float %3719 to double
  %3721 = call double @sqrt(double noundef %3720) #5
  %3722 = fptrunc double %3721 to float
  store float %3722, ptr %100, align 4, !tbaa !11
  %3723 = load float, ptr %78, align 4, !tbaa !11
  %3724 = load float, ptr %100, align 4, !tbaa !11
  %3725 = fcmp olt float %3723, %3724
  br i1 %3725, label %3726, label %3948

3726:                                             ; preds = %3684
  %3727 = load ptr, ptr %36, align 8, !tbaa !5
  %3728 = load i32, ptr %3727, align 4, !tbaa !9
  %3729 = load ptr, ptr %27, align 8, !tbaa !5
  %3730 = load i32, ptr %3729, align 4, !tbaa !9
  %3731 = shl i32 %3730, 1
  %3732 = sub nsw i32 %3728, %3731
  store i32 %3732, ptr %45, align 4, !tbaa !9
  %3733 = load ptr, ptr %27, align 8, !tbaa !5
  %3734 = load ptr, ptr %33, align 8, !tbaa !5
  %3735 = load i32, ptr %44, align 4, !tbaa !9
  %3736 = sext i32 %3735 to i64
  %3737 = getelementptr inbounds float, ptr %3734, i64 %3736
  %3738 = load ptr, ptr %34, align 8, !tbaa !5
  %3739 = load ptr, ptr %35, align 8, !tbaa !5
  %3740 = load ptr, ptr %27, align 8, !tbaa !5
  %3741 = load i32, ptr %3740, align 4, !tbaa !9
  %3742 = add nsw i32 %3741, 1
  %3743 = sext i32 %3742 to i64
  %3744 = getelementptr inbounds float, ptr %3739, i64 %3743
  %3745 = load ptr, ptr %35, align 8, !tbaa !5
  %3746 = load ptr, ptr %27, align 8, !tbaa !5
  %3747 = load i32, ptr %3746, align 4, !tbaa !9
  %3748 = shl i32 %3747, 1
  %3749 = add nsw i32 %3748, 1
  %3750 = sext i32 %3749 to i64
  %3751 = getelementptr inbounds float, ptr %3745, i64 %3750
  call void @sgeqrf_(ptr noundef %3733, ptr noundef %86, ptr noundef %3737, ptr noundef %3738, ptr noundef %3744, ptr noundef %3751, ptr noundef %45, ptr noundef %65)
  %3752 = load i32, ptr %85, align 4, !tbaa !9
  %3753 = icmp ne i32 %3752, 0
  br i1 %3753, label %3754, label %3893

3754:                                             ; preds = %3726
  %3755 = load float, ptr %70, align 4, !tbaa !11
  %3756 = fpext float %3755 to double
  %3757 = call double @sqrt(double noundef %3756) #5
  %3758 = load float, ptr %74, align 4, !tbaa !11
  %3759 = fpext float %3758 to double
  %3760 = fdiv double %3757, %3759
  %3761 = fptrunc double %3760 to float
  store float %3761, ptr %101, align 4, !tbaa !11
  %3762 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3762, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %3763

3763:                                             ; preds = %3889, %3754
  %3764 = load i32, ptr %67, align 4, !tbaa !9
  %3765 = load i32, ptr %45, align 4, !tbaa !9
  %3766 = icmp sle i32 %3764, %3765
  br i1 %3766, label %3767, label %3892

3767:                                             ; preds = %3763
  %3768 = load i32, ptr %67, align 4, !tbaa !9
  %3769 = sub nsw i32 %3768, 1
  store i32 %3769, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %3770

3770:                                             ; preds = %3885, %3767
  %3771 = load i32, ptr %68, align 4, !tbaa !9
  %3772 = load i32, ptr %46, align 4, !tbaa !9
  %3773 = icmp sle i32 %3771, %3772
  br i1 %3773, label %3774, label %3888

3774:                                             ; preds = %3770
  %3775 = load ptr, ptr %33, align 8, !tbaa !5
  %3776 = load i32, ptr %67, align 4, !tbaa !9
  %3777 = load i32, ptr %67, align 4, !tbaa !9
  %3778 = load i32, ptr %43, align 4, !tbaa !9
  %3779 = mul nsw i32 %3777, %3778
  %3780 = add nsw i32 %3776, %3779
  %3781 = sext i32 %3780 to i64
  %3782 = getelementptr inbounds float, ptr %3775, i64 %3781
  %3783 = load float, ptr %3782, align 4, !tbaa !11
  store float %3783, ptr %57, align 4, !tbaa !11
  %3784 = load float, ptr %57, align 4, !tbaa !11
  %3785 = fcmp oge float %3784, 0.000000e+00
  br i1 %3785, label %3786, label %3788

3786:                                             ; preds = %3774
  %3787 = load float, ptr %57, align 4, !tbaa !11
  br label %3791

3788:                                             ; preds = %3774
  %3789 = load float, ptr %57, align 4, !tbaa !11
  %3790 = fneg float %3789
  br label %3791

3791:                                             ; preds = %3788, %3786
  %3792 = phi float [ %3787, %3786 ], [ %3790, %3788 ]
  store float %3792, ptr %59, align 4, !tbaa !11
  %3793 = load ptr, ptr %33, align 8, !tbaa !5
  %3794 = load i32, ptr %68, align 4, !tbaa !9
  %3795 = load i32, ptr %68, align 4, !tbaa !9
  %3796 = load i32, ptr %43, align 4, !tbaa !9
  %3797 = mul nsw i32 %3795, %3796
  %3798 = add nsw i32 %3794, %3797
  %3799 = sext i32 %3798 to i64
  %3800 = getelementptr inbounds float, ptr %3793, i64 %3799
  %3801 = load float, ptr %3800, align 4, !tbaa !11
  store float %3801, ptr %58, align 4, !tbaa !11
  %3802 = load float, ptr %58, align 4, !tbaa !11
  %3803 = fcmp oge float %3802, 0.000000e+00
  br i1 %3803, label %3804, label %3806

3804:                                             ; preds = %3791
  %3805 = load float, ptr %58, align 4, !tbaa !11
  br label %3809

3806:                                             ; preds = %3791
  %3807 = load float, ptr %58, align 4, !tbaa !11
  %3808 = fneg float %3807
  br label %3809

3809:                                             ; preds = %3806, %3804
  %3810 = phi float [ %3805, %3804 ], [ %3808, %3806 ]
  store float %3810, ptr %60, align 4, !tbaa !11
  %3811 = load float, ptr %101, align 4, !tbaa !11
  %3812 = load float, ptr %59, align 4, !tbaa !11
  %3813 = load float, ptr %60, align 4, !tbaa !11
  %3814 = fcmp ole float %3812, %3813
  br i1 %3814, label %3815, label %3817

3815:                                             ; preds = %3809
  %3816 = load float, ptr %59, align 4, !tbaa !11
  br label %3819

3817:                                             ; preds = %3809
  %3818 = load float, ptr %60, align 4, !tbaa !11
  br label %3819

3819:                                             ; preds = %3817, %3815
  %3820 = phi float [ %3816, %3815 ], [ %3818, %3817 ]
  %3821 = fmul float %3811, %3820
  store float %3821, ptr %66, align 4, !tbaa !11
  %3822 = load ptr, ptr %33, align 8, !tbaa !5
  %3823 = load i32, ptr %68, align 4, !tbaa !9
  %3824 = load i32, ptr %67, align 4, !tbaa !9
  %3825 = load i32, ptr %43, align 4, !tbaa !9
  %3826 = mul nsw i32 %3824, %3825
  %3827 = add nsw i32 %3823, %3826
  %3828 = sext i32 %3827 to i64
  %3829 = getelementptr inbounds float, ptr %3822, i64 %3828
  %3830 = load float, ptr %3829, align 4, !tbaa !11
  store float %3830, ptr %57, align 4, !tbaa !11
  %3831 = load float, ptr %57, align 4, !tbaa !11
  %3832 = fcmp oge float %3831, 0.000000e+00
  br i1 %3832, label %3833, label %3835

3833:                                             ; preds = %3819
  %3834 = load float, ptr %57, align 4, !tbaa !11
  br label %3838

3835:                                             ; preds = %3819
  %3836 = load float, ptr %57, align 4, !tbaa !11
  %3837 = fneg float %3836
  br label %3838

3838:                                             ; preds = %3835, %3833
  %3839 = phi float [ %3834, %3833 ], [ %3837, %3835 ]
  %3840 = load float, ptr %66, align 4, !tbaa !11
  %3841 = fcmp ole float %3839, %3840
  br i1 %3841, label %3842, label %3884

3842:                                             ; preds = %3838
  %3843 = load ptr, ptr %33, align 8, !tbaa !5
  %3844 = load i32, ptr %68, align 4, !tbaa !9
  %3845 = load i32, ptr %67, align 4, !tbaa !9
  %3846 = load i32, ptr %43, align 4, !tbaa !9
  %3847 = mul nsw i32 %3845, %3846
  %3848 = add nsw i32 %3844, %3847
  %3849 = sext i32 %3848 to i64
  %3850 = getelementptr inbounds float, ptr %3843, i64 %3849
  %3851 = load float, ptr %3850, align 4, !tbaa !11
  %3852 = fcmp oge float %3851, 0.000000e+00
  br i1 %3852, label %3853, label %3863

3853:                                             ; preds = %3842
  %3854 = load float, ptr %66, align 4, !tbaa !11
  %3855 = fcmp oge float %3854, 0.000000e+00
  br i1 %3855, label %3856, label %3858

3856:                                             ; preds = %3853
  %3857 = load float, ptr %66, align 4, !tbaa !11
  br label %3861

3858:                                             ; preds = %3853
  %3859 = load float, ptr %66, align 4, !tbaa !11
  %3860 = fneg float %3859
  br label %3861

3861:                                             ; preds = %3858, %3856
  %3862 = phi float [ %3857, %3856 ], [ %3860, %3858 ]
  br label %3874

3863:                                             ; preds = %3842
  %3864 = load float, ptr %66, align 4, !tbaa !11
  %3865 = fcmp oge float %3864, 0.000000e+00
  br i1 %3865, label %3866, label %3868

3866:                                             ; preds = %3863
  %3867 = load float, ptr %66, align 4, !tbaa !11
  br label %3871

3868:                                             ; preds = %3863
  %3869 = load float, ptr %66, align 4, !tbaa !11
  %3870 = fneg float %3869
  br label %3871

3871:                                             ; preds = %3868, %3866
  %3872 = phi float [ %3867, %3866 ], [ %3870, %3868 ]
  %3873 = fneg float %3872
  br label %3874

3874:                                             ; preds = %3871, %3861
  %3875 = phi float [ %3862, %3861 ], [ %3873, %3871 ]
  %3876 = load ptr, ptr %33, align 8, !tbaa !5
  %3877 = load i32, ptr %68, align 4, !tbaa !9
  %3878 = load i32, ptr %67, align 4, !tbaa !9
  %3879 = load i32, ptr %43, align 4, !tbaa !9
  %3880 = mul nsw i32 %3878, %3879
  %3881 = add nsw i32 %3877, %3880
  %3882 = sext i32 %3881 to i64
  %3883 = getelementptr inbounds float, ptr %3876, i64 %3882
  store float %3875, ptr %3883, align 4, !tbaa !11
  br label %3884

3884:                                             ; preds = %3874, %3838
  br label %3885

3885:                                             ; preds = %3884
  %3886 = load i32, ptr %68, align 4, !tbaa !9
  %3887 = add nsw i32 %3886, 1
  store i32 %3887, ptr %68, align 4, !tbaa !9
  br label %3770, !llvm.loop !49

3888:                                             ; preds = %3770
  br label %3889

3889:                                             ; preds = %3888
  %3890 = load i32, ptr %67, align 4, !tbaa !9
  %3891 = add nsw i32 %3890, 1
  store i32 %3891, ptr %67, align 4, !tbaa !9
  br label %3763, !llvm.loop !50

3892:                                             ; preds = %3763
  br label %3893

3893:                                             ; preds = %3892, %3726
  %3894 = load i32, ptr %86, align 4, !tbaa !9
  %3895 = load ptr, ptr %27, align 8, !tbaa !5
  %3896 = load i32, ptr %3895, align 4, !tbaa !9
  %3897 = icmp ne i32 %3894, %3896
  br i1 %3897, label %3898, label %3913

3898:                                             ; preds = %3893
  %3899 = load ptr, ptr %27, align 8, !tbaa !5
  %3900 = load ptr, ptr %33, align 8, !tbaa !5
  %3901 = load i32, ptr %44, align 4, !tbaa !9
  %3902 = sext i32 %3901 to i64
  %3903 = getelementptr inbounds float, ptr %3900, i64 %3902
  %3904 = load ptr, ptr %34, align 8, !tbaa !5
  %3905 = load ptr, ptr %35, align 8, !tbaa !5
  %3906 = load ptr, ptr %27, align 8, !tbaa !5
  %3907 = load i32, ptr %3906, align 4, !tbaa !9
  %3908 = shl i32 %3907, 1
  %3909 = add nsw i32 %3908, 1
  %3910 = sext i32 %3909 to i64
  %3911 = getelementptr inbounds float, ptr %3905, i64 %3910
  %3912 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.6, ptr noundef %3899, ptr noundef %86, ptr noundef %3903, ptr noundef %3904, ptr noundef %3911, ptr noundef %3912)
  br label %3913

3913:                                             ; preds = %3898, %3893
  %3914 = load i32, ptr %86, align 4, !tbaa !9
  %3915 = sub nsw i32 %3914, 1
  store i32 %3915, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3916

3916:                                             ; preds = %3943, %3913
  %3917 = load i32, ptr %67, align 4, !tbaa !9
  %3918 = load i32, ptr %45, align 4, !tbaa !9
  %3919 = icmp sle i32 %3917, %3918
  br i1 %3919, label %3920, label %3946

3920:                                             ; preds = %3916
  %3921 = load i32, ptr %86, align 4, !tbaa !9
  %3922 = load i32, ptr %67, align 4, !tbaa !9
  %3923 = sub nsw i32 %3921, %3922
  store i32 %3923, ptr %46, align 4, !tbaa !9
  %3924 = load ptr, ptr %33, align 8, !tbaa !5
  %3925 = load i32, ptr %67, align 4, !tbaa !9
  %3926 = load i32, ptr %67, align 4, !tbaa !9
  %3927 = add nsw i32 %3926, 1
  %3928 = load i32, ptr %43, align 4, !tbaa !9
  %3929 = mul nsw i32 %3927, %3928
  %3930 = add nsw i32 %3925, %3929
  %3931 = sext i32 %3930 to i64
  %3932 = getelementptr inbounds float, ptr %3924, i64 %3931
  %3933 = load ptr, ptr %34, align 8, !tbaa !5
  %3934 = load ptr, ptr %33, align 8, !tbaa !5
  %3935 = load i32, ptr %67, align 4, !tbaa !9
  %3936 = add nsw i32 %3935, 1
  %3937 = load i32, ptr %67, align 4, !tbaa !9
  %3938 = load i32, ptr %43, align 4, !tbaa !9
  %3939 = mul nsw i32 %3937, %3938
  %3940 = add nsw i32 %3936, %3939
  %3941 = sext i32 %3940 to i64
  %3942 = getelementptr inbounds float, ptr %3934, i64 %3941
  call void @scopy_(ptr noundef %46, ptr noundef %3932, ptr noundef %3933, ptr noundef %3942, ptr noundef @c__1)
  br label %3943

3943:                                             ; preds = %3920
  %3944 = load i32, ptr %67, align 4, !tbaa !9
  %3945 = add nsw i32 %3944, 1
  store i32 %3945, ptr %67, align 4, !tbaa !9
  br label %3916, !llvm.loop !51

3946:                                             ; preds = %3916
  %3947 = load float, ptr %78, align 4, !tbaa !11
  store float %3947, ptr %79, align 4, !tbaa !11
  br label %4450

3948:                                             ; preds = %3684
  %3949 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %3949, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %3950

3950:                                             ; preds = %3962, %3948
  %3951 = load i32, ptr %67, align 4, !tbaa !9
  %3952 = load i32, ptr %45, align 4, !tbaa !9
  %3953 = icmp sle i32 %3951, %3952
  br i1 %3953, label %3954, label %3965

3954:                                             ; preds = %3950
  %3955 = load ptr, ptr %37, align 8, !tbaa !5
  %3956 = load ptr, ptr %27, align 8, !tbaa !5
  %3957 = load i32, ptr %3956, align 4, !tbaa !9
  %3958 = load i32, ptr %67, align 4, !tbaa !9
  %3959 = add nsw i32 %3957, %3958
  %3960 = sext i32 %3959 to i64
  %3961 = getelementptr inbounds i32, ptr %3955, i64 %3960
  store i32 0, ptr %3961, align 4, !tbaa !9
  br label %3962

3962:                                             ; preds = %3954
  %3963 = load i32, ptr %67, align 4, !tbaa !9
  %3964 = add nsw i32 %3963, 1
  store i32 %3964, ptr %67, align 4, !tbaa !9
  br label %3950, !llvm.loop !52

3965:                                             ; preds = %3950
  %3966 = load ptr, ptr %36, align 8, !tbaa !5
  %3967 = load i32, ptr %3966, align 4, !tbaa !9
  %3968 = load ptr, ptr %27, align 8, !tbaa !5
  %3969 = load i32, ptr %3968, align 4, !tbaa !9
  %3970 = shl i32 %3969, 1
  %3971 = sub nsw i32 %3967, %3970
  store i32 %3971, ptr %45, align 4, !tbaa !9
  %3972 = load ptr, ptr %27, align 8, !tbaa !5
  %3973 = load ptr, ptr %33, align 8, !tbaa !5
  %3974 = load i32, ptr %44, align 4, !tbaa !9
  %3975 = sext i32 %3974 to i64
  %3976 = getelementptr inbounds float, ptr %3973, i64 %3975
  %3977 = load ptr, ptr %34, align 8, !tbaa !5
  %3978 = load ptr, ptr %37, align 8, !tbaa !5
  %3979 = load ptr, ptr %27, align 8, !tbaa !5
  %3980 = load i32, ptr %3979, align 4, !tbaa !9
  %3981 = add nsw i32 %3980, 1
  %3982 = sext i32 %3981 to i64
  %3983 = getelementptr inbounds i32, ptr %3978, i64 %3982
  %3984 = load ptr, ptr %35, align 8, !tbaa !5
  %3985 = load ptr, ptr %27, align 8, !tbaa !5
  %3986 = load i32, ptr %3985, align 4, !tbaa !9
  %3987 = add nsw i32 %3986, 1
  %3988 = sext i32 %3987 to i64
  %3989 = getelementptr inbounds float, ptr %3984, i64 %3988
  %3990 = load ptr, ptr %35, align 8, !tbaa !5
  %3991 = load ptr, ptr %27, align 8, !tbaa !5
  %3992 = load i32, ptr %3991, align 4, !tbaa !9
  %3993 = shl i32 %3992, 1
  %3994 = add nsw i32 %3993, 1
  %3995 = sext i32 %3994 to i64
  %3996 = getelementptr inbounds float, ptr %3990, i64 %3995
  call void @sgeqp3_(ptr noundef %3972, ptr noundef %86, ptr noundef %3976, ptr noundef %3977, ptr noundef %3983, ptr noundef %3989, ptr noundef %3996, ptr noundef %45, ptr noundef %65)
  %3997 = load i32, ptr %85, align 4, !tbaa !9
  %3998 = icmp ne i32 %3997, 0
  br i1 %3998, label %3999, label %4135

3999:                                             ; preds = %3965
  %4000 = load float, ptr %70, align 4, !tbaa !11
  %4001 = fpext float %4000 to double
  %4002 = call double @sqrt(double noundef %4001) #5
  %4003 = fptrunc double %4002 to float
  store float %4003, ptr %101, align 4, !tbaa !11
  %4004 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4004, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %4005

4005:                                             ; preds = %4131, %3999
  %4006 = load i32, ptr %67, align 4, !tbaa !9
  %4007 = load i32, ptr %45, align 4, !tbaa !9
  %4008 = icmp sle i32 %4006, %4007
  br i1 %4008, label %4009, label %4134

4009:                                             ; preds = %4005
  %4010 = load i32, ptr %67, align 4, !tbaa !9
  %4011 = sub nsw i32 %4010, 1
  store i32 %4011, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %4012

4012:                                             ; preds = %4127, %4009
  %4013 = load i32, ptr %68, align 4, !tbaa !9
  %4014 = load i32, ptr %46, align 4, !tbaa !9
  %4015 = icmp sle i32 %4013, %4014
  br i1 %4015, label %4016, label %4130

4016:                                             ; preds = %4012
  %4017 = load ptr, ptr %33, align 8, !tbaa !5
  %4018 = load i32, ptr %67, align 4, !tbaa !9
  %4019 = load i32, ptr %67, align 4, !tbaa !9
  %4020 = load i32, ptr %43, align 4, !tbaa !9
  %4021 = mul nsw i32 %4019, %4020
  %4022 = add nsw i32 %4018, %4021
  %4023 = sext i32 %4022 to i64
  %4024 = getelementptr inbounds float, ptr %4017, i64 %4023
  %4025 = load float, ptr %4024, align 4, !tbaa !11
  store float %4025, ptr %57, align 4, !tbaa !11
  %4026 = load float, ptr %57, align 4, !tbaa !11
  %4027 = fcmp oge float %4026, 0.000000e+00
  br i1 %4027, label %4028, label %4030

4028:                                             ; preds = %4016
  %4029 = load float, ptr %57, align 4, !tbaa !11
  br label %4033

4030:                                             ; preds = %4016
  %4031 = load float, ptr %57, align 4, !tbaa !11
  %4032 = fneg float %4031
  br label %4033

4033:                                             ; preds = %4030, %4028
  %4034 = phi float [ %4029, %4028 ], [ %4032, %4030 ]
  store float %4034, ptr %59, align 4, !tbaa !11
  %4035 = load ptr, ptr %33, align 8, !tbaa !5
  %4036 = load i32, ptr %68, align 4, !tbaa !9
  %4037 = load i32, ptr %68, align 4, !tbaa !9
  %4038 = load i32, ptr %43, align 4, !tbaa !9
  %4039 = mul nsw i32 %4037, %4038
  %4040 = add nsw i32 %4036, %4039
  %4041 = sext i32 %4040 to i64
  %4042 = getelementptr inbounds float, ptr %4035, i64 %4041
  %4043 = load float, ptr %4042, align 4, !tbaa !11
  store float %4043, ptr %58, align 4, !tbaa !11
  %4044 = load float, ptr %58, align 4, !tbaa !11
  %4045 = fcmp oge float %4044, 0.000000e+00
  br i1 %4045, label %4046, label %4048

4046:                                             ; preds = %4033
  %4047 = load float, ptr %58, align 4, !tbaa !11
  br label %4051

4048:                                             ; preds = %4033
  %4049 = load float, ptr %58, align 4, !tbaa !11
  %4050 = fneg float %4049
  br label %4051

4051:                                             ; preds = %4048, %4046
  %4052 = phi float [ %4047, %4046 ], [ %4050, %4048 ]
  store float %4052, ptr %60, align 4, !tbaa !11
  %4053 = load float, ptr %101, align 4, !tbaa !11
  %4054 = load float, ptr %59, align 4, !tbaa !11
  %4055 = load float, ptr %60, align 4, !tbaa !11
  %4056 = fcmp ole float %4054, %4055
  br i1 %4056, label %4057, label %4059

4057:                                             ; preds = %4051
  %4058 = load float, ptr %59, align 4, !tbaa !11
  br label %4061

4059:                                             ; preds = %4051
  %4060 = load float, ptr %60, align 4, !tbaa !11
  br label %4061

4061:                                             ; preds = %4059, %4057
  %4062 = phi float [ %4058, %4057 ], [ %4060, %4059 ]
  %4063 = fmul float %4053, %4062
  store float %4063, ptr %66, align 4, !tbaa !11
  %4064 = load ptr, ptr %33, align 8, !tbaa !5
  %4065 = load i32, ptr %68, align 4, !tbaa !9
  %4066 = load i32, ptr %67, align 4, !tbaa !9
  %4067 = load i32, ptr %43, align 4, !tbaa !9
  %4068 = mul nsw i32 %4066, %4067
  %4069 = add nsw i32 %4065, %4068
  %4070 = sext i32 %4069 to i64
  %4071 = getelementptr inbounds float, ptr %4064, i64 %4070
  %4072 = load float, ptr %4071, align 4, !tbaa !11
  store float %4072, ptr %57, align 4, !tbaa !11
  %4073 = load float, ptr %57, align 4, !tbaa !11
  %4074 = fcmp oge float %4073, 0.000000e+00
  br i1 %4074, label %4075, label %4077

4075:                                             ; preds = %4061
  %4076 = load float, ptr %57, align 4, !tbaa !11
  br label %4080

4077:                                             ; preds = %4061
  %4078 = load float, ptr %57, align 4, !tbaa !11
  %4079 = fneg float %4078
  br label %4080

4080:                                             ; preds = %4077, %4075
  %4081 = phi float [ %4076, %4075 ], [ %4079, %4077 ]
  %4082 = load float, ptr %66, align 4, !tbaa !11
  %4083 = fcmp ole float %4081, %4082
  br i1 %4083, label %4084, label %4126

4084:                                             ; preds = %4080
  %4085 = load ptr, ptr %33, align 8, !tbaa !5
  %4086 = load i32, ptr %68, align 4, !tbaa !9
  %4087 = load i32, ptr %67, align 4, !tbaa !9
  %4088 = load i32, ptr %43, align 4, !tbaa !9
  %4089 = mul nsw i32 %4087, %4088
  %4090 = add nsw i32 %4086, %4089
  %4091 = sext i32 %4090 to i64
  %4092 = getelementptr inbounds float, ptr %4085, i64 %4091
  %4093 = load float, ptr %4092, align 4, !tbaa !11
  %4094 = fcmp oge float %4093, 0.000000e+00
  br i1 %4094, label %4095, label %4105

4095:                                             ; preds = %4084
  %4096 = load float, ptr %66, align 4, !tbaa !11
  %4097 = fcmp oge float %4096, 0.000000e+00
  br i1 %4097, label %4098, label %4100

4098:                                             ; preds = %4095
  %4099 = load float, ptr %66, align 4, !tbaa !11
  br label %4103

4100:                                             ; preds = %4095
  %4101 = load float, ptr %66, align 4, !tbaa !11
  %4102 = fneg float %4101
  br label %4103

4103:                                             ; preds = %4100, %4098
  %4104 = phi float [ %4099, %4098 ], [ %4102, %4100 ]
  br label %4116

4105:                                             ; preds = %4084
  %4106 = load float, ptr %66, align 4, !tbaa !11
  %4107 = fcmp oge float %4106, 0.000000e+00
  br i1 %4107, label %4108, label %4110

4108:                                             ; preds = %4105
  %4109 = load float, ptr %66, align 4, !tbaa !11
  br label %4113

4110:                                             ; preds = %4105
  %4111 = load float, ptr %66, align 4, !tbaa !11
  %4112 = fneg float %4111
  br label %4113

4113:                                             ; preds = %4110, %4108
  %4114 = phi float [ %4109, %4108 ], [ %4112, %4110 ]
  %4115 = fneg float %4114
  br label %4116

4116:                                             ; preds = %4113, %4103
  %4117 = phi float [ %4104, %4103 ], [ %4115, %4113 ]
  %4118 = load ptr, ptr %33, align 8, !tbaa !5
  %4119 = load i32, ptr %68, align 4, !tbaa !9
  %4120 = load i32, ptr %67, align 4, !tbaa !9
  %4121 = load i32, ptr %43, align 4, !tbaa !9
  %4122 = mul nsw i32 %4120, %4121
  %4123 = add nsw i32 %4119, %4122
  %4124 = sext i32 %4123 to i64
  %4125 = getelementptr inbounds float, ptr %4118, i64 %4124
  store float %4117, ptr %4125, align 4, !tbaa !11
  br label %4126

4126:                                             ; preds = %4116, %4080
  br label %4127

4127:                                             ; preds = %4126
  %4128 = load i32, ptr %68, align 4, !tbaa !9
  %4129 = add nsw i32 %4128, 1
  store i32 %4129, ptr %68, align 4, !tbaa !9
  br label %4012, !llvm.loop !53

4130:                                             ; preds = %4012
  br label %4131

4131:                                             ; preds = %4130
  %4132 = load i32, ptr %67, align 4, !tbaa !9
  %4133 = add nsw i32 %4132, 1
  store i32 %4133, ptr %67, align 4, !tbaa !9
  br label %4005, !llvm.loop !54

4134:                                             ; preds = %4005
  br label %4135

4135:                                             ; preds = %4134, %3965
  %4136 = load ptr, ptr %27, align 8, !tbaa !5
  %4137 = load ptr, ptr %33, align 8, !tbaa !5
  %4138 = load i32, ptr %44, align 4, !tbaa !9
  %4139 = sext i32 %4138 to i64
  %4140 = getelementptr inbounds float, ptr %4137, i64 %4139
  %4141 = load ptr, ptr %34, align 8, !tbaa !5
  %4142 = load ptr, ptr %35, align 8, !tbaa !5
  %4143 = load ptr, ptr %27, align 8, !tbaa !5
  %4144 = load i32, ptr %4143, align 4, !tbaa !9
  %4145 = shl i32 %4144, 1
  %4146 = add nsw i32 %4145, 1
  %4147 = sext i32 %4146 to i64
  %4148 = getelementptr inbounds float, ptr %4142, i64 %4147
  %4149 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.6, ptr noundef %4136, ptr noundef %86, ptr noundef %4140, ptr noundef %4141, ptr noundef %4148, ptr noundef %4149)
  %4150 = load i32, ptr %85, align 4, !tbaa !9
  %4151 = icmp ne i32 %4150, 0
  br i1 %4151, label %4152, label %4267

4152:                                             ; preds = %4135
  %4153 = load float, ptr %70, align 4, !tbaa !11
  %4154 = fpext float %4153 to double
  %4155 = call double @sqrt(double noundef %4154) #5
  %4156 = fptrunc double %4155 to float
  store float %4156, ptr %101, align 4, !tbaa !11
  %4157 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4157, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %4158

4158:                                             ; preds = %4263, %4152
  %4159 = load i32, ptr %67, align 4, !tbaa !9
  %4160 = load i32, ptr %45, align 4, !tbaa !9
  %4161 = icmp sle i32 %4159, %4160
  br i1 %4161, label %4162, label %4266

4162:                                             ; preds = %4158
  %4163 = load i32, ptr %67, align 4, !tbaa !9
  %4164 = sub nsw i32 %4163, 1
  store i32 %4164, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %4165

4165:                                             ; preds = %4259, %4162
  %4166 = load i32, ptr %68, align 4, !tbaa !9
  %4167 = load i32, ptr %46, align 4, !tbaa !9
  %4168 = icmp sle i32 %4166, %4167
  br i1 %4168, label %4169, label %4262

4169:                                             ; preds = %4165
  %4170 = load ptr, ptr %33, align 8, !tbaa !5
  %4171 = load i32, ptr %67, align 4, !tbaa !9
  %4172 = load i32, ptr %67, align 4, !tbaa !9
  %4173 = load i32, ptr %43, align 4, !tbaa !9
  %4174 = mul nsw i32 %4172, %4173
  %4175 = add nsw i32 %4171, %4174
  %4176 = sext i32 %4175 to i64
  %4177 = getelementptr inbounds float, ptr %4170, i64 %4176
  %4178 = load float, ptr %4177, align 4, !tbaa !11
  store float %4178, ptr %57, align 4, !tbaa !11
  %4179 = load float, ptr %57, align 4, !tbaa !11
  %4180 = fcmp oge float %4179, 0.000000e+00
  br i1 %4180, label %4181, label %4183

4181:                                             ; preds = %4169
  %4182 = load float, ptr %57, align 4, !tbaa !11
  br label %4186

4183:                                             ; preds = %4169
  %4184 = load float, ptr %57, align 4, !tbaa !11
  %4185 = fneg float %4184
  br label %4186

4186:                                             ; preds = %4183, %4181
  %4187 = phi float [ %4182, %4181 ], [ %4185, %4183 ]
  store float %4187, ptr %59, align 4, !tbaa !11
  %4188 = load ptr, ptr %33, align 8, !tbaa !5
  %4189 = load i32, ptr %68, align 4, !tbaa !9
  %4190 = load i32, ptr %68, align 4, !tbaa !9
  %4191 = load i32, ptr %43, align 4, !tbaa !9
  %4192 = mul nsw i32 %4190, %4191
  %4193 = add nsw i32 %4189, %4192
  %4194 = sext i32 %4193 to i64
  %4195 = getelementptr inbounds float, ptr %4188, i64 %4194
  %4196 = load float, ptr %4195, align 4, !tbaa !11
  store float %4196, ptr %58, align 4, !tbaa !11
  %4197 = load float, ptr %58, align 4, !tbaa !11
  %4198 = fcmp oge float %4197, 0.000000e+00
  br i1 %4198, label %4199, label %4201

4199:                                             ; preds = %4186
  %4200 = load float, ptr %58, align 4, !tbaa !11
  br label %4204

4201:                                             ; preds = %4186
  %4202 = load float, ptr %58, align 4, !tbaa !11
  %4203 = fneg float %4202
  br label %4204

4204:                                             ; preds = %4201, %4199
  %4205 = phi float [ %4200, %4199 ], [ %4203, %4201 ]
  store float %4205, ptr %60, align 4, !tbaa !11
  %4206 = load float, ptr %101, align 4, !tbaa !11
  %4207 = load float, ptr %59, align 4, !tbaa !11
  %4208 = load float, ptr %60, align 4, !tbaa !11
  %4209 = fcmp ole float %4207, %4208
  br i1 %4209, label %4210, label %4212

4210:                                             ; preds = %4204
  %4211 = load float, ptr %59, align 4, !tbaa !11
  br label %4214

4212:                                             ; preds = %4204
  %4213 = load float, ptr %60, align 4, !tbaa !11
  br label %4214

4214:                                             ; preds = %4212, %4210
  %4215 = phi float [ %4211, %4210 ], [ %4213, %4212 ]
  %4216 = fmul float %4206, %4215
  store float %4216, ptr %66, align 4, !tbaa !11
  %4217 = load ptr, ptr %33, align 8, !tbaa !5
  %4218 = load i32, ptr %68, align 4, !tbaa !9
  %4219 = load i32, ptr %67, align 4, !tbaa !9
  %4220 = load i32, ptr %43, align 4, !tbaa !9
  %4221 = mul nsw i32 %4219, %4220
  %4222 = add nsw i32 %4218, %4221
  %4223 = sext i32 %4222 to i64
  %4224 = getelementptr inbounds float, ptr %4217, i64 %4223
  %4225 = load float, ptr %4224, align 4, !tbaa !11
  %4226 = fcmp oge float %4225, 0.000000e+00
  br i1 %4226, label %4227, label %4237

4227:                                             ; preds = %4214
  %4228 = load float, ptr %66, align 4, !tbaa !11
  %4229 = fcmp oge float %4228, 0.000000e+00
  br i1 %4229, label %4230, label %4232

4230:                                             ; preds = %4227
  %4231 = load float, ptr %66, align 4, !tbaa !11
  br label %4235

4232:                                             ; preds = %4227
  %4233 = load float, ptr %66, align 4, !tbaa !11
  %4234 = fneg float %4233
  br label %4235

4235:                                             ; preds = %4232, %4230
  %4236 = phi float [ %4231, %4230 ], [ %4234, %4232 ]
  br label %4248

4237:                                             ; preds = %4214
  %4238 = load float, ptr %66, align 4, !tbaa !11
  %4239 = fcmp oge float %4238, 0.000000e+00
  br i1 %4239, label %4240, label %4242

4240:                                             ; preds = %4237
  %4241 = load float, ptr %66, align 4, !tbaa !11
  br label %4245

4242:                                             ; preds = %4237
  %4243 = load float, ptr %66, align 4, !tbaa !11
  %4244 = fneg float %4243
  br label %4245

4245:                                             ; preds = %4242, %4240
  %4246 = phi float [ %4241, %4240 ], [ %4244, %4242 ]
  %4247 = fneg float %4246
  br label %4248

4248:                                             ; preds = %4245, %4235
  %4249 = phi float [ %4236, %4235 ], [ %4247, %4245 ]
  %4250 = fneg float %4249
  %4251 = load ptr, ptr %33, align 8, !tbaa !5
  %4252 = load i32, ptr %67, align 4, !tbaa !9
  %4253 = load i32, ptr %68, align 4, !tbaa !9
  %4254 = load i32, ptr %43, align 4, !tbaa !9
  %4255 = mul nsw i32 %4253, %4254
  %4256 = add nsw i32 %4252, %4255
  %4257 = sext i32 %4256 to i64
  %4258 = getelementptr inbounds float, ptr %4251, i64 %4257
  store float %4250, ptr %4258, align 4, !tbaa !11
  br label %4259

4259:                                             ; preds = %4248
  %4260 = load i32, ptr %68, align 4, !tbaa !9
  %4261 = add nsw i32 %4260, 1
  store i32 %4261, ptr %68, align 4, !tbaa !9
  br label %4165, !llvm.loop !55

4262:                                             ; preds = %4165
  br label %4263

4263:                                             ; preds = %4262
  %4264 = load i32, ptr %67, align 4, !tbaa !9
  %4265 = add nsw i32 %4264, 1
  store i32 %4265, ptr %67, align 4, !tbaa !9
  br label %4158, !llvm.loop !56

4266:                                             ; preds = %4158
  br label %4278

4267:                                             ; preds = %4135
  %4268 = load i32, ptr %86, align 4, !tbaa !9
  %4269 = sub nsw i32 %4268, 1
  store i32 %4269, ptr %45, align 4, !tbaa !9
  %4270 = load i32, ptr %86, align 4, !tbaa !9
  %4271 = sub nsw i32 %4270, 1
  store i32 %4271, ptr %46, align 4, !tbaa !9
  %4272 = load ptr, ptr %33, align 8, !tbaa !5
  %4273 = load i32, ptr %43, align 4, !tbaa !9
  %4274 = add nsw i32 %4273, 2
  %4275 = sext i32 %4274 to i64
  %4276 = getelementptr inbounds float, ptr %4272, i64 %4275
  %4277 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.17, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %4276, ptr noundef %4277)
  br label %4278

4278:                                             ; preds = %4267, %4266
  %4279 = load ptr, ptr %36, align 8, !tbaa !5
  %4280 = load i32, ptr %4279, align 4, !tbaa !9
  %4281 = load ptr, ptr %27, align 8, !tbaa !5
  %4282 = load i32, ptr %4281, align 4, !tbaa !9
  %4283 = shl i32 %4282, 1
  %4284 = sub nsw i32 %4280, %4283
  %4285 = load ptr, ptr %27, align 8, !tbaa !5
  %4286 = load i32, ptr %4285, align 4, !tbaa !9
  %4287 = load i32, ptr %86, align 4, !tbaa !9
  %4288 = mul nsw i32 %4286, %4287
  %4289 = sub nsw i32 %4284, %4288
  %4290 = load i32, ptr %86, align 4, !tbaa !9
  %4291 = sub nsw i32 %4289, %4290
  store i32 %4291, ptr %45, align 4, !tbaa !9
  %4292 = load ptr, ptr %33, align 8, !tbaa !5
  %4293 = load i32, ptr %44, align 4, !tbaa !9
  %4294 = sext i32 %4293 to i64
  %4295 = getelementptr inbounds float, ptr %4292, i64 %4294
  %4296 = load ptr, ptr %34, align 8, !tbaa !5
  %4297 = load ptr, ptr %35, align 8, !tbaa !5
  %4298 = load ptr, ptr %27, align 8, !tbaa !5
  %4299 = load i32, ptr %4298, align 4, !tbaa !9
  %4300 = shl i32 %4299, 1
  %4301 = load ptr, ptr %27, align 8, !tbaa !5
  %4302 = load i32, ptr %4301, align 4, !tbaa !9
  %4303 = load i32, ptr %86, align 4, !tbaa !9
  %4304 = mul nsw i32 %4302, %4303
  %4305 = add nsw i32 %4300, %4304
  %4306 = add nsw i32 %4305, 1
  %4307 = sext i32 %4306 to i64
  %4308 = getelementptr inbounds float, ptr %4297, i64 %4307
  %4309 = load ptr, ptr %35, align 8, !tbaa !5
  %4310 = load ptr, ptr %27, align 8, !tbaa !5
  %4311 = load i32, ptr %4310, align 4, !tbaa !9
  %4312 = shl i32 %4311, 1
  %4313 = load ptr, ptr %27, align 8, !tbaa !5
  %4314 = load i32, ptr %4313, align 4, !tbaa !9
  %4315 = load i32, ptr %86, align 4, !tbaa !9
  %4316 = mul nsw i32 %4314, %4315
  %4317 = add nsw i32 %4312, %4316
  %4318 = load i32, ptr %86, align 4, !tbaa !9
  %4319 = add nsw i32 %4317, %4318
  %4320 = add nsw i32 %4319, 1
  %4321 = sext i32 %4320 to i64
  %4322 = getelementptr inbounds float, ptr %4309, i64 %4321
  call void @sgelqf_(ptr noundef %86, ptr noundef %86, ptr noundef %4295, ptr noundef %4296, ptr noundef %4308, ptr noundef %4322, ptr noundef %45, ptr noundef %65)
  %4323 = load ptr, ptr %33, align 8, !tbaa !5
  %4324 = load i32, ptr %44, align 4, !tbaa !9
  %4325 = sext i32 %4324 to i64
  %4326 = getelementptr inbounds float, ptr %4323, i64 %4325
  %4327 = load ptr, ptr %34, align 8, !tbaa !5
  %4328 = load ptr, ptr %35, align 8, !tbaa !5
  %4329 = load ptr, ptr %27, align 8, !tbaa !5
  %4330 = load i32, ptr %4329, align 4, !tbaa !9
  %4331 = shl i32 %4330, 1
  %4332 = load ptr, ptr %27, align 8, !tbaa !5
  %4333 = load i32, ptr %4332, align 4, !tbaa !9
  %4334 = load i32, ptr %86, align 4, !tbaa !9
  %4335 = mul nsw i32 %4333, %4334
  %4336 = add nsw i32 %4331, %4335
  %4337 = load i32, ptr %86, align 4, !tbaa !9
  %4338 = add nsw i32 %4336, %4337
  %4339 = add nsw i32 %4338, 1
  %4340 = sext i32 %4339 to i64
  %4341 = getelementptr inbounds float, ptr %4328, i64 %4340
  call void @slacpy_(ptr noundef @.str.17, ptr noundef %86, ptr noundef %86, ptr noundef %4326, ptr noundef %4327, ptr noundef %4341, ptr noundef %86)
  %4342 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4342, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %4343

4343:                                             ; preds = %4381, %4278
  %4344 = load i32, ptr %67, align 4, !tbaa !9
  %4345 = load i32, ptr %45, align 4, !tbaa !9
  %4346 = icmp sle i32 %4344, %4345
  br i1 %4346, label %4347, label %4384

4347:                                             ; preds = %4343
  %4348 = load ptr, ptr %35, align 8, !tbaa !5
  %4349 = load ptr, ptr %27, align 8, !tbaa !5
  %4350 = load i32, ptr %4349, align 4, !tbaa !9
  %4351 = shl i32 %4350, 1
  %4352 = load ptr, ptr %27, align 8, !tbaa !5
  %4353 = load i32, ptr %4352, align 4, !tbaa !9
  %4354 = load i32, ptr %86, align 4, !tbaa !9
  %4355 = mul nsw i32 %4353, %4354
  %4356 = add nsw i32 %4351, %4355
  %4357 = load i32, ptr %86, align 4, !tbaa !9
  %4358 = add nsw i32 %4356, %4357
  %4359 = load i32, ptr %67, align 4, !tbaa !9
  %4360 = add nsw i32 %4358, %4359
  %4361 = sext i32 %4360 to i64
  %4362 = getelementptr inbounds float, ptr %4348, i64 %4361
  %4363 = call float @snrm2_(ptr noundef %67, ptr noundef %4362, ptr noundef %86)
  store float %4363, ptr %66, align 4, !tbaa !11
  %4364 = load float, ptr %66, align 4, !tbaa !11
  %4365 = fdiv float 1.000000e+00, %4364
  store float %4365, ptr %57, align 4, !tbaa !11
  %4366 = load ptr, ptr %35, align 8, !tbaa !5
  %4367 = load ptr, ptr %27, align 8, !tbaa !5
  %4368 = load i32, ptr %4367, align 4, !tbaa !9
  %4369 = shl i32 %4368, 1
  %4370 = load ptr, ptr %27, align 8, !tbaa !5
  %4371 = load i32, ptr %4370, align 4, !tbaa !9
  %4372 = load i32, ptr %86, align 4, !tbaa !9
  %4373 = mul nsw i32 %4371, %4372
  %4374 = add nsw i32 %4369, %4373
  %4375 = load i32, ptr %86, align 4, !tbaa !9
  %4376 = add nsw i32 %4374, %4375
  %4377 = load i32, ptr %67, align 4, !tbaa !9
  %4378 = add nsw i32 %4376, %4377
  %4379 = sext i32 %4378 to i64
  %4380 = getelementptr inbounds float, ptr %4366, i64 %4379
  call void @sscal_(ptr noundef %67, ptr noundef %57, ptr noundef %4380, ptr noundef %86)
  br label %4381

4381:                                             ; preds = %4347
  %4382 = load i32, ptr %67, align 4, !tbaa !9
  %4383 = add nsw i32 %4382, 1
  store i32 %4383, ptr %67, align 4, !tbaa !9
  br label %4343, !llvm.loop !57

4384:                                             ; preds = %4343
  %4385 = load ptr, ptr %35, align 8, !tbaa !5
  %4386 = load ptr, ptr %27, align 8, !tbaa !5
  %4387 = load i32, ptr %4386, align 4, !tbaa !9
  %4388 = shl i32 %4387, 1
  %4389 = load ptr, ptr %27, align 8, !tbaa !5
  %4390 = load i32, ptr %4389, align 4, !tbaa !9
  %4391 = load i32, ptr %86, align 4, !tbaa !9
  %4392 = mul nsw i32 %4390, %4391
  %4393 = add nsw i32 %4388, %4392
  %4394 = load i32, ptr %86, align 4, !tbaa !9
  %4395 = add nsw i32 %4393, %4394
  %4396 = add nsw i32 %4395, 1
  %4397 = sext i32 %4396 to i64
  %4398 = getelementptr inbounds float, ptr %4385, i64 %4397
  %4399 = load ptr, ptr %35, align 8, !tbaa !5
  %4400 = load ptr, ptr %27, align 8, !tbaa !5
  %4401 = load i32, ptr %4400, align 4, !tbaa !9
  %4402 = shl i32 %4401, 1
  %4403 = load ptr, ptr %27, align 8, !tbaa !5
  %4404 = load i32, ptr %4403, align 4, !tbaa !9
  %4405 = load i32, ptr %86, align 4, !tbaa !9
  %4406 = mul nsw i32 %4404, %4405
  %4407 = add nsw i32 %4402, %4406
  %4408 = load i32, ptr %86, align 4, !tbaa !9
  %4409 = add nsw i32 %4407, %4408
  %4410 = load i32, ptr %86, align 4, !tbaa !9
  %4411 = load i32, ptr %86, align 4, !tbaa !9
  %4412 = mul nsw i32 %4410, %4411
  %4413 = add nsw i32 %4409, %4412
  %4414 = add nsw i32 %4413, 1
  %4415 = sext i32 %4414 to i64
  %4416 = getelementptr inbounds float, ptr %4399, i64 %4415
  %4417 = load ptr, ptr %37, align 8, !tbaa !5
  %4418 = load ptr, ptr %26, align 8, !tbaa !5
  %4419 = load i32, ptr %4418, align 4, !tbaa !9
  %4420 = load ptr, ptr %27, align 8, !tbaa !5
  %4421 = load i32, ptr %4420, align 4, !tbaa !9
  %4422 = shl i32 %4421, 1
  %4423 = add nsw i32 %4419, %4422
  %4424 = add nsw i32 %4423, 1
  %4425 = sext i32 %4424 to i64
  %4426 = getelementptr inbounds i32, ptr %4417, i64 %4425
  call void @spocon_(ptr noundef @.str.17, ptr noundef %86, ptr noundef %4398, ptr noundef %86, ptr noundef @c_b35, ptr noundef %66, ptr noundef %4416, ptr noundef %4426, ptr noundef %65)
  %4427 = load float, ptr %66, align 4, !tbaa !11
  %4428 = fpext float %4427 to double
  %4429 = call double @sqrt(double noundef %4428) #5
  %4430 = fdiv double 1.000000e+00, %4429
  %4431 = fptrunc double %4430 to float
  store float %4431, ptr %79, align 4, !tbaa !11
  %4432 = load float, ptr %79, align 4, !tbaa !11
  %4433 = load float, ptr %100, align 4, !tbaa !11
  %4434 = fcmp oge float %4432, %4433
  br i1 %4434, label %4435, label %4449

4435:                                             ; preds = %4384
  %4436 = load ptr, ptr %33, align 8, !tbaa !5
  %4437 = load i32, ptr %44, align 4, !tbaa !9
  %4438 = sext i32 %4437 to i64
  %4439 = getelementptr inbounds float, ptr %4436, i64 %4438
  %4440 = load ptr, ptr %34, align 8, !tbaa !5
  %4441 = load ptr, ptr %35, align 8, !tbaa !5
  %4442 = load ptr, ptr %27, align 8, !tbaa !5
  %4443 = load i32, ptr %4442, align 4, !tbaa !9
  %4444 = shl i32 %4443, 1
  %4445 = add nsw i32 %4444, 1
  %4446 = sext i32 %4445 to i64
  %4447 = getelementptr inbounds float, ptr %4441, i64 %4446
  %4448 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %86, ptr noundef %86, ptr noundef %4439, ptr noundef %4440, ptr noundef %4447, ptr noundef %4448)
  br label %4449

4449:                                             ; preds = %4435, %4384
  br label %4450

4450:                                             ; preds = %4449, %3946
  %4451 = load i32, ptr %85, align 4, !tbaa !9
  %4452 = icmp ne i32 %4451, 0
  br i1 %4452, label %4453, label %4532

4453:                                             ; preds = %4450
  %4454 = load float, ptr %70, align 4, !tbaa !11
  %4455 = fpext float %4454 to double
  %4456 = call double @sqrt(double noundef %4455) #5
  %4457 = fptrunc double %4456 to float
  store float %4457, ptr %101, align 4, !tbaa !11
  %4458 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4458, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %68, align 4, !tbaa !9
  br label %4459

4459:                                             ; preds = %4528, %4453
  %4460 = load i32, ptr %68, align 4, !tbaa !9
  %4461 = load i32, ptr %45, align 4, !tbaa !9
  %4462 = icmp sle i32 %4460, %4461
  br i1 %4462, label %4463, label %4531

4463:                                             ; preds = %4459
  %4464 = load float, ptr %101, align 4, !tbaa !11
  %4465 = load ptr, ptr %33, align 8, !tbaa !5
  %4466 = load i32, ptr %68, align 4, !tbaa !9
  %4467 = load i32, ptr %68, align 4, !tbaa !9
  %4468 = load i32, ptr %43, align 4, !tbaa !9
  %4469 = mul nsw i32 %4467, %4468
  %4470 = add nsw i32 %4466, %4469
  %4471 = sext i32 %4470 to i64
  %4472 = getelementptr inbounds float, ptr %4465, i64 %4471
  %4473 = load float, ptr %4472, align 4, !tbaa !11
  %4474 = fmul float %4464, %4473
  store float %4474, ptr %66, align 4, !tbaa !11
  %4475 = load i32, ptr %68, align 4, !tbaa !9
  %4476 = sub nsw i32 %4475, 1
  store i32 %4476, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %4477

4477:                                             ; preds = %4524, %4463
  %4478 = load i32, ptr %67, align 4, !tbaa !9
  %4479 = load i32, ptr %46, align 4, !tbaa !9
  %4480 = icmp sle i32 %4478, %4479
  br i1 %4480, label %4481, label %4527

4481:                                             ; preds = %4477
  %4482 = load ptr, ptr %33, align 8, !tbaa !5
  %4483 = load i32, ptr %67, align 4, !tbaa !9
  %4484 = load i32, ptr %68, align 4, !tbaa !9
  %4485 = load i32, ptr %43, align 4, !tbaa !9
  %4486 = mul nsw i32 %4484, %4485
  %4487 = add nsw i32 %4483, %4486
  %4488 = sext i32 %4487 to i64
  %4489 = getelementptr inbounds float, ptr %4482, i64 %4488
  %4490 = load float, ptr %4489, align 4, !tbaa !11
  %4491 = fcmp oge float %4490, 0.000000e+00
  br i1 %4491, label %4492, label %4502

4492:                                             ; preds = %4481
  %4493 = load float, ptr %66, align 4, !tbaa !11
  %4494 = fcmp oge float %4493, 0.000000e+00
  br i1 %4494, label %4495, label %4497

4495:                                             ; preds = %4492
  %4496 = load float, ptr %66, align 4, !tbaa !11
  br label %4500

4497:                                             ; preds = %4492
  %4498 = load float, ptr %66, align 4, !tbaa !11
  %4499 = fneg float %4498
  br label %4500

4500:                                             ; preds = %4497, %4495
  %4501 = phi float [ %4496, %4495 ], [ %4499, %4497 ]
  br label %4513

4502:                                             ; preds = %4481
  %4503 = load float, ptr %66, align 4, !tbaa !11
  %4504 = fcmp oge float %4503, 0.000000e+00
  br i1 %4504, label %4505, label %4507

4505:                                             ; preds = %4502
  %4506 = load float, ptr %66, align 4, !tbaa !11
  br label %4510

4507:                                             ; preds = %4502
  %4508 = load float, ptr %66, align 4, !tbaa !11
  %4509 = fneg float %4508
  br label %4510

4510:                                             ; preds = %4507, %4505
  %4511 = phi float [ %4506, %4505 ], [ %4509, %4507 ]
  %4512 = fneg float %4511
  br label %4513

4513:                                             ; preds = %4510, %4500
  %4514 = phi float [ %4501, %4500 ], [ %4512, %4510 ]
  %4515 = fneg float %4514
  %4516 = load ptr, ptr %33, align 8, !tbaa !5
  %4517 = load i32, ptr %67, align 4, !tbaa !9
  %4518 = load i32, ptr %68, align 4, !tbaa !9
  %4519 = load i32, ptr %43, align 4, !tbaa !9
  %4520 = mul nsw i32 %4518, %4519
  %4521 = add nsw i32 %4517, %4520
  %4522 = sext i32 %4521 to i64
  %4523 = getelementptr inbounds float, ptr %4516, i64 %4522
  store float %4515, ptr %4523, align 4, !tbaa !11
  br label %4524

4524:                                             ; preds = %4513
  %4525 = load i32, ptr %67, align 4, !tbaa !9
  %4526 = add nsw i32 %4525, 1
  store i32 %4526, ptr %67, align 4, !tbaa !9
  br label %4477, !llvm.loop !58

4527:                                             ; preds = %4477
  br label %4528

4528:                                             ; preds = %4527
  %4529 = load i32, ptr %68, align 4, !tbaa !9
  %4530 = add nsw i32 %4529, 1
  store i32 %4530, ptr %68, align 4, !tbaa !9
  br label %4459, !llvm.loop !59

4531:                                             ; preds = %4459
  br label %4544

4532:                                             ; preds = %4450
  %4533 = load i32, ptr %86, align 4, !tbaa !9
  %4534 = sub nsw i32 %4533, 1
  store i32 %4534, ptr %45, align 4, !tbaa !9
  %4535 = load i32, ptr %86, align 4, !tbaa !9
  %4536 = sub nsw i32 %4535, 1
  store i32 %4536, ptr %46, align 4, !tbaa !9
  %4537 = load ptr, ptr %33, align 8, !tbaa !5
  %4538 = load i32, ptr %43, align 4, !tbaa !9
  %4539 = shl i32 %4538, 1
  %4540 = add nsw i32 %4539, 1
  %4541 = sext i32 %4540 to i64
  %4542 = getelementptr inbounds float, ptr %4537, i64 %4541
  %4543 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %4542, ptr noundef %4543)
  br label %4544

4544:                                             ; preds = %4532, %4531
  %4545 = load float, ptr %78, align 4, !tbaa !11
  %4546 = load float, ptr %100, align 4, !tbaa !11
  %4547 = fcmp olt float %4545, %4546
  br i1 %4547, label %4548, label %4825

4548:                                             ; preds = %4544
  %4549 = load ptr, ptr %36, align 8, !tbaa !5
  %4550 = load i32, ptr %4549, align 4, !tbaa !9
  %4551 = load ptr, ptr %27, align 8, !tbaa !5
  %4552 = load i32, ptr %4551, align 4, !tbaa !9
  %4553 = shl i32 %4552, 1
  %4554 = sub nsw i32 %4550, %4553
  %4555 = load ptr, ptr %27, align 8, !tbaa !5
  %4556 = load i32, ptr %4555, align 4, !tbaa !9
  %4557 = load i32, ptr %86, align 4, !tbaa !9
  %4558 = mul nsw i32 %4556, %4557
  %4559 = sub nsw i32 %4554, %4558
  %4560 = load i32, ptr %86, align 4, !tbaa !9
  %4561 = sub nsw i32 %4559, %4560
  store i32 %4561, ptr %45, align 4, !tbaa !9
  %4562 = load ptr, ptr %33, align 8, !tbaa !5
  %4563 = load i32, ptr %44, align 4, !tbaa !9
  %4564 = sext i32 %4563 to i64
  %4565 = getelementptr inbounds float, ptr %4562, i64 %4564
  %4566 = load ptr, ptr %34, align 8, !tbaa !5
  %4567 = load ptr, ptr %30, align 8, !tbaa !5
  %4568 = getelementptr inbounds float, ptr %4567, i64 1
  %4569 = load ptr, ptr %31, align 8, !tbaa !5
  %4570 = load i32, ptr %42, align 4, !tbaa !9
  %4571 = sext i32 %4570 to i64
  %4572 = getelementptr inbounds float, ptr %4569, i64 %4571
  %4573 = load ptr, ptr %32, align 8, !tbaa !5
  %4574 = load ptr, ptr %35, align 8, !tbaa !5
  %4575 = load ptr, ptr %27, align 8, !tbaa !5
  %4576 = load i32, ptr %4575, align 4, !tbaa !9
  %4577 = shl i32 %4576, 1
  %4578 = load ptr, ptr %27, align 8, !tbaa !5
  %4579 = load i32, ptr %4578, align 4, !tbaa !9
  %4580 = load i32, ptr %86, align 4, !tbaa !9
  %4581 = mul nsw i32 %4579, %4580
  %4582 = add nsw i32 %4577, %4581
  %4583 = load i32, ptr %86, align 4, !tbaa !9
  %4584 = add nsw i32 %4582, %4583
  %4585 = add nsw i32 %4584, 1
  %4586 = sext i32 %4585 to i64
  %4587 = getelementptr inbounds float, ptr %4574, i64 %4586
  %4588 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.9, ptr noundef %86, ptr noundef %86, ptr noundef %4565, ptr noundef %4566, ptr noundef %4568, ptr noundef %86, ptr noundef %4572, ptr noundef %4573, ptr noundef %4587, ptr noundef %45, ptr noundef %4588)
  %4589 = load ptr, ptr %35, align 8, !tbaa !5
  %4590 = load ptr, ptr %27, align 8, !tbaa !5
  %4591 = load i32, ptr %4590, align 4, !tbaa !9
  %4592 = shl i32 %4591, 1
  %4593 = load ptr, ptr %27, align 8, !tbaa !5
  %4594 = load i32, ptr %4593, align 4, !tbaa !9
  %4595 = load i32, ptr %86, align 4, !tbaa !9
  %4596 = mul nsw i32 %4594, %4595
  %4597 = add nsw i32 %4592, %4596
  %4598 = load i32, ptr %86, align 4, !tbaa !9
  %4599 = add nsw i32 %4597, %4598
  %4600 = add nsw i32 %4599, 1
  %4601 = sext i32 %4600 to i64
  %4602 = getelementptr inbounds float, ptr %4589, i64 %4601
  %4603 = load float, ptr %4602, align 4, !tbaa !11
  store float %4603, ptr %87, align 4, !tbaa !11
  %4604 = load ptr, ptr %35, align 8, !tbaa !5
  %4605 = load ptr, ptr %27, align 8, !tbaa !5
  %4606 = load i32, ptr %4605, align 4, !tbaa !9
  %4607 = shl i32 %4606, 1
  %4608 = load ptr, ptr %27, align 8, !tbaa !5
  %4609 = load i32, ptr %4608, align 4, !tbaa !9
  %4610 = load i32, ptr %86, align 4, !tbaa !9
  %4611 = mul nsw i32 %4609, %4610
  %4612 = add nsw i32 %4607, %4611
  %4613 = load i32, ptr %86, align 4, !tbaa !9
  %4614 = add nsw i32 %4612, %4613
  %4615 = add nsw i32 %4614, 2
  %4616 = sext i32 %4615 to i64
  %4617 = getelementptr inbounds float, ptr %4604, i64 %4616
  %4618 = load float, ptr %4617, align 4, !tbaa !11
  %4619 = fcmp oge float %4618, 0.000000e+00
  br i1 %4619, label %4620, label %4639

4620:                                             ; preds = %4548
  %4621 = load ptr, ptr %35, align 8, !tbaa !5
  %4622 = load ptr, ptr %27, align 8, !tbaa !5
  %4623 = load i32, ptr %4622, align 4, !tbaa !9
  %4624 = shl i32 %4623, 1
  %4625 = load ptr, ptr %27, align 8, !tbaa !5
  %4626 = load i32, ptr %4625, align 4, !tbaa !9
  %4627 = load i32, ptr %86, align 4, !tbaa !9
  %4628 = mul nsw i32 %4626, %4627
  %4629 = add nsw i32 %4624, %4628
  %4630 = load i32, ptr %86, align 4, !tbaa !9
  %4631 = add nsw i32 %4629, %4630
  %4632 = add nsw i32 %4631, 2
  %4633 = sext i32 %4632 to i64
  %4634 = getelementptr inbounds float, ptr %4621, i64 %4633
  %4635 = load float, ptr %4634, align 4, !tbaa !11
  %4636 = fpext float %4635 to double
  %4637 = fadd double %4636, 5.000000e-01
  %4638 = call double @llvm.floor.f64(double %4637)
  br label %4659

4639:                                             ; preds = %4548
  %4640 = load ptr, ptr %35, align 8, !tbaa !5
  %4641 = load ptr, ptr %27, align 8, !tbaa !5
  %4642 = load i32, ptr %4641, align 4, !tbaa !9
  %4643 = shl i32 %4642, 1
  %4644 = load ptr, ptr %27, align 8, !tbaa !5
  %4645 = load i32, ptr %4644, align 4, !tbaa !9
  %4646 = load i32, ptr %86, align 4, !tbaa !9
  %4647 = mul nsw i32 %4645, %4646
  %4648 = add nsw i32 %4643, %4647
  %4649 = load i32, ptr %86, align 4, !tbaa !9
  %4650 = add nsw i32 %4648, %4649
  %4651 = add nsw i32 %4650, 2
  %4652 = sext i32 %4651 to i64
  %4653 = getelementptr inbounds float, ptr %4640, i64 %4652
  %4654 = load float, ptr %4653, align 4, !tbaa !11
  %4655 = fpext float %4654 to double
  %4656 = fsub double 5.000000e-01, %4655
  %4657 = call double @llvm.floor.f64(double %4656)
  %4658 = fneg double %4657
  br label %4659

4659:                                             ; preds = %4639, %4620
  %4660 = phi double [ %4638, %4620 ], [ %4658, %4639 ]
  %4661 = fptosi double %4660 to i32
  store i32 %4661, ptr %104, align 4, !tbaa !9
  %4662 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4662, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %4663

4663:                                             ; preds = %4693, %4659
  %4664 = load i32, ptr %67, align 4, !tbaa !9
  %4665 = load i32, ptr %45, align 4, !tbaa !9
  %4666 = icmp sle i32 %4664, %4665
  br i1 %4666, label %4667, label %4696

4667:                                             ; preds = %4663
  %4668 = load ptr, ptr %33, align 8, !tbaa !5
  %4669 = load i32, ptr %67, align 4, !tbaa !9
  %4670 = load i32, ptr %43, align 4, !tbaa !9
  %4671 = mul nsw i32 %4669, %4670
  %4672 = add nsw i32 %4671, 1
  %4673 = sext i32 %4672 to i64
  %4674 = getelementptr inbounds float, ptr %4668, i64 %4673
  %4675 = load ptr, ptr %31, align 8, !tbaa !5
  %4676 = load i32, ptr %67, align 4, !tbaa !9
  %4677 = load i32, ptr %41, align 4, !tbaa !9
  %4678 = mul nsw i32 %4676, %4677
  %4679 = add nsw i32 %4678, 1
  %4680 = sext i32 %4679 to i64
  %4681 = getelementptr inbounds float, ptr %4675, i64 %4680
  call void @scopy_(ptr noundef %86, ptr noundef %4674, ptr noundef @c__1, ptr noundef %4681, ptr noundef @c__1)
  %4682 = load ptr, ptr %30, align 8, !tbaa !5
  %4683 = load i32, ptr %67, align 4, !tbaa !9
  %4684 = sext i32 %4683 to i64
  %4685 = getelementptr inbounds float, ptr %4682, i64 %4684
  %4686 = load ptr, ptr %33, align 8, !tbaa !5
  %4687 = load i32, ptr %67, align 4, !tbaa !9
  %4688 = load i32, ptr %43, align 4, !tbaa !9
  %4689 = mul nsw i32 %4687, %4688
  %4690 = add nsw i32 %4689, 1
  %4691 = sext i32 %4690 to i64
  %4692 = getelementptr inbounds float, ptr %4686, i64 %4691
  call void @sscal_(ptr noundef %86, ptr noundef %4685, ptr noundef %4692, ptr noundef @c__1)
  br label %4693

4693:                                             ; preds = %4667
  %4694 = load i32, ptr %67, align 4, !tbaa !9
  %4695 = add nsw i32 %4694, 1
  store i32 %4695, ptr %67, align 4, !tbaa !9
  br label %4663, !llvm.loop !60

4696:                                             ; preds = %4663
  %4697 = load i32, ptr %86, align 4, !tbaa !9
  %4698 = load ptr, ptr %27, align 8, !tbaa !5
  %4699 = load i32, ptr %4698, align 4, !tbaa !9
  %4700 = icmp eq i32 %4697, %4699
  br i1 %4700, label %4701, label %4712

4701:                                             ; preds = %4696
  %4702 = load ptr, ptr %28, align 8, !tbaa !5
  %4703 = load i32, ptr %40, align 4, !tbaa !9
  %4704 = sext i32 %4703 to i64
  %4705 = getelementptr inbounds float, ptr %4702, i64 %4704
  %4706 = load ptr, ptr %29, align 8, !tbaa !5
  %4707 = load ptr, ptr %33, align 8, !tbaa !5
  %4708 = load i32, ptr %44, align 4, !tbaa !9
  %4709 = sext i32 %4708 to i64
  %4710 = getelementptr inbounds float, ptr %4707, i64 %4709
  %4711 = load ptr, ptr %34, align 8, !tbaa !5
  call void @strsm_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.9, ptr noundef @.str.9, ptr noundef %86, ptr noundef %86, ptr noundef @c_b35, ptr noundef %4705, ptr noundef %4706, ptr noundef %4710, ptr noundef %4711)
  br label %4824

4712:                                             ; preds = %4696
  %4713 = load ptr, ptr %35, align 8, !tbaa !5
  %4714 = load ptr, ptr %27, align 8, !tbaa !5
  %4715 = load i32, ptr %4714, align 4, !tbaa !9
  %4716 = shl i32 %4715, 1
  %4717 = add nsw i32 %4716, 1
  %4718 = sext i32 %4717 to i64
  %4719 = getelementptr inbounds float, ptr %4713, i64 %4718
  %4720 = load ptr, ptr %27, align 8, !tbaa !5
  %4721 = load ptr, ptr %33, align 8, !tbaa !5
  %4722 = load i32, ptr %44, align 4, !tbaa !9
  %4723 = sext i32 %4722 to i64
  %4724 = getelementptr inbounds float, ptr %4721, i64 %4723
  %4725 = load ptr, ptr %34, align 8, !tbaa !5
  call void @strsm_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.8, ptr noundef @.str.9, ptr noundef %86, ptr noundef %86, ptr noundef @c_b35, ptr noundef %4719, ptr noundef %4720, ptr noundef %4724, ptr noundef %4725)
  %4726 = load i32, ptr %86, align 4, !tbaa !9
  %4727 = load ptr, ptr %27, align 8, !tbaa !5
  %4728 = load i32, ptr %4727, align 4, !tbaa !9
  %4729 = icmp slt i32 %4726, %4728
  br i1 %4729, label %4730, label %4775

4730:                                             ; preds = %4712
  %4731 = load ptr, ptr %27, align 8, !tbaa !5
  %4732 = load i32, ptr %4731, align 4, !tbaa !9
  %4733 = load i32, ptr %86, align 4, !tbaa !9
  %4734 = sub nsw i32 %4732, %4733
  store i32 %4734, ptr %45, align 4, !tbaa !9
  %4735 = load ptr, ptr %33, align 8, !tbaa !5
  %4736 = load i32, ptr %86, align 4, !tbaa !9
  %4737 = add nsw i32 %4736, 1
  %4738 = load i32, ptr %43, align 4, !tbaa !9
  %4739 = add nsw i32 %4737, %4738
  %4740 = sext i32 %4739 to i64
  %4741 = getelementptr inbounds float, ptr %4735, i64 %4740
  %4742 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %4741, ptr noundef %4742)
  %4743 = load ptr, ptr %27, align 8, !tbaa !5
  %4744 = load i32, ptr %4743, align 4, !tbaa !9
  %4745 = load i32, ptr %86, align 4, !tbaa !9
  %4746 = sub nsw i32 %4744, %4745
  store i32 %4746, ptr %45, align 4, !tbaa !9
  %4747 = load ptr, ptr %33, align 8, !tbaa !5
  %4748 = load i32, ptr %86, align 4, !tbaa !9
  %4749 = add nsw i32 %4748, 1
  %4750 = load i32, ptr %43, align 4, !tbaa !9
  %4751 = mul nsw i32 %4749, %4750
  %4752 = add nsw i32 %4751, 1
  %4753 = sext i32 %4752 to i64
  %4754 = getelementptr inbounds float, ptr %4747, i64 %4753
  %4755 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %4754, ptr noundef %4755)
  %4756 = load ptr, ptr %27, align 8, !tbaa !5
  %4757 = load i32, ptr %4756, align 4, !tbaa !9
  %4758 = load i32, ptr %86, align 4, !tbaa !9
  %4759 = sub nsw i32 %4757, %4758
  store i32 %4759, ptr %45, align 4, !tbaa !9
  %4760 = load ptr, ptr %27, align 8, !tbaa !5
  %4761 = load i32, ptr %4760, align 4, !tbaa !9
  %4762 = load i32, ptr %86, align 4, !tbaa !9
  %4763 = sub nsw i32 %4761, %4762
  store i32 %4763, ptr %46, align 4, !tbaa !9
  %4764 = load ptr, ptr %33, align 8, !tbaa !5
  %4765 = load i32, ptr %86, align 4, !tbaa !9
  %4766 = add nsw i32 %4765, 1
  %4767 = load i32, ptr %86, align 4, !tbaa !9
  %4768 = add nsw i32 %4767, 1
  %4769 = load i32, ptr %43, align 4, !tbaa !9
  %4770 = mul nsw i32 %4768, %4769
  %4771 = add nsw i32 %4766, %4770
  %4772 = sext i32 %4771 to i64
  %4773 = getelementptr inbounds float, ptr %4764, i64 %4772
  %4774 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %4773, ptr noundef %4774)
  br label %4775

4775:                                             ; preds = %4730, %4712
  %4776 = load ptr, ptr %36, align 8, !tbaa !5
  %4777 = load i32, ptr %4776, align 4, !tbaa !9
  %4778 = load ptr, ptr %27, align 8, !tbaa !5
  %4779 = load i32, ptr %4778, align 4, !tbaa !9
  %4780 = shl i32 %4779, 1
  %4781 = sub nsw i32 %4777, %4780
  %4782 = load ptr, ptr %27, align 8, !tbaa !5
  %4783 = load i32, ptr %4782, align 4, !tbaa !9
  %4784 = load i32, ptr %86, align 4, !tbaa !9
  %4785 = mul nsw i32 %4783, %4784
  %4786 = sub nsw i32 %4781, %4785
  %4787 = load i32, ptr %86, align 4, !tbaa !9
  %4788 = sub nsw i32 %4786, %4787
  store i32 %4788, ptr %45, align 4, !tbaa !9
  %4789 = load ptr, ptr %27, align 8, !tbaa !5
  %4790 = load ptr, ptr %27, align 8, !tbaa !5
  %4791 = load ptr, ptr %35, align 8, !tbaa !5
  %4792 = load ptr, ptr %27, align 8, !tbaa !5
  %4793 = load i32, ptr %4792, align 4, !tbaa !9
  %4794 = shl i32 %4793, 1
  %4795 = add nsw i32 %4794, 1
  %4796 = sext i32 %4795 to i64
  %4797 = getelementptr inbounds float, ptr %4791, i64 %4796
  %4798 = load ptr, ptr %27, align 8, !tbaa !5
  %4799 = load ptr, ptr %35, align 8, !tbaa !5
  %4800 = load ptr, ptr %27, align 8, !tbaa !5
  %4801 = load i32, ptr %4800, align 4, !tbaa !9
  %4802 = add nsw i32 %4801, 1
  %4803 = sext i32 %4802 to i64
  %4804 = getelementptr inbounds float, ptr %4799, i64 %4803
  %4805 = load ptr, ptr %33, align 8, !tbaa !5
  %4806 = load i32, ptr %44, align 4, !tbaa !9
  %4807 = sext i32 %4806 to i64
  %4808 = getelementptr inbounds float, ptr %4805, i64 %4807
  %4809 = load ptr, ptr %34, align 8, !tbaa !5
  %4810 = load ptr, ptr %35, align 8, !tbaa !5
  %4811 = load ptr, ptr %27, align 8, !tbaa !5
  %4812 = load i32, ptr %4811, align 4, !tbaa !9
  %4813 = shl i32 %4812, 1
  %4814 = load ptr, ptr %27, align 8, !tbaa !5
  %4815 = load i32, ptr %4814, align 4, !tbaa !9
  %4816 = load i32, ptr %86, align 4, !tbaa !9
  %4817 = mul nsw i32 %4815, %4816
  %4818 = add nsw i32 %4813, %4817
  %4819 = load i32, ptr %86, align 4, !tbaa !9
  %4820 = add nsw i32 %4818, %4819
  %4821 = add nsw i32 %4820, 1
  %4822 = sext i32 %4821 to i64
  %4823 = getelementptr inbounds float, ptr %4810, i64 %4822
  call void @sormqr_(ptr noundef @.str.17, ptr noundef @.str.9, ptr noundef %4789, ptr noundef %4790, ptr noundef %86, ptr noundef %4797, ptr noundef %4798, ptr noundef %4804, ptr noundef %4808, ptr noundef %4809, ptr noundef %4823, ptr noundef %45, ptr noundef %65)
  br label %4824

4824:                                             ; preds = %4775, %4701
  br label %5524

4825:                                             ; preds = %4544
  %4826 = load float, ptr %79, align 4, !tbaa !11
  %4827 = load float, ptr %100, align 4, !tbaa !11
  %4828 = fcmp olt float %4826, %4827
  br i1 %4828, label %4829, label %5174

4829:                                             ; preds = %4825
  %4830 = load ptr, ptr %36, align 8, !tbaa !5
  %4831 = load i32, ptr %4830, align 4, !tbaa !9
  %4832 = load ptr, ptr %27, align 8, !tbaa !5
  %4833 = load i32, ptr %4832, align 4, !tbaa !9
  %4834 = shl i32 %4833, 1
  %4835 = sub nsw i32 %4831, %4834
  %4836 = load ptr, ptr %27, align 8, !tbaa !5
  %4837 = load i32, ptr %4836, align 4, !tbaa !9
  %4838 = load i32, ptr %86, align 4, !tbaa !9
  %4839 = mul nsw i32 %4837, %4838
  %4840 = sub nsw i32 %4835, %4839
  %4841 = load i32, ptr %86, align 4, !tbaa !9
  %4842 = sub nsw i32 %4840, %4841
  store i32 %4842, ptr %45, align 4, !tbaa !9
  %4843 = load ptr, ptr %33, align 8, !tbaa !5
  %4844 = load i32, ptr %44, align 4, !tbaa !9
  %4845 = sext i32 %4844 to i64
  %4846 = getelementptr inbounds float, ptr %4843, i64 %4845
  %4847 = load ptr, ptr %34, align 8, !tbaa !5
  %4848 = load ptr, ptr %30, align 8, !tbaa !5
  %4849 = getelementptr inbounds float, ptr %4848, i64 1
  %4850 = load ptr, ptr %31, align 8, !tbaa !5
  %4851 = load i32, ptr %42, align 4, !tbaa !9
  %4852 = sext i32 %4851 to i64
  %4853 = getelementptr inbounds float, ptr %4850, i64 %4852
  %4854 = load ptr, ptr %32, align 8, !tbaa !5
  %4855 = load ptr, ptr %35, align 8, !tbaa !5
  %4856 = load ptr, ptr %27, align 8, !tbaa !5
  %4857 = load i32, ptr %4856, align 4, !tbaa !9
  %4858 = shl i32 %4857, 1
  %4859 = load ptr, ptr %27, align 8, !tbaa !5
  %4860 = load i32, ptr %4859, align 4, !tbaa !9
  %4861 = load i32, ptr %86, align 4, !tbaa !9
  %4862 = mul nsw i32 %4860, %4861
  %4863 = add nsw i32 %4858, %4862
  %4864 = load i32, ptr %86, align 4, !tbaa !9
  %4865 = add nsw i32 %4863, %4864
  %4866 = add nsw i32 %4865, 1
  %4867 = sext i32 %4866 to i64
  %4868 = getelementptr inbounds float, ptr %4855, i64 %4867
  %4869 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.9, ptr noundef %86, ptr noundef %86, ptr noundef %4846, ptr noundef %4847, ptr noundef %4849, ptr noundef %86, ptr noundef %4853, ptr noundef %4854, ptr noundef %4868, ptr noundef %45, ptr noundef %4869)
  %4870 = load ptr, ptr %35, align 8, !tbaa !5
  %4871 = load ptr, ptr %27, align 8, !tbaa !5
  %4872 = load i32, ptr %4871, align 4, !tbaa !9
  %4873 = shl i32 %4872, 1
  %4874 = load ptr, ptr %27, align 8, !tbaa !5
  %4875 = load i32, ptr %4874, align 4, !tbaa !9
  %4876 = load i32, ptr %86, align 4, !tbaa !9
  %4877 = mul nsw i32 %4875, %4876
  %4878 = add nsw i32 %4873, %4877
  %4879 = load i32, ptr %86, align 4, !tbaa !9
  %4880 = add nsw i32 %4878, %4879
  %4881 = add nsw i32 %4880, 1
  %4882 = sext i32 %4881 to i64
  %4883 = getelementptr inbounds float, ptr %4870, i64 %4882
  %4884 = load float, ptr %4883, align 4, !tbaa !11
  store float %4884, ptr %87, align 4, !tbaa !11
  %4885 = load ptr, ptr %35, align 8, !tbaa !5
  %4886 = load ptr, ptr %27, align 8, !tbaa !5
  %4887 = load i32, ptr %4886, align 4, !tbaa !9
  %4888 = shl i32 %4887, 1
  %4889 = load ptr, ptr %27, align 8, !tbaa !5
  %4890 = load i32, ptr %4889, align 4, !tbaa !9
  %4891 = load i32, ptr %86, align 4, !tbaa !9
  %4892 = mul nsw i32 %4890, %4891
  %4893 = add nsw i32 %4888, %4892
  %4894 = load i32, ptr %86, align 4, !tbaa !9
  %4895 = add nsw i32 %4893, %4894
  %4896 = add nsw i32 %4895, 2
  %4897 = sext i32 %4896 to i64
  %4898 = getelementptr inbounds float, ptr %4885, i64 %4897
  %4899 = load float, ptr %4898, align 4, !tbaa !11
  %4900 = fcmp oge float %4899, 0.000000e+00
  br i1 %4900, label %4901, label %4920

4901:                                             ; preds = %4829
  %4902 = load ptr, ptr %35, align 8, !tbaa !5
  %4903 = load ptr, ptr %27, align 8, !tbaa !5
  %4904 = load i32, ptr %4903, align 4, !tbaa !9
  %4905 = shl i32 %4904, 1
  %4906 = load ptr, ptr %27, align 8, !tbaa !5
  %4907 = load i32, ptr %4906, align 4, !tbaa !9
  %4908 = load i32, ptr %86, align 4, !tbaa !9
  %4909 = mul nsw i32 %4907, %4908
  %4910 = add nsw i32 %4905, %4909
  %4911 = load i32, ptr %86, align 4, !tbaa !9
  %4912 = add nsw i32 %4910, %4911
  %4913 = add nsw i32 %4912, 2
  %4914 = sext i32 %4913 to i64
  %4915 = getelementptr inbounds float, ptr %4902, i64 %4914
  %4916 = load float, ptr %4915, align 4, !tbaa !11
  %4917 = fpext float %4916 to double
  %4918 = fadd double %4917, 5.000000e-01
  %4919 = call double @llvm.floor.f64(double %4918)
  br label %4940

4920:                                             ; preds = %4829
  %4921 = load ptr, ptr %35, align 8, !tbaa !5
  %4922 = load ptr, ptr %27, align 8, !tbaa !5
  %4923 = load i32, ptr %4922, align 4, !tbaa !9
  %4924 = shl i32 %4923, 1
  %4925 = load ptr, ptr %27, align 8, !tbaa !5
  %4926 = load i32, ptr %4925, align 4, !tbaa !9
  %4927 = load i32, ptr %86, align 4, !tbaa !9
  %4928 = mul nsw i32 %4926, %4927
  %4929 = add nsw i32 %4924, %4928
  %4930 = load i32, ptr %86, align 4, !tbaa !9
  %4931 = add nsw i32 %4929, %4930
  %4932 = add nsw i32 %4931, 2
  %4933 = sext i32 %4932 to i64
  %4934 = getelementptr inbounds float, ptr %4921, i64 %4933
  %4935 = load float, ptr %4934, align 4, !tbaa !11
  %4936 = fpext float %4935 to double
  %4937 = fsub double 5.000000e-01, %4936
  %4938 = call double @llvm.floor.f64(double %4937)
  %4939 = fneg double %4938
  br label %4940

4940:                                             ; preds = %4920, %4901
  %4941 = phi double [ %4919, %4901 ], [ %4939, %4920 ]
  %4942 = fptosi double %4941 to i32
  store i32 %4942, ptr %104, align 4, !tbaa !9
  %4943 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4943, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %4944

4944:                                             ; preds = %4974, %4940
  %4945 = load i32, ptr %67, align 4, !tbaa !9
  %4946 = load i32, ptr %45, align 4, !tbaa !9
  %4947 = icmp sle i32 %4945, %4946
  br i1 %4947, label %4948, label %4977

4948:                                             ; preds = %4944
  %4949 = load ptr, ptr %33, align 8, !tbaa !5
  %4950 = load i32, ptr %67, align 4, !tbaa !9
  %4951 = load i32, ptr %43, align 4, !tbaa !9
  %4952 = mul nsw i32 %4950, %4951
  %4953 = add nsw i32 %4952, 1
  %4954 = sext i32 %4953 to i64
  %4955 = getelementptr inbounds float, ptr %4949, i64 %4954
  %4956 = load ptr, ptr %31, align 8, !tbaa !5
  %4957 = load i32, ptr %67, align 4, !tbaa !9
  %4958 = load i32, ptr %41, align 4, !tbaa !9
  %4959 = mul nsw i32 %4957, %4958
  %4960 = add nsw i32 %4959, 1
  %4961 = sext i32 %4960 to i64
  %4962 = getelementptr inbounds float, ptr %4956, i64 %4961
  call void @scopy_(ptr noundef %86, ptr noundef %4955, ptr noundef @c__1, ptr noundef %4962, ptr noundef @c__1)
  %4963 = load ptr, ptr %30, align 8, !tbaa !5
  %4964 = load i32, ptr %67, align 4, !tbaa !9
  %4965 = sext i32 %4964 to i64
  %4966 = getelementptr inbounds float, ptr %4963, i64 %4965
  %4967 = load ptr, ptr %31, align 8, !tbaa !5
  %4968 = load i32, ptr %67, align 4, !tbaa !9
  %4969 = load i32, ptr %41, align 4, !tbaa !9
  %4970 = mul nsw i32 %4968, %4969
  %4971 = add nsw i32 %4970, 1
  %4972 = sext i32 %4971 to i64
  %4973 = getelementptr inbounds float, ptr %4967, i64 %4972
  call void @sscal_(ptr noundef %86, ptr noundef %4966, ptr noundef %4973, ptr noundef @c__1)
  br label %4974

4974:                                             ; preds = %4948
  %4975 = load i32, ptr %67, align 4, !tbaa !9
  %4976 = add nsw i32 %4975, 1
  store i32 %4976, ptr %67, align 4, !tbaa !9
  br label %4944, !llvm.loop !61

4977:                                             ; preds = %4944
  %4978 = load ptr, ptr %35, align 8, !tbaa !5
  %4979 = load ptr, ptr %27, align 8, !tbaa !5
  %4980 = load i32, ptr %4979, align 4, !tbaa !9
  %4981 = shl i32 %4980, 1
  %4982 = add nsw i32 %4981, 1
  %4983 = sext i32 %4982 to i64
  %4984 = getelementptr inbounds float, ptr %4978, i64 %4983
  %4985 = load ptr, ptr %27, align 8, !tbaa !5
  %4986 = load ptr, ptr %31, align 8, !tbaa !5
  %4987 = load i32, ptr %42, align 4, !tbaa !9
  %4988 = sext i32 %4987 to i64
  %4989 = getelementptr inbounds float, ptr %4986, i64 %4988
  %4990 = load ptr, ptr %32, align 8, !tbaa !5
  call void @strsm_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.9, ptr noundef @.str.9, ptr noundef %86, ptr noundef %86, ptr noundef @c_b35, ptr noundef %4984, ptr noundef %4985, ptr noundef %4989, ptr noundef %4990)
  %4991 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4991, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %4992

4992:                                             ; preds = %5072, %4977
  %4993 = load i32, ptr %68, align 4, !tbaa !9
  %4994 = load i32, ptr %45, align 4, !tbaa !9
  %4995 = icmp sle i32 %4993, %4994
  br i1 %4995, label %4996, label %5075

4996:                                             ; preds = %4992
  %4997 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %4997, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %4998

4998:                                             ; preds = %5034, %4996
  %4999 = load i32, ptr %67, align 4, !tbaa !9
  %5000 = load i32, ptr %46, align 4, !tbaa !9
  %5001 = icmp sle i32 %4999, %5000
  br i1 %5001, label %5002, label %5037

5002:                                             ; preds = %4998
  %5003 = load ptr, ptr %31, align 8, !tbaa !5
  %5004 = load i32, ptr %67, align 4, !tbaa !9
  %5005 = load i32, ptr %68, align 4, !tbaa !9
  %5006 = load i32, ptr %41, align 4, !tbaa !9
  %5007 = mul nsw i32 %5005, %5006
  %5008 = add nsw i32 %5004, %5007
  %5009 = sext i32 %5008 to i64
  %5010 = getelementptr inbounds float, ptr %5003, i64 %5009
  %5011 = load float, ptr %5010, align 4, !tbaa !11
  %5012 = load ptr, ptr %35, align 8, !tbaa !5
  %5013 = load ptr, ptr %27, align 8, !tbaa !5
  %5014 = load i32, ptr %5013, align 4, !tbaa !9
  %5015 = shl i32 %5014, 1
  %5016 = load ptr, ptr %27, align 8, !tbaa !5
  %5017 = load i32, ptr %5016, align 4, !tbaa !9
  %5018 = load i32, ptr %86, align 4, !tbaa !9
  %5019 = mul nsw i32 %5017, %5018
  %5020 = add nsw i32 %5015, %5019
  %5021 = load i32, ptr %86, align 4, !tbaa !9
  %5022 = add nsw i32 %5020, %5021
  %5023 = load ptr, ptr %37, align 8, !tbaa !5
  %5024 = load ptr, ptr %27, align 8, !tbaa !5
  %5025 = load i32, ptr %5024, align 4, !tbaa !9
  %5026 = load i32, ptr %67, align 4, !tbaa !9
  %5027 = add nsw i32 %5025, %5026
  %5028 = sext i32 %5027 to i64
  %5029 = getelementptr inbounds i32, ptr %5023, i64 %5028
  %5030 = load i32, ptr %5029, align 4, !tbaa !9
  %5031 = add nsw i32 %5022, %5030
  %5032 = sext i32 %5031 to i64
  %5033 = getelementptr inbounds float, ptr %5012, i64 %5032
  store float %5011, ptr %5033, align 4, !tbaa !11
  br label %5034

5034:                                             ; preds = %5002
  %5035 = load i32, ptr %67, align 4, !tbaa !9
  %5036 = add nsw i32 %5035, 1
  store i32 %5036, ptr %67, align 4, !tbaa !9
  br label %4998, !llvm.loop !62

5037:                                             ; preds = %4998
  %5038 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %5038, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %5039

5039:                                             ; preds = %5068, %5037
  %5040 = load i32, ptr %67, align 4, !tbaa !9
  %5041 = load i32, ptr %46, align 4, !tbaa !9
  %5042 = icmp sle i32 %5040, %5041
  br i1 %5042, label %5043, label %5071

5043:                                             ; preds = %5039
  %5044 = load ptr, ptr %35, align 8, !tbaa !5
  %5045 = load ptr, ptr %27, align 8, !tbaa !5
  %5046 = load i32, ptr %5045, align 4, !tbaa !9
  %5047 = shl i32 %5046, 1
  %5048 = load ptr, ptr %27, align 8, !tbaa !5
  %5049 = load i32, ptr %5048, align 4, !tbaa !9
  %5050 = load i32, ptr %86, align 4, !tbaa !9
  %5051 = mul nsw i32 %5049, %5050
  %5052 = add nsw i32 %5047, %5051
  %5053 = load i32, ptr %86, align 4, !tbaa !9
  %5054 = add nsw i32 %5052, %5053
  %5055 = load i32, ptr %67, align 4, !tbaa !9
  %5056 = add nsw i32 %5054, %5055
  %5057 = sext i32 %5056 to i64
  %5058 = getelementptr inbounds float, ptr %5044, i64 %5057
  %5059 = load float, ptr %5058, align 4, !tbaa !11
  %5060 = load ptr, ptr %31, align 8, !tbaa !5
  %5061 = load i32, ptr %67, align 4, !tbaa !9
  %5062 = load i32, ptr %68, align 4, !tbaa !9
  %5063 = load i32, ptr %41, align 4, !tbaa !9
  %5064 = mul nsw i32 %5062, %5063
  %5065 = add nsw i32 %5061, %5064
  %5066 = sext i32 %5065 to i64
  %5067 = getelementptr inbounds float, ptr %5060, i64 %5066
  store float %5059, ptr %5067, align 4, !tbaa !11
  br label %5068

5068:                                             ; preds = %5043
  %5069 = load i32, ptr %67, align 4, !tbaa !9
  %5070 = add nsw i32 %5069, 1
  store i32 %5070, ptr %67, align 4, !tbaa !9
  br label %5039, !llvm.loop !63

5071:                                             ; preds = %5039
  br label %5072

5072:                                             ; preds = %5071
  %5073 = load i32, ptr %68, align 4, !tbaa !9
  %5074 = add nsw i32 %5073, 1
  store i32 %5074, ptr %68, align 4, !tbaa !9
  br label %4992, !llvm.loop !64

5075:                                             ; preds = %4992
  %5076 = load i32, ptr %86, align 4, !tbaa !9
  %5077 = load ptr, ptr %27, align 8, !tbaa !5
  %5078 = load i32, ptr %5077, align 4, !tbaa !9
  %5079 = icmp slt i32 %5076, %5078
  br i1 %5079, label %5080, label %5125

5080:                                             ; preds = %5075
  %5081 = load ptr, ptr %27, align 8, !tbaa !5
  %5082 = load i32, ptr %5081, align 4, !tbaa !9
  %5083 = load i32, ptr %86, align 4, !tbaa !9
  %5084 = sub nsw i32 %5082, %5083
  store i32 %5084, ptr %45, align 4, !tbaa !9
  %5085 = load ptr, ptr %33, align 8, !tbaa !5
  %5086 = load i32, ptr %86, align 4, !tbaa !9
  %5087 = add nsw i32 %5086, 1
  %5088 = load i32, ptr %43, align 4, !tbaa !9
  %5089 = add nsw i32 %5087, %5088
  %5090 = sext i32 %5089 to i64
  %5091 = getelementptr inbounds float, ptr %5085, i64 %5090
  %5092 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %5091, ptr noundef %5092)
  %5093 = load ptr, ptr %27, align 8, !tbaa !5
  %5094 = load i32, ptr %5093, align 4, !tbaa !9
  %5095 = load i32, ptr %86, align 4, !tbaa !9
  %5096 = sub nsw i32 %5094, %5095
  store i32 %5096, ptr %45, align 4, !tbaa !9
  %5097 = load ptr, ptr %33, align 8, !tbaa !5
  %5098 = load i32, ptr %86, align 4, !tbaa !9
  %5099 = add nsw i32 %5098, 1
  %5100 = load i32, ptr %43, align 4, !tbaa !9
  %5101 = mul nsw i32 %5099, %5100
  %5102 = add nsw i32 %5101, 1
  %5103 = sext i32 %5102 to i64
  %5104 = getelementptr inbounds float, ptr %5097, i64 %5103
  %5105 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %5104, ptr noundef %5105)
  %5106 = load ptr, ptr %27, align 8, !tbaa !5
  %5107 = load i32, ptr %5106, align 4, !tbaa !9
  %5108 = load i32, ptr %86, align 4, !tbaa !9
  %5109 = sub nsw i32 %5107, %5108
  store i32 %5109, ptr %45, align 4, !tbaa !9
  %5110 = load ptr, ptr %27, align 8, !tbaa !5
  %5111 = load i32, ptr %5110, align 4, !tbaa !9
  %5112 = load i32, ptr %86, align 4, !tbaa !9
  %5113 = sub nsw i32 %5111, %5112
  store i32 %5113, ptr %46, align 4, !tbaa !9
  %5114 = load ptr, ptr %33, align 8, !tbaa !5
  %5115 = load i32, ptr %86, align 4, !tbaa !9
  %5116 = add nsw i32 %5115, 1
  %5117 = load i32, ptr %86, align 4, !tbaa !9
  %5118 = add nsw i32 %5117, 1
  %5119 = load i32, ptr %43, align 4, !tbaa !9
  %5120 = mul nsw i32 %5118, %5119
  %5121 = add nsw i32 %5116, %5120
  %5122 = sext i32 %5121 to i64
  %5123 = getelementptr inbounds float, ptr %5114, i64 %5122
  %5124 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %5123, ptr noundef %5124)
  br label %5125

5125:                                             ; preds = %5080, %5075
  %5126 = load ptr, ptr %36, align 8, !tbaa !5
  %5127 = load i32, ptr %5126, align 4, !tbaa !9
  %5128 = load ptr, ptr %27, align 8, !tbaa !5
  %5129 = load i32, ptr %5128, align 4, !tbaa !9
  %5130 = shl i32 %5129, 1
  %5131 = sub nsw i32 %5127, %5130
  %5132 = load ptr, ptr %27, align 8, !tbaa !5
  %5133 = load i32, ptr %5132, align 4, !tbaa !9
  %5134 = load i32, ptr %86, align 4, !tbaa !9
  %5135 = mul nsw i32 %5133, %5134
  %5136 = sub nsw i32 %5131, %5135
  %5137 = load i32, ptr %86, align 4, !tbaa !9
  %5138 = sub nsw i32 %5136, %5137
  store i32 %5138, ptr %45, align 4, !tbaa !9
  %5139 = load ptr, ptr %27, align 8, !tbaa !5
  %5140 = load ptr, ptr %27, align 8, !tbaa !5
  %5141 = load ptr, ptr %35, align 8, !tbaa !5
  %5142 = load ptr, ptr %27, align 8, !tbaa !5
  %5143 = load i32, ptr %5142, align 4, !tbaa !9
  %5144 = shl i32 %5143, 1
  %5145 = add nsw i32 %5144, 1
  %5146 = sext i32 %5145 to i64
  %5147 = getelementptr inbounds float, ptr %5141, i64 %5146
  %5148 = load ptr, ptr %27, align 8, !tbaa !5
  %5149 = load ptr, ptr %35, align 8, !tbaa !5
  %5150 = load ptr, ptr %27, align 8, !tbaa !5
  %5151 = load i32, ptr %5150, align 4, !tbaa !9
  %5152 = add nsw i32 %5151, 1
  %5153 = sext i32 %5152 to i64
  %5154 = getelementptr inbounds float, ptr %5149, i64 %5153
  %5155 = load ptr, ptr %33, align 8, !tbaa !5
  %5156 = load i32, ptr %44, align 4, !tbaa !9
  %5157 = sext i32 %5156 to i64
  %5158 = getelementptr inbounds float, ptr %5155, i64 %5157
  %5159 = load ptr, ptr %34, align 8, !tbaa !5
  %5160 = load ptr, ptr %35, align 8, !tbaa !5
  %5161 = load ptr, ptr %27, align 8, !tbaa !5
  %5162 = load i32, ptr %5161, align 4, !tbaa !9
  %5163 = shl i32 %5162, 1
  %5164 = load ptr, ptr %27, align 8, !tbaa !5
  %5165 = load i32, ptr %5164, align 4, !tbaa !9
  %5166 = load i32, ptr %86, align 4, !tbaa !9
  %5167 = mul nsw i32 %5165, %5166
  %5168 = add nsw i32 %5163, %5167
  %5169 = load i32, ptr %86, align 4, !tbaa !9
  %5170 = add nsw i32 %5168, %5169
  %5171 = add nsw i32 %5170, 1
  %5172 = sext i32 %5171 to i64
  %5173 = getelementptr inbounds float, ptr %5160, i64 %5172
  call void @sormqr_(ptr noundef @.str.17, ptr noundef @.str.9, ptr noundef %5139, ptr noundef %5140, ptr noundef %86, ptr noundef %5147, ptr noundef %5148, ptr noundef %5154, ptr noundef %5158, ptr noundef %5159, ptr noundef %5173, ptr noundef %45, ptr noundef %65)
  br label %5523

5174:                                             ; preds = %4825
  %5175 = load ptr, ptr %36, align 8, !tbaa !5
  %5176 = load i32, ptr %5175, align 4, !tbaa !9
  %5177 = load ptr, ptr %27, align 8, !tbaa !5
  %5178 = load i32, ptr %5177, align 4, !tbaa !9
  %5179 = shl i32 %5178, 1
  %5180 = sub nsw i32 %5176, %5179
  %5181 = load ptr, ptr %27, align 8, !tbaa !5
  %5182 = load i32, ptr %5181, align 4, !tbaa !9
  %5183 = load i32, ptr %86, align 4, !tbaa !9
  %5184 = mul nsw i32 %5182, %5183
  %5185 = sub nsw i32 %5180, %5184
  %5186 = load i32, ptr %86, align 4, !tbaa !9
  %5187 = sub nsw i32 %5185, %5186
  store i32 %5187, ptr %45, align 4, !tbaa !9
  %5188 = load ptr, ptr %33, align 8, !tbaa !5
  %5189 = load i32, ptr %44, align 4, !tbaa !9
  %5190 = sext i32 %5189 to i64
  %5191 = getelementptr inbounds float, ptr %5188, i64 %5190
  %5192 = load ptr, ptr %34, align 8, !tbaa !5
  %5193 = load ptr, ptr %30, align 8, !tbaa !5
  %5194 = getelementptr inbounds float, ptr %5193, i64 1
  %5195 = load ptr, ptr %31, align 8, !tbaa !5
  %5196 = load i32, ptr %42, align 4, !tbaa !9
  %5197 = sext i32 %5196 to i64
  %5198 = getelementptr inbounds float, ptr %5195, i64 %5197
  %5199 = load ptr, ptr %32, align 8, !tbaa !5
  %5200 = load ptr, ptr %35, align 8, !tbaa !5
  %5201 = load ptr, ptr %27, align 8, !tbaa !5
  %5202 = load i32, ptr %5201, align 4, !tbaa !9
  %5203 = shl i32 %5202, 1
  %5204 = load ptr, ptr %27, align 8, !tbaa !5
  %5205 = load i32, ptr %5204, align 4, !tbaa !9
  %5206 = load i32, ptr %86, align 4, !tbaa !9
  %5207 = mul nsw i32 %5205, %5206
  %5208 = add nsw i32 %5203, %5207
  %5209 = load i32, ptr %86, align 4, !tbaa !9
  %5210 = add nsw i32 %5208, %5209
  %5211 = add nsw i32 %5210, 1
  %5212 = sext i32 %5211 to i64
  %5213 = getelementptr inbounds float, ptr %5200, i64 %5212
  %5214 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.3, ptr noundef %86, ptr noundef %86, ptr noundef %5191, ptr noundef %5192, ptr noundef %5194, ptr noundef %86, ptr noundef %5198, ptr noundef %5199, ptr noundef %5213, ptr noundef %45, ptr noundef %5214)
  %5215 = load ptr, ptr %35, align 8, !tbaa !5
  %5216 = load ptr, ptr %27, align 8, !tbaa !5
  %5217 = load i32, ptr %5216, align 4, !tbaa !9
  %5218 = shl i32 %5217, 1
  %5219 = load ptr, ptr %27, align 8, !tbaa !5
  %5220 = load i32, ptr %5219, align 4, !tbaa !9
  %5221 = load i32, ptr %86, align 4, !tbaa !9
  %5222 = mul nsw i32 %5220, %5221
  %5223 = add nsw i32 %5218, %5222
  %5224 = load i32, ptr %86, align 4, !tbaa !9
  %5225 = add nsw i32 %5223, %5224
  %5226 = add nsw i32 %5225, 1
  %5227 = sext i32 %5226 to i64
  %5228 = getelementptr inbounds float, ptr %5215, i64 %5227
  %5229 = load float, ptr %5228, align 4, !tbaa !11
  store float %5229, ptr %87, align 4, !tbaa !11
  %5230 = load ptr, ptr %35, align 8, !tbaa !5
  %5231 = load ptr, ptr %27, align 8, !tbaa !5
  %5232 = load i32, ptr %5231, align 4, !tbaa !9
  %5233 = shl i32 %5232, 1
  %5234 = load ptr, ptr %27, align 8, !tbaa !5
  %5235 = load i32, ptr %5234, align 4, !tbaa !9
  %5236 = load i32, ptr %86, align 4, !tbaa !9
  %5237 = mul nsw i32 %5235, %5236
  %5238 = add nsw i32 %5233, %5237
  %5239 = load i32, ptr %86, align 4, !tbaa !9
  %5240 = add nsw i32 %5238, %5239
  %5241 = add nsw i32 %5240, 2
  %5242 = sext i32 %5241 to i64
  %5243 = getelementptr inbounds float, ptr %5230, i64 %5242
  %5244 = load float, ptr %5243, align 4, !tbaa !11
  %5245 = fcmp oge float %5244, 0.000000e+00
  br i1 %5245, label %5246, label %5265

5246:                                             ; preds = %5174
  %5247 = load ptr, ptr %35, align 8, !tbaa !5
  %5248 = load ptr, ptr %27, align 8, !tbaa !5
  %5249 = load i32, ptr %5248, align 4, !tbaa !9
  %5250 = shl i32 %5249, 1
  %5251 = load ptr, ptr %27, align 8, !tbaa !5
  %5252 = load i32, ptr %5251, align 4, !tbaa !9
  %5253 = load i32, ptr %86, align 4, !tbaa !9
  %5254 = mul nsw i32 %5252, %5253
  %5255 = add nsw i32 %5250, %5254
  %5256 = load i32, ptr %86, align 4, !tbaa !9
  %5257 = add nsw i32 %5255, %5256
  %5258 = add nsw i32 %5257, 2
  %5259 = sext i32 %5258 to i64
  %5260 = getelementptr inbounds float, ptr %5247, i64 %5259
  %5261 = load float, ptr %5260, align 4, !tbaa !11
  %5262 = fpext float %5261 to double
  %5263 = fadd double %5262, 5.000000e-01
  %5264 = call double @llvm.floor.f64(double %5263)
  br label %5285

5265:                                             ; preds = %5174
  %5266 = load ptr, ptr %35, align 8, !tbaa !5
  %5267 = load ptr, ptr %27, align 8, !tbaa !5
  %5268 = load i32, ptr %5267, align 4, !tbaa !9
  %5269 = shl i32 %5268, 1
  %5270 = load ptr, ptr %27, align 8, !tbaa !5
  %5271 = load i32, ptr %5270, align 4, !tbaa !9
  %5272 = load i32, ptr %86, align 4, !tbaa !9
  %5273 = mul nsw i32 %5271, %5272
  %5274 = add nsw i32 %5269, %5273
  %5275 = load i32, ptr %86, align 4, !tbaa !9
  %5276 = add nsw i32 %5274, %5275
  %5277 = add nsw i32 %5276, 2
  %5278 = sext i32 %5277 to i64
  %5279 = getelementptr inbounds float, ptr %5266, i64 %5278
  %5280 = load float, ptr %5279, align 4, !tbaa !11
  %5281 = fpext float %5280 to double
  %5282 = fsub double 5.000000e-01, %5281
  %5283 = call double @llvm.floor.f64(double %5282)
  %5284 = fneg double %5283
  br label %5285

5285:                                             ; preds = %5265, %5246
  %5286 = phi double [ %5264, %5246 ], [ %5284, %5265 ]
  %5287 = fptosi double %5286 to i32
  store i32 %5287, ptr %104, align 4, !tbaa !9
  %5288 = load i32, ptr %86, align 4, !tbaa !9
  %5289 = load ptr, ptr %27, align 8, !tbaa !5
  %5290 = load i32, ptr %5289, align 4, !tbaa !9
  %5291 = icmp slt i32 %5288, %5290
  br i1 %5291, label %5292, label %5337

5292:                                             ; preds = %5285
  %5293 = load ptr, ptr %27, align 8, !tbaa !5
  %5294 = load i32, ptr %5293, align 4, !tbaa !9
  %5295 = load i32, ptr %86, align 4, !tbaa !9
  %5296 = sub nsw i32 %5294, %5295
  store i32 %5296, ptr %45, align 4, !tbaa !9
  %5297 = load ptr, ptr %33, align 8, !tbaa !5
  %5298 = load i32, ptr %86, align 4, !tbaa !9
  %5299 = add nsw i32 %5298, 1
  %5300 = load i32, ptr %43, align 4, !tbaa !9
  %5301 = add nsw i32 %5299, %5300
  %5302 = sext i32 %5301 to i64
  %5303 = getelementptr inbounds float, ptr %5297, i64 %5302
  %5304 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %5303, ptr noundef %5304)
  %5305 = load ptr, ptr %27, align 8, !tbaa !5
  %5306 = load i32, ptr %5305, align 4, !tbaa !9
  %5307 = load i32, ptr %86, align 4, !tbaa !9
  %5308 = sub nsw i32 %5306, %5307
  store i32 %5308, ptr %45, align 4, !tbaa !9
  %5309 = load ptr, ptr %33, align 8, !tbaa !5
  %5310 = load i32, ptr %86, align 4, !tbaa !9
  %5311 = add nsw i32 %5310, 1
  %5312 = load i32, ptr %43, align 4, !tbaa !9
  %5313 = mul nsw i32 %5311, %5312
  %5314 = add nsw i32 %5313, 1
  %5315 = sext i32 %5314 to i64
  %5316 = getelementptr inbounds float, ptr %5309, i64 %5315
  %5317 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %5316, ptr noundef %5317)
  %5318 = load ptr, ptr %27, align 8, !tbaa !5
  %5319 = load i32, ptr %5318, align 4, !tbaa !9
  %5320 = load i32, ptr %86, align 4, !tbaa !9
  %5321 = sub nsw i32 %5319, %5320
  store i32 %5321, ptr %45, align 4, !tbaa !9
  %5322 = load ptr, ptr %27, align 8, !tbaa !5
  %5323 = load i32, ptr %5322, align 4, !tbaa !9
  %5324 = load i32, ptr %86, align 4, !tbaa !9
  %5325 = sub nsw i32 %5323, %5324
  store i32 %5325, ptr %46, align 4, !tbaa !9
  %5326 = load ptr, ptr %33, align 8, !tbaa !5
  %5327 = load i32, ptr %86, align 4, !tbaa !9
  %5328 = add nsw i32 %5327, 1
  %5329 = load i32, ptr %86, align 4, !tbaa !9
  %5330 = add nsw i32 %5329, 1
  %5331 = load i32, ptr %43, align 4, !tbaa !9
  %5332 = mul nsw i32 %5330, %5331
  %5333 = add nsw i32 %5328, %5332
  %5334 = sext i32 %5333 to i64
  %5335 = getelementptr inbounds float, ptr %5326, i64 %5334
  %5336 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %5335, ptr noundef %5336)
  br label %5337

5337:                                             ; preds = %5292, %5285
  %5338 = load ptr, ptr %36, align 8, !tbaa !5
  %5339 = load i32, ptr %5338, align 4, !tbaa !9
  %5340 = load ptr, ptr %27, align 8, !tbaa !5
  %5341 = load i32, ptr %5340, align 4, !tbaa !9
  %5342 = shl i32 %5341, 1
  %5343 = sub nsw i32 %5339, %5342
  %5344 = load ptr, ptr %27, align 8, !tbaa !5
  %5345 = load i32, ptr %5344, align 4, !tbaa !9
  %5346 = load i32, ptr %86, align 4, !tbaa !9
  %5347 = mul nsw i32 %5345, %5346
  %5348 = sub nsw i32 %5343, %5347
  %5349 = load i32, ptr %86, align 4, !tbaa !9
  %5350 = sub nsw i32 %5348, %5349
  store i32 %5350, ptr %45, align 4, !tbaa !9
  %5351 = load ptr, ptr %27, align 8, !tbaa !5
  %5352 = load ptr, ptr %27, align 8, !tbaa !5
  %5353 = load ptr, ptr %35, align 8, !tbaa !5
  %5354 = load ptr, ptr %27, align 8, !tbaa !5
  %5355 = load i32, ptr %5354, align 4, !tbaa !9
  %5356 = shl i32 %5355, 1
  %5357 = add nsw i32 %5356, 1
  %5358 = sext i32 %5357 to i64
  %5359 = getelementptr inbounds float, ptr %5353, i64 %5358
  %5360 = load ptr, ptr %27, align 8, !tbaa !5
  %5361 = load ptr, ptr %35, align 8, !tbaa !5
  %5362 = load ptr, ptr %27, align 8, !tbaa !5
  %5363 = load i32, ptr %5362, align 4, !tbaa !9
  %5364 = add nsw i32 %5363, 1
  %5365 = sext i32 %5364 to i64
  %5366 = getelementptr inbounds float, ptr %5361, i64 %5365
  %5367 = load ptr, ptr %33, align 8, !tbaa !5
  %5368 = load i32, ptr %44, align 4, !tbaa !9
  %5369 = sext i32 %5368 to i64
  %5370 = getelementptr inbounds float, ptr %5367, i64 %5369
  %5371 = load ptr, ptr %34, align 8, !tbaa !5
  %5372 = load ptr, ptr %35, align 8, !tbaa !5
  %5373 = load ptr, ptr %27, align 8, !tbaa !5
  %5374 = load i32, ptr %5373, align 4, !tbaa !9
  %5375 = shl i32 %5374, 1
  %5376 = load ptr, ptr %27, align 8, !tbaa !5
  %5377 = load i32, ptr %5376, align 4, !tbaa !9
  %5378 = load i32, ptr %86, align 4, !tbaa !9
  %5379 = mul nsw i32 %5377, %5378
  %5380 = add nsw i32 %5375, %5379
  %5381 = load i32, ptr %86, align 4, !tbaa !9
  %5382 = add nsw i32 %5380, %5381
  %5383 = add nsw i32 %5382, 1
  %5384 = sext i32 %5383 to i64
  %5385 = getelementptr inbounds float, ptr %5372, i64 %5384
  call void @sormqr_(ptr noundef @.str.17, ptr noundef @.str.9, ptr noundef %5351, ptr noundef %5352, ptr noundef %86, ptr noundef %5359, ptr noundef %5360, ptr noundef %5366, ptr noundef %5370, ptr noundef %5371, ptr noundef %5385, ptr noundef %45, ptr noundef %65)
  %5386 = load ptr, ptr %36, align 8, !tbaa !5
  %5387 = load i32, ptr %5386, align 4, !tbaa !9
  %5388 = load ptr, ptr %27, align 8, !tbaa !5
  %5389 = load i32, ptr %5388, align 4, !tbaa !9
  %5390 = shl i32 %5389, 1
  %5391 = sub nsw i32 %5387, %5390
  %5392 = load ptr, ptr %27, align 8, !tbaa !5
  %5393 = load i32, ptr %5392, align 4, !tbaa !9
  %5394 = load i32, ptr %86, align 4, !tbaa !9
  %5395 = mul nsw i32 %5393, %5394
  %5396 = sub nsw i32 %5391, %5395
  %5397 = load i32, ptr %86, align 4, !tbaa !9
  %5398 = sub nsw i32 %5396, %5397
  store i32 %5398, ptr %45, align 4, !tbaa !9
  %5399 = load ptr, ptr %35, align 8, !tbaa !5
  %5400 = load ptr, ptr %27, align 8, !tbaa !5
  %5401 = load i32, ptr %5400, align 4, !tbaa !9
  %5402 = shl i32 %5401, 1
  %5403 = add nsw i32 %5402, 1
  %5404 = sext i32 %5403 to i64
  %5405 = getelementptr inbounds float, ptr %5399, i64 %5404
  %5406 = load ptr, ptr %27, align 8, !tbaa !5
  %5407 = load ptr, ptr %35, align 8, !tbaa !5
  %5408 = load ptr, ptr %27, align 8, !tbaa !5
  %5409 = load i32, ptr %5408, align 4, !tbaa !9
  %5410 = shl i32 %5409, 1
  %5411 = load ptr, ptr %27, align 8, !tbaa !5
  %5412 = load i32, ptr %5411, align 4, !tbaa !9
  %5413 = load i32, ptr %86, align 4, !tbaa !9
  %5414 = mul nsw i32 %5412, %5413
  %5415 = add nsw i32 %5410, %5414
  %5416 = add nsw i32 %5415, 1
  %5417 = sext i32 %5416 to i64
  %5418 = getelementptr inbounds float, ptr %5407, i64 %5417
  %5419 = load ptr, ptr %31, align 8, !tbaa !5
  %5420 = load i32, ptr %42, align 4, !tbaa !9
  %5421 = sext i32 %5420 to i64
  %5422 = getelementptr inbounds float, ptr %5419, i64 %5421
  %5423 = load ptr, ptr %32, align 8, !tbaa !5
  %5424 = load ptr, ptr %35, align 8, !tbaa !5
  %5425 = load ptr, ptr %27, align 8, !tbaa !5
  %5426 = load i32, ptr %5425, align 4, !tbaa !9
  %5427 = shl i32 %5426, 1
  %5428 = load ptr, ptr %27, align 8, !tbaa !5
  %5429 = load i32, ptr %5428, align 4, !tbaa !9
  %5430 = load i32, ptr %86, align 4, !tbaa !9
  %5431 = mul nsw i32 %5429, %5430
  %5432 = add nsw i32 %5427, %5431
  %5433 = load i32, ptr %86, align 4, !tbaa !9
  %5434 = add nsw i32 %5432, %5433
  %5435 = add nsw i32 %5434, 1
  %5436 = sext i32 %5435 to i64
  %5437 = getelementptr inbounds float, ptr %5424, i64 %5436
  call void @sormlq_(ptr noundef @.str.17, ptr noundef @.str.8, ptr noundef %86, ptr noundef %86, ptr noundef %86, ptr noundef %5405, ptr noundef %5406, ptr noundef %5418, ptr noundef %5422, ptr noundef %5423, ptr noundef %5437, ptr noundef %45, ptr noundef %65)
  %5438 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %5438, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %5439

5439:                                             ; preds = %5519, %5337
  %5440 = load i32, ptr %68, align 4, !tbaa !9
  %5441 = load i32, ptr %45, align 4, !tbaa !9
  %5442 = icmp sle i32 %5440, %5441
  br i1 %5442, label %5443, label %5522

5443:                                             ; preds = %5439
  %5444 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %5444, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %5445

5445:                                             ; preds = %5481, %5443
  %5446 = load i32, ptr %67, align 4, !tbaa !9
  %5447 = load i32, ptr %46, align 4, !tbaa !9
  %5448 = icmp sle i32 %5446, %5447
  br i1 %5448, label %5449, label %5484

5449:                                             ; preds = %5445
  %5450 = load ptr, ptr %31, align 8, !tbaa !5
  %5451 = load i32, ptr %67, align 4, !tbaa !9
  %5452 = load i32, ptr %68, align 4, !tbaa !9
  %5453 = load i32, ptr %41, align 4, !tbaa !9
  %5454 = mul nsw i32 %5452, %5453
  %5455 = add nsw i32 %5451, %5454
  %5456 = sext i32 %5455 to i64
  %5457 = getelementptr inbounds float, ptr %5450, i64 %5456
  %5458 = load float, ptr %5457, align 4, !tbaa !11
  %5459 = load ptr, ptr %35, align 8, !tbaa !5
  %5460 = load ptr, ptr %27, align 8, !tbaa !5
  %5461 = load i32, ptr %5460, align 4, !tbaa !9
  %5462 = shl i32 %5461, 1
  %5463 = load ptr, ptr %27, align 8, !tbaa !5
  %5464 = load i32, ptr %5463, align 4, !tbaa !9
  %5465 = load i32, ptr %86, align 4, !tbaa !9
  %5466 = mul nsw i32 %5464, %5465
  %5467 = add nsw i32 %5462, %5466
  %5468 = load i32, ptr %86, align 4, !tbaa !9
  %5469 = add nsw i32 %5467, %5468
  %5470 = load ptr, ptr %37, align 8, !tbaa !5
  %5471 = load ptr, ptr %27, align 8, !tbaa !5
  %5472 = load i32, ptr %5471, align 4, !tbaa !9
  %5473 = load i32, ptr %67, align 4, !tbaa !9
  %5474 = add nsw i32 %5472, %5473
  %5475 = sext i32 %5474 to i64
  %5476 = getelementptr inbounds i32, ptr %5470, i64 %5475
  %5477 = load i32, ptr %5476, align 4, !tbaa !9
  %5478 = add nsw i32 %5469, %5477
  %5479 = sext i32 %5478 to i64
  %5480 = getelementptr inbounds float, ptr %5459, i64 %5479
  store float %5458, ptr %5480, align 4, !tbaa !11
  br label %5481

5481:                                             ; preds = %5449
  %5482 = load i32, ptr %67, align 4, !tbaa !9
  %5483 = add nsw i32 %5482, 1
  store i32 %5483, ptr %67, align 4, !tbaa !9
  br label %5445, !llvm.loop !65

5484:                                             ; preds = %5445
  %5485 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %5485, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %5486

5486:                                             ; preds = %5515, %5484
  %5487 = load i32, ptr %67, align 4, !tbaa !9
  %5488 = load i32, ptr %46, align 4, !tbaa !9
  %5489 = icmp sle i32 %5487, %5488
  br i1 %5489, label %5490, label %5518

5490:                                             ; preds = %5486
  %5491 = load ptr, ptr %35, align 8, !tbaa !5
  %5492 = load ptr, ptr %27, align 8, !tbaa !5
  %5493 = load i32, ptr %5492, align 4, !tbaa !9
  %5494 = shl i32 %5493, 1
  %5495 = load ptr, ptr %27, align 8, !tbaa !5
  %5496 = load i32, ptr %5495, align 4, !tbaa !9
  %5497 = load i32, ptr %86, align 4, !tbaa !9
  %5498 = mul nsw i32 %5496, %5497
  %5499 = add nsw i32 %5494, %5498
  %5500 = load i32, ptr %86, align 4, !tbaa !9
  %5501 = add nsw i32 %5499, %5500
  %5502 = load i32, ptr %67, align 4, !tbaa !9
  %5503 = add nsw i32 %5501, %5502
  %5504 = sext i32 %5503 to i64
  %5505 = getelementptr inbounds float, ptr %5491, i64 %5504
  %5506 = load float, ptr %5505, align 4, !tbaa !11
  %5507 = load ptr, ptr %31, align 8, !tbaa !5
  %5508 = load i32, ptr %67, align 4, !tbaa !9
  %5509 = load i32, ptr %68, align 4, !tbaa !9
  %5510 = load i32, ptr %41, align 4, !tbaa !9
  %5511 = mul nsw i32 %5509, %5510
  %5512 = add nsw i32 %5508, %5511
  %5513 = sext i32 %5512 to i64
  %5514 = getelementptr inbounds float, ptr %5507, i64 %5513
  store float %5506, ptr %5514, align 4, !tbaa !11
  br label %5515

5515:                                             ; preds = %5490
  %5516 = load i32, ptr %67, align 4, !tbaa !9
  %5517 = add nsw i32 %5516, 1
  store i32 %5517, ptr %67, align 4, !tbaa !9
  br label %5486, !llvm.loop !66

5518:                                             ; preds = %5486
  br label %5519

5519:                                             ; preds = %5518
  %5520 = load i32, ptr %68, align 4, !tbaa !9
  %5521 = add nsw i32 %5520, 1
  store i32 %5521, ptr %68, align 4, !tbaa !9
  br label %5439, !llvm.loop !67

5522:                                             ; preds = %5439
  br label %5523

5523:                                             ; preds = %5522, %5125
  br label %5524

5524:                                             ; preds = %5523, %4824
  %5525 = load ptr, ptr %27, align 8, !tbaa !5
  %5526 = load i32, ptr %5525, align 4, !tbaa !9
  %5527 = sitofp i32 %5526 to float
  %5528 = fpext float %5527 to double
  %5529 = call double @sqrt(double noundef %5528) #5
  %5530 = load float, ptr %74, align 4, !tbaa !11
  %5531 = fpext float %5530 to double
  %5532 = fmul double %5529, %5531
  %5533 = fptrunc double %5532 to float
  store float %5533, ptr %66, align 4, !tbaa !11
  %5534 = load ptr, ptr %27, align 8, !tbaa !5
  %5535 = load i32, ptr %5534, align 4, !tbaa !9
  store i32 %5535, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %5536

5536:                                             ; preds = %5644, %5524
  %5537 = load i32, ptr %68, align 4, !tbaa !9
  %5538 = load i32, ptr %45, align 4, !tbaa !9
  %5539 = icmp sle i32 %5537, %5538
  br i1 %5539, label %5540, label %5647

5540:                                             ; preds = %5536
  %5541 = load ptr, ptr %27, align 8, !tbaa !5
  %5542 = load i32, ptr %5541, align 4, !tbaa !9
  store i32 %5542, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %5543

5543:                                             ; preds = %5576, %5540
  %5544 = load i32, ptr %67, align 4, !tbaa !9
  %5545 = load i32, ptr %46, align 4, !tbaa !9
  %5546 = icmp sle i32 %5544, %5545
  br i1 %5546, label %5547, label %5579

5547:                                             ; preds = %5543
  %5548 = load ptr, ptr %33, align 8, !tbaa !5
  %5549 = load i32, ptr %67, align 4, !tbaa !9
  %5550 = load i32, ptr %68, align 4, !tbaa !9
  %5551 = load i32, ptr %43, align 4, !tbaa !9
  %5552 = mul nsw i32 %5550, %5551
  %5553 = add nsw i32 %5549, %5552
  %5554 = sext i32 %5553 to i64
  %5555 = getelementptr inbounds float, ptr %5548, i64 %5554
  %5556 = load float, ptr %5555, align 4, !tbaa !11
  %5557 = load ptr, ptr %35, align 8, !tbaa !5
  %5558 = load ptr, ptr %27, align 8, !tbaa !5
  %5559 = load i32, ptr %5558, align 4, !tbaa !9
  %5560 = shl i32 %5559, 1
  %5561 = load ptr, ptr %27, align 8, !tbaa !5
  %5562 = load i32, ptr %5561, align 4, !tbaa !9
  %5563 = load i32, ptr %86, align 4, !tbaa !9
  %5564 = mul nsw i32 %5562, %5563
  %5565 = add nsw i32 %5560, %5564
  %5566 = load i32, ptr %86, align 4, !tbaa !9
  %5567 = add nsw i32 %5565, %5566
  %5568 = load ptr, ptr %37, align 8, !tbaa !5
  %5569 = load i32, ptr %67, align 4, !tbaa !9
  %5570 = sext i32 %5569 to i64
  %5571 = getelementptr inbounds i32, ptr %5568, i64 %5570
  %5572 = load i32, ptr %5571, align 4, !tbaa !9
  %5573 = add nsw i32 %5567, %5572
  %5574 = sext i32 %5573 to i64
  %5575 = getelementptr inbounds float, ptr %5557, i64 %5574
  store float %5556, ptr %5575, align 4, !tbaa !11
  br label %5576

5576:                                             ; preds = %5547
  %5577 = load i32, ptr %67, align 4, !tbaa !9
  %5578 = add nsw i32 %5577, 1
  store i32 %5578, ptr %67, align 4, !tbaa !9
  br label %5543, !llvm.loop !68

5579:                                             ; preds = %5543
  %5580 = load ptr, ptr %27, align 8, !tbaa !5
  %5581 = load i32, ptr %5580, align 4, !tbaa !9
  store i32 %5581, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %5582

5582:                                             ; preds = %5611, %5579
  %5583 = load i32, ptr %67, align 4, !tbaa !9
  %5584 = load i32, ptr %46, align 4, !tbaa !9
  %5585 = icmp sle i32 %5583, %5584
  br i1 %5585, label %5586, label %5614

5586:                                             ; preds = %5582
  %5587 = load ptr, ptr %35, align 8, !tbaa !5
  %5588 = load ptr, ptr %27, align 8, !tbaa !5
  %5589 = load i32, ptr %5588, align 4, !tbaa !9
  %5590 = shl i32 %5589, 1
  %5591 = load ptr, ptr %27, align 8, !tbaa !5
  %5592 = load i32, ptr %5591, align 4, !tbaa !9
  %5593 = load i32, ptr %86, align 4, !tbaa !9
  %5594 = mul nsw i32 %5592, %5593
  %5595 = add nsw i32 %5590, %5594
  %5596 = load i32, ptr %86, align 4, !tbaa !9
  %5597 = add nsw i32 %5595, %5596
  %5598 = load i32, ptr %67, align 4, !tbaa !9
  %5599 = add nsw i32 %5597, %5598
  %5600 = sext i32 %5599 to i64
  %5601 = getelementptr inbounds float, ptr %5587, i64 %5600
  %5602 = load float, ptr %5601, align 4, !tbaa !11
  %5603 = load ptr, ptr %33, align 8, !tbaa !5
  %5604 = load i32, ptr %67, align 4, !tbaa !9
  %5605 = load i32, ptr %68, align 4, !tbaa !9
  %5606 = load i32, ptr %43, align 4, !tbaa !9
  %5607 = mul nsw i32 %5605, %5606
  %5608 = add nsw i32 %5604, %5607
  %5609 = sext i32 %5608 to i64
  %5610 = getelementptr inbounds float, ptr %5603, i64 %5609
  store float %5602, ptr %5610, align 4, !tbaa !11
  br label %5611

5611:                                             ; preds = %5586
  %5612 = load i32, ptr %67, align 4, !tbaa !9
  %5613 = add nsw i32 %5612, 1
  store i32 %5613, ptr %67, align 4, !tbaa !9
  br label %5582, !llvm.loop !69

5614:                                             ; preds = %5582
  %5615 = load ptr, ptr %27, align 8, !tbaa !5
  %5616 = load ptr, ptr %33, align 8, !tbaa !5
  %5617 = load i32, ptr %68, align 4, !tbaa !9
  %5618 = load i32, ptr %43, align 4, !tbaa !9
  %5619 = mul nsw i32 %5617, %5618
  %5620 = add nsw i32 %5619, 1
  %5621 = sext i32 %5620 to i64
  %5622 = getelementptr inbounds float, ptr %5616, i64 %5621
  %5623 = call float @snrm2_(ptr noundef %5615, ptr noundef %5622, ptr noundef @c__1)
  %5624 = fdiv float 1.000000e+00, %5623
  store float %5624, ptr %101, align 4, !tbaa !11
  %5625 = load float, ptr %101, align 4, !tbaa !11
  %5626 = load float, ptr %66, align 4, !tbaa !11
  %5627 = fsub float 1.000000e+00, %5626
  %5628 = fcmp olt float %5625, %5627
  br i1 %5628, label %5634, label %5629

5629:                                             ; preds = %5614
  %5630 = load float, ptr %101, align 4, !tbaa !11
  %5631 = load float, ptr %66, align 4, !tbaa !11
  %5632 = fadd float %5631, 1.000000e+00
  %5633 = fcmp ogt float %5630, %5632
  br i1 %5633, label %5634, label %5643

5634:                                             ; preds = %5629, %5614
  %5635 = load ptr, ptr %27, align 8, !tbaa !5
  %5636 = load ptr, ptr %33, align 8, !tbaa !5
  %5637 = load i32, ptr %68, align 4, !tbaa !9
  %5638 = load i32, ptr %43, align 4, !tbaa !9
  %5639 = mul nsw i32 %5637, %5638
  %5640 = add nsw i32 %5639, 1
  %5641 = sext i32 %5640 to i64
  %5642 = getelementptr inbounds float, ptr %5636, i64 %5641
  call void @sscal_(ptr noundef %5635, ptr noundef %101, ptr noundef %5642, ptr noundef @c__1)
  br label %5643

5643:                                             ; preds = %5634, %5629
  br label %5644

5644:                                             ; preds = %5643
  %5645 = load i32, ptr %68, align 4, !tbaa !9
  %5646 = add nsw i32 %5645, 1
  store i32 %5646, ptr %68, align 4, !tbaa !9
  br label %5536, !llvm.loop !70

5647:                                             ; preds = %5536
  %5648 = load i32, ptr %86, align 4, !tbaa !9
  %5649 = load ptr, ptr %26, align 8, !tbaa !5
  %5650 = load i32, ptr %5649, align 4, !tbaa !9
  %5651 = icmp slt i32 %5648, %5650
  br i1 %5651, label %5652, label %5700

5652:                                             ; preds = %5647
  %5653 = load ptr, ptr %26, align 8, !tbaa !5
  %5654 = load i32, ptr %5653, align 4, !tbaa !9
  %5655 = load i32, ptr %86, align 4, !tbaa !9
  %5656 = sub nsw i32 %5654, %5655
  store i32 %5656, ptr %45, align 4, !tbaa !9
  %5657 = load ptr, ptr %31, align 8, !tbaa !5
  %5658 = load i32, ptr %86, align 4, !tbaa !9
  %5659 = add nsw i32 %5658, 1
  %5660 = load i32, ptr %41, align 4, !tbaa !9
  %5661 = add nsw i32 %5659, %5660
  %5662 = sext i32 %5661 to i64
  %5663 = getelementptr inbounds float, ptr %5657, i64 %5662
  %5664 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %5663, ptr noundef %5664)
  %5665 = load i32, ptr %86, align 4, !tbaa !9
  %5666 = load i32, ptr %76, align 4, !tbaa !9
  %5667 = icmp slt i32 %5665, %5666
  br i1 %5667, label %5668, label %5699

5668:                                             ; preds = %5652
  %5669 = load i32, ptr %76, align 4, !tbaa !9
  %5670 = load i32, ptr %86, align 4, !tbaa !9
  %5671 = sub nsw i32 %5669, %5670
  store i32 %5671, ptr %45, align 4, !tbaa !9
  %5672 = load ptr, ptr %31, align 8, !tbaa !5
  %5673 = load i32, ptr %86, align 4, !tbaa !9
  %5674 = add nsw i32 %5673, 1
  %5675 = load i32, ptr %41, align 4, !tbaa !9
  %5676 = mul nsw i32 %5674, %5675
  %5677 = add nsw i32 %5676, 1
  %5678 = sext i32 %5677 to i64
  %5679 = getelementptr inbounds float, ptr %5672, i64 %5678
  %5680 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %5679, ptr noundef %5680)
  %5681 = load ptr, ptr %26, align 8, !tbaa !5
  %5682 = load i32, ptr %5681, align 4, !tbaa !9
  %5683 = load i32, ptr %86, align 4, !tbaa !9
  %5684 = sub nsw i32 %5682, %5683
  store i32 %5684, ptr %45, align 4, !tbaa !9
  %5685 = load i32, ptr %76, align 4, !tbaa !9
  %5686 = load i32, ptr %86, align 4, !tbaa !9
  %5687 = sub nsw i32 %5685, %5686
  store i32 %5687, ptr %46, align 4, !tbaa !9
  %5688 = load ptr, ptr %31, align 8, !tbaa !5
  %5689 = load i32, ptr %86, align 4, !tbaa !9
  %5690 = add nsw i32 %5689, 1
  %5691 = load i32, ptr %86, align 4, !tbaa !9
  %5692 = add nsw i32 %5691, 1
  %5693 = load i32, ptr %41, align 4, !tbaa !9
  %5694 = mul nsw i32 %5692, %5693
  %5695 = add nsw i32 %5690, %5694
  %5696 = sext i32 %5695 to i64
  %5697 = getelementptr inbounds float, ptr %5688, i64 %5696
  %5698 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %5697, ptr noundef %5698)
  br label %5699

5699:                                             ; preds = %5668, %5652
  br label %5700

5700:                                             ; preds = %5699, %5647
  %5701 = load ptr, ptr %36, align 8, !tbaa !5
  %5702 = load i32, ptr %5701, align 4, !tbaa !9
  %5703 = load ptr, ptr %27, align 8, !tbaa !5
  %5704 = load i32, ptr %5703, align 4, !tbaa !9
  %5705 = sub nsw i32 %5702, %5704
  store i32 %5705, ptr %45, align 4, !tbaa !9
  %5706 = load ptr, ptr %26, align 8, !tbaa !5
  %5707 = load ptr, ptr %27, align 8, !tbaa !5
  %5708 = load ptr, ptr %28, align 8, !tbaa !5
  %5709 = load i32, ptr %40, align 4, !tbaa !9
  %5710 = sext i32 %5709 to i64
  %5711 = getelementptr inbounds float, ptr %5708, i64 %5710
  %5712 = load ptr, ptr %29, align 8, !tbaa !5
  %5713 = load ptr, ptr %35, align 8, !tbaa !5
  %5714 = getelementptr inbounds float, ptr %5713, i64 1
  %5715 = load ptr, ptr %31, align 8, !tbaa !5
  %5716 = load i32, ptr %42, align 4, !tbaa !9
  %5717 = sext i32 %5716 to i64
  %5718 = getelementptr inbounds float, ptr %5715, i64 %5717
  %5719 = load ptr, ptr %32, align 8, !tbaa !5
  %5720 = load ptr, ptr %35, align 8, !tbaa !5
  %5721 = load ptr, ptr %27, align 8, !tbaa !5
  %5722 = load i32, ptr %5721, align 4, !tbaa !9
  %5723 = add nsw i32 %5722, 1
  %5724 = sext i32 %5723 to i64
  %5725 = getelementptr inbounds float, ptr %5720, i64 %5724
  call void @sormqr_(ptr noundef @.str.22, ptr noundef @.str.26, ptr noundef %5706, ptr noundef %76, ptr noundef %5707, ptr noundef %5711, ptr noundef %5712, ptr noundef %5714, ptr noundef %5718, ptr noundef %5719, ptr noundef %5725, ptr noundef %45, ptr noundef %65)
  %5726 = load ptr, ptr %26, align 8, !tbaa !5
  %5727 = load i32, ptr %5726, align 4, !tbaa !9
  %5728 = sitofp i32 %5727 to float
  %5729 = fpext float %5728 to double
  %5730 = call double @sqrt(double noundef %5729) #5
  %5731 = load float, ptr %74, align 4, !tbaa !11
  %5732 = fpext float %5731 to double
  %5733 = fmul double %5730, %5732
  %5734 = fptrunc double %5733 to float
  store float %5734, ptr %66, align 4, !tbaa !11
  %5735 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %5735, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %5736

5736:                                             ; preds = %5770, %5700
  %5737 = load i32, ptr %67, align 4, !tbaa !9
  %5738 = load i32, ptr %45, align 4, !tbaa !9
  %5739 = icmp sle i32 %5737, %5738
  br i1 %5739, label %5740, label %5773

5740:                                             ; preds = %5736
  %5741 = load ptr, ptr %26, align 8, !tbaa !5
  %5742 = load ptr, ptr %31, align 8, !tbaa !5
  %5743 = load i32, ptr %67, align 4, !tbaa !9
  %5744 = load i32, ptr %41, align 4, !tbaa !9
  %5745 = mul nsw i32 %5743, %5744
  %5746 = add nsw i32 %5745, 1
  %5747 = sext i32 %5746 to i64
  %5748 = getelementptr inbounds float, ptr %5742, i64 %5747
  %5749 = call float @snrm2_(ptr noundef %5741, ptr noundef %5748, ptr noundef @c__1)
  %5750 = fdiv float 1.000000e+00, %5749
  store float %5750, ptr %101, align 4, !tbaa !11
  %5751 = load float, ptr %101, align 4, !tbaa !11
  %5752 = load float, ptr %66, align 4, !tbaa !11
  %5753 = fsub float 1.000000e+00, %5752
  %5754 = fcmp olt float %5751, %5753
  br i1 %5754, label %5760, label %5755

5755:                                             ; preds = %5740
  %5756 = load float, ptr %101, align 4, !tbaa !11
  %5757 = load float, ptr %66, align 4, !tbaa !11
  %5758 = fadd float %5757, 1.000000e+00
  %5759 = fcmp ogt float %5756, %5758
  br i1 %5759, label %5760, label %5769

5760:                                             ; preds = %5755, %5740
  %5761 = load ptr, ptr %26, align 8, !tbaa !5
  %5762 = load ptr, ptr %31, align 8, !tbaa !5
  %5763 = load i32, ptr %67, align 4, !tbaa !9
  %5764 = load i32, ptr %41, align 4, !tbaa !9
  %5765 = mul nsw i32 %5763, %5764
  %5766 = add nsw i32 %5765, 1
  %5767 = sext i32 %5766 to i64
  %5768 = getelementptr inbounds float, ptr %5762, i64 %5767
  call void @sscal_(ptr noundef %5761, ptr noundef %101, ptr noundef %5768, ptr noundef @c__1)
  br label %5769

5769:                                             ; preds = %5760, %5755
  br label %5770

5770:                                             ; preds = %5769
  %5771 = load i32, ptr %67, align 4, !tbaa !9
  %5772 = add nsw i32 %5771, 1
  store i32 %5772, ptr %67, align 4, !tbaa !9
  br label %5736, !llvm.loop !71

5773:                                             ; preds = %5736
  %5774 = load i32, ptr %98, align 4, !tbaa !9
  %5775 = icmp ne i32 %5774, 0
  br i1 %5775, label %5776, label %5793

5776:                                             ; preds = %5773
  %5777 = load ptr, ptr %26, align 8, !tbaa !5
  %5778 = load i32, ptr %5777, align 4, !tbaa !9
  %5779 = sub nsw i32 %5778, 1
  store i32 %5779, ptr %45, align 4, !tbaa !9
  %5780 = load ptr, ptr %31, align 8, !tbaa !5
  %5781 = load i32, ptr %42, align 4, !tbaa !9
  %5782 = sext i32 %5781 to i64
  %5783 = getelementptr inbounds float, ptr %5780, i64 %5782
  %5784 = load ptr, ptr %32, align 8, !tbaa !5
  %5785 = load ptr, ptr %37, align 8, !tbaa !5
  %5786 = load ptr, ptr %27, align 8, !tbaa !5
  %5787 = load i32, ptr %5786, align 4, !tbaa !9
  %5788 = shl i32 %5787, 1
  %5789 = add nsw i32 %5788, 1
  %5790 = sext i32 %5789 to i64
  %5791 = getelementptr inbounds i32, ptr %5785, i64 %5790
  %5792 = call i32 @slaswp_(ptr noundef %76, ptr noundef %5783, ptr noundef %5784, ptr noundef @c__1, ptr noundef %45, ptr noundef %5791, ptr noundef @c_n1)
  br label %5793

5793:                                             ; preds = %5776, %5773
  br label %6327

5794:                                             ; preds = %3435
  %5795 = load ptr, ptr %27, align 8, !tbaa !5
  %5796 = load ptr, ptr %27, align 8, !tbaa !5
  %5797 = load ptr, ptr %28, align 8, !tbaa !5
  %5798 = load i32, ptr %40, align 4, !tbaa !9
  %5799 = sext i32 %5798 to i64
  %5800 = getelementptr inbounds float, ptr %5797, i64 %5799
  %5801 = load ptr, ptr %29, align 8, !tbaa !5
  %5802 = load ptr, ptr %35, align 8, !tbaa !5
  %5803 = load ptr, ptr %27, align 8, !tbaa !5
  %5804 = load i32, ptr %5803, align 4, !tbaa !9
  %5805 = add nsw i32 %5804, 1
  %5806 = sext i32 %5805 to i64
  %5807 = getelementptr inbounds float, ptr %5802, i64 %5806
  %5808 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.20, ptr noundef %5795, ptr noundef %5796, ptr noundef %5800, ptr noundef %5801, ptr noundef %5807, ptr noundef %5808)
  %5809 = load i32, ptr %85, align 4, !tbaa !9
  %5810 = icmp ne i32 %5809, 0
  br i1 %5810, label %5811, label %5906

5811:                                             ; preds = %5794
  %5812 = load float, ptr %70, align 4, !tbaa !11
  %5813 = fpext float %5812 to double
  %5814 = call double @sqrt(double noundef %5813) #5
  %5815 = fptrunc double %5814 to float
  store float %5815, ptr %101, align 4, !tbaa !11
  %5816 = load ptr, ptr %27, align 8, !tbaa !5
  %5817 = load i32, ptr %5816, align 4, !tbaa !9
  store i32 %5817, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %67, align 4, !tbaa !9
  br label %5818

5818:                                             ; preds = %5902, %5811
  %5819 = load i32, ptr %67, align 4, !tbaa !9
  %5820 = load i32, ptr %45, align 4, !tbaa !9
  %5821 = icmp sle i32 %5819, %5820
  br i1 %5821, label %5822, label %5905

5822:                                             ; preds = %5818
  %5823 = load float, ptr %101, align 4, !tbaa !11
  %5824 = load ptr, ptr %35, align 8, !tbaa !5
  %5825 = load ptr, ptr %27, align 8, !tbaa !5
  %5826 = load i32, ptr %5825, align 4, !tbaa !9
  %5827 = load i32, ptr %67, align 4, !tbaa !9
  %5828 = sub nsw i32 %5827, 1
  %5829 = load ptr, ptr %27, align 8, !tbaa !5
  %5830 = load i32, ptr %5829, align 4, !tbaa !9
  %5831 = mul nsw i32 %5828, %5830
  %5832 = add nsw i32 %5826, %5831
  %5833 = load i32, ptr %67, align 4, !tbaa !9
  %5834 = add nsw i32 %5832, %5833
  %5835 = sext i32 %5834 to i64
  %5836 = getelementptr inbounds float, ptr %5824, i64 %5835
  %5837 = load float, ptr %5836, align 4, !tbaa !11
  %5838 = fmul float %5823, %5837
  store float %5838, ptr %66, align 4, !tbaa !11
  %5839 = load i32, ptr %67, align 4, !tbaa !9
  %5840 = sub nsw i32 %5839, 1
  store i32 %5840, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %5841

5841:                                             ; preds = %5898, %5822
  %5842 = load i32, ptr %68, align 4, !tbaa !9
  %5843 = load i32, ptr %46, align 4, !tbaa !9
  %5844 = icmp sle i32 %5842, %5843
  br i1 %5844, label %5845, label %5901

5845:                                             ; preds = %5841
  %5846 = load ptr, ptr %35, align 8, !tbaa !5
  %5847 = load ptr, ptr %27, align 8, !tbaa !5
  %5848 = load i32, ptr %5847, align 4, !tbaa !9
  %5849 = load i32, ptr %67, align 4, !tbaa !9
  %5850 = sub nsw i32 %5849, 1
  %5851 = load ptr, ptr %27, align 8, !tbaa !5
  %5852 = load i32, ptr %5851, align 4, !tbaa !9
  %5853 = mul nsw i32 %5850, %5852
  %5854 = add nsw i32 %5848, %5853
  %5855 = load i32, ptr %68, align 4, !tbaa !9
  %5856 = add nsw i32 %5854, %5855
  %5857 = sext i32 %5856 to i64
  %5858 = getelementptr inbounds float, ptr %5846, i64 %5857
  %5859 = load float, ptr %5858, align 4, !tbaa !11
  %5860 = fcmp oge float %5859, 0.000000e+00
  br i1 %5860, label %5861, label %5871

5861:                                             ; preds = %5845
  %5862 = load float, ptr %66, align 4, !tbaa !11
  %5863 = fcmp oge float %5862, 0.000000e+00
  br i1 %5863, label %5864, label %5866

5864:                                             ; preds = %5861
  %5865 = load float, ptr %66, align 4, !tbaa !11
  br label %5869

5866:                                             ; preds = %5861
  %5867 = load float, ptr %66, align 4, !tbaa !11
  %5868 = fneg float %5867
  br label %5869

5869:                                             ; preds = %5866, %5864
  %5870 = phi float [ %5865, %5864 ], [ %5868, %5866 ]
  br label %5882

5871:                                             ; preds = %5845
  %5872 = load float, ptr %66, align 4, !tbaa !11
  %5873 = fcmp oge float %5872, 0.000000e+00
  br i1 %5873, label %5874, label %5876

5874:                                             ; preds = %5871
  %5875 = load float, ptr %66, align 4, !tbaa !11
  br label %5879

5876:                                             ; preds = %5871
  %5877 = load float, ptr %66, align 4, !tbaa !11
  %5878 = fneg float %5877
  br label %5879

5879:                                             ; preds = %5876, %5874
  %5880 = phi float [ %5875, %5874 ], [ %5878, %5876 ]
  %5881 = fneg float %5880
  br label %5882

5882:                                             ; preds = %5879, %5869
  %5883 = phi float [ %5870, %5869 ], [ %5881, %5879 ]
  %5884 = fneg float %5883
  %5885 = load ptr, ptr %35, align 8, !tbaa !5
  %5886 = load ptr, ptr %27, align 8, !tbaa !5
  %5887 = load i32, ptr %5886, align 4, !tbaa !9
  %5888 = load i32, ptr %68, align 4, !tbaa !9
  %5889 = sub nsw i32 %5888, 1
  %5890 = load ptr, ptr %27, align 8, !tbaa !5
  %5891 = load i32, ptr %5890, align 4, !tbaa !9
  %5892 = mul nsw i32 %5889, %5891
  %5893 = add nsw i32 %5887, %5892
  %5894 = load i32, ptr %67, align 4, !tbaa !9
  %5895 = add nsw i32 %5893, %5894
  %5896 = sext i32 %5895 to i64
  %5897 = getelementptr inbounds float, ptr %5885, i64 %5896
  store float %5884, ptr %5897, align 4, !tbaa !11
  br label %5898

5898:                                             ; preds = %5882
  %5899 = load i32, ptr %68, align 4, !tbaa !9
  %5900 = add nsw i32 %5899, 1
  store i32 %5900, ptr %68, align 4, !tbaa !9
  br label %5841, !llvm.loop !72

5901:                                             ; preds = %5841
  br label %5902

5902:                                             ; preds = %5901
  %5903 = load i32, ptr %67, align 4, !tbaa !9
  %5904 = add nsw i32 %5903, 1
  store i32 %5904, ptr %67, align 4, !tbaa !9
  br label %5818, !llvm.loop !73

5905:                                             ; preds = %5818
  br label %5920

5906:                                             ; preds = %5794
  %5907 = load ptr, ptr %27, align 8, !tbaa !5
  %5908 = load i32, ptr %5907, align 4, !tbaa !9
  %5909 = sub nsw i32 %5908, 1
  store i32 %5909, ptr %45, align 4, !tbaa !9
  %5910 = load ptr, ptr %27, align 8, !tbaa !5
  %5911 = load i32, ptr %5910, align 4, !tbaa !9
  %5912 = sub nsw i32 %5911, 1
  store i32 %5912, ptr %46, align 4, !tbaa !9
  %5913 = load ptr, ptr %35, align 8, !tbaa !5
  %5914 = load ptr, ptr %27, align 8, !tbaa !5
  %5915 = load i32, ptr %5914, align 4, !tbaa !9
  %5916 = add nsw i32 %5915, 2
  %5917 = sext i32 %5916 to i64
  %5918 = getelementptr inbounds float, ptr %5913, i64 %5917
  %5919 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.21, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %5918, ptr noundef %5919)
  br label %5920

5920:                                             ; preds = %5906, %5905
  %5921 = load ptr, ptr %36, align 8, !tbaa !5
  %5922 = load i32, ptr %5921, align 4, !tbaa !9
  %5923 = load ptr, ptr %27, align 8, !tbaa !5
  %5924 = load i32, ptr %5923, align 4, !tbaa !9
  %5925 = sub nsw i32 %5922, %5924
  %5926 = load ptr, ptr %27, align 8, !tbaa !5
  %5927 = load i32, ptr %5926, align 4, !tbaa !9
  %5928 = load ptr, ptr %27, align 8, !tbaa !5
  %5929 = load i32, ptr %5928, align 4, !tbaa !9
  %5930 = mul nsw i32 %5927, %5929
  %5931 = sub nsw i32 %5925, %5930
  store i32 %5931, ptr %45, align 4, !tbaa !9
  %5932 = load ptr, ptr %27, align 8, !tbaa !5
  %5933 = load ptr, ptr %27, align 8, !tbaa !5
  %5934 = load ptr, ptr %35, align 8, !tbaa !5
  %5935 = load ptr, ptr %27, align 8, !tbaa !5
  %5936 = load i32, ptr %5935, align 4, !tbaa !9
  %5937 = add nsw i32 %5936, 1
  %5938 = sext i32 %5937 to i64
  %5939 = getelementptr inbounds float, ptr %5934, i64 %5938
  %5940 = load ptr, ptr %27, align 8, !tbaa !5
  %5941 = load ptr, ptr %30, align 8, !tbaa !5
  %5942 = getelementptr inbounds float, ptr %5941, i64 1
  %5943 = load ptr, ptr %27, align 8, !tbaa !5
  %5944 = load ptr, ptr %31, align 8, !tbaa !5
  %5945 = load i32, ptr %42, align 4, !tbaa !9
  %5946 = sext i32 %5945 to i64
  %5947 = getelementptr inbounds float, ptr %5944, i64 %5946
  %5948 = load ptr, ptr %32, align 8, !tbaa !5
  %5949 = load ptr, ptr %35, align 8, !tbaa !5
  %5950 = load ptr, ptr %27, align 8, !tbaa !5
  %5951 = load i32, ptr %5950, align 4, !tbaa !9
  %5952 = load ptr, ptr %27, align 8, !tbaa !5
  %5953 = load i32, ptr %5952, align 4, !tbaa !9
  %5954 = load ptr, ptr %27, align 8, !tbaa !5
  %5955 = load i32, ptr %5954, align 4, !tbaa !9
  %5956 = mul nsw i32 %5953, %5955
  %5957 = add nsw i32 %5951, %5956
  %5958 = add nsw i32 %5957, 1
  %5959 = sext i32 %5958 to i64
  %5960 = getelementptr inbounds float, ptr %5949, i64 %5959
  %5961 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.20, ptr noundef @.str, ptr noundef @.str.9, ptr noundef %5932, ptr noundef %5933, ptr noundef %5939, ptr noundef %5940, ptr noundef %5942, ptr noundef %5943, ptr noundef %5947, ptr noundef %5948, ptr noundef %5960, ptr noundef %45, ptr noundef %5961)
  %5962 = load ptr, ptr %35, align 8, !tbaa !5
  %5963 = load ptr, ptr %27, align 8, !tbaa !5
  %5964 = load i32, ptr %5963, align 4, !tbaa !9
  %5965 = load ptr, ptr %27, align 8, !tbaa !5
  %5966 = load i32, ptr %5965, align 4, !tbaa !9
  %5967 = load ptr, ptr %27, align 8, !tbaa !5
  %5968 = load i32, ptr %5967, align 4, !tbaa !9
  %5969 = mul nsw i32 %5966, %5968
  %5970 = add nsw i32 %5964, %5969
  %5971 = add nsw i32 %5970, 1
  %5972 = sext i32 %5971 to i64
  %5973 = getelementptr inbounds float, ptr %5962, i64 %5972
  %5974 = load float, ptr %5973, align 4, !tbaa !11
  store float %5974, ptr %87, align 4, !tbaa !11
  %5975 = load ptr, ptr %35, align 8, !tbaa !5
  %5976 = load ptr, ptr %27, align 8, !tbaa !5
  %5977 = load i32, ptr %5976, align 4, !tbaa !9
  %5978 = load ptr, ptr %27, align 8, !tbaa !5
  %5979 = load i32, ptr %5978, align 4, !tbaa !9
  %5980 = load ptr, ptr %27, align 8, !tbaa !5
  %5981 = load i32, ptr %5980, align 4, !tbaa !9
  %5982 = mul nsw i32 %5979, %5981
  %5983 = add nsw i32 %5977, %5982
  %5984 = add nsw i32 %5983, 2
  %5985 = sext i32 %5984 to i64
  %5986 = getelementptr inbounds float, ptr %5975, i64 %5985
  %5987 = load float, ptr %5986, align 4, !tbaa !11
  %5988 = fcmp oge float %5987, 0.000000e+00
  br i1 %5988, label %5989, label %6006

5989:                                             ; preds = %5920
  %5990 = load ptr, ptr %35, align 8, !tbaa !5
  %5991 = load ptr, ptr %27, align 8, !tbaa !5
  %5992 = load i32, ptr %5991, align 4, !tbaa !9
  %5993 = load ptr, ptr %27, align 8, !tbaa !5
  %5994 = load i32, ptr %5993, align 4, !tbaa !9
  %5995 = load ptr, ptr %27, align 8, !tbaa !5
  %5996 = load i32, ptr %5995, align 4, !tbaa !9
  %5997 = mul nsw i32 %5994, %5996
  %5998 = add nsw i32 %5992, %5997
  %5999 = add nsw i32 %5998, 2
  %6000 = sext i32 %5999 to i64
  %6001 = getelementptr inbounds float, ptr %5990, i64 %6000
  %6002 = load float, ptr %6001, align 4, !tbaa !11
  %6003 = fpext float %6002 to double
  %6004 = fadd double %6003, 5.000000e-01
  %6005 = call double @llvm.floor.f64(double %6004)
  br label %6024

6006:                                             ; preds = %5920
  %6007 = load ptr, ptr %35, align 8, !tbaa !5
  %6008 = load ptr, ptr %27, align 8, !tbaa !5
  %6009 = load i32, ptr %6008, align 4, !tbaa !9
  %6010 = load ptr, ptr %27, align 8, !tbaa !5
  %6011 = load i32, ptr %6010, align 4, !tbaa !9
  %6012 = load ptr, ptr %27, align 8, !tbaa !5
  %6013 = load i32, ptr %6012, align 4, !tbaa !9
  %6014 = mul nsw i32 %6011, %6013
  %6015 = add nsw i32 %6009, %6014
  %6016 = add nsw i32 %6015, 2
  %6017 = sext i32 %6016 to i64
  %6018 = getelementptr inbounds float, ptr %6007, i64 %6017
  %6019 = load float, ptr %6018, align 4, !tbaa !11
  %6020 = fpext float %6019 to double
  %6021 = fsub double 5.000000e-01, %6020
  %6022 = call double @llvm.floor.f64(double %6021)
  %6023 = fneg double %6022
  br label %6024

6024:                                             ; preds = %6006, %5989
  %6025 = phi double [ %6005, %5989 ], [ %6023, %6006 ]
  %6026 = fptosi double %6025 to i32
  store i32 %6026, ptr %104, align 4, !tbaa !9
  %6027 = load ptr, ptr %27, align 8, !tbaa !5
  %6028 = load i32, ptr %6027, align 4, !tbaa !9
  store i32 %6028, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6029

6029:                                             ; preds = %6071, %6024
  %6030 = load i32, ptr %67, align 4, !tbaa !9
  %6031 = load i32, ptr %45, align 4, !tbaa !9
  %6032 = icmp sle i32 %6030, %6031
  br i1 %6032, label %6033, label %6074

6033:                                             ; preds = %6029
  %6034 = load ptr, ptr %27, align 8, !tbaa !5
  %6035 = load ptr, ptr %35, align 8, !tbaa !5
  %6036 = load ptr, ptr %27, align 8, !tbaa !5
  %6037 = load i32, ptr %6036, align 4, !tbaa !9
  %6038 = load i32, ptr %67, align 4, !tbaa !9
  %6039 = sub nsw i32 %6038, 1
  %6040 = load ptr, ptr %27, align 8, !tbaa !5
  %6041 = load i32, ptr %6040, align 4, !tbaa !9
  %6042 = mul nsw i32 %6039, %6041
  %6043 = add nsw i32 %6037, %6042
  %6044 = add nsw i32 %6043, 1
  %6045 = sext i32 %6044 to i64
  %6046 = getelementptr inbounds float, ptr %6035, i64 %6045
  %6047 = load ptr, ptr %31, align 8, !tbaa !5
  %6048 = load i32, ptr %67, align 4, !tbaa !9
  %6049 = load i32, ptr %41, align 4, !tbaa !9
  %6050 = mul nsw i32 %6048, %6049
  %6051 = add nsw i32 %6050, 1
  %6052 = sext i32 %6051 to i64
  %6053 = getelementptr inbounds float, ptr %6047, i64 %6052
  call void @scopy_(ptr noundef %6034, ptr noundef %6046, ptr noundef @c__1, ptr noundef %6053, ptr noundef @c__1)
  %6054 = load ptr, ptr %27, align 8, !tbaa !5
  %6055 = load ptr, ptr %30, align 8, !tbaa !5
  %6056 = load i32, ptr %67, align 4, !tbaa !9
  %6057 = sext i32 %6056 to i64
  %6058 = getelementptr inbounds float, ptr %6055, i64 %6057
  %6059 = load ptr, ptr %35, align 8, !tbaa !5
  %6060 = load ptr, ptr %27, align 8, !tbaa !5
  %6061 = load i32, ptr %6060, align 4, !tbaa !9
  %6062 = load i32, ptr %67, align 4, !tbaa !9
  %6063 = sub nsw i32 %6062, 1
  %6064 = load ptr, ptr %27, align 8, !tbaa !5
  %6065 = load i32, ptr %6064, align 4, !tbaa !9
  %6066 = mul nsw i32 %6063, %6065
  %6067 = add nsw i32 %6061, %6066
  %6068 = add nsw i32 %6067, 1
  %6069 = sext i32 %6068 to i64
  %6070 = getelementptr inbounds float, ptr %6059, i64 %6069
  call void @sscal_(ptr noundef %6054, ptr noundef %6058, ptr noundef %6070, ptr noundef @c__1)
  br label %6071

6071:                                             ; preds = %6033
  %6072 = load i32, ptr %67, align 4, !tbaa !9
  %6073 = add nsw i32 %6072, 1
  store i32 %6073, ptr %67, align 4, !tbaa !9
  br label %6029, !llvm.loop !74

6074:                                             ; preds = %6029
  %6075 = load ptr, ptr %27, align 8, !tbaa !5
  %6076 = load ptr, ptr %27, align 8, !tbaa !5
  %6077 = load ptr, ptr %28, align 8, !tbaa !5
  %6078 = load i32, ptr %40, align 4, !tbaa !9
  %6079 = sext i32 %6078 to i64
  %6080 = getelementptr inbounds float, ptr %6077, i64 %6079
  %6081 = load ptr, ptr %29, align 8, !tbaa !5
  %6082 = load ptr, ptr %35, align 8, !tbaa !5
  %6083 = load ptr, ptr %27, align 8, !tbaa !5
  %6084 = load i32, ptr %6083, align 4, !tbaa !9
  %6085 = add nsw i32 %6084, 1
  %6086 = sext i32 %6085 to i64
  %6087 = getelementptr inbounds float, ptr %6082, i64 %6086
  %6088 = load ptr, ptr %27, align 8, !tbaa !5
  call void @strsm_(ptr noundef @.str.22, ptr noundef @.str.20, ptr noundef @.str.27, ptr noundef @.str.28, ptr noundef %6075, ptr noundef %6076, ptr noundef @c_b35, ptr noundef %6080, ptr noundef %6081, ptr noundef %6087, ptr noundef %6088)
  %6089 = load ptr, ptr %27, align 8, !tbaa !5
  %6090 = load i32, ptr %6089, align 4, !tbaa !9
  store i32 %6090, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6091

6091:                                             ; preds = %6116, %6074
  %6092 = load i32, ptr %67, align 4, !tbaa !9
  %6093 = load i32, ptr %45, align 4, !tbaa !9
  %6094 = icmp sle i32 %6092, %6093
  br i1 %6094, label %6095, label %6119

6095:                                             ; preds = %6091
  %6096 = load ptr, ptr %27, align 8, !tbaa !5
  %6097 = load ptr, ptr %35, align 8, !tbaa !5
  %6098 = load ptr, ptr %27, align 8, !tbaa !5
  %6099 = load i32, ptr %6098, align 4, !tbaa !9
  %6100 = load i32, ptr %67, align 4, !tbaa !9
  %6101 = add nsw i32 %6099, %6100
  %6102 = sext i32 %6101 to i64
  %6103 = getelementptr inbounds float, ptr %6097, i64 %6102
  %6104 = load ptr, ptr %27, align 8, !tbaa !5
  %6105 = load ptr, ptr %33, align 8, !tbaa !5
  %6106 = load ptr, ptr %37, align 8, !tbaa !5
  %6107 = load i32, ptr %67, align 4, !tbaa !9
  %6108 = sext i32 %6107 to i64
  %6109 = getelementptr inbounds i32, ptr %6106, i64 %6108
  %6110 = load i32, ptr %6109, align 4, !tbaa !9
  %6111 = load i32, ptr %43, align 4, !tbaa !9
  %6112 = add nsw i32 %6110, %6111
  %6113 = sext i32 %6112 to i64
  %6114 = getelementptr inbounds float, ptr %6105, i64 %6113
  %6115 = load ptr, ptr %34, align 8, !tbaa !5
  call void @scopy_(ptr noundef %6096, ptr noundef %6103, ptr noundef %6104, ptr noundef %6114, ptr noundef %6115)
  br label %6116

6116:                                             ; preds = %6095
  %6117 = load i32, ptr %67, align 4, !tbaa !9
  %6118 = add nsw i32 %6117, 1
  store i32 %6118, ptr %67, align 4, !tbaa !9
  br label %6091, !llvm.loop !75

6119:                                             ; preds = %6091
  %6120 = load ptr, ptr %27, align 8, !tbaa !5
  %6121 = load i32, ptr %6120, align 4, !tbaa !9
  %6122 = sitofp i32 %6121 to float
  %6123 = fpext float %6122 to double
  %6124 = call double @sqrt(double noundef %6123) #5
  %6125 = load float, ptr %74, align 4, !tbaa !11
  %6126 = fpext float %6125 to double
  %6127 = fmul double %6124, %6126
  %6128 = fptrunc double %6127 to float
  store float %6128, ptr %66, align 4, !tbaa !11
  %6129 = load ptr, ptr %27, align 8, !tbaa !5
  %6130 = load i32, ptr %6129, align 4, !tbaa !9
  store i32 %6130, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6131

6131:                                             ; preds = %6165, %6119
  %6132 = load i32, ptr %67, align 4, !tbaa !9
  %6133 = load i32, ptr %45, align 4, !tbaa !9
  %6134 = icmp sle i32 %6132, %6133
  br i1 %6134, label %6135, label %6168

6135:                                             ; preds = %6131
  %6136 = load ptr, ptr %27, align 8, !tbaa !5
  %6137 = load ptr, ptr %33, align 8, !tbaa !5
  %6138 = load i32, ptr %67, align 4, !tbaa !9
  %6139 = load i32, ptr %43, align 4, !tbaa !9
  %6140 = mul nsw i32 %6138, %6139
  %6141 = add nsw i32 %6140, 1
  %6142 = sext i32 %6141 to i64
  %6143 = getelementptr inbounds float, ptr %6137, i64 %6142
  %6144 = call float @snrm2_(ptr noundef %6136, ptr noundef %6143, ptr noundef @c__1)
  %6145 = fdiv float 1.000000e+00, %6144
  store float %6145, ptr %101, align 4, !tbaa !11
  %6146 = load float, ptr %101, align 4, !tbaa !11
  %6147 = load float, ptr %66, align 4, !tbaa !11
  %6148 = fsub float 1.000000e+00, %6147
  %6149 = fcmp olt float %6146, %6148
  br i1 %6149, label %6155, label %6150

6150:                                             ; preds = %6135
  %6151 = load float, ptr %101, align 4, !tbaa !11
  %6152 = load float, ptr %66, align 4, !tbaa !11
  %6153 = fadd float %6152, 1.000000e+00
  %6154 = fcmp ogt float %6151, %6153
  br i1 %6154, label %6155, label %6164

6155:                                             ; preds = %6150, %6135
  %6156 = load ptr, ptr %27, align 8, !tbaa !5
  %6157 = load ptr, ptr %33, align 8, !tbaa !5
  %6158 = load i32, ptr %67, align 4, !tbaa !9
  %6159 = load i32, ptr %43, align 4, !tbaa !9
  %6160 = mul nsw i32 %6158, %6159
  %6161 = add nsw i32 %6160, 1
  %6162 = sext i32 %6161 to i64
  %6163 = getelementptr inbounds float, ptr %6157, i64 %6162
  call void @sscal_(ptr noundef %6156, ptr noundef %101, ptr noundef %6163, ptr noundef @c__1)
  br label %6164

6164:                                             ; preds = %6155, %6150
  br label %6165

6165:                                             ; preds = %6164
  %6166 = load i32, ptr %67, align 4, !tbaa !9
  %6167 = add nsw i32 %6166, 1
  store i32 %6167, ptr %67, align 4, !tbaa !9
  br label %6131, !llvm.loop !76

6168:                                             ; preds = %6131
  %6169 = load ptr, ptr %27, align 8, !tbaa !5
  %6170 = load i32, ptr %6169, align 4, !tbaa !9
  %6171 = load ptr, ptr %26, align 8, !tbaa !5
  %6172 = load i32, ptr %6171, align 4, !tbaa !9
  %6173 = icmp slt i32 %6170, %6172
  br i1 %6173, label %6174, label %6233

6174:                                             ; preds = %6168
  %6175 = load ptr, ptr %26, align 8, !tbaa !5
  %6176 = load i32, ptr %6175, align 4, !tbaa !9
  %6177 = load ptr, ptr %27, align 8, !tbaa !5
  %6178 = load i32, ptr %6177, align 4, !tbaa !9
  %6179 = sub nsw i32 %6176, %6178
  store i32 %6179, ptr %45, align 4, !tbaa !9
  %6180 = load ptr, ptr %27, align 8, !tbaa !5
  %6181 = load ptr, ptr %31, align 8, !tbaa !5
  %6182 = load ptr, ptr %27, align 8, !tbaa !5
  %6183 = load i32, ptr %6182, align 4, !tbaa !9
  %6184 = add nsw i32 %6183, 1
  %6185 = load i32, ptr %41, align 4, !tbaa !9
  %6186 = add nsw i32 %6184, %6185
  %6187 = sext i32 %6186 to i64
  %6188 = getelementptr inbounds float, ptr %6181, i64 %6187
  %6189 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %6180, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %6188, ptr noundef %6189)
  %6190 = load ptr, ptr %27, align 8, !tbaa !5
  %6191 = load i32, ptr %6190, align 4, !tbaa !9
  %6192 = load i32, ptr %76, align 4, !tbaa !9
  %6193 = icmp slt i32 %6191, %6192
  br i1 %6193, label %6194, label %6232

6194:                                             ; preds = %6174
  %6195 = load i32, ptr %76, align 4, !tbaa !9
  %6196 = load ptr, ptr %27, align 8, !tbaa !5
  %6197 = load i32, ptr %6196, align 4, !tbaa !9
  %6198 = sub nsw i32 %6195, %6197
  store i32 %6198, ptr %45, align 4, !tbaa !9
  %6199 = load ptr, ptr %27, align 8, !tbaa !5
  %6200 = load ptr, ptr %31, align 8, !tbaa !5
  %6201 = load ptr, ptr %27, align 8, !tbaa !5
  %6202 = load i32, ptr %6201, align 4, !tbaa !9
  %6203 = add nsw i32 %6202, 1
  %6204 = load i32, ptr %41, align 4, !tbaa !9
  %6205 = mul nsw i32 %6203, %6204
  %6206 = add nsw i32 %6205, 1
  %6207 = sext i32 %6206 to i64
  %6208 = getelementptr inbounds float, ptr %6200, i64 %6207
  %6209 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %6199, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %6208, ptr noundef %6209)
  %6210 = load ptr, ptr %26, align 8, !tbaa !5
  %6211 = load i32, ptr %6210, align 4, !tbaa !9
  %6212 = load ptr, ptr %27, align 8, !tbaa !5
  %6213 = load i32, ptr %6212, align 4, !tbaa !9
  %6214 = sub nsw i32 %6211, %6213
  store i32 %6214, ptr %45, align 4, !tbaa !9
  %6215 = load i32, ptr %76, align 4, !tbaa !9
  %6216 = load ptr, ptr %27, align 8, !tbaa !5
  %6217 = load i32, ptr %6216, align 4, !tbaa !9
  %6218 = sub nsw i32 %6215, %6217
  store i32 %6218, ptr %46, align 4, !tbaa !9
  %6219 = load ptr, ptr %31, align 8, !tbaa !5
  %6220 = load ptr, ptr %27, align 8, !tbaa !5
  %6221 = load i32, ptr %6220, align 4, !tbaa !9
  %6222 = add nsw i32 %6221, 1
  %6223 = load ptr, ptr %27, align 8, !tbaa !5
  %6224 = load i32, ptr %6223, align 4, !tbaa !9
  %6225 = add nsw i32 %6224, 1
  %6226 = load i32, ptr %41, align 4, !tbaa !9
  %6227 = mul nsw i32 %6225, %6226
  %6228 = add nsw i32 %6222, %6227
  %6229 = sext i32 %6228 to i64
  %6230 = getelementptr inbounds float, ptr %6219, i64 %6229
  %6231 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %6230, ptr noundef %6231)
  br label %6232

6232:                                             ; preds = %6194, %6174
  br label %6233

6233:                                             ; preds = %6232, %6168
  %6234 = load ptr, ptr %36, align 8, !tbaa !5
  %6235 = load i32, ptr %6234, align 4, !tbaa !9
  %6236 = load ptr, ptr %27, align 8, !tbaa !5
  %6237 = load i32, ptr %6236, align 4, !tbaa !9
  %6238 = sub nsw i32 %6235, %6237
  store i32 %6238, ptr %45, align 4, !tbaa !9
  %6239 = load ptr, ptr %26, align 8, !tbaa !5
  %6240 = load ptr, ptr %27, align 8, !tbaa !5
  %6241 = load ptr, ptr %28, align 8, !tbaa !5
  %6242 = load i32, ptr %40, align 4, !tbaa !9
  %6243 = sext i32 %6242 to i64
  %6244 = getelementptr inbounds float, ptr %6241, i64 %6243
  %6245 = load ptr, ptr %29, align 8, !tbaa !5
  %6246 = load ptr, ptr %35, align 8, !tbaa !5
  %6247 = getelementptr inbounds float, ptr %6246, i64 1
  %6248 = load ptr, ptr %31, align 8, !tbaa !5
  %6249 = load i32, ptr %42, align 4, !tbaa !9
  %6250 = sext i32 %6249 to i64
  %6251 = getelementptr inbounds float, ptr %6248, i64 %6250
  %6252 = load ptr, ptr %32, align 8, !tbaa !5
  %6253 = load ptr, ptr %35, align 8, !tbaa !5
  %6254 = load ptr, ptr %27, align 8, !tbaa !5
  %6255 = load i32, ptr %6254, align 4, !tbaa !9
  %6256 = add nsw i32 %6255, 1
  %6257 = sext i32 %6256 to i64
  %6258 = getelementptr inbounds float, ptr %6253, i64 %6257
  call void @sormqr_(ptr noundef @.str.22, ptr noundef @.str.25, ptr noundef %6239, ptr noundef %76, ptr noundef %6240, ptr noundef %6244, ptr noundef %6245, ptr noundef %6247, ptr noundef %6251, ptr noundef %6252, ptr noundef %6258, ptr noundef %45, ptr noundef %65)
  %6259 = load ptr, ptr %26, align 8, !tbaa !5
  %6260 = load i32, ptr %6259, align 4, !tbaa !9
  %6261 = sitofp i32 %6260 to float
  %6262 = fpext float %6261 to double
  %6263 = call double @sqrt(double noundef %6262) #5
  %6264 = load float, ptr %74, align 4, !tbaa !11
  %6265 = fpext float %6264 to double
  %6266 = fmul double %6263, %6265
  %6267 = fptrunc double %6266 to float
  store float %6267, ptr %66, align 4, !tbaa !11
  %6268 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %6268, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6269

6269:                                             ; preds = %6303, %6233
  %6270 = load i32, ptr %67, align 4, !tbaa !9
  %6271 = load i32, ptr %45, align 4, !tbaa !9
  %6272 = icmp sle i32 %6270, %6271
  br i1 %6272, label %6273, label %6306

6273:                                             ; preds = %6269
  %6274 = load ptr, ptr %26, align 8, !tbaa !5
  %6275 = load ptr, ptr %31, align 8, !tbaa !5
  %6276 = load i32, ptr %67, align 4, !tbaa !9
  %6277 = load i32, ptr %41, align 4, !tbaa !9
  %6278 = mul nsw i32 %6276, %6277
  %6279 = add nsw i32 %6278, 1
  %6280 = sext i32 %6279 to i64
  %6281 = getelementptr inbounds float, ptr %6275, i64 %6280
  %6282 = call float @snrm2_(ptr noundef %6274, ptr noundef %6281, ptr noundef @c__1)
  %6283 = fdiv float 1.000000e+00, %6282
  store float %6283, ptr %101, align 4, !tbaa !11
  %6284 = load float, ptr %101, align 4, !tbaa !11
  %6285 = load float, ptr %66, align 4, !tbaa !11
  %6286 = fsub float 1.000000e+00, %6285
  %6287 = fcmp olt float %6284, %6286
  br i1 %6287, label %6293, label %6288

6288:                                             ; preds = %6273
  %6289 = load float, ptr %101, align 4, !tbaa !11
  %6290 = load float, ptr %66, align 4, !tbaa !11
  %6291 = fadd float %6290, 1.000000e+00
  %6292 = fcmp ogt float %6289, %6291
  br i1 %6292, label %6293, label %6302

6293:                                             ; preds = %6288, %6273
  %6294 = load ptr, ptr %26, align 8, !tbaa !5
  %6295 = load ptr, ptr %31, align 8, !tbaa !5
  %6296 = load i32, ptr %67, align 4, !tbaa !9
  %6297 = load i32, ptr %41, align 4, !tbaa !9
  %6298 = mul nsw i32 %6296, %6297
  %6299 = add nsw i32 %6298, 1
  %6300 = sext i32 %6299 to i64
  %6301 = getelementptr inbounds float, ptr %6295, i64 %6300
  call void @sscal_(ptr noundef %6294, ptr noundef %101, ptr noundef %6301, ptr noundef @c__1)
  br label %6302

6302:                                             ; preds = %6293, %6288
  br label %6303

6303:                                             ; preds = %6302
  %6304 = load i32, ptr %67, align 4, !tbaa !9
  %6305 = add nsw i32 %6304, 1
  store i32 %6305, ptr %67, align 4, !tbaa !9
  br label %6269, !llvm.loop !77

6306:                                             ; preds = %6269
  %6307 = load i32, ptr %98, align 4, !tbaa !9
  %6308 = icmp ne i32 %6307, 0
  br i1 %6308, label %6309, label %6326

6309:                                             ; preds = %6306
  %6310 = load ptr, ptr %26, align 8, !tbaa !5
  %6311 = load i32, ptr %6310, align 4, !tbaa !9
  %6312 = sub nsw i32 %6311, 1
  store i32 %6312, ptr %45, align 4, !tbaa !9
  %6313 = load ptr, ptr %31, align 8, !tbaa !5
  %6314 = load i32, ptr %42, align 4, !tbaa !9
  %6315 = sext i32 %6314 to i64
  %6316 = getelementptr inbounds float, ptr %6313, i64 %6315
  %6317 = load ptr, ptr %32, align 8, !tbaa !5
  %6318 = load ptr, ptr %37, align 8, !tbaa !5
  %6319 = load ptr, ptr %27, align 8, !tbaa !5
  %6320 = load i32, ptr %6319, align 4, !tbaa !9
  %6321 = shl i32 %6320, 1
  %6322 = add nsw i32 %6321, 1
  %6323 = sext i32 %6322 to i64
  %6324 = getelementptr inbounds i32, ptr %6318, i64 %6323
  %6325 = call i32 @slaswp_(ptr noundef %76, ptr noundef %6316, ptr noundef %6317, ptr noundef @c__1, ptr noundef %45, ptr noundef %6324, ptr noundef @c_n1)
  br label %6326

6326:                                             ; preds = %6309, %6306
  br label %6327

6327:                                             ; preds = %6326, %5793
  br label %7141

6328:                                             ; preds = %3432
  %6329 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %6329, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6330

6330:                                             ; preds = %6357, %6328
  %6331 = load i32, ptr %67, align 4, !tbaa !9
  %6332 = load i32, ptr %45, align 4, !tbaa !9
  %6333 = icmp sle i32 %6331, %6332
  br i1 %6333, label %6334, label %6360

6334:                                             ; preds = %6330
  %6335 = load ptr, ptr %27, align 8, !tbaa !5
  %6336 = load i32, ptr %6335, align 4, !tbaa !9
  %6337 = load i32, ptr %67, align 4, !tbaa !9
  %6338 = sub nsw i32 %6336, %6337
  %6339 = add nsw i32 %6338, 1
  store i32 %6339, ptr %46, align 4, !tbaa !9
  %6340 = load ptr, ptr %28, align 8, !tbaa !5
  %6341 = load i32, ptr %67, align 4, !tbaa !9
  %6342 = load i32, ptr %67, align 4, !tbaa !9
  %6343 = load i32, ptr %39, align 4, !tbaa !9
  %6344 = mul nsw i32 %6342, %6343
  %6345 = add nsw i32 %6341, %6344
  %6346 = sext i32 %6345 to i64
  %6347 = getelementptr inbounds float, ptr %6340, i64 %6346
  %6348 = load ptr, ptr %29, align 8, !tbaa !5
  %6349 = load ptr, ptr %33, align 8, !tbaa !5
  %6350 = load i32, ptr %67, align 4, !tbaa !9
  %6351 = load i32, ptr %67, align 4, !tbaa !9
  %6352 = load i32, ptr %43, align 4, !tbaa !9
  %6353 = mul nsw i32 %6351, %6352
  %6354 = add nsw i32 %6350, %6353
  %6355 = sext i32 %6354 to i64
  %6356 = getelementptr inbounds float, ptr %6349, i64 %6355
  call void @scopy_(ptr noundef %46, ptr noundef %6347, ptr noundef %6348, ptr noundef %6356, ptr noundef @c__1)
  br label %6357

6357:                                             ; preds = %6334
  %6358 = load i32, ptr %67, align 4, !tbaa !9
  %6359 = add nsw i32 %6358, 1
  store i32 %6359, ptr %67, align 4, !tbaa !9
  br label %6330, !llvm.loop !78

6360:                                             ; preds = %6330
  %6361 = load i32, ptr %85, align 4, !tbaa !9
  %6362 = icmp ne i32 %6361, 0
  br i1 %6362, label %6363, label %6505

6363:                                             ; preds = %6360
  %6364 = load float, ptr %70, align 4, !tbaa !11
  %6365 = load float, ptr %74, align 4, !tbaa !11
  %6366 = fdiv float %6364, %6365
  %6367 = fpext float %6366 to double
  %6368 = call double @sqrt(double noundef %6367) #5
  %6369 = fptrunc double %6368 to float
  store float %6369, ptr %101, align 4, !tbaa !11
  %6370 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %6370, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %6371

6371:                                             ; preds = %6501, %6363
  %6372 = load i32, ptr %68, align 4, !tbaa !9
  %6373 = load i32, ptr %45, align 4, !tbaa !9
  %6374 = icmp sle i32 %6372, %6373
  br i1 %6374, label %6375, label %6504

6375:                                             ; preds = %6371
  %6376 = load float, ptr %101, align 4, !tbaa !11
  %6377 = load ptr, ptr %33, align 8, !tbaa !5
  %6378 = load i32, ptr %68, align 4, !tbaa !9
  %6379 = load i32, ptr %68, align 4, !tbaa !9
  %6380 = load i32, ptr %43, align 4, !tbaa !9
  %6381 = mul nsw i32 %6379, %6380
  %6382 = add nsw i32 %6378, %6381
  %6383 = sext i32 %6382 to i64
  %6384 = getelementptr inbounds float, ptr %6377, i64 %6383
  %6385 = load float, ptr %6384, align 4, !tbaa !11
  store float %6385, ptr %57, align 4, !tbaa !11
  %6386 = load float, ptr %57, align 4, !tbaa !11
  %6387 = fcmp oge float %6386, 0.000000e+00
  br i1 %6387, label %6388, label %6390

6388:                                             ; preds = %6375
  %6389 = load float, ptr %57, align 4, !tbaa !11
  br label %6393

6390:                                             ; preds = %6375
  %6391 = load float, ptr %57, align 4, !tbaa !11
  %6392 = fneg float %6391
  br label %6393

6393:                                             ; preds = %6390, %6388
  %6394 = phi float [ %6389, %6388 ], [ %6392, %6390 ]
  %6395 = fmul float %6376, %6394
  store float %6395, ptr %66, align 4, !tbaa !11
  %6396 = load ptr, ptr %27, align 8, !tbaa !5
  %6397 = load i32, ptr %6396, align 4, !tbaa !9
  store i32 %6397, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6398

6398:                                             ; preds = %6497, %6393
  %6399 = load i32, ptr %67, align 4, !tbaa !9
  %6400 = load i32, ptr %46, align 4, !tbaa !9
  %6401 = icmp sle i32 %6399, %6400
  br i1 %6401, label %6402, label %6500

6402:                                             ; preds = %6398
  %6403 = load i32, ptr %67, align 4, !tbaa !9
  %6404 = load i32, ptr %68, align 4, !tbaa !9
  %6405 = icmp sgt i32 %6403, %6404
  br i1 %6405, label %6406, label %6427

6406:                                             ; preds = %6402
  %6407 = load ptr, ptr %33, align 8, !tbaa !5
  %6408 = load i32, ptr %67, align 4, !tbaa !9
  %6409 = load i32, ptr %68, align 4, !tbaa !9
  %6410 = load i32, ptr %43, align 4, !tbaa !9
  %6411 = mul nsw i32 %6409, %6410
  %6412 = add nsw i32 %6408, %6411
  %6413 = sext i32 %6412 to i64
  %6414 = getelementptr inbounds float, ptr %6407, i64 %6413
  %6415 = load float, ptr %6414, align 4, !tbaa !11
  store float %6415, ptr %57, align 4, !tbaa !11
  %6416 = load float, ptr %57, align 4, !tbaa !11
  %6417 = fcmp oge float %6416, 0.000000e+00
  br i1 %6417, label %6418, label %6420

6418:                                             ; preds = %6406
  %6419 = load float, ptr %57, align 4, !tbaa !11
  br label %6423

6420:                                             ; preds = %6406
  %6421 = load float, ptr %57, align 4, !tbaa !11
  %6422 = fneg float %6421
  br label %6423

6423:                                             ; preds = %6420, %6418
  %6424 = phi float [ %6419, %6418 ], [ %6422, %6420 ]
  %6425 = load float, ptr %66, align 4, !tbaa !11
  %6426 = fcmp ole float %6424, %6425
  br i1 %6426, label %6431, label %6427

6427:                                             ; preds = %6423, %6402
  %6428 = load i32, ptr %67, align 4, !tbaa !9
  %6429 = load i32, ptr %68, align 4, !tbaa !9
  %6430 = icmp slt i32 %6428, %6429
  br i1 %6430, label %6431, label %6473

6431:                                             ; preds = %6427, %6423
  %6432 = load ptr, ptr %33, align 8, !tbaa !5
  %6433 = load i32, ptr %67, align 4, !tbaa !9
  %6434 = load i32, ptr %68, align 4, !tbaa !9
  %6435 = load i32, ptr %43, align 4, !tbaa !9
  %6436 = mul nsw i32 %6434, %6435
  %6437 = add nsw i32 %6433, %6436
  %6438 = sext i32 %6437 to i64
  %6439 = getelementptr inbounds float, ptr %6432, i64 %6438
  %6440 = load float, ptr %6439, align 4, !tbaa !11
  %6441 = fcmp oge float %6440, 0.000000e+00
  br i1 %6441, label %6442, label %6452

6442:                                             ; preds = %6431
  %6443 = load float, ptr %66, align 4, !tbaa !11
  %6444 = fcmp oge float %6443, 0.000000e+00
  br i1 %6444, label %6445, label %6447

6445:                                             ; preds = %6442
  %6446 = load float, ptr %66, align 4, !tbaa !11
  br label %6450

6447:                                             ; preds = %6442
  %6448 = load float, ptr %66, align 4, !tbaa !11
  %6449 = fneg float %6448
  br label %6450

6450:                                             ; preds = %6447, %6445
  %6451 = phi float [ %6446, %6445 ], [ %6449, %6447 ]
  br label %6463

6452:                                             ; preds = %6431
  %6453 = load float, ptr %66, align 4, !tbaa !11
  %6454 = fcmp oge float %6453, 0.000000e+00
  br i1 %6454, label %6455, label %6457

6455:                                             ; preds = %6452
  %6456 = load float, ptr %66, align 4, !tbaa !11
  br label %6460

6457:                                             ; preds = %6452
  %6458 = load float, ptr %66, align 4, !tbaa !11
  %6459 = fneg float %6458
  br label %6460

6460:                                             ; preds = %6457, %6455
  %6461 = phi float [ %6456, %6455 ], [ %6459, %6457 ]
  %6462 = fneg float %6461
  br label %6463

6463:                                             ; preds = %6460, %6450
  %6464 = phi float [ %6451, %6450 ], [ %6462, %6460 ]
  %6465 = load ptr, ptr %33, align 8, !tbaa !5
  %6466 = load i32, ptr %67, align 4, !tbaa !9
  %6467 = load i32, ptr %68, align 4, !tbaa !9
  %6468 = load i32, ptr %43, align 4, !tbaa !9
  %6469 = mul nsw i32 %6467, %6468
  %6470 = add nsw i32 %6466, %6469
  %6471 = sext i32 %6470 to i64
  %6472 = getelementptr inbounds float, ptr %6465, i64 %6471
  store float %6464, ptr %6472, align 4, !tbaa !11
  br label %6473

6473:                                             ; preds = %6463, %6427
  %6474 = load i32, ptr %67, align 4, !tbaa !9
  %6475 = load i32, ptr %68, align 4, !tbaa !9
  %6476 = icmp slt i32 %6474, %6475
  br i1 %6476, label %6477, label %6496

6477:                                             ; preds = %6473
  %6478 = load ptr, ptr %33, align 8, !tbaa !5
  %6479 = load i32, ptr %67, align 4, !tbaa !9
  %6480 = load i32, ptr %68, align 4, !tbaa !9
  %6481 = load i32, ptr %43, align 4, !tbaa !9
  %6482 = mul nsw i32 %6480, %6481
  %6483 = add nsw i32 %6479, %6482
  %6484 = sext i32 %6483 to i64
  %6485 = getelementptr inbounds float, ptr %6478, i64 %6484
  %6486 = load float, ptr %6485, align 4, !tbaa !11
  %6487 = fneg float %6486
  %6488 = load ptr, ptr %33, align 8, !tbaa !5
  %6489 = load i32, ptr %67, align 4, !tbaa !9
  %6490 = load i32, ptr %68, align 4, !tbaa !9
  %6491 = load i32, ptr %43, align 4, !tbaa !9
  %6492 = mul nsw i32 %6490, %6491
  %6493 = add nsw i32 %6489, %6492
  %6494 = sext i32 %6493 to i64
  %6495 = getelementptr inbounds float, ptr %6488, i64 %6494
  store float %6487, ptr %6495, align 4, !tbaa !11
  br label %6496

6496:                                             ; preds = %6477, %6473
  br label %6497

6497:                                             ; preds = %6496
  %6498 = load i32, ptr %67, align 4, !tbaa !9
  %6499 = add nsw i32 %6498, 1
  store i32 %6499, ptr %67, align 4, !tbaa !9
  br label %6398, !llvm.loop !79

6500:                                             ; preds = %6398
  br label %6501

6501:                                             ; preds = %6500
  %6502 = load i32, ptr %68, align 4, !tbaa !9
  %6503 = add nsw i32 %6502, 1
  store i32 %6503, ptr %68, align 4, !tbaa !9
  br label %6371, !llvm.loop !80

6504:                                             ; preds = %6371
  br label %6517

6505:                                             ; preds = %6360
  %6506 = load i32, ptr %86, align 4, !tbaa !9
  %6507 = sub nsw i32 %6506, 1
  store i32 %6507, ptr %45, align 4, !tbaa !9
  %6508 = load i32, ptr %86, align 4, !tbaa !9
  %6509 = sub nsw i32 %6508, 1
  store i32 %6509, ptr %46, align 4, !tbaa !9
  %6510 = load ptr, ptr %33, align 8, !tbaa !5
  %6511 = load i32, ptr %43, align 4, !tbaa !9
  %6512 = shl i32 %6511, 1
  %6513 = add nsw i32 %6512, 1
  %6514 = sext i32 %6513 to i64
  %6515 = getelementptr inbounds float, ptr %6510, i64 %6514
  %6516 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %6515, ptr noundef %6516)
  br label %6517

6517:                                             ; preds = %6505, %6504
  %6518 = load ptr, ptr %36, align 8, !tbaa !5
  %6519 = load i32, ptr %6518, align 4, !tbaa !9
  %6520 = load ptr, ptr %27, align 8, !tbaa !5
  %6521 = load i32, ptr %6520, align 4, !tbaa !9
  %6522 = shl i32 %6521, 1
  %6523 = sub nsw i32 %6519, %6522
  store i32 %6523, ptr %45, align 4, !tbaa !9
  %6524 = load ptr, ptr %27, align 8, !tbaa !5
  %6525 = load ptr, ptr %33, align 8, !tbaa !5
  %6526 = load i32, ptr %44, align 4, !tbaa !9
  %6527 = sext i32 %6526 to i64
  %6528 = getelementptr inbounds float, ptr %6525, i64 %6527
  %6529 = load ptr, ptr %34, align 8, !tbaa !5
  %6530 = load ptr, ptr %35, align 8, !tbaa !5
  %6531 = load ptr, ptr %27, align 8, !tbaa !5
  %6532 = load i32, ptr %6531, align 4, !tbaa !9
  %6533 = add nsw i32 %6532, 1
  %6534 = sext i32 %6533 to i64
  %6535 = getelementptr inbounds float, ptr %6530, i64 %6534
  %6536 = load ptr, ptr %35, align 8, !tbaa !5
  %6537 = load ptr, ptr %27, align 8, !tbaa !5
  %6538 = load i32, ptr %6537, align 4, !tbaa !9
  %6539 = shl i32 %6538, 1
  %6540 = add nsw i32 %6539, 1
  %6541 = sext i32 %6540 to i64
  %6542 = getelementptr inbounds float, ptr %6536, i64 %6541
  call void @sgeqrf_(ptr noundef %6524, ptr noundef %86, ptr noundef %6528, ptr noundef %6529, ptr noundef %6535, ptr noundef %6542, ptr noundef %45, ptr noundef %65)
  %6543 = load ptr, ptr %27, align 8, !tbaa !5
  %6544 = load ptr, ptr %33, align 8, !tbaa !5
  %6545 = load i32, ptr %44, align 4, !tbaa !9
  %6546 = sext i32 %6545 to i64
  %6547 = getelementptr inbounds float, ptr %6544, i64 %6546
  %6548 = load ptr, ptr %34, align 8, !tbaa !5
  %6549 = load ptr, ptr %35, align 8, !tbaa !5
  %6550 = load ptr, ptr %27, align 8, !tbaa !5
  %6551 = load i32, ptr %6550, align 4, !tbaa !9
  %6552 = shl i32 %6551, 1
  %6553 = add nsw i32 %6552, 1
  %6554 = sext i32 %6553 to i64
  %6555 = getelementptr inbounds float, ptr %6549, i64 %6554
  %6556 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.17, ptr noundef %6543, ptr noundef %86, ptr noundef %6547, ptr noundef %6548, ptr noundef %6555, ptr noundef %6556)
  %6557 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %6557, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6558

6558:                                             ; preds = %6584, %6517
  %6559 = load i32, ptr %67, align 4, !tbaa !9
  %6560 = load i32, ptr %45, align 4, !tbaa !9
  %6561 = icmp sle i32 %6559, %6560
  br i1 %6561, label %6562, label %6587

6562:                                             ; preds = %6558
  %6563 = load i32, ptr %86, align 4, !tbaa !9
  %6564 = load i32, ptr %67, align 4, !tbaa !9
  %6565 = sub nsw i32 %6563, %6564
  %6566 = add nsw i32 %6565, 1
  store i32 %6566, ptr %46, align 4, !tbaa !9
  %6567 = load ptr, ptr %33, align 8, !tbaa !5
  %6568 = load i32, ptr %67, align 4, !tbaa !9
  %6569 = load i32, ptr %67, align 4, !tbaa !9
  %6570 = load i32, ptr %43, align 4, !tbaa !9
  %6571 = mul nsw i32 %6569, %6570
  %6572 = add nsw i32 %6568, %6571
  %6573 = sext i32 %6572 to i64
  %6574 = getelementptr inbounds float, ptr %6567, i64 %6573
  %6575 = load ptr, ptr %34, align 8, !tbaa !5
  %6576 = load ptr, ptr %31, align 8, !tbaa !5
  %6577 = load i32, ptr %67, align 4, !tbaa !9
  %6578 = load i32, ptr %67, align 4, !tbaa !9
  %6579 = load i32, ptr %41, align 4, !tbaa !9
  %6580 = mul nsw i32 %6578, %6579
  %6581 = add nsw i32 %6577, %6580
  %6582 = sext i32 %6581 to i64
  %6583 = getelementptr inbounds float, ptr %6576, i64 %6582
  call void @scopy_(ptr noundef %46, ptr noundef %6574, ptr noundef %6575, ptr noundef %6583, ptr noundef @c__1)
  br label %6584

6584:                                             ; preds = %6562
  %6585 = load i32, ptr %67, align 4, !tbaa !9
  %6586 = add nsw i32 %6585, 1
  store i32 %6586, ptr %67, align 4, !tbaa !9
  br label %6558, !llvm.loop !81

6587:                                             ; preds = %6558
  %6588 = load i32, ptr %85, align 4, !tbaa !9
  %6589 = icmp ne i32 %6588, 0
  br i1 %6589, label %6590, label %6707

6590:                                             ; preds = %6587
  %6591 = load float, ptr %70, align 4, !tbaa !11
  %6592 = load float, ptr %74, align 4, !tbaa !11
  %6593 = fdiv float %6591, %6592
  %6594 = fpext float %6593 to double
  %6595 = call double @sqrt(double noundef %6594) #5
  %6596 = fptrunc double %6595 to float
  store float %6596, ptr %101, align 4, !tbaa !11
  %6597 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %6597, ptr %45, align 4, !tbaa !9
  store i32 2, ptr %68, align 4, !tbaa !9
  br label %6598

6598:                                             ; preds = %6703, %6590
  %6599 = load i32, ptr %68, align 4, !tbaa !9
  %6600 = load i32, ptr %45, align 4, !tbaa !9
  %6601 = icmp sle i32 %6599, %6600
  br i1 %6601, label %6602, label %6706

6602:                                             ; preds = %6598
  %6603 = load i32, ptr %68, align 4, !tbaa !9
  %6604 = sub nsw i32 %6603, 1
  store i32 %6604, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6605

6605:                                             ; preds = %6699, %6602
  %6606 = load i32, ptr %67, align 4, !tbaa !9
  %6607 = load i32, ptr %46, align 4, !tbaa !9
  %6608 = icmp sle i32 %6606, %6607
  br i1 %6608, label %6609, label %6702

6609:                                             ; preds = %6605
  %6610 = load ptr, ptr %31, align 8, !tbaa !5
  %6611 = load i32, ptr %67, align 4, !tbaa !9
  %6612 = load i32, ptr %67, align 4, !tbaa !9
  %6613 = load i32, ptr %41, align 4, !tbaa !9
  %6614 = mul nsw i32 %6612, %6613
  %6615 = add nsw i32 %6611, %6614
  %6616 = sext i32 %6615 to i64
  %6617 = getelementptr inbounds float, ptr %6610, i64 %6616
  %6618 = load float, ptr %6617, align 4, !tbaa !11
  store float %6618, ptr %57, align 4, !tbaa !11
  %6619 = load float, ptr %57, align 4, !tbaa !11
  %6620 = fcmp oge float %6619, 0.000000e+00
  br i1 %6620, label %6621, label %6623

6621:                                             ; preds = %6609
  %6622 = load float, ptr %57, align 4, !tbaa !11
  br label %6626

6623:                                             ; preds = %6609
  %6624 = load float, ptr %57, align 4, !tbaa !11
  %6625 = fneg float %6624
  br label %6626

6626:                                             ; preds = %6623, %6621
  %6627 = phi float [ %6622, %6621 ], [ %6625, %6623 ]
  store float %6627, ptr %59, align 4, !tbaa !11
  %6628 = load ptr, ptr %31, align 8, !tbaa !5
  %6629 = load i32, ptr %68, align 4, !tbaa !9
  %6630 = load i32, ptr %68, align 4, !tbaa !9
  %6631 = load i32, ptr %41, align 4, !tbaa !9
  %6632 = mul nsw i32 %6630, %6631
  %6633 = add nsw i32 %6629, %6632
  %6634 = sext i32 %6633 to i64
  %6635 = getelementptr inbounds float, ptr %6628, i64 %6634
  %6636 = load float, ptr %6635, align 4, !tbaa !11
  store float %6636, ptr %58, align 4, !tbaa !11
  %6637 = load float, ptr %58, align 4, !tbaa !11
  %6638 = fcmp oge float %6637, 0.000000e+00
  br i1 %6638, label %6639, label %6641

6639:                                             ; preds = %6626
  %6640 = load float, ptr %58, align 4, !tbaa !11
  br label %6644

6641:                                             ; preds = %6626
  %6642 = load float, ptr %58, align 4, !tbaa !11
  %6643 = fneg float %6642
  br label %6644

6644:                                             ; preds = %6641, %6639
  %6645 = phi float [ %6640, %6639 ], [ %6643, %6641 ]
  store float %6645, ptr %60, align 4, !tbaa !11
  %6646 = load float, ptr %101, align 4, !tbaa !11
  %6647 = load float, ptr %59, align 4, !tbaa !11
  %6648 = load float, ptr %60, align 4, !tbaa !11
  %6649 = fcmp ole float %6647, %6648
  br i1 %6649, label %6650, label %6652

6650:                                             ; preds = %6644
  %6651 = load float, ptr %59, align 4, !tbaa !11
  br label %6654

6652:                                             ; preds = %6644
  %6653 = load float, ptr %60, align 4, !tbaa !11
  br label %6654

6654:                                             ; preds = %6652, %6650
  %6655 = phi float [ %6651, %6650 ], [ %6653, %6652 ]
  %6656 = fmul float %6646, %6655
  store float %6656, ptr %66, align 4, !tbaa !11
  %6657 = load ptr, ptr %31, align 8, !tbaa !5
  %6658 = load i32, ptr %68, align 4, !tbaa !9
  %6659 = load i32, ptr %67, align 4, !tbaa !9
  %6660 = load i32, ptr %41, align 4, !tbaa !9
  %6661 = mul nsw i32 %6659, %6660
  %6662 = add nsw i32 %6658, %6661
  %6663 = sext i32 %6662 to i64
  %6664 = getelementptr inbounds float, ptr %6657, i64 %6663
  %6665 = load float, ptr %6664, align 4, !tbaa !11
  %6666 = fcmp oge float %6665, 0.000000e+00
  br i1 %6666, label %6667, label %6677

6667:                                             ; preds = %6654
  %6668 = load float, ptr %66, align 4, !tbaa !11
  %6669 = fcmp oge float %6668, 0.000000e+00
  br i1 %6669, label %6670, label %6672

6670:                                             ; preds = %6667
  %6671 = load float, ptr %66, align 4, !tbaa !11
  br label %6675

6672:                                             ; preds = %6667
  %6673 = load float, ptr %66, align 4, !tbaa !11
  %6674 = fneg float %6673
  br label %6675

6675:                                             ; preds = %6672, %6670
  %6676 = phi float [ %6671, %6670 ], [ %6674, %6672 ]
  br label %6688

6677:                                             ; preds = %6654
  %6678 = load float, ptr %66, align 4, !tbaa !11
  %6679 = fcmp oge float %6678, 0.000000e+00
  br i1 %6679, label %6680, label %6682

6680:                                             ; preds = %6677
  %6681 = load float, ptr %66, align 4, !tbaa !11
  br label %6685

6682:                                             ; preds = %6677
  %6683 = load float, ptr %66, align 4, !tbaa !11
  %6684 = fneg float %6683
  br label %6685

6685:                                             ; preds = %6682, %6680
  %6686 = phi float [ %6681, %6680 ], [ %6684, %6682 ]
  %6687 = fneg float %6686
  br label %6688

6688:                                             ; preds = %6685, %6675
  %6689 = phi float [ %6676, %6675 ], [ %6687, %6685 ]
  %6690 = fneg float %6689
  %6691 = load ptr, ptr %31, align 8, !tbaa !5
  %6692 = load i32, ptr %67, align 4, !tbaa !9
  %6693 = load i32, ptr %68, align 4, !tbaa !9
  %6694 = load i32, ptr %41, align 4, !tbaa !9
  %6695 = mul nsw i32 %6693, %6694
  %6696 = add nsw i32 %6692, %6695
  %6697 = sext i32 %6696 to i64
  %6698 = getelementptr inbounds float, ptr %6691, i64 %6697
  store float %6690, ptr %6698, align 4, !tbaa !11
  br label %6699

6699:                                             ; preds = %6688
  %6700 = load i32, ptr %67, align 4, !tbaa !9
  %6701 = add nsw i32 %6700, 1
  store i32 %6701, ptr %67, align 4, !tbaa !9
  br label %6605, !llvm.loop !82

6702:                                             ; preds = %6605
  br label %6703

6703:                                             ; preds = %6702
  %6704 = load i32, ptr %68, align 4, !tbaa !9
  %6705 = add nsw i32 %6704, 1
  store i32 %6705, ptr %68, align 4, !tbaa !9
  br label %6598, !llvm.loop !83

6706:                                             ; preds = %6598
  br label %6719

6707:                                             ; preds = %6587
  %6708 = load i32, ptr %86, align 4, !tbaa !9
  %6709 = sub nsw i32 %6708, 1
  store i32 %6709, ptr %45, align 4, !tbaa !9
  %6710 = load i32, ptr %86, align 4, !tbaa !9
  %6711 = sub nsw i32 %6710, 1
  store i32 %6711, ptr %46, align 4, !tbaa !9
  %6712 = load ptr, ptr %31, align 8, !tbaa !5
  %6713 = load i32, ptr %41, align 4, !tbaa !9
  %6714 = shl i32 %6713, 1
  %6715 = add nsw i32 %6714, 1
  %6716 = sext i32 %6715 to i64
  %6717 = getelementptr inbounds float, ptr %6712, i64 %6716
  %6718 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %6717, ptr noundef %6718)
  br label %6719

6719:                                             ; preds = %6707, %6706
  %6720 = load ptr, ptr %36, align 8, !tbaa !5
  %6721 = load i32, ptr %6720, align 4, !tbaa !9
  %6722 = load ptr, ptr %27, align 8, !tbaa !5
  %6723 = load i32, ptr %6722, align 4, !tbaa !9
  %6724 = shl i32 %6723, 1
  %6725 = sub nsw i32 %6721, %6724
  %6726 = load ptr, ptr %27, align 8, !tbaa !5
  %6727 = load i32, ptr %6726, align 4, !tbaa !9
  %6728 = load i32, ptr %86, align 4, !tbaa !9
  %6729 = mul nsw i32 %6727, %6728
  %6730 = sub nsw i32 %6725, %6729
  store i32 %6730, ptr %45, align 4, !tbaa !9
  %6731 = load ptr, ptr %31, align 8, !tbaa !5
  %6732 = load i32, ptr %42, align 4, !tbaa !9
  %6733 = sext i32 %6732 to i64
  %6734 = getelementptr inbounds float, ptr %6731, i64 %6733
  %6735 = load ptr, ptr %32, align 8, !tbaa !5
  %6736 = load ptr, ptr %30, align 8, !tbaa !5
  %6737 = getelementptr inbounds float, ptr %6736, i64 1
  %6738 = load ptr, ptr %27, align 8, !tbaa !5
  %6739 = load ptr, ptr %33, align 8, !tbaa !5
  %6740 = load i32, ptr %44, align 4, !tbaa !9
  %6741 = sext i32 %6740 to i64
  %6742 = getelementptr inbounds float, ptr %6739, i64 %6741
  %6743 = load ptr, ptr %34, align 8, !tbaa !5
  %6744 = load ptr, ptr %35, align 8, !tbaa !5
  %6745 = load ptr, ptr %27, align 8, !tbaa !5
  %6746 = load i32, ptr %6745, align 4, !tbaa !9
  %6747 = shl i32 %6746, 1
  %6748 = load ptr, ptr %27, align 8, !tbaa !5
  %6749 = load i32, ptr %6748, align 4, !tbaa !9
  %6750 = load i32, ptr %86, align 4, !tbaa !9
  %6751 = mul nsw i32 %6749, %6750
  %6752 = add nsw i32 %6747, %6751
  %6753 = add nsw i32 %6752, 1
  %6754 = sext i32 %6753 to i64
  %6755 = getelementptr inbounds float, ptr %6744, i64 %6754
  %6756 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgesvj_(ptr noundef @.str.17, ptr noundef @.str, ptr noundef @.str.3, ptr noundef %86, ptr noundef %86, ptr noundef %6734, ptr noundef %6735, ptr noundef %6737, ptr noundef %6738, ptr noundef %6742, ptr noundef %6743, ptr noundef %6755, ptr noundef %45, ptr noundef %6756)
  %6757 = load ptr, ptr %35, align 8, !tbaa !5
  %6758 = load ptr, ptr %27, align 8, !tbaa !5
  %6759 = load i32, ptr %6758, align 4, !tbaa !9
  %6760 = shl i32 %6759, 1
  %6761 = load ptr, ptr %27, align 8, !tbaa !5
  %6762 = load i32, ptr %6761, align 4, !tbaa !9
  %6763 = load i32, ptr %86, align 4, !tbaa !9
  %6764 = mul nsw i32 %6762, %6763
  %6765 = add nsw i32 %6760, %6764
  %6766 = add nsw i32 %6765, 1
  %6767 = sext i32 %6766 to i64
  %6768 = getelementptr inbounds float, ptr %6757, i64 %6767
  %6769 = load float, ptr %6768, align 4, !tbaa !11
  store float %6769, ptr %87, align 4, !tbaa !11
  %6770 = load ptr, ptr %35, align 8, !tbaa !5
  %6771 = load ptr, ptr %27, align 8, !tbaa !5
  %6772 = load i32, ptr %6771, align 4, !tbaa !9
  %6773 = shl i32 %6772, 1
  %6774 = load ptr, ptr %27, align 8, !tbaa !5
  %6775 = load i32, ptr %6774, align 4, !tbaa !9
  %6776 = load i32, ptr %86, align 4, !tbaa !9
  %6777 = mul nsw i32 %6775, %6776
  %6778 = add nsw i32 %6773, %6777
  %6779 = add nsw i32 %6778, 2
  %6780 = sext i32 %6779 to i64
  %6781 = getelementptr inbounds float, ptr %6770, i64 %6780
  %6782 = load float, ptr %6781, align 4, !tbaa !11
  %6783 = fcmp oge float %6782, 0.000000e+00
  br i1 %6783, label %6784, label %6801

6784:                                             ; preds = %6719
  %6785 = load ptr, ptr %35, align 8, !tbaa !5
  %6786 = load ptr, ptr %27, align 8, !tbaa !5
  %6787 = load i32, ptr %6786, align 4, !tbaa !9
  %6788 = shl i32 %6787, 1
  %6789 = load ptr, ptr %27, align 8, !tbaa !5
  %6790 = load i32, ptr %6789, align 4, !tbaa !9
  %6791 = load i32, ptr %86, align 4, !tbaa !9
  %6792 = mul nsw i32 %6790, %6791
  %6793 = add nsw i32 %6788, %6792
  %6794 = add nsw i32 %6793, 2
  %6795 = sext i32 %6794 to i64
  %6796 = getelementptr inbounds float, ptr %6785, i64 %6795
  %6797 = load float, ptr %6796, align 4, !tbaa !11
  %6798 = fpext float %6797 to double
  %6799 = fadd double %6798, 5.000000e-01
  %6800 = call double @llvm.floor.f64(double %6799)
  br label %6819

6801:                                             ; preds = %6719
  %6802 = load ptr, ptr %35, align 8, !tbaa !5
  %6803 = load ptr, ptr %27, align 8, !tbaa !5
  %6804 = load i32, ptr %6803, align 4, !tbaa !9
  %6805 = shl i32 %6804, 1
  %6806 = load ptr, ptr %27, align 8, !tbaa !5
  %6807 = load i32, ptr %6806, align 4, !tbaa !9
  %6808 = load i32, ptr %86, align 4, !tbaa !9
  %6809 = mul nsw i32 %6807, %6808
  %6810 = add nsw i32 %6805, %6809
  %6811 = add nsw i32 %6810, 2
  %6812 = sext i32 %6811 to i64
  %6813 = getelementptr inbounds float, ptr %6802, i64 %6812
  %6814 = load float, ptr %6813, align 4, !tbaa !11
  %6815 = fpext float %6814 to double
  %6816 = fsub double 5.000000e-01, %6815
  %6817 = call double @llvm.floor.f64(double %6816)
  %6818 = fneg double %6817
  br label %6819

6819:                                             ; preds = %6801, %6784
  %6820 = phi double [ %6800, %6784 ], [ %6818, %6801 ]
  %6821 = fptosi double %6820 to i32
  store i32 %6821, ptr %104, align 4, !tbaa !9
  %6822 = load i32, ptr %86, align 4, !tbaa !9
  %6823 = load ptr, ptr %27, align 8, !tbaa !5
  %6824 = load i32, ptr %6823, align 4, !tbaa !9
  %6825 = icmp slt i32 %6822, %6824
  br i1 %6825, label %6826, label %6871

6826:                                             ; preds = %6819
  %6827 = load ptr, ptr %27, align 8, !tbaa !5
  %6828 = load i32, ptr %6827, align 4, !tbaa !9
  %6829 = load i32, ptr %86, align 4, !tbaa !9
  %6830 = sub nsw i32 %6828, %6829
  store i32 %6830, ptr %45, align 4, !tbaa !9
  %6831 = load ptr, ptr %33, align 8, !tbaa !5
  %6832 = load i32, ptr %86, align 4, !tbaa !9
  %6833 = add nsw i32 %6832, 1
  %6834 = load i32, ptr %43, align 4, !tbaa !9
  %6835 = add nsw i32 %6833, %6834
  %6836 = sext i32 %6835 to i64
  %6837 = getelementptr inbounds float, ptr %6831, i64 %6836
  %6838 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %6837, ptr noundef %6838)
  %6839 = load ptr, ptr %27, align 8, !tbaa !5
  %6840 = load i32, ptr %6839, align 4, !tbaa !9
  %6841 = load i32, ptr %86, align 4, !tbaa !9
  %6842 = sub nsw i32 %6840, %6841
  store i32 %6842, ptr %45, align 4, !tbaa !9
  %6843 = load ptr, ptr %33, align 8, !tbaa !5
  %6844 = load i32, ptr %86, align 4, !tbaa !9
  %6845 = add nsw i32 %6844, 1
  %6846 = load i32, ptr %43, align 4, !tbaa !9
  %6847 = mul nsw i32 %6845, %6846
  %6848 = add nsw i32 %6847, 1
  %6849 = sext i32 %6848 to i64
  %6850 = getelementptr inbounds float, ptr %6843, i64 %6849
  %6851 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %6850, ptr noundef %6851)
  %6852 = load ptr, ptr %27, align 8, !tbaa !5
  %6853 = load i32, ptr %6852, align 4, !tbaa !9
  %6854 = load i32, ptr %86, align 4, !tbaa !9
  %6855 = sub nsw i32 %6853, %6854
  store i32 %6855, ptr %45, align 4, !tbaa !9
  %6856 = load ptr, ptr %27, align 8, !tbaa !5
  %6857 = load i32, ptr %6856, align 4, !tbaa !9
  %6858 = load i32, ptr %86, align 4, !tbaa !9
  %6859 = sub nsw i32 %6857, %6858
  store i32 %6859, ptr %46, align 4, !tbaa !9
  %6860 = load ptr, ptr %33, align 8, !tbaa !5
  %6861 = load i32, ptr %86, align 4, !tbaa !9
  %6862 = add nsw i32 %6861, 1
  %6863 = load i32, ptr %86, align 4, !tbaa !9
  %6864 = add nsw i32 %6863, 1
  %6865 = load i32, ptr %43, align 4, !tbaa !9
  %6866 = mul nsw i32 %6864, %6865
  %6867 = add nsw i32 %6862, %6866
  %6868 = sext i32 %6867 to i64
  %6869 = getelementptr inbounds float, ptr %6860, i64 %6868
  %6870 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %6869, ptr noundef %6870)
  br label %6871

6871:                                             ; preds = %6826, %6819
  %6872 = load ptr, ptr %36, align 8, !tbaa !5
  %6873 = load i32, ptr %6872, align 4, !tbaa !9
  %6874 = load ptr, ptr %27, align 8, !tbaa !5
  %6875 = load i32, ptr %6874, align 4, !tbaa !9
  %6876 = shl i32 %6875, 1
  %6877 = sub nsw i32 %6873, %6876
  %6878 = load ptr, ptr %27, align 8, !tbaa !5
  %6879 = load i32, ptr %6878, align 4, !tbaa !9
  %6880 = load i32, ptr %86, align 4, !tbaa !9
  %6881 = mul nsw i32 %6879, %6880
  %6882 = sub nsw i32 %6877, %6881
  %6883 = load i32, ptr %86, align 4, !tbaa !9
  %6884 = sub nsw i32 %6882, %6883
  store i32 %6884, ptr %45, align 4, !tbaa !9
  %6885 = load ptr, ptr %27, align 8, !tbaa !5
  %6886 = load ptr, ptr %27, align 8, !tbaa !5
  %6887 = load ptr, ptr %35, align 8, !tbaa !5
  %6888 = load ptr, ptr %27, align 8, !tbaa !5
  %6889 = load i32, ptr %6888, align 4, !tbaa !9
  %6890 = shl i32 %6889, 1
  %6891 = add nsw i32 %6890, 1
  %6892 = sext i32 %6891 to i64
  %6893 = getelementptr inbounds float, ptr %6887, i64 %6892
  %6894 = load ptr, ptr %27, align 8, !tbaa !5
  %6895 = load ptr, ptr %35, align 8, !tbaa !5
  %6896 = load ptr, ptr %27, align 8, !tbaa !5
  %6897 = load i32, ptr %6896, align 4, !tbaa !9
  %6898 = add nsw i32 %6897, 1
  %6899 = sext i32 %6898 to i64
  %6900 = getelementptr inbounds float, ptr %6895, i64 %6899
  %6901 = load ptr, ptr %33, align 8, !tbaa !5
  %6902 = load i32, ptr %44, align 4, !tbaa !9
  %6903 = sext i32 %6902 to i64
  %6904 = getelementptr inbounds float, ptr %6901, i64 %6903
  %6905 = load ptr, ptr %34, align 8, !tbaa !5
  %6906 = load ptr, ptr %35, align 8, !tbaa !5
  %6907 = load ptr, ptr %27, align 8, !tbaa !5
  %6908 = load i32, ptr %6907, align 4, !tbaa !9
  %6909 = shl i32 %6908, 1
  %6910 = load ptr, ptr %27, align 8, !tbaa !5
  %6911 = load i32, ptr %6910, align 4, !tbaa !9
  %6912 = load i32, ptr %86, align 4, !tbaa !9
  %6913 = mul nsw i32 %6911, %6912
  %6914 = add nsw i32 %6909, %6913
  %6915 = load i32, ptr %86, align 4, !tbaa !9
  %6916 = add nsw i32 %6914, %6915
  %6917 = add nsw i32 %6916, 1
  %6918 = sext i32 %6917 to i64
  %6919 = getelementptr inbounds float, ptr %6906, i64 %6918
  call void @sormqr_(ptr noundef @.str.17, ptr noundef @.str.9, ptr noundef %6885, ptr noundef %6886, ptr noundef %86, ptr noundef %6893, ptr noundef %6894, ptr noundef %6900, ptr noundef %6904, ptr noundef %6905, ptr noundef %6919, ptr noundef %45, ptr noundef %65)
  %6920 = load ptr, ptr %27, align 8, !tbaa !5
  %6921 = load i32, ptr %6920, align 4, !tbaa !9
  %6922 = sitofp i32 %6921 to float
  %6923 = fpext float %6922 to double
  %6924 = call double @sqrt(double noundef %6923) #5
  %6925 = load float, ptr %74, align 4, !tbaa !11
  %6926 = fpext float %6925 to double
  %6927 = fmul double %6924, %6926
  %6928 = fptrunc double %6927 to float
  store float %6928, ptr %66, align 4, !tbaa !11
  %6929 = load ptr, ptr %27, align 8, !tbaa !5
  %6930 = load i32, ptr %6929, align 4, !tbaa !9
  store i32 %6930, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %6931

6931:                                             ; preds = %7039, %6871
  %6932 = load i32, ptr %68, align 4, !tbaa !9
  %6933 = load i32, ptr %45, align 4, !tbaa !9
  %6934 = icmp sle i32 %6932, %6933
  br i1 %6934, label %6935, label %7042

6935:                                             ; preds = %6931
  %6936 = load ptr, ptr %27, align 8, !tbaa !5
  %6937 = load i32, ptr %6936, align 4, !tbaa !9
  store i32 %6937, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6938

6938:                                             ; preds = %6971, %6935
  %6939 = load i32, ptr %67, align 4, !tbaa !9
  %6940 = load i32, ptr %46, align 4, !tbaa !9
  %6941 = icmp sle i32 %6939, %6940
  br i1 %6941, label %6942, label %6974

6942:                                             ; preds = %6938
  %6943 = load ptr, ptr %33, align 8, !tbaa !5
  %6944 = load i32, ptr %67, align 4, !tbaa !9
  %6945 = load i32, ptr %68, align 4, !tbaa !9
  %6946 = load i32, ptr %43, align 4, !tbaa !9
  %6947 = mul nsw i32 %6945, %6946
  %6948 = add nsw i32 %6944, %6947
  %6949 = sext i32 %6948 to i64
  %6950 = getelementptr inbounds float, ptr %6943, i64 %6949
  %6951 = load float, ptr %6950, align 4, !tbaa !11
  %6952 = load ptr, ptr %35, align 8, !tbaa !5
  %6953 = load ptr, ptr %27, align 8, !tbaa !5
  %6954 = load i32, ptr %6953, align 4, !tbaa !9
  %6955 = shl i32 %6954, 1
  %6956 = load ptr, ptr %27, align 8, !tbaa !5
  %6957 = load i32, ptr %6956, align 4, !tbaa !9
  %6958 = load i32, ptr %86, align 4, !tbaa !9
  %6959 = mul nsw i32 %6957, %6958
  %6960 = add nsw i32 %6955, %6959
  %6961 = load i32, ptr %86, align 4, !tbaa !9
  %6962 = add nsw i32 %6960, %6961
  %6963 = load ptr, ptr %37, align 8, !tbaa !5
  %6964 = load i32, ptr %67, align 4, !tbaa !9
  %6965 = sext i32 %6964 to i64
  %6966 = getelementptr inbounds i32, ptr %6963, i64 %6965
  %6967 = load i32, ptr %6966, align 4, !tbaa !9
  %6968 = add nsw i32 %6962, %6967
  %6969 = sext i32 %6968 to i64
  %6970 = getelementptr inbounds float, ptr %6952, i64 %6969
  store float %6951, ptr %6970, align 4, !tbaa !11
  br label %6971

6971:                                             ; preds = %6942
  %6972 = load i32, ptr %67, align 4, !tbaa !9
  %6973 = add nsw i32 %6972, 1
  store i32 %6973, ptr %67, align 4, !tbaa !9
  br label %6938, !llvm.loop !84

6974:                                             ; preds = %6938
  %6975 = load ptr, ptr %27, align 8, !tbaa !5
  %6976 = load i32, ptr %6975, align 4, !tbaa !9
  store i32 %6976, ptr %46, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %6977

6977:                                             ; preds = %7006, %6974
  %6978 = load i32, ptr %67, align 4, !tbaa !9
  %6979 = load i32, ptr %46, align 4, !tbaa !9
  %6980 = icmp sle i32 %6978, %6979
  br i1 %6980, label %6981, label %7009

6981:                                             ; preds = %6977
  %6982 = load ptr, ptr %35, align 8, !tbaa !5
  %6983 = load ptr, ptr %27, align 8, !tbaa !5
  %6984 = load i32, ptr %6983, align 4, !tbaa !9
  %6985 = shl i32 %6984, 1
  %6986 = load ptr, ptr %27, align 8, !tbaa !5
  %6987 = load i32, ptr %6986, align 4, !tbaa !9
  %6988 = load i32, ptr %86, align 4, !tbaa !9
  %6989 = mul nsw i32 %6987, %6988
  %6990 = add nsw i32 %6985, %6989
  %6991 = load i32, ptr %86, align 4, !tbaa !9
  %6992 = add nsw i32 %6990, %6991
  %6993 = load i32, ptr %67, align 4, !tbaa !9
  %6994 = add nsw i32 %6992, %6993
  %6995 = sext i32 %6994 to i64
  %6996 = getelementptr inbounds float, ptr %6982, i64 %6995
  %6997 = load float, ptr %6996, align 4, !tbaa !11
  %6998 = load ptr, ptr %33, align 8, !tbaa !5
  %6999 = load i32, ptr %67, align 4, !tbaa !9
  %7000 = load i32, ptr %68, align 4, !tbaa !9
  %7001 = load i32, ptr %43, align 4, !tbaa !9
  %7002 = mul nsw i32 %7000, %7001
  %7003 = add nsw i32 %6999, %7002
  %7004 = sext i32 %7003 to i64
  %7005 = getelementptr inbounds float, ptr %6998, i64 %7004
  store float %6997, ptr %7005, align 4, !tbaa !11
  br label %7006

7006:                                             ; preds = %6981
  %7007 = load i32, ptr %67, align 4, !tbaa !9
  %7008 = add nsw i32 %7007, 1
  store i32 %7008, ptr %67, align 4, !tbaa !9
  br label %6977, !llvm.loop !85

7009:                                             ; preds = %6977
  %7010 = load ptr, ptr %27, align 8, !tbaa !5
  %7011 = load ptr, ptr %33, align 8, !tbaa !5
  %7012 = load i32, ptr %68, align 4, !tbaa !9
  %7013 = load i32, ptr %43, align 4, !tbaa !9
  %7014 = mul nsw i32 %7012, %7013
  %7015 = add nsw i32 %7014, 1
  %7016 = sext i32 %7015 to i64
  %7017 = getelementptr inbounds float, ptr %7011, i64 %7016
  %7018 = call float @snrm2_(ptr noundef %7010, ptr noundef %7017, ptr noundef @c__1)
  %7019 = fdiv float 1.000000e+00, %7018
  store float %7019, ptr %101, align 4, !tbaa !11
  %7020 = load float, ptr %101, align 4, !tbaa !11
  %7021 = load float, ptr %66, align 4, !tbaa !11
  %7022 = fsub float 1.000000e+00, %7021
  %7023 = fcmp olt float %7020, %7022
  br i1 %7023, label %7029, label %7024

7024:                                             ; preds = %7009
  %7025 = load float, ptr %101, align 4, !tbaa !11
  %7026 = load float, ptr %66, align 4, !tbaa !11
  %7027 = fadd float %7026, 1.000000e+00
  %7028 = fcmp ogt float %7025, %7027
  br i1 %7028, label %7029, label %7038

7029:                                             ; preds = %7024, %7009
  %7030 = load ptr, ptr %27, align 8, !tbaa !5
  %7031 = load ptr, ptr %33, align 8, !tbaa !5
  %7032 = load i32, ptr %68, align 4, !tbaa !9
  %7033 = load i32, ptr %43, align 4, !tbaa !9
  %7034 = mul nsw i32 %7032, %7033
  %7035 = add nsw i32 %7034, 1
  %7036 = sext i32 %7035 to i64
  %7037 = getelementptr inbounds float, ptr %7031, i64 %7036
  call void @sscal_(ptr noundef %7030, ptr noundef %101, ptr noundef %7037, ptr noundef @c__1)
  br label %7038

7038:                                             ; preds = %7029, %7024
  br label %7039

7039:                                             ; preds = %7038
  %7040 = load i32, ptr %68, align 4, !tbaa !9
  %7041 = add nsw i32 %7040, 1
  store i32 %7041, ptr %68, align 4, !tbaa !9
  br label %6931, !llvm.loop !86

7042:                                             ; preds = %6931
  %7043 = load i32, ptr %86, align 4, !tbaa !9
  %7044 = load ptr, ptr %26, align 8, !tbaa !5
  %7045 = load i32, ptr %7044, align 4, !tbaa !9
  %7046 = icmp slt i32 %7043, %7045
  br i1 %7046, label %7047, label %7095

7047:                                             ; preds = %7042
  %7048 = load ptr, ptr %26, align 8, !tbaa !5
  %7049 = load i32, ptr %7048, align 4, !tbaa !9
  %7050 = load i32, ptr %86, align 4, !tbaa !9
  %7051 = sub nsw i32 %7049, %7050
  store i32 %7051, ptr %45, align 4, !tbaa !9
  %7052 = load ptr, ptr %31, align 8, !tbaa !5
  %7053 = load i32, ptr %86, align 4, !tbaa !9
  %7054 = add nsw i32 %7053, 1
  %7055 = load i32, ptr %41, align 4, !tbaa !9
  %7056 = add nsw i32 %7054, %7055
  %7057 = sext i32 %7056 to i64
  %7058 = getelementptr inbounds float, ptr %7052, i64 %7057
  %7059 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %86, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %7058, ptr noundef %7059)
  %7060 = load i32, ptr %86, align 4, !tbaa !9
  %7061 = load i32, ptr %76, align 4, !tbaa !9
  %7062 = icmp slt i32 %7060, %7061
  br i1 %7062, label %7063, label %7094

7063:                                             ; preds = %7047
  %7064 = load i32, ptr %76, align 4, !tbaa !9
  %7065 = load i32, ptr %86, align 4, !tbaa !9
  %7066 = sub nsw i32 %7064, %7065
  store i32 %7066, ptr %45, align 4, !tbaa !9
  %7067 = load ptr, ptr %31, align 8, !tbaa !5
  %7068 = load i32, ptr %86, align 4, !tbaa !9
  %7069 = add nsw i32 %7068, 1
  %7070 = load i32, ptr %41, align 4, !tbaa !9
  %7071 = mul nsw i32 %7069, %7070
  %7072 = add nsw i32 %7071, 1
  %7073 = sext i32 %7072 to i64
  %7074 = getelementptr inbounds float, ptr %7067, i64 %7073
  %7075 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %86, ptr noundef %45, ptr noundef @c_b34, ptr noundef @c_b34, ptr noundef %7074, ptr noundef %7075)
  %7076 = load ptr, ptr %26, align 8, !tbaa !5
  %7077 = load i32, ptr %7076, align 4, !tbaa !9
  %7078 = load i32, ptr %86, align 4, !tbaa !9
  %7079 = sub nsw i32 %7077, %7078
  store i32 %7079, ptr %45, align 4, !tbaa !9
  %7080 = load i32, ptr %76, align 4, !tbaa !9
  %7081 = load i32, ptr %86, align 4, !tbaa !9
  %7082 = sub nsw i32 %7080, %7081
  store i32 %7082, ptr %46, align 4, !tbaa !9
  %7083 = load ptr, ptr %31, align 8, !tbaa !5
  %7084 = load i32, ptr %86, align 4, !tbaa !9
  %7085 = add nsw i32 %7084, 1
  %7086 = load i32, ptr %86, align 4, !tbaa !9
  %7087 = add nsw i32 %7086, 1
  %7088 = load i32, ptr %41, align 4, !tbaa !9
  %7089 = mul nsw i32 %7087, %7088
  %7090 = add nsw i32 %7085, %7089
  %7091 = sext i32 %7090 to i64
  %7092 = getelementptr inbounds float, ptr %7083, i64 %7091
  %7093 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.6, ptr noundef %45, ptr noundef %46, ptr noundef @c_b34, ptr noundef @c_b35, ptr noundef %7092, ptr noundef %7093)
  br label %7094

7094:                                             ; preds = %7063, %7047
  br label %7095

7095:                                             ; preds = %7094, %7042
  %7096 = load ptr, ptr %36, align 8, !tbaa !5
  %7097 = load i32, ptr %7096, align 4, !tbaa !9
  %7098 = load ptr, ptr %27, align 8, !tbaa !5
  %7099 = load i32, ptr %7098, align 4, !tbaa !9
  %7100 = sub nsw i32 %7097, %7099
  store i32 %7100, ptr %45, align 4, !tbaa !9
  %7101 = load ptr, ptr %26, align 8, !tbaa !5
  %7102 = load ptr, ptr %27, align 8, !tbaa !5
  %7103 = load ptr, ptr %28, align 8, !tbaa !5
  %7104 = load i32, ptr %40, align 4, !tbaa !9
  %7105 = sext i32 %7104 to i64
  %7106 = getelementptr inbounds float, ptr %7103, i64 %7105
  %7107 = load ptr, ptr %29, align 8, !tbaa !5
  %7108 = load ptr, ptr %35, align 8, !tbaa !5
  %7109 = getelementptr inbounds float, ptr %7108, i64 1
  %7110 = load ptr, ptr %31, align 8, !tbaa !5
  %7111 = load i32, ptr %42, align 4, !tbaa !9
  %7112 = sext i32 %7111 to i64
  %7113 = getelementptr inbounds float, ptr %7110, i64 %7112
  %7114 = load ptr, ptr %32, align 8, !tbaa !5
  %7115 = load ptr, ptr %35, align 8, !tbaa !5
  %7116 = load ptr, ptr %27, align 8, !tbaa !5
  %7117 = load i32, ptr %7116, align 4, !tbaa !9
  %7118 = add nsw i32 %7117, 1
  %7119 = sext i32 %7118 to i64
  %7120 = getelementptr inbounds float, ptr %7115, i64 %7119
  call void @sormqr_(ptr noundef @.str.22, ptr noundef @.str.25, ptr noundef %7101, ptr noundef %76, ptr noundef %7102, ptr noundef %7106, ptr noundef %7107, ptr noundef %7109, ptr noundef %7113, ptr noundef %7114, ptr noundef %7120, ptr noundef %45, ptr noundef %65)
  %7121 = load i32, ptr %98, align 4, !tbaa !9
  %7122 = icmp ne i32 %7121, 0
  br i1 %7122, label %7123, label %7140

7123:                                             ; preds = %7095
  %7124 = load ptr, ptr %26, align 8, !tbaa !5
  %7125 = load i32, ptr %7124, align 4, !tbaa !9
  %7126 = sub nsw i32 %7125, 1
  store i32 %7126, ptr %45, align 4, !tbaa !9
  %7127 = load ptr, ptr %31, align 8, !tbaa !5
  %7128 = load i32, ptr %42, align 4, !tbaa !9
  %7129 = sext i32 %7128 to i64
  %7130 = getelementptr inbounds float, ptr %7127, i64 %7129
  %7131 = load ptr, ptr %32, align 8, !tbaa !5
  %7132 = load ptr, ptr %37, align 8, !tbaa !5
  %7133 = load ptr, ptr %27, align 8, !tbaa !5
  %7134 = load i32, ptr %7133, align 4, !tbaa !9
  %7135 = shl i32 %7134, 1
  %7136 = add nsw i32 %7135, 1
  %7137 = sext i32 %7136 to i64
  %7138 = getelementptr inbounds i32, ptr %7132, i64 %7137
  %7139 = call i32 @slaswp_(ptr noundef %76, ptr noundef %7130, ptr noundef %7131, ptr noundef @c__1, ptr noundef %45, ptr noundef %7138, ptr noundef @c_n1)
  br label %7140

7140:                                             ; preds = %7123, %7095
  br label %7141

7141:                                             ; preds = %7140, %6327
  %7142 = load i32, ptr %97, align 4, !tbaa !9
  %7143 = icmp ne i32 %7142, 0
  br i1 %7143, label %7144, label %7171

7144:                                             ; preds = %7141
  %7145 = load ptr, ptr %27, align 8, !tbaa !5
  %7146 = load i32, ptr %7145, align 4, !tbaa !9
  store i32 %7146, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %7147

7147:                                             ; preds = %7167, %7144
  %7148 = load i32, ptr %67, align 4, !tbaa !9
  %7149 = load i32, ptr %45, align 4, !tbaa !9
  %7150 = icmp sle i32 %7148, %7149
  br i1 %7150, label %7151, label %7170

7151:                                             ; preds = %7147
  %7152 = load ptr, ptr %27, align 8, !tbaa !5
  %7153 = load ptr, ptr %31, align 8, !tbaa !5
  %7154 = load i32, ptr %67, align 4, !tbaa !9
  %7155 = load i32, ptr %41, align 4, !tbaa !9
  %7156 = mul nsw i32 %7154, %7155
  %7157 = add nsw i32 %7156, 1
  %7158 = sext i32 %7157 to i64
  %7159 = getelementptr inbounds float, ptr %7153, i64 %7158
  %7160 = load ptr, ptr %33, align 8, !tbaa !5
  %7161 = load i32, ptr %67, align 4, !tbaa !9
  %7162 = load i32, ptr %43, align 4, !tbaa !9
  %7163 = mul nsw i32 %7161, %7162
  %7164 = add nsw i32 %7163, 1
  %7165 = sext i32 %7164 to i64
  %7166 = getelementptr inbounds float, ptr %7160, i64 %7165
  call void @sswap_(ptr noundef %7152, ptr noundef %7159, ptr noundef @c__1, ptr noundef %7166, ptr noundef @c__1)
  br label %7167

7167:                                             ; preds = %7151
  %7168 = load i32, ptr %67, align 4, !tbaa !9
  %7169 = add nsw i32 %7168, 1
  store i32 %7169, ptr %67, align 4, !tbaa !9
  br label %7147, !llvm.loop !87

7170:                                             ; preds = %7147
  br label %7171

7171:                                             ; preds = %7170, %7141
  br label %7172

7172:                                             ; preds = %7171, %3431
  br label %7173

7173:                                             ; preds = %7172, %3105
  br label %7174

7174:                                             ; preds = %7173, %2692
  %7175 = load float, ptr %81, align 4, !tbaa !11
  %7176 = load float, ptr %99, align 4, !tbaa !11
  %7177 = load ptr, ptr %30, align 8, !tbaa !5
  %7178 = getelementptr inbounds float, ptr %7177, i64 1
  %7179 = load float, ptr %7178, align 4, !tbaa !11
  %7180 = fdiv float %7176, %7179
  %7181 = load float, ptr %80, align 4, !tbaa !11
  %7182 = fmul float %7180, %7181
  %7183 = fcmp ole float %7175, %7182
  br i1 %7183, label %7184, label %7188

7184:                                             ; preds = %7174
  %7185 = load ptr, ptr %30, align 8, !tbaa !5
  %7186 = getelementptr inbounds float, ptr %7185, i64 1
  %7187 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %80, ptr noundef %81, ptr noundef %86, ptr noundef @c__1, ptr noundef %7186, ptr noundef %7187, ptr noundef %65)
  store float 1.000000e+00, ptr %80, align 4, !tbaa !11
  store float 1.000000e+00, ptr %81, align 4, !tbaa !11
  br label %7188

7188:                                             ; preds = %7184, %7174
  %7189 = load i32, ptr %86, align 4, !tbaa !9
  %7190 = load ptr, ptr %27, align 8, !tbaa !5
  %7191 = load i32, ptr %7190, align 4, !tbaa !9
  %7192 = icmp slt i32 %7189, %7191
  br i1 %7192, label %7193, label %7211

7193:                                             ; preds = %7188
  %7194 = load ptr, ptr %27, align 8, !tbaa !5
  %7195 = load i32, ptr %7194, align 4, !tbaa !9
  store i32 %7195, ptr %45, align 4, !tbaa !9
  %7196 = load i32, ptr %86, align 4, !tbaa !9
  %7197 = add nsw i32 %7196, 1
  store i32 %7197, ptr %67, align 4, !tbaa !9
  br label %7198

7198:                                             ; preds = %7207, %7193
  %7199 = load i32, ptr %67, align 4, !tbaa !9
  %7200 = load i32, ptr %45, align 4, !tbaa !9
  %7201 = icmp sle i32 %7199, %7200
  br i1 %7201, label %7202, label %7210

7202:                                             ; preds = %7198
  %7203 = load ptr, ptr %30, align 8, !tbaa !5
  %7204 = load i32, ptr %67, align 4, !tbaa !9
  %7205 = sext i32 %7204 to i64
  %7206 = getelementptr inbounds float, ptr %7203, i64 %7205
  store float 0.000000e+00, ptr %7206, align 4, !tbaa !11
  br label %7207

7207:                                             ; preds = %7202
  %7208 = load i32, ptr %67, align 4, !tbaa !9
  %7209 = add nsw i32 %7208, 1
  store i32 %7209, ptr %67, align 4, !tbaa !9
  br label %7198, !llvm.loop !88

7210:                                             ; preds = %7198
  br label %7211

7211:                                             ; preds = %7210, %7188
  %7212 = load float, ptr %81, align 4, !tbaa !11
  %7213 = load float, ptr %87, align 4, !tbaa !11
  %7214 = fmul float %7212, %7213
  %7215 = load ptr, ptr %35, align 8, !tbaa !5
  %7216 = getelementptr inbounds float, ptr %7215, i64 1
  store float %7214, ptr %7216, align 4, !tbaa !11
  %7217 = load float, ptr %80, align 4, !tbaa !11
  %7218 = load ptr, ptr %35, align 8, !tbaa !5
  %7219 = getelementptr inbounds float, ptr %7218, i64 2
  store float %7217, ptr %7219, align 4, !tbaa !11
  %7220 = load i32, ptr %96, align 4, !tbaa !9
  %7221 = icmp ne i32 %7220, 0
  br i1 %7221, label %7222, label %7226

7222:                                             ; preds = %7211
  %7223 = load float, ptr %88, align 4, !tbaa !11
  %7224 = load ptr, ptr %35, align 8, !tbaa !5
  %7225 = getelementptr inbounds float, ptr %7224, i64 3
  store float %7223, ptr %7225, align 4, !tbaa !11
  br label %7226

7226:                                             ; preds = %7222, %7211
  %7227 = load i32, ptr %73, align 4, !tbaa !9
  %7228 = icmp ne i32 %7227, 0
  br i1 %7228, label %7229, label %7239

7229:                                             ; preds = %7226
  %7230 = load i32, ptr %75, align 4, !tbaa !9
  %7231 = icmp ne i32 %7230, 0
  br i1 %7231, label %7232, label %7239

7232:                                             ; preds = %7229
  %7233 = load float, ptr %78, align 4, !tbaa !11
  %7234 = load ptr, ptr %35, align 8, !tbaa !5
  %7235 = getelementptr inbounds float, ptr %7234, i64 4
  store float %7233, ptr %7235, align 4, !tbaa !11
  %7236 = load float, ptr %79, align 4, !tbaa !11
  %7237 = load ptr, ptr %35, align 8, !tbaa !5
  %7238 = getelementptr inbounds float, ptr %7237, i64 5
  store float %7236, ptr %7238, align 4, !tbaa !11
  br label %7239

7239:                                             ; preds = %7232, %7229, %7226
  %7240 = load i32, ptr %84, align 4, !tbaa !9
  %7241 = icmp ne i32 %7240, 0
  br i1 %7241, label %7242, label %7249

7242:                                             ; preds = %7239
  %7243 = load float, ptr %71, align 4, !tbaa !11
  %7244 = load ptr, ptr %35, align 8, !tbaa !5
  %7245 = getelementptr inbounds float, ptr %7244, i64 6
  store float %7243, ptr %7245, align 4, !tbaa !11
  %7246 = load float, ptr %93, align 4, !tbaa !11
  %7247 = load ptr, ptr %35, align 8, !tbaa !5
  %7248 = getelementptr inbounds float, ptr %7247, i64 7
  store float %7246, ptr %7248, align 4, !tbaa !11
  br label %7249

7249:                                             ; preds = %7242, %7239
  %7250 = load i32, ptr %86, align 4, !tbaa !9
  %7251 = load ptr, ptr %37, align 8, !tbaa !5
  %7252 = getelementptr inbounds i32, ptr %7251, i64 1
  store i32 %7250, ptr %7252, align 4, !tbaa !9
  %7253 = load i32, ptr %104, align 4, !tbaa !9
  %7254 = load ptr, ptr %37, align 8, !tbaa !5
  %7255 = getelementptr inbounds i32, ptr %7254, i64 2
  store i32 %7253, ptr %7255, align 4, !tbaa !9
  %7256 = load i32, ptr %103, align 4, !tbaa !9
  %7257 = load ptr, ptr %37, align 8, !tbaa !5
  %7258 = getelementptr inbounds i32, ptr %7257, i64 3
  store i32 %7256, ptr %7258, align 4, !tbaa !9
  store i32 1, ptr %105, align 4
  br label %7259

7259:                                             ; preds = %7249, %1012, %833, %677, %607, %594
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

declare void @sgeqp3_(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 speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #4

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

declare void @sgesvj_(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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.floor.f64(double) #4

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

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

declare void @strsm_(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 @sswap_(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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = distinct !{!65, !14}
!66 = distinct !{!66, !14}
!67 = distinct !{!67, !14}
!68 = distinct !{!68, !14}
!69 = distinct !{!69, !14}
!70 = distinct !{!70, !14}
!71 = distinct !{!71, !14}
!72 = distinct !{!72, !14}
!73 = distinct !{!73, !14}
!74 = distinct !{!74, !14}
!75 = distinct !{!75, !14}
!76 = distinct !{!76, !14}
!77 = distinct !{!77, !14}
!78 = distinct !{!78, !14}
!79 = distinct !{!79, !14}
!80 = distinct !{!80, !14}
!81 = distinct !{!81, !14}
!82 = distinct !{!82, !14}
!83 = distinct !{!83, !14}
!84 = distinct !{!84, !14}
!85 = distinct !{!85, !14}
!86 = distinct !{!86, !14}
!87 = distinct !{!87, !14}
!88 = distinct !{!88, !14}


; 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
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b34 = external hidden global float, align 4
@c_b35 = external hidden global float, align 4
@c__0 = external hidden global i32, align 4
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [6 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.26 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [6 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @sgejsv_(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) local_unnamed_addr #0 {
  %20 = ptrtoint ptr %15 to i64
  %21 = ptrtoint ptr %13 to i64
  %22 = ptrtoint ptr %15 to i64
  %23 = ptrtoint ptr %11 to i64
  %24 = ptrtoint ptr %15 to i64
  %25 = ptrtoint ptr %11 to i64
  %26 = ptrtoint ptr %15 to i64
  %27 = ptrtoint ptr %13 to i64
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca float, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca i32, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  %42 = getelementptr inbounds i8, ptr %10, i64 -4
  %43 = load i32, ptr %9, align 4, !tbaa !5
  %narrow = xor i32 %43, -1
  %44 = sext i32 %narrow to i64
  %45 = getelementptr inbounds float, ptr %8, i64 %44
  %46 = load i32, ptr %12, align 4, !tbaa !5
  %narrow2295 = xor i32 %46, -1
  %47 = sext i32 %narrow2295 to i64
  %48 = getelementptr inbounds float, ptr %11, i64 %47
  %49 = load i32, ptr %14, align 4, !tbaa !5
  %narrow2296 = xor i32 %49, -1
  %50 = sext i32 %narrow2296 to i64
  %51 = getelementptr inbounds float, ptr %13, i64 %50
  %52 = getelementptr inbounds i8, ptr %15, i64 -4
  %53 = getelementptr inbounds i8, ptr %17, i64 -4
  %54 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #7
  %.not = icmp eq i32 %54, 0
  br i1 %.not, label %55, label %58

55:                                               ; preds = %19
  %56 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #7
  %57 = icmp ne i32 %56, 0
  br label %58

58:                                               ; preds = %55, %19
  %59 = phi i1 [ true, %19 ], [ %57, %55 ]
  %60 = zext i1 %59 to i32
  %61 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #7
  %62 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.3) #7
  %63 = icmp ne i32 %62, 0
  %64 = icmp ne i32 %61, 0
  %65 = select i1 %63, i1 true, i1 %64
  %66 = zext i1 %65 to i32
  %67 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #7
  %.not2101 = icmp eq i32 %67, 0
  br i1 %.not2101, label %68, label %71

68:                                               ; preds = %58
  %69 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #7
  %70 = icmp ne i32 %69, 0
  br label %71

71:                                               ; preds = %68, %58
  %72 = phi i1 [ true, %58 ], [ %70, %68 ]
  %73 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #7
  %74 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #7
  %75 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.7) #7
  %.not2102 = icmp eq i32 %75, 0
  br i1 %.not2102, label %76, label %79

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

79:                                               ; preds = %76, %71
  %80 = phi i1 [ true, %71 ], [ %78, %76 ]
  %81 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.8) #7
  %82 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #7
  %83 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.9) #7
  %84 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str.10) #7
  %85 = icmp ne i32 %73, 0
  %or.cond = select i1 %72, i1 true, i1 %85
  %86 = icmp ne i32 %74, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %86
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %80
  br i1 %or.cond5, label %89, label %87

87:                                               ; preds = %79
  %88 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.11) #7
  %.not2103 = icmp eq i32 %88, 0
  br i1 %.not2103, label %169, label %89

89:                                               ; preds = %87, %79
  br i1 %59, label %94, label %90

90:                                               ; preds = %89
  %91 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.9) #7
  %.not2104 = icmp eq i32 %91, 0
  br i1 %.not2104, label %92, label %94

92:                                               ; preds = %90
  %93 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.12) #7
  %.not2105 = icmp eq i32 %93, 0
  br i1 %.not2105, label %169, label %94

94:                                               ; preds = %92, %90, %89
  br i1 %65, label %99, label %95

95:                                               ; preds = %94
  %96 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.9) #7
  %.not2106 = icmp eq i32 %96, 0
  br i1 %.not2106, label %97, label %.thread

97:                                               ; preds = %95
  %98 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.12) #7
  %.not2107.not = icmp eq i32 %98, 0
  br i1 %.not2107.not, label %169, label %.thread

99:                                               ; preds = %94
  %.old = icmp eq i32 %61, 0
  %or.cond7.old = select i1 %.old, i1 true, i1 %59
  br i1 %or.cond7.old, label %.thread, label %169

.thread:                                          ; preds = %95, %97, %99
  %100 = icmp ne i32 %82, 0
  %101 = icmp ne i32 %83, 0
  %or.cond9 = select i1 %100, i1 true, i1 %101
  br i1 %or.cond9, label %102, label %169

102:                                              ; preds = %.thread
  %.not2108 = icmp eq i32 %81, 0
  br i1 %.not2108, label %103, label %105

103:                                              ; preds = %102
  %104 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.9) #7
  %.not2109 = icmp eq i32 %104, 0
  br i1 %.not2109, label %169, label %105

105:                                              ; preds = %103, %102
  %.not2110 = icmp eq i32 %84, 0
  br i1 %.not2110, label %106, label %108

106:                                              ; preds = %105
  %107 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str.9) #7
  %.not2111 = icmp eq i32 %107, 0
  br i1 %.not2111, label %169, label %108

108:                                              ; preds = %106, %105
  %109 = load i32, ptr %6, align 4, !tbaa !5
  %110 = icmp slt i32 %109, 0
  br i1 %110, label %169, label %111

111:                                              ; preds = %108
  %112 = load i32, ptr %7, align 4, !tbaa !5
  %or.cond2302 = icmp ugt i32 %112, %109
  br i1 %or.cond2302, label %169, label %113

113:                                              ; preds = %111
  %114 = load i32, ptr %9, align 4, !tbaa !5
  %115 = icmp slt i32 %114, %109
  br i1 %115, label %169, label %116

116:                                              ; preds = %113
  br i1 %59, label %117, label %120

117:                                              ; preds = %116
  %118 = load i32, ptr %12, align 4, !tbaa !5
  %119 = icmp slt i32 %118, %109
  br i1 %119, label %169, label %120

120:                                              ; preds = %117, %116
  br i1 %65, label %121, label %124

121:                                              ; preds = %120
  %122 = load i32, ptr %14, align 4, !tbaa !5
  %123 = icmp slt i32 %122, %112
  br i1 %123, label %169, label %124

124:                                              ; preds = %121, %120
  %125 = shl i32 %112, 2
  %126 = or disjoint i32 %125, 1
  %127 = shl nuw i32 %109, 1
  %128 = add nsw i32 %112, %127
  store i32 %128, ptr %29, align 4, !tbaa !5
  %129 = mul nsw i32 %112, %112
  %130 = add nsw i32 %125, %129
  %131 = tail call i32 @llvm.smax.i32(i32 %128, i32 7)
  %132 = shl nuw i32 %112, 1
  %133 = add i32 %132, 6
  %134 = mul i32 %133, %112
  %135 = tail call i32 @llvm.smax.i32(i32 %128, i32 %130)
  %136 = add i32 %133, %129
  %or.cond11 = select i1 %59, i1 true, i1 %65
  %or.cond13 = select i1 %or.cond11, i1 true, i1 %80
  br i1 %or.cond13, label %142, label %137

137:                                              ; preds = %124
  %138 = load i32, ptr %16, align 4, !tbaa !5
  %139 = tail call i32 @llvm.smax.i32(i32 %126, i32 %128)
  %140 = tail call i32 @llvm.smax.i32(i32 %139, i32 7)
  %141 = icmp slt i32 %138, %140
  br i1 %141, label %169, label %142

142:                                              ; preds = %137, %124
  %or.cond15.not = xor i1 %or.cond11, true
  %or.cond17 = select i1 %or.cond15.not, i1 %80, i1 false
  br i1 %or.cond17, label %143, label %147

143:                                              ; preds = %142
  %144 = load i32, ptr %16, align 4, !tbaa !5
  %145 = tail call i32 @llvm.smax.i32(i32 %135, i32 7)
  %146 = icmp slt i32 %144, %145
  br i1 %146, label %169, label %147

147:                                              ; preds = %143, %142
  %148 = xor i1 %59, true
  %or.cond19 = select i1 %148, i1 true, i1 %65
  br i1 %or.cond19, label %153, label %149

149:                                              ; preds = %147
  %150 = load i32, ptr %16, align 4, !tbaa !5
  %151 = tail call i32 @llvm.smax.i32(i32 %131, i32 %126)
  %152 = icmp slt i32 %150, %151
  br i1 %152, label %169, label %153

153:                                              ; preds = %149, %147
  %154 = xor i1 %65, true
  %or.cond21 = select i1 %154, i1 true, i1 %59
  br i1 %or.cond21, label %159, label %155

155:                                              ; preds = %153
  %156 = load i32, ptr %16, align 4, !tbaa !5
  %157 = tail call i32 @llvm.smax.i32(i32 %131, i32 %126)
  %158 = icmp slt i32 %156, %157
  br i1 %158, label %169, label %159

159:                                              ; preds = %155, %153
  %or.cond23 = select i1 %59, i1 %65, i1 false
  %or.cond23.not = xor i1 %or.cond23, true
  %or.cond25 = select i1 %or.cond23.not, i1 true, i1 %64
  br i1 %or.cond25, label %164, label %160

160:                                              ; preds = %159
  %161 = load i32, ptr %16, align 4, !tbaa !5
  %162 = tail call i32 @llvm.smax.i32(i32 %128, i32 %134)
  %163 = icmp slt i32 %161, %162
  br i1 %163, label %169, label %.thread2335

164:                                              ; preds = %159
  %or.cond29 = select i1 %59, i1 %64, i1 false
  br i1 %or.cond29, label %165, label %.thread2335

165:                                              ; preds = %164
  %166 = load i32, ptr %16, align 4, !tbaa !5
  %167 = tail call i32 @llvm.smax.i32(i32 %135, i32 %136)
  %168 = icmp slt i32 %166, %167
  br i1 %168, label %169, label %.thread2335

169:                                              ; preds = %137, %143, %149, %155, %160, %165, %121, %117, %113, %111, %108, %106, %103, %.thread, %97, %99, %92, %87
  %.sink = phi i32 [ -1, %87 ], [ -2, %92 ], [ -3, %99 ], [ -3, %97 ], [ -4, %.thread ], [ -5, %103 ], [ -6, %106 ], [ -7, %108 ], [ -8, %111 ], [ -10, %113 ], [ -13, %117 ], [ -15, %121 ], [ -17, %165 ], [ -17, %160 ], [ -17, %155 ], [ -17, %149 ], [ -17, %143 ], [ -17, %137 ]
  %.ph.neg = phi i32 [ 1, %87 ], [ 2, %92 ], [ 3, %99 ], [ 3, %97 ], [ 4, %.thread ], [ 5, %103 ], [ 6, %106 ], [ 7, %108 ], [ 8, %111 ], [ 10, %113 ], [ 13, %117 ], [ 15, %121 ], [ 17, %165 ], [ 17, %160 ], [ 17, %155 ], [ 17, %149 ], [ 17, %143 ], [ 17, %137 ]
  store i32 %.sink, ptr %18, align 4, !tbaa !5
  store i32 %.ph.neg, ptr %28, align 4, !tbaa !5
  %170 = call i32 @xerbla_(ptr noundef nonnull @.str.13, ptr noundef nonnull %28, i32 noundef 6) #7
  br label %2994

.thread2335:                                      ; preds = %160, %165, %164
  store i32 0, ptr %18, align 4, !tbaa !5
  %171 = load i32, ptr %6, align 4, !tbaa !5
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %176, label %173

173:                                              ; preds = %.thread2335
  %174 = load i32, ptr %7, align 4, !tbaa !5
  %175 = icmp eq i32 %174, 0
  br i1 %175, label %176, label %179

176:                                              ; preds = %173, %.thread2335
  store i32 0, ptr %17, align 4, !tbaa !5
  %177 = getelementptr inbounds i8, ptr %17, i64 4
  store i32 0, ptr %177, align 4, !tbaa !5
  %178 = getelementptr inbounds i8, ptr %17, i64 8
  store i32 0, ptr %178, align 4, !tbaa !5
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(28) %15, i8 0, i64 28, i1 false)
  br label %2994

179:                                              ; preds = %173
  br i1 %59, label %180, label %184

180:                                              ; preds = %179
  store i32 %174, ptr %36, align 4, !tbaa !5
  %181 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #7
  %.not2120 = icmp eq i32 %181, 0
  br i1 %.not2120, label %184, label %182

182:                                              ; preds = %180
  %183 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %183, ptr %36, align 4, !tbaa !5
  br label %184

184:                                              ; preds = %180, %182, %179
  %185 = tail call float @slamch_(ptr noundef nonnull @.str.14) #7
  %186 = tail call float @slamch_(ptr noundef nonnull @.str.15) #7
  %187 = fdiv float %186, %185
  %188 = tail call float @slamch_(ptr noundef nonnull @.str.16) #7
  %189 = load i32, ptr %6, align 4, !tbaa !5
  %190 = sitofp i32 %189 to float
  %191 = load i32, ptr %7, align 4, !tbaa !5
  %192 = sitofp i32 %191 to float
  %193 = fmul float %190, %192
  %194 = fpext float %193 to double
  %195 = tail call double @sqrt(double noundef %194) #7
  %196 = fdiv double 1.000000e+00, %195
  %197 = fptrunc double %196 to float
  store float %197, ptr %40, align 4, !tbaa !9
  %198 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %198, ptr %28, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %45, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21212381 = icmp slt i32 %198, 1
  br i1 %.not21212381, label %._crit_edge.thread, label %.lr.ph

.lr.ph:                                           ; preds = %184, %226
  %199 = phi i32 [ %228, %226 ], [ 1, %184 ]
  %.019332383 = phi i32 [ %.11934, %226 ], [ 1, %184 ]
  %.019422382 = phi i32 [ %.11943, %226 ], [ 1, %184 ]
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 1.000000e+00, ptr %32, align 4, !tbaa !9
  %200 = mul nsw i32 %199, %43
  %201 = sext i32 %200 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %201
  call void @slassq_(ptr noundef nonnull %6, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %32) #7
  %202 = load float, ptr %31, align 4, !tbaa !9
  %203 = fcmp ogt float %202, %188
  br i1 %203, label %204, label %206

204:                                              ; preds = %.lr.ph
  store i32 -9, ptr %18, align 4, !tbaa !5
  store i32 9, ptr %29, align 4, !tbaa !5
  %205 = call i32 @xerbla_(ptr noundef nonnull @.str.13, ptr noundef nonnull %29, i32 noundef 6) #7
  br label %2994

206:                                              ; preds = %.lr.ph
  %207 = load float, ptr %32, align 4, !tbaa !9
  %sqrtf2298 = call float @sqrtf(float noundef %207) #3
  store float %sqrtf2298, ptr %32, align 4, !tbaa !9
  %208 = load float, ptr %31, align 4, !tbaa !9
  %209 = fdiv float %188, %sqrtf2298
  %210 = fcmp uge float %208, %209
  %211 = icmp eq i32 %.019332383, 0
  %or.cond31.not = or i1 %211, %210
  br i1 %or.cond31.not, label %217, label %212

212:                                              ; preds = %206
  %213 = fmul float %sqrtf2298, %208
  %214 = load i32, ptr %35, align 4, !tbaa !5
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds float, ptr %42, i64 %215
  store float %213, ptr %216, align 4, !tbaa !9
  br label %226

217:                                              ; preds = %206
  %218 = load float, ptr %40, align 4, !tbaa !9
  %219 = fmul float %sqrtf2298, %218
  %220 = fmul float %208, %219
  %221 = load i32, ptr %35, align 4, !tbaa !5
  %222 = sext i32 %221 to i64
  %223 = getelementptr inbounds float, ptr %42, i64 %222
  store float %220, ptr %223, align 4, !tbaa !9
  %.not2299 = icmp eq i32 %.019422382, 0
  br i1 %.not2299, label %226, label %224

224:                                              ; preds = %217
  %225 = add nsw i32 %221, -1
  store i32 %225, ptr %29, align 4, !tbaa !5
  call void @sscal_(ptr noundef nonnull %29, ptr noundef nonnull %40, ptr noundef nonnull %10, ptr noundef nonnull @c__1) #7
  %.pre = load i32, ptr %35, align 4, !tbaa !5
  br label %226

226:                                              ; preds = %212, %224, %217
  %227 = phi i32 [ %214, %212 ], [ %.pre, %224 ], [ %221, %217 ]
  %.11943 = phi i32 [ %.019422382, %212 ], [ 0, %224 ], [ 0, %217 ]
  %.11934 = phi i32 [ 1, %212 ], [ 0, %224 ], [ 0, %217 ]
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr %35, align 4, !tbaa !5
  %229 = load i32, ptr %28, align 4, !tbaa !5
  %.not2121.not = icmp slt i32 %227, %229
  br i1 %.not2121.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %226
  br i1 %or.cond31.not, label %230, label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %184, %._crit_edge
  store float 1.000000e+00, ptr %40, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %._crit_edge.thread, %._crit_edge
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float %188, ptr %32, align 4, !tbaa !9
  %231 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %231, ptr %28, align 4, !tbaa !5
  %.not21242385 = icmp slt i32 %231, 1
  br i1 %.not21242385, label %.thread3257, label %.lr.ph2388.preheader

.thread3257:                                      ; preds = %230
  store i32 1, ptr %35, align 4, !tbaa !5
  br label %248

.lr.ph2388.preheader:                             ; preds = %230
  %232 = add nuw i32 %231, 1
  %wide.trip.count = zext i32 %232 to i64
  br label %.lr.ph2388

.lr.ph2388:                                       ; preds = %.lr.ph2388.preheader, %243
  %indvars.iv = phi i64 [ 1, %.lr.ph2388.preheader ], [ %indvars.iv.next, %243 ]
  %233 = phi float [ 0.000000e+00, %.lr.ph2388.preheader ], [ %238, %243 ]
  %234 = phi float [ %188, %.lr.ph2388.preheader ], [ %245, %243 ]
  %235 = getelementptr inbounds float, ptr %42, i64 %indvars.iv
  %236 = load float, ptr %235, align 4, !tbaa !9
  %237 = fcmp oge float %233, %236
  %238 = select i1 %237, float %233, float %236
  %239 = fcmp une float %236, 0.000000e+00
  br i1 %239, label %240, label %243

240:                                              ; preds = %.lr.ph2388
  %241 = fcmp ole float %234, %236
  %242 = select i1 %241, float %234, float %236
  store float %242, ptr %32, align 4, !tbaa !9
  br label %243

243:                                              ; preds = %.lr.ph2388, %240
  %244 = phi float [ %233, %.lr.ph2388 ], [ %234, %240 ]
  %245 = phi float [ %234, %.lr.ph2388 ], [ %242, %240 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %246, label %.lr.ph2388, !llvm.loop !13

246:                                              ; preds = %243
  store float %244, ptr %30, align 4, !tbaa !9
  store float %238, ptr %31, align 4, !tbaa !9
  store i32 %232, ptr %35, align 4, !tbaa !5
  %247 = fcmp oeq float %238, 0.000000e+00
  br i1 %247, label %248, label %264

248:                                              ; preds = %.thread3257, %246
  br i1 %59, label %249, label %250

249:                                              ; preds = %248
  call void @slaset_(ptr noundef nonnull @.str.4, ptr noundef nonnull %6, ptr noundef nonnull %36, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %11, ptr noundef nonnull %12) #7
  br label %250

250:                                              ; preds = %249, %248
  br i1 %65, label %251, label %252

251:                                              ; preds = %250
  call void @slaset_(ptr noundef nonnull @.str.4, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %13, ptr noundef nonnull %14) #7
  br label %252

252:                                              ; preds = %251, %250
  store <2 x float> <float 1.000000e+00, float 1.000000e+00>, ptr %15, align 4, !tbaa !9
  br i1 %80, label %253, label %255

253:                                              ; preds = %252
  %254 = getelementptr inbounds i8, ptr %15, i64 8
  store float 1.000000e+00, ptr %254, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %253, %252
  br i1 %or.cond23, label %256, label %258

256:                                              ; preds = %255
  %257 = getelementptr inbounds i8, ptr %15, i64 12
  store <2 x float> <float 1.000000e+00, float 1.000000e+00>, ptr %257, align 4, !tbaa !9
  br label %258

258:                                              ; preds = %256, %255
  br i1 %.not2108, label %261, label %259

259:                                              ; preds = %258
  %260 = getelementptr inbounds i8, ptr %15, i64 20
  store <2 x float> zeroinitializer, ptr %260, align 4, !tbaa !9
  br label %261

261:                                              ; preds = %259, %258
  store i32 0, ptr %17, align 4, !tbaa !5
  %262 = getelementptr inbounds i8, ptr %17, i64 4
  store i32 0, ptr %262, align 4, !tbaa !5
  %263 = getelementptr inbounds i8, ptr %17, i64 8
  store i32 0, ptr %263, align 4, !tbaa !5
  br label %2994

264:                                              ; preds = %246
  %265 = fcmp ole float %245, %186
  %.01925 = zext i1 %265 to i32
  %266 = icmp eq i32 %231, 1
  br i1 %266, label %267, label %316

267:                                              ; preds = %264
  br i1 %59, label %268, label %283

268:                                              ; preds = %267
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %10, ptr noundef nonnull %40, ptr noundef nonnull %6, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %33) #7
  call void @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %6, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %11, ptr noundef nonnull %12) #7
  %269 = load i32, ptr %36, align 4, !tbaa !5
  %270 = load i32, ptr %7, align 4, !tbaa !5
  %.not2293 = icmp eq i32 %269, %270
  br i1 %.not2293, label %283, label %271

271:                                              ; preds = %268
  %272 = load i32, ptr %16, align 4, !tbaa !5
  %273 = sub nsw i32 %272, %270
  store i32 %273, ptr %28, align 4, !tbaa !5
  %274 = sext i32 %270 to i64
  %275 = getelementptr float, ptr %52, i64 %274
  %276 = getelementptr i8, ptr %275, i64 4
  call void @sgeqrf_(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %15, ptr noundef %276, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %277 = load i32, ptr %16, align 4, !tbaa !5
  %278 = load i32, ptr %7, align 4, !tbaa !5
  %279 = sub nsw i32 %277, %278
  store i32 %279, ptr %28, align 4, !tbaa !5
  %280 = sext i32 %278 to i64
  %281 = getelementptr float, ptr %52, i64 %280
  %282 = getelementptr i8, ptr %281, i64 4
  call void @sorgqr_(ptr noundef nonnull %6, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %15, ptr noundef %282, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  call void @scopy_(ptr noundef nonnull %6, ptr noundef %8, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull @c__1) #7
  br label %283

283:                                              ; preds = %268, %271, %267
  br i1 %65, label %284, label %285

284:                                              ; preds = %283
  store float 1.000000e+00, ptr %13, align 4, !tbaa !9
  br label %285

285:                                              ; preds = %284, %283
  %286 = load float, ptr %10, align 4, !tbaa !9
  %287 = load float, ptr %40, align 4, !tbaa !9
  %288 = fmul float %188, %287
  %289 = fcmp olt float %286, %288
  br i1 %289, label %290, label %292

290:                                              ; preds = %285
  %291 = fdiv float %286, %287
  store float %291, ptr %10, align 4, !tbaa !9
  br label %292

292:                                              ; preds = %290, %285
  %293 = phi float [ 1.000000e+00, %290 ], [ %287, %285 ]
  %294 = fdiv float 1.000000e+00, %293
  store float %294, ptr %15, align 4, !tbaa !9
  %295 = getelementptr inbounds i8, ptr %15, i64 4
  store float 1.000000e+00, ptr %295, align 4, !tbaa !9
  %296 = load float, ptr %10, align 4, !tbaa !9
  %297 = fcmp une float %296, 0.000000e+00
  br i1 %297, label %298, label %304

298:                                              ; preds = %292
  store i32 1, ptr %17, align 4, !tbaa !5
  %299 = fdiv float %296, %293
  %300 = fcmp ult float %299, %186
  %301 = getelementptr inbounds i8, ptr %17, i64 4
  br i1 %300, label %303, label %302

302:                                              ; preds = %298
  store i32 1, ptr %301, align 4, !tbaa !5
  br label %306

303:                                              ; preds = %298
  store i32 0, ptr %301, align 4, !tbaa !5
  br label %306

304:                                              ; preds = %292
  store i32 0, ptr %17, align 4, !tbaa !5
  %305 = getelementptr inbounds i8, ptr %17, i64 4
  store i32 0, ptr %305, align 4, !tbaa !5
  br label %306

306:                                              ; preds = %302, %303, %304
  %307 = getelementptr inbounds i8, ptr %17, i64 8
  store i32 0, ptr %307, align 4, !tbaa !5
  br i1 %80, label %308, label %310

308:                                              ; preds = %306
  %309 = getelementptr inbounds i8, ptr %15, i64 8
  store float 1.000000e+00, ptr %309, align 4, !tbaa !9
  br label %310

310:                                              ; preds = %308, %306
  br i1 %or.cond23, label %311, label %313

311:                                              ; preds = %310
  %312 = getelementptr inbounds i8, ptr %15, i64 12
  store <2 x float> <float 1.000000e+00, float 1.000000e+00>, ptr %312, align 4, !tbaa !9
  br label %313

313:                                              ; preds = %311, %310
  br i1 %.not2108, label %2994, label %314

314:                                              ; preds = %313
  %315 = getelementptr inbounds i8, ptr %15, i64 20
  store <2 x float> zeroinitializer, ptr %315, align 4, !tbaa !9
  br label %2994

316:                                              ; preds = %264
  br i1 %.not2108, label %.thread2339, label %317

317:                                              ; preds = %316
  %318 = load i32, ptr %6, align 4, !tbaa !5
  %319 = icmp eq i32 %318, %231
  %or.cond37 = select i1 %72, i1 true, i1 %319
  br i1 %or.cond37, label %320, label %.thread2342

.thread2339:                                      ; preds = %316
  br i1 %72, label %.thread2339..thread2341_crit_edge, label %.thread2342

.thread2339..thread2341_crit_edge:                ; preds = %.thread2339
  %.pre3172 = load i32, ptr %6, align 4, !tbaa !5
  br label %.thread2341

320:                                              ; preds = %317
  br i1 %319, label %321, label %.thread2341

321:                                              ; preds = %320
  store i32 %231, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  br i1 %.not21242385, label %.loopexit2378, label %.lr.ph2397

.lr.ph2397:                                       ; preds = %321, %354
  %.019352395 = phi float [ %349, %354 ], [ -1.000000e+00, %321 ]
  %.019382394 = phi float [ %.11939, %354 ], [ %188, %321 ]
  %storemerge21282393 = phi i32 [ %355, %354 ], [ 1, %321 ]
  store float 0.000000e+00, ptr %41, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %322 = add nsw i32 %storemerge21282393, %43
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds float, ptr %45, i64 %323
  call void @slassq_(ptr noundef nonnull %7, ptr noundef %324, ptr noundef nonnull %9, ptr noundef nonnull %41, ptr noundef nonnull %34) #7
  %325 = load float, ptr %41, align 4, !tbaa !9
  %326 = load float, ptr %40, align 4, !tbaa !9
  %327 = fmul float %325, %326
  %328 = load i32, ptr %6, align 4, !tbaa !5
  %329 = load i32, ptr %7, align 4, !tbaa !5
  %330 = add nsw i32 %329, %328
  %331 = load i32, ptr %35, align 4, !tbaa !5
  %332 = add nsw i32 %330, %331
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds float, ptr %52, i64 %333
  store float %327, ptr %334, align 4, !tbaa !9
  %335 = fpext float %325 to double
  %336 = fpext float %326 to double
  %337 = load float, ptr %34, align 4, !tbaa !9
  %338 = fpext float %337 to double
  %339 = call double @sqrt(double noundef %338) #7
  %340 = fmul double %339, %336
  %341 = fmul double %340, %335
  %342 = fptrunc double %341 to float
  %343 = load i32, ptr %7, align 4, !tbaa !5
  %344 = load i32, ptr %35, align 4, !tbaa !5
  %345 = add nsw i32 %344, %343
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds float, ptr %52, i64 %346
  store float %342, ptr %347, align 4, !tbaa !9
  store float %.019352395, ptr %30, align 4, !tbaa !9
  %348 = fcmp oge float %.019352395, %342
  %349 = select i1 %348, float %.019352395, float %342
  %350 = fcmp une float %342, 0.000000e+00
  br i1 %350, label %351, label %354

351:                                              ; preds = %.lr.ph2397
  store float %.019382394, ptr %30, align 4, !tbaa !9
  %352 = fcmp ole float %.019382394, %342
  %353 = select i1 %352, float %.019382394, float %342
  br label %354

354:                                              ; preds = %.lr.ph2397, %351
  %.11939 = phi float [ %353, %351 ], [ %.019382394, %.lr.ph2397 ]
  %355 = add nsw i32 %344, 1
  store i32 %355, ptr %35, align 4, !tbaa !5
  %356 = load i32, ptr %28, align 4, !tbaa !5
  %.not2129.not = icmp slt i32 %344, %356
  br i1 %.not2129.not, label %.lr.ph2397, label %.loopexit2378, !llvm.loop !14

.thread2341:                                      ; preds = %.thread2339..thread2341_crit_edge, %320
  %357 = phi i32 [ %.pre3172, %.thread2339..thread2341_crit_edge ], [ %318, %320 ]
  store i32 %357, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21272400 = icmp slt i32 %357, 1
  br i1 %.not21272400, label %.thread2342, label %.lr.ph2404

.lr.ph2404:                                       ; preds = %.thread2341, %.lr.ph2404
  %.219402402 = phi float [ %380, %.lr.ph2404 ], [ %188, %.thread2341 ]
  %storemerge21262401 = phi i32 [ %381, %.lr.ph2404 ], [ 1, %.thread2341 ]
  %358 = load float, ptr %40, align 4, !tbaa !9
  %359 = add nsw i32 %storemerge21262401, %43
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds float, ptr %45, i64 %360
  %362 = call i32 @isamax_(ptr noundef nonnull %7, ptr noundef %361, ptr noundef nonnull %9) #7
  %363 = mul nsw i32 %362, %43
  %364 = add nsw i32 %363, %storemerge21262401
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds float, ptr %45, i64 %365
  %367 = load float, ptr %366, align 4, !tbaa !9
  %368 = fcmp oge float %367, 0.000000e+00
  %369 = fneg float %367
  %370 = select i1 %368, float %367, float %369
  %371 = fmul float %358, %370
  %372 = load i32, ptr %6, align 4, !tbaa !5
  %373 = load i32, ptr %7, align 4, !tbaa !5
  %374 = add nsw i32 %373, %372
  %375 = load i32, ptr %35, align 4, !tbaa !5
  %376 = add nsw i32 %374, %375
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds float, ptr %52, i64 %377
  store float %371, ptr %378, align 4, !tbaa !9
  store float %.219402402, ptr %30, align 4, !tbaa !9
  %379 = fcmp ole float %.219402402, %371
  %380 = select i1 %379, float %.219402402, float %371
  %381 = add nsw i32 %375, 1
  store i32 %381, ptr %35, align 4, !tbaa !5
  %382 = load i32, ptr %28, align 4, !tbaa !5
  %.not2127.not = icmp slt i32 %375, %382
  br i1 %.not2127.not, label %.lr.ph2404, label %.thread2342, !llvm.loop !15

.loopexit2378:                                    ; preds = %354, %321
  %.31941 = phi float [ %188, %321 ], [ %.11939, %354 ]
  %.21937 = phi float [ -1.000000e+00, %321 ], [ %349, %354 ]
  store float 0.000000e+00, ptr %41, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  call void @slassq_(ptr noundef nonnull %7, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef nonnull %34) #7
  %383 = load float, ptr %34, align 4, !tbaa !9
  %384 = fdiv float 1.000000e+00, %383
  store float %384, ptr %34, align 4, !tbaa !9
  %385 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %385, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21312407 = icmp slt i32 %385, 1
  br i1 %.not21312407, label %._crit_edge2412, label %.lr.ph2411

.lr.ph2411:                                       ; preds = %.loopexit2378, %402
  %386 = phi i32 [ %403, %402 ], [ %385, %.loopexit2378 ]
  %.019542409 = phi float [ %.11955, %402 ], [ 0.000000e+00, %.loopexit2378 ]
  %storemerge21302408 = phi i32 [ %405, %402 ], [ 1, %.loopexit2378 ]
  %387 = sext i32 %storemerge21302408 to i64
  %388 = getelementptr inbounds float, ptr %42, i64 %387
  %389 = load float, ptr %388, align 4, !tbaa !9
  %390 = load float, ptr %41, align 4, !tbaa !9
  %391 = fdiv float %389, %390
  store float %391, ptr %30, align 4, !tbaa !9
  %392 = fmul float %391, %391
  %393 = load float, ptr %34, align 4, !tbaa !9
  %394 = fmul float %392, %393
  %395 = fcmp une float %394, 0.000000e+00
  br i1 %395, label %396, label %402

396:                                              ; preds = %.lr.ph2411
  %397 = fpext float %394 to double
  %398 = call double @log(double noundef %397) #7
  %399 = fpext float %.019542409 to double
  %400 = call double @llvm.fmuladd.f64(double %397, double %398, double %399)
  %401 = fptrunc double %400 to float
  %.pre3173 = load i32, ptr %35, align 4, !tbaa !5
  %.pre3174 = load i32, ptr %28, align 4, !tbaa !5
  br label %402

402:                                              ; preds = %.lr.ph2411, %396
  %403 = phi i32 [ %.pre3174, %396 ], [ %386, %.lr.ph2411 ]
  %404 = phi i32 [ %.pre3173, %396 ], [ %storemerge21302408, %.lr.ph2411 ]
  %.11955 = phi float [ %401, %396 ], [ %.019542409, %.lr.ph2411 ]
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr %35, align 4, !tbaa !5
  %.not2131.not = icmp slt i32 %404, %403
  br i1 %.not2131.not, label %.lr.ph2411, label %._crit_edge2412.loopexit, !llvm.loop !16

._crit_edge2412.loopexit:                         ; preds = %402
  %.pre3175 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2412

._crit_edge2412:                                  ; preds = %._crit_edge2412.loopexit, %.loopexit2378
  %406 = phi i32 [ %385, %.loopexit2378 ], [ %.pre3175, %._crit_edge2412.loopexit ]
  %.01954.lcssa = phi float [ 0.000000e+00, %.loopexit2378 ], [ %.11955, %._crit_edge2412.loopexit ]
  %407 = fneg float %.01954.lcssa
  %408 = fpext float %407 to double
  %409 = sitofp i32 %406 to float
  %410 = fpext float %409 to double
  %411 = call double @log(double noundef %410) #7
  %412 = fdiv double %408, %411
  %413 = fptrunc double %412 to float
  %414 = load i32, ptr %7, align 4, !tbaa !5
  %415 = load i32, ptr %6, align 4, !tbaa !5
  %416 = add nsw i32 %415, %414
  store i32 %416, ptr %28, align 4, !tbaa !5
  %storemerge21322414 = add nsw i32 %414, 1
  store i32 %storemerge21322414, ptr %35, align 4, !tbaa !5
  %.not2133.not2415 = icmp sgt i32 %415, 0
  br i1 %.not2133.not2415, label %.lr.ph2419, label %._crit_edge2420

.lr.ph2419:                                       ; preds = %._crit_edge2412, %433
  %417 = phi i32 [ %434, %433 ], [ %416, %._crit_edge2412 ]
  %storemerge21322417 = phi i32 [ %storemerge2132, %433 ], [ %storemerge21322414, %._crit_edge2412 ]
  %.019302416 = phi float [ %.11931, %433 ], [ 0.000000e+00, %._crit_edge2412 ]
  %418 = sext i32 %storemerge21322417 to i64
  %419 = getelementptr inbounds float, ptr %52, i64 %418
  %420 = load float, ptr %419, align 4, !tbaa !9
  %421 = load float, ptr %41, align 4, !tbaa !9
  %422 = fdiv float %420, %421
  store float %422, ptr %30, align 4, !tbaa !9
  %423 = fmul float %422, %422
  %424 = load float, ptr %34, align 4, !tbaa !9
  %425 = fmul float %423, %424
  %426 = fcmp une float %425, 0.000000e+00
  br i1 %426, label %427, label %433

427:                                              ; preds = %.lr.ph2419
  %428 = fpext float %425 to double
  %429 = call double @log(double noundef %428) #7
  %430 = fpext float %.019302416 to double
  %431 = call double @llvm.fmuladd.f64(double %428, double %429, double %430)
  %432 = fptrunc double %431 to float
  %.pre3176 = load i32, ptr %35, align 4, !tbaa !5
  %.pre3177 = load i32, ptr %28, align 4, !tbaa !5
  br label %433

433:                                              ; preds = %.lr.ph2419, %427
  %434 = phi i32 [ %.pre3177, %427 ], [ %417, %.lr.ph2419 ]
  %435 = phi i32 [ %.pre3176, %427 ], [ %storemerge21322417, %.lr.ph2419 ]
  %.11931 = phi float [ %432, %427 ], [ %.019302416, %.lr.ph2419 ]
  %storemerge2132 = add nsw i32 %435, 1
  store i32 %storemerge2132, ptr %35, align 4, !tbaa !5
  %.not2133.not = icmp slt i32 %435, %434
  br i1 %.not2133.not, label %.lr.ph2419, label %._crit_edge2420.loopexit, !llvm.loop !17

._crit_edge2420.loopexit:                         ; preds = %433
  %.pre3178 = load i32, ptr %6, align 4, !tbaa !5
  br label %._crit_edge2420

._crit_edge2420:                                  ; preds = %._crit_edge2420.loopexit, %._crit_edge2412
  %436 = phi i32 [ %415, %._crit_edge2412 ], [ %.pre3178, %._crit_edge2420.loopexit ]
  %.01930.lcssa = phi float [ 0.000000e+00, %._crit_edge2412 ], [ %.11931, %._crit_edge2420.loopexit ]
  %437 = fneg float %.01930.lcssa
  %438 = fpext float %437 to double
  %439 = sitofp i32 %436 to float
  %440 = fpext float %439 to double
  %441 = call double @log(double noundef %440) #7
  %442 = fdiv double %438, %441
  %443 = fptrunc double %442 to float
  %444 = fcmp olt float %443, %413
  br i1 %444, label %445, label %.thread2342

445:                                              ; preds = %._crit_edge2420
  %446 = load i32, ptr %7, align 4, !tbaa !5
  %.not2135.not2424 = icmp sgt i32 %446, 1
  br i1 %.not2135.not2424, label %.lr.ph2427.preheader, label %469

.lr.ph2427.preheader:                             ; preds = %445
  %447 = sext i32 %43 to i64
  %wide.trip.count2977 = zext nneg i32 %446 to i64
  %ident.check.not = icmp eq i32 %43, 1
  %448 = add nsw i64 %wide.trip.count2977, -1
  br label %.lr.ph2427

.lr.ph2427:                                       ; preds = %.lr.ph2427.preheader, %.loopexit3599
  %indvar = phi i64 [ 0, %.lr.ph2427.preheader ], [ %indvar.next, %.loopexit3599 ]
  %indvars.iv2969 = phi i64 [ 1, %.lr.ph2427.preheader ], [ %indvars.iv.next2970, %.loopexit3599 ]
  %449 = xor i64 %indvar, -1
  %450 = add i64 %449, %wide.trip.count2977
  %451 = mul nsw i64 %indvars.iv2969, %447
  %invariant.gep3314 = getelementptr float, ptr %45, i64 %451
  %invariant.gep3316 = getelementptr float, ptr %45, i64 %indvars.iv2969
  %min.iters.check = icmp ugt i64 %450, 7
  %or.cond3600 = select i1 %min.iters.check, i1 %ident.check.not, i1 false
  br i1 %or.cond3600, label %vector.ph, label %scalar.ph.preheader

vector.ph:                                        ; preds = %.lr.ph2427
  %n.vec = and i64 %450, -8
  %ind.end = add i64 %indvars.iv2969, %n.vec
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = add i64 %indvars.iv2969, %index
  %452 = add nuw nsw i64 %offset.idx, 1
  %453 = getelementptr float, ptr %invariant.gep3314, i64 %452
  %454 = getelementptr i8, ptr %453, i64 16
  %wide.load = load <4 x float>, ptr %453, align 4, !tbaa !9
  %wide.load3420 = load <4 x float>, ptr %454, align 4, !tbaa !9
  %455 = getelementptr float, ptr %invariant.gep3316, i64 %452
  %456 = getelementptr i8, ptr %455, i64 16
  %wide.load3421 = load <4 x float>, ptr %455, align 4, !tbaa !9
  %wide.load3422 = load <4 x float>, ptr %456, align 4, !tbaa !9
  store <4 x float> %wide.load3421, ptr %453, align 4, !tbaa !9
  store <4 x float> %wide.load3422, ptr %454, align 4, !tbaa !9
  store <4 x float> %wide.load, ptr %455, align 4, !tbaa !9
  store <4 x float> %wide.load3420, ptr %456, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %457 = icmp eq i64 %index.next, %n.vec
  br i1 %457, label %middle.block, label %vector.body, !llvm.loop !18

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %450, %n.vec
  br i1 %cmp.n, label %.loopexit3599, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph2427
  %indvars.iv2971.ph = phi i64 [ %indvars.iv2969, %.lr.ph2427 ], [ %ind.end, %middle.block ]
  %458 = sub i64 %wide.trip.count2977, %indvars.iv2971.ph
  %xtraiter = and i64 %458, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader
  %indvars.iv.next2972.prol = add nuw nsw i64 %indvars.iv2971.ph, 1
  %gep3315.prol = getelementptr float, ptr %invariant.gep3314, i64 %indvars.iv.next2972.prol
  %459 = load float, ptr %gep3315.prol, align 4, !tbaa !9
  %460 = mul nsw i64 %indvars.iv.next2972.prol, %447
  %gep3317.prol = getelementptr float, ptr %invariant.gep3316, i64 %460
  %461 = load float, ptr %gep3317.prol, align 4, !tbaa !9
  store float %461, ptr %gep3315.prol, align 4, !tbaa !9
  store float %459, ptr %gep3317.prol, align 4, !tbaa !9
  br label %scalar.ph.prol.loopexit

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv2971.unr = phi i64 [ %indvars.iv2971.ph, %scalar.ph.preheader ], [ %indvars.iv.next2972.prol, %scalar.ph.prol ]
  %462 = icmp eq i64 %indvars.iv2971.ph, %448
  br i1 %462, label %.loopexit3599, label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %indvars.iv2971 = phi i64 [ %indvars.iv.next2972.1, %scalar.ph ], [ %indvars.iv2971.unr, %scalar.ph.prol.loopexit ]
  %indvars.iv.next2972 = add nuw nsw i64 %indvars.iv2971, 1
  %gep3315 = getelementptr float, ptr %invariant.gep3314, i64 %indvars.iv.next2972
  %463 = load float, ptr %gep3315, align 4, !tbaa !9
  %464 = mul nsw i64 %indvars.iv.next2972, %447
  %gep3317 = getelementptr float, ptr %invariant.gep3316, i64 %464
  %465 = load float, ptr %gep3317, align 4, !tbaa !9
  store float %465, ptr %gep3315, align 4, !tbaa !9
  store float %463, ptr %gep3317, align 4, !tbaa !9
  %indvars.iv.next2972.1 = add nuw nsw i64 %indvars.iv2971, 2
  %gep3315.1 = getelementptr float, ptr %invariant.gep3314, i64 %indvars.iv.next2972.1
  %466 = load float, ptr %gep3315.1, align 4, !tbaa !9
  %467 = mul nsw i64 %indvars.iv.next2972.1, %447
  %gep3317.1 = getelementptr float, ptr %invariant.gep3316, i64 %467
  %468 = load float, ptr %gep3317.1, align 4, !tbaa !9
  store float %468, ptr %gep3315.1, align 4, !tbaa !9
  store float %466, ptr %gep3317.1, align 4, !tbaa !9
  %exitcond2975.not.1 = icmp eq i64 %indvars.iv.next2972.1, %wide.trip.count2977
  br i1 %exitcond2975.not.1, label %.loopexit3599, label %scalar.ph, !llvm.loop !21

.loopexit3599:                                    ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  %indvars.iv.next2970 = add nuw nsw i64 %indvars.iv2969, 1
  %exitcond2978.not = icmp eq i64 %indvars.iv.next2970, %wide.trip.count2977
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond2978.not, label %._crit_edge2428, label %.lr.ph2427, !llvm.loop !22

._crit_edge2428:                                  ; preds = %.loopexit3599
  store i32 %446, ptr %29, align 4, !tbaa !5
  br label %469

469:                                              ; preds = %._crit_edge2428, %445
  store i32 %446, ptr %28, align 4, !tbaa !5
  %.not21372430 = icmp slt i32 %446, 1
  br i1 %.not21372430, label %._crit_edge2434, label %.lr.ph2433

.lr.ph2433:                                       ; preds = %469
  %470 = load i32, ptr %6, align 4, !tbaa !5
  %471 = zext nneg i32 %446 to i64
  %472 = add nuw i32 %446, 1
  %wide.trip.count2982 = zext i32 %472 to i64
  %invariant.gep3318 = getelementptr inbounds float, ptr %52, i64 %471
  %473 = zext nneg i32 %446 to i64
  %min.iters.check3437 = icmp ult i32 %446, 36
  br i1 %min.iters.check3437, label %scalar.ph3436.preheader, label %vector.scevcheck3423

vector.scevcheck3423:                             ; preds = %.lr.ph2433
  %474 = add nsw i64 %wide.trip.count2982, -2
  %475 = add i32 %446, %470
  %476 = add i32 %475, 1
  %477 = trunc i64 %474 to i32
  %478 = add i32 %476, %477
  %479 = icmp slt i32 %478, %476
  %480 = icmp ugt i64 %474, 4294967295
  %481 = or i1 %479, %480
  br i1 %481, label %scalar.ph3436.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck3423
  %482 = add i32 %446, %470
  %483 = add i32 %482, 1
  %484 = sext i32 %483 to i64
  %485 = shl nsw i64 %484, 2
  %486 = getelementptr i8, ptr %15, i64 %485
  %487 = shl nuw nsw i64 %wide.trip.count2982, 2
  %488 = getelementptr i8, ptr %15, i64 %485
  %489 = getelementptr i8, ptr %488, i64 %487
  %scevgep3424 = getelementptr i8, ptr %489, i64 -8
  %490 = getelementptr i8, ptr %10, i64 %487
  %scevgep3425 = getelementptr i8, ptr %490, i64 -4
  %491 = shl nuw nsw i64 %471, 2
  %scevgep3426 = getelementptr i8, ptr %15, i64 %491
  %492 = getelementptr i8, ptr %15, i64 %491
  %493 = getelementptr i8, ptr %492, i64 %487
  %scevgep3427 = getelementptr i8, ptr %493, i64 -4
  %bound0 = icmp ult ptr %486, %490
  %bound1 = icmp ugt ptr %scevgep3424, %10
  %found.conflict = and i1 %bound0, %bound1
  %bound03428 = icmp ult ptr %486, %493
  %bound13429 = icmp ult ptr %scevgep3426, %scevgep3424
  %found.conflict3430 = and i1 %bound03428, %bound13429
  %conflict.rdx = or i1 %found.conflict, %found.conflict3430
  %bound03431 = icmp ugt ptr %scevgep3427, %10
  %bound13432 = icmp ult ptr %scevgep3426, %scevgep3425
  %found.conflict3433 = and i1 %bound03431, %bound13432
  %conflict.rdx3434 = or i1 %conflict.rdx, %found.conflict3433
  br i1 %conflict.rdx3434, label %scalar.ph3436.preheader, label %vector.ph3438

vector.ph3438:                                    ; preds = %vector.memcheck
  %n.vec3440 = and i64 %473, 2147483640
  %ind.end3441 = or disjoint i64 %n.vec3440, 1
  br label %vector.body3443

vector.body3443:                                  ; preds = %vector.body3443, %vector.ph3438
  %index3444 = phi i64 [ 0, %vector.ph3438 ], [ %index.next3451, %vector.body3443 ]
  %offset.idx3445 = or disjoint i64 %index3444, 1
  %494 = trunc i64 %index3444 to i32
  %495 = or disjoint i32 %494, 1
  %496 = getelementptr float, ptr %10, i64 %index3444
  %497 = getelementptr inbounds i8, ptr %496, i64 16
  %wide.load3447 = load <4 x float>, ptr %496, align 4, !tbaa !9, !alias.scope !23, !noalias !26
  %wide.load3448 = load <4 x float>, ptr %497, align 4, !tbaa !9, !alias.scope !23, !noalias !26
  %498 = add i32 %446, %495
  %499 = add i32 %498, %470
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds float, ptr %52, i64 %500
  %502 = getelementptr inbounds i8, ptr %501, i64 16
  store <4 x float> %wide.load3447, ptr %501, align 4, !tbaa !9, !alias.scope !28, !noalias !30
  store <4 x float> %wide.load3448, ptr %502, align 4, !tbaa !9, !alias.scope !28, !noalias !30
  %503 = getelementptr inbounds float, ptr %invariant.gep3318, i64 %offset.idx3445
  %504 = getelementptr inbounds i8, ptr %503, i64 16
  %wide.load3449 = load <4 x float>, ptr %503, align 4, !tbaa !9, !alias.scope !26
  %wide.load3450 = load <4 x float>, ptr %504, align 4, !tbaa !9, !alias.scope !26
  store <4 x float> %wide.load3449, ptr %496, align 4, !tbaa !9, !alias.scope !23, !noalias !26
  store <4 x float> %wide.load3450, ptr %497, align 4, !tbaa !9, !alias.scope !23, !noalias !26
  %index.next3451 = add nuw i64 %index3444, 8
  %505 = icmp eq i64 %index.next3451, %n.vec3440
  br i1 %505, label %middle.block3435, label %vector.body3443, !llvm.loop !31

middle.block3435:                                 ; preds = %vector.body3443
  %cmp.n3452 = icmp eq i64 %n.vec3440, %473
  br i1 %cmp.n3452, label %._crit_edge2434, label %scalar.ph3436.preheader

scalar.ph3436.preheader:                          ; preds = %middle.block3435, %vector.memcheck, %vector.scevcheck3423, %.lr.ph2433
  %indvars.iv2979.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %vector.scevcheck3423 ], [ 1, %.lr.ph2433 ], [ %ind.end3441, %middle.block3435 ]
  %506 = zext nneg i32 %446 to i64
  %507 = and i32 %446, 1
  %lcmp.mod3655.not = icmp eq i32 %507, 0
  br i1 %lcmp.mod3655.not, label %scalar.ph3436.prol.loopexit, label %scalar.ph3436.prol

scalar.ph3436.prol:                               ; preds = %scalar.ph3436.preheader
  %508 = getelementptr inbounds float, ptr %42, i64 %indvars.iv2979.ph
  %509 = load float, ptr %508, align 4, !tbaa !9
  %510 = trunc nsw i64 %indvars.iv2979.ph to i32
  %511 = add i32 %446, %510
  %512 = add i32 %511, %470
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds float, ptr %52, i64 %513
  store float %509, ptr %514, align 4, !tbaa !9
  %gep3319.prol = getelementptr inbounds float, ptr %invariant.gep3318, i64 %indvars.iv2979.ph
  %515 = load float, ptr %gep3319.prol, align 4, !tbaa !9
  store float %515, ptr %508, align 4, !tbaa !9
  %indvars.iv.next2980.prol = add nuw nsw i64 %indvars.iv2979.ph, 1
  br label %scalar.ph3436.prol.loopexit

scalar.ph3436.prol.loopexit:                      ; preds = %scalar.ph3436.prol, %scalar.ph3436.preheader
  %indvars.iv2979.unr = phi i64 [ %indvars.iv2979.ph, %scalar.ph3436.preheader ], [ %indvars.iv.next2980.prol, %scalar.ph3436.prol ]
  %516 = icmp eq i64 %indvars.iv2979.ph, %506
  br i1 %516, label %._crit_edge2434, label %scalar.ph3436

scalar.ph3436:                                    ; preds = %scalar.ph3436.prol.loopexit, %scalar.ph3436
  %indvars.iv2979 = phi i64 [ %indvars.iv.next2980.1, %scalar.ph3436 ], [ %indvars.iv2979.unr, %scalar.ph3436.prol.loopexit ]
  %517 = getelementptr inbounds float, ptr %42, i64 %indvars.iv2979
  %518 = load float, ptr %517, align 4, !tbaa !9
  %519 = trunc i64 %indvars.iv2979 to i32
  %520 = add i32 %446, %519
  %521 = add i32 %520, %470
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds float, ptr %52, i64 %522
  store float %518, ptr %523, align 4, !tbaa !9
  %gep3319 = getelementptr inbounds float, ptr %invariant.gep3318, i64 %indvars.iv2979
  %524 = load float, ptr %gep3319, align 4, !tbaa !9
  store float %524, ptr %517, align 4, !tbaa !9
  %indvars.iv.next2980 = add nuw nsw i64 %indvars.iv2979, 1
  %525 = getelementptr float, ptr %10, i64 %indvars.iv2979
  %526 = load float, ptr %525, align 4, !tbaa !9
  %527 = trunc i64 %indvars.iv.next2980 to i32
  %528 = add i32 %446, %527
  %529 = add i32 %528, %470
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds float, ptr %52, i64 %530
  store float %526, ptr %531, align 4, !tbaa !9
  %gep3319.1 = getelementptr inbounds float, ptr %invariant.gep3318, i64 %indvars.iv.next2980
  %532 = load float, ptr %gep3319.1, align 4, !tbaa !9
  store float %532, ptr %525, align 4, !tbaa !9
  %indvars.iv.next2980.1 = add nuw nsw i64 %indvars.iv2979, 2
  %exitcond2983.not.1 = icmp eq i64 %indvars.iv.next2980.1, %wide.trip.count2982
  br i1 %exitcond2983.not.1, label %._crit_edge2434, label %scalar.ph3436, !llvm.loop !32

._crit_edge2434:                                  ; preds = %scalar.ph3436.prol.loopexit, %scalar.ph3436, %middle.block3435, %469
  %storemerge2136.lcssa = phi i32 [ 1, %469 ], [ %472, %middle.block3435 ], [ %472, %scalar.ph3436 ], [ %472, %scalar.ph3436.prol.loopexit ]
  store i32 %storemerge2136.lcssa, ptr %35, align 4, !tbaa !5
  %533 = load float, ptr %31, align 4, !tbaa !9
  store float %533, ptr %34, align 4, !tbaa !9
  store float %.21937, ptr %31, align 4, !tbaa !9
  store float %.31941, ptr %32, align 4, !tbaa !9
  br i1 %65, label %534, label %.thread2342

534:                                              ; preds = %._crit_edge2434
  store i32 %446, ptr %36, align 4, !tbaa !5
  br label %.thread2342

.thread2342:                                      ; preds = %.lr.ph2404, %.thread2341, %317, %.thread2339, %._crit_edge2434, %534, %._crit_edge2420
  %535 = phi i1 [ true, %._crit_edge2420 ], [ true, %534 ], [ true, %._crit_edge2434 ], [ false, %.thread2339 ], [ false, %317 ], [ false, %.thread2341 ], [ false, %.lr.ph2404 ]
  %.21956 = phi float [ %413, %._crit_edge2420 ], [ %413, %534 ], [ %413, %._crit_edge2434 ], [ 0.000000e+00, %.thread2339 ], [ 0.000000e+00, %317 ], [ 0.000000e+00, %.thread2341 ], [ 0.000000e+00, %.lr.ph2404 ]
  %.01953 = phi i32 [ %60, %._crit_edge2420 ], [ 1, %534 ], [ 0, %._crit_edge2434 ], [ %60, %.thread2339 ], [ %60, %317 ], [ %60, %.thread2341 ], [ %60, %.lr.ph2404 ]
  %.01952 = phi i32 [ %66, %._crit_edge2420 ], [ %60, %534 ], [ %60, %._crit_edge2434 ], [ %66, %.thread2339 ], [ %66, %317 ], [ %66, %.thread2341 ], [ %66, %.lr.ph2404 ]
  %.21932 = phi float [ %443, %._crit_edge2420 ], [ %443, %534 ], [ %443, %._crit_edge2434 ], [ 0.000000e+00, %.thread2339 ], [ 0.000000e+00, %317 ], [ 0.000000e+00, %.thread2341 ], [ 0.000000e+00, %.lr.ph2404 ]
  %.01927.shrunk = phi i1 [ false, %._crit_edge2420 ], [ true, %534 ], [ true, %._crit_edge2434 ], [ false, %.thread2339 ], [ false, %317 ], [ false, %.thread2341 ], [ false, %.lr.ph2404 ]
  %.01926.shrunk = phi i1 [ %72, %._crit_edge2420 ], [ true, %534 ], [ true, %._crit_edge2434 ], [ false, %.thread2339 ], [ %72, %317 ], [ %72, %.thread2341 ], [ %72, %.lr.ph2404 ]
  %sqrtf = call float @sqrtf(float noundef %188) #3
  %536 = load i32, ptr %7, align 4, !tbaa !5
  %537 = sitofp i32 %536 to float
  %538 = fdiv float %188, %537
  %sqrtf2138 = call float @sqrtf(float noundef %538) #3
  store float %sqrtf2138, ptr %34, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %7, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %7, ptr noundef nonnull %33) #7
  %539 = load float, ptr %32, align 4, !tbaa !9
  %540 = load float, ptr %31, align 4, !tbaa !9
  %541 = fmul float %186, %540
  %542 = fcmp ogt float %539, %541
  br i1 %542, label %543, label %547

543:                                              ; preds = %.thread2342
  %544 = fdiv float %539, %540
  %545 = load float, ptr %34, align 4, !tbaa !9
  %546 = fmul float %544, %545
  br label %551

547:                                              ; preds = %.thread2342
  %548 = load float, ptr %34, align 4, !tbaa !9
  %549 = fmul float %539, %548
  %550 = fdiv float %549, %540
  br label %551

551:                                              ; preds = %547, %543
  %552 = phi float [ %548, %547 ], [ %545, %543 ]
  %storemerge2139 = phi float [ %550, %547 ], [ %546, %543 ]
  store float %storemerge2139, ptr %32, align 4, !tbaa !9
  %553 = load float, ptr %40, align 4, !tbaa !9
  %554 = fmul float %553, %552
  store float %554, ptr %34, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %33) #7
  %555 = load float, ptr %34, align 4, !tbaa !9
  store float %555, ptr %37, align 4, !tbaa !9
  %556 = load float, ptr %31, align 4, !tbaa !9
  store float %556, ptr %38, align 4, !tbaa !9
  %.not2140.not2354 = or i1 %265, %100
  br i1 %.not2140.not2354, label %557, label %558

557:                                              ; preds = %551
  %sqrtf2141 = call float @sqrtf(float noundef %186) #3
  store float %sqrtf2141, ptr %41, align 4, !tbaa !9
  br label %566

558:                                              ; preds = %551
  store float %187, ptr %41, align 4, !tbaa !9
  %559 = load float, ptr %32, align 4, !tbaa !9
  %560 = fpext float %559 to double
  %561 = fpext float %186 to double
  %562 = call double @sqrt(double noundef %561) #7
  %563 = fcmp ogt double %562, %560
  %564 = icmp ne i32 %.01953, 0
  %or.cond39 = select i1 %563, i1 %564, i1 false
  %565 = icmp ne i32 %.01952, 0
  %or.cond41 = select i1 %or.cond39, i1 %565, i1 false
  %spec.select = select i1 %or.cond41, i32 1, i32 %61
  %.pre3179 = load float, ptr %41, align 4, !tbaa !9
  br label %566

566:                                              ; preds = %558, %557
  %567 = phi float [ %sqrtf2141, %557 ], [ %.pre3179, %558 ]
  %.01957 = phi i32 [ %61, %557 ], [ %spec.select, %558 ]
  %568 = load float, ptr %32, align 4, !tbaa !9
  %569 = fcmp olt float %568, %567
  br i1 %569, label %570, label %.loopexit2377

570:                                              ; preds = %566
  %571 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %571, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21432438 = icmp slt i32 %571, 1
  br i1 %.not21432438, label %.loopexit2377, label %.lr.ph2441

.lr.ph2441:                                       ; preds = %570, %584
  %572 = phi i32 [ %585, %584 ], [ %571, %570 ]
  %storemerge21422439 = phi i32 [ %587, %584 ], [ 1, %570 ]
  %573 = sext i32 %storemerge21422439 to i64
  %574 = getelementptr inbounds float, ptr %42, i64 %573
  %575 = load float, ptr %574, align 4, !tbaa !9
  %576 = load float, ptr %41, align 4, !tbaa !9
  %577 = fcmp olt float %575, %576
  br i1 %577, label %578, label %584

578:                                              ; preds = %.lr.ph2441
  %579 = mul nsw i32 %storemerge21422439, %43
  %580 = sext i32 %579 to i64
  %gep2437 = getelementptr float, ptr %invariant.gep, i64 %580
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %6, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %gep2437, ptr noundef nonnull %9) #7
  %581 = load i32, ptr %35, align 4, !tbaa !5
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds float, ptr %42, i64 %582
  store float 0.000000e+00, ptr %583, align 4, !tbaa !9
  %.pre3180 = load i32, ptr %28, align 4, !tbaa !5
  br label %584

584:                                              ; preds = %.lr.ph2441, %578
  %585 = phi i32 [ %572, %.lr.ph2441 ], [ %.pre3180, %578 ]
  %586 = phi i32 [ %storemerge21422439, %.lr.ph2441 ], [ %581, %578 ]
  %587 = add nsw i32 %586, 1
  store i32 %587, ptr %35, align 4, !tbaa !5
  %.not2143.not = icmp slt i32 %586, %585
  br i1 %.not2143.not, label %.lr.ph2441, label %.loopexit2377, !llvm.loop !33

.loopexit2377:                                    ; preds = %584, %570, %566
  br i1 %.01926.shrunk, label %588, label %628

588:                                              ; preds = %.loopexit2377
  %589 = load i32, ptr %6, align 4, !tbaa !5
  %590 = add nsw i32 %589, -1
  store i32 %590, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21452442 = icmp slt i32 %589, 2
  br i1 %.not21452442, label %._crit_edge2446, label %.lr.ph2445

.lr.ph2445:                                       ; preds = %588, %619
  %storemerge21442443 = phi i32 [ %620, %619 ], [ 1, %588 ]
  %591 = load i32, ptr %6, align 4, !tbaa !5
  %reass.sub = sub i32 %591, %storemerge21442443
  %592 = add i32 %reass.sub, 1
  store i32 %592, ptr %29, align 4, !tbaa !5
  %593 = load i32, ptr %7, align 4, !tbaa !5
  %594 = add i32 %591, %storemerge21442443
  %595 = add i32 %594, %593
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds float, ptr %52, i64 %596
  %598 = call i32 @isamax_(ptr noundef nonnull %29, ptr noundef nonnull %597, ptr noundef nonnull @c__1) #7
  %599 = load i32, ptr %35, align 4, !tbaa !5
  %600 = add i32 %598, -1
  %601 = add i32 %600, %599
  %602 = load i32, ptr %7, align 4, !tbaa !5
  %603 = shl i32 %602, 1
  %604 = add nsw i32 %603, %599
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds i32, ptr %53, i64 %605
  store i32 %601, ptr %606, align 4, !tbaa !5
  %.not2291 = icmp eq i32 %600, 0
  br i1 %.not2291, label %619, label %607

607:                                              ; preds = %.lr.ph2445
  %608 = load i32, ptr %6, align 4, !tbaa !5
  %609 = load i32, ptr %7, align 4, !tbaa !5
  %610 = add nsw i32 %609, %608
  %611 = add nsw i32 %610, %599
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds float, ptr %52, i64 %612
  %614 = load float, ptr %613, align 4, !tbaa !9
  store float %614, ptr %34, align 4, !tbaa !9
  %615 = add nsw i32 %610, %601
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds float, ptr %52, i64 %616
  %618 = load float, ptr %617, align 4, !tbaa !9
  store float %618, ptr %613, align 4, !tbaa !9
  store float %614, ptr %617, align 4, !tbaa !9
  br label %619

619:                                              ; preds = %.lr.ph2445, %607
  %620 = add nsw i32 %599, 1
  store i32 %620, ptr %35, align 4, !tbaa !5
  %621 = load i32, ptr %28, align 4, !tbaa !5
  %.not2145.not = icmp slt i32 %599, %621
  br i1 %.not2145.not, label %.lr.ph2445, label %._crit_edge2446.loopexit, !llvm.loop !34

._crit_edge2446.loopexit:                         ; preds = %619
  %.pre3181 = load i32, ptr %6, align 4, !tbaa !5
  %.pre3221 = add nsw i32 %.pre3181, -1
  br label %._crit_edge2446

._crit_edge2446:                                  ; preds = %._crit_edge2446.loopexit, %588
  %.pre-phi = phi i32 [ %.pre3221, %._crit_edge2446.loopexit ], [ %590, %588 ]
  store i32 %.pre-phi, ptr %28, align 4, !tbaa !5
  %622 = load i32, ptr %7, align 4, !tbaa !5
  %623 = shl i32 %622, 1
  %624 = or disjoint i32 %623, 1
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds i32, ptr %53, i64 %625
  %627 = call i32 @slaswp_(ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull @c__1, ptr noundef nonnull %28, ptr noundef nonnull %626, ptr noundef nonnull @c__1) #7
  br label %628

628:                                              ; preds = %._crit_edge2446, %.loopexit2377
  %629 = load i32, ptr %7, align 4, !tbaa !5
  %.not21472448 = icmp slt i32 %629, 1
  br i1 %.not21472448, label %._crit_edge2452, label %.lr.ph2451.preheader

.lr.ph2451.preheader:                             ; preds = %628
  %630 = zext nneg i32 %629 to i64
  %631 = shl nuw nsw i64 %630, 2
  call void @llvm.memset.p0.i64(ptr align 4 %17, i8 0, i64 %631, i1 false), !tbaa !5
  %632 = add nuw i32 %629, 1
  %.pre3182 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2452

._crit_edge2452:                                  ; preds = %.lr.ph2451.preheader, %628
  %633 = phi i32 [ %629, %628 ], [ %.pre3182, %.lr.ph2451.preheader ]
  %storemerge2146.lcssa = phi i32 [ 1, %628 ], [ %632, %.lr.ph2451.preheader ]
  store i32 %storemerge2146.lcssa, ptr %35, align 4, !tbaa !5
  %634 = load i32, ptr %16, align 4, !tbaa !5
  %635 = sub nsw i32 %634, %633
  store i32 %635, ptr %28, align 4, !tbaa !5
  %636 = sext i32 %633 to i64
  %637 = getelementptr float, ptr %52, i64 %636
  %638 = getelementptr i8, ptr %637, i64 4
  call void @sgeqp3_(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %17, ptr noundef %15, ptr noundef %638, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  store i32 1, ptr %39, align 4, !tbaa !5
  br i1 %86, label %639, label %669

639:                                              ; preds = %._crit_edge2452
  %640 = load i32, ptr %7, align 4, !tbaa !5
  %641 = sitofp i32 %640 to float
  %642 = fpext float %641 to double
  %643 = call double @sqrt(double noundef %642) #7
  %644 = fpext float %185 to double
  %645 = fmul double %643, %644
  %646 = fptrunc double %645 to float
  store float %646, ptr %34, align 4, !tbaa !9
  %647 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %647, ptr %28, align 4, !tbaa !5
  %648 = add i32 %43, 1
  %.not21562491 = icmp slt i32 %647, 2
  br i1 %.not21562491, label %.loopexit2374, label %.lr.ph2494

.lr.ph2494:                                       ; preds = %639
  %.promoted2490 = load i32, ptr %39, align 4, !tbaa !5
  %649 = load float, ptr %8, align 4, !tbaa !9
  %650 = fcmp oge float %649, 0.000000e+00
  %651 = fneg float %649
  %652 = select i1 %650, float %649, float %651
  %653 = fmul float %652, %646
  %654 = add nuw i32 %647, 1
  %655 = add nuw i32 %647, 1
  %wide.trip.count3007 = zext i32 %655 to i64
  br label %656

656:                                              ; preds = %.lr.ph2494, %667
  %indvars.iv3004 = phi i64 [ 2, %.lr.ph2494 ], [ %indvars.iv.next3005, %667 ]
  %657 = phi i32 [ %.promoted2490, %.lr.ph2494 ], [ %668, %667 ]
  %658 = trunc nuw nsw i64 %indvars.iv3004 to i32
  %659 = mul i32 %648, %658
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds float, ptr %45, i64 %660
  %662 = load float, ptr %661, align 4, !tbaa !9
  %663 = fcmp oge float %662, 0.000000e+00
  %664 = fneg float %662
  %665 = select i1 %663, float %662, float %664
  %666 = fcmp ult float %665, %653
  br i1 %666, label %..loopexit2374_crit_edge2496, label %667

667:                                              ; preds = %656
  %668 = add nsw i32 %657, 1
  store i32 %668, ptr %39, align 4, !tbaa !5
  %indvars.iv.next3005 = add nuw nsw i64 %indvars.iv3004, 1
  %exitcond3008.not = icmp eq i64 %indvars.iv.next3005, %wide.trip.count3007
  br i1 %exitcond3008.not, label %..loopexit2374_crit_edge, label %656, !llvm.loop !35

669:                                              ; preds = %._crit_edge2452
  %.not2148.not = select i1 %265, i1 true, i1 %85
  %sqrtf2152 = call float @sqrtf(float noundef %186) #3
  store float %sqrtf2152, ptr %34, align 4, !tbaa !9
  %670 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %670, ptr %28, align 4, !tbaa !5
  %671 = add i32 %43, 1
  %.not21542470 = icmp slt i32 %670, 2
  br i1 %.not2148.not, label %672, label %724

672:                                              ; preds = %669
  br i1 %.not21542470, label %.loopexit2375, label %.lr.ph2473

.lr.ph2473:                                       ; preds = %672
  %.promoted2469 = load i32, ptr %39, align 4, !tbaa !5
  %673 = add nuw i32 %670, 1
  %wide.trip.count3002 = zext i32 %673 to i64
  br i1 %.not2140.not2354, label %.lr.ph2473.split, label %.lr.ph2473.split.us

.lr.ph2473.split.us:                              ; preds = %.lr.ph2473, %696
  %indvars.iv2994 = phi i64 [ %indvars.iv.next2995, %696 ], [ 2, %.lr.ph2473 ]
  %674 = phi i32 [ %697, %696 ], [ %.promoted2469, %.lr.ph2473 ]
  %675 = trunc nuw nsw i64 %indvars.iv2994 to i32
  %676 = mul i32 %671, %675
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %45, i64 %677
  %679 = load float, ptr %678, align 4, !tbaa !9
  %680 = fcmp oge float %679, 0.000000e+00
  %681 = fneg float %679
  %682 = select i1 %680, float %679, float %681
  %683 = trunc i64 %indvars.iv2994 to i32
  %684 = add i32 %683, -1
  %685 = mul i32 %684, %671
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds float, ptr %45, i64 %686
  %688 = load float, ptr %687, align 4, !tbaa !9
  %689 = fcmp oge float %688, 0.000000e+00
  %690 = fneg float %688
  %691 = select i1 %689, float %688, float %690
  %692 = fmul float %185, %691
  %693 = fcmp olt float %682, %692
  br i1 %693, label %..loopexit2375_crit_edge2475, label %694

694:                                              ; preds = %.lr.ph2473.split.us
  %695 = fcmp olt float %682, %187
  br i1 %695, label %..loopexit2375_crit_edge, label %696

696:                                              ; preds = %694
  %697 = add nsw i32 %674, 1
  store i32 %697, ptr %39, align 4, !tbaa !5
  %indvars.iv.next2995 = add nuw nsw i64 %indvars.iv2994, 1
  %exitcond2998.not = icmp eq i64 %indvars.iv.next2995, %wide.trip.count3002
  br i1 %exitcond2998.not, label %..loopexit2375_crit_edge2477, label %.lr.ph2473.split.us, !llvm.loop !36

.lr.ph2473.split:                                 ; preds = %.lr.ph2473, %722
  %indvars.iv2999 = phi i64 [ %indvars.iv.next3000, %722 ], [ 2, %.lr.ph2473 ]
  %698 = phi i32 [ %723, %722 ], [ %.promoted2469, %.lr.ph2473 ]
  %699 = trunc nuw nsw i64 %indvars.iv2999 to i32
  %700 = mul i32 %671, %699
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds float, ptr %45, i64 %701
  %703 = load float, ptr %702, align 4, !tbaa !9
  %704 = fcmp oge float %703, 0.000000e+00
  %705 = fneg float %703
  %706 = select i1 %704, float %703, float %705
  %707 = trunc i64 %indvars.iv2999 to i32
  %708 = add i32 %707, -1
  %709 = mul i32 %708, %671
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds float, ptr %45, i64 %710
  %712 = load float, ptr %711, align 4, !tbaa !9
  %713 = fcmp oge float %712, 0.000000e+00
  %714 = fneg float %712
  %715 = select i1 %713, float %712, float %714
  %716 = fmul float %185, %715
  %717 = fcmp olt float %706, %716
  br i1 %717, label %..loopexit2375_crit_edge2475, label %718

718:                                              ; preds = %.lr.ph2473.split
  %719 = fcmp olt float %706, %187
  br i1 %719, label %..loopexit2375_crit_edge, label %720

720:                                              ; preds = %718
  %721 = fcmp olt float %706, %sqrtf2152
  br i1 %721, label %..loopexit2375_crit_edge2479, label %722

722:                                              ; preds = %720
  %723 = add nsw i32 %698, 1
  store i32 %723, ptr %39, align 4, !tbaa !5
  %indvars.iv.next3000 = add nuw nsw i64 %indvars.iv2999, 1
  %exitcond3003.not = icmp eq i64 %indvars.iv.next3000, %wide.trip.count3002
  br i1 %exitcond3003.not, label %..loopexit2375_crit_edge2477, label %.lr.ph2473.split, !llvm.loop !36

724:                                              ; preds = %669
  br i1 %.not21542470, label %.loopexit2376, label %.lr.ph2459

.lr.ph2459:                                       ; preds = %724
  %.promoted2455 = load i32, ptr %39, align 4, !tbaa !5
  %725 = add nuw i32 %670, 1
  %726 = add nuw i32 %670, 1
  %wide.trip.count2992 = zext i32 %726 to i64
  br label %727

727:                                              ; preds = %.lr.ph2459, %740
  %indvars.iv2989 = phi i64 [ 2, %.lr.ph2459 ], [ %indvars.iv.next2990, %740 ]
  %728 = phi i32 [ %.promoted2455, %.lr.ph2459 ], [ %741, %740 ]
  %729 = trunc nuw nsw i64 %indvars.iv2989 to i32
  %730 = mul i32 %671, %729
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds float, ptr %45, i64 %731
  %733 = load float, ptr %732, align 4, !tbaa !9
  %734 = fcmp oge float %733, 0.000000e+00
  %735 = fneg float %733
  %736 = select i1 %734, float %733, float %735
  %737 = fcmp olt float %736, %187
  br i1 %737, label %..loopexit2376_crit_edge2461, label %738

738:                                              ; preds = %727
  %739 = fcmp olt float %736, %sqrtf2152
  %or.cond3361 = select i1 %.not2140.not2354, i1 %739, i1 false
  br i1 %or.cond3361, label %..loopexit2376_crit_edge, label %740

740:                                              ; preds = %738
  %741 = add nsw i32 %728, 1
  store i32 %741, ptr %39, align 4, !tbaa !5
  %indvars.iv.next2990 = add nuw nsw i64 %indvars.iv2989, 1
  %exitcond2993.not = icmp eq i64 %indvars.iv.next2990, %wide.trip.count2992
  br i1 %exitcond2993.not, label %..loopexit2376_crit_edge2463, label %727, !llvm.loop !37

..loopexit2374_crit_edge:                         ; preds = %667
  store float %649, ptr %30, align 4, !tbaa !9
  br label %.loopexit2374

..loopexit2374_crit_edge2496:                     ; preds = %656
  store float %649, ptr %30, align 4, !tbaa !9
  br label %.loopexit2374

.loopexit2374:                                    ; preds = %..loopexit2374_crit_edge2496, %..loopexit2374_crit_edge, %639
  %storemerge2155.lcssa = phi i32 [ %654, %..loopexit2374_crit_edge ], [ %658, %..loopexit2374_crit_edge2496 ], [ 2, %639 ]
  store i32 %storemerge2155.lcssa, ptr %35, align 4, !tbaa !5
  br label %742

..loopexit2375_crit_edge:                         ; preds = %694, %718
  %.us-phi2486 = phi float [ %712, %718 ], [ %688, %694 ]
  %.us-phi2487 = phi i32 [ %699, %718 ], [ %675, %694 ]
  store float %.us-phi2486, ptr %30, align 4, !tbaa !9
  br label %.loopexit2375

..loopexit2375_crit_edge2475:                     ; preds = %.lr.ph2473.split.us, %.lr.ph2473.split
  %.us-phi = phi float [ %712, %.lr.ph2473.split ], [ %688, %.lr.ph2473.split.us ]
  %.us-phi2485 = phi i32 [ %699, %.lr.ph2473.split ], [ %675, %.lr.ph2473.split.us ]
  store float %.us-phi, ptr %30, align 4, !tbaa !9
  br label %.loopexit2375

..loopexit2375_crit_edge2477:                     ; preds = %696, %722
  %.us-phi2488 = phi float [ %712, %722 ], [ %688, %696 ]
  %.us-phi2489 = add nuw i32 %670, 1
  store float %.us-phi2488, ptr %30, align 4, !tbaa !9
  br label %.loopexit2375

..loopexit2375_crit_edge2479:                     ; preds = %720
  store float %712, ptr %30, align 4, !tbaa !9
  br label %.loopexit2375

.loopexit2375:                                    ; preds = %..loopexit2375_crit_edge2479, %..loopexit2375_crit_edge2477, %..loopexit2375_crit_edge2475, %..loopexit2375_crit_edge, %672
  %storemerge2153.lcssa = phi i32 [ %.us-phi2487, %..loopexit2375_crit_edge ], [ %.us-phi2485, %..loopexit2375_crit_edge2475 ], [ %.us-phi2489, %..loopexit2375_crit_edge2477 ], [ %699, %..loopexit2375_crit_edge2479 ], [ 2, %672 ]
  store i32 %storemerge2153.lcssa, ptr %35, align 4, !tbaa !5
  br label %742

..loopexit2376_crit_edge:                         ; preds = %738
  store float %733, ptr %30, align 4, !tbaa !9
  br label %.loopexit2376

..loopexit2376_crit_edge2461:                     ; preds = %727
  store float %733, ptr %30, align 4, !tbaa !9
  br label %.loopexit2376

..loopexit2376_crit_edge2463:                     ; preds = %740
  store float %733, ptr %30, align 4, !tbaa !9
  br label %.loopexit2376

.loopexit2376:                                    ; preds = %..loopexit2376_crit_edge2463, %..loopexit2376_crit_edge2461, %..loopexit2376_crit_edge, %724
  %storemerge2150.lcssa = phi i32 [ %729, %..loopexit2376_crit_edge ], [ %729, %..loopexit2376_crit_edge2461 ], [ %725, %..loopexit2376_crit_edge2463 ], [ 2, %724 ]
  store i32 %storemerge2150.lcssa, ptr %35, align 4, !tbaa !5
  br label %742

742:                                              ; preds = %.loopexit2376, %.loopexit2375, %.loopexit2374
  %743 = phi i32 [ %670, %.loopexit2376 ], [ %670, %.loopexit2375 ], [ %647, %.loopexit2374 ]
  %744 = load i32, ptr %39, align 4, !tbaa !5
  %745 = icmp eq i32 %744, %743
  br i1 %745, label %746, label %.thread2349

746:                                              ; preds = %742
  store i32 %743, ptr %28, align 4, !tbaa !5
  %.not21582498 = icmp slt i32 %743, 2
  br i1 %.not21582498, label %767, label %.lr.ph2502

.lr.ph2502:                                       ; preds = %746
  %747 = add i32 %43, 1
  %748 = add nuw i32 %743, 1
  %wide.trip.count3012 = zext i32 %748 to i64
  br label %749

749:                                              ; preds = %.lr.ph2502, %749
  %indvars.iv3009 = phi i64 [ 2, %.lr.ph2502 ], [ %indvars.iv.next3010, %749 ]
  %.019282500 = phi float [ 1.000000e+00, %.lr.ph2502 ], [ %765, %749 ]
  %750 = trunc nuw nsw i64 %indvars.iv3009 to i32
  %751 = mul i32 %747, %750
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds float, ptr %45, i64 %752
  %754 = load float, ptr %753, align 4, !tbaa !9
  %755 = fcmp oge float %754, 0.000000e+00
  %756 = fneg float %754
  %757 = select i1 %755, float %754, float %756
  %758 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv3009
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds float, ptr %42, i64 %760
  %762 = load float, ptr %761, align 4, !tbaa !9
  %763 = fdiv float %757, %762
  %764 = fcmp ole float %.019282500, %763
  %765 = select i1 %764, float %.019282500, float %763
  %indvars.iv.next3010 = add nuw nsw i64 %indvars.iv3009, 1
  %exitcond3013.not = icmp eq i64 %indvars.iv.next3010, %wide.trip.count3012
  br i1 %exitcond3013.not, label %._crit_edge2503, label %749, !llvm.loop !38

._crit_edge2503:                                  ; preds = %749
  %766 = add nuw i32 %743, 1
  store float %763, ptr %34, align 4, !tbaa !9
  br label %767

767:                                              ; preds = %._crit_edge2503, %746
  %storemerge2157.lcssa = phi i32 [ %766, %._crit_edge2503 ], [ 2, %746 ]
  %.01928.lcssa = phi float [ %765, %._crit_edge2503 ], [ 1.000000e+00, %746 ]
  store i32 %storemerge2157.lcssa, ptr %35, align 4, !tbaa !5
  store float %.01928.lcssa, ptr %30, align 4, !tbaa !9
  %768 = fmul float %.01928.lcssa, %.01928.lcssa
  %769 = sitofp i32 %743 to float
  %770 = fneg float %769
  %771 = call float @llvm.fmuladd.f32(float %770, float %185, float 1.000000e+00)
  %772 = fcmp ult float %768, %771
  br i1 %80, label %773, label %.thread2349

773:                                              ; preds = %767
  %.not2159 = icmp eq i32 %.01952, 0
  br i1 %.not2159, label %798, label %774

774:                                              ; preds = %773
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %13, ptr noundef nonnull %14) #7
  %775 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %775, ptr %28, align 4, !tbaa !5
  %invariant.gep2508 = getelementptr i8, ptr %51, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21662510 = icmp slt i32 %775, 1
  br i1 %.not21662510, label %._crit_edge2514, label %.lr.ph2513

.lr.ph2513:                                       ; preds = %774, %.lr.ph2513
  %storemerge21652511 = phi i32 [ %786, %.lr.ph2513 ], [ 1, %774 ]
  %776 = sext i32 %storemerge21652511 to i64
  %777 = getelementptr inbounds i32, ptr %53, i64 %776
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds float, ptr %42, i64 %779
  %781 = load float, ptr %780, align 4, !tbaa !9
  store float %781, ptr %34, align 4, !tbaa !9
  %782 = fdiv float 1.000000e+00, %781
  store float %782, ptr %30, align 4, !tbaa !9
  %783 = mul nsw i32 %storemerge21652511, %49
  %784 = sext i32 %783 to i64
  %gep2509 = getelementptr float, ptr %invariant.gep2508, i64 %784
  call void @sscal_(ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef %gep2509, ptr noundef nonnull @c__1) #7
  %785 = load i32, ptr %35, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr %35, align 4, !tbaa !5
  %787 = load i32, ptr %28, align 4, !tbaa !5
  %.not2166.not = icmp slt i32 %785, %787
  br i1 %.not2166.not, label %.lr.ph2513, label %._crit_edge2514.loopexit, !llvm.loop !39

._crit_edge2514.loopexit:                         ; preds = %.lr.ph2513
  %.pre3183 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2514

._crit_edge2514:                                  ; preds = %._crit_edge2514.loopexit, %774
  %788 = phi i32 [ %.pre3183, %._crit_edge2514.loopexit ], [ %775, %774 ]
  %789 = sext i32 %788 to i64
  %790 = getelementptr float, ptr %52, i64 %789
  %791 = getelementptr i8, ptr %790, i64 4
  %792 = shl i32 %788, 1
  %793 = load i32, ptr %6, align 4, !tbaa !5
  %794 = add nsw i32 %792, %793
  %795 = sext i32 %794 to i64
  %796 = getelementptr i32, ptr %53, i64 %795
  %797 = getelementptr i8, ptr %796, i64 4
  call void @spocon_(ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull @c_b35, ptr noundef nonnull %34, ptr noundef %791, ptr noundef %797, ptr noundef nonnull %33) #7
  br label %856

798:                                              ; preds = %773
  %.not2160 = icmp eq i32 %.01953, 0
  br i1 %.not2160, label %823, label %799

799:                                              ; preds = %798
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %11, ptr noundef nonnull %12) #7
  %800 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %800, ptr %28, align 4, !tbaa !5
  %invariant.gep2515 = getelementptr i8, ptr %48, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21642517 = icmp slt i32 %800, 1
  br i1 %.not21642517, label %._crit_edge2521, label %.lr.ph2520

.lr.ph2520:                                       ; preds = %799, %.lr.ph2520
  %storemerge21632518 = phi i32 [ %811, %.lr.ph2520 ], [ 1, %799 ]
  %801 = sext i32 %storemerge21632518 to i64
  %802 = getelementptr inbounds i32, ptr %53, i64 %801
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds float, ptr %42, i64 %804
  %806 = load float, ptr %805, align 4, !tbaa !9
  store float %806, ptr %34, align 4, !tbaa !9
  %807 = fdiv float 1.000000e+00, %806
  store float %807, ptr %30, align 4, !tbaa !9
  %808 = mul nsw i32 %storemerge21632518, %46
  %809 = sext i32 %808 to i64
  %gep2516 = getelementptr float, ptr %invariant.gep2515, i64 %809
  call void @sscal_(ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef %gep2516, ptr noundef nonnull @c__1) #7
  %810 = load i32, ptr %35, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr %35, align 4, !tbaa !5
  %812 = load i32, ptr %28, align 4, !tbaa !5
  %.not2164.not = icmp slt i32 %810, %812
  br i1 %.not2164.not, label %.lr.ph2520, label %._crit_edge2521.loopexit, !llvm.loop !40

._crit_edge2521.loopexit:                         ; preds = %.lr.ph2520
  %.pre3184 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2521

._crit_edge2521:                                  ; preds = %._crit_edge2521.loopexit, %799
  %813 = phi i32 [ %.pre3184, %._crit_edge2521.loopexit ], [ %800, %799 ]
  %814 = sext i32 %813 to i64
  %815 = getelementptr float, ptr %52, i64 %814
  %816 = getelementptr i8, ptr %815, i64 4
  %817 = shl i32 %813, 1
  %818 = load i32, ptr %6, align 4, !tbaa !5
  %819 = add nsw i32 %817, %818
  %820 = sext i32 %819 to i64
  %821 = getelementptr i32, ptr %53, i64 %820
  %822 = getelementptr i8, ptr %821, i64 4
  call void @spocon_(ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull @c_b35, ptr noundef nonnull %34, ptr noundef %816, ptr noundef %822, ptr noundef nonnull %33) #7
  br label %856

823:                                              ; preds = %798
  %824 = sext i32 %743 to i64
  %825 = getelementptr float, ptr %52, i64 %824
  %826 = getelementptr i8, ptr %825, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %826, ptr noundef nonnull %7) #7
  %827 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %827, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21622524 = icmp slt i32 %827, 1
  br i1 %.not21622524, label %._crit_edge2528, label %.lr.ph2527

.lr.ph2527:                                       ; preds = %823, %.lr.ph2527
  %storemerge21612525 = phi i32 [ %839, %.lr.ph2527 ], [ 1, %823 ]
  %828 = sext i32 %storemerge21612525 to i64
  %829 = getelementptr inbounds i32, ptr %53, i64 %828
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds float, ptr %42, i64 %831
  %833 = load float, ptr %832, align 4, !tbaa !9
  store float %833, ptr %34, align 4, !tbaa !9
  %834 = fdiv float 1.000000e+00, %833
  store float %834, ptr %30, align 4, !tbaa !9
  %835 = load i32, ptr %7, align 4, !tbaa !5
  %836 = mul i32 %835, %storemerge21612525
  %837 = sext i32 %836 to i64
  %gep2523 = getelementptr float, ptr %15, i64 %837
  call void @sscal_(ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef %gep2523, ptr noundef nonnull @c__1) #7
  %838 = load i32, ptr %35, align 4, !tbaa !5
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr %35, align 4, !tbaa !5
  %840 = load i32, ptr %28, align 4, !tbaa !5
  %.not2162.not = icmp slt i32 %838, %840
  br i1 %.not2162.not, label %.lr.ph2527, label %._crit_edge2528.loopexit, !llvm.loop !41

._crit_edge2528.loopexit:                         ; preds = %.lr.ph2527
  %.pre3185 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2528

._crit_edge2528:                                  ; preds = %._crit_edge2528.loopexit, %823
  %841 = phi i32 [ %.pre3185, %._crit_edge2528.loopexit ], [ %827, %823 ]
  %842 = sext i32 %841 to i64
  %843 = getelementptr float, ptr %52, i64 %842
  %844 = getelementptr i8, ptr %843, i64 4
  %845 = add i32 %841, 1
  %846 = mul i32 %845, %841
  %847 = sext i32 %846 to i64
  %848 = getelementptr float, ptr %52, i64 %847
  %849 = getelementptr i8, ptr %848, i64 4
  %850 = shl i32 %841, 1
  %851 = load i32, ptr %6, align 4, !tbaa !5
  %852 = add nsw i32 %850, %851
  %853 = sext i32 %852 to i64
  %854 = getelementptr i32, ptr %53, i64 %853
  %855 = getelementptr i8, ptr %854, i64 4
  call void @spocon_(ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef %844, ptr noundef nonnull %7, ptr noundef nonnull @c_b35, ptr noundef nonnull %34, ptr noundef %849, ptr noundef %855, ptr noundef nonnull %33) #7
  br label %856

856:                                              ; preds = %._crit_edge2521, %._crit_edge2528, %._crit_edge2514
  %857 = load float, ptr %34, align 4, !tbaa !9
  %858 = fpext float %857 to double
  %859 = call double @sqrt(double noundef %858) #7
  %860 = fdiv double 1.000000e+00, %859
  %861 = fptrunc double %860 to float
  br label %.thread2349

.thread2349:                                      ; preds = %767, %742, %856
  %.not21712347 = phi i1 [ %772, %856 ], [ %772, %767 ], [ true, %742 ]
  %.01944 = phi float [ %861, %856 ], [ -1.000000e+00, %767 ], [ -1.000000e+00, %742 ]
  br i1 %.not2110, label %878, label %862

862:                                              ; preds = %.thread2349
  %863 = load float, ptr %8, align 4, !tbaa !9
  %864 = load i32, ptr %39, align 4, !tbaa !5
  %865 = add i32 %43, 1
  %866 = mul i32 %864, %865
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds float, ptr %45, i64 %867
  %869 = load float, ptr %868, align 4, !tbaa !9
  %870 = fdiv float %863, %869
  store float %870, ptr %30, align 4, !tbaa !9
  %871 = fcmp oge float %870, 0.000000e+00
  %872 = fneg float %870
  %873 = select i1 %871, float %870, float %872
  %874 = fpext float %873 to double
  %875 = fpext float %sqrtf to double
  %876 = call double @sqrt(double noundef %875) #7
  %877 = fcmp olt double %876, %874
  br label %878

878:                                              ; preds = %862, %.thread2349
  %879 = phi i1 [ false, %.thread2349 ], [ %877, %862 ]
  %880 = icmp ne i32 %.01952, 0
  %881 = icmp ne i32 %.01953, 0
  %or.cond43 = select i1 %880, i1 true, i1 %881
  br i1 %or.cond43, label %1033, label %882

882:                                              ; preds = %878
  %883 = load i32, ptr %7, align 4, !tbaa !5
  %884 = add nsw i32 %883, -1
  store i32 %884, ptr %29, align 4, !tbaa !5
  %885 = load i32, ptr %39, align 4
  %886 = call i32 @llvm.smin.i32(i32 %884, i32 %885)
  store i32 %886, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21702529 = icmp slt i32 %886, 1
  br i1 %.not21702529, label %._crit_edge2533, label %.lr.ph2532

.lr.ph2532:                                       ; preds = %882, %.lr.ph2532
  %887 = phi i32 [ %900, %.lr.ph2532 ], [ 1, %882 ]
  %888 = load i32, ptr %7, align 4, !tbaa !5
  %889 = sub nsw i32 %888, %887
  store i32 %889, ptr %29, align 4, !tbaa !5
  %890 = add nsw i32 %887, 1
  %891 = mul nsw i32 %890, %43
  %892 = add nsw i32 %891, %887
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds float, ptr %45, i64 %893
  %895 = mul nsw i32 %887, %43
  %896 = add nsw i32 %890, %895
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds float, ptr %45, i64 %897
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %894, ptr noundef nonnull %9, ptr noundef %898, ptr noundef nonnull @c__1) #7
  %899 = load i32, ptr %35, align 4, !tbaa !5
  %900 = add nsw i32 %899, 1
  store i32 %900, ptr %35, align 4, !tbaa !5
  %901 = load i32, ptr %28, align 4, !tbaa !5
  %.not2170.not = icmp slt i32 %899, %901
  br i1 %.not2170.not, label %.lr.ph2532, label %._crit_edge2533, !llvm.loop !42

._crit_edge2533:                                  ; preds = %.lr.ph2532, %882
  br i1 %.not21712347, label %902, label %.loopexit2372

902:                                              ; preds = %._crit_edge2533
  br i1 %879, label %903, label %945

903:                                              ; preds = %902
  %904 = load i32, ptr %7, align 4, !tbaa !5
  %905 = sitofp i32 %904 to float
  %906 = fdiv float %185, %905
  store float %906, ptr %41, align 4, !tbaa !9
  %907 = load i32, ptr %39, align 4, !tbaa !5
  %.not21722543 = icmp slt i32 %907, 1
  br i1 %.not21722543, label %.loopexit2373, label %.lr.ph2546

.lr.ph2546:                                       ; preds = %903
  %.not21762535 = icmp slt i32 %904, 1
  %908 = add i32 %904, 1
  %909 = sext i32 %43 to i64
  %910 = add nuw i32 %907, 1
  %wide.trip.count3022 = zext i32 %910 to i64
  %wide.trip.count3017 = zext i32 %908 to i64
  br label %911

911:                                              ; preds = %.lr.ph2546, %._crit_edge2539
  %indvars.iv3019 = phi i64 [ 1, %.lr.ph2546 ], [ %indvars.iv.next3020, %._crit_edge2539 ]
  %indvars3021 = trunc i64 %indvars.iv3019 to i32
  %912 = mul nsw i64 %indvars.iv3019, %909
  %913 = mul nsw i32 %43, %indvars3021
  %914 = sext i32 %913 to i64
  %915 = getelementptr float, ptr %45, i64 %indvars.iv3019
  %916 = getelementptr float, ptr %915, i64 %914
  %917 = load float, ptr %916, align 4, !tbaa !9
  %918 = fcmp oge float %917, 0.000000e+00
  %919 = fneg float %917
  %920 = select i1 %918, float %917, float %919
  %921 = fmul float %906, %920
  br i1 %.not21762535, label %._crit_edge2539, label %.lr.ph2538

.lr.ph2538:                                       ; preds = %911
  %922 = fcmp oge float %921, 0.000000e+00
  %923 = fneg float %921
  br label %924

924:                                              ; preds = %.lr.ph2538, %942
  %indvars.iv3014 = phi i64 [ 1, %.lr.ph2538 ], [ %indvars.iv.next3015, %942 ]
  %925 = phi float [ %917, %.lr.ph2538 ], [ %943, %942 ]
  %926 = icmp ugt i64 %indvars.iv3014, %indvars.iv3019
  br i1 %926, label %927, label %935

927:                                              ; preds = %924
  %928 = add nsw i64 %indvars.iv3014, %912
  %929 = getelementptr inbounds float, ptr %45, i64 %928
  %930 = load float, ptr %929, align 4, !tbaa !9
  %931 = fcmp oge float %930, 0.000000e+00
  %932 = fneg float %930
  %933 = select i1 %931, float %930, float %932
  %934 = fcmp ugt float %933, %921
  br i1 %934, label %942, label %936

935:                                              ; preds = %924
  %.old2307 = icmp ult i64 %indvars.iv3014, %indvars.iv3019
  br i1 %.old2307, label %._crit_edge3238, label %942

._crit_edge3238:                                  ; preds = %935
  %.pre3252 = add nsw i64 %indvars.iv3014, %912
  br label %936

936:                                              ; preds = %._crit_edge3238, %927
  %.pre-phi3253 = phi i64 [ %.pre3252, %._crit_edge3238 ], [ %928, %927 ]
  %937 = phi float [ %925, %._crit_edge3238 ], [ %930, %927 ]
  %938 = getelementptr inbounds float, ptr %45, i64 %.pre-phi3253
  %939 = load float, ptr %938, align 4, !tbaa !9
  %940 = fcmp ult float %939, 0.000000e+00
  %941 = xor i1 %922, %940
  %. = select i1 %941, float %921, float %923
  store float %., ptr %938, align 4, !tbaa !9
  br label %942

942:                                              ; preds = %927, %935, %936
  %943 = phi float [ %930, %927 ], [ %925, %935 ], [ %937, %936 ]
  %indvars.iv.next3015 = add nuw nsw i64 %indvars.iv3014, 1
  %exitcond3018.not = icmp eq i64 %indvars.iv.next3015, %wide.trip.count3017
  br i1 %exitcond3018.not, label %._crit_edge2539, label %924, !llvm.loop !43

._crit_edge2539:                                  ; preds = %942, %911
  %944 = phi float [ %917, %911 ], [ %943, %942 ]
  %storemerge2175.lcssa = phi i32 [ 1, %911 ], [ %908, %942 ]
  %indvars.iv.next3020 = add nuw nsw i64 %indvars.iv3019, 1
  %exitcond3023.not = icmp eq i64 %indvars.iv.next3020, %wide.trip.count3022
  br i1 %exitcond3023.not, label %..loopexit2373_crit_edge, label %911, !llvm.loop !44

945:                                              ; preds = %902
  %946 = load i32, ptr %39, align 4, !tbaa !5
  %947 = add nsw i32 %946, -1
  store i32 %947, ptr %28, align 4, !tbaa !5
  store i32 %947, ptr %29, align 4, !tbaa !5
  %948 = shl i32 %43, 1
  %949 = or disjoint i32 %948, 1
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds float, ptr %45, i64 %950
  call void @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %951, ptr noundef nonnull %9) #7
  %.pre3186 = load i32, ptr %7, align 4, !tbaa !5
  br label %.loopexit2373

..loopexit2373_crit_edge:                         ; preds = %._crit_edge2539
  store float %944, ptr %30, align 4, !tbaa !9
  store float %921, ptr %34, align 4, !tbaa !9
  store i32 %904, ptr %29, align 4, !tbaa !5
  store i32 %storemerge2175.lcssa, ptr %35, align 4
  br label %.loopexit2373

.loopexit2373:                                    ; preds = %903, %..loopexit2373_crit_edge, %945
  %952 = phi i32 [ %904, %903 ], [ %904, %..loopexit2373_crit_edge ], [ %.pre3186, %945 ]
  %953 = load i32, ptr %16, align 4, !tbaa !5
  %954 = sub nsw i32 %953, %952
  store i32 %954, ptr %28, align 4, !tbaa !5
  %955 = sext i32 %952 to i64
  %956 = getelementptr float, ptr %52, i64 %955
  %957 = getelementptr i8, ptr %956, i64 4
  call void @sgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %15, ptr noundef %957, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %958 = load i32, ptr %39, align 4, !tbaa !5
  %959 = add nsw i32 %958, -1
  store i32 %959, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21742550 = icmp slt i32 %958, 2
  br i1 %.not21742550, label %.loopexit2372, label %.lr.ph2553

.lr.ph2553:                                       ; preds = %.loopexit2373, %.lr.ph2553
  %960 = phi i32 [ %973, %.lr.ph2553 ], [ 1, %.loopexit2373 ]
  %961 = load i32, ptr %39, align 4, !tbaa !5
  %962 = sub nsw i32 %961, %960
  store i32 %962, ptr %29, align 4, !tbaa !5
  %963 = add nsw i32 %960, 1
  %964 = mul nsw i32 %963, %43
  %965 = add nsw i32 %964, %960
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds float, ptr %45, i64 %966
  %968 = mul nsw i32 %960, %43
  %969 = add nsw i32 %963, %968
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds float, ptr %45, i64 %970
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %967, ptr noundef nonnull %9, ptr noundef %971, ptr noundef nonnull @c__1) #7
  %972 = load i32, ptr %35, align 4, !tbaa !5
  %973 = add nsw i32 %972, 1
  store i32 %973, ptr %35, align 4, !tbaa !5
  %974 = load i32, ptr %28, align 4, !tbaa !5
  %.not2174.not = icmp slt i32 %972, %974
  br i1 %.not2174.not, label %.lr.ph2553, label %.loopexit2372, !llvm.loop !45

.loopexit2372:                                    ; preds = %.lr.ph2553, %.loopexit2373, %._crit_edge2533
  br i1 %879, label %975, label %1014

975:                                              ; preds = %.loopexit2372
  %976 = load i32, ptr %7, align 4, !tbaa !5
  %977 = sitofp i32 %976 to float
  %978 = fdiv float %185, %977
  store float %978, ptr %41, align 4, !tbaa !9
  %979 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %979, ptr %28, align 4, !tbaa !5
  %.not21772563 = icmp slt i32 %979, 1
  br i1 %.not21772563, label %.loopexit2371, label %.lr.ph2566

.lr.ph2566:                                       ; preds = %975
  %980 = add nuw i32 %979, 1
  %981 = sext i32 %43 to i64
  %wide.trip.count3032 = zext i32 %980 to i64
  br label %.lr.ph2558

.lr.ph2558:                                       ; preds = %._crit_edge2559, %.lr.ph2566
  %indvars.iv3029 = phi i64 [ 1, %.lr.ph2566 ], [ %indvars.iv.next3030, %._crit_edge2559 ]
  %indvars3031 = trunc i64 %indvars.iv3029 to i32
  %982 = mul nsw i64 %indvars.iv3029, %981
  %983 = mul nsw i32 %43, %indvars3031
  %984 = sext i32 %983 to i64
  %985 = getelementptr float, ptr %45, i64 %indvars.iv3029
  %986 = getelementptr float, ptr %985, i64 %984
  %987 = load float, ptr %986, align 4, !tbaa !9
  %988 = fcmp oge float %987, 0.000000e+00
  %989 = fneg float %987
  %990 = select i1 %988, float %987, float %989
  %991 = fmul float %978, %990
  %992 = fcmp oge float %991, 0.000000e+00
  %993 = fneg float %991
  br label %994

994:                                              ; preds = %.lr.ph2558, %1012
  %indvars.iv3024 = phi i64 [ 1, %.lr.ph2558 ], [ %indvars.iv.next3025, %1012 ]
  %995 = phi float [ %987, %.lr.ph2558 ], [ %1013, %1012 ]
  %996 = icmp ugt i64 %indvars.iv3024, %indvars.iv3029
  br i1 %996, label %997, label %1005

997:                                              ; preds = %994
  %998 = add nsw i64 %indvars.iv3024, %982
  %999 = getelementptr inbounds float, ptr %45, i64 %998
  %1000 = load float, ptr %999, align 4, !tbaa !9
  %1001 = fcmp oge float %1000, 0.000000e+00
  %1002 = fneg float %1000
  %1003 = select i1 %1001, float %1000, float %1002
  %1004 = fcmp ugt float %1003, %991
  br i1 %1004, label %1012, label %1006

1005:                                             ; preds = %994
  %.old2310 = icmp ult i64 %indvars.iv3024, %indvars.iv3029
  br i1 %.old2310, label %._crit_edge3239, label %1012

._crit_edge3239:                                  ; preds = %1005
  %.pre3250 = add nsw i64 %indvars.iv3024, %982
  br label %1006

1006:                                             ; preds = %._crit_edge3239, %997
  %.pre-phi3251 = phi i64 [ %.pre3250, %._crit_edge3239 ], [ %998, %997 ]
  %1007 = phi float [ %995, %._crit_edge3239 ], [ %1000, %997 ]
  %1008 = getelementptr inbounds float, ptr %45, i64 %.pre-phi3251
  %1009 = load float, ptr %1008, align 4, !tbaa !9
  %1010 = fcmp ult float %1009, 0.000000e+00
  %1011 = xor i1 %992, %1010
  %.2870 = select i1 %1011, float %991, float %993
  store float %.2870, ptr %1008, align 4, !tbaa !9
  br label %1012

1012:                                             ; preds = %997, %1005, %1006
  %1013 = phi float [ %1000, %997 ], [ %995, %1005 ], [ %1007, %1006 ]
  %indvars.iv.next3025 = add nuw nsw i64 %indvars.iv3024, 1
  %exitcond3028.not = icmp eq i64 %indvars.iv.next3025, %wide.trip.count3032
  br i1 %exitcond3028.not, label %._crit_edge2559, label %994, !llvm.loop !46

._crit_edge2559:                                  ; preds = %1012
  %indvars.iv.next3030 = add nuw nsw i64 %indvars.iv3029, 1
  %exitcond3033.not = icmp eq i64 %indvars.iv.next3030, %wide.trip.count3032
  br i1 %exitcond3033.not, label %..loopexit2371_crit_edge, label %.lr.ph2558, !llvm.loop !47

1014:                                             ; preds = %.loopexit2372
  %1015 = load i32, ptr %39, align 4, !tbaa !5
  %1016 = add nsw i32 %1015, -1
  store i32 %1016, ptr %28, align 4, !tbaa !5
  store i32 %1016, ptr %29, align 4, !tbaa !5
  %1017 = shl i32 %43, 1
  %1018 = or disjoint i32 %1017, 1
  %1019 = sext i32 %1018 to i64
  %1020 = getelementptr inbounds float, ptr %45, i64 %1019
  call void @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1020, ptr noundef nonnull %9) #7
  br label %.loopexit2371

..loopexit2371_crit_edge:                         ; preds = %._crit_edge2559
  store float %1013, ptr %30, align 4, !tbaa !9
  store float %991, ptr %34, align 4, !tbaa !9
  store i32 %979, ptr %29, align 4, !tbaa !5
  store i32 %980, ptr %35, align 4
  br label %.loopexit2371

.loopexit2371:                                    ; preds = %975, %..loopexit2371_crit_edge, %1014
  call void @sgesvj_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.19, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %7, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18) #7
  %1021 = load float, ptr %15, align 4, !tbaa !9
  store float %1021, ptr %40, align 4, !tbaa !9
  %1022 = getelementptr inbounds i8, ptr %15, i64 4
  %1023 = load float, ptr %1022, align 4, !tbaa !9
  %1024 = fcmp ult float %1023, 0.000000e+00
  %1025 = fpext float %1023 to double
  br i1 %1024, label %1029, label %1026

1026:                                             ; preds = %.loopexit2371
  %1027 = fadd double %1025, 5.000000e-01
  %1028 = call double @llvm.floor.f64(double %1027)
  br label %.loopexit2361

1029:                                             ; preds = %.loopexit2371
  %1030 = fsub double 5.000000e-01, %1025
  %1031 = call double @llvm.floor.f64(double %1030)
  %1032 = fneg double %1031
  br label %.loopexit2361

1033:                                             ; preds = %878
  %1034 = icmp eq i32 %.01952, 0
  %or.cond45 = select i1 %1034, i1 true, i1 %881
  br i1 %or.cond45, label %1182, label %1035

1035:                                             ; preds = %1033
  %1036 = load i32, ptr %39, align 4, !tbaa !5
  br i1 %.not21712347, label %1072, label %1037

1037:                                             ; preds = %1035
  store i32 %1036, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21852570 = icmp slt i32 %1036, 1
  br i1 %.not21852570, label %._crit_edge2574, label %.lr.ph2573

.lr.ph2573:                                       ; preds = %1037
  %1038 = add i32 %43, 1
  %1039 = add i32 %49, 1
  br label %1040

1040:                                             ; preds = %.lr.ph2573, %1040
  %1041 = phi i32 [ 1, %.lr.ph2573 ], [ %1052, %1040 ]
  %storemerge21842571.neg = phi i32 [ -1, %.lr.ph2573 ], [ %.neg2875, %1040 ]
  %1042 = load i32, ptr %7, align 4, !tbaa !5
  %1043 = add i32 %storemerge21842571.neg, 1
  %1044 = add i32 %1043, %1042
  store i32 %1044, ptr %29, align 4, !tbaa !5
  %1045 = mul i32 %1041, %1038
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds float, ptr %45, i64 %1046
  %1048 = mul i32 %1041, %1039
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds float, ptr %51, i64 %1049
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %1047, ptr noundef nonnull %9, ptr noundef %1050, ptr noundef nonnull @c__1) #7
  %1051 = load i32, ptr %35, align 4, !tbaa !5
  %.neg2875 = xor i32 %1051, -1
  %1052 = add nsw i32 %1051, 1
  store i32 %1052, ptr %35, align 4, !tbaa !5
  %1053 = load i32, ptr %28, align 4, !tbaa !5
  %.not2185.not = icmp slt i32 %1051, %1053
  br i1 %.not2185.not, label %1040, label %._crit_edge2574.loopexit, !llvm.loop !48

._crit_edge2574.loopexit:                         ; preds = %1040
  %.pre3187 = load i32, ptr %39, align 4, !tbaa !5
  br label %._crit_edge2574

._crit_edge2574:                                  ; preds = %._crit_edge2574.loopexit, %1037
  %1054 = phi i32 [ %.pre3187, %._crit_edge2574.loopexit ], [ %1036, %1037 ]
  %1055 = add nsw i32 %1054, -1
  store i32 %1055, ptr %28, align 4, !tbaa !5
  store i32 %1055, ptr %29, align 4, !tbaa !5
  %1056 = shl i32 %49, 1
  %1057 = or disjoint i32 %1056, 1
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds float, ptr %51, i64 %1058
  call void @slaset_(ptr noundef nonnull @.str.20, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1059, ptr noundef nonnull %14) #7
  call void @sgesvj_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %10, ptr noundef nonnull %39, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18) #7
  %1060 = load float, ptr %15, align 4, !tbaa !9
  store float %1060, ptr %40, align 4, !tbaa !9
  %1061 = getelementptr inbounds i8, ptr %15, i64 4
  %1062 = load float, ptr %1061, align 4, !tbaa !9
  %1063 = fcmp ult float %1062, 0.000000e+00
  %1064 = fpext float %1062 to double
  br i1 %1063, label %1068, label %1065

1065:                                             ; preds = %._crit_edge2574
  %1066 = fadd double %1064, 5.000000e-01
  %1067 = call double @llvm.floor.f64(double %1066)
  br label %1167

1068:                                             ; preds = %._crit_edge2574
  %1069 = fsub double 5.000000e-01, %1064
  %1070 = call double @llvm.floor.f64(double %1069)
  %1071 = fneg double %1070
  br label %1167

1072:                                             ; preds = %1035
  %1073 = add nsw i32 %1036, -1
  store i32 %1073, ptr %28, align 4, !tbaa !5
  store i32 %1073, ptr %29, align 4, !tbaa !5
  %1074 = sext i32 %43 to i64
  %1075 = getelementptr float, ptr %45, i64 %1074
  %1076 = getelementptr i8, ptr %1075, i64 8
  call void @slaset_(ptr noundef nonnull @.str.21, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1076, ptr noundef nonnull %9) #7
  %1077 = load i32, ptr %16, align 4, !tbaa !5
  %1078 = load i32, ptr %7, align 4, !tbaa !5
  %1079 = sub nsw i32 %1077, %1078
  store i32 %1079, ptr %28, align 4, !tbaa !5
  %1080 = sext i32 %1078 to i64
  %1081 = getelementptr float, ptr %52, i64 %1080
  %1082 = getelementptr i8, ptr %1081, i64 4
  call void @sgelqf_(ptr noundef nonnull %39, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %15, ptr noundef %1082, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  call void @slacpy_(ptr noundef nonnull @.str.21, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %13, ptr noundef nonnull %14) #7
  %1083 = load i32, ptr %39, align 4, !tbaa !5
  %1084 = add nsw i32 %1083, -1
  store i32 %1084, ptr %28, align 4, !tbaa !5
  store i32 %1084, ptr %29, align 4, !tbaa !5
  %1085 = shl i32 %49, 1
  %1086 = or disjoint i32 %1085, 1
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds float, ptr %51, i64 %1087
  call void @slaset_(ptr noundef nonnull @.str.20, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1088, ptr noundef nonnull %14) #7
  %1089 = load i32, ptr %16, align 4, !tbaa !5
  %1090 = load i32, ptr %7, align 4, !tbaa !5
  %1091 = shl i32 %1090, 1
  %1092 = sub nsw i32 %1089, %1091
  store i32 %1092, ptr %28, align 4, !tbaa !5
  %1093 = sext i32 %1090 to i64
  %1094 = getelementptr float, ptr %52, i64 %1093
  %1095 = getelementptr i8, ptr %1094, i64 4
  %1096 = or disjoint i32 %1091, 1
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds float, ptr %52, i64 %1097
  call void @sgeqrf_(ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %1095, ptr noundef nonnull %1098, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %1099 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1099, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21832575 = icmp slt i32 %1099, 1
  br i1 %.not21832575, label %._crit_edge2579, label %.lr.ph2578

.lr.ph2578:                                       ; preds = %1072
  %1100 = add i32 %49, 1
  br label %1101

1101:                                             ; preds = %.lr.ph2578, %1101
  %1102 = phi i32 [ 1, %.lr.ph2578 ], [ %1110, %1101 ]
  %storemerge21822576.neg = phi i32 [ -1, %.lr.ph2578 ], [ %.neg2876, %1101 ]
  %1103 = load i32, ptr %39, align 4, !tbaa !5
  %1104 = add i32 %storemerge21822576.neg, 1
  %1105 = add i32 %1104, %1103
  store i32 %1105, ptr %29, align 4, !tbaa !5
  %1106 = mul i32 %1102, %1100
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds float, ptr %51, i64 %1107
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %1108, ptr noundef nonnull %14, ptr noundef %1108, ptr noundef nonnull @c__1) #7
  %1109 = load i32, ptr %35, align 4, !tbaa !5
  %.neg2876 = xor i32 %1109, -1
  %1110 = add nsw i32 %1109, 1
  store i32 %1110, ptr %35, align 4, !tbaa !5
  %1111 = load i32, ptr %28, align 4, !tbaa !5
  %.not2183.not = icmp slt i32 %1109, %1111
  br i1 %.not2183.not, label %1101, label %._crit_edge2579.loopexit, !llvm.loop !49

._crit_edge2579.loopexit:                         ; preds = %1101
  %.pre3188 = load i32, ptr %39, align 4, !tbaa !5
  br label %._crit_edge2579

._crit_edge2579:                                  ; preds = %._crit_edge2579.loopexit, %1072
  %1112 = phi i32 [ %.pre3188, %._crit_edge2579.loopexit ], [ %1099, %1072 ]
  %1113 = add nsw i32 %1112, -1
  store i32 %1113, ptr %28, align 4, !tbaa !5
  store i32 %1113, ptr %29, align 4, !tbaa !5
  call void @slaset_(ptr noundef nonnull @.str.20, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1088, ptr noundef nonnull %14) #7
  %1114 = load i32, ptr %16, align 4, !tbaa !5
  %1115 = load i32, ptr %7, align 4, !tbaa !5
  %1116 = sub nsw i32 %1114, %1115
  store i32 %1116, ptr %28, align 4, !tbaa !5
  %1117 = sext i32 %1115 to i64
  %1118 = getelementptr float, ptr %52, i64 %1117
  %1119 = getelementptr i8, ptr %1118, i64 4
  call void @sgesvj_(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %10, ptr noundef nonnull %39, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %1119, ptr noundef nonnull %28, ptr noundef nonnull %18) #7
  %1120 = load i32, ptr %7, align 4, !tbaa !5
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr float, ptr %52, i64 %1121
  %1123 = getelementptr i8, ptr %1122, i64 4
  %1124 = load float, ptr %1123, align 4, !tbaa !9
  store float %1124, ptr %40, align 4, !tbaa !9
  %1125 = getelementptr i8, ptr %1122, i64 8
  %1126 = load float, ptr %1125, align 4, !tbaa !9
  %1127 = fcmp ult float %1126, 0.000000e+00
  %1128 = fpext float %1126 to double
  br i1 %1127, label %1132, label %1129

1129:                                             ; preds = %._crit_edge2579
  %1130 = fadd double %1128, 5.000000e-01
  %1131 = call double @llvm.floor.f64(double %1130)
  br label %1136

1132:                                             ; preds = %._crit_edge2579
  %1133 = fsub double 5.000000e-01, %1128
  %1134 = call double @llvm.floor.f64(double %1133)
  %1135 = fneg double %1134
  br label %1136

1136:                                             ; preds = %1132, %1129
  %1137 = phi double [ %1131, %1129 ], [ %1135, %1132 ]
  %1138 = load i32, ptr %39, align 4, !tbaa !5
  %1139 = icmp slt i32 %1138, %1120
  br i1 %1139, label %1140, label %1161

1140:                                             ; preds = %1136
  %1141 = sub nsw i32 %1120, %1138
  store i32 %1141, ptr %28, align 4, !tbaa !5
  %1142 = add i32 %49, 1
  %1143 = add i32 %1142, %1138
  %1144 = sext i32 %1143 to i64
  %1145 = getelementptr inbounds float, ptr %51, i64 %1144
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1145, ptr noundef nonnull %14) #7
  %1146 = load i32, ptr %7, align 4, !tbaa !5
  %1147 = load i32, ptr %39, align 4, !tbaa !5
  %1148 = sub nsw i32 %1146, %1147
  store i32 %1148, ptr %28, align 4, !tbaa !5
  %1149 = add nsw i32 %1147, 1
  %1150 = mul nsw i32 %1149, %49
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr float, ptr %51, i64 %1151
  %1153 = getelementptr i8, ptr %1152, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1153, ptr noundef nonnull %14) #7
  %1154 = load i32, ptr %7, align 4, !tbaa !5
  %1155 = load i32, ptr %39, align 4, !tbaa !5
  %1156 = sub nsw i32 %1154, %1155
  store i32 %1156, ptr %28, align 4, !tbaa !5
  store i32 %1156, ptr %29, align 4, !tbaa !5
  %1157 = add nsw i32 %1155, 1
  %1158 = mul i32 %1157, %1142
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds float, ptr %51, i64 %1159
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %1160, ptr noundef nonnull %14) #7
  %.pre3189 = load i32, ptr %7, align 4, !tbaa !5
  %.pre3236 = sext i32 %.pre3189 to i64
  br label %1161

1161:                                             ; preds = %1140, %1136
  %.pre-phi3237 = phi i64 [ %.pre3236, %1140 ], [ %1121, %1136 ]
  %1162 = phi i32 [ %.pre3189, %1140 ], [ %1120, %1136 ]
  %1163 = load i32, ptr %16, align 4, !tbaa !5
  %1164 = sub nsw i32 %1163, %1162
  store i32 %1164, ptr %28, align 4, !tbaa !5
  %1165 = getelementptr float, ptr %52, i64 %.pre-phi3237
  %1166 = getelementptr i8, ptr %1165, i64 4
  call void @sormlq_(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.23, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %15, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %1166, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  br label %1167

1167:                                             ; preds = %1065, %1068, %1161
  %.0.in = phi double [ %1137, %1161 ], [ %1067, %1065 ], [ %1071, %1068 ]
  %1168 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %1168, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21872580 = icmp slt i32 %1168, 1
  br i1 %.not21872580, label %._crit_edge2584, label %.lr.ph2583

.lr.ph2583:                                       ; preds = %1167, %.lr.ph2583
  %storemerge21862581 = phi i32 [ %1179, %.lr.ph2583 ], [ 1, %1167 ]
  %1169 = add nsw i32 %storemerge21862581, %49
  %1170 = sext i32 %1169 to i64
  %1171 = getelementptr inbounds float, ptr %51, i64 %1170
  %1172 = sext i32 %storemerge21862581 to i64
  %1173 = getelementptr inbounds i32, ptr %53, i64 %1172
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = add nsw i32 %1174, %43
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds float, ptr %45, i64 %1176
  call void @scopy_(ptr noundef nonnull %7, ptr noundef %1171, ptr noundef nonnull %14, ptr noundef %1177, ptr noundef nonnull %9) #7
  %1178 = load i32, ptr %35, align 4, !tbaa !5
  %1179 = add nsw i32 %1178, 1
  store i32 %1179, ptr %35, align 4, !tbaa !5
  %1180 = load i32, ptr %28, align 4, !tbaa !5
  %.not2187.not = icmp slt i32 %1178, %1180
  br i1 %.not2187.not, label %.lr.ph2583, label %._crit_edge2584, !llvm.loop !50

._crit_edge2584:                                  ; preds = %.lr.ph2583, %1167
  call void @slacpy_(ptr noundef nonnull @.str.24, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %13, ptr noundef nonnull %14) #7
  br i1 %.01927.shrunk, label %1181, label %.loopexit2361

1181:                                             ; preds = %._crit_edge2584
  call void @slacpy_(ptr noundef nonnull @.str.24, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %11, ptr noundef nonnull %12) #7
  br label %.loopexit2361

1182:                                             ; preds = %1033
  %1183 = icmp eq i32 %.01953, 0
  %or.cond47 = or i1 %1183, %880
  br i1 %or.cond47, label %1316, label %1184

1184:                                             ; preds = %1182
  %1185 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1185, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21892585 = icmp slt i32 %1185, 1
  br i1 %.not21892585, label %._crit_edge2589, label %.lr.ph2588

.lr.ph2588:                                       ; preds = %1184
  %1186 = add i32 %43, 1
  %1187 = add i32 %46, 1
  br label %1188

1188:                                             ; preds = %.lr.ph2588, %1188
  %1189 = phi i32 [ 1, %.lr.ph2588 ], [ %1200, %1188 ]
  %storemerge21882586.neg = phi i32 [ -1, %.lr.ph2588 ], [ %.neg2877, %1188 ]
  %1190 = load i32, ptr %7, align 4, !tbaa !5
  %1191 = add i32 %storemerge21882586.neg, 1
  %1192 = add i32 %1191, %1190
  store i32 %1192, ptr %29, align 4, !tbaa !5
  %1193 = mul i32 %1189, %1186
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds float, ptr %45, i64 %1194
  %1196 = mul i32 %1189, %1187
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds float, ptr %48, i64 %1197
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %1195, ptr noundef nonnull %9, ptr noundef %1198, ptr noundef nonnull @c__1) #7
  %1199 = load i32, ptr %35, align 4, !tbaa !5
  %.neg2877 = xor i32 %1199, -1
  %1200 = add nsw i32 %1199, 1
  store i32 %1200, ptr %35, align 4, !tbaa !5
  %1201 = load i32, ptr %28, align 4, !tbaa !5
  %.not2189.not = icmp slt i32 %1199, %1201
  br i1 %.not2189.not, label %1188, label %._crit_edge2589.loopexit, !llvm.loop !51

._crit_edge2589.loopexit:                         ; preds = %1188
  %.pre3190 = load i32, ptr %39, align 4, !tbaa !5
  br label %._crit_edge2589

._crit_edge2589:                                  ; preds = %._crit_edge2589.loopexit, %1184
  %1202 = phi i32 [ %.pre3190, %._crit_edge2589.loopexit ], [ %1185, %1184 ]
  %1203 = add nsw i32 %1202, -1
  store i32 %1203, ptr %28, align 4, !tbaa !5
  store i32 %1203, ptr %29, align 4, !tbaa !5
  %1204 = shl i32 %46, 1
  %1205 = or disjoint i32 %1204, 1
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds float, ptr %48, i64 %1206
  call void @slaset_(ptr noundef nonnull @.str.20, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1207, ptr noundef nonnull %12) #7
  %1208 = load i32, ptr %16, align 4, !tbaa !5
  %1209 = load i32, ptr %7, align 4, !tbaa !5
  %1210 = shl i32 %1209, 1
  %1211 = sub nsw i32 %1208, %1210
  store i32 %1211, ptr %28, align 4, !tbaa !5
  %1212 = sext i32 %1209 to i64
  %1213 = getelementptr float, ptr %52, i64 %1212
  %1214 = getelementptr i8, ptr %1213, i64 4
  %1215 = or disjoint i32 %1210, 1
  %1216 = sext i32 %1215 to i64
  %1217 = getelementptr inbounds float, ptr %52, i64 %1216
  call void @sgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %1214, ptr noundef nonnull %1217, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %1218 = load i32, ptr %39, align 4, !tbaa !5
  %1219 = add nsw i32 %1218, -1
  store i32 %1219, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21912590 = icmp slt i32 %1218, 2
  br i1 %.not21912590, label %._crit_edge2594, label %.lr.ph2593

.lr.ph2593:                                       ; preds = %._crit_edge2589, %.lr.ph2593
  %1220 = phi i32 [ %1233, %.lr.ph2593 ], [ 1, %._crit_edge2589 ]
  %1221 = load i32, ptr %39, align 4, !tbaa !5
  %1222 = sub nsw i32 %1221, %1220
  store i32 %1222, ptr %29, align 4, !tbaa !5
  %1223 = add nsw i32 %1220, 1
  %1224 = mul nsw i32 %1223, %46
  %1225 = add nsw i32 %1224, %1220
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds float, ptr %48, i64 %1226
  %1228 = mul nsw i32 %1220, %46
  %1229 = add nsw i32 %1223, %1228
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds float, ptr %48, i64 %1230
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %1227, ptr noundef nonnull %12, ptr noundef %1231, ptr noundef nonnull @c__1) #7
  %1232 = load i32, ptr %35, align 4, !tbaa !5
  %1233 = add nsw i32 %1232, 1
  store i32 %1233, ptr %35, align 4, !tbaa !5
  %1234 = load i32, ptr %28, align 4, !tbaa !5
  %.not2191.not = icmp slt i32 %1232, %1234
  br i1 %.not2191.not, label %.lr.ph2593, label %._crit_edge2594.loopexit, !llvm.loop !52

._crit_edge2594.loopexit:                         ; preds = %.lr.ph2593
  %.pre3191 = load i32, ptr %39, align 4, !tbaa !5
  %.pre3234 = add nsw i32 %.pre3191, -1
  br label %._crit_edge2594

._crit_edge2594:                                  ; preds = %._crit_edge2594.loopexit, %._crit_edge2589
  %.pre-phi3235 = phi i32 [ %.pre3234, %._crit_edge2594.loopexit ], [ %1219, %._crit_edge2589 ]
  store i32 %.pre-phi3235, ptr %28, align 4, !tbaa !5
  store i32 %.pre-phi3235, ptr %29, align 4, !tbaa !5
  call void @slaset_(ptr noundef nonnull @.str.20, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1207, ptr noundef nonnull %12) #7
  %1235 = load i32, ptr %16, align 4, !tbaa !5
  %1236 = load i32, ptr %7, align 4, !tbaa !5
  %1237 = sub nsw i32 %1235, %1236
  store i32 %1237, ptr %28, align 4, !tbaa !5
  %1238 = sext i32 %1236 to i64
  %1239 = getelementptr float, ptr %52, i64 %1238
  %1240 = getelementptr i8, ptr %1239, i64 4
  call void @sgesvj_(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %10, ptr noundef nonnull %39, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %1240, ptr noundef nonnull %28, ptr noundef nonnull %18) #7
  %1241 = load i32, ptr %7, align 4, !tbaa !5
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr float, ptr %52, i64 %1242
  %1244 = getelementptr i8, ptr %1243, i64 4
  %1245 = load float, ptr %1244, align 4, !tbaa !9
  store float %1245, ptr %40, align 4, !tbaa !9
  %1246 = getelementptr i8, ptr %1243, i64 8
  %1247 = load float, ptr %1246, align 4, !tbaa !9
  %1248 = fcmp ult float %1247, 0.000000e+00
  %1249 = fpext float %1247 to double
  br i1 %1248, label %1253, label %1250

1250:                                             ; preds = %._crit_edge2594
  %1251 = fadd double %1249, 5.000000e-01
  %1252 = call double @llvm.floor.f64(double %1251)
  br label %1257

1253:                                             ; preds = %._crit_edge2594
  %1254 = fsub double 5.000000e-01, %1249
  %1255 = call double @llvm.floor.f64(double %1254)
  %1256 = fneg double %1255
  br label %1257

1257:                                             ; preds = %1253, %1250
  %1258 = phi double [ %1252, %1250 ], [ %1256, %1253 ]
  %1259 = load i32, ptr %39, align 4, !tbaa !5
  %1260 = load i32, ptr %6, align 4, !tbaa !5
  %1261 = icmp slt i32 %1259, %1260
  br i1 %1261, label %1262, label %1287

1262:                                             ; preds = %1257
  %1263 = sub nsw i32 %1260, %1259
  store i32 %1263, ptr %28, align 4, !tbaa !5
  %1264 = add i32 %46, 1
  %1265 = add i32 %1264, %1259
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds float, ptr %48, i64 %1266
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1267, ptr noundef nonnull %12) #7
  %1268 = load i32, ptr %39, align 4, !tbaa !5
  %1269 = load i32, ptr %36, align 4, !tbaa !5
  %1270 = icmp slt i32 %1268, %1269
  br i1 %1270, label %1271, label %1287

1271:                                             ; preds = %1262
  %1272 = sub nsw i32 %1269, %1268
  store i32 %1272, ptr %28, align 4, !tbaa !5
  %1273 = add nsw i32 %1268, 1
  %1274 = mul nsw i32 %1273, %46
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr float, ptr %48, i64 %1275
  %1277 = getelementptr i8, ptr %1276, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1277, ptr noundef nonnull %12) #7
  %1278 = load i32, ptr %6, align 4, !tbaa !5
  %1279 = load i32, ptr %39, align 4, !tbaa !5
  %1280 = sub nsw i32 %1278, %1279
  store i32 %1280, ptr %28, align 4, !tbaa !5
  %1281 = load i32, ptr %36, align 4, !tbaa !5
  %1282 = sub nsw i32 %1281, %1279
  store i32 %1282, ptr %29, align 4, !tbaa !5
  %1283 = add nsw i32 %1279, 1
  %1284 = mul i32 %1283, %1264
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds float, ptr %48, i64 %1285
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %1286, ptr noundef nonnull %12) #7
  br label %1287

1287:                                             ; preds = %1262, %1271, %1257
  %1288 = load i32, ptr %16, align 4, !tbaa !5
  %1289 = load i32, ptr %7, align 4, !tbaa !5
  %1290 = sub nsw i32 %1288, %1289
  store i32 %1290, ptr %28, align 4, !tbaa !5
  %1291 = sext i32 %1289 to i64
  %1292 = getelementptr float, ptr %52, i64 %1291
  %1293 = getelementptr i8, ptr %1292, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.25, ptr noundef nonnull %6, ptr noundef nonnull %36, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %15, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %1293, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  br i1 %.01926.shrunk, label %1294, label %1303

1294:                                             ; preds = %1287
  %1295 = load i32, ptr %6, align 4, !tbaa !5
  %1296 = add nsw i32 %1295, -1
  store i32 %1296, ptr %28, align 4, !tbaa !5
  %1297 = load i32, ptr %7, align 4, !tbaa !5
  %1298 = shl i32 %1297, 1
  %1299 = or disjoint i32 %1298, 1
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds i32, ptr %53, i64 %1300
  %1302 = call i32 @slaswp_(ptr noundef nonnull %36, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull @c__1, ptr noundef nonnull %28, ptr noundef nonnull %1301, ptr noundef nonnull @c_n1) #7
  br label %1303

1303:                                             ; preds = %1294, %1287
  %1304 = load i32, ptr %36, align 4, !tbaa !5
  store i32 %1304, ptr %28, align 4, !tbaa !5
  %invariant.gep2595 = getelementptr i8, ptr %48, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21932599 = icmp slt i32 %1304, 1
  br i1 %.not21932599, label %._crit_edge2603, label %.lr.ph2602

.lr.ph2602:                                       ; preds = %1303, %.lr.ph2602
  %storemerge21922600 = phi i32 [ %1313, %.lr.ph2602 ], [ 1, %1303 ]
  %1305 = mul nsw i32 %storemerge21922600, %46
  %1306 = sext i32 %1305 to i64
  %gep2596 = getelementptr float, ptr %invariant.gep2595, i64 %1306
  %1307 = call float @snrm2_(ptr noundef nonnull %6, ptr noundef %gep2596, ptr noundef nonnull @c__1) #7
  %1308 = fdiv float 1.000000e+00, %1307
  store float %1308, ptr %41, align 4, !tbaa !9
  %1309 = load i32, ptr %35, align 4, !tbaa !5
  %1310 = mul nsw i32 %1309, %46
  %1311 = sext i32 %1310 to i64
  %gep2598 = getelementptr float, ptr %invariant.gep2595, i64 %1311
  call void @sscal_(ptr noundef nonnull %6, ptr noundef nonnull %41, ptr noundef %gep2598, ptr noundef nonnull @c__1) #7
  %1312 = load i32, ptr %35, align 4, !tbaa !5
  %1313 = add nsw i32 %1312, 1
  store i32 %1313, ptr %35, align 4, !tbaa !5
  %1314 = load i32, ptr %28, align 4, !tbaa !5
  %.not2193.not = icmp slt i32 %1312, %1314
  br i1 %.not2193.not, label %.lr.ph2602, label %._crit_edge2603, !llvm.loop !53

._crit_edge2603:                                  ; preds = %.lr.ph2602, %1303
  br i1 %.01927.shrunk, label %1315, label %.loopexit2361

1315:                                             ; preds = %._crit_edge2603
  call void @slacpy_(ptr noundef nonnull @.str.24, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14) #7
  br label %.loopexit2361

1316:                                             ; preds = %1182
  %.not2194 = icmp eq i32 %.01957, 0
  br i1 %.not2194, label %1317, label %2578

1317:                                             ; preds = %1316
  br i1 %.not21712347, label %1318, label %2374

1318:                                             ; preds = %1317
  %1319 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1319, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not21972698 = icmp slt i32 %1319, 1
  br i1 %.not21972698, label %._crit_edge2702, label %.lr.ph2701

.lr.ph2701:                                       ; preds = %1318
  %1320 = add i32 %43, 1
  %1321 = add i32 %49, 1
  br label %1322

1322:                                             ; preds = %.lr.ph2701, %1322
  %storemerge21962699 = phi i32 [ 1, %.lr.ph2701 ], [ %1332, %1322 ]
  %1323 = load i32, ptr %7, align 4, !tbaa !5
  %reass.sub2882 = sub i32 %1323, %storemerge21962699
  %1324 = add i32 %reass.sub2882, 1
  store i32 %1324, ptr %29, align 4, !tbaa !5
  %1325 = mul i32 %storemerge21962699, %1320
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds float, ptr %45, i64 %1326
  %1328 = mul i32 %storemerge21962699, %1321
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds float, ptr %51, i64 %1329
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %1327, ptr noundef nonnull %9, ptr noundef %1330, ptr noundef nonnull @c__1) #7
  %1331 = load i32, ptr %35, align 4, !tbaa !5
  %1332 = add nsw i32 %1331, 1
  store i32 %1332, ptr %35, align 4, !tbaa !5
  %1333 = load i32, ptr %28, align 4, !tbaa !5
  %.not2197.not = icmp slt i32 %1331, %1333
  br i1 %.not2197.not, label %1322, label %._crit_edge2702, !llvm.loop !54

._crit_edge2702:                                  ; preds = %1322, %1318
  br i1 %879, label %1334, label %1378

1334:                                             ; preds = %._crit_edge2702
  %sqrtf2198 = call float @sqrtf(float noundef %187) #3
  store float %sqrtf2198, ptr %41, align 4, !tbaa !9
  %1335 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1335, ptr %28, align 4, !tbaa !5
  %.not21992709 = icmp slt i32 %1335, 1
  %.pre3203 = load i32, ptr %7, align 4, !tbaa !5
  br i1 %.not21992709, label %.loopexit2367, label %.lr.ph2712

.lr.ph2712:                                       ; preds = %1334
  %.not22512703 = icmp slt i32 %.pre3203, 1
  %1336 = add i32 %.pre3203, 1
  %1337 = sext i32 %49 to i64
  %1338 = add nuw i32 %1335, 1
  %wide.trip.count3085 = zext i32 %1338 to i64
  %wide.trip.count3080 = zext i32 %1336 to i64
  br label %1339

1339:                                             ; preds = %.lr.ph2712, %._crit_edge2707
  %indvars.iv3082 = phi i64 [ 1, %.lr.ph2712 ], [ %indvars.iv.next3083, %._crit_edge2707 ]
  %indvars3084 = trunc i64 %indvars.iv3082 to i32
  %1340 = mul nsw i64 %indvars.iv3082, %1337
  %1341 = mul nsw i32 %49, %indvars3084
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr float, ptr %51, i64 %indvars.iv3082
  %1344 = getelementptr float, ptr %1343, i64 %1342
  %1345 = load float, ptr %1344, align 4, !tbaa !9
  %1346 = fcmp oge float %1345, 0.000000e+00
  %1347 = fneg float %1345
  %1348 = select i1 %1346, float %1345, float %1347
  %1349 = fmul float %sqrtf2198, %1348
  br i1 %.not22512703, label %._crit_edge2707, label %.lr.ph2706

.lr.ph2706:                                       ; preds = %1339
  %1350 = fcmp oge float %1349, 0.000000e+00
  %1351 = fneg float %1349
  %invariant.gep3332 = getelementptr float, ptr %51, i64 %1340
  br label %1352

1352:                                             ; preds = %.lr.ph2706, %1376
  %indvars.iv3077 = phi i64 [ 1, %.lr.ph2706 ], [ %indvars.iv.next3078, %1376 ]
  %1353 = phi float [ %1345, %.lr.ph2706 ], [ %1371, %1376 ]
  %1354 = icmp ugt i64 %indvars.iv3077, %indvars.iv3082
  br i1 %1354, label %1355, label %1363

1355:                                             ; preds = %1352
  %1356 = add nsw i64 %indvars.iv3077, %1340
  %1357 = getelementptr inbounds float, ptr %51, i64 %1356
  %1358 = load float, ptr %1357, align 4, !tbaa !9
  %1359 = fcmp oge float %1358, 0.000000e+00
  %1360 = fneg float %1358
  %1361 = select i1 %1359, float %1358, float %1360
  %1362 = fcmp ugt float %1361, %1349
  br i1 %1362, label %1370, label %1364

1363:                                             ; preds = %1352
  %.old2313 = icmp ult i64 %indvars.iv3077, %indvars.iv3082
  br i1 %.old2313, label %._crit_edge3241, label %1370

._crit_edge3241:                                  ; preds = %1363
  %.pre3244 = add nsw i64 %indvars.iv3077, %1340
  br label %1364

1364:                                             ; preds = %._crit_edge3241, %1355
  %.pre-phi3245 = phi i64 [ %.pre3244, %._crit_edge3241 ], [ %1356, %1355 ]
  %1365 = phi float [ %1353, %._crit_edge3241 ], [ %1358, %1355 ]
  %1366 = getelementptr inbounds float, ptr %51, i64 %.pre-phi3245
  %1367 = load float, ptr %1366, align 4, !tbaa !9
  %1368 = fcmp ult float %1367, 0.000000e+00
  %1369 = xor i1 %1350, %1368
  %.2871 = select i1 %1369, float %1349, float %1351
  store float %.2871, ptr %1366, align 4, !tbaa !9
  br label %1370

1370:                                             ; preds = %1355, %1364, %1363
  %1371 = phi float [ %1358, %1355 ], [ %1365, %1364 ], [ %1353, %1363 ]
  %1372 = icmp ult i64 %indvars.iv3077, %indvars.iv3082
  br i1 %1372, label %1373, label %1376

1373:                                             ; preds = %1370
  %gep3333 = getelementptr float, ptr %invariant.gep3332, i64 %indvars.iv3077
  %1374 = load float, ptr %gep3333, align 4, !tbaa !9
  %1375 = fneg float %1374
  store float %1375, ptr %gep3333, align 4, !tbaa !9
  br label %1376

1376:                                             ; preds = %1370, %1373
  %indvars.iv.next3078 = add nuw nsw i64 %indvars.iv3077, 1
  %exitcond3081.not = icmp eq i64 %indvars.iv.next3078, %wide.trip.count3080
  br i1 %exitcond3081.not, label %._crit_edge2707, label %1352, !llvm.loop !55

._crit_edge2707:                                  ; preds = %1376, %1339
  %1377 = phi float [ %1345, %1339 ], [ %1371, %1376 ]
  %storemerge2250.lcssa = phi i32 [ 1, %1339 ], [ %1336, %1376 ]
  %indvars.iv.next3083 = add nuw nsw i64 %indvars.iv3082, 1
  %exitcond3086.not = icmp eq i64 %indvars.iv.next3083, %wide.trip.count3085
  br i1 %exitcond3086.not, label %..loopexit2367_crit_edge, label %1339, !llvm.loop !56

1378:                                             ; preds = %._crit_edge2702
  %1379 = load i32, ptr %39, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, -1
  store i32 %1380, ptr %28, align 4, !tbaa !5
  store i32 %1380, ptr %29, align 4, !tbaa !5
  %1381 = shl i32 %49, 1
  %1382 = or disjoint i32 %1381, 1
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds float, ptr %51, i64 %1383
  call void @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1384, ptr noundef nonnull %14) #7
  %.pre3202 = load i32, ptr %7, align 4, !tbaa !5
  br label %.loopexit2367

..loopexit2367_crit_edge:                         ; preds = %._crit_edge2707
  store float %1377, ptr %30, align 4, !tbaa !9
  store float %1349, ptr %34, align 4, !tbaa !9
  store i32 %.pre3203, ptr %29, align 4, !tbaa !5
  store i32 %storemerge2250.lcssa, ptr %35, align 4, !tbaa !5
  br label %.loopexit2367

.loopexit2367:                                    ; preds = %1334, %..loopexit2367_crit_edge, %1378
  %1385 = phi i32 [ %.pre3203, %1334 ], [ %.pre3203, %..loopexit2367_crit_edge ], [ %.pre3202, %1378 ]
  %1386 = shl i32 %1385, 1
  %1387 = or disjoint i32 %1386, 1
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds float, ptr %52, i64 %1388
  call void @slacpy_(ptr noundef nonnull @.str.17, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %1389, ptr noundef nonnull %39) #7
  %1390 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1390, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22012716 = icmp slt i32 %1390, 1
  br i1 %.not22012716, label %._crit_edge2720, label %.lr.ph2719

.lr.ph2719:                                       ; preds = %.loopexit2367, %.lr.ph2719
  %storemerge22002717 = phi i32 [ %1416, %.lr.ph2719 ], [ 1, %.loopexit2367 ]
  %1391 = load i32, ptr %39, align 4, !tbaa !5
  %reass.sub2883 = sub i32 %1391, %storemerge22002717
  %1392 = add i32 %reass.sub2883, 1
  store i32 %1392, ptr %29, align 4, !tbaa !5
  %1393 = load i32, ptr %7, align 4, !tbaa !5
  %1394 = shl i32 %1393, 1
  %1395 = add nsw i32 %storemerge22002717, -1
  %1396 = mul nsw i32 %1391, %1395
  %1397 = add i32 %1396, %storemerge22002717
  %1398 = add i32 %1397, %1394
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds float, ptr %52, i64 %1399
  %1401 = call float @snrm2_(ptr noundef nonnull %29, ptr noundef nonnull %1400, ptr noundef nonnull @c__1) #7
  store float %1401, ptr %34, align 4, !tbaa !9
  %1402 = load i32, ptr %39, align 4, !tbaa !5
  %1403 = load i32, ptr %35, align 4, !tbaa !5
  %1404 = add i32 %1402, 1
  %1405 = sub i32 %1404, %1403
  store i32 %1405, ptr %29, align 4, !tbaa !5
  %1406 = fdiv float 1.000000e+00, %1401
  store float %1406, ptr %30, align 4, !tbaa !9
  %1407 = load i32, ptr %7, align 4, !tbaa !5
  %1408 = shl i32 %1407, 1
  %1409 = add nsw i32 %1403, -1
  %1410 = mul nsw i32 %1409, %1402
  %1411 = add i32 %1410, %1403
  %1412 = add i32 %1411, %1408
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds float, ptr %52, i64 %1413
  call void @sscal_(ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %1414, ptr noundef nonnull @c__1) #7
  %1415 = load i32, ptr %35, align 4, !tbaa !5
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr %35, align 4, !tbaa !5
  %1417 = load i32, ptr %28, align 4, !tbaa !5
  %.not2201.not = icmp slt i32 %1415, %1417
  br i1 %.not2201.not, label %.lr.ph2719, label %._crit_edge2720.loopexit, !llvm.loop !57

._crit_edge2720.loopexit:                         ; preds = %.lr.ph2719
  %.pre3204 = load i32, ptr %39, align 4, !tbaa !5
  br label %._crit_edge2720

._crit_edge2720:                                  ; preds = %._crit_edge2720.loopexit, %.loopexit2367
  %1418 = phi i32 [ %.pre3204, %._crit_edge2720.loopexit ], [ %1390, %.loopexit2367 ]
  %1419 = load i32, ptr %7, align 4, !tbaa !5
  %1420 = shl i32 %1419, 1
  %1421 = or disjoint i32 %1420, 1
  %1422 = sext i32 %1421 to i64
  %1423 = getelementptr inbounds float, ptr %52, i64 %1422
  %1424 = mul nsw i32 %1418, %1418
  %1425 = add nsw i32 %1424, %1420
  %1426 = sext i32 %1425 to i64
  %1427 = getelementptr float, ptr %52, i64 %1426
  %1428 = getelementptr i8, ptr %1427, i64 4
  %1429 = load i32, ptr %6, align 4, !tbaa !5
  %1430 = add nsw i32 %1429, %1420
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr i32, ptr %53, i64 %1431
  %1433 = getelementptr i8, ptr %1432, i64 4
  call void @spocon_(ptr noundef nonnull @.str.21, ptr noundef nonnull %39, ptr noundef nonnull %1423, ptr noundef nonnull %39, ptr noundef nonnull @c_b35, ptr noundef nonnull %34, ptr noundef %1428, ptr noundef %1433, ptr noundef nonnull %33) #7
  %1434 = load float, ptr %34, align 4, !tbaa !9
  %1435 = fpext float %1434 to double
  %1436 = call double @sqrt(double noundef %1435) #7
  %1437 = fdiv double 1.000000e+00, %1436
  %1438 = fptrunc double %1437 to float
  %1439 = load i32, ptr %39, align 4, !tbaa !5
  %1440 = sitofp i32 %1439 to float
  %sqrtf2202 = call float @sqrtf(float noundef %1440) #3
  %1441 = fcmp ogt float %sqrtf2202, %1438
  br i1 %1441, label %1442, label %1527

1442:                                             ; preds = %._crit_edge2720
  %1443 = load i32, ptr %16, align 4, !tbaa !5
  %1444 = load i32, ptr %7, align 4, !tbaa !5
  %1445 = shl i32 %1444, 1
  %1446 = sub nsw i32 %1443, %1445
  store i32 %1446, ptr %28, align 4, !tbaa !5
  %1447 = sext i32 %1444 to i64
  %1448 = getelementptr float, ptr %52, i64 %1447
  %1449 = getelementptr i8, ptr %1448, i64 4
  %1450 = or disjoint i32 %1445, 1
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds float, ptr %52, i64 %1451
  call void @sgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %1449, ptr noundef nonnull %1452, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  br i1 %879, label %1453, label %._crit_edge3208

._crit_edge3208:                                  ; preds = %1442
  %.pre3209 = load i32, ptr %39, align 4, !tbaa !5
  br label %1502

1453:                                             ; preds = %1442
  %1454 = fpext float %187 to double
  %1455 = call double @sqrt(double noundef %1454) #7
  %1456 = fpext float %185 to double
  %1457 = fdiv double %1455, %1456
  %1458 = fptrunc double %1457 to float
  store float %1458, ptr %41, align 4, !tbaa !9
  %1459 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1459, ptr %28, align 4, !tbaa !5
  %.not22182754 = icmp slt i32 %1459, 2
  br i1 %.not22182754, label %.loopexit2365, label %.lr.ph2757

.lr.ph2757:                                       ; preds = %1453
  %1460 = add i32 %49, 1
  %1461 = sext i32 %49 to i64
  %1462 = add nuw i32 %1459, 1
  %wide.trip.count3116 = zext i32 %1462 to i64
  br label %1463

1463:                                             ; preds = %.lr.ph2757, %1500
  %indvars.iv3113 = phi i64 [ 2, %.lr.ph2757 ], [ %indvars.iv.next3114, %1500 ]
  %1464 = trunc nuw nsw i64 %indvars.iv3113 to i32
  %1465 = mul i32 %1460, %1464
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds float, ptr %51, i64 %1466
  %1468 = mul nsw i64 %indvars.iv3113, %1461
  %invariant.gep3340 = getelementptr float, ptr %51, i64 %1468
  br label %1469

1469:                                             ; preds = %1463, %1499
  %indvars.iv3108 = phi i64 [ 1, %1463 ], [ %indvars.iv.next3109, %1499 ]
  %1470 = load float, ptr %1467, align 4, !tbaa !9
  %1471 = fcmp oge float %1470, 0.000000e+00
  %1472 = fneg float %1470
  %1473 = select i1 %1471, float %1470, float %1472
  %1474 = trunc nuw nsw i64 %indvars.iv3108 to i32
  %1475 = mul i32 %1460, %1474
  %1476 = sext i32 %1475 to i64
  %1477 = getelementptr inbounds float, ptr %51, i64 %1476
  %1478 = load float, ptr %1477, align 4, !tbaa !9
  %1479 = fcmp oge float %1478, 0.000000e+00
  %1480 = fneg float %1478
  %1481 = select i1 %1479, float %1478, float %1480
  %1482 = fcmp ole float %1473, %1481
  %1483 = select i1 %1482, float %1473, float %1481
  %1484 = fmul float %1483, %1458
  %gep3341 = getelementptr float, ptr %invariant.gep3340, i64 %indvars.iv3108
  %1485 = load float, ptr %gep3341, align 4, !tbaa !9
  %1486 = fcmp oge float %1485, 0.000000e+00
  %1487 = fneg float %1485
  %1488 = select i1 %1486, float %1485, float %1487
  %1489 = fcmp ugt float %1488, %1484
  br i1 %1489, label %1499, label %1490

1490:                                             ; preds = %1469
  %1491 = fcmp ult float %1485, 0.000000e+00
  %1492 = fcmp oge float %1484, 0.000000e+00
  %.neg2249 = fneg float %1484
  br i1 %1491, label %1495, label %1493

1493:                                             ; preds = %1490
  %1494 = select i1 %1492, float %1484, float %.neg2249
  br label %1497

1495:                                             ; preds = %1490
  %1496 = select i1 %1492, float %.neg2249, float %1484
  br label %1497

1497:                                             ; preds = %1495, %1493
  %1498 = phi float [ %1494, %1493 ], [ %1496, %1495 ]
  store float %1498, ptr %gep3341, align 4, !tbaa !9
  br label %1499

1499:                                             ; preds = %1469, %1497
  %indvars.iv.next3109 = add nuw nsw i64 %indvars.iv3108, 1
  %exitcond3112.not = icmp eq i64 %indvars.iv.next3109, %indvars.iv3113
  br i1 %exitcond3112.not, label %1500, label %1469, !llvm.loop !58

1500:                                             ; preds = %1499
  %indvars.iv.next3114 = add nuw nsw i64 %indvars.iv3113, 1
  %exitcond3117.not = icmp eq i64 %indvars.iv.next3114, %wide.trip.count3116
  br i1 %exitcond3117.not, label %..loopexit2365_crit_edge, label %1463, !llvm.loop !59

..loopexit2365_crit_edge:                         ; preds = %1500
  %1501 = add nsw i32 %1459, -1
  store i32 %1501, ptr %29, align 4, !tbaa !5
  store float %1485, ptr %30, align 4, !tbaa !9
  store float %1484, ptr %34, align 4, !tbaa !9
  br label %.loopexit2365

.loopexit2365:                                    ; preds = %..loopexit2365_crit_edge, %1453
  %storemerge2217.lcssa = phi i32 [ %1462, %..loopexit2365_crit_edge ], [ 2, %1453 ]
  store i32 %storemerge2217.lcssa, ptr %35, align 4, !tbaa !5
  br label %1502

1502:                                             ; preds = %._crit_edge3208, %.loopexit2365
  %1503 = phi i32 [ %.pre3209, %._crit_edge3208 ], [ %1459, %.loopexit2365 ]
  %1504 = load i32, ptr %7, align 4, !tbaa !5
  %.not2219 = icmp eq i32 %1503, %1504
  br i1 %.not2219, label %1510, label %1505

1505:                                             ; preds = %1502
  %1506 = shl i32 %1504, 1
  %1507 = or disjoint i32 %1506, 1
  %1508 = sext i32 %1507 to i64
  %1509 = getelementptr inbounds float, ptr %52, i64 %1508
  call void @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %1509, ptr noundef nonnull %7) #7
  %.pre3210 = load i32, ptr %39, align 4, !tbaa !5
  br label %1510

1510:                                             ; preds = %1505, %1502
  %1511 = phi i32 [ %.pre3210, %1505 ], [ %1503, %1502 ]
  %1512 = add nsw i32 %1511, -1
  store i32 %1512, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22212760 = icmp slt i32 %1511, 2
  br i1 %.not22212760, label %.loopexit2364, label %.lr.ph2763

.lr.ph2763:                                       ; preds = %1510, %.lr.ph2763
  %storemerge22202761 = phi i32 [ %1525, %.lr.ph2763 ], [ 1, %1510 ]
  %1513 = load i32, ptr %39, align 4, !tbaa !5
  %1514 = sub nsw i32 %1513, %storemerge22202761
  store i32 %1514, ptr %29, align 4, !tbaa !5
  %1515 = add nsw i32 %storemerge22202761, 1
  %1516 = mul nsw i32 %1515, %49
  %1517 = add nsw i32 %1516, %storemerge22202761
  %1518 = sext i32 %1517 to i64
  %1519 = getelementptr inbounds float, ptr %51, i64 %1518
  %1520 = mul nsw i32 %storemerge22202761, %49
  %1521 = add nsw i32 %1515, %1520
  %1522 = sext i32 %1521 to i64
  %1523 = getelementptr inbounds float, ptr %51, i64 %1522
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %1519, ptr noundef nonnull %14, ptr noundef %1523, ptr noundef nonnull @c__1) #7
  %1524 = load i32, ptr %35, align 4, !tbaa !5
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr %35, align 4, !tbaa !5
  %1526 = load i32, ptr %28, align 4, !tbaa !5
  %.not2221.not = icmp slt i32 %1524, %1526
  br i1 %.not2221.not, label %.lr.ph2763, label %.loopexit2364, !llvm.loop !60

1527:                                             ; preds = %._crit_edge2720
  %1528 = load i32, ptr %39, align 4, !tbaa !5
  %.not22042721 = icmp slt i32 %1528, 1
  br i1 %.not22042721, label %._crit_edge2725, label %.lr.ph2724.preheader

.lr.ph2724.preheader:                             ; preds = %1527
  %1529 = add nuw i32 %1528, 1
  %xtraiter3667 = and i32 %1528, 3
  %1530 = icmp ult i32 %1528, 4
  br i1 %1530, label %._crit_edge2725.loopexit.unr-lcssa, label %.lr.ph2724.preheader.new

.lr.ph2724.preheader.new:                         ; preds = %.lr.ph2724.preheader
  %unroll_iter3669 = and i32 %1528, 2147483644
  br label %.lr.ph2724

.lr.ph2724:                                       ; preds = %.lr.ph2724, %.lr.ph2724.preheader.new
  %storemerge22032722 = phi i32 [ 1, %.lr.ph2724.preheader.new ], [ %1550, %.lr.ph2724 ]
  %niter3670 = phi i32 [ 0, %.lr.ph2724.preheader.new ], [ %niter3670.next.3, %.lr.ph2724 ]
  %1531 = load i32, ptr %7, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, %storemerge22032722
  %1533 = sext i32 %1532 to i64
  %1534 = getelementptr inbounds i32, ptr %53, i64 %1533
  store i32 0, ptr %1534, align 4, !tbaa !5
  %1535 = add nuw nsw i32 %storemerge22032722, 1
  %1536 = load i32, ptr %7, align 4, !tbaa !5
  %1537 = add nsw i32 %1536, %1535
  %1538 = sext i32 %1537 to i64
  %1539 = getelementptr inbounds i32, ptr %53, i64 %1538
  store i32 0, ptr %1539, align 4, !tbaa !5
  %1540 = add nuw nsw i32 %storemerge22032722, 2
  %1541 = load i32, ptr %7, align 4, !tbaa !5
  %1542 = add nsw i32 %1541, %1540
  %1543 = sext i32 %1542 to i64
  %1544 = getelementptr inbounds i32, ptr %53, i64 %1543
  store i32 0, ptr %1544, align 4, !tbaa !5
  %1545 = add nuw i32 %storemerge22032722, 3
  %1546 = load i32, ptr %7, align 4, !tbaa !5
  %1547 = add nsw i32 %1546, %1545
  %1548 = sext i32 %1547 to i64
  %1549 = getelementptr inbounds i32, ptr %53, i64 %1548
  store i32 0, ptr %1549, align 4, !tbaa !5
  %1550 = add nuw i32 %storemerge22032722, 4
  %niter3670.next.3 = add nuw i32 %niter3670, 4
  %niter3670.ncmp.3 = icmp eq i32 %niter3670.next.3, %unroll_iter3669
  br i1 %niter3670.ncmp.3, label %._crit_edge2725.loopexit.unr-lcssa, label %.lr.ph2724, !llvm.loop !61

._crit_edge2725.loopexit.unr-lcssa:               ; preds = %.lr.ph2724, %.lr.ph2724.preheader
  %storemerge22032722.unr = phi i32 [ 1, %.lr.ph2724.preheader ], [ %1550, %.lr.ph2724 ]
  %lcmp.mod3668.not = icmp eq i32 %xtraiter3667, 0
  br i1 %lcmp.mod3668.not, label %._crit_edge2725, label %.lr.ph2724.epil

.lr.ph2724.epil:                                  ; preds = %._crit_edge2725.loopexit.unr-lcssa, %.lr.ph2724.epil
  %storemerge22032722.epil = phi i32 [ %1555, %.lr.ph2724.epil ], [ %storemerge22032722.unr, %._crit_edge2725.loopexit.unr-lcssa ]
  %epil.iter = phi i32 [ %epil.iter.next, %.lr.ph2724.epil ], [ 0, %._crit_edge2725.loopexit.unr-lcssa ]
  %1551 = load i32, ptr %7, align 4, !tbaa !5
  %1552 = add nsw i32 %1551, %storemerge22032722.epil
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds i32, ptr %53, i64 %1553
  store i32 0, ptr %1554, align 4, !tbaa !5
  %1555 = add nuw i32 %storemerge22032722.epil, 1
  %epil.iter.next = add i32 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i32 %epil.iter.next, %xtraiter3667
  br i1 %epil.iter.cmp.not, label %._crit_edge2725, label %.lr.ph2724.epil, !llvm.loop !62

._crit_edge2725:                                  ; preds = %._crit_edge2725.loopexit.unr-lcssa, %.lr.ph2724.epil, %1527
  %storemerge2203.lcssa = phi i32 [ 1, %1527 ], [ %1529, %.lr.ph2724.epil ], [ %1529, %._crit_edge2725.loopexit.unr-lcssa ]
  store i32 %storemerge2203.lcssa, ptr %35, align 4, !tbaa !5
  %1556 = load i32, ptr %16, align 4, !tbaa !5
  %1557 = load i32, ptr %7, align 4, !tbaa !5
  %1558 = shl i32 %1557, 1
  %1559 = sub nsw i32 %1556, %1558
  store i32 %1559, ptr %28, align 4, !tbaa !5
  %1560 = add nsw i32 %1557, 1
  %1561 = sext i32 %1560 to i64
  %1562 = getelementptr inbounds i32, ptr %53, i64 %1561
  %1563 = getelementptr inbounds float, ptr %52, i64 %1561
  %1564 = or disjoint i32 %1558, 1
  %1565 = sext i32 %1564 to i64
  %1566 = getelementptr inbounds float, ptr %52, i64 %1565
  call void @sgeqp3_(ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %1562, ptr noundef nonnull %1563, ptr noundef nonnull %1566, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  br i1 %879, label %1567, label %1655

1567:                                             ; preds = %._crit_edge2725
  %sqrtf2205 = call float @sqrtf(float noundef %187) #3
  store float %sqrtf2205, ptr %41, align 4, !tbaa !9
  %1568 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1568, ptr %28, align 4, !tbaa !5
  %.not22072730 = icmp slt i32 %1568, 2
  br i1 %.not22072730, label %1611, label %.lr.ph2733

.lr.ph2733:                                       ; preds = %1567
  %1569 = add i32 %49, 1
  %1570 = sext i32 %49 to i64
  %1571 = add nuw i32 %1568, 1
  %wide.trip.count3096 = zext i32 %1571 to i64
  br label %1572

1572:                                             ; preds = %.lr.ph2733, %1609
  %indvars.iv3093 = phi i64 [ 2, %.lr.ph2733 ], [ %indvars.iv.next3094, %1609 ]
  %1573 = trunc nuw nsw i64 %indvars.iv3093 to i32
  %1574 = mul i32 %1569, %1573
  %1575 = sext i32 %1574 to i64
  %1576 = getelementptr inbounds float, ptr %51, i64 %1575
  %1577 = mul nsw i64 %indvars.iv3093, %1570
  %invariant.gep3334 = getelementptr float, ptr %51, i64 %1577
  br label %1578

1578:                                             ; preds = %1572, %1608
  %indvars.iv3088 = phi i64 [ 1, %1572 ], [ %indvars.iv.next3089, %1608 ]
  %1579 = load float, ptr %1576, align 4, !tbaa !9
  %1580 = fcmp oge float %1579, 0.000000e+00
  %1581 = fneg float %1579
  %1582 = select i1 %1580, float %1579, float %1581
  %1583 = trunc nuw nsw i64 %indvars.iv3088 to i32
  %1584 = mul i32 %1569, %1583
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds float, ptr %51, i64 %1585
  %1587 = load float, ptr %1586, align 4, !tbaa !9
  %1588 = fcmp oge float %1587, 0.000000e+00
  %1589 = fneg float %1587
  %1590 = select i1 %1588, float %1587, float %1589
  %1591 = fcmp ole float %1582, %1590
  %1592 = select i1 %1591, float %1582, float %1590
  %1593 = fmul float %sqrtf2205, %1592
  %gep3335 = getelementptr float, ptr %invariant.gep3334, i64 %indvars.iv3088
  %1594 = load float, ptr %gep3335, align 4, !tbaa !9
  %1595 = fcmp oge float %1594, 0.000000e+00
  %1596 = fneg float %1594
  %1597 = select i1 %1595, float %1594, float %1596
  %1598 = fcmp ugt float %1597, %1593
  br i1 %1598, label %1608, label %1599

1599:                                             ; preds = %1578
  %1600 = fcmp ult float %1594, 0.000000e+00
  %1601 = fcmp oge float %1593, 0.000000e+00
  %.neg2216 = fneg float %1593
  br i1 %1600, label %1604, label %1602

1602:                                             ; preds = %1599
  %1603 = select i1 %1601, float %1593, float %.neg2216
  br label %1606

1604:                                             ; preds = %1599
  %1605 = select i1 %1601, float %.neg2216, float %1593
  br label %1606

1606:                                             ; preds = %1604, %1602
  %1607 = phi float [ %1603, %1602 ], [ %1605, %1604 ]
  store float %1607, ptr %gep3335, align 4, !tbaa !9
  br label %1608

1608:                                             ; preds = %1578, %1606
  %indvars.iv.next3089 = add nuw nsw i64 %indvars.iv3088, 1
  %exitcond3092.not = icmp eq i64 %indvars.iv.next3089, %indvars.iv3093
  br i1 %exitcond3092.not, label %1609, label %1578, !llvm.loop !64

1609:                                             ; preds = %1608
  %indvars.iv.next3094 = add nuw nsw i64 %indvars.iv3093, 1
  %exitcond3097.not = icmp eq i64 %indvars.iv.next3094, %wide.trip.count3096
  br i1 %exitcond3097.not, label %._crit_edge2734, label %1572, !llvm.loop !65

._crit_edge2734:                                  ; preds = %1609
  %1610 = add nsw i32 %1568, -1
  store i32 %1610, ptr %29, align 4, !tbaa !5
  store float %1594, ptr %30, align 4, !tbaa !9
  store float %1593, ptr %34, align 4, !tbaa !9
  br label %1611

1611:                                             ; preds = %1567, %._crit_edge2734
  %storemerge2206.lcssa = phi i32 [ %1571, %._crit_edge2734 ], [ 2, %1567 ]
  store i32 %storemerge2206.lcssa, ptr %35, align 4, !tbaa !5
  %1612 = load i32, ptr %7, align 4, !tbaa !5
  %1613 = shl i32 %1612, 1
  %1614 = or disjoint i32 %1613, 1
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds float, ptr %52, i64 %1615
  call void @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %1616, ptr noundef nonnull %7) #7
  %sqrtf2208 = call float @sqrtf(float noundef %187) #3
  store float %sqrtf2208, ptr %41, align 4, !tbaa !9
  %1617 = load i32, ptr %39, align 4, !tbaa !5
  %.not22102740 = icmp slt i32 %1617, 2
  br i1 %.not22102740, label %.loopexit2366, label %.lr.ph2743

.lr.ph2743:                                       ; preds = %1611
  %1618 = add i32 %49, 1
  %1619 = sext i32 %49 to i64
  %1620 = add nuw i32 %1617, 1
  %wide.trip.count3106 = zext i32 %1620 to i64
  br label %1621

1621:                                             ; preds = %.lr.ph2743, %1654
  %indvars.iv3103 = phi i64 [ 2, %.lr.ph2743 ], [ %indvars.iv.next3104, %1654 ]
  %1622 = trunc nuw nsw i64 %indvars.iv3103 to i32
  %1623 = mul i32 %1618, %1622
  %1624 = sext i32 %1623 to i64
  %1625 = getelementptr inbounds float, ptr %51, i64 %1624
  %1626 = mul nsw i64 %indvars.iv3103, %1619
  %invariant.gep3336 = getelementptr float, ptr %51, i64 %1626
  %invariant.gep3338 = getelementptr float, ptr %51, i64 %indvars.iv3103
  br label %1627

1627:                                             ; preds = %1621, %1651
  %indvars.iv3098 = phi i64 [ 1, %1621 ], [ %indvars.iv.next3099, %1651 ]
  %indvars3100 = trunc i64 %indvars.iv3098 to i32
  %1628 = load float, ptr %1625, align 4, !tbaa !9
  %1629 = fcmp oge float %1628, 0.000000e+00
  %1630 = fneg float %1628
  %1631 = select i1 %1629, float %1628, float %1630
  %1632 = mul nsw i64 %indvars.iv3098, %1619
  %1633 = mul nsw i32 %49, %indvars3100
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr float, ptr %51, i64 %indvars.iv3098
  %1636 = getelementptr float, ptr %1635, i64 %1634
  %1637 = load float, ptr %1636, align 4, !tbaa !9
  %1638 = fcmp oge float %1637, 0.000000e+00
  %1639 = fneg float %1637
  %1640 = select i1 %1638, float %1637, float %1639
  %1641 = fcmp ole float %1631, %1640
  %1642 = select i1 %1641, float %1631, float %1640
  %1643 = fmul float %sqrtf2208, %1642
  %gep3337 = getelementptr float, ptr %invariant.gep3336, i64 %indvars.iv3098
  %1644 = load float, ptr %gep3337, align 4, !tbaa !9
  %1645 = fcmp ult float %1644, 0.000000e+00
  %1646 = fcmp oge float %1643, 0.000000e+00
  %.neg2214 = fneg float %1643
  br i1 %1645, label %1649, label %1647

1647:                                             ; preds = %1627
  %1648 = select i1 %1646, float %1643, float %.neg2214
  br label %1651

1649:                                             ; preds = %1627
  %1650 = select i1 %1646, float %.neg2214, float %1643
  br label %1651

1651:                                             ; preds = %1649, %1647
  %1652 = phi float [ %1648, %1647 ], [ %1650, %1649 ]
  %1653 = fneg float %1652
  %gep3339 = getelementptr float, ptr %invariant.gep3338, i64 %1632
  store float %1653, ptr %gep3339, align 4, !tbaa !9
  %indvars.iv.next3099 = add nuw nsw i64 %indvars.iv3098, 1
  %exitcond3102.not = icmp eq i64 %indvars.iv.next3099, %indvars.iv3103
  br i1 %exitcond3102.not, label %1654, label %1627, !llvm.loop !66

1654:                                             ; preds = %1651
  %indvars.iv.next3104 = add nuw nsw i64 %indvars.iv3103, 1
  %exitcond3107.not = icmp eq i64 %indvars.iv.next3104, %wide.trip.count3106
  br i1 %exitcond3107.not, label %..loopexit2366_crit_edge, label %1621, !llvm.loop !67

1655:                                             ; preds = %._crit_edge2725
  %1656 = load i32, ptr %7, align 4, !tbaa !5
  %1657 = shl i32 %1656, 1
  %1658 = or disjoint i32 %1657, 1
  %1659 = sext i32 %1658 to i64
  %1660 = getelementptr inbounds float, ptr %52, i64 %1659
  call void @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %1660, ptr noundef nonnull %7) #7
  %1661 = load i32, ptr %39, align 4, !tbaa !5
  %1662 = add nsw i32 %1661, -1
  store i32 %1662, ptr %28, align 4, !tbaa !5
  store i32 %1662, ptr %29, align 4, !tbaa !5
  %1663 = sext i32 %49 to i64
  %1664 = getelementptr float, ptr %51, i64 %1663
  %1665 = getelementptr i8, ptr %1664, i64 8
  call void @slaset_(ptr noundef nonnull @.str.17, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1665, ptr noundef nonnull %14) #7
  %.pre3206 = load i32, ptr %39, align 4, !tbaa !5
  br label %1667

..loopexit2366_crit_edge:                         ; preds = %1654
  %1666 = add nsw i32 %1617, -1
  store i32 %1666, ptr %29, align 4, !tbaa !5
  store float %1628, ptr %30, align 4, !tbaa !9
  store float %1643, ptr %34, align 4, !tbaa !9
  br label %.loopexit2366

.loopexit2366:                                    ; preds = %..loopexit2366_crit_edge, %1611
  %storemerge2209.lcssa = phi i32 [ %1620, %..loopexit2366_crit_edge ], [ 2, %1611 ]
  store i32 %storemerge2209.lcssa, ptr %35, align 4, !tbaa !5
  br label %1667

1667:                                             ; preds = %.loopexit2366, %1655
  %1668 = phi i32 [ %1617, %.loopexit2366 ], [ %.pre3206, %1655 ]
  %1669 = load i32, ptr %16, align 4, !tbaa !5
  %1670 = load i32, ptr %7, align 4, !tbaa !5
  %1671 = add i32 %1668, 2
  %1672 = mul i32 %1671, %1670
  %1673 = add i32 %1672, %1668
  %1674 = sub i32 %1669, %1673
  store i32 %1674, ptr %28, align 4, !tbaa !5
  %1675 = sext i32 %1672 to i64
  %1676 = getelementptr float, ptr %52, i64 %1675
  %1677 = getelementptr i8, ptr %1676, i64 4
  %1678 = sext i32 %1673 to i64
  %1679 = getelementptr float, ptr %52, i64 %1678
  %1680 = getelementptr i8, ptr %1679, i64 4
  call void @sgelqf_(ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %1677, ptr noundef %1680, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %1681 = load i32, ptr %7, align 4, !tbaa !5
  %1682 = load i32, ptr %39, align 4, !tbaa !5
  %1683 = add i32 %1682, 2
  %1684 = mul i32 %1683, %1681
  %1685 = add nsw i32 %1684, %1682
  %1686 = sext i32 %1685 to i64
  %1687 = getelementptr float, ptr %52, i64 %1686
  %1688 = getelementptr i8, ptr %1687, i64 4
  call void @slacpy_(ptr noundef nonnull @.str.17, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %1688, ptr noundef nonnull %39) #7
  %1689 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %1689, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22122746 = icmp slt i32 %1689, 1
  br i1 %.not22122746, label %._crit_edge2750, label %.lr.ph2749

.lr.ph2749:                                       ; preds = %1667, %.lr.ph2749
  %storemerge22112747 = phi i32 [ %1710, %.lr.ph2749 ], [ 1, %1667 ]
  %1690 = load i32, ptr %7, align 4, !tbaa !5
  %1691 = load i32, ptr %39, align 4, !tbaa !5
  %1692 = add i32 %1691, 2
  %1693 = mul i32 %1692, %1690
  %1694 = add i32 %1691, %storemerge22112747
  %1695 = add i32 %1694, %1693
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds float, ptr %52, i64 %1696
  %1698 = call float @snrm2_(ptr noundef nonnull %35, ptr noundef nonnull %1697, ptr noundef nonnull %39) #7
  store float %1698, ptr %34, align 4, !tbaa !9
  %1699 = fdiv float 1.000000e+00, %1698
  store float %1699, ptr %30, align 4, !tbaa !9
  %1700 = load i32, ptr %7, align 4, !tbaa !5
  %1701 = load i32, ptr %39, align 4, !tbaa !5
  %1702 = add i32 %1701, 2
  %1703 = mul i32 %1702, %1700
  %1704 = load i32, ptr %35, align 4, !tbaa !5
  %1705 = add i32 %1704, %1701
  %1706 = add i32 %1705, %1703
  %1707 = sext i32 %1706 to i64
  %1708 = getelementptr inbounds float, ptr %52, i64 %1707
  call void @sscal_(ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull %1708, ptr noundef nonnull %39) #7
  %1709 = load i32, ptr %35, align 4, !tbaa !5
  %1710 = add nsw i32 %1709, 1
  store i32 %1710, ptr %35, align 4, !tbaa !5
  %1711 = load i32, ptr %28, align 4, !tbaa !5
  %.not2212.not = icmp slt i32 %1709, %1711
  br i1 %.not2212.not, label %.lr.ph2749, label %._crit_edge2750.loopexit, !llvm.loop !68

._crit_edge2750.loopexit:                         ; preds = %.lr.ph2749
  %.pre3207 = load i32, ptr %39, align 4, !tbaa !5
  br label %._crit_edge2750

._crit_edge2750:                                  ; preds = %._crit_edge2750.loopexit, %1667
  %1712 = phi i32 [ %.pre3207, %._crit_edge2750.loopexit ], [ %1689, %1667 ]
  %1713 = load i32, ptr %7, align 4, !tbaa !5
  %1714 = shl i32 %1713, 1
  %1715 = add i32 %1712, 2
  %1716 = mul i32 %1715, %1713
  %1717 = add nsw i32 %1716, %1712
  %1718 = sext i32 %1717 to i64
  %1719 = getelementptr float, ptr %52, i64 %1718
  %1720 = getelementptr i8, ptr %1719, i64 4
  %1721 = mul nsw i32 %1712, %1712
  %1722 = add nsw i32 %1717, %1721
  %1723 = sext i32 %1722 to i64
  %1724 = getelementptr float, ptr %52, i64 %1723
  %1725 = getelementptr i8, ptr %1724, i64 4
  %1726 = load i32, ptr %6, align 4, !tbaa !5
  %1727 = add nsw i32 %1726, %1714
  %1728 = sext i32 %1727 to i64
  %1729 = getelementptr i32, ptr %53, i64 %1728
  %1730 = getelementptr i8, ptr %1729, i64 4
  call void @spocon_(ptr noundef nonnull @.str.17, ptr noundef nonnull %39, ptr noundef %1720, ptr noundef nonnull %39, ptr noundef nonnull @c_b35, ptr noundef nonnull %34, ptr noundef %1725, ptr noundef %1730, ptr noundef nonnull %33) #7
  %1731 = load float, ptr %34, align 4, !tbaa !9
  %1732 = fpext float %1731 to double
  %1733 = call double @sqrt(double noundef %1732) #7
  %1734 = fdiv double 1.000000e+00, %1733
  %1735 = fptrunc double %1734 to float
  %1736 = fcmp ugt float %sqrtf2202, %1735
  br i1 %1736, label %.loopexit2364, label %1737

1737:                                             ; preds = %._crit_edge2750
  %1738 = load i32, ptr %7, align 4, !tbaa !5
  %1739 = shl i32 %1738, 1
  %1740 = or disjoint i32 %1739, 1
  %1741 = sext i32 %1740 to i64
  %1742 = getelementptr inbounds float, ptr %52, i64 %1741
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %1742, ptr noundef nonnull %7) #7
  br label %.loopexit2364

.loopexit2364:                                    ; preds = %.lr.ph2763, %1510, %._crit_edge2750, %1737
  %.01947 = phi float [ %1735, %1737 ], [ %1735, %._crit_edge2750 ], [ %1438, %1510 ], [ %1438, %.lr.ph2763 ]
  br i1 %879, label %1743, label %1769

1743:                                             ; preds = %.loopexit2364
  %sqrtf2222 = call float @sqrtf(float noundef %187) #3
  store float %sqrtf2222, ptr %41, align 4, !tbaa !9
  %1744 = load i32, ptr %39, align 4, !tbaa !5
  %.not22232765 = icmp slt i32 %1744, 2
  br i1 %.not22232765, label %.loopexit2363, label %.lr.ph2768.preheader

.lr.ph2768.preheader:                             ; preds = %1743
  %1745 = sext i32 %49 to i64
  %1746 = add nuw i32 %1744, 1
  %wide.trip.count3126 = zext i32 %1746 to i64
  br label %.lr.ph2768

.lr.ph2768:                                       ; preds = %.lr.ph2768.preheader, %.loopexit3597
  %indvar3497 = phi i64 [ 0, %.lr.ph2768.preheader ], [ %indvar.next3498, %.loopexit3597 ]
  %indvars.iv3123 = phi i64 [ 2, %.lr.ph2768.preheader ], [ %indvars.iv.next3124, %.loopexit3597 ]
  %1747 = add i64 %indvar3497, 1
  %indvars3125 = trunc i64 %indvars.iv3123 to i32
  %1748 = mul nsw i64 %indvars.iv3123, %1745
  %1749 = mul nsw i32 %49, %indvars3125
  %1750 = sext i32 %1749 to i64
  %1751 = getelementptr float, ptr %51, i64 %indvars.iv3123
  %1752 = getelementptr float, ptr %1751, i64 %1750
  %1753 = load float, ptr %1752, align 4, !tbaa !9
  %1754 = fmul float %sqrtf2222, %1753
  %1755 = fcmp oge float %1754, 0.000000e+00
  %invariant.gep3342 = getelementptr float, ptr %51, i64 %1748
  %.neg3254 = fneg float %1754
  %min.iters.check3501 = icmp ult i64 %1747, 8
  br i1 %min.iters.check3501, label %scalar.ph3500.preheader, label %vector.ph3502

vector.ph3502:                                    ; preds = %.lr.ph2768
  %n.vec3504 = and i64 %1747, -8
  %ind.end3505 = or disjoint i64 %n.vec3504, 1
  %broadcast.splatinsert3512 = insertelement <4 x i1> poison, i1 %1755, i64 0
  %broadcast.splat3513 = shufflevector <4 x i1> %broadcast.splatinsert3512, <4 x i1> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert3514 = insertelement <4 x float> poison, float %.neg3254, i64 0
  %broadcast.splat3515 = shufflevector <4 x float> %broadcast.splatinsert3514, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert3516 = insertelement <4 x float> poison, float %1754, i64 0
  %broadcast.splat3517 = shufflevector <4 x float> %broadcast.splatinsert3516, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body3507

vector.body3507:                                  ; preds = %vector.body3507, %vector.ph3502
  %index3508 = phi i64 [ 0, %vector.ph3502 ], [ %index.next3518, %vector.body3507 ]
  %offset.idx3509 = or disjoint i64 %index3508, 1
  %1756 = getelementptr float, ptr %invariant.gep3342, i64 %offset.idx3509
  %1757 = getelementptr i8, ptr %1756, i64 16
  %wide.load3510 = load <4 x float>, ptr %1756, align 4, !tbaa !9
  %wide.load3511 = load <4 x float>, ptr %1757, align 4, !tbaa !9
  %1758 = fcmp ult <4 x float> %wide.load3510, zeroinitializer
  %1759 = fcmp ult <4 x float> %wide.load3511, zeroinitializer
  %1760 = xor <4 x i1> %broadcast.splat3513, %1758
  %1761 = xor <4 x i1> %broadcast.splat3513, %1759
  %1762 = select <4 x i1> %1760, <4 x float> %broadcast.splat3515, <4 x float> %broadcast.splat3517
  %1763 = select <4 x i1> %1761, <4 x float> %broadcast.splat3515, <4 x float> %broadcast.splat3517
  store <4 x float> %1762, ptr %1756, align 4, !tbaa !9
  store <4 x float> %1763, ptr %1757, align 4, !tbaa !9
  %index.next3518 = add nuw i64 %index3508, 8
  %1764 = icmp eq i64 %index.next3518, %n.vec3504
  br i1 %1764, label %middle.block3499, label %vector.body3507, !llvm.loop !69

middle.block3499:                                 ; preds = %vector.body3507
  %cmp.n3519 = icmp eq i64 %1747, %n.vec3504
  br i1 %cmp.n3519, label %.loopexit3597, label %scalar.ph3500.preheader

scalar.ph3500.preheader:                          ; preds = %middle.block3499, %.lr.ph2768
  %indvars.iv3118.ph = phi i64 [ 1, %.lr.ph2768 ], [ %ind.end3505, %middle.block3499 ]
  br label %scalar.ph3500

scalar.ph3500:                                    ; preds = %scalar.ph3500.preheader, %scalar.ph3500
  %indvars.iv3118 = phi i64 [ %indvars.iv.next3119, %scalar.ph3500 ], [ %indvars.iv3118.ph, %scalar.ph3500.preheader ]
  %gep3343 = getelementptr float, ptr %invariant.gep3342, i64 %indvars.iv3118
  %1765 = load float, ptr %gep3343, align 4, !tbaa !9
  %1766 = fcmp ult float %1765, 0.000000e+00
  %1767 = xor i1 %1755, %1766
  %1768 = select i1 %1767, float %.neg3254, float %1754
  store float %1768, ptr %gep3343, align 4, !tbaa !9
  %indvars.iv.next3119 = add nuw nsw i64 %indvars.iv3118, 1
  %exitcond3122.not = icmp eq i64 %indvars.iv.next3119, %indvars.iv3123
  br i1 %exitcond3122.not, label %.loopexit3597, label %scalar.ph3500, !llvm.loop !70

.loopexit3597:                                    ; preds = %scalar.ph3500, %middle.block3499
  %indvars.iv.next3124 = add nuw nsw i64 %indvars.iv3123, 1
  %exitcond3127.not = icmp eq i64 %indvars.iv.next3124, %wide.trip.count3126
  %indvar.next3498 = add i64 %indvar3497, 1
  br i1 %exitcond3127.not, label %..loopexit2363_crit_edge, label %.lr.ph2768, !llvm.loop !71

1769:                                             ; preds = %.loopexit2364
  %1770 = load i32, ptr %39, align 4, !tbaa !5
  %1771 = add nsw i32 %1770, -1
  store i32 %1771, ptr %28, align 4, !tbaa !5
  store i32 %1771, ptr %29, align 4, !tbaa !5
  %1772 = shl i32 %49, 1
  %1773 = or disjoint i32 %1772, 1
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds float, ptr %51, i64 %1774
  call void @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %1775, ptr noundef nonnull %14) #7
  br label %.loopexit2363

..loopexit2363_crit_edge:                         ; preds = %.loopexit3597
  %1776 = add nsw i32 %1744, -1
  store float %1754, ptr %34, align 4, !tbaa !9
  store i32 %1776, ptr %29, align 4, !tbaa !5
  store i32 %indvars3125, ptr %35, align 4, !tbaa !5
  br label %.loopexit2363

.loopexit2363:                                    ; preds = %1743, %..loopexit2363_crit_edge, %1769
  br i1 %1441, label %1777, label %1873

1777:                                             ; preds = %.loopexit2363
  %1778 = load i32, ptr %16, align 4, !tbaa !5
  %1779 = load i32, ptr %7, align 4, !tbaa !5
  %1780 = load i32, ptr %39, align 4, !tbaa !5
  %1781 = add i32 %1780, 2
  %1782 = mul i32 %1781, %1779
  %1783 = add i32 %1782, %1780
  %1784 = sub i32 %1778, %1783
  store i32 %1784, ptr %28, align 4, !tbaa !5
  %1785 = sext i32 %1783 to i64
  %1786 = getelementptr float, ptr %52, i64 %1785
  %1787 = getelementptr i8, ptr %1786, i64 4
  call void @sgesvj_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %10, ptr noundef nonnull %39, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %1787, ptr noundef nonnull %28, ptr noundef nonnull %18) #7
  %1788 = load i32, ptr %7, align 4, !tbaa !5
  %1789 = load i32, ptr %39, align 4, !tbaa !5
  %1790 = add i32 %1789, 2
  %1791 = mul i32 %1790, %1788
  %1792 = add nsw i32 %1791, %1789
  %1793 = sext i32 %1792 to i64
  %1794 = getelementptr float, ptr %52, i64 %1793
  %1795 = getelementptr i8, ptr %1794, i64 4
  %1796 = load float, ptr %1795, align 4, !tbaa !9
  store float %1796, ptr %40, align 4, !tbaa !9
  %1797 = getelementptr i8, ptr %1794, i64 8
  %1798 = load float, ptr %1797, align 4, !tbaa !9
  %1799 = fcmp ult float %1798, 0.000000e+00
  %1800 = fpext float %1798 to double
  br i1 %1799, label %1804, label %1801

1801:                                             ; preds = %1777
  %1802 = fadd double %1800, 5.000000e-01
  %1803 = call double @llvm.floor.f64(double %1802)
  br label %1808

1804:                                             ; preds = %1777
  %1805 = fsub double 5.000000e-01, %1800
  %1806 = call double @llvm.floor.f64(double %1805)
  %1807 = fneg double %1806
  br label %1808

1808:                                             ; preds = %1804, %1801
  %1809 = phi double [ %1803, %1801 ], [ %1807, %1804 ]
  store i32 %1789, ptr %28, align 4, !tbaa !5
  %invariant.gep2815 = getelementptr i8, ptr %51, i64 4
  %invariant.gep2817 = getelementptr i8, ptr %48, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22372821 = icmp slt i32 %1789, 1
  br i1 %.not22372821, label %._crit_edge2825, label %.lr.ph2824

.lr.ph2824:                                       ; preds = %1808, %.lr.ph2824
  %storemerge22362822 = phi i32 [ %1820, %.lr.ph2824 ], [ 1, %1808 ]
  %1810 = mul nsw i32 %storemerge22362822, %49
  %1811 = sext i32 %1810 to i64
  %gep2816 = getelementptr float, ptr %invariant.gep2815, i64 %1811
  %1812 = mul nsw i32 %storemerge22362822, %46
  %1813 = sext i32 %1812 to i64
  %gep2818 = getelementptr float, ptr %invariant.gep2817, i64 %1813
  call void @scopy_(ptr noundef nonnull %39, ptr noundef %gep2816, ptr noundef nonnull @c__1, ptr noundef %gep2818, ptr noundef nonnull @c__1) #7
  %1814 = load i32, ptr %35, align 4, !tbaa !5
  %1815 = sext i32 %1814 to i64
  %1816 = getelementptr inbounds float, ptr %42, i64 %1815
  %1817 = mul nsw i32 %1814, %49
  %1818 = sext i32 %1817 to i64
  %gep2820 = getelementptr float, ptr %invariant.gep2815, i64 %1818
  call void @sscal_(ptr noundef nonnull %39, ptr noundef nonnull %1816, ptr noundef %gep2820, ptr noundef nonnull @c__1) #7
  %1819 = load i32, ptr %35, align 4, !tbaa !5
  %1820 = add nsw i32 %1819, 1
  store i32 %1820, ptr %35, align 4, !tbaa !5
  %1821 = load i32, ptr %28, align 4, !tbaa !5
  %.not2237.not = icmp slt i32 %1819, %1821
  br i1 %.not2237.not, label %.lr.ph2824, label %._crit_edge2825.loopexit, !llvm.loop !72

._crit_edge2825.loopexit:                         ; preds = %.lr.ph2824
  %.pre3216 = load i32, ptr %39, align 4, !tbaa !5
  %.pre3217 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2825

._crit_edge2825:                                  ; preds = %._crit_edge2825.loopexit, %1808
  %1822 = phi i32 [ %.pre3217, %._crit_edge2825.loopexit ], [ %1788, %1808 ]
  %1823 = phi i32 [ %.pre3216, %._crit_edge2825.loopexit ], [ %1789, %1808 ]
  %1824 = icmp eq i32 %1823, %1822
  br i1 %1824, label %1825, label %1826

1825:                                             ; preds = %._crit_edge2825
  call void @strsm_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.9, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull @c_b35, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %13, ptr noundef nonnull %14) #7
  br label %.loopexit2362

1826:                                             ; preds = %._crit_edge2825
  %1827 = shl i32 %1822, 1
  %1828 = or disjoint i32 %1827, 1
  %1829 = sext i32 %1828 to i64
  %1830 = getelementptr inbounds float, ptr %52, i64 %1829
  call void @strsm_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull @c_b35, ptr noundef nonnull %1830, ptr noundef nonnull %7, ptr noundef %13, ptr noundef nonnull %14) #7
  %1831 = load i32, ptr %39, align 4, !tbaa !5
  %1832 = load i32, ptr %7, align 4, !tbaa !5
  %1833 = icmp slt i32 %1831, %1832
  br i1 %1833, label %1834, label %1855

1834:                                             ; preds = %1826
  %1835 = sub nsw i32 %1832, %1831
  store i32 %1835, ptr %28, align 4, !tbaa !5
  %1836 = add i32 %49, 1
  %1837 = add i32 %1836, %1831
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds float, ptr %51, i64 %1838
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1839, ptr noundef nonnull %14) #7
  %1840 = load i32, ptr %7, align 4, !tbaa !5
  %1841 = load i32, ptr %39, align 4, !tbaa !5
  %1842 = sub nsw i32 %1840, %1841
  store i32 %1842, ptr %28, align 4, !tbaa !5
  %1843 = add nsw i32 %1841, 1
  %1844 = mul nsw i32 %1843, %49
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr float, ptr %51, i64 %1845
  %1847 = getelementptr i8, ptr %1846, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %1847, ptr noundef nonnull %14) #7
  %1848 = load i32, ptr %7, align 4, !tbaa !5
  %1849 = load i32, ptr %39, align 4, !tbaa !5
  %1850 = sub nsw i32 %1848, %1849
  store i32 %1850, ptr %28, align 4, !tbaa !5
  store i32 %1850, ptr %29, align 4, !tbaa !5
  %1851 = add nsw i32 %1849, 1
  %1852 = mul i32 %1851, %1836
  %1853 = sext i32 %1852 to i64
  %1854 = getelementptr inbounds float, ptr %51, i64 %1853
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %1854, ptr noundef nonnull %14) #7
  %.pre3218 = load i32, ptr %7, align 4, !tbaa !5
  %.pre3219 = load i32, ptr %39, align 4, !tbaa !5
  br label %1855

1855:                                             ; preds = %1834, %1826
  %1856 = phi i32 [ %.pre3219, %1834 ], [ %1831, %1826 ]
  %1857 = phi i32 [ %.pre3218, %1834 ], [ %1832, %1826 ]
  %1858 = load i32, ptr %16, align 4, !tbaa !5
  %1859 = add i32 %1856, 2
  %1860 = mul i32 %1859, %1857
  %1861 = add i32 %1860, %1856
  %1862 = sub i32 %1858, %1861
  store i32 %1862, ptr %28, align 4, !tbaa !5
  %1863 = shl i32 %1857, 1
  %1864 = or disjoint i32 %1863, 1
  %1865 = sext i32 %1864 to i64
  %1866 = getelementptr inbounds float, ptr %52, i64 %1865
  %1867 = sext i32 %1857 to i64
  %1868 = getelementptr float, ptr %52, i64 %1867
  %1869 = getelementptr i8, ptr %1868, i64 4
  %1870 = sext i32 %1861 to i64
  %1871 = getelementptr float, ptr %52, i64 %1870
  %1872 = getelementptr i8, ptr %1871, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.9, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef nonnull %1866, ptr noundef nonnull %7, ptr noundef %1869, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %1872, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  br label %.loopexit2362

1873:                                             ; preds = %.loopexit2363
  %1874 = fcmp olt float %.01947, %sqrtf2202
  %1875 = load i32, ptr %16, align 4, !tbaa !5
  %1876 = load i32, ptr %7, align 4, !tbaa !5
  %1877 = load i32, ptr %39, align 4, !tbaa !5
  %1878 = add i32 %1877, 2
  %1879 = mul i32 %1878, %1876
  %1880 = add i32 %1879, %1877
  %1881 = sub i32 %1875, %1880
  store i32 %1881, ptr %28, align 4, !tbaa !5
  %1882 = sext i32 %1880 to i64
  %1883 = getelementptr float, ptr %52, i64 %1882
  %1884 = getelementptr i8, ptr %1883, i64 4
  br i1 %1874, label %1885, label %2048

1885:                                             ; preds = %1873
  call void @sgesvj_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %10, ptr noundef nonnull %39, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %1884, ptr noundef nonnull %28, ptr noundef nonnull %18) #7
  %1886 = load i32, ptr %7, align 4, !tbaa !5
  %1887 = load i32, ptr %39, align 4, !tbaa !5
  %1888 = add i32 %1887, 2
  %1889 = mul i32 %1888, %1886
  %1890 = add nsw i32 %1889, %1887
  %1891 = sext i32 %1890 to i64
  %1892 = getelementptr float, ptr %52, i64 %1891
  %1893 = getelementptr i8, ptr %1892, i64 4
  %1894 = load float, ptr %1893, align 4, !tbaa !9
  store float %1894, ptr %40, align 4, !tbaa !9
  %1895 = getelementptr i8, ptr %1892, i64 8
  %1896 = load float, ptr %1895, align 4, !tbaa !9
  %1897 = fcmp ult float %1896, 0.000000e+00
  %1898 = fpext float %1896 to double
  br i1 %1897, label %1902, label %1899

1899:                                             ; preds = %1885
  %1900 = fadd double %1898, 5.000000e-01
  %1901 = call double @llvm.floor.f64(double %1900)
  br label %1906

1902:                                             ; preds = %1885
  %1903 = fsub double 5.000000e-01, %1898
  %1904 = call double @llvm.floor.f64(double %1903)
  %1905 = fneg double %1904
  br label %1906

1906:                                             ; preds = %1902, %1899
  %1907 = phi double [ %1901, %1899 ], [ %1905, %1902 ]
  store i32 %1887, ptr %28, align 4, !tbaa !5
  %invariant.gep2787 = getelementptr i8, ptr %51, i64 4
  %invariant.gep2789 = getelementptr i8, ptr %48, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22302793 = icmp slt i32 %1887, 1
  br i1 %.not22302793, label %._crit_edge2797, label %.lr.ph2796

.lr.ph2796:                                       ; preds = %1906, %.lr.ph2796
  %storemerge22292794 = phi i32 [ %1918, %.lr.ph2796 ], [ 1, %1906 ]
  %1908 = mul nsw i32 %storemerge22292794, %49
  %1909 = sext i32 %1908 to i64
  %gep2788 = getelementptr float, ptr %invariant.gep2787, i64 %1909
  %1910 = mul nsw i32 %storemerge22292794, %46
  %1911 = sext i32 %1910 to i64
  %gep2790 = getelementptr float, ptr %invariant.gep2789, i64 %1911
  call void @scopy_(ptr noundef nonnull %39, ptr noundef %gep2788, ptr noundef nonnull @c__1, ptr noundef %gep2790, ptr noundef nonnull @c__1) #7
  %1912 = load i32, ptr %35, align 4, !tbaa !5
  %1913 = sext i32 %1912 to i64
  %1914 = getelementptr inbounds float, ptr %42, i64 %1913
  %1915 = mul nsw i32 %1912, %46
  %1916 = sext i32 %1915 to i64
  %gep2792 = getelementptr float, ptr %invariant.gep2789, i64 %1916
  call void @sscal_(ptr noundef nonnull %39, ptr noundef nonnull %1914, ptr noundef %gep2792, ptr noundef nonnull @c__1) #7
  %1917 = load i32, ptr %35, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr %35, align 4, !tbaa !5
  %1919 = load i32, ptr %28, align 4, !tbaa !5
  %.not2230.not = icmp slt i32 %1917, %1919
  br i1 %.not2230.not, label %.lr.ph2796, label %._crit_edge2797.loopexit, !llvm.loop !73

._crit_edge2797.loopexit:                         ; preds = %.lr.ph2796
  %.pre3213 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2797

._crit_edge2797:                                  ; preds = %._crit_edge2797.loopexit, %1906
  %1920 = phi i32 [ %.pre3213, %._crit_edge2797.loopexit ], [ %1886, %1906 ]
  %1921 = shl i32 %1920, 1
  %1922 = or disjoint i32 %1921, 1
  %1923 = sext i32 %1922 to i64
  %1924 = getelementptr inbounds float, ptr %52, i64 %1923
  call void @strsm_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.9, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull @c_b35, ptr noundef nonnull %1924, ptr noundef nonnull %7, ptr noundef %11, ptr noundef nonnull %12) #7
  %1925 = load i32, ptr %39, align 4, !tbaa !5
  %.not22312810 = icmp slt i32 %1925, 1
  br i1 %.not22312810, label %2006, label %.lr.ph2813

.lr.ph2813:                                       ; preds = %._crit_edge2797
  %1926 = add nuw i32 %1925, 2
  %1927 = add nuw i32 %1925, 1
  %1928 = sext i32 %46 to i64
  %wide.trip.count3156 = zext i32 %1927 to i64
  %1929 = load i32, ptr %7, align 4, !tbaa !5
  %1930 = mul i32 %1929, %1926
  %1931 = add nsw i32 %1930, %1925
  %1932 = sext i32 %1929 to i64
  %invariant.gep3352 = getelementptr i32, ptr %53, i64 %1932
  %1933 = mul i32 %1929, %1926
  %1934 = add nsw i64 %wide.trip.count3156, -2
  %1935 = add i32 %1925, %1933
  %1936 = add i32 %1935, 1
  %1937 = add nsw i64 %1928, %47
  %1938 = shl nsw i64 %1937, 2
  %1939 = add i64 %1938, %23
  %1940 = add i64 %1939, 8
  %1941 = add i32 %1925, %1933
  %1942 = add i32 %1941, 1
  %1943 = sext i32 %1942 to i64
  %1944 = shl nsw i64 %1943, 2
  %1945 = add i64 %1944, %22
  %1946 = sub i64 %1940, %1945
  %1947 = shl nsw i64 %1928, 2
  %1948 = zext nneg i32 %1925 to i64
  %1949 = zext nneg i32 %1925 to i64
  %1950 = zext nneg i32 %1925 to i64
  %xtraiter3680 = and i64 %1949, 1
  %1951 = icmp eq i32 %1927, 2
  %unroll_iter3683 = and i64 %1949, 2147483646
  %lcmp.mod3682.not = icmp eq i64 %xtraiter3680, 0
  %min.iters.check3548 = icmp ult i32 %1925, 8
  %1952 = trunc i64 %1934 to i32
  %1953 = add i32 %1936, %1952
  %1954 = icmp slt i32 %1953, %1936
  %1955 = icmp ugt i64 %1934, 4294967295
  %1956 = or i1 %1954, %1955
  %n.vec3551 = and i64 %1948, 2147483640
  %ind.end3552 = or disjoint i64 %n.vec3551, 1
  %cmp.n3561 = icmp eq i64 %n.vec3551, %1948
  %1957 = and i32 %1925, 1
  %lcmp.mod3686.not = icmp eq i32 %1957, 0
  br label %.lr.ph2801

.lr.ph2801:                                       ; preds = %._crit_edge2808, %.lr.ph2813
  %indvar3543 = phi i64 [ %indvar.next3544, %._crit_edge2808 ], [ 0, %.lr.ph2813 ]
  %indvars.iv3153 = phi i64 [ %indvars.iv.next3154, %._crit_edge2808 ], [ 1, %.lr.ph2813 ]
  %1958 = mul i64 %1947, %indvar3543
  %1959 = add i64 %1946, %1958
  %1960 = mul nsw i64 %indvars.iv3153, %1928
  %invariant.gep3350 = getelementptr float, ptr %48, i64 %1960
  br i1 %1951, label %.lr.ph2807.unr-lcssa, label %.lr.ph2801.new

.lr.ph2801.new:                                   ; preds = %.lr.ph2801, %.lr.ph2801.new
  %indvars.iv3143 = phi i64 [ %indvars.iv.next3144.1, %.lr.ph2801.new ], [ 1, %.lr.ph2801 ]
  %niter3684 = phi i64 [ %niter3684.next.1, %.lr.ph2801.new ], [ 0, %.lr.ph2801 ]
  %gep3351 = getelementptr float, ptr %invariant.gep3350, i64 %indvars.iv3143
  %1961 = load float, ptr %gep3351, align 4, !tbaa !9
  %gep3353 = getelementptr i32, ptr %invariant.gep3352, i64 %indvars.iv3143
  %1962 = load i32, ptr %gep3353, align 4, !tbaa !5
  %1963 = add nsw i32 %1931, %1962
  %1964 = sext i32 %1963 to i64
  %1965 = getelementptr inbounds float, ptr %52, i64 %1964
  store float %1961, ptr %1965, align 4, !tbaa !9
  %indvars.iv.next3144 = add nuw nsw i64 %indvars.iv3143, 1
  %gep3351.1 = getelementptr float, ptr %invariant.gep3350, i64 %indvars.iv.next3144
  %1966 = load float, ptr %gep3351.1, align 4, !tbaa !9
  %gep3353.1 = getelementptr i32, ptr %invariant.gep3352, i64 %indvars.iv.next3144
  %1967 = load i32, ptr %gep3353.1, align 4, !tbaa !5
  %1968 = add nsw i32 %1931, %1967
  %1969 = sext i32 %1968 to i64
  %1970 = getelementptr inbounds float, ptr %52, i64 %1969
  store float %1966, ptr %1970, align 4, !tbaa !9
  %indvars.iv.next3144.1 = add nuw nsw i64 %indvars.iv3143, 2
  %niter3684.next.1 = add i64 %niter3684, 2
  %niter3684.ncmp.1 = icmp eq i64 %niter3684.next.1, %unroll_iter3683
  br i1 %niter3684.ncmp.1, label %.lr.ph2807.unr-lcssa, label %.lr.ph2801.new, !llvm.loop !74

.lr.ph2807.unr-lcssa:                             ; preds = %.lr.ph2801.new, %.lr.ph2801
  %indvars.iv3143.unr = phi i64 [ 1, %.lr.ph2801 ], [ %indvars.iv.next3144.1, %.lr.ph2801.new ]
  br i1 %lcmp.mod3682.not, label %.lr.ph2807, label %.lr.ph2807.epilog-lcssa

.lr.ph2807.epilog-lcssa:                          ; preds = %.lr.ph2807.unr-lcssa
  %gep3351.epil = getelementptr float, ptr %invariant.gep3350, i64 %indvars.iv3143.unr
  %1971 = load float, ptr %gep3351.epil, align 4, !tbaa !9
  %gep3353.epil = getelementptr i32, ptr %invariant.gep3352, i64 %indvars.iv3143.unr
  %1972 = load i32, ptr %gep3353.epil, align 4, !tbaa !5
  %1973 = add nsw i32 %1931, %1972
  %1974 = sext i32 %1973 to i64
  %1975 = getelementptr inbounds float, ptr %52, i64 %1974
  store float %1971, ptr %1975, align 4, !tbaa !9
  br label %.lr.ph2807

.lr.ph2807:                                       ; preds = %.lr.ph2807.unr-lcssa, %.lr.ph2807.epilog-lcssa
  %1976 = mul nsw i64 %indvars.iv3153, %1928
  %invariant.gep3354 = getelementptr float, ptr %48, i64 %1976
  %diff.check3545 = icmp ult i64 %1959, 32
  %or.cond3601 = select i1 %1956, i1 true, i1 %diff.check3545
  %or.cond3748 = select i1 %min.iters.check3548, i1 true, i1 %or.cond3601
  br i1 %or.cond3748, label %scalar.ph3547.preheader, label %vector.body3554

vector.body3554:                                  ; preds = %.lr.ph2807, %vector.body3554
  %index3555 = phi i64 [ %index.next3560, %vector.body3554 ], [ 0, %.lr.ph2807 ]
  %offset.idx3556 = or disjoint i64 %index3555, 1
  %1977 = trunc i64 %index3555 to i32
  %1978 = or disjoint i32 %1977, 1
  %1979 = add i32 %1925, %1978
  %1980 = add i32 %1979, %1933
  %1981 = sext i32 %1980 to i64
  %1982 = getelementptr inbounds float, ptr %52, i64 %1981
  %1983 = getelementptr inbounds i8, ptr %1982, i64 16
  %wide.load3558 = load <4 x float>, ptr %1982, align 4, !tbaa !9
  %wide.load3559 = load <4 x float>, ptr %1983, align 4, !tbaa !9
  %1984 = getelementptr float, ptr %invariant.gep3354, i64 %offset.idx3556
  %1985 = getelementptr i8, ptr %1984, i64 16
  store <4 x float> %wide.load3558, ptr %1984, align 4, !tbaa !9
  store <4 x float> %wide.load3559, ptr %1985, align 4, !tbaa !9
  %index.next3560 = add nuw i64 %index3555, 8
  %1986 = icmp eq i64 %index.next3560, %n.vec3551
  br i1 %1986, label %middle.block3546, label %vector.body3554, !llvm.loop !75

middle.block3546:                                 ; preds = %vector.body3554
  br i1 %cmp.n3561, label %._crit_edge2808, label %scalar.ph3547.preheader

scalar.ph3547.preheader:                          ; preds = %middle.block3546, %.lr.ph2807
  %indvars.iv3148.ph = phi i64 [ 1, %.lr.ph2807 ], [ %ind.end3552, %middle.block3546 ]
  br i1 %lcmp.mod3686.not, label %scalar.ph3547.prol.loopexit, label %scalar.ph3547.prol

scalar.ph3547.prol:                               ; preds = %scalar.ph3547.preheader
  %1987 = trunc nsw i64 %indvars.iv3148.ph to i32
  %1988 = add i32 %1925, %1987
  %1989 = add i32 %1988, %1933
  %1990 = sext i32 %1989 to i64
  %1991 = getelementptr inbounds float, ptr %52, i64 %1990
  %1992 = load float, ptr %1991, align 4, !tbaa !9
  %gep3355.prol = getelementptr float, ptr %invariant.gep3354, i64 %indvars.iv3148.ph
  store float %1992, ptr %gep3355.prol, align 4, !tbaa !9
  %indvars.iv.next3149.prol = add nuw nsw i64 %indvars.iv3148.ph, 1
  br label %scalar.ph3547.prol.loopexit

scalar.ph3547.prol.loopexit:                      ; preds = %scalar.ph3547.prol, %scalar.ph3547.preheader
  %indvars.iv3148.unr = phi i64 [ %indvars.iv3148.ph, %scalar.ph3547.preheader ], [ %indvars.iv.next3149.prol, %scalar.ph3547.prol ]
  %1993 = icmp eq i64 %indvars.iv3148.ph, %1950
  br i1 %1993, label %._crit_edge2808, label %scalar.ph3547

scalar.ph3547:                                    ; preds = %scalar.ph3547.prol.loopexit, %scalar.ph3547
  %indvars.iv3148 = phi i64 [ %indvars.iv.next3149.1, %scalar.ph3547 ], [ %indvars.iv3148.unr, %scalar.ph3547.prol.loopexit ]
  %1994 = trunc i64 %indvars.iv3148 to i32
  %1995 = add i32 %1925, %1994
  %1996 = add i32 %1995, %1933
  %1997 = sext i32 %1996 to i64
  %1998 = getelementptr inbounds float, ptr %52, i64 %1997
  %1999 = load float, ptr %1998, align 4, !tbaa !9
  %gep3355 = getelementptr float, ptr %invariant.gep3354, i64 %indvars.iv3148
  store float %1999, ptr %gep3355, align 4, !tbaa !9
  %indvars.iv.next3149 = add nuw nsw i64 %indvars.iv3148, 1
  %2000 = trunc i64 %indvars.iv.next3149 to i32
  %2001 = add i32 %1925, %2000
  %2002 = add i32 %2001, %1933
  %2003 = sext i32 %2002 to i64
  %2004 = getelementptr inbounds float, ptr %52, i64 %2003
  %2005 = load float, ptr %2004, align 4, !tbaa !9
  %gep3355.1 = getelementptr float, ptr %invariant.gep3354, i64 %indvars.iv.next3149
  store float %2005, ptr %gep3355.1, align 4, !tbaa !9
  %indvars.iv.next3149.1 = add nuw nsw i64 %indvars.iv3148, 2
  %exitcond3152.not.1 = icmp eq i64 %indvars.iv.next3149.1, %wide.trip.count3156
  br i1 %exitcond3152.not.1, label %._crit_edge2808, label %scalar.ph3547, !llvm.loop !76

._crit_edge2808:                                  ; preds = %scalar.ph3547.prol.loopexit, %scalar.ph3547, %middle.block3546
  %indvars.iv.next3154 = add nuw nsw i64 %indvars.iv3153, 1
  %exitcond3157.not = icmp eq i64 %indvars.iv.next3154, %wide.trip.count3156
  %indvar.next3544 = add i64 %indvar3543, 1
  br i1 %exitcond3157.not, label %._crit_edge2814, label %.lr.ph2801, !llvm.loop !77

._crit_edge2814:                                  ; preds = %._crit_edge2808
  store i32 %1925, ptr %29, align 4, !tbaa !5
  store i32 %1927, ptr %35, align 4, !tbaa !5
  br label %2006

2006:                                             ; preds = %._crit_edge2814, %._crit_edge2797
  %2007 = load i32, ptr %7, align 4, !tbaa !5
  %2008 = icmp slt i32 %1925, %2007
  br i1 %2008, label %2009, label %2030

2009:                                             ; preds = %2006
  %2010 = sub nsw i32 %2007, %1925
  store i32 %2010, ptr %28, align 4, !tbaa !5
  %2011 = add i32 %49, 1
  %2012 = add i32 %2011, %1925
  %2013 = sext i32 %2012 to i64
  %2014 = getelementptr inbounds float, ptr %51, i64 %2013
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2014, ptr noundef nonnull %14) #7
  %2015 = load i32, ptr %7, align 4, !tbaa !5
  %2016 = load i32, ptr %39, align 4, !tbaa !5
  %2017 = sub nsw i32 %2015, %2016
  store i32 %2017, ptr %28, align 4, !tbaa !5
  %2018 = add nsw i32 %2016, 1
  %2019 = mul nsw i32 %2018, %49
  %2020 = sext i32 %2019 to i64
  %2021 = getelementptr float, ptr %51, i64 %2020
  %2022 = getelementptr i8, ptr %2021, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2022, ptr noundef nonnull %14) #7
  %2023 = load i32, ptr %7, align 4, !tbaa !5
  %2024 = load i32, ptr %39, align 4, !tbaa !5
  %2025 = sub nsw i32 %2023, %2024
  store i32 %2025, ptr %28, align 4, !tbaa !5
  store i32 %2025, ptr %29, align 4, !tbaa !5
  %2026 = add nsw i32 %2024, 1
  %2027 = mul i32 %2026, %2011
  %2028 = sext i32 %2027 to i64
  %2029 = getelementptr inbounds float, ptr %51, i64 %2028
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %2029, ptr noundef nonnull %14) #7
  %.pre3214 = load i32, ptr %7, align 4, !tbaa !5
  %.pre3215 = load i32, ptr %39, align 4, !tbaa !5
  br label %2030

2030:                                             ; preds = %2009, %2006
  %2031 = phi i32 [ %.pre3215, %2009 ], [ %1925, %2006 ]
  %2032 = phi i32 [ %.pre3214, %2009 ], [ %2007, %2006 ]
  %2033 = load i32, ptr %16, align 4, !tbaa !5
  %2034 = add i32 %2031, 2
  %2035 = mul i32 %2034, %2032
  %2036 = add i32 %2035, %2031
  %2037 = sub i32 %2033, %2036
  store i32 %2037, ptr %28, align 4, !tbaa !5
  %2038 = shl i32 %2032, 1
  %2039 = or disjoint i32 %2038, 1
  %2040 = sext i32 %2039 to i64
  %2041 = getelementptr inbounds float, ptr %52, i64 %2040
  %2042 = sext i32 %2032 to i64
  %2043 = getelementptr float, ptr %52, i64 %2042
  %2044 = getelementptr i8, ptr %2043, i64 4
  %2045 = sext i32 %2036 to i64
  %2046 = getelementptr float, ptr %52, i64 %2045
  %2047 = getelementptr i8, ptr %2046, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.9, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef nonnull %2041, ptr noundef nonnull %7, ptr noundef %2044, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %2047, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  br label %.loopexit2362

2048:                                             ; preds = %1873
  call void @sgesvj_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.3, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %10, ptr noundef nonnull %39, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %1884, ptr noundef nonnull %28, ptr noundef nonnull %18) #7
  %2049 = load i32, ptr %7, align 4, !tbaa !5
  %2050 = load i32, ptr %39, align 4, !tbaa !5
  %2051 = add i32 %2050, 2
  %2052 = mul i32 %2051, %2049
  %2053 = add i32 %2052, %2050
  %2054 = sext i32 %2053 to i64
  %2055 = getelementptr float, ptr %52, i64 %2054
  %2056 = getelementptr i8, ptr %2055, i64 4
  %2057 = load float, ptr %2056, align 4, !tbaa !9
  store float %2057, ptr %40, align 4, !tbaa !9
  %2058 = getelementptr i8, ptr %2055, i64 8
  %2059 = load float, ptr %2058, align 4, !tbaa !9
  %2060 = fcmp ult float %2059, 0.000000e+00
  %2061 = fpext float %2059 to double
  br i1 %2060, label %2065, label %2062

2062:                                             ; preds = %2048
  %2063 = fadd double %2061, 5.000000e-01
  %2064 = call double @llvm.floor.f64(double %2063)
  br label %2069

2065:                                             ; preds = %2048
  %2066 = fsub double 5.000000e-01, %2061
  %2067 = call double @llvm.floor.f64(double %2066)
  %2068 = fneg double %2067
  br label %2069

2069:                                             ; preds = %2065, %2062
  %2070 = phi double [ %2064, %2062 ], [ %2068, %2065 ]
  %2071 = icmp slt i32 %2050, %2049
  br i1 %2071, label %2072, label %2093

2072:                                             ; preds = %2069
  %2073 = sub nsw i32 %2049, %2050
  store i32 %2073, ptr %28, align 4, !tbaa !5
  %2074 = add i32 %49, 1
  %2075 = add i32 %2074, %2050
  %2076 = sext i32 %2075 to i64
  %2077 = getelementptr inbounds float, ptr %51, i64 %2076
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2077, ptr noundef nonnull %14) #7
  %2078 = load i32, ptr %7, align 4, !tbaa !5
  %2079 = load i32, ptr %39, align 4, !tbaa !5
  %2080 = sub nsw i32 %2078, %2079
  store i32 %2080, ptr %28, align 4, !tbaa !5
  %2081 = add nsw i32 %2079, 1
  %2082 = mul nsw i32 %2081, %49
  %2083 = sext i32 %2082 to i64
  %2084 = getelementptr float, ptr %51, i64 %2083
  %2085 = getelementptr i8, ptr %2084, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2085, ptr noundef nonnull %14) #7
  %2086 = load i32, ptr %7, align 4, !tbaa !5
  %2087 = load i32, ptr %39, align 4, !tbaa !5
  %2088 = sub nsw i32 %2086, %2087
  store i32 %2088, ptr %28, align 4, !tbaa !5
  store i32 %2088, ptr %29, align 4, !tbaa !5
  %2089 = add nsw i32 %2087, 1
  %2090 = mul i32 %2089, %2074
  %2091 = sext i32 %2090 to i64
  %2092 = getelementptr inbounds float, ptr %51, i64 %2091
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %2092, ptr noundef nonnull %14) #7
  %.pre3211 = load i32, ptr %7, align 4, !tbaa !5
  %.pre3212 = load i32, ptr %39, align 4, !tbaa !5
  %.pre3222 = add i32 %.pre3212, 2
  %.pre3224 = mul i32 %.pre3222, %.pre3211
  %.pre3226 = add i32 %.pre3224, %.pre3212
  %.pre3228 = sext i32 %.pre3226 to i64
  br label %2093

2093:                                             ; preds = %2072, %2069
  %.pre-phi3229 = phi i64 [ %.pre3228, %2072 ], [ %2054, %2069 ]
  %.pre-phi3227 = phi i32 [ %.pre3226, %2072 ], [ %2053, %2069 ]
  %2094 = phi i32 [ %.pre3211, %2072 ], [ %2049, %2069 ]
  %2095 = load i32, ptr %16, align 4, !tbaa !5
  %2096 = sub i32 %2095, %.pre-phi3227
  store i32 %2096, ptr %28, align 4, !tbaa !5
  %2097 = shl i32 %2094, 1
  %2098 = or disjoint i32 %2097, 1
  %2099 = sext i32 %2098 to i64
  %2100 = getelementptr inbounds float, ptr %52, i64 %2099
  %2101 = sext i32 %2094 to i64
  %2102 = getelementptr float, ptr %52, i64 %2101
  %2103 = getelementptr i8, ptr %2102, i64 4
  %2104 = getelementptr float, ptr %52, i64 %.pre-phi3229
  %2105 = getelementptr i8, ptr %2104, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.9, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef nonnull %2100, ptr noundef nonnull %7, ptr noundef %2103, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %2105, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %2106 = load i32, ptr %16, align 4, !tbaa !5
  %2107 = load i32, ptr %7, align 4, !tbaa !5
  %2108 = load i32, ptr %39, align 4, !tbaa !5
  %2109 = add i32 %2108, 2
  %2110 = mul i32 %2109, %2107
  %2111 = add i32 %2110, %2108
  %2112 = sub i32 %2106, %2111
  store i32 %2112, ptr %28, align 4, !tbaa !5
  %2113 = shl i32 %2107, 1
  %2114 = or disjoint i32 %2113, 1
  %2115 = sext i32 %2114 to i64
  %2116 = getelementptr inbounds float, ptr %52, i64 %2115
  %2117 = sext i32 %2110 to i64
  %2118 = getelementptr float, ptr %52, i64 %2117
  %2119 = getelementptr i8, ptr %2118, i64 4
  %2120 = sext i32 %2111 to i64
  %2121 = getelementptr float, ptr %52, i64 %2120
  %2122 = getelementptr i8, ptr %2121, i64 4
  call void @sormlq_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.8, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull %2116, ptr noundef nonnull %7, ptr noundef %2119, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %2122, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %2123 = load i32, ptr %39, align 4, !tbaa !5
  %.not22242783 = icmp slt i32 %2123, 1
  br i1 %.not22242783, label %.loopexit2362, label %.lr.ph2786

.lr.ph2786:                                       ; preds = %2093
  %2124 = add nuw i32 %2123, 2
  %2125 = add nuw i32 %2123, 1
  %2126 = sext i32 %46 to i64
  %wide.trip.count3141 = zext i32 %2125 to i64
  %2127 = load i32, ptr %7, align 4, !tbaa !5
  %2128 = mul i32 %2127, %2124
  %2129 = add nsw i32 %2128, %2123
  %2130 = sext i32 %2127 to i64
  %invariant.gep3346 = getelementptr i32, ptr %53, i64 %2130
  %2131 = mul i32 %2127, %2124
  %2132 = add nsw i64 %wide.trip.count3141, -2
  %2133 = add i32 %2123, %2131
  %2134 = add i32 %2133, 1
  %2135 = add nsw i64 %2126, %47
  %2136 = shl nsw i64 %2135, 2
  %2137 = add i64 %2136, %25
  %2138 = add i64 %2137, 8
  %2139 = add i32 %2123, %2131
  %2140 = add i32 %2139, 1
  %2141 = sext i32 %2140 to i64
  %2142 = shl nsw i64 %2141, 2
  %2143 = add i64 %2142, %24
  %2144 = sub i64 %2138, %2143
  %2145 = shl nsw i64 %2126, 2
  %2146 = zext nneg i32 %2123 to i64
  %2147 = zext nneg i32 %2123 to i64
  %2148 = zext nneg i32 %2123 to i64
  %xtraiter3672 = and i64 %2147, 1
  %2149 = icmp eq i32 %2125, 2
  %unroll_iter3675 = and i64 %2147, 2147483646
  %lcmp.mod3674.not = icmp eq i64 %xtraiter3672, 0
  %min.iters.check3527 = icmp ult i32 %2123, 8
  %2150 = trunc i64 %2132 to i32
  %2151 = add i32 %2134, %2150
  %2152 = icmp slt i32 %2151, %2134
  %2153 = icmp ugt i64 %2132, 4294967295
  %2154 = or i1 %2152, %2153
  %n.vec3530 = and i64 %2146, 2147483640
  %ind.end3531 = or disjoint i64 %n.vec3530, 1
  %cmp.n3540 = icmp eq i64 %n.vec3530, %2146
  %2155 = and i32 %2123, 1
  %lcmp.mod3678.not = icmp eq i32 %2155, 0
  br label %.lr.ph2774

.lr.ph2774:                                       ; preds = %._crit_edge2781, %.lr.ph2786
  %indvar3522 = phi i64 [ %indvar.next3523, %._crit_edge2781 ], [ 0, %.lr.ph2786 ]
  %indvars.iv3138 = phi i64 [ %indvars.iv.next3139, %._crit_edge2781 ], [ 1, %.lr.ph2786 ]
  %2156 = mul i64 %2145, %indvar3522
  %2157 = add i64 %2144, %2156
  %2158 = mul nsw i64 %indvars.iv3138, %2126
  %invariant.gep3344 = getelementptr float, ptr %48, i64 %2158
  br i1 %2149, label %.lr.ph2780.unr-lcssa, label %.lr.ph2774.new

.lr.ph2774.new:                                   ; preds = %.lr.ph2774, %.lr.ph2774.new
  %indvars.iv3128 = phi i64 [ %indvars.iv.next3129.1, %.lr.ph2774.new ], [ 1, %.lr.ph2774 ]
  %niter3676 = phi i64 [ %niter3676.next.1, %.lr.ph2774.new ], [ 0, %.lr.ph2774 ]
  %gep3345 = getelementptr float, ptr %invariant.gep3344, i64 %indvars.iv3128
  %2159 = load float, ptr %gep3345, align 4, !tbaa !9
  %gep3347 = getelementptr i32, ptr %invariant.gep3346, i64 %indvars.iv3128
  %2160 = load i32, ptr %gep3347, align 4, !tbaa !5
  %2161 = add nsw i32 %2129, %2160
  %2162 = sext i32 %2161 to i64
  %2163 = getelementptr inbounds float, ptr %52, i64 %2162
  store float %2159, ptr %2163, align 4, !tbaa !9
  %indvars.iv.next3129 = add nuw nsw i64 %indvars.iv3128, 1
  %gep3345.1 = getelementptr float, ptr %invariant.gep3344, i64 %indvars.iv.next3129
  %2164 = load float, ptr %gep3345.1, align 4, !tbaa !9
  %gep3347.1 = getelementptr i32, ptr %invariant.gep3346, i64 %indvars.iv.next3129
  %2165 = load i32, ptr %gep3347.1, align 4, !tbaa !5
  %2166 = add nsw i32 %2129, %2165
  %2167 = sext i32 %2166 to i64
  %2168 = getelementptr inbounds float, ptr %52, i64 %2167
  store float %2164, ptr %2168, align 4, !tbaa !9
  %indvars.iv.next3129.1 = add nuw nsw i64 %indvars.iv3128, 2
  %niter3676.next.1 = add i64 %niter3676, 2
  %niter3676.ncmp.1 = icmp eq i64 %niter3676.next.1, %unroll_iter3675
  br i1 %niter3676.ncmp.1, label %.lr.ph2780.unr-lcssa, label %.lr.ph2774.new, !llvm.loop !78

.lr.ph2780.unr-lcssa:                             ; preds = %.lr.ph2774.new, %.lr.ph2774
  %indvars.iv3128.unr = phi i64 [ 1, %.lr.ph2774 ], [ %indvars.iv.next3129.1, %.lr.ph2774.new ]
  br i1 %lcmp.mod3674.not, label %.lr.ph2780, label %.lr.ph2780.epilog-lcssa

.lr.ph2780.epilog-lcssa:                          ; preds = %.lr.ph2780.unr-lcssa
  %gep3345.epil = getelementptr float, ptr %invariant.gep3344, i64 %indvars.iv3128.unr
  %2169 = load float, ptr %gep3345.epil, align 4, !tbaa !9
  %gep3347.epil = getelementptr i32, ptr %invariant.gep3346, i64 %indvars.iv3128.unr
  %2170 = load i32, ptr %gep3347.epil, align 4, !tbaa !5
  %2171 = add nsw i32 %2129, %2170
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds float, ptr %52, i64 %2172
  store float %2169, ptr %2173, align 4, !tbaa !9
  br label %.lr.ph2780

.lr.ph2780:                                       ; preds = %.lr.ph2780.unr-lcssa, %.lr.ph2780.epilog-lcssa
  %2174 = mul nsw i64 %indvars.iv3138, %2126
  %invariant.gep3348 = getelementptr float, ptr %48, i64 %2174
  %diff.check3524 = icmp ult i64 %2157, 32
  %or.cond3602 = select i1 %2154, i1 true, i1 %diff.check3524
  %or.cond3749 = select i1 %min.iters.check3527, i1 true, i1 %or.cond3602
  br i1 %or.cond3749, label %scalar.ph3526.preheader, label %vector.body3533

vector.body3533:                                  ; preds = %.lr.ph2780, %vector.body3533
  %index3534 = phi i64 [ %index.next3539, %vector.body3533 ], [ 0, %.lr.ph2780 ]
  %offset.idx3535 = or disjoint i64 %index3534, 1
  %2175 = trunc i64 %index3534 to i32
  %2176 = or disjoint i32 %2175, 1
  %2177 = add i32 %2123, %2176
  %2178 = add i32 %2177, %2131
  %2179 = sext i32 %2178 to i64
  %2180 = getelementptr inbounds float, ptr %52, i64 %2179
  %2181 = getelementptr inbounds i8, ptr %2180, i64 16
  %wide.load3537 = load <4 x float>, ptr %2180, align 4, !tbaa !9
  %wide.load3538 = load <4 x float>, ptr %2181, align 4, !tbaa !9
  %2182 = getelementptr float, ptr %invariant.gep3348, i64 %offset.idx3535
  %2183 = getelementptr i8, ptr %2182, i64 16
  store <4 x float> %wide.load3537, ptr %2182, align 4, !tbaa !9
  store <4 x float> %wide.load3538, ptr %2183, align 4, !tbaa !9
  %index.next3539 = add nuw i64 %index3534, 8
  %2184 = icmp eq i64 %index.next3539, %n.vec3530
  br i1 %2184, label %middle.block3525, label %vector.body3533, !llvm.loop !79

middle.block3525:                                 ; preds = %vector.body3533
  br i1 %cmp.n3540, label %._crit_edge2781, label %scalar.ph3526.preheader

scalar.ph3526.preheader:                          ; preds = %middle.block3525, %.lr.ph2780
  %indvars.iv3133.ph = phi i64 [ 1, %.lr.ph2780 ], [ %ind.end3531, %middle.block3525 ]
  br i1 %lcmp.mod3678.not, label %scalar.ph3526.prol.loopexit, label %scalar.ph3526.prol

scalar.ph3526.prol:                               ; preds = %scalar.ph3526.preheader
  %2185 = trunc nsw i64 %indvars.iv3133.ph to i32
  %2186 = add i32 %2123, %2185
  %2187 = add i32 %2186, %2131
  %2188 = sext i32 %2187 to i64
  %2189 = getelementptr inbounds float, ptr %52, i64 %2188
  %2190 = load float, ptr %2189, align 4, !tbaa !9
  %gep3349.prol = getelementptr float, ptr %invariant.gep3348, i64 %indvars.iv3133.ph
  store float %2190, ptr %gep3349.prol, align 4, !tbaa !9
  %indvars.iv.next3134.prol = add nuw nsw i64 %indvars.iv3133.ph, 1
  br label %scalar.ph3526.prol.loopexit

scalar.ph3526.prol.loopexit:                      ; preds = %scalar.ph3526.prol, %scalar.ph3526.preheader
  %indvars.iv3133.unr = phi i64 [ %indvars.iv3133.ph, %scalar.ph3526.preheader ], [ %indvars.iv.next3134.prol, %scalar.ph3526.prol ]
  %2191 = icmp eq i64 %indvars.iv3133.ph, %2148
  br i1 %2191, label %._crit_edge2781, label %scalar.ph3526

scalar.ph3526:                                    ; preds = %scalar.ph3526.prol.loopexit, %scalar.ph3526
  %indvars.iv3133 = phi i64 [ %indvars.iv.next3134.1, %scalar.ph3526 ], [ %indvars.iv3133.unr, %scalar.ph3526.prol.loopexit ]
  %2192 = trunc i64 %indvars.iv3133 to i32
  %2193 = add i32 %2123, %2192
  %2194 = add i32 %2193, %2131
  %2195 = sext i32 %2194 to i64
  %2196 = getelementptr inbounds float, ptr %52, i64 %2195
  %2197 = load float, ptr %2196, align 4, !tbaa !9
  %gep3349 = getelementptr float, ptr %invariant.gep3348, i64 %indvars.iv3133
  store float %2197, ptr %gep3349, align 4, !tbaa !9
  %indvars.iv.next3134 = add nuw nsw i64 %indvars.iv3133, 1
  %2198 = trunc i64 %indvars.iv.next3134 to i32
  %2199 = add i32 %2123, %2198
  %2200 = add i32 %2199, %2131
  %2201 = sext i32 %2200 to i64
  %2202 = getelementptr inbounds float, ptr %52, i64 %2201
  %2203 = load float, ptr %2202, align 4, !tbaa !9
  %gep3349.1 = getelementptr float, ptr %invariant.gep3348, i64 %indvars.iv.next3134
  store float %2203, ptr %gep3349.1, align 4, !tbaa !9
  %indvars.iv.next3134.1 = add nuw nsw i64 %indvars.iv3133, 2
  %exitcond3137.not.1 = icmp eq i64 %indvars.iv.next3134.1, %wide.trip.count3141
  br i1 %exitcond3137.not.1, label %._crit_edge2781, label %scalar.ph3526, !llvm.loop !80

._crit_edge2781:                                  ; preds = %scalar.ph3526.prol.loopexit, %scalar.ph3526, %middle.block3525
  %indvars.iv.next3139 = add nuw nsw i64 %indvars.iv3138, 1
  %exitcond3142.not = icmp eq i64 %indvars.iv.next3139, %wide.trip.count3141
  %indvar.next3523 = add i64 %indvar3522, 1
  br i1 %exitcond3142.not, label %..loopexit2362_crit_edge, label %.lr.ph2774, !llvm.loop !81

..loopexit2362_crit_edge:                         ; preds = %._crit_edge2781
  store i32 %2123, ptr %29, align 4, !tbaa !5
  store i32 %2125, ptr %35, align 4, !tbaa !5
  br label %.loopexit2362

.loopexit2362:                                    ; preds = %2093, %..loopexit2362_crit_edge, %2030, %1825, %1855
  %.1.in = phi double [ %1809, %1825 ], [ %1809, %1855 ], [ %1907, %2030 ], [ %2070, %..loopexit2362_crit_edge ], [ %2070, %2093 ]
  %2204 = load i32, ptr %7, align 4, !tbaa !5
  %2205 = sitofp i32 %2204 to float
  %2206 = fpext float %2205 to double
  %2207 = call double @sqrt(double noundef %2206) #7
  %2208 = fpext float %185 to double
  %2209 = fmul double %2207, %2208
  %2210 = fptrunc double %2209 to float
  store float %2210, ptr %34, align 4, !tbaa !9
  %2211 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %2211, ptr %28, align 4, !tbaa !5
  %invariant.gep2838 = getelementptr i8, ptr %51, i64 4
  %.not22382840 = icmp slt i32 %2211, 1
  br i1 %.not22382840, label %._crit_edge2844, label %.lr.ph2843.preheader

.lr.ph2843.preheader:                             ; preds = %.loopexit2362
  %2212 = sext i32 %49 to i64
  %2213 = add nsw i64 %2212, %50
  %2214 = shl nsw i64 %2213, 2
  %2215 = add i64 %2214, %21
  %2216 = add i64 %2215, 8
  %2217 = shl nsw i64 %2212, 2
  br label %.lr.ph2843

.lr.ph2843:                                       ; preds = %.lr.ph2843.preheader, %2309
  %indvar3564 = phi i64 [ 0, %.lr.ph2843.preheader ], [ %indvar.next3565, %2309 ]
  %indvars.iv3168 = phi i64 [ 1, %.lr.ph2843.preheader ], [ %indvars.iv.next3169, %2309 ]
  %2218 = mul i64 %2217, %indvar3564
  %2219 = load i32, ptr %7, align 4, !tbaa !5
  %.not22422826 = icmp slt i32 %2219, 1
  br i1 %.not22422826, label %._crit_edge2830.thread, label %.lr.ph2829

._crit_edge2830.thread:                           ; preds = %.lr.ph2843
  store i32 %2219, ptr %29, align 4, !tbaa !5
  br label %._crit_edge2830.._crit_edge2836_crit_edge

.lr.ph2829:                                       ; preds = %.lr.ph2843
  %2220 = mul nsw i64 %indvars.iv3168, %2212
  %2221 = load i32, ptr %39, align 4, !tbaa !5
  %2222 = add i32 %2221, 2
  %2223 = mul i32 %2222, %2219
  %invariant.gep3356 = getelementptr float, ptr %51, i64 %2220
  %2224 = zext nneg i32 %2219 to i64
  %xtraiter3688 = and i64 %2224, 1
  %2225 = icmp eq i32 %2219, 1
  br i1 %2225, label %._crit_edge2830.unr-lcssa, label %.lr.ph2829.new

.lr.ph2829.new:                                   ; preds = %.lr.ph2829
  %unroll_iter3691 = and i64 %2224, 2147483646
  %invariant.gep3746 = getelementptr i8, ptr %invariant.gep3356, i64 4
  br label %2226

2226:                                             ; preds = %2226, %.lr.ph2829.new
  %indvars.iv3158 = phi i64 [ 1, %.lr.ph2829.new ], [ %indvars.iv.next3159.1, %2226 ]
  %niter3692 = phi i64 [ 0, %.lr.ph2829.new ], [ %niter3692.next.1, %2226 ]
  %gep3357 = getelementptr float, ptr %invariant.gep3356, i64 %indvars.iv3158
  %2227 = load float, ptr %gep3357, align 4, !tbaa !9
  %2228 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv3158
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = add i32 %2229, %2221
  %2231 = add i32 %2230, %2223
  %2232 = sext i32 %2231 to i64
  %2233 = getelementptr inbounds float, ptr %52, i64 %2232
  store float %2227, ptr %2233, align 4, !tbaa !9
  %gep3747 = getelementptr float, ptr %invariant.gep3746, i64 %indvars.iv3158
  %2234 = load float, ptr %gep3747, align 4, !tbaa !9
  %2235 = getelementptr i32, ptr %17, i64 %indvars.iv3158
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = add i32 %2236, %2221
  %2238 = add i32 %2237, %2223
  %2239 = sext i32 %2238 to i64
  %2240 = getelementptr inbounds float, ptr %52, i64 %2239
  store float %2234, ptr %2240, align 4, !tbaa !9
  %indvars.iv.next3159.1 = add nuw nsw i64 %indvars.iv3158, 2
  %niter3692.next.1 = add i64 %niter3692, 2
  %niter3692.ncmp.1 = icmp eq i64 %niter3692.next.1, %unroll_iter3691
  br i1 %niter3692.ncmp.1, label %._crit_edge2830.unr-lcssa, label %2226, !llvm.loop !82

._crit_edge2830.unr-lcssa:                        ; preds = %2226, %.lr.ph2829
  %indvars.iv3158.unr = phi i64 [ 1, %.lr.ph2829 ], [ %indvars.iv.next3159.1, %2226 ]
  %lcmp.mod3690.not = icmp eq i64 %xtraiter3688, 0
  br i1 %lcmp.mod3690.not, label %._crit_edge2830, label %._crit_edge2830.epilog-lcssa

._crit_edge2830.epilog-lcssa:                     ; preds = %._crit_edge2830.unr-lcssa
  %gep3357.epil = getelementptr float, ptr %invariant.gep3356, i64 %indvars.iv3158.unr
  %2241 = load float, ptr %gep3357.epil, align 4, !tbaa !9
  %2242 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv3158.unr
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = add i32 %2243, %2221
  %2245 = add i32 %2244, %2223
  %2246 = sext i32 %2245 to i64
  %2247 = getelementptr inbounds float, ptr %52, i64 %2246
  store float %2241, ptr %2247, align 4, !tbaa !9
  br label %._crit_edge2830

._crit_edge2830:                                  ; preds = %._crit_edge2830.unr-lcssa, %._crit_edge2830.epilog-lcssa
  store i32 %2219, ptr %29, align 4, !tbaa !5
  br i1 %.not22422826, label %._crit_edge2830.._crit_edge2836_crit_edge, label %.lr.ph2835

._crit_edge2830.._crit_edge2836_crit_edge:        ; preds = %._crit_edge2830.thread, %._crit_edge2830
  %.pre3242 = mul nsw i64 %indvars.iv3168, %2212
  br label %._crit_edge2836

.lr.ph2835:                                       ; preds = %._crit_edge2830
  %2248 = load i32, ptr %39, align 4, !tbaa !5
  %2249 = add i32 %2248, 2
  %2250 = mul i32 %2249, %2219
  %2251 = mul nsw i64 %indvars.iv3168, %2212
  %2252 = add nuw i32 %2219, 1
  %wide.trip.count3166 = zext i32 %2252 to i64
  %invariant.gep3358 = getelementptr float, ptr %51, i64 %2251
  %2253 = zext nneg i32 %2219 to i64
  %min.iters.check3569 = icmp ult i32 %2219, 16
  br i1 %min.iters.check3569, label %scalar.ph3568.preheader, label %vector.scevcheck3562

vector.scevcheck3562:                             ; preds = %.lr.ph2835
  %2254 = zext nneg i32 %2219 to i64
  %2255 = add nsw i64 %2254, -1
  %2256 = add i32 %2248, 1
  %2257 = add i32 %2256, %2250
  %2258 = trunc nsw i64 %2255 to i32
  %2259 = add i32 %2257, %2258
  %2260 = icmp slt i32 %2259, %2257
  %2261 = icmp ugt i64 %2255, 4294967295
  %2262 = or i1 %2260, %2261
  br i1 %2262, label %scalar.ph3568.preheader, label %vector.memcheck3563

vector.memcheck3563:                              ; preds = %vector.scevcheck3562
  %2263 = add i32 %2248, 1
  %2264 = add i32 %2263, %2250
  %2265 = sext i32 %2264 to i64
  %2266 = shl nsw i64 %2265, 2
  %2267 = add i64 %2216, %2218
  %2268 = add i64 %2266, %20
  %2269 = sub i64 %2267, %2268
  %diff.check3566 = icmp ult i64 %2269, 32
  br i1 %diff.check3566, label %scalar.ph3568.preheader, label %vector.ph3570

vector.ph3570:                                    ; preds = %vector.memcheck3563
  %n.vec3572 = and i64 %2253, 2147483640
  %ind.end3573 = or disjoint i64 %n.vec3572, 1
  br label %vector.body3575

vector.body3575:                                  ; preds = %vector.body3575, %vector.ph3570
  %index3576 = phi i64 [ 0, %vector.ph3570 ], [ %index.next3581, %vector.body3575 ]
  %offset.idx3577 = or disjoint i64 %index3576, 1
  %2270 = trunc i64 %index3576 to i32
  %2271 = or disjoint i32 %2270, 1
  %2272 = add i32 %2248, %2271
  %2273 = add i32 %2272, %2250
  %2274 = sext i32 %2273 to i64
  %2275 = getelementptr inbounds float, ptr %52, i64 %2274
  %2276 = getelementptr inbounds i8, ptr %2275, i64 16
  %wide.load3579 = load <4 x float>, ptr %2275, align 4, !tbaa !9
  %wide.load3580 = load <4 x float>, ptr %2276, align 4, !tbaa !9
  %2277 = getelementptr float, ptr %invariant.gep3358, i64 %offset.idx3577
  %2278 = getelementptr i8, ptr %2277, i64 16
  store <4 x float> %wide.load3579, ptr %2277, align 4, !tbaa !9
  store <4 x float> %wide.load3580, ptr %2278, align 4, !tbaa !9
  %index.next3581 = add nuw i64 %index3576, 8
  %2279 = icmp eq i64 %index.next3581, %n.vec3572
  br i1 %2279, label %middle.block3567, label %vector.body3575, !llvm.loop !83

middle.block3567:                                 ; preds = %vector.body3575
  %cmp.n3582 = icmp eq i64 %n.vec3572, %2253
  br i1 %cmp.n3582, label %._crit_edge2836, label %scalar.ph3568.preheader

scalar.ph3568.preheader:                          ; preds = %middle.block3567, %vector.memcheck3563, %vector.scevcheck3562, %.lr.ph2835
  %indvars.iv3163.ph = phi i64 [ 1, %vector.memcheck3563 ], [ 1, %vector.scevcheck3562 ], [ 1, %.lr.ph2835 ], [ %ind.end3573, %middle.block3567 ]
  %2280 = zext nneg i32 %2219 to i64
  %2281 = and i32 %2219, 1
  %lcmp.mod3694.not = icmp eq i32 %2281, 0
  br i1 %lcmp.mod3694.not, label %scalar.ph3568.prol.loopexit, label %scalar.ph3568.prol

scalar.ph3568.prol:                               ; preds = %scalar.ph3568.preheader
  %2282 = trunc nuw nsw i64 %indvars.iv3163.ph to i32
  %2283 = add i32 %2248, %2282
  %2284 = add i32 %2283, %2250
  %2285 = sext i32 %2284 to i64
  %2286 = getelementptr inbounds float, ptr %52, i64 %2285
  %2287 = load float, ptr %2286, align 4, !tbaa !9
  %gep3359.prol = getelementptr float, ptr %invariant.gep3358, i64 %indvars.iv3163.ph
  store float %2287, ptr %gep3359.prol, align 4, !tbaa !9
  %indvars.iv.next3164.prol = add nuw nsw i64 %indvars.iv3163.ph, 1
  br label %scalar.ph3568.prol.loopexit

scalar.ph3568.prol.loopexit:                      ; preds = %scalar.ph3568.prol, %scalar.ph3568.preheader
  %indvars.iv3163.unr = phi i64 [ %indvars.iv3163.ph, %scalar.ph3568.preheader ], [ %indvars.iv.next3164.prol, %scalar.ph3568.prol ]
  %2288 = icmp eq i64 %indvars.iv3163.ph, %2280
  br i1 %2288, label %._crit_edge2836, label %scalar.ph3568

scalar.ph3568:                                    ; preds = %scalar.ph3568.prol.loopexit, %scalar.ph3568
  %indvars.iv3163 = phi i64 [ %indvars.iv.next3164.1, %scalar.ph3568 ], [ %indvars.iv3163.unr, %scalar.ph3568.prol.loopexit ]
  %2289 = trunc nuw nsw i64 %indvars.iv3163 to i32
  %2290 = add i32 %2248, %2289
  %2291 = add i32 %2290, %2250
  %2292 = sext i32 %2291 to i64
  %2293 = getelementptr inbounds float, ptr %52, i64 %2292
  %2294 = load float, ptr %2293, align 4, !tbaa !9
  %gep3359 = getelementptr float, ptr %invariant.gep3358, i64 %indvars.iv3163
  store float %2294, ptr %gep3359, align 4, !tbaa !9
  %indvars.iv.next3164 = add nuw nsw i64 %indvars.iv3163, 1
  %2295 = trunc nuw nsw i64 %indvars.iv.next3164 to i32
  %2296 = add i32 %2248, %2295
  %2297 = add i32 %2296, %2250
  %2298 = sext i32 %2297 to i64
  %2299 = getelementptr inbounds float, ptr %52, i64 %2298
  %2300 = load float, ptr %2299, align 4, !tbaa !9
  %gep3359.1 = getelementptr float, ptr %invariant.gep3358, i64 %indvars.iv.next3164
  store float %2300, ptr %gep3359.1, align 4, !tbaa !9
  %indvars.iv.next3164.1 = add nuw nsw i64 %indvars.iv3163, 2
  %exitcond3167.not.1 = icmp eq i64 %indvars.iv.next3164.1, %wide.trip.count3166
  br i1 %exitcond3167.not.1, label %._crit_edge2836, label %scalar.ph3568, !llvm.loop !84

._crit_edge2836:                                  ; preds = %scalar.ph3568.prol.loopexit, %scalar.ph3568, %middle.block3567, %._crit_edge2830.._crit_edge2836_crit_edge
  %.pre-phi3243 = phi i64 [ %.pre3242, %._crit_edge2830.._crit_edge2836_crit_edge ], [ %2251, %middle.block3567 ], [ %2251, %scalar.ph3568 ], [ %2251, %scalar.ph3568.prol.loopexit ]
  %storemerge2243.lcssa = phi i32 [ 1, %._crit_edge2830.._crit_edge2836_crit_edge ], [ %2252, %middle.block3567 ], [ %2252, %scalar.ph3568 ], [ %2252, %scalar.ph3568.prol.loopexit ]
  store i32 %storemerge2243.lcssa, ptr %35, align 4, !tbaa !5
  %gep2839 = getelementptr float, ptr %invariant.gep2838, i64 %.pre-phi3243
  %2301 = call float @snrm2_(ptr noundef nonnull %7, ptr noundef %gep2839, ptr noundef nonnull @c__1) #7
  %2302 = fdiv float 1.000000e+00, %2301
  store float %2302, ptr %41, align 4, !tbaa !9
  %2303 = load float, ptr %34, align 4, !tbaa !9
  %2304 = fsub float 1.000000e+00, %2303
  %2305 = fcmp olt float %2302, %2304
  %2306 = fadd float %2303, 1.000000e+00
  %2307 = fcmp ogt float %2302, %2306
  %or.cond2317 = or i1 %2305, %2307
  br i1 %or.cond2317, label %2308, label %2309

2308:                                             ; preds = %._crit_edge2836
  call void @sscal_(ptr noundef nonnull %7, ptr noundef nonnull %41, ptr noundef %gep2839, ptr noundef nonnull @c__1) #7
  br label %2309

2309:                                             ; preds = %._crit_edge2836, %2308
  %indvars.iv.next3169 = add nuw nsw i64 %indvars.iv3168, 1
  %2310 = load i32, ptr %28, align 4, !tbaa !5
  %2311 = sext i32 %2310 to i64
  %.not2238.not = icmp slt i64 %indvars.iv3168, %2311
  %indvar.next3565 = add i64 %indvar3564, 1
  br i1 %.not2238.not, label %.lr.ph2843, label %._crit_edge2844, !llvm.loop !85

._crit_edge2844:                                  ; preds = %2309, %.loopexit2362
  %2312 = load i32, ptr %39, align 4, !tbaa !5
  %2313 = load i32, ptr %6, align 4, !tbaa !5
  %2314 = icmp slt i32 %2312, %2313
  br i1 %2314, label %2315, label %2340

2315:                                             ; preds = %._crit_edge2844
  %2316 = sub nsw i32 %2313, %2312
  store i32 %2316, ptr %28, align 4, !tbaa !5
  %2317 = add i32 %46, 1
  %2318 = add i32 %2317, %2312
  %2319 = sext i32 %2318 to i64
  %2320 = getelementptr inbounds float, ptr %48, i64 %2319
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2320, ptr noundef nonnull %12) #7
  %2321 = load i32, ptr %39, align 4, !tbaa !5
  %2322 = load i32, ptr %36, align 4, !tbaa !5
  %2323 = icmp slt i32 %2321, %2322
  br i1 %2323, label %2324, label %2340

2324:                                             ; preds = %2315
  %2325 = sub nsw i32 %2322, %2321
  store i32 %2325, ptr %28, align 4, !tbaa !5
  %2326 = add nsw i32 %2321, 1
  %2327 = mul nsw i32 %2326, %46
  %2328 = sext i32 %2327 to i64
  %2329 = getelementptr float, ptr %48, i64 %2328
  %2330 = getelementptr i8, ptr %2329, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2330, ptr noundef nonnull %12) #7
  %2331 = load i32, ptr %6, align 4, !tbaa !5
  %2332 = load i32, ptr %39, align 4, !tbaa !5
  %2333 = sub nsw i32 %2331, %2332
  store i32 %2333, ptr %28, align 4, !tbaa !5
  %2334 = load i32, ptr %36, align 4, !tbaa !5
  %2335 = sub nsw i32 %2334, %2332
  store i32 %2335, ptr %29, align 4, !tbaa !5
  %2336 = add nsw i32 %2332, 1
  %2337 = mul i32 %2336, %2317
  %2338 = sext i32 %2337 to i64
  %2339 = getelementptr inbounds float, ptr %48, i64 %2338
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %2339, ptr noundef nonnull %12) #7
  br label %2340

2340:                                             ; preds = %2315, %2324, %._crit_edge2844
  %2341 = load i32, ptr %16, align 4, !tbaa !5
  %2342 = load i32, ptr %7, align 4, !tbaa !5
  %2343 = sub nsw i32 %2341, %2342
  store i32 %2343, ptr %28, align 4, !tbaa !5
  %2344 = sext i32 %2342 to i64
  %2345 = getelementptr float, ptr %52, i64 %2344
  %2346 = getelementptr i8, ptr %2345, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.26, ptr noundef nonnull %6, ptr noundef nonnull %36, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %15, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %2346, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %2347 = load i32, ptr %6, align 4, !tbaa !5
  %2348 = sitofp i32 %2347 to float
  %2349 = fpext float %2348 to double
  %2350 = call double @sqrt(double noundef %2349) #7
  %2351 = fmul double %2350, %2208
  %2352 = fptrunc double %2351 to float
  store float %2352, ptr %34, align 4, !tbaa !9
  %2353 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %2353, ptr %28, align 4, !tbaa !5
  %invariant.gep2845 = getelementptr i8, ptr %48, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22402849 = icmp slt i32 %2353, 1
  br i1 %.not22402849, label %._crit_edge2853, label %.lr.ph2852

.lr.ph2852:                                       ; preds = %2340, %2367
  %storemerge22392850 = phi i32 [ %2369, %2367 ], [ 1, %2340 ]
  %2354 = mul nsw i32 %storemerge22392850, %46
  %2355 = sext i32 %2354 to i64
  %gep2846 = getelementptr float, ptr %invariant.gep2845, i64 %2355
  %2356 = call float @snrm2_(ptr noundef nonnull %6, ptr noundef %gep2846, ptr noundef nonnull @c__1) #7
  %2357 = fdiv float 1.000000e+00, %2356
  store float %2357, ptr %41, align 4, !tbaa !9
  %2358 = load float, ptr %34, align 4, !tbaa !9
  %2359 = fsub float 1.000000e+00, %2358
  %2360 = fcmp olt float %2357, %2359
  %2361 = fadd float %2358, 1.000000e+00
  %2362 = fcmp ogt float %2357, %2361
  %or.cond2320 = or i1 %2360, %2362
  br i1 %or.cond2320, label %2363, label %2367

2363:                                             ; preds = %.lr.ph2852
  %2364 = load i32, ptr %35, align 4, !tbaa !5
  %2365 = mul nsw i32 %2364, %46
  %2366 = sext i32 %2365 to i64
  %gep2848 = getelementptr float, ptr %invariant.gep2845, i64 %2366
  call void @sscal_(ptr noundef nonnull %6, ptr noundef nonnull %41, ptr noundef %gep2848, ptr noundef nonnull @c__1) #7
  br label %2367

2367:                                             ; preds = %.lr.ph2852, %2363
  %2368 = load i32, ptr %35, align 4, !tbaa !5
  %2369 = add nsw i32 %2368, 1
  store i32 %2369, ptr %35, align 4, !tbaa !5
  %2370 = load i32, ptr %28, align 4, !tbaa !5
  %.not2240.not = icmp slt i32 %2368, %2370
  br i1 %.not2240.not, label %.lr.ph2852, label %._crit_edge2853, !llvm.loop !86

._crit_edge2853:                                  ; preds = %2367, %2340
  br i1 %.01926.shrunk, label %2371, label %2948

2371:                                             ; preds = %._crit_edge2853
  %2372 = load i32, ptr %6, align 4, !tbaa !5
  %2373 = add nsw i32 %2372, -1
  store i32 %2373, ptr %28, align 4, !tbaa !5
  br label %.sink.split

2374:                                             ; preds = %1317
  %2375 = load i32, ptr %7, align 4, !tbaa !5
  %2376 = sext i32 %2375 to i64
  %2377 = getelementptr float, ptr %52, i64 %2376
  %2378 = getelementptr i8, ptr %2377, i64 4
  call void @slacpy_(ptr noundef nonnull @.str.20, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %2378, ptr noundef nonnull %7) #7
  br i1 %879, label %2379, label %2420

2379:                                             ; preds = %2374
  %sqrtf2253 = call float @sqrtf(float noundef %187) #3
  store float %sqrtf2253, ptr %41, align 4, !tbaa !9
  %2380 = load i32, ptr %7, align 4, !tbaa !5
  %.not22552657 = icmp slt i32 %2380, 2
  br i1 %.not22552657, label %.loopexit2368, label %.lr.ph2660

.lr.ph2660:                                       ; preds = %2379
  %2381 = add nuw i32 %2380, 1
  %wide.trip.count3075 = zext i32 %2381 to i64
  br label %scalar.ph3478

scalar.ph3478:                                    ; preds = %.lr.ph2660, %.loopexit3598
  %indvar3661 = phi i64 [ 0, %.lr.ph2660 ], [ %indvar.next3662, %.loopexit3598 ]
  %indvars.iv3072 = phi i64 [ 2, %.lr.ph2660 ], [ %indvars.iv.next3073, %.loopexit3598 ]
  %2382 = trunc nuw nsw i64 %indvars.iv3072 to i32
  %2383 = mul i32 %2381, %2382
  %2384 = sext i32 %2383 to i64
  %2385 = getelementptr inbounds float, ptr %52, i64 %2384
  %2386 = load float, ptr %2385, align 4, !tbaa !9
  %2387 = fmul float %sqrtf2253, %2386
  %2388 = mul i32 %2380, %2382
  %2389 = fcmp oge float %2387, 0.000000e+00
  %2390 = sext i32 %2388 to i64
  %invariant.gep3330 = getelementptr float, ptr %52, i64 %2390
  %.neg = fneg float %2387
  %2391 = getelementptr float, ptr %52, i64 %indvars.iv3072
  %2392 = icmp eq i64 %indvar3661, 0
  br i1 %2392, label %.loopexit3598.unr-lcssa, label %scalar.ph3478.new

scalar.ph3478.new:                                ; preds = %scalar.ph3478
  %2393 = add i64 %indvar3661, 1
  %unroll_iter3665 = and i64 %2393, -2
  br label %2394

2394:                                             ; preds = %2394, %scalar.ph3478.new
  %indvars.iv3067 = phi i64 [ 1, %scalar.ph3478.new ], [ %indvars.iv.next3068.1, %2394 ]
  %niter3666 = phi i64 [ 0, %scalar.ph3478.new ], [ %niter3666.next.1, %2394 ]
  %gep3331 = getelementptr float, ptr %invariant.gep3330, i64 %indvars.iv3067
  %2395 = load float, ptr %gep3331, align 4, !tbaa !9
  %2396 = fcmp ult float %2395, 0.000000e+00
  %2397 = xor i1 %2389, %2396
  %2398 = select i1 %2397, float %.neg, float %2387
  %2399 = trunc nuw nsw i64 %indvars.iv3067 to i32
  %2400 = mul i32 %2380, %2399
  %2401 = sext i32 %2400 to i64
  %2402 = getelementptr float, ptr %2391, i64 %2401
  store float %2398, ptr %2402, align 4, !tbaa !9
  %indvars.iv.next3068 = add nuw nsw i64 %indvars.iv3067, 1
  %gep3331.1 = getelementptr float, ptr %invariant.gep3330, i64 %indvars.iv.next3068
  %2403 = load float, ptr %gep3331.1, align 4, !tbaa !9
  %2404 = fcmp ult float %2403, 0.000000e+00
  %2405 = xor i1 %2389, %2404
  %2406 = select i1 %2405, float %.neg, float %2387
  %2407 = trunc nuw nsw i64 %indvars.iv.next3068 to i32
  %2408 = mul i32 %2380, %2407
  %2409 = sext i32 %2408 to i64
  %2410 = getelementptr float, ptr %2391, i64 %2409
  store float %2406, ptr %2410, align 4, !tbaa !9
  %indvars.iv.next3068.1 = add nuw nsw i64 %indvars.iv3067, 2
  %niter3666.next.1 = add i64 %niter3666, 2
  %niter3666.ncmp.1 = icmp eq i64 %niter3666.next.1, %unroll_iter3665
  br i1 %niter3666.ncmp.1, label %.loopexit3598.unr-lcssa, label %2394, !llvm.loop !87

.loopexit3598.unr-lcssa:                          ; preds = %2394, %scalar.ph3478
  %indvars.iv3067.unr = phi i64 [ 1, %scalar.ph3478 ], [ %indvars.iv.next3068.1, %2394 ]
  %2411 = and i64 %indvar3661, 1
  %lcmp.mod3664.not.not = icmp eq i64 %2411, 0
  br i1 %lcmp.mod3664.not.not, label %.loopexit3598.epilog-lcssa, label %.loopexit3598

.loopexit3598.epilog-lcssa:                       ; preds = %.loopexit3598.unr-lcssa
  %gep3331.epil = getelementptr float, ptr %invariant.gep3330, i64 %indvars.iv3067.unr
  %2412 = load float, ptr %gep3331.epil, align 4, !tbaa !9
  %2413 = fcmp ult float %2412, 0.000000e+00
  %2414 = xor i1 %2389, %2413
  %2415 = select i1 %2414, float %.neg, float %2387
  %2416 = trunc nuw nsw i64 %indvars.iv3067.unr to i32
  %2417 = mul i32 %2380, %2416
  %2418 = sext i32 %2417 to i64
  %2419 = getelementptr float, ptr %2391, i64 %2418
  store float %2415, ptr %2419, align 4, !tbaa !9
  br label %.loopexit3598

.loopexit3598:                                    ; preds = %.loopexit3598.unr-lcssa, %.loopexit3598.epilog-lcssa
  %indvars.iv.next3073 = add nuw nsw i64 %indvars.iv3072, 1
  %exitcond3076.not = icmp eq i64 %indvars.iv.next3073, %wide.trip.count3075
  %indvar.next3662 = add i64 %indvar3661, 1
  br i1 %exitcond3076.not, label %..loopexit2368_crit_edge, label %scalar.ph3478, !llvm.loop !88

2420:                                             ; preds = %2374
  %2421 = load i32, ptr %7, align 4, !tbaa !5
  %2422 = add nsw i32 %2421, -1
  store i32 %2422, ptr %28, align 4, !tbaa !5
  store i32 %2422, ptr %29, align 4, !tbaa !5
  %2423 = sext i32 %2421 to i64
  %2424 = getelementptr float, ptr %52, i64 %2423
  %2425 = getelementptr i8, ptr %2424, i64 8
  call void @slaset_(ptr noundef nonnull @.str.21, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2425, ptr noundef nonnull %7) #7
  %.pre3197 = load i32, ptr %7, align 4, !tbaa !5
  br label %2427

..loopexit2368_crit_edge:                         ; preds = %.loopexit3598
  %2426 = add nsw i32 %2380, -1
  store float %2387, ptr %34, align 4, !tbaa !9
  store i32 %2426, ptr %29, align 4, !tbaa !5
  br label %.loopexit2368

.loopexit2368:                                    ; preds = %..loopexit2368_crit_edge, %2379
  %storemerge2254.lcssa = phi i32 [ %2381, %..loopexit2368_crit_edge ], [ 2, %2379 ]
  store i32 %storemerge2254.lcssa, ptr %35, align 4, !tbaa !5
  br label %2427

2427:                                             ; preds = %.loopexit2368, %2420
  %2428 = phi i32 [ %2380, %.loopexit2368 ], [ %.pre3197, %2420 ]
  %2429 = load i32, ptr %16, align 4, !tbaa !5
  %.neg2256 = xor i32 %2428, -1
  %.neg2257 = mul i32 %2428, %.neg2256
  %2430 = add i32 %.neg2257, %2429
  store i32 %2430, ptr %28, align 4, !tbaa !5
  %2431 = sext i32 %2428 to i64
  %2432 = getelementptr float, ptr %52, i64 %2431
  %2433 = getelementptr i8, ptr %2432, i64 4
  %2434 = add i32 %2428, 1
  %2435 = mul i32 %2434, %2428
  %2436 = sext i32 %2435 to i64
  %2437 = getelementptr float, ptr %52, i64 %2436
  %2438 = getelementptr i8, ptr %2437, i64 4
  call void @sgesvj_(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef %2433, ptr noundef nonnull %7, ptr noundef %10, ptr noundef nonnull %7, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %2438, ptr noundef nonnull %28, ptr noundef nonnull %18) #7
  %2439 = load i32, ptr %7, align 4, !tbaa !5
  %2440 = add i32 %2439, 1
  %2441 = mul i32 %2440, %2439
  %2442 = sext i32 %2441 to i64
  %2443 = getelementptr float, ptr %52, i64 %2442
  %2444 = getelementptr i8, ptr %2443, i64 4
  %2445 = load float, ptr %2444, align 4, !tbaa !9
  store float %2445, ptr %40, align 4, !tbaa !9
  %2446 = getelementptr i8, ptr %2443, i64 8
  %2447 = load float, ptr %2446, align 4, !tbaa !9
  %2448 = fcmp ult float %2447, 0.000000e+00
  %2449 = fpext float %2447 to double
  br i1 %2448, label %2453, label %2450

2450:                                             ; preds = %2427
  %2451 = fadd double %2449, 5.000000e-01
  %2452 = call double @llvm.floor.f64(double %2451)
  br label %2457

2453:                                             ; preds = %2427
  %2454 = fsub double 5.000000e-01, %2449
  %2455 = call double @llvm.floor.f64(double %2454)
  %2456 = fneg double %2455
  br label %2457

2457:                                             ; preds = %2453, %2450
  %2458 = phi double [ %2452, %2450 ], [ %2456, %2453 ]
  store i32 %2439, ptr %28, align 4, !tbaa !5
  %invariant.gep2666 = getelementptr i8, ptr %48, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22592670 = icmp slt i32 %2439, 1
  br i1 %.not22592670, label %._crit_edge2674, label %.lr.ph2673

.lr.ph2673:                                       ; preds = %2457, %.lr.ph2673
  %storemerge22582671 = phi i32 [ %2471, %.lr.ph2673 ], [ 1, %2457 ]
  %2459 = load i32, ptr %7, align 4, !tbaa !5
  %2460 = mul i32 %2459, %storemerge22582671
  %2461 = sext i32 %2460 to i64
  %gep2665 = getelementptr float, ptr %15, i64 %2461
  %2462 = mul nsw i32 %storemerge22582671, %46
  %2463 = sext i32 %2462 to i64
  %gep2667 = getelementptr float, ptr %invariant.gep2666, i64 %2463
  call void @scopy_(ptr noundef nonnull %7, ptr noundef %gep2665, ptr noundef nonnull @c__1, ptr noundef %gep2667, ptr noundef nonnull @c__1) #7
  %2464 = load i32, ptr %35, align 4, !tbaa !5
  %2465 = sext i32 %2464 to i64
  %2466 = getelementptr inbounds float, ptr %42, i64 %2465
  %2467 = load i32, ptr %7, align 4, !tbaa !5
  %2468 = mul i32 %2467, %2464
  %2469 = sext i32 %2468 to i64
  %gep2669 = getelementptr float, ptr %15, i64 %2469
  call void @sscal_(ptr noundef nonnull %7, ptr noundef nonnull %2466, ptr noundef %gep2669, ptr noundef nonnull @c__1) #7
  %2470 = load i32, ptr %35, align 4, !tbaa !5
  %2471 = add nsw i32 %2470, 1
  store i32 %2471, ptr %35, align 4, !tbaa !5
  %2472 = load i32, ptr %28, align 4, !tbaa !5
  %.not2259.not = icmp slt i32 %2470, %2472
  br i1 %.not2259.not, label %.lr.ph2673, label %._crit_edge2674.loopexit, !llvm.loop !89

._crit_edge2674.loopexit:                         ; preds = %.lr.ph2673
  %.pre3198 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2674

._crit_edge2674:                                  ; preds = %._crit_edge2674.loopexit, %2457
  %2473 = phi i32 [ %.pre3198, %._crit_edge2674.loopexit ], [ %2439, %2457 ]
  %2474 = sext i32 %2473 to i64
  %2475 = getelementptr float, ptr %52, i64 %2474
  %2476 = getelementptr i8, ptr %2475, i64 4
  call void @strsm_(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.28, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull @c_b35, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %2476, ptr noundef nonnull %7) #7
  %2477 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %2477, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22612675 = icmp slt i32 %2477, 1
  br i1 %.not22612675, label %._crit_edge2679, label %.lr.ph2678

.lr.ph2678:                                       ; preds = %._crit_edge2674, %.lr.ph2678
  %storemerge22602676 = phi i32 [ %2489, %.lr.ph2678 ], [ 1, %._crit_edge2674 ]
  %2478 = load i32, ptr %7, align 4, !tbaa !5
  %2479 = add nsw i32 %2478, %storemerge22602676
  %2480 = sext i32 %2479 to i64
  %2481 = getelementptr inbounds float, ptr %52, i64 %2480
  %2482 = sext i32 %storemerge22602676 to i64
  %2483 = getelementptr inbounds i32, ptr %53, i64 %2482
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = add nsw i32 %2484, %49
  %2486 = sext i32 %2485 to i64
  %2487 = getelementptr inbounds float, ptr %51, i64 %2486
  call void @scopy_(ptr noundef nonnull %7, ptr noundef nonnull %2481, ptr noundef nonnull %7, ptr noundef %2487, ptr noundef nonnull %14) #7
  %2488 = load i32, ptr %35, align 4, !tbaa !5
  %2489 = add nsw i32 %2488, 1
  store i32 %2489, ptr %35, align 4, !tbaa !5
  %2490 = load i32, ptr %28, align 4, !tbaa !5
  %.not2261.not = icmp slt i32 %2488, %2490
  br i1 %.not2261.not, label %.lr.ph2678, label %._crit_edge2679.loopexit, !llvm.loop !90

._crit_edge2679.loopexit:                         ; preds = %.lr.ph2678
  %.pre3199 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2679

._crit_edge2679:                                  ; preds = %._crit_edge2679.loopexit, %._crit_edge2674
  %2491 = phi i32 [ %.pre3199, %._crit_edge2679.loopexit ], [ %2477, %._crit_edge2674 ]
  %2492 = sitofp i32 %2491 to float
  %2493 = fpext float %2492 to double
  %2494 = call double @sqrt(double noundef %2493) #7
  %2495 = fpext float %185 to double
  %2496 = fmul double %2494, %2495
  %2497 = fptrunc double %2496 to float
  store float %2497, ptr %34, align 4, !tbaa !9
  %2498 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %2498, ptr %28, align 4, !tbaa !5
  %invariant.gep2680 = getelementptr i8, ptr %51, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22632684 = icmp slt i32 %2498, 1
  br i1 %.not22632684, label %._crit_edge2688, label %.lr.ph2687

.lr.ph2687:                                       ; preds = %._crit_edge2679, %2512
  %storemerge22622685 = phi i32 [ %2514, %2512 ], [ 1, %._crit_edge2679 ]
  %2499 = mul nsw i32 %storemerge22622685, %49
  %2500 = sext i32 %2499 to i64
  %gep2681 = getelementptr float, ptr %invariant.gep2680, i64 %2500
  %2501 = call float @snrm2_(ptr noundef nonnull %7, ptr noundef %gep2681, ptr noundef nonnull @c__1) #7
  %2502 = fdiv float 1.000000e+00, %2501
  store float %2502, ptr %41, align 4, !tbaa !9
  %2503 = load float, ptr %34, align 4, !tbaa !9
  %2504 = fsub float 1.000000e+00, %2503
  %2505 = fcmp olt float %2502, %2504
  %2506 = fadd float %2503, 1.000000e+00
  %2507 = fcmp ogt float %2502, %2506
  %or.cond2323 = or i1 %2505, %2507
  br i1 %or.cond2323, label %2508, label %2512

2508:                                             ; preds = %.lr.ph2687
  %2509 = load i32, ptr %35, align 4, !tbaa !5
  %2510 = mul nsw i32 %2509, %49
  %2511 = sext i32 %2510 to i64
  %gep2683 = getelementptr float, ptr %invariant.gep2680, i64 %2511
  call void @sscal_(ptr noundef nonnull %7, ptr noundef nonnull %41, ptr noundef %gep2683, ptr noundef nonnull @c__1) #7
  br label %2512

2512:                                             ; preds = %.lr.ph2687, %2508
  %2513 = load i32, ptr %35, align 4, !tbaa !5
  %2514 = add nsw i32 %2513, 1
  store i32 %2514, ptr %35, align 4, !tbaa !5
  %2515 = load i32, ptr %28, align 4, !tbaa !5
  %.not2263.not = icmp slt i32 %2513, %2515
  br i1 %.not2263.not, label %.lr.ph2687, label %._crit_edge2688.loopexit, !llvm.loop !91

._crit_edge2688.loopexit:                         ; preds = %2512
  %.pre3200 = load i32, ptr %7, align 4, !tbaa !5
  br label %._crit_edge2688

._crit_edge2688:                                  ; preds = %._crit_edge2688.loopexit, %._crit_edge2679
  %2516 = phi i32 [ %.pre3200, %._crit_edge2688.loopexit ], [ %2498, %._crit_edge2679 ]
  %2517 = load i32, ptr %6, align 4, !tbaa !5
  %2518 = icmp slt i32 %2516, %2517
  br i1 %2518, label %2519, label %2544

2519:                                             ; preds = %._crit_edge2688
  %2520 = sub nsw i32 %2517, %2516
  store i32 %2520, ptr %28, align 4, !tbaa !5
  %2521 = add i32 %46, 1
  %2522 = add i32 %2521, %2516
  %2523 = sext i32 %2522 to i64
  %2524 = getelementptr inbounds float, ptr %48, i64 %2523
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %7, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2524, ptr noundef nonnull %12) #7
  %2525 = load i32, ptr %7, align 4, !tbaa !5
  %2526 = load i32, ptr %36, align 4, !tbaa !5
  %2527 = icmp slt i32 %2525, %2526
  br i1 %2527, label %2528, label %2544

2528:                                             ; preds = %2519
  %2529 = sub nsw i32 %2526, %2525
  store i32 %2529, ptr %28, align 4, !tbaa !5
  %2530 = add nsw i32 %2525, 1
  %2531 = mul nsw i32 %2530, %46
  %2532 = sext i32 %2531 to i64
  %2533 = getelementptr float, ptr %48, i64 %2532
  %2534 = getelementptr i8, ptr %2533, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %7, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2534, ptr noundef nonnull %12) #7
  %2535 = load i32, ptr %6, align 4, !tbaa !5
  %2536 = load i32, ptr %7, align 4, !tbaa !5
  %2537 = sub nsw i32 %2535, %2536
  store i32 %2537, ptr %28, align 4, !tbaa !5
  %2538 = load i32, ptr %36, align 4, !tbaa !5
  %2539 = sub nsw i32 %2538, %2536
  store i32 %2539, ptr %29, align 4, !tbaa !5
  %2540 = add nsw i32 %2536, 1
  %2541 = mul i32 %2540, %2521
  %2542 = sext i32 %2541 to i64
  %2543 = getelementptr inbounds float, ptr %48, i64 %2542
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %2543, ptr noundef nonnull %12) #7
  %.pre3201 = load i32, ptr %7, align 4, !tbaa !5
  br label %2544

2544:                                             ; preds = %2519, %2528, %._crit_edge2688
  %2545 = phi i32 [ %2525, %2519 ], [ %.pre3201, %2528 ], [ %2516, %._crit_edge2688 ]
  %2546 = load i32, ptr %16, align 4, !tbaa !5
  %2547 = sub nsw i32 %2546, %2545
  store i32 %2547, ptr %28, align 4, !tbaa !5
  %2548 = sext i32 %2545 to i64
  %2549 = getelementptr float, ptr %52, i64 %2548
  %2550 = getelementptr i8, ptr %2549, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.25, ptr noundef nonnull %6, ptr noundef nonnull %36, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %15, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %2550, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %2551 = load i32, ptr %6, align 4, !tbaa !5
  %2552 = sitofp i32 %2551 to float
  %2553 = fpext float %2552 to double
  %2554 = call double @sqrt(double noundef %2553) #7
  %2555 = fmul double %2554, %2495
  %2556 = fptrunc double %2555 to float
  store float %2556, ptr %34, align 4, !tbaa !9
  %2557 = load i32, ptr %36, align 4, !tbaa !5
  store i32 %2557, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22652693 = icmp slt i32 %2557, 1
  br i1 %.not22652693, label %._crit_edge2697, label %.lr.ph2696

.lr.ph2696:                                       ; preds = %2544, %2571
  %storemerge22642694 = phi i32 [ %2573, %2571 ], [ 1, %2544 ]
  %2558 = mul nsw i32 %storemerge22642694, %46
  %2559 = sext i32 %2558 to i64
  %gep2690 = getelementptr float, ptr %invariant.gep2666, i64 %2559
  %2560 = call float @snrm2_(ptr noundef nonnull %6, ptr noundef %gep2690, ptr noundef nonnull @c__1) #7
  %2561 = fdiv float 1.000000e+00, %2560
  store float %2561, ptr %41, align 4, !tbaa !9
  %2562 = load float, ptr %34, align 4, !tbaa !9
  %2563 = fsub float 1.000000e+00, %2562
  %2564 = fcmp olt float %2561, %2563
  %2565 = fadd float %2562, 1.000000e+00
  %2566 = fcmp ogt float %2561, %2565
  %or.cond2326 = or i1 %2564, %2566
  br i1 %or.cond2326, label %2567, label %2571

2567:                                             ; preds = %.lr.ph2696
  %2568 = load i32, ptr %35, align 4, !tbaa !5
  %2569 = mul nsw i32 %2568, %46
  %2570 = sext i32 %2569 to i64
  %gep2692 = getelementptr float, ptr %invariant.gep2666, i64 %2570
  call void @sscal_(ptr noundef nonnull %6, ptr noundef nonnull %41, ptr noundef %gep2692, ptr noundef nonnull @c__1) #7
  br label %2571

2571:                                             ; preds = %.lr.ph2696, %2567
  %2572 = load i32, ptr %35, align 4, !tbaa !5
  %2573 = add nsw i32 %2572, 1
  store i32 %2573, ptr %35, align 4, !tbaa !5
  %2574 = load i32, ptr %28, align 4, !tbaa !5
  %.not2265.not = icmp slt i32 %2572, %2574
  br i1 %.not2265.not, label %.lr.ph2696, label %._crit_edge2697, !llvm.loop !92

._crit_edge2697:                                  ; preds = %2571, %2544
  br i1 %.01926.shrunk, label %2575, label %2948

2575:                                             ; preds = %._crit_edge2697
  %2576 = load i32, ptr %6, align 4, !tbaa !5
  %2577 = add nsw i32 %2576, -1
  store i32 %2577, ptr %28, align 4, !tbaa !5
  br label %.sink.split

2578:                                             ; preds = %1316
  %2579 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %2579, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22692604 = icmp slt i32 %2579, 1
  br i1 %.not22692604, label %._crit_edge2608, label %.lr.ph2607

.lr.ph2607:                                       ; preds = %2578
  %2580 = add i32 %43, 1
  %2581 = add i32 %49, 1
  br label %2582

2582:                                             ; preds = %.lr.ph2607, %2582
  %2583 = phi i32 [ 1, %.lr.ph2607 ], [ %2594, %2582 ]
  %storemerge22682605.neg = phi i32 [ -1, %.lr.ph2607 ], [ %.neg2878, %2582 ]
  %2584 = load i32, ptr %7, align 4, !tbaa !5
  %2585 = add i32 %storemerge22682605.neg, 1
  %2586 = add i32 %2585, %2584
  store i32 %2586, ptr %29, align 4, !tbaa !5
  %2587 = mul i32 %2583, %2580
  %2588 = sext i32 %2587 to i64
  %2589 = getelementptr inbounds float, ptr %45, i64 %2588
  %2590 = mul i32 %2583, %2581
  %2591 = sext i32 %2590 to i64
  %2592 = getelementptr inbounds float, ptr %51, i64 %2591
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %2589, ptr noundef nonnull %9, ptr noundef %2592, ptr noundef nonnull @c__1) #7
  %2593 = load i32, ptr %35, align 4, !tbaa !5
  %.neg2878 = xor i32 %2593, -1
  %2594 = add nsw i32 %2593, 1
  store i32 %2594, ptr %35, align 4, !tbaa !5
  %2595 = load i32, ptr %28, align 4, !tbaa !5
  %.not2269.not = icmp slt i32 %2593, %2595
  br i1 %.not2269.not, label %2582, label %._crit_edge2608, !llvm.loop !93

._crit_edge2608:                                  ; preds = %2582, %2578
  br i1 %879, label %2596, label %2641

2596:                                             ; preds = %._crit_edge2608
  %2597 = fdiv float %187, %185
  %sqrtf2270 = call float @sqrtf(float noundef %2597) #3
  store float %sqrtf2270, ptr %41, align 4, !tbaa !9
  %2598 = load i32, ptr %39, align 4, !tbaa !5
  %.not22712615 = icmp slt i32 %2598, 1
  %.pre3193 = load i32, ptr %7, align 4, !tbaa !5
  br i1 %.not22712615, label %.loopexit2370, label %.lr.ph2618

.lr.ph2618:                                       ; preds = %2596
  %.not22892609 = icmp slt i32 %.pre3193, 1
  %2599 = add i32 %.pre3193, 1
  %2600 = sext i32 %49 to i64
  %2601 = add nuw i32 %2598, 1
  %wide.trip.count3042 = zext i32 %2601 to i64
  %wide.trip.count3037 = zext i32 %2599 to i64
  br label %2602

2602:                                             ; preds = %.lr.ph2618, %._crit_edge2613
  %indvars.iv3039 = phi i64 [ 1, %.lr.ph2618 ], [ %indvars.iv.next3040, %._crit_edge2613 ]
  %indvars3041 = trunc i64 %indvars.iv3039 to i32
  %2603 = mul nsw i64 %indvars.iv3039, %2600
  %2604 = mul nsw i32 %49, %indvars3041
  %2605 = sext i32 %2604 to i64
  %2606 = getelementptr float, ptr %51, i64 %indvars.iv3039
  %2607 = getelementptr float, ptr %2606, i64 %2605
  %2608 = load float, ptr %2607, align 4, !tbaa !9
  %2609 = fcmp oge float %2608, 0.000000e+00
  %2610 = fneg float %2608
  %2611 = select i1 %2609, float %2608, float %2610
  %2612 = fmul float %sqrtf2270, %2611
  br i1 %.not22892609, label %._crit_edge2613, label %.lr.ph2612

.lr.ph2612:                                       ; preds = %2602
  %2613 = fcmp oge float %2612, 0.000000e+00
  %2614 = fneg float %2612
  %invariant.gep3320 = getelementptr float, ptr %51, i64 %2603
  br label %2615

2615:                                             ; preds = %.lr.ph2612, %2639
  %indvars.iv3034 = phi i64 [ 1, %.lr.ph2612 ], [ %indvars.iv.next3035, %2639 ]
  %2616 = phi float [ %2608, %.lr.ph2612 ], [ %2634, %2639 ]
  %2617 = icmp ugt i64 %indvars.iv3034, %indvars.iv3039
  br i1 %2617, label %2618, label %2626

2618:                                             ; preds = %2615
  %2619 = add nsw i64 %indvars.iv3034, %2603
  %2620 = getelementptr inbounds float, ptr %51, i64 %2619
  %2621 = load float, ptr %2620, align 4, !tbaa !9
  %2622 = fcmp oge float %2621, 0.000000e+00
  %2623 = fneg float %2621
  %2624 = select i1 %2622, float %2621, float %2623
  %2625 = fcmp ugt float %2624, %2612
  br i1 %2625, label %2633, label %2627

2626:                                             ; preds = %2615
  %.old2328 = icmp ult i64 %indvars.iv3034, %indvars.iv3039
  br i1 %.old2328, label %._crit_edge3240, label %2633

._crit_edge3240:                                  ; preds = %2626
  %.pre3248 = add nsw i64 %indvars.iv3034, %2603
  br label %2627

2627:                                             ; preds = %._crit_edge3240, %2618
  %.pre-phi3249 = phi i64 [ %.pre3248, %._crit_edge3240 ], [ %2619, %2618 ]
  %2628 = phi float [ %2616, %._crit_edge3240 ], [ %2621, %2618 ]
  %2629 = getelementptr inbounds float, ptr %51, i64 %.pre-phi3249
  %2630 = load float, ptr %2629, align 4, !tbaa !9
  %2631 = fcmp ult float %2630, 0.000000e+00
  %2632 = xor i1 %2613, %2631
  %.2874 = select i1 %2632, float %2612, float %2614
  store float %.2874, ptr %2629, align 4, !tbaa !9
  br label %2633

2633:                                             ; preds = %2618, %2627, %2626
  %2634 = phi float [ %2621, %2618 ], [ %2628, %2627 ], [ %2616, %2626 ]
  %2635 = icmp ult i64 %indvars.iv3034, %indvars.iv3039
  br i1 %2635, label %2636, label %2639

2636:                                             ; preds = %2633
  %gep3321 = getelementptr float, ptr %invariant.gep3320, i64 %indvars.iv3034
  %2637 = load float, ptr %gep3321, align 4, !tbaa !9
  %2638 = fneg float %2637
  store float %2638, ptr %gep3321, align 4, !tbaa !9
  br label %2639

2639:                                             ; preds = %2633, %2636
  %indvars.iv.next3035 = add nuw nsw i64 %indvars.iv3034, 1
  %exitcond3038.not = icmp eq i64 %indvars.iv.next3035, %wide.trip.count3037
  br i1 %exitcond3038.not, label %._crit_edge2613, label %2615, !llvm.loop !94

._crit_edge2613:                                  ; preds = %2639, %2602
  %2640 = phi float [ %2608, %2602 ], [ %2634, %2639 ]
  %storemerge2288.lcssa = phi i32 [ 1, %2602 ], [ %2599, %2639 ]
  %indvars.iv.next3040 = add nuw nsw i64 %indvars.iv3039, 1
  %exitcond3043.not = icmp eq i64 %indvars.iv.next3040, %wide.trip.count3042
  br i1 %exitcond3043.not, label %..loopexit2370_crit_edge, label %2602, !llvm.loop !95

2641:                                             ; preds = %._crit_edge2608
  %2642 = load i32, ptr %39, align 4, !tbaa !5
  %2643 = add nsw i32 %2642, -1
  store i32 %2643, ptr %28, align 4, !tbaa !5
  store i32 %2643, ptr %29, align 4, !tbaa !5
  %2644 = shl i32 %49, 1
  %2645 = or disjoint i32 %2644, 1
  %2646 = sext i32 %2645 to i64
  %2647 = getelementptr inbounds float, ptr %51, i64 %2646
  call void @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %2647, ptr noundef nonnull %14) #7
  %.pre3192 = load i32, ptr %7, align 4, !tbaa !5
  br label %.loopexit2370

..loopexit2370_crit_edge:                         ; preds = %._crit_edge2613
  store float %2640, ptr %30, align 4, !tbaa !9
  store float %2612, ptr %34, align 4, !tbaa !9
  store i32 %.pre3193, ptr %29, align 4, !tbaa !5
  store i32 %storemerge2288.lcssa, ptr %35, align 4, !tbaa !5
  br label %.loopexit2370

.loopexit2370:                                    ; preds = %2596, %..loopexit2370_crit_edge, %2641
  %2648 = phi i32 [ %.pre3193, %2596 ], [ %.pre3193, %..loopexit2370_crit_edge ], [ %.pre3192, %2641 ]
  %2649 = load i32, ptr %16, align 4, !tbaa !5
  %2650 = shl i32 %2648, 1
  %2651 = sub nsw i32 %2649, %2650
  store i32 %2651, ptr %28, align 4, !tbaa !5
  %2652 = sext i32 %2648 to i64
  %2653 = getelementptr float, ptr %52, i64 %2652
  %2654 = getelementptr i8, ptr %2653, i64 4
  %2655 = or disjoint i32 %2650, 1
  %2656 = sext i32 %2655 to i64
  %2657 = getelementptr inbounds float, ptr %52, i64 %2656
  call void @sgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %2654, ptr noundef nonnull %2657, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %2658 = load i32, ptr %7, align 4, !tbaa !5
  %2659 = shl i32 %2658, 1
  %2660 = or disjoint i32 %2659, 1
  %2661 = sext i32 %2660 to i64
  %2662 = getelementptr inbounds float, ptr %52, i64 %2661
  call void @slacpy_(ptr noundef nonnull @.str.17, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %2662, ptr noundef nonnull %7) #7
  %2663 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %2663, ptr %28, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22732622 = icmp slt i32 %2663, 1
  br i1 %.not22732622, label %._crit_edge2626, label %.lr.ph2625

.lr.ph2625:                                       ; preds = %.loopexit2370
  %2664 = add i32 %49, 1
  %2665 = add i32 %46, 1
  br label %2666

2666:                                             ; preds = %.lr.ph2625, %2666
  %2667 = phi i32 [ 1, %.lr.ph2625 ], [ %2678, %2666 ]
  %storemerge22722623.neg = phi i32 [ -1, %.lr.ph2625 ], [ %.neg2879, %2666 ]
  %2668 = load i32, ptr %39, align 4, !tbaa !5
  %2669 = add i32 %storemerge22722623.neg, 1
  %2670 = add i32 %2669, %2668
  store i32 %2670, ptr %29, align 4, !tbaa !5
  %2671 = mul i32 %2667, %2664
  %2672 = sext i32 %2671 to i64
  %2673 = getelementptr inbounds float, ptr %51, i64 %2672
  %2674 = mul i32 %2667, %2665
  %2675 = sext i32 %2674 to i64
  %2676 = getelementptr inbounds float, ptr %48, i64 %2675
  call void @scopy_(ptr noundef nonnull %29, ptr noundef %2673, ptr noundef nonnull %14, ptr noundef %2676, ptr noundef nonnull @c__1) #7
  %2677 = load i32, ptr %35, align 4, !tbaa !5
  %.neg2879 = xor i32 %2677, -1
  %2678 = add nsw i32 %2677, 1
  store i32 %2678, ptr %35, align 4, !tbaa !5
  %2679 = load i32, ptr %28, align 4, !tbaa !5
  %.not2273.not = icmp slt i32 %2677, %2679
  br i1 %.not2273.not, label %2666, label %._crit_edge2626, !llvm.loop !96

._crit_edge2626:                                  ; preds = %2666, %.loopexit2370
  br i1 %879, label %2680, label %2720

2680:                                             ; preds = %._crit_edge2626
  %2681 = fdiv float %187, %185
  %sqrtf2274 = call float @sqrtf(float noundef %2681) #3
  store float %sqrtf2274, ptr %41, align 4, !tbaa !9
  %2682 = load i32, ptr %39, align 4, !tbaa !5
  %.not22752630 = icmp slt i32 %2682, 2
  br i1 %.not22752630, label %.loopexit2369, label %.lr.ph2633

.lr.ph2633:                                       ; preds = %2680
  %2683 = add i32 %46, 1
  %2684 = sext i32 %46 to i64
  %2685 = add nuw i32 %2682, 1
  %wide.trip.count3052 = zext i32 %2685 to i64
  br label %2686

2686:                                             ; preds = %.lr.ph2633, %2719
  %indvars.iv3049 = phi i64 [ 2, %.lr.ph2633 ], [ %indvars.iv.next3050, %2719 ]
  %indvars3051 = trunc i64 %indvars.iv3049 to i32
  %2687 = mul nsw i64 %indvars.iv3049, %2684
  %2688 = mul nsw i32 %46, %indvars3051
  %2689 = sext i32 %2688 to i64
  %2690 = getelementptr float, ptr %48, i64 %indvars.iv3049
  %2691 = getelementptr float, ptr %2690, i64 %2689
  %invariant.gep3322 = getelementptr float, ptr %48, i64 %indvars.iv3049
  %invariant.gep3324 = getelementptr float, ptr %48, i64 %2687
  br label %2692

2692:                                             ; preds = %2686, %2716
  %indvars.iv3044 = phi i64 [ 1, %2686 ], [ %indvars.iv.next3045, %2716 ]
  %2693 = trunc nuw nsw i64 %indvars.iv3044 to i32
  %2694 = mul i32 %2683, %2693
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds float, ptr %48, i64 %2695
  %2697 = load float, ptr %2696, align 4, !tbaa !9
  %2698 = fcmp oge float %2697, 0.000000e+00
  %2699 = fneg float %2697
  %2700 = select i1 %2698, float %2697, float %2699
  %2701 = load float, ptr %2691, align 4, !tbaa !9
  %2702 = fcmp oge float %2701, 0.000000e+00
  %2703 = fneg float %2701
  %2704 = select i1 %2702, float %2701, float %2703
  %2705 = fcmp ole float %2700, %2704
  %2706 = select i1 %2705, float %2700, float %2704
  %2707 = fmul float %sqrtf2274, %2706
  %2708 = mul nsw i64 %indvars.iv3044, %2684
  %gep3323 = getelementptr float, ptr %invariant.gep3322, i64 %2708
  %2709 = load float, ptr %gep3323, align 4, !tbaa !9
  %2710 = fcmp ult float %2709, 0.000000e+00
  %2711 = fcmp oge float %2707, 0.000000e+00
  %.neg2287 = fneg float %2707
  br i1 %2710, label %2714, label %2712

2712:                                             ; preds = %2692
  %2713 = select i1 %2711, float %2707, float %.neg2287
  br label %2716

2714:                                             ; preds = %2692
  %2715 = select i1 %2711, float %.neg2287, float %2707
  br label %2716

2716:                                             ; preds = %2714, %2712
  %2717 = phi float [ %2713, %2712 ], [ %2715, %2714 ]
  %2718 = fneg float %2717
  %gep3325 = getelementptr float, ptr %invariant.gep3324, i64 %indvars.iv3044
  store float %2718, ptr %gep3325, align 4, !tbaa !9
  %indvars.iv.next3045 = add nuw nsw i64 %indvars.iv3044, 1
  %exitcond3048.not = icmp eq i64 %indvars.iv.next3045, %indvars.iv3049
  br i1 %exitcond3048.not, label %2719, label %2692, !llvm.loop !97

2719:                                             ; preds = %2716
  %indvars.iv.next3050 = add nuw nsw i64 %indvars.iv3049, 1
  %exitcond3053.not = icmp eq i64 %indvars.iv.next3050, %wide.trip.count3052
  br i1 %exitcond3053.not, label %..loopexit2369_crit_edge, label %2686, !llvm.loop !98

2720:                                             ; preds = %._crit_edge2626
  %2721 = load i32, ptr %39, align 4, !tbaa !5
  %2722 = add nsw i32 %2721, -1
  store i32 %2722, ptr %28, align 4, !tbaa !5
  store i32 %2722, ptr %29, align 4, !tbaa !5
  %2723 = shl i32 %46, 1
  %2724 = or disjoint i32 %2723, 1
  %2725 = sext i32 %2724 to i64
  %2726 = getelementptr inbounds float, ptr %48, i64 %2725
  call void @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef nonnull %2726, ptr noundef nonnull %12) #7
  %.pre3194 = load i32, ptr %39, align 4, !tbaa !5
  br label %.loopexit2369

..loopexit2369_crit_edge:                         ; preds = %2719
  %2727 = add nsw i32 %2682, -1
  store i32 %2727, ptr %29, align 4, !tbaa !5
  store i32 %indvars3051, ptr %35, align 4, !tbaa !5
  store float %2697, ptr %30, align 4, !tbaa !9
  store float %2707, ptr %34, align 4, !tbaa !9
  br label %.loopexit2369

.loopexit2369:                                    ; preds = %2680, %..loopexit2369_crit_edge, %2720
  %2728 = phi i32 [ %2682, %2680 ], [ %2682, %..loopexit2369_crit_edge ], [ %.pre3194, %2720 ]
  %2729 = load i32, ptr %16, align 4, !tbaa !5
  %2730 = load i32, ptr %7, align 4, !tbaa !5
  %2731 = add i32 %2728, 2
  %2732 = mul i32 %2731, %2730
  %2733 = sub i32 %2729, %2732
  store i32 %2733, ptr %28, align 4, !tbaa !5
  %2734 = sext i32 %2732 to i64
  %2735 = getelementptr float, ptr %52, i64 %2734
  %2736 = getelementptr i8, ptr %2735, i64 4
  call void @sgesvj_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str, ptr noundef nonnull @.str.3, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %10, ptr noundef nonnull %7, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %2736, ptr noundef nonnull %28, ptr noundef nonnull %18) #7
  %2737 = load i32, ptr %7, align 4, !tbaa !5
  %2738 = load i32, ptr %39, align 4, !tbaa !5
  %2739 = add i32 %2738, 2
  %2740 = mul i32 %2739, %2737
  %2741 = sext i32 %2740 to i64
  %2742 = getelementptr float, ptr %52, i64 %2741
  %2743 = getelementptr i8, ptr %2742, i64 4
  %2744 = load float, ptr %2743, align 4, !tbaa !9
  store float %2744, ptr %40, align 4, !tbaa !9
  %2745 = getelementptr i8, ptr %2742, i64 8
  %2746 = load float, ptr %2745, align 4, !tbaa !9
  %2747 = fcmp ult float %2746, 0.000000e+00
  %2748 = fpext float %2746 to double
  br i1 %2747, label %2752, label %2749

2749:                                             ; preds = %.loopexit2369
  %2750 = fadd double %2748, 5.000000e-01
  %2751 = call double @llvm.floor.f64(double %2750)
  br label %2756

2752:                                             ; preds = %.loopexit2369
  %2753 = fsub double 5.000000e-01, %2748
  %2754 = call double @llvm.floor.f64(double %2753)
  %2755 = fneg double %2754
  br label %2756

2756:                                             ; preds = %2752, %2749
  %2757 = phi double [ %2751, %2749 ], [ %2755, %2752 ]
  %2758 = icmp slt i32 %2738, %2737
  br i1 %2758, label %2759, label %2780

2759:                                             ; preds = %2756
  %2760 = sub nsw i32 %2737, %2738
  store i32 %2760, ptr %28, align 4, !tbaa !5
  %2761 = add i32 %49, 1
  %2762 = add i32 %2761, %2738
  %2763 = sext i32 %2762 to i64
  %2764 = getelementptr inbounds float, ptr %51, i64 %2763
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2764, ptr noundef nonnull %14) #7
  %2765 = load i32, ptr %7, align 4, !tbaa !5
  %2766 = load i32, ptr %39, align 4, !tbaa !5
  %2767 = sub nsw i32 %2765, %2766
  store i32 %2767, ptr %28, align 4, !tbaa !5
  %2768 = add nsw i32 %2766, 1
  %2769 = mul nsw i32 %2768, %49
  %2770 = sext i32 %2769 to i64
  %2771 = getelementptr float, ptr %51, i64 %2770
  %2772 = getelementptr i8, ptr %2771, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2772, ptr noundef nonnull %14) #7
  %2773 = load i32, ptr %7, align 4, !tbaa !5
  %2774 = load i32, ptr %39, align 4, !tbaa !5
  %2775 = sub nsw i32 %2773, %2774
  store i32 %2775, ptr %28, align 4, !tbaa !5
  store i32 %2775, ptr %29, align 4, !tbaa !5
  %2776 = add nsw i32 %2774, 1
  %2777 = mul i32 %2776, %2761
  %2778 = sext i32 %2777 to i64
  %2779 = getelementptr inbounds float, ptr %51, i64 %2778
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %2779, ptr noundef nonnull %14) #7
  %.pre3195 = load i32, ptr %7, align 4, !tbaa !5
  %.pre3196 = load i32, ptr %39, align 4, !tbaa !5
  %.pre3230 = add i32 %.pre3196, 2
  %.pre3232 = mul i32 %.pre3230, %.pre3195
  br label %2780

2780:                                             ; preds = %2759, %2756
  %.pre-phi3233 = phi i32 [ %.pre3232, %2759 ], [ %2740, %2756 ]
  %2781 = phi i32 [ %.pre3196, %2759 ], [ %2738, %2756 ]
  %2782 = phi i32 [ %.pre3195, %2759 ], [ %2737, %2756 ]
  %2783 = load i32, ptr %16, align 4, !tbaa !5
  %.neg2880 = sub i32 -2, %2781
  %.neg2881 = mul i32 %.neg2880, %2782
  %.neg2359 = sub i32 %2783, %2781
  %2784 = add i32 %.neg2359, %.neg2881
  store i32 %2784, ptr %28, align 4, !tbaa !5
  %2785 = shl i32 %2782, 1
  %2786 = or disjoint i32 %2785, 1
  %2787 = sext i32 %2786 to i64
  %2788 = getelementptr inbounds float, ptr %52, i64 %2787
  %2789 = sext i32 %2782 to i64
  %2790 = getelementptr float, ptr %52, i64 %2789
  %2791 = getelementptr i8, ptr %2790, i64 4
  %2792 = add nsw i32 %.pre-phi3233, %2781
  %2793 = sext i32 %2792 to i64
  %2794 = getelementptr float, ptr %52, i64 %2793
  %2795 = getelementptr i8, ptr %2794, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.9, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull %39, ptr noundef nonnull %2788, ptr noundef nonnull %7, ptr noundef %2791, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %2795, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  %2796 = load i32, ptr %7, align 4, !tbaa !5
  %2797 = sitofp i32 %2796 to float
  %2798 = fpext float %2797 to double
  %2799 = call double @sqrt(double noundef %2798) #7
  %2800 = fpext float %185 to double
  %2801 = fmul double %2799, %2800
  %2802 = fptrunc double %2801 to float
  store float %2802, ptr %34, align 4, !tbaa !9
  %2803 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %2803, ptr %28, align 4, !tbaa !5
  %invariant.gep2649 = getelementptr i8, ptr %51, i64 4
  %.not22762651 = icmp slt i32 %2803, 1
  br i1 %.not22762651, label %._crit_edge2655, label %.lr.ph2654.preheader

.lr.ph2654.preheader:                             ; preds = %2780
  %2804 = sext i32 %49 to i64
  %2805 = add nsw i64 %2804, %50
  %2806 = shl nsw i64 %2805, 2
  %2807 = add i64 %2806, %27
  %2808 = add i64 %2807, 8
  %2809 = shl nsw i64 %2804, 2
  br label %.lr.ph2654

.lr.ph2654:                                       ; preds = %.lr.ph2654.preheader, %2901
  %indvar3455 = phi i64 [ 0, %.lr.ph2654.preheader ], [ %indvar.next3456, %2901 ]
  %indvars.iv3064 = phi i64 [ 1, %.lr.ph2654.preheader ], [ %indvars.iv.next3065, %2901 ]
  %2810 = mul i64 %2809, %indvar3455
  %2811 = load i32, ptr %7, align 4, !tbaa !5
  %.not22822636 = icmp slt i32 %2811, 1
  br i1 %.not22822636, label %._crit_edge2640.thread, label %.lr.ph2639

._crit_edge2640.thread:                           ; preds = %.lr.ph2654
  store i32 %2811, ptr %29, align 4, !tbaa !5
  br label %._crit_edge2640.._crit_edge2647_crit_edge

.lr.ph2639:                                       ; preds = %.lr.ph2654
  %2812 = mul nsw i64 %indvars.iv3064, %2804
  %2813 = load i32, ptr %39, align 4, !tbaa !5
  %2814 = add i32 %2813, 2
  %2815 = mul i32 %2814, %2811
  %invariant.gep3326 = getelementptr float, ptr %51, i64 %2812
  %2816 = zext nneg i32 %2811 to i64
  %xtraiter3656 = and i64 %2816, 1
  %2817 = icmp eq i32 %2811, 1
  br i1 %2817, label %._crit_edge2640.unr-lcssa, label %.lr.ph2639.new

.lr.ph2639.new:                                   ; preds = %.lr.ph2639
  %unroll_iter = and i64 %2816, 2147483646
  %invariant.gep3744 = getelementptr i8, ptr %invariant.gep3326, i64 4
  br label %2818

2818:                                             ; preds = %2818, %.lr.ph2639.new
  %indvars.iv3054 = phi i64 [ 1, %.lr.ph2639.new ], [ %indvars.iv.next3055.1, %2818 ]
  %niter = phi i64 [ 0, %.lr.ph2639.new ], [ %niter.next.1, %2818 ]
  %gep3327 = getelementptr float, ptr %invariant.gep3326, i64 %indvars.iv3054
  %2819 = load float, ptr %gep3327, align 4, !tbaa !9
  %2820 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv3054
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = add i32 %2821, %2813
  %2823 = add i32 %2822, %2815
  %2824 = sext i32 %2823 to i64
  %2825 = getelementptr inbounds float, ptr %52, i64 %2824
  store float %2819, ptr %2825, align 4, !tbaa !9
  %gep3745 = getelementptr float, ptr %invariant.gep3744, i64 %indvars.iv3054
  %2826 = load float, ptr %gep3745, align 4, !tbaa !9
  %2827 = getelementptr i32, ptr %17, i64 %indvars.iv3054
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = add i32 %2828, %2813
  %2830 = add i32 %2829, %2815
  %2831 = sext i32 %2830 to i64
  %2832 = getelementptr inbounds float, ptr %52, i64 %2831
  store float %2826, ptr %2832, align 4, !tbaa !9
  %indvars.iv.next3055.1 = add nuw nsw i64 %indvars.iv3054, 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 %._crit_edge2640.unr-lcssa, label %2818, !llvm.loop !99

._crit_edge2640.unr-lcssa:                        ; preds = %2818, %.lr.ph2639
  %indvars.iv3054.unr = phi i64 [ 1, %.lr.ph2639 ], [ %indvars.iv.next3055.1, %2818 ]
  %lcmp.mod3657.not = icmp eq i64 %xtraiter3656, 0
  br i1 %lcmp.mod3657.not, label %._crit_edge2640, label %._crit_edge2640.epilog-lcssa

._crit_edge2640.epilog-lcssa:                     ; preds = %._crit_edge2640.unr-lcssa
  %gep3327.epil = getelementptr float, ptr %invariant.gep3326, i64 %indvars.iv3054.unr
  %2833 = load float, ptr %gep3327.epil, align 4, !tbaa !9
  %2834 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv3054.unr
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = add i32 %2835, %2813
  %2837 = add i32 %2836, %2815
  %2838 = sext i32 %2837 to i64
  %2839 = getelementptr inbounds float, ptr %52, i64 %2838
  store float %2833, ptr %2839, align 4, !tbaa !9
  br label %._crit_edge2640

._crit_edge2640:                                  ; preds = %._crit_edge2640.unr-lcssa, %._crit_edge2640.epilog-lcssa
  store i32 %2811, ptr %29, align 4, !tbaa !5
  br i1 %.not22822636, label %._crit_edge2640.._crit_edge2647_crit_edge, label %.lr.ph2646

._crit_edge2640.._crit_edge2647_crit_edge:        ; preds = %._crit_edge2640.thread, %._crit_edge2640
  %.pre3246 = mul nsw i64 %indvars.iv3064, %2804
  br label %._crit_edge2647

.lr.ph2646:                                       ; preds = %._crit_edge2640
  %2840 = load i32, ptr %39, align 4, !tbaa !5
  %2841 = add i32 %2840, 2
  %2842 = mul i32 %2841, %2811
  %2843 = mul nsw i64 %indvars.iv3064, %2804
  %2844 = add nuw i32 %2811, 1
  %wide.trip.count3062 = zext i32 %2844 to i64
  %invariant.gep3328 = getelementptr float, ptr %51, i64 %2843
  %2845 = zext nneg i32 %2811 to i64
  %min.iters.check3459 = icmp ult i32 %2811, 16
  br i1 %min.iters.check3459, label %scalar.ph3458.preheader, label %vector.scevcheck3453

vector.scevcheck3453:                             ; preds = %.lr.ph2646
  %2846 = zext nneg i32 %2811 to i64
  %2847 = add nsw i64 %2846, -1
  %2848 = add i32 %2840, 1
  %2849 = add i32 %2848, %2842
  %2850 = trunc nsw i64 %2847 to i32
  %2851 = add i32 %2849, %2850
  %2852 = icmp slt i32 %2851, %2849
  %2853 = icmp ugt i64 %2847, 4294967295
  %2854 = or i1 %2852, %2853
  br i1 %2854, label %scalar.ph3458.preheader, label %vector.memcheck3454

vector.memcheck3454:                              ; preds = %vector.scevcheck3453
  %2855 = add i32 %2840, 1
  %2856 = add i32 %2855, %2842
  %2857 = sext i32 %2856 to i64
  %2858 = shl nsw i64 %2857, 2
  %2859 = add i64 %2808, %2810
  %2860 = add i64 %2858, %26
  %2861 = sub i64 %2859, %2860
  %diff.check = icmp ult i64 %2861, 32
  br i1 %diff.check, label %scalar.ph3458.preheader, label %vector.ph3460

vector.ph3460:                                    ; preds = %vector.memcheck3454
  %n.vec3462 = and i64 %2845, 2147483640
  %ind.end3463 = or disjoint i64 %n.vec3462, 1
  br label %vector.body3465

vector.body3465:                                  ; preds = %vector.body3465, %vector.ph3460
  %index3466 = phi i64 [ 0, %vector.ph3460 ], [ %index.next3471, %vector.body3465 ]
  %offset.idx3467 = or disjoint i64 %index3466, 1
  %2862 = trunc i64 %index3466 to i32
  %2863 = or disjoint i32 %2862, 1
  %2864 = add i32 %2840, %2863
  %2865 = add i32 %2864, %2842
  %2866 = sext i32 %2865 to i64
  %2867 = getelementptr inbounds float, ptr %52, i64 %2866
  %2868 = getelementptr inbounds i8, ptr %2867, i64 16
  %wide.load3469 = load <4 x float>, ptr %2867, align 4, !tbaa !9
  %wide.load3470 = load <4 x float>, ptr %2868, align 4, !tbaa !9
  %2869 = getelementptr float, ptr %invariant.gep3328, i64 %offset.idx3467
  %2870 = getelementptr i8, ptr %2869, i64 16
  store <4 x float> %wide.load3469, ptr %2869, align 4, !tbaa !9
  store <4 x float> %wide.load3470, ptr %2870, align 4, !tbaa !9
  %index.next3471 = add nuw i64 %index3466, 8
  %2871 = icmp eq i64 %index.next3471, %n.vec3462
  br i1 %2871, label %middle.block3457, label %vector.body3465, !llvm.loop !100

middle.block3457:                                 ; preds = %vector.body3465
  %cmp.n3472 = icmp eq i64 %n.vec3462, %2845
  br i1 %cmp.n3472, label %._crit_edge2647, label %scalar.ph3458.preheader

scalar.ph3458.preheader:                          ; preds = %middle.block3457, %vector.memcheck3454, %vector.scevcheck3453, %.lr.ph2646
  %indvars.iv3059.ph = phi i64 [ 1, %vector.memcheck3454 ], [ 1, %vector.scevcheck3453 ], [ 1, %.lr.ph2646 ], [ %ind.end3463, %middle.block3457 ]
  %2872 = zext nneg i32 %2811 to i64
  %2873 = and i32 %2811, 1
  %lcmp.mod3659.not = icmp eq i32 %2873, 0
  br i1 %lcmp.mod3659.not, label %scalar.ph3458.prol.loopexit, label %scalar.ph3458.prol

scalar.ph3458.prol:                               ; preds = %scalar.ph3458.preheader
  %2874 = trunc nuw nsw i64 %indvars.iv3059.ph to i32
  %2875 = add i32 %2840, %2874
  %2876 = add i32 %2875, %2842
  %2877 = sext i32 %2876 to i64
  %2878 = getelementptr inbounds float, ptr %52, i64 %2877
  %2879 = load float, ptr %2878, align 4, !tbaa !9
  %gep3329.prol = getelementptr float, ptr %invariant.gep3328, i64 %indvars.iv3059.ph
  store float %2879, ptr %gep3329.prol, align 4, !tbaa !9
  %indvars.iv.next3060.prol = add nuw nsw i64 %indvars.iv3059.ph, 1
  br label %scalar.ph3458.prol.loopexit

scalar.ph3458.prol.loopexit:                      ; preds = %scalar.ph3458.prol, %scalar.ph3458.preheader
  %indvars.iv3059.unr = phi i64 [ %indvars.iv3059.ph, %scalar.ph3458.preheader ], [ %indvars.iv.next3060.prol, %scalar.ph3458.prol ]
  %2880 = icmp eq i64 %indvars.iv3059.ph, %2872
  br i1 %2880, label %._crit_edge2647, label %scalar.ph3458

scalar.ph3458:                                    ; preds = %scalar.ph3458.prol.loopexit, %scalar.ph3458
  %indvars.iv3059 = phi i64 [ %indvars.iv.next3060.1, %scalar.ph3458 ], [ %indvars.iv3059.unr, %scalar.ph3458.prol.loopexit ]
  %2881 = trunc nuw nsw i64 %indvars.iv3059 to i32
  %2882 = add i32 %2840, %2881
  %2883 = add i32 %2882, %2842
  %2884 = sext i32 %2883 to i64
  %2885 = getelementptr inbounds float, ptr %52, i64 %2884
  %2886 = load float, ptr %2885, align 4, !tbaa !9
  %gep3329 = getelementptr float, ptr %invariant.gep3328, i64 %indvars.iv3059
  store float %2886, ptr %gep3329, align 4, !tbaa !9
  %indvars.iv.next3060 = add nuw nsw i64 %indvars.iv3059, 1
  %2887 = trunc nuw nsw i64 %indvars.iv.next3060 to i32
  %2888 = add i32 %2840, %2887
  %2889 = add i32 %2888, %2842
  %2890 = sext i32 %2889 to i64
  %2891 = getelementptr inbounds float, ptr %52, i64 %2890
  %2892 = load float, ptr %2891, align 4, !tbaa !9
  %gep3329.1 = getelementptr float, ptr %invariant.gep3328, i64 %indvars.iv.next3060
  store float %2892, ptr %gep3329.1, align 4, !tbaa !9
  %indvars.iv.next3060.1 = add nuw nsw i64 %indvars.iv3059, 2
  %exitcond3063.not.1 = icmp eq i64 %indvars.iv.next3060.1, %wide.trip.count3062
  br i1 %exitcond3063.not.1, label %._crit_edge2647, label %scalar.ph3458, !llvm.loop !101

._crit_edge2647:                                  ; preds = %scalar.ph3458.prol.loopexit, %scalar.ph3458, %middle.block3457, %._crit_edge2640.._crit_edge2647_crit_edge
  %.pre-phi3247 = phi i64 [ %.pre3246, %._crit_edge2640.._crit_edge2647_crit_edge ], [ %2843, %middle.block3457 ], [ %2843, %scalar.ph3458 ], [ %2843, %scalar.ph3458.prol.loopexit ]
  %storemerge2283.lcssa = phi i32 [ 1, %._crit_edge2640.._crit_edge2647_crit_edge ], [ %2844, %middle.block3457 ], [ %2844, %scalar.ph3458 ], [ %2844, %scalar.ph3458.prol.loopexit ]
  store i32 %storemerge2283.lcssa, ptr %35, align 4, !tbaa !5
  %gep2650 = getelementptr float, ptr %invariant.gep2649, i64 %.pre-phi3247
  %2893 = call float @snrm2_(ptr noundef nonnull %7, ptr noundef %gep2650, ptr noundef nonnull @c__1) #7
  %2894 = fdiv float 1.000000e+00, %2893
  store float %2894, ptr %41, align 4, !tbaa !9
  %2895 = load float, ptr %34, align 4, !tbaa !9
  %2896 = fsub float 1.000000e+00, %2895
  %2897 = fcmp olt float %2894, %2896
  %2898 = fadd float %2895, 1.000000e+00
  %2899 = fcmp ogt float %2894, %2898
  %or.cond2332 = or i1 %2897, %2899
  br i1 %or.cond2332, label %2900, label %2901

2900:                                             ; preds = %._crit_edge2647
  call void @sscal_(ptr noundef nonnull %7, ptr noundef nonnull %41, ptr noundef %gep2650, ptr noundef nonnull @c__1) #7
  br label %2901

2901:                                             ; preds = %._crit_edge2647, %2900
  %indvars.iv.next3065 = add nuw nsw i64 %indvars.iv3064, 1
  %2902 = load i32, ptr %28, align 4, !tbaa !5
  %2903 = sext i32 %2902 to i64
  %.not2276.not = icmp slt i64 %indvars.iv3064, %2903
  %indvar.next3456 = add i64 %indvar3455, 1
  br i1 %.not2276.not, label %.lr.ph2654, label %._crit_edge2655, !llvm.loop !102

._crit_edge2655:                                  ; preds = %2901, %2780
  %2904 = load i32, ptr %39, align 4, !tbaa !5
  %2905 = load i32, ptr %6, align 4, !tbaa !5
  %2906 = icmp slt i32 %2904, %2905
  br i1 %2906, label %2907, label %2932

2907:                                             ; preds = %._crit_edge2655
  %2908 = sub nsw i32 %2905, %2904
  store i32 %2908, ptr %28, align 4, !tbaa !5
  %2909 = add i32 %46, 1
  %2910 = add i32 %2909, %2904
  %2911 = sext i32 %2910 to i64
  %2912 = getelementptr inbounds float, ptr %48, i64 %2911
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %39, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2912, ptr noundef nonnull %12) #7
  %2913 = load i32, ptr %39, align 4, !tbaa !5
  %2914 = load i32, ptr %36, align 4, !tbaa !5
  %2915 = icmp slt i32 %2913, %2914
  br i1 %2915, label %2916, label %2932

2916:                                             ; preds = %2907
  %2917 = sub nsw i32 %2914, %2913
  store i32 %2917, ptr %28, align 4, !tbaa !5
  %2918 = add nsw i32 %2913, 1
  %2919 = mul nsw i32 %2918, %46
  %2920 = sext i32 %2919 to i64
  %2921 = getelementptr float, ptr %48, i64 %2920
  %2922 = getelementptr i8, ptr %2921, i64 4
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b34, ptr noundef %2922, ptr noundef nonnull %12) #7
  %2923 = load i32, ptr %6, align 4, !tbaa !5
  %2924 = load i32, ptr %39, align 4, !tbaa !5
  %2925 = sub nsw i32 %2923, %2924
  store i32 %2925, ptr %28, align 4, !tbaa !5
  %2926 = load i32, ptr %36, align 4, !tbaa !5
  %2927 = sub nsw i32 %2926, %2924
  store i32 %2927, ptr %29, align 4, !tbaa !5
  %2928 = add nsw i32 %2924, 1
  %2929 = mul i32 %2928, %2909
  %2930 = sext i32 %2929 to i64
  %2931 = getelementptr inbounds float, ptr %48, i64 %2930
  call void @slaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b34, ptr noundef nonnull @c_b35, ptr noundef %2931, ptr noundef nonnull %12) #7
  br label %2932

2932:                                             ; preds = %2907, %2916, %._crit_edge2655
  %2933 = load i32, ptr %16, align 4, !tbaa !5
  %2934 = load i32, ptr %7, align 4, !tbaa !5
  %2935 = sub nsw i32 %2933, %2934
  store i32 %2935, ptr %28, align 4, !tbaa !5
  %2936 = sext i32 %2934 to i64
  %2937 = getelementptr float, ptr %52, i64 %2936
  %2938 = getelementptr i8, ptr %2937, i64 4
  call void @sormqr_(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.25, ptr noundef nonnull %6, ptr noundef nonnull %36, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %15, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %2938, ptr noundef nonnull %28, ptr noundef nonnull %33) #7
  br i1 %.01926.shrunk, label %2939, label %2948

2939:                                             ; preds = %2932
  %2940 = load i32, ptr %6, align 4, !tbaa !5
  %2941 = add nsw i32 %2940, -1
  store i32 %2941, ptr %28, align 4, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %2575, %2371, %2939
  %.01950.ph = phi float [ %1438, %2371 ], [ -1.000000e+00, %2575 ], [ -1.000000e+00, %2939 ]
  %.11948.ph = phi float [ %.01947, %2371 ], [ -1.000000e+00, %2575 ], [ -1.000000e+00, %2939 ]
  %.2.in.ph = phi double [ %.1.in, %2371 ], [ %2458, %2575 ], [ %2757, %2939 ]
  %2942 = load i32, ptr %7, align 4, !tbaa !5
  %2943 = shl i32 %2942, 1
  %2944 = or disjoint i32 %2943, 1
  %2945 = sext i32 %2944 to i64
  %2946 = getelementptr inbounds i32, ptr %53, i64 %2945
  %2947 = call i32 @slaswp_(ptr noundef nonnull %36, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull @c__1, ptr noundef nonnull %28, ptr noundef nonnull %2946, ptr noundef nonnull @c_n1) #7
  br label %2948

2948:                                             ; preds = %.sink.split, %2932, %._crit_edge2853, %._crit_edge2697
  %.01950 = phi float [ -1.000000e+00, %2932 ], [ -1.000000e+00, %._crit_edge2697 ], [ %1438, %._crit_edge2853 ], [ %.01950.ph, %.sink.split ]
  %.11948 = phi float [ -1.000000e+00, %2932 ], [ -1.000000e+00, %._crit_edge2697 ], [ %.01947, %._crit_edge2853 ], [ %.11948.ph, %.sink.split ]
  %.2.in = phi double [ %2757, %2932 ], [ %2458, %._crit_edge2697 ], [ %.1.in, %._crit_edge2853 ], [ %.2.in.ph, %.sink.split ]
  br i1 %.01927.shrunk, label %2949, label %.loopexit2361

2949:                                             ; preds = %2948
  %2950 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %2950, ptr %28, align 4, !tbaa !5
  %invariant.gep2854 = getelementptr i8, ptr %48, i64 4
  %invariant.gep2856 = getelementptr i8, ptr %51, i64 4
  store i32 1, ptr %35, align 4, !tbaa !5
  %.not22782858 = icmp slt i32 %2950, 1
  br i1 %.not22782858, label %.loopexit2361, label %.lr.ph2861

.lr.ph2861:                                       ; preds = %2949, %.lr.ph2861
  %storemerge22772859 = phi i32 [ %2956, %.lr.ph2861 ], [ 1, %2949 ]
  %2951 = mul nsw i32 %storemerge22772859, %46
  %2952 = sext i32 %2951 to i64
  %gep2855 = getelementptr float, ptr %invariant.gep2854, i64 %2952
  %2953 = mul nsw i32 %storemerge22772859, %49
  %2954 = sext i32 %2953 to i64
  %gep2857 = getelementptr float, ptr %invariant.gep2856, i64 %2954
  call void @sswap_(ptr noundef nonnull %7, ptr noundef %gep2855, ptr noundef nonnull @c__1, ptr noundef %gep2857, ptr noundef nonnull @c__1) #7
  %2955 = load i32, ptr %35, align 4, !tbaa !5
  %2956 = add nsw i32 %2955, 1
  store i32 %2956, ptr %35, align 4, !tbaa !5
  %2957 = load i32, ptr %28, align 4, !tbaa !5
  %.not2278.not = icmp slt i32 %2955, %2957
  br i1 %.not2278.not, label %.lr.ph2861, label %.loopexit2361, !llvm.loop !103

.loopexit2361:                                    ; preds = %.lr.ph2861, %2949, %1026, %1029, %1181, %._crit_edge2584, %2948, %._crit_edge2603, %1315
  %.11951 = phi float [ %.01950, %2948 ], [ -1.000000e+00, %1315 ], [ -1.000000e+00, %._crit_edge2603 ], [ -1.000000e+00, %1181 ], [ -1.000000e+00, %._crit_edge2584 ], [ -1.000000e+00, %1029 ], [ -1.000000e+00, %1026 ], [ %.01950, %2949 ], [ %.01950, %.lr.ph2861 ]
  %.21949 = phi float [ %.11948, %2948 ], [ -1.000000e+00, %1315 ], [ -1.000000e+00, %._crit_edge2603 ], [ -1.000000e+00, %1181 ], [ -1.000000e+00, %._crit_edge2584 ], [ -1.000000e+00, %1029 ], [ -1.000000e+00, %1026 ], [ %.11948, %2949 ], [ %.11948, %.lr.ph2861 ]
  %.3.in = phi double [ %.2.in, %2948 ], [ %1258, %1315 ], [ %1258, %._crit_edge2603 ], [ %.0.in, %1181 ], [ %.0.in, %._crit_edge2584 ], [ %1032, %1029 ], [ %1028, %1026 ], [ %.2.in, %2949 ], [ %.2.in, %.lr.ph2861 ]
  %.3 = fptosi double %.3.in to i32
  %2958 = load float, ptr %38, align 4, !tbaa !9
  %2959 = load float, ptr %10, align 4, !tbaa !9
  %2960 = fdiv float %188, %2959
  %2961 = load float, ptr %37, align 4, !tbaa !9
  %2962 = fmul float %2960, %2961
  %2963 = fcmp ugt float %2958, %2962
  br i1 %2963, label %2965, label %2964

2964:                                             ; preds = %.loopexit2361
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull @c__1, ptr noundef nonnull %10, ptr noundef nonnull %7, ptr noundef nonnull %33) #7
  br label %2965

2965:                                             ; preds = %2964, %.loopexit2361
  %2966 = phi float [ 1.000000e+00, %2964 ], [ %2961, %.loopexit2361 ]
  %2967 = phi float [ 1.000000e+00, %2964 ], [ %2958, %.loopexit2361 ]
  %2968 = load i32, ptr %39, align 4, !tbaa !5
  %2969 = load i32, ptr %7, align 4, !tbaa !5
  %2970 = icmp slt i32 %2968, %2969
  br i1 %2970, label %.lr.ph2867, label %.loopexit

.lr.ph2867:                                       ; preds = %2965
  %storemerge22792863 = add nsw i32 %2968, 1
  %smax = call i32 @llvm.smax.i32(i32 %storemerge22792863, i32 %2969)
  %2971 = sub i32 %smax, %2968
  %min.iters.check3586 = icmp ult i32 %2971, 8
  br i1 %min.iters.check3586, label %scalar.ph3585.preheader, label %vector.ph3587

vector.ph3587:                                    ; preds = %.lr.ph2867
  %n.vec3589 = and i32 %2971, -8
  %ind.end3590 = add i32 %storemerge22792863, %n.vec3589
  br label %vector.body3592

vector.body3592:                                  ; preds = %vector.body3592, %vector.ph3587
  %index3593 = phi i32 [ 0, %vector.ph3587 ], [ %index.next3595, %vector.body3592 ]
  %offset.idx3594 = add i32 %storemerge22792863, %index3593
  %2972 = sext i32 %offset.idx3594 to i64
  %2973 = getelementptr inbounds float, ptr %42, i64 %2972
  %2974 = getelementptr inbounds i8, ptr %2973, i64 16
  store <4 x float> zeroinitializer, ptr %2973, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %2974, align 4, !tbaa !9
  %index.next3595 = add nuw i32 %index3593, 8
  %2975 = icmp eq i32 %index.next3595, %n.vec3589
  br i1 %2975, label %middle.block3584, label %vector.body3592, !llvm.loop !104

middle.block3584:                                 ; preds = %vector.body3592
  %cmp.n3596 = icmp eq i32 %2971, %n.vec3589
  br i1 %cmp.n3596, label %.loopexit, label %scalar.ph3585.preheader

scalar.ph3585.preheader:                          ; preds = %middle.block3584, %.lr.ph2867
  %storemerge2279.in2869.ph = phi i32 [ %storemerge22792863, %.lr.ph2867 ], [ %ind.end3590, %middle.block3584 ]
  br label %scalar.ph3585

scalar.ph3585:                                    ; preds = %scalar.ph3585.preheader, %scalar.ph3585
  %storemerge2279.in2869 = phi i32 [ %storemerge2279, %scalar.ph3585 ], [ %storemerge2279.in2869.ph, %scalar.ph3585.preheader ]
  %2976 = sext i32 %storemerge2279.in2869 to i64
  %2977 = getelementptr inbounds float, ptr %42, i64 %2976
  store float 0.000000e+00, ptr %2977, align 4, !tbaa !9
  %storemerge2279 = add i32 %storemerge2279.in2869, 1
  %exitcond3171.not = icmp eq i32 %storemerge2279.in2869, %smax
  br i1 %exitcond3171.not, label %.loopexit, label %scalar.ph3585, !llvm.loop !105

.loopexit:                                        ; preds = %scalar.ph3585, %middle.block3584, %2965
  %2978 = load float, ptr %40, align 4, !tbaa !9
  %2979 = fmul float %2967, %2978
  store float %2979, ptr %15, align 4, !tbaa !9
  %2980 = getelementptr inbounds i8, ptr %15, i64 4
  store float %2966, ptr %2980, align 4, !tbaa !9
  br i1 %80, label %2981, label %2983

2981:                                             ; preds = %.loopexit
  %2982 = getelementptr inbounds i8, ptr %15, i64 8
  store float %.01944, ptr %2982, align 4, !tbaa !9
  br label %2983

2983:                                             ; preds = %2981, %.loopexit
  %or.cond49 = and i1 %881, %880
  br i1 %or.cond49, label %2984, label %2987

2984:                                             ; preds = %2983
  %2985 = getelementptr inbounds i8, ptr %15, i64 12
  store float %.11951, ptr %2985, align 4, !tbaa !9
  %2986 = getelementptr inbounds i8, ptr %15, i64 16
  store float %.21949, ptr %2986, align 4, !tbaa !9
  br label %2987

2987:                                             ; preds = %2984, %2983
  br i1 %535, label %2988, label %2991

2988:                                             ; preds = %2987
  %2989 = getelementptr inbounds i8, ptr %15, i64 20
  store float %.21956, ptr %2989, align 4, !tbaa !9
  %2990 = getelementptr inbounds i8, ptr %15, i64 24
  store float %.21932, ptr %2990, align 4, !tbaa !9
  br label %2991

2991:                                             ; preds = %2988, %2987
  store i32 %2968, ptr %17, align 4, !tbaa !5
  %2992 = getelementptr inbounds i8, ptr %17, i64 4
  store i32 %.3, ptr %2992, align 4, !tbaa !5
  %2993 = getelementptr inbounds i8, ptr %17, i64 8
  store i32 %.01925, ptr %2993, align 4, !tbaa !5
  br label %2994

2994:                                             ; preds = %313, %314, %2991, %261, %204, %176, %169
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

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

declare void @sgeqp3_(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 speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #4

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

declare void @sgesvj_(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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.floor.f64(double) #4

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

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

declare void @strsm_(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 @sswap_(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) #5

declare float @sqrtf(float) local_unnamed_addr

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

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

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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { 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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12, !19, !20}
!19 = !{!"llvm.loop.isvectorized", i32 1}
!20 = !{!"llvm.loop.unroll.runtime.disable"}
!21 = distinct !{!21, !12, !19}
!22 = distinct !{!22, !12}
!23 = !{!24}
!24 = distinct !{!24, !25}
!25 = distinct !{!25, !"LVerDomain"}
!26 = !{!27}
!27 = distinct !{!27, !25}
!28 = !{!29}
!29 = distinct !{!29, !25}
!30 = !{!24, !27}
!31 = distinct !{!31, !12, !19, !20}
!32 = distinct !{!32, !12, !19}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12}
!43 = distinct !{!43, !12}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12}
!47 = distinct !{!47, !12}
!48 = distinct !{!48, !12}
!49 = distinct !{!49, !12}
!50 = distinct !{!50, !12}
!51 = distinct !{!51, !12}
!52 = distinct !{!52, !12}
!53 = distinct !{!53, !12}
!54 = distinct !{!54, !12}
!55 = distinct !{!55, !12}
!56 = distinct !{!56, !12}
!57 = distinct !{!57, !12}
!58 = distinct !{!58, !12}
!59 = distinct !{!59, !12}
!60 = distinct !{!60, !12}
!61 = distinct !{!61, !12}
!62 = distinct !{!62, !63}
!63 = !{!"llvm.loop.unroll.disable"}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12}
!66 = distinct !{!66, !12}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12, !19, !20}
!70 = distinct !{!70, !12, !20, !19}
!71 = distinct !{!71, !12}
!72 = distinct !{!72, !12}
!73 = distinct !{!73, !12}
!74 = distinct !{!74, !12}
!75 = distinct !{!75, !12, !19, !20}
!76 = distinct !{!76, !12, !19}
!77 = distinct !{!77, !12}
!78 = distinct !{!78, !12}
!79 = distinct !{!79, !12, !19, !20}
!80 = distinct !{!80, !12, !19}
!81 = distinct !{!81, !12}
!82 = distinct !{!82, !12}
!83 = distinct !{!83, !12, !19, !20}
!84 = distinct !{!84, !12, !19}
!85 = distinct !{!85, !12}
!86 = distinct !{!86, !12}
!87 = distinct !{!87, !12, !19}
!88 = distinct !{!88, !12}
!89 = distinct !{!89, !12}
!90 = distinct !{!90, !12}
!91 = distinct !{!91, !12}
!92 = distinct !{!92, !12}
!93 = distinct !{!93, !12}
!94 = distinct !{!94, !12}
!95 = distinct !{!95, !12}
!96 = distinct !{!96, !12}
!97 = distinct !{!97, !12}
!98 = distinct !{!98, !12}
!99 = distinct !{!99, !12}
!100 = distinct !{!100, !12, !19, !20}
!101 = distinct !{!101, !12, !19}
!102 = distinct !{!102, !12}
!103 = distinct !{!103, !12}
!104 = distinct !{!104, !12, !19, !20}
!105 = distinct !{!105, !12, !20, !19}


; Effective O3 passes: ADCEPass,BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass