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

; 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 [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@c_b17 = external hidden global double, align 8
@c_b18 = external hidden global double, align 8
@c__1 = external hidden global i64, align 8
@c__0 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8

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

137:                                              ; preds = %14
  %138 = load i64, ptr %82, align 8, !tbaa !9
  %139 = icmp ne i64 %138, 0
  br i1 %139, label %146, label %140

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

144:                                              ; preds = %140
  %145 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -1, ptr %145, align 8, !tbaa !9
  br label %261

146:                                              ; preds = %140, %137, %14
  %147 = load i64, ptr %77, align 8, !tbaa !9
  %148 = icmp ne i64 %147, 0
  br i1 %148, label %158, label %149

149:                                              ; preds = %146
  %150 = load i64, ptr %81, align 8, !tbaa !9
  %151 = icmp ne i64 %150, 0
  br i1 %151, label %158, label %152

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

156:                                              ; preds = %152
  %157 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -2, ptr %157, align 8, !tbaa !9
  br label %260

158:                                              ; preds = %152, %149, %146
  %159 = load i64, ptr %80, align 8, !tbaa !9
  %160 = icmp ne i64 %159, 0
  br i1 %160, label %170, label %161

161:                                              ; preds = %158
  %162 = load i64, ptr %79, align 8, !tbaa !9
  %163 = icmp ne i64 %162, 0
  br i1 %163, label %170, label %164

164:                                              ; preds = %161
  %165 = load ptr, ptr %18, align 8, !tbaa !5
  %166 = call i64 @lsame_(ptr noundef %165, ptr noundef @.str.6)
  %167 = icmp ne i64 %166, 0
  br i1 %167, label %170, label %168

168:                                              ; preds = %164
  %169 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -3, ptr %169, align 8, !tbaa !9
  br label %259

170:                                              ; preds = %164, %161, %158
  %171 = load ptr, ptr %19, align 8, !tbaa !5
  %172 = load i64, ptr %171, align 8, !tbaa !9
  %173 = icmp slt i64 %172, 0
  br i1 %173, label %174, label %176

174:                                              ; preds = %170
  %175 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -4, ptr %175, align 8, !tbaa !9
  br label %258

176:                                              ; preds = %170
  %177 = load ptr, ptr %20, align 8, !tbaa !5
  %178 = load i64, ptr %177, align 8, !tbaa !9
  %179 = icmp slt i64 %178, 0
  br i1 %179, label %186, label %180

180:                                              ; preds = %176
  %181 = load ptr, ptr %20, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = load ptr, ptr %19, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = icmp sgt i64 %182, %184
  br i1 %185, label %186, label %188

186:                                              ; preds = %180, %176
  %187 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -5, ptr %187, align 8, !tbaa !9
  br label %257

188:                                              ; preds = %180
  %189 = load ptr, ptr %22, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = load ptr, ptr %19, align 8, !tbaa !5
  %192 = load i64, ptr %191, align 8, !tbaa !9
  %193 = icmp slt i64 %190, %192
  br i1 %193, label %194, label %196

194:                                              ; preds = %188
  %195 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -7, ptr %195, align 8, !tbaa !9
  br label %256

196:                                              ; preds = %188
  %197 = load ptr, ptr %24, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = icmp slt i64 %198, 0
  br i1 %199, label %200, label %202

200:                                              ; preds = %196
  %201 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -9, ptr %201, align 8, !tbaa !9
  br label %255

202:                                              ; preds = %196
  %203 = load i64, ptr %80, align 8, !tbaa !9
  %204 = icmp ne i64 %203, 0
  br i1 %204, label %205, label %211

205:                                              ; preds = %202
  %206 = load ptr, ptr %26, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = load ptr, ptr %20, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  %210 = icmp slt i64 %207, %209
  br i1 %210, label %220, label %211

211:                                              ; preds = %205, %202
  %212 = load i64, ptr %79, align 8, !tbaa !9
  %213 = icmp ne i64 %212, 0
  br i1 %213, label %214, label %222

214:                                              ; preds = %211
  %215 = load ptr, ptr %26, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = load ptr, ptr %24, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = icmp slt i64 %216, %218
  br i1 %219, label %220, label %222

220:                                              ; preds = %214, %205
  %221 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -11, ptr %221, align 8, !tbaa !9
  br label %254

222:                                              ; preds = %214, %211
  %223 = load i64, ptr %81, align 8, !tbaa !9
  %224 = icmp ne i64 %223, 0
  br i1 %224, label %225, label %232

225:                                              ; preds = %222
  %226 = load ptr, ptr %27, align 8, !tbaa !5
  %227 = getelementptr inbounds double, ptr %226, i64 1
  %228 = load double, ptr %227, align 8, !tbaa !11
  %229 = fcmp ole double %228, 1.000000e+00
  br i1 %229, label %230, label %232

230:                                              ; preds = %225
  %231 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -12, ptr %231, align 8, !tbaa !9
  br label %253

232:                                              ; preds = %225, %222
  %233 = load ptr, ptr %19, align 8, !tbaa !5
  %234 = load i64, ptr %233, align 8, !tbaa !9
  %235 = load ptr, ptr %20, align 8, !tbaa !5
  %236 = load i64, ptr %235, align 8, !tbaa !9
  %237 = add nsw i64 %234, %236
  store i64 %237, ptr %34, align 8, !tbaa !9
  %238 = load ptr, ptr %28, align 8, !tbaa !5
  %239 = load i64, ptr %238, align 8, !tbaa !9
  %240 = load i64, ptr %34, align 8, !tbaa !9
  %241 = icmp sge i64 %240, 6
  br i1 %241, label %242, label %244

242:                                              ; preds = %232
  %243 = load i64, ptr %34, align 8, !tbaa !9
  br label %245

244:                                              ; preds = %232
  br label %245

245:                                              ; preds = %244, %242
  %246 = phi i64 [ %243, %242 ], [ 6, %244 ]
  %247 = icmp slt i64 %239, %246
  br i1 %247, label %248, label %250

248:                                              ; preds = %245
  %249 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -13, ptr %249, align 8, !tbaa !9
  br label %252

250:                                              ; preds = %245
  %251 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 0, ptr %251, align 8, !tbaa !9
  br label %252

252:                                              ; preds = %250, %248
  br label %253

253:                                              ; preds = %252, %230
  br label %254

254:                                              ; preds = %253, %220
  br label %255

255:                                              ; preds = %254, %200
  br label %256

256:                                              ; preds = %255, %194
  br label %257

257:                                              ; preds = %256, %186
  br label %258

258:                                              ; preds = %257, %174
  br label %259

259:                                              ; preds = %258, %168
  br label %260

260:                                              ; preds = %259, %156
  br label %261

261:                                              ; preds = %260, %144
  %262 = load ptr, ptr %29, align 8, !tbaa !5
  %263 = load i64, ptr %262, align 8, !tbaa !9
  %264 = icmp ne i64 %263, 0
  br i1 %264, label %265, label %270

265:                                              ; preds = %261
  %266 = load ptr, ptr %29, align 8, !tbaa !5
  %267 = load i64, ptr %266, align 8, !tbaa !9
  %268 = sub nsw i64 0, %267
  store i64 %268, ptr %34, align 8, !tbaa !9
  %269 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %34)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

270:                                              ; preds = %261
  %271 = load ptr, ptr %19, align 8, !tbaa !5
  %272 = load i64, ptr %271, align 8, !tbaa !9
  %273 = icmp eq i64 %272, 0
  br i1 %273, label %278, label %274

274:                                              ; preds = %270
  %275 = load ptr, ptr %20, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = icmp eq i64 %276, 0
  br i1 %277, label %278, label %279

278:                                              ; preds = %274, %270
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

279:                                              ; preds = %274
  %280 = load i64, ptr %81, align 8, !tbaa !9
  %281 = icmp ne i64 %280, 0
  br i1 %281, label %282, label %286

282:                                              ; preds = %279
  %283 = load ptr, ptr %27, align 8, !tbaa !5
  %284 = getelementptr inbounds double, ptr %283, i64 1
  %285 = load double, ptr %284, align 8, !tbaa !11
  store double %285, ptr %66, align 8, !tbaa !11
  br label %305

286:                                              ; preds = %279
  %287 = load i64, ptr %77, align 8, !tbaa !9
  %288 = icmp ne i64 %287, 0
  br i1 %288, label %295, label %289

289:                                              ; preds = %286
  %290 = load i64, ptr %80, align 8, !tbaa !9
  %291 = icmp ne i64 %290, 0
  br i1 %291, label %295, label %292

292:                                              ; preds = %289
  %293 = load i64, ptr %79, align 8, !tbaa !9
  %294 = icmp ne i64 %293, 0
  br i1 %294, label %295, label %300

295:                                              ; preds = %292, %289, %286
  %296 = load ptr, ptr %19, align 8, !tbaa !5
  %297 = load i64, ptr %296, align 8, !tbaa !9
  %298 = sitofp i64 %297 to double
  %299 = call double @sqrt(double noundef %298) #5
  store double %299, ptr %66, align 8, !tbaa !11
  br label %304

300:                                              ; preds = %292
  %301 = load ptr, ptr %19, align 8, !tbaa !5
  %302 = load i64, ptr %301, align 8, !tbaa !9
  %303 = sitofp i64 %302 to double
  store double %303, ptr %66, align 8, !tbaa !11
  br label %304

304:                                              ; preds = %300, %295
  br label %305

305:                                              ; preds = %304, %282
  %306 = call double @dlamch_(ptr noundef @.str.8)
  store double %306, ptr %98, align 8, !tbaa !11
  %307 = load double, ptr %98, align 8, !tbaa !11
  %308 = call double @sqrt(double noundef %307) #5
  store double %308, ptr %99, align 8, !tbaa !11
  %309 = call double @dlamch_(ptr noundef @.str.9)
  store double %309, ptr %76, align 8, !tbaa !11
  %310 = load double, ptr %76, align 8, !tbaa !11
  %311 = call double @sqrt(double noundef %310) #5
  store double %311, ptr %49, align 8, !tbaa !11
  %312 = load double, ptr %76, align 8, !tbaa !11
  %313 = load double, ptr %98, align 8, !tbaa !11
  %314 = fdiv double %312, %313
  store double %314, ptr %75, align 8, !tbaa !11
  %315 = call double @dlamch_(ptr noundef @.str.10)
  store double %315, ptr %55, align 8, !tbaa !11
  %316 = load double, ptr %49, align 8, !tbaa !11
  %317 = fdiv double 1.000000e+00, %316
  store double %317, ptr %97, align 8, !tbaa !11
  %318 = load double, ptr %55, align 8, !tbaa !11
  %319 = load ptr, ptr %19, align 8, !tbaa !5
  %320 = load i64, ptr %319, align 8, !tbaa !9
  %321 = load ptr, ptr %20, align 8, !tbaa !5
  %322 = load i64, ptr %321, align 8, !tbaa !9
  %323 = mul nsw i64 %320, %322
  %324 = sitofp i64 %323 to double
  %325 = call double @sqrt(double noundef %324) #5
  %326 = fdiv double %318, %325
  store double %326, ptr %71, align 8, !tbaa !11
  %327 = load double, ptr %99, align 8, !tbaa !11
  %328 = fdiv double 1.000000e+00, %327
  store double %328, ptr %41, align 8, !tbaa !11
  %329 = load double, ptr %66, align 8, !tbaa !11
  %330 = load double, ptr %98, align 8, !tbaa !11
  %331 = fmul double %329, %330
  store double %331, ptr %61, align 8, !tbaa !11
  %332 = load double, ptr %61, align 8, !tbaa !11
  %333 = call double @sqrt(double noundef %332) #5
  store double %333, ptr %101, align 8, !tbaa !11
  %334 = load ptr, ptr %19, align 8, !tbaa !5
  %335 = load i64, ptr %334, align 8, !tbaa !9
  %336 = sitofp i64 %335 to double
  %337 = load double, ptr %98, align 8, !tbaa !11
  %338 = fmul double %336, %337
  %339 = fcmp oge double %338, 1.000000e+00
  br i1 %339, label %340, label %346

340:                                              ; preds = %305
  %341 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -5, ptr %341, align 8, !tbaa !9
  %342 = load ptr, ptr %29, align 8, !tbaa !5
  %343 = load i64, ptr %342, align 8, !tbaa !9
  %344 = sub nsw i64 0, %343
  store i64 %344, ptr %34, align 8, !tbaa !9
  %345 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %34)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

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

349:                                              ; preds = %346
  %350 = load ptr, ptr %20, align 8, !tbaa !5
  %351 = load i64, ptr %350, align 8, !tbaa !9
  store i64 %351, ptr %62, align 8, !tbaa !9
  %352 = load ptr, ptr %20, align 8, !tbaa !5
  %353 = load ptr, ptr %25, align 8, !tbaa !5
  %354 = load i64, ptr %33, align 8, !tbaa !9
  %355 = getelementptr inbounds double, ptr %353, i64 %354
  %356 = load ptr, ptr %26, align 8, !tbaa !5
  %357 = call i32 @dlaset_(ptr noundef @.str.3, ptr noundef %62, ptr noundef %352, ptr noundef @c_b17, ptr noundef @c_b18, ptr noundef %355, ptr noundef %356)
  br label %365

358:                                              ; preds = %346
  %359 = load i64, ptr %79, align 8, !tbaa !9
  %360 = icmp ne i64 %359, 0
  br i1 %360, label %361, label %364

361:                                              ; preds = %358
  %362 = load ptr, ptr %24, align 8, !tbaa !5
  %363 = load i64, ptr %362, align 8, !tbaa !9
  store i64 %363, ptr %62, align 8, !tbaa !9
  br label %364

364:                                              ; preds = %361, %358
  br label %365

365:                                              ; preds = %364, %349
  %366 = load i64, ptr %80, align 8, !tbaa !9
  %367 = icmp ne i64 %366, 0
  br i1 %367, label %371, label %368

368:                                              ; preds = %365
  %369 = load i64, ptr %79, align 8, !tbaa !9
  %370 = icmp ne i64 %369, 0
  br label %371

371:                                              ; preds = %368, %365
  %372 = phi i1 [ true, %365 ], [ %370, %368 ]
  %373 = zext i1 %372 to i32
  %374 = sext i32 %373 to i64
  store i64 %374, ptr %80, align 8, !tbaa !9
  %375 = load ptr, ptr %19, align 8, !tbaa !5
  %376 = load i64, ptr %375, align 8, !tbaa !9
  %377 = sitofp i64 %376 to double
  %378 = load ptr, ptr %20, align 8, !tbaa !5
  %379 = load i64, ptr %378, align 8, !tbaa !9
  %380 = sitofp i64 %379 to double
  %381 = fmul double %377, %380
  %382 = call double @sqrt(double noundef %381) #5
  %383 = fdiv double 1.000000e+00, %382
  store double %383, ptr %70, align 8, !tbaa !11
  store i64 1, ptr %96, align 8, !tbaa !9
  store i64 1, ptr %95, align 8, !tbaa !9
  %384 = load i64, ptr %82, align 8, !tbaa !9
  %385 = icmp ne i64 %384, 0
  br i1 %385, label %386, label %469

386:                                              ; preds = %371
  %387 = load ptr, ptr %20, align 8, !tbaa !5
  %388 = load i64, ptr %387, align 8, !tbaa !9
  store i64 %388, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %389

389:                                              ; preds = %465, %386
  %390 = load i64, ptr %44, align 8, !tbaa !9
  %391 = load i64, ptr %34, align 8, !tbaa !9
  %392 = icmp sle i64 %390, %391
  br i1 %392, label %393, label %468

393:                                              ; preds = %389
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  store double 0.000000e+00, ptr %65, align 8, !tbaa !11
  %394 = load ptr, ptr %19, align 8, !tbaa !5
  %395 = load i64, ptr %394, align 8, !tbaa !9
  %396 = load i64, ptr %44, align 8, !tbaa !9
  %397 = sub nsw i64 %395, %396
  %398 = add nsw i64 %397, 1
  store i64 %398, ptr %35, align 8, !tbaa !9
  %399 = load ptr, ptr %21, align 8, !tbaa !5
  %400 = load i64, ptr %44, align 8, !tbaa !9
  %401 = load i64, ptr %44, align 8, !tbaa !9
  %402 = load i64, ptr %30, align 8, !tbaa !9
  %403 = mul nsw i64 %401, %402
  %404 = add nsw i64 %400, %403
  %405 = getelementptr inbounds double, ptr %399, i64 %404
  %406 = call i32 @dlassq_(ptr noundef %35, ptr noundef %405, ptr noundef @c__1, ptr noundef %63, ptr noundef %65)
  %407 = load double, ptr %63, align 8, !tbaa !11
  %408 = load double, ptr %55, align 8, !tbaa !11
  %409 = fcmp ogt double %407, %408
  br i1 %409, label %410, label %416

410:                                              ; preds = %393
  %411 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -6, ptr %411, align 8, !tbaa !9
  %412 = load ptr, ptr %29, align 8, !tbaa !5
  %413 = load i64, ptr %412, align 8, !tbaa !9
  %414 = sub nsw i64 0, %413
  store i64 %414, ptr %35, align 8, !tbaa !9
  %415 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %35)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

416:                                              ; preds = %393
  %417 = load double, ptr %65, align 8, !tbaa !11
  %418 = call double @sqrt(double noundef %417) #5
  store double %418, ptr %65, align 8, !tbaa !11
  %419 = load double, ptr %63, align 8, !tbaa !11
  %420 = load double, ptr %55, align 8, !tbaa !11
  %421 = load double, ptr %65, align 8, !tbaa !11
  %422 = fdiv double %420, %421
  %423 = fcmp olt double %419, %422
  br i1 %423, label %424, label %434

424:                                              ; preds = %416
  %425 = load i64, ptr %96, align 8, !tbaa !9
  %426 = icmp ne i64 %425, 0
  br i1 %426, label %427, label %434

427:                                              ; preds = %424
  %428 = load double, ptr %63, align 8, !tbaa !11
  %429 = load double, ptr %65, align 8, !tbaa !11
  %430 = fmul double %428, %429
  %431 = load ptr, ptr %23, align 8, !tbaa !5
  %432 = load i64, ptr %44, align 8, !tbaa !9
  %433 = getelementptr inbounds double, ptr %431, i64 %432
  store double %430, ptr %433, align 8, !tbaa !11
  br label %464

434:                                              ; preds = %424, %416
  store i64 0, ptr %96, align 8, !tbaa !9
  %435 = load double, ptr %63, align 8, !tbaa !11
  %436 = load double, ptr %65, align 8, !tbaa !11
  %437 = load double, ptr %70, align 8, !tbaa !11
  %438 = fmul double %436, %437
  %439 = fmul double %435, %438
  %440 = load ptr, ptr %23, align 8, !tbaa !5
  %441 = load i64, ptr %44, align 8, !tbaa !9
  %442 = getelementptr inbounds double, ptr %440, i64 %441
  store double %439, ptr %442, align 8, !tbaa !11
  %443 = load i64, ptr %95, align 8, !tbaa !9
  %444 = icmp ne i64 %443, 0
  br i1 %444, label %445, label %463

445:                                              ; preds = %434
  store i64 0, ptr %95, align 8, !tbaa !9
  %446 = load i64, ptr %44, align 8, !tbaa !9
  %447 = sub nsw i64 %446, 1
  store i64 %447, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %448

448:                                              ; preds = %459, %445
  %449 = load i64, ptr %45, align 8, !tbaa !9
  %450 = load i64, ptr %35, align 8, !tbaa !9
  %451 = icmp sle i64 %449, %450
  br i1 %451, label %452, label %462

452:                                              ; preds = %448
  %453 = load double, ptr %70, align 8, !tbaa !11
  %454 = load ptr, ptr %23, align 8, !tbaa !5
  %455 = load i64, ptr %45, align 8, !tbaa !9
  %456 = getelementptr inbounds double, ptr %454, i64 %455
  %457 = load double, ptr %456, align 8, !tbaa !11
  %458 = fmul double %457, %453
  store double %458, ptr %456, align 8, !tbaa !11
  br label %459

459:                                              ; preds = %452
  %460 = load i64, ptr %45, align 8, !tbaa !9
  %461 = add nsw i64 %460, 1
  store i64 %461, ptr %45, align 8, !tbaa !9
  br label %448, !llvm.loop !13

462:                                              ; preds = %448
  br label %463

463:                                              ; preds = %462, %434
  br label %464

464:                                              ; preds = %463, %427
  br label %465

465:                                              ; preds = %464
  %466 = load i64, ptr %44, align 8, !tbaa !9
  %467 = add nsw i64 %466, 1
  store i64 %467, ptr %44, align 8, !tbaa !9
  br label %389, !llvm.loop !15

468:                                              ; preds = %389
  br label %628

469:                                              ; preds = %371
  %470 = load i64, ptr %83, align 8, !tbaa !9
  %471 = icmp ne i64 %470, 0
  br i1 %471, label %472, label %549

472:                                              ; preds = %469
  %473 = load ptr, ptr %20, align 8, !tbaa !5
  %474 = load i64, ptr %473, align 8, !tbaa !9
  store i64 %474, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %475

475:                                              ; preds = %545, %472
  %476 = load i64, ptr %44, align 8, !tbaa !9
  %477 = load i64, ptr %34, align 8, !tbaa !9
  %478 = icmp sle i64 %476, %477
  br i1 %478, label %479, label %548

479:                                              ; preds = %475
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  store double 0.000000e+00, ptr %65, align 8, !tbaa !11
  %480 = load ptr, ptr %21, align 8, !tbaa !5
  %481 = load i64, ptr %44, align 8, !tbaa !9
  %482 = load i64, ptr %30, align 8, !tbaa !9
  %483 = mul nsw i64 %481, %482
  %484 = add nsw i64 %483, 1
  %485 = getelementptr inbounds double, ptr %480, i64 %484
  %486 = call i32 @dlassq_(ptr noundef %44, ptr noundef %485, ptr noundef @c__1, ptr noundef %63, ptr noundef %65)
  %487 = load double, ptr %63, align 8, !tbaa !11
  %488 = load double, ptr %55, align 8, !tbaa !11
  %489 = fcmp ogt double %487, %488
  br i1 %489, label %490, label %496

490:                                              ; preds = %479
  %491 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -6, ptr %491, align 8, !tbaa !9
  %492 = load ptr, ptr %29, align 8, !tbaa !5
  %493 = load i64, ptr %492, align 8, !tbaa !9
  %494 = sub nsw i64 0, %493
  store i64 %494, ptr %35, align 8, !tbaa !9
  %495 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %35)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

496:                                              ; preds = %479
  %497 = load double, ptr %65, align 8, !tbaa !11
  %498 = call double @sqrt(double noundef %497) #5
  store double %498, ptr %65, align 8, !tbaa !11
  %499 = load double, ptr %63, align 8, !tbaa !11
  %500 = load double, ptr %55, align 8, !tbaa !11
  %501 = load double, ptr %65, align 8, !tbaa !11
  %502 = fdiv double %500, %501
  %503 = fcmp olt double %499, %502
  br i1 %503, label %504, label %514

504:                                              ; preds = %496
  %505 = load i64, ptr %96, align 8, !tbaa !9
  %506 = icmp ne i64 %505, 0
  br i1 %506, label %507, label %514

507:                                              ; preds = %504
  %508 = load double, ptr %63, align 8, !tbaa !11
  %509 = load double, ptr %65, align 8, !tbaa !11
  %510 = fmul double %508, %509
  %511 = load ptr, ptr %23, align 8, !tbaa !5
  %512 = load i64, ptr %44, align 8, !tbaa !9
  %513 = getelementptr inbounds double, ptr %511, i64 %512
  store double %510, ptr %513, align 8, !tbaa !11
  br label %544

514:                                              ; preds = %504, %496
  store i64 0, ptr %96, align 8, !tbaa !9
  %515 = load double, ptr %63, align 8, !tbaa !11
  %516 = load double, ptr %65, align 8, !tbaa !11
  %517 = load double, ptr %70, align 8, !tbaa !11
  %518 = fmul double %516, %517
  %519 = fmul double %515, %518
  %520 = load ptr, ptr %23, align 8, !tbaa !5
  %521 = load i64, ptr %44, align 8, !tbaa !9
  %522 = getelementptr inbounds double, ptr %520, i64 %521
  store double %519, ptr %522, align 8, !tbaa !11
  %523 = load i64, ptr %95, align 8, !tbaa !9
  %524 = icmp ne i64 %523, 0
  br i1 %524, label %525, label %543

525:                                              ; preds = %514
  store i64 0, ptr %95, align 8, !tbaa !9
  %526 = load i64, ptr %44, align 8, !tbaa !9
  %527 = sub nsw i64 %526, 1
  store i64 %527, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %528

528:                                              ; preds = %539, %525
  %529 = load i64, ptr %45, align 8, !tbaa !9
  %530 = load i64, ptr %35, align 8, !tbaa !9
  %531 = icmp sle i64 %529, %530
  br i1 %531, label %532, label %542

532:                                              ; preds = %528
  %533 = load double, ptr %70, align 8, !tbaa !11
  %534 = load ptr, ptr %23, align 8, !tbaa !5
  %535 = load i64, ptr %45, align 8, !tbaa !9
  %536 = getelementptr inbounds double, ptr %534, i64 %535
  %537 = load double, ptr %536, align 8, !tbaa !11
  %538 = fmul double %537, %533
  store double %538, ptr %536, align 8, !tbaa !11
  br label %539

539:                                              ; preds = %532
  %540 = load i64, ptr %45, align 8, !tbaa !9
  %541 = add nsw i64 %540, 1
  store i64 %541, ptr %45, align 8, !tbaa !9
  br label %528, !llvm.loop !16

542:                                              ; preds = %528
  br label %543

543:                                              ; preds = %542, %514
  br label %544

544:                                              ; preds = %543, %507
  br label %545

545:                                              ; preds = %544
  %546 = load i64, ptr %44, align 8, !tbaa !9
  %547 = add nsw i64 %546, 1
  store i64 %547, ptr %44, align 8, !tbaa !9
  br label %475, !llvm.loop !17

548:                                              ; preds = %475
  br label %627

549:                                              ; preds = %469
  %550 = load ptr, ptr %20, align 8, !tbaa !5
  %551 = load i64, ptr %550, align 8, !tbaa !9
  store i64 %551, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %552

552:                                              ; preds = %623, %549
  %553 = load i64, ptr %44, align 8, !tbaa !9
  %554 = load i64, ptr %34, align 8, !tbaa !9
  %555 = icmp sle i64 %553, %554
  br i1 %555, label %556, label %626

556:                                              ; preds = %552
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  store double 0.000000e+00, ptr %65, align 8, !tbaa !11
  %557 = load ptr, ptr %19, align 8, !tbaa !5
  %558 = load ptr, ptr %21, align 8, !tbaa !5
  %559 = load i64, ptr %44, align 8, !tbaa !9
  %560 = load i64, ptr %30, align 8, !tbaa !9
  %561 = mul nsw i64 %559, %560
  %562 = add nsw i64 %561, 1
  %563 = getelementptr inbounds double, ptr %558, i64 %562
  %564 = call i32 @dlassq_(ptr noundef %557, ptr noundef %563, ptr noundef @c__1, ptr noundef %63, ptr noundef %65)
  %565 = load double, ptr %63, align 8, !tbaa !11
  %566 = load double, ptr %55, align 8, !tbaa !11
  %567 = fcmp ogt double %565, %566
  br i1 %567, label %568, label %574

568:                                              ; preds = %556
  %569 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -6, ptr %569, align 8, !tbaa !9
  %570 = load ptr, ptr %29, align 8, !tbaa !5
  %571 = load i64, ptr %570, align 8, !tbaa !9
  %572 = sub nsw i64 0, %571
  store i64 %572, ptr %35, align 8, !tbaa !9
  %573 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %35)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

574:                                              ; preds = %556
  %575 = load double, ptr %65, align 8, !tbaa !11
  %576 = call double @sqrt(double noundef %575) #5
  store double %576, ptr %65, align 8, !tbaa !11
  %577 = load double, ptr %63, align 8, !tbaa !11
  %578 = load double, ptr %55, align 8, !tbaa !11
  %579 = load double, ptr %65, align 8, !tbaa !11
  %580 = fdiv double %578, %579
  %581 = fcmp olt double %577, %580
  br i1 %581, label %582, label %592

582:                                              ; preds = %574
  %583 = load i64, ptr %96, align 8, !tbaa !9
  %584 = icmp ne i64 %583, 0
  br i1 %584, label %585, label %592

585:                                              ; preds = %582
  %586 = load double, ptr %63, align 8, !tbaa !11
  %587 = load double, ptr %65, align 8, !tbaa !11
  %588 = fmul double %586, %587
  %589 = load ptr, ptr %23, align 8, !tbaa !5
  %590 = load i64, ptr %44, align 8, !tbaa !9
  %591 = getelementptr inbounds double, ptr %589, i64 %590
  store double %588, ptr %591, align 8, !tbaa !11
  br label %622

592:                                              ; preds = %582, %574
  store i64 0, ptr %96, align 8, !tbaa !9
  %593 = load double, ptr %63, align 8, !tbaa !11
  %594 = load double, ptr %65, align 8, !tbaa !11
  %595 = load double, ptr %70, align 8, !tbaa !11
  %596 = fmul double %594, %595
  %597 = fmul double %593, %596
  %598 = load ptr, ptr %23, align 8, !tbaa !5
  %599 = load i64, ptr %44, align 8, !tbaa !9
  %600 = getelementptr inbounds double, ptr %598, i64 %599
  store double %597, ptr %600, align 8, !tbaa !11
  %601 = load i64, ptr %95, align 8, !tbaa !9
  %602 = icmp ne i64 %601, 0
  br i1 %602, label %603, label %621

603:                                              ; preds = %592
  store i64 0, ptr %95, align 8, !tbaa !9
  %604 = load i64, ptr %44, align 8, !tbaa !9
  %605 = sub nsw i64 %604, 1
  store i64 %605, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %606

606:                                              ; preds = %617, %603
  %607 = load i64, ptr %45, align 8, !tbaa !9
  %608 = load i64, ptr %35, align 8, !tbaa !9
  %609 = icmp sle i64 %607, %608
  br i1 %609, label %610, label %620

610:                                              ; preds = %606
  %611 = load double, ptr %70, align 8, !tbaa !11
  %612 = load ptr, ptr %23, align 8, !tbaa !5
  %613 = load i64, ptr %45, align 8, !tbaa !9
  %614 = getelementptr inbounds double, ptr %612, i64 %613
  %615 = load double, ptr %614, align 8, !tbaa !11
  %616 = fmul double %615, %611
  store double %616, ptr %614, align 8, !tbaa !11
  br label %617

617:                                              ; preds = %610
  %618 = load i64, ptr %45, align 8, !tbaa !9
  %619 = add nsw i64 %618, 1
  store i64 %619, ptr %45, align 8, !tbaa !9
  br label %606, !llvm.loop !18

620:                                              ; preds = %606
  br label %621

621:                                              ; preds = %620, %592
  br label %622

622:                                              ; preds = %621, %585
  br label %623

623:                                              ; preds = %622
  %624 = load i64, ptr %44, align 8, !tbaa !9
  %625 = add nsw i64 %624, 1
  store i64 %625, ptr %44, align 8, !tbaa !9
  br label %552, !llvm.loop !19

626:                                              ; preds = %552
  br label %627

627:                                              ; preds = %626, %548
  br label %628

628:                                              ; preds = %627, %468
  %629 = load i64, ptr %96, align 8, !tbaa !9
  %630 = icmp ne i64 %629, 0
  br i1 %630, label %631, label %632

631:                                              ; preds = %628
  store double 1.000000e+00, ptr %70, align 8, !tbaa !11
  br label %632

632:                                              ; preds = %631, %628
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  %633 = load double, ptr %55, align 8, !tbaa !11
  store double %633, ptr %65, align 8, !tbaa !11
  %634 = load ptr, ptr %20, align 8, !tbaa !5
  %635 = load i64, ptr %634, align 8, !tbaa !9
  store i64 %635, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %636

636:                                              ; preds = %676, %632
  %637 = load i64, ptr %44, align 8, !tbaa !9
  %638 = load i64, ptr %34, align 8, !tbaa !9
  %639 = icmp sle i64 %637, %638
  br i1 %639, label %640, label %679

640:                                              ; preds = %636
  %641 = load ptr, ptr %23, align 8, !tbaa !5
  %642 = load i64, ptr %44, align 8, !tbaa !9
  %643 = getelementptr inbounds double, ptr %641, i64 %642
  %644 = load double, ptr %643, align 8, !tbaa !11
  %645 = fcmp une double %644, 0.000000e+00
  br i1 %645, label %646, label %661

646:                                              ; preds = %640
  %647 = load double, ptr %65, align 8, !tbaa !11
  store double %647, ptr %39, align 8, !tbaa !11
  %648 = load ptr, ptr %23, align 8, !tbaa !5
  %649 = load i64, ptr %44, align 8, !tbaa !9
  %650 = getelementptr inbounds double, ptr %648, i64 %649
  %651 = load double, ptr %650, align 8, !tbaa !11
  store double %651, ptr %40, align 8, !tbaa !11
  %652 = load double, ptr %39, align 8, !tbaa !11
  %653 = load double, ptr %40, align 8, !tbaa !11
  %654 = fcmp ole double %652, %653
  br i1 %654, label %655, label %657

655:                                              ; preds = %646
  %656 = load double, ptr %39, align 8, !tbaa !11
  br label %659

657:                                              ; preds = %646
  %658 = load double, ptr %40, align 8, !tbaa !11
  br label %659

659:                                              ; preds = %657, %655
  %660 = phi double [ %656, %655 ], [ %658, %657 ]
  store double %660, ptr %65, align 8, !tbaa !11
  br label %661

661:                                              ; preds = %659, %640
  %662 = load double, ptr %63, align 8, !tbaa !11
  store double %662, ptr %39, align 8, !tbaa !11
  %663 = load ptr, ptr %23, align 8, !tbaa !5
  %664 = load i64, ptr %44, align 8, !tbaa !9
  %665 = getelementptr inbounds double, ptr %663, i64 %664
  %666 = load double, ptr %665, align 8, !tbaa !11
  store double %666, ptr %40, align 8, !tbaa !11
  %667 = load double, ptr %39, align 8, !tbaa !11
  %668 = load double, ptr %40, align 8, !tbaa !11
  %669 = fcmp oge double %667, %668
  br i1 %669, label %670, label %672

670:                                              ; preds = %661
  %671 = load double, ptr %39, align 8, !tbaa !11
  br label %674

672:                                              ; preds = %661
  %673 = load double, ptr %40, align 8, !tbaa !11
  br label %674

674:                                              ; preds = %672, %670
  %675 = phi double [ %671, %670 ], [ %673, %672 ]
  store double %675, ptr %63, align 8, !tbaa !11
  br label %676

676:                                              ; preds = %674
  %677 = load i64, ptr %44, align 8, !tbaa !9
  %678 = add nsw i64 %677, 1
  store i64 %678, ptr %44, align 8, !tbaa !9
  br label %636, !llvm.loop !20

679:                                              ; preds = %636
  %680 = load double, ptr %63, align 8, !tbaa !11
  %681 = fcmp oeq double %680, 0.000000e+00
  br i1 %681, label %682, label %706

682:                                              ; preds = %679
  %683 = load i64, ptr %77, align 8, !tbaa !9
  %684 = icmp ne i64 %683, 0
  br i1 %684, label %685, label %693

685:                                              ; preds = %682
  %686 = load ptr, ptr %19, align 8, !tbaa !5
  %687 = load ptr, ptr %20, align 8, !tbaa !5
  %688 = load ptr, ptr %21, align 8, !tbaa !5
  %689 = load i64, ptr %31, align 8, !tbaa !9
  %690 = getelementptr inbounds double, ptr %688, i64 %689
  %691 = load ptr, ptr %22, align 8, !tbaa !5
  %692 = call i32 @dlaset_(ptr noundef @.str.5, ptr noundef %686, ptr noundef %687, ptr noundef @c_b17, ptr noundef @c_b18, ptr noundef %690, ptr noundef %691)
  br label %693

693:                                              ; preds = %685, %682
  %694 = load ptr, ptr %27, align 8, !tbaa !5
  %695 = getelementptr inbounds double, ptr %694, i64 1
  store double 1.000000e+00, ptr %695, align 8, !tbaa !11
  %696 = load ptr, ptr %27, align 8, !tbaa !5
  %697 = getelementptr inbounds double, ptr %696, i64 2
  store double 0.000000e+00, ptr %697, align 8, !tbaa !11
  %698 = load ptr, ptr %27, align 8, !tbaa !5
  %699 = getelementptr inbounds double, ptr %698, i64 3
  store double 0.000000e+00, ptr %699, align 8, !tbaa !11
  %700 = load ptr, ptr %27, align 8, !tbaa !5
  %701 = getelementptr inbounds double, ptr %700, i64 4
  store double 0.000000e+00, ptr %701, align 8, !tbaa !11
  %702 = load ptr, ptr %27, align 8, !tbaa !5
  %703 = getelementptr inbounds double, ptr %702, i64 5
  store double 0.000000e+00, ptr %703, align 8, !tbaa !11
  %704 = load ptr, ptr %27, align 8, !tbaa !5
  %705 = getelementptr inbounds double, ptr %704, i64 6
  store double 0.000000e+00, ptr %705, align 8, !tbaa !11
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

706:                                              ; preds = %679
  %707 = load ptr, ptr %20, align 8, !tbaa !5
  %708 = load i64, ptr %707, align 8, !tbaa !9
  %709 = icmp eq i64 %708, 1
  br i1 %709, label %710, label %748

710:                                              ; preds = %706
  %711 = load i64, ptr %77, align 8, !tbaa !9
  %712 = icmp ne i64 %711, 0
  br i1 %712, label %713, label %723

713:                                              ; preds = %710
  %714 = load ptr, ptr %23, align 8, !tbaa !5
  %715 = getelementptr inbounds double, ptr %714, i64 1
  %716 = load ptr, ptr %19, align 8, !tbaa !5
  %717 = load ptr, ptr %21, align 8, !tbaa !5
  %718 = load i64, ptr %30, align 8, !tbaa !9
  %719 = add nsw i64 %718, 1
  %720 = getelementptr inbounds double, ptr %717, i64 %719
  %721 = load ptr, ptr %22, align 8, !tbaa !5
  %722 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %715, ptr noundef %70, ptr noundef %716, ptr noundef @c__1, ptr noundef %720, ptr noundef %721, ptr noundef %67)
  br label %723

723:                                              ; preds = %713, %710
  %724 = load double, ptr %70, align 8, !tbaa !11
  %725 = fdiv double 1.000000e+00, %724
  %726 = load ptr, ptr %27, align 8, !tbaa !5
  %727 = getelementptr inbounds double, ptr %726, i64 1
  store double %725, ptr %727, align 8, !tbaa !11
  %728 = load ptr, ptr %23, align 8, !tbaa !5
  %729 = getelementptr inbounds double, ptr %728, i64 1
  %730 = load double, ptr %729, align 8, !tbaa !11
  %731 = load double, ptr %76, align 8, !tbaa !11
  %732 = fcmp oge double %730, %731
  br i1 %732, label %733, label %736

733:                                              ; preds = %723
  %734 = load ptr, ptr %27, align 8, !tbaa !5
  %735 = getelementptr inbounds double, ptr %734, i64 2
  store double 1.000000e+00, ptr %735, align 8, !tbaa !11
  br label %739

736:                                              ; preds = %723
  %737 = load ptr, ptr %27, align 8, !tbaa !5
  %738 = getelementptr inbounds double, ptr %737, i64 2
  store double 0.000000e+00, ptr %738, align 8, !tbaa !11
  br label %739

739:                                              ; preds = %736, %733
  %740 = load ptr, ptr %27, align 8, !tbaa !5
  %741 = getelementptr inbounds double, ptr %740, i64 3
  store double 0.000000e+00, ptr %741, align 8, !tbaa !11
  %742 = load ptr, ptr %27, align 8, !tbaa !5
  %743 = getelementptr inbounds double, ptr %742, i64 4
  store double 0.000000e+00, ptr %743, align 8, !tbaa !11
  %744 = load ptr, ptr %27, align 8, !tbaa !5
  %745 = getelementptr inbounds double, ptr %744, i64 5
  store double 0.000000e+00, ptr %745, align 8, !tbaa !11
  %746 = load ptr, ptr %27, align 8, !tbaa !5
  %747 = getelementptr inbounds double, ptr %746, i64 6
  store double 0.000000e+00, ptr %747, align 8, !tbaa !11
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

748:                                              ; preds = %706
  %749 = load double, ptr %76, align 8, !tbaa !11
  %750 = load double, ptr %98, align 8, !tbaa !11
  %751 = fdiv double %749, %750
  %752 = call double @sqrt(double noundef %751) #5
  store double %752, ptr %52, align 8, !tbaa !11
  %753 = load double, ptr %55, align 8, !tbaa !11
  %754 = load ptr, ptr %20, align 8, !tbaa !5
  %755 = load i64, ptr %754, align 8, !tbaa !9
  %756 = sitofp i64 %755 to double
  %757 = fdiv double %753, %756
  %758 = call double @sqrt(double noundef %757) #5
  store double %758, ptr %69, align 8, !tbaa !11
  %759 = load double, ptr %63, align 8, !tbaa !11
  %760 = load double, ptr %52, align 8, !tbaa !11
  %761 = fcmp ole double %759, %760
  br i1 %761, label %774, label %762

762:                                              ; preds = %748
  %763 = load double, ptr %65, align 8, !tbaa !11
  %764 = load double, ptr %69, align 8, !tbaa !11
  %765 = fcmp oge double %763, %764
  br i1 %765, label %774, label %766

766:                                              ; preds = %762
  %767 = load double, ptr %52, align 8, !tbaa !11
  %768 = load double, ptr %65, align 8, !tbaa !11
  %769 = fcmp ole double %767, %768
  br i1 %769, label %770, label %788

770:                                              ; preds = %766
  %771 = load double, ptr %63, align 8, !tbaa !11
  %772 = load double, ptr %69, align 8, !tbaa !11
  %773 = fcmp ole double %771, %772
  br i1 %773, label %774, label %788

774:                                              ; preds = %770, %762, %748
  %775 = load double, ptr %55, align 8, !tbaa !11
  store double %775, ptr %39, align 8, !tbaa !11
  %776 = load double, ptr %69, align 8, !tbaa !11
  %777 = load double, ptr %63, align 8, !tbaa !11
  %778 = fdiv double %776, %777
  store double %778, ptr %40, align 8, !tbaa !11
  %779 = load double, ptr %39, align 8, !tbaa !11
  %780 = load double, ptr %40, align 8, !tbaa !11
  %781 = fcmp ole double %779, %780
  br i1 %781, label %782, label %784

782:                                              ; preds = %774
  %783 = load double, ptr %39, align 8, !tbaa !11
  br label %786

784:                                              ; preds = %774
  %785 = load double, ptr %40, align 8, !tbaa !11
  br label %786

786:                                              ; preds = %784, %782
  %787 = phi double [ %783, %782 ], [ %785, %784 ]
  store double %787, ptr %69, align 8, !tbaa !11
  br label %874

788:                                              ; preds = %770, %766
  %789 = load double, ptr %65, align 8, !tbaa !11
  %790 = load double, ptr %52, align 8, !tbaa !11
  %791 = fcmp ole double %789, %790
  br i1 %791, label %792, label %817

792:                                              ; preds = %788
  %793 = load double, ptr %63, align 8, !tbaa !11
  %794 = load double, ptr %69, align 8, !tbaa !11
  %795 = fcmp ole double %793, %794
  br i1 %795, label %796, label %817

796:                                              ; preds = %792
  %797 = load double, ptr %52, align 8, !tbaa !11
  %798 = load double, ptr %65, align 8, !tbaa !11
  %799 = fdiv double %797, %798
  store double %799, ptr %39, align 8, !tbaa !11
  %800 = load double, ptr %55, align 8, !tbaa !11
  %801 = load double, ptr %63, align 8, !tbaa !11
  %802 = load ptr, ptr %20, align 8, !tbaa !5
  %803 = load i64, ptr %802, align 8, !tbaa !9
  %804 = sitofp i64 %803 to double
  %805 = call double @sqrt(double noundef %804) #5
  %806 = fmul double %801, %805
  %807 = fdiv double %800, %806
  store double %807, ptr %40, align 8, !tbaa !11
  %808 = load double, ptr %39, align 8, !tbaa !11
  %809 = load double, ptr %40, align 8, !tbaa !11
  %810 = fcmp ole double %808, %809
  br i1 %810, label %811, label %813

811:                                              ; preds = %796
  %812 = load double, ptr %39, align 8, !tbaa !11
  br label %815

813:                                              ; preds = %796
  %814 = load double, ptr %40, align 8, !tbaa !11
  br label %815

815:                                              ; preds = %813, %811
  %816 = phi double [ %812, %811 ], [ %814, %813 ]
  store double %816, ptr %69, align 8, !tbaa !11
  br label %873

817:                                              ; preds = %792, %788
  %818 = load double, ptr %65, align 8, !tbaa !11
  %819 = load double, ptr %52, align 8, !tbaa !11
  %820 = fcmp oge double %818, %819
  br i1 %820, label %821, label %841

821:                                              ; preds = %817
  %822 = load double, ptr %63, align 8, !tbaa !11
  %823 = load double, ptr %69, align 8, !tbaa !11
  %824 = fcmp oge double %822, %823
  br i1 %824, label %825, label %841

825:                                              ; preds = %821
  %826 = load double, ptr %52, align 8, !tbaa !11
  %827 = load double, ptr %65, align 8, !tbaa !11
  %828 = fdiv double %826, %827
  store double %828, ptr %39, align 8, !tbaa !11
  %829 = load double, ptr %69, align 8, !tbaa !11
  %830 = load double, ptr %63, align 8, !tbaa !11
  %831 = fdiv double %829, %830
  store double %831, ptr %40, align 8, !tbaa !11
  %832 = load double, ptr %39, align 8, !tbaa !11
  %833 = load double, ptr %40, align 8, !tbaa !11
  %834 = fcmp oge double %832, %833
  br i1 %834, label %835, label %837

835:                                              ; preds = %825
  %836 = load double, ptr %39, align 8, !tbaa !11
  br label %839

837:                                              ; preds = %825
  %838 = load double, ptr %40, align 8, !tbaa !11
  br label %839

839:                                              ; preds = %837, %835
  %840 = phi double [ %836, %835 ], [ %838, %837 ]
  store double %840, ptr %69, align 8, !tbaa !11
  br label %872

841:                                              ; preds = %821, %817
  %842 = load double, ptr %65, align 8, !tbaa !11
  %843 = load double, ptr %52, align 8, !tbaa !11
  %844 = fcmp ole double %842, %843
  br i1 %844, label %845, label %870

845:                                              ; preds = %841
  %846 = load double, ptr %63, align 8, !tbaa !11
  %847 = load double, ptr %69, align 8, !tbaa !11
  %848 = fcmp oge double %846, %847
  br i1 %848, label %849, label %870

849:                                              ; preds = %845
  %850 = load double, ptr %52, align 8, !tbaa !11
  %851 = load double, ptr %65, align 8, !tbaa !11
  %852 = fdiv double %850, %851
  store double %852, ptr %39, align 8, !tbaa !11
  %853 = load double, ptr %55, align 8, !tbaa !11
  %854 = load ptr, ptr %20, align 8, !tbaa !5
  %855 = load i64, ptr %854, align 8, !tbaa !9
  %856 = sitofp i64 %855 to double
  %857 = call double @sqrt(double noundef %856) #5
  %858 = load double, ptr %63, align 8, !tbaa !11
  %859 = fmul double %857, %858
  %860 = fdiv double %853, %859
  store double %860, ptr %40, align 8, !tbaa !11
  %861 = load double, ptr %39, align 8, !tbaa !11
  %862 = load double, ptr %40, align 8, !tbaa !11
  %863 = fcmp ole double %861, %862
  br i1 %863, label %864, label %866

864:                                              ; preds = %849
  %865 = load double, ptr %39, align 8, !tbaa !11
  br label %868

866:                                              ; preds = %849
  %867 = load double, ptr %40, align 8, !tbaa !11
  br label %868

868:                                              ; preds = %866, %864
  %869 = phi double [ %865, %864 ], [ %867, %866 ]
  store double %869, ptr %69, align 8, !tbaa !11
  br label %871

870:                                              ; preds = %845, %841
  store double 1.000000e+00, ptr %69, align 8, !tbaa !11
  br label %871

871:                                              ; preds = %870, %868
  br label %872

872:                                              ; preds = %871, %839
  br label %873

873:                                              ; preds = %872, %815
  br label %874

874:                                              ; preds = %873, %786
  %875 = load double, ptr %69, align 8, !tbaa !11
  %876 = fcmp une double %875, 1.000000e+00
  br i1 %876, label %877, label %883

877:                                              ; preds = %874
  %878 = load ptr, ptr %20, align 8, !tbaa !5
  %879 = load ptr, ptr %23, align 8, !tbaa !5
  %880 = getelementptr inbounds double, ptr %879, i64 1
  %881 = load ptr, ptr %20, align 8, !tbaa !5
  %882 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %69, ptr noundef %878, ptr noundef @c__1, ptr noundef %880, ptr noundef %881, ptr noundef %67)
  br label %883

883:                                              ; preds = %877, %874
  %884 = load double, ptr %69, align 8, !tbaa !11
  %885 = load double, ptr %70, align 8, !tbaa !11
  %886 = fmul double %884, %885
  store double %886, ptr %70, align 8, !tbaa !11
  %887 = load double, ptr %70, align 8, !tbaa !11
  %888 = fcmp une double %887, 1.000000e+00
  br i1 %888, label %889, label %900

889:                                              ; preds = %883
  %890 = load ptr, ptr %16, align 8, !tbaa !5
  %891 = load ptr, ptr %19, align 8, !tbaa !5
  %892 = load ptr, ptr %20, align 8, !tbaa !5
  %893 = load ptr, ptr %21, align 8, !tbaa !5
  %894 = load i64, ptr %31, align 8, !tbaa !9
  %895 = getelementptr inbounds double, ptr %893, i64 %894
  %896 = load ptr, ptr %22, align 8, !tbaa !5
  %897 = call i32 @dlascl_(ptr noundef %890, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %70, ptr noundef %891, ptr noundef %892, ptr noundef %895, ptr noundef %896, ptr noundef %67)
  %898 = load double, ptr %70, align 8, !tbaa !11
  %899 = fdiv double 1.000000e+00, %898
  store double %899, ptr %70, align 8, !tbaa !11
  br label %900

900:                                              ; preds = %889, %883
  %901 = load ptr, ptr %20, align 8, !tbaa !5
  %902 = load i64, ptr %901, align 8, !tbaa !9
  %903 = load ptr, ptr %20, align 8, !tbaa !5
  %904 = load i64, ptr %903, align 8, !tbaa !9
  %905 = sub nsw i64 %904, 1
  %906 = mul nsw i64 %902, %905
  %907 = sdiv i64 %906, 2
  store i64 %907, ptr %91, align 8, !tbaa !9
  store i64 0, ptr %92, align 8, !tbaa !9
  %908 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  store double 0.000000e+00, ptr %908, align 16, !tbaa !11
  %909 = load ptr, ptr %20, align 8, !tbaa !5
  %910 = load i64, ptr %909, align 8, !tbaa !9
  store i64 %910, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %911

911:                                              ; preds = %919, %900
  %912 = load i64, ptr %45, align 8, !tbaa !9
  %913 = load i64, ptr %34, align 8, !tbaa !9
  %914 = icmp sle i64 %912, %913
  br i1 %914, label %915, label %922

915:                                              ; preds = %911
  %916 = load ptr, ptr %27, align 8, !tbaa !5
  %917 = load i64, ptr %45, align 8, !tbaa !9
  %918 = getelementptr inbounds double, ptr %916, i64 %917
  store double 1.000000e+00, ptr %918, align 8, !tbaa !11
  br label %919

919:                                              ; preds = %915
  %920 = load i64, ptr %45, align 8, !tbaa !9
  %921 = add nsw i64 %920, 1
  store i64 %921, ptr %45, align 8, !tbaa !9
  br label %911, !llvm.loop !21

922:                                              ; preds = %911
  store i64 3, ptr %86, align 8, !tbaa !9
  %923 = load ptr, ptr %20, align 8, !tbaa !5
  %924 = load i64, ptr %923, align 8, !tbaa !9
  %925 = icmp sle i64 8, %924
  br i1 %925, label %926, label %927

926:                                              ; preds = %922
  br label %930

927:                                              ; preds = %922
  %928 = load ptr, ptr %20, align 8, !tbaa !5
  %929 = load i64, ptr %928, align 8, !tbaa !9
  br label %930

930:                                              ; preds = %927, %926
  %931 = phi i64 [ 8, %926 ], [ %929, %927 ]
  store i64 %931, ptr %56, align 8, !tbaa !9
  %932 = load ptr, ptr %20, align 8, !tbaa !5
  %933 = load i64, ptr %932, align 8, !tbaa !9
  %934 = load i64, ptr %56, align 8, !tbaa !9
  %935 = sdiv i64 %933, %934
  store i64 %935, ptr %60, align 8, !tbaa !9
  %936 = load i64, ptr %60, align 8, !tbaa !9
  %937 = load i64, ptr %56, align 8, !tbaa !9
  %938 = mul nsw i64 %936, %937
  %939 = load ptr, ptr %20, align 8, !tbaa !5
  %940 = load i64, ptr %939, align 8, !tbaa !9
  %941 = icmp ne i64 %938, %940
  br i1 %941, label %942, label %945

942:                                              ; preds = %930
  %943 = load i64, ptr %60, align 8, !tbaa !9
  %944 = add nsw i64 %943, 1
  store i64 %944, ptr %60, align 8, !tbaa !9
  br label %945

945:                                              ; preds = %942, %930
  %946 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %946, ptr %34, align 8, !tbaa !9
  %947 = load i64, ptr %34, align 8, !tbaa !9
  %948 = load i64, ptr %34, align 8, !tbaa !9
  %949 = mul nsw i64 %947, %948
  store i64 %949, ptr %87, align 8, !tbaa !9
  %950 = load i64, ptr %56, align 8, !tbaa !9
  %951 = icmp sle i64 5, %950
  br i1 %951, label %952, label %953

952:                                              ; preds = %945
  br label %955

953:                                              ; preds = %945
  %954 = load i64, ptr %56, align 8, !tbaa !9
  br label %955

955:                                              ; preds = %953, %952
  %956 = phi i64 [ 5, %952 ], [ %954, %953 ]
  store i64 %956, ptr %100, align 8, !tbaa !9
  store i64 1, ptr %94, align 8, !tbaa !9
  store i64 64, ptr %34, align 8, !tbaa !9
  %957 = load i64, ptr %56, align 8, !tbaa !9
  %958 = shl i64 %957, 2
  store i64 %958, ptr %35, align 8, !tbaa !9
  %959 = load i64, ptr %82, align 8, !tbaa !9
  %960 = icmp ne i64 %959, 0
  br i1 %960, label %964, label %961

961:                                              ; preds = %955
  %962 = load i64, ptr %83, align 8, !tbaa !9
  %963 = icmp ne i64 %962, 0
  br i1 %963, label %964, label %1379

964:                                              ; preds = %961, %955
  %965 = load ptr, ptr %20, align 8, !tbaa !5
  %966 = load i64, ptr %965, align 8, !tbaa !9
  %967 = load i64, ptr %34, align 8, !tbaa !9
  %968 = load i64, ptr %35, align 8, !tbaa !9
  %969 = icmp sge i64 %967, %968
  br i1 %969, label %970, label %972

970:                                              ; preds = %964
  %971 = load i64, ptr %34, align 8, !tbaa !9
  br label %974

972:                                              ; preds = %964
  %973 = load i64, ptr %35, align 8, !tbaa !9
  br label %974

974:                                              ; preds = %972, %970
  %975 = phi i64 [ %971, %970 ], [ %973, %972 ]
  %976 = icmp sgt i64 %966, %975
  br i1 %976, label %977, label %1379

977:                                              ; preds = %974
  %978 = load ptr, ptr %20, align 8, !tbaa !5
  %979 = load i64, ptr %978, align 8, !tbaa !9
  %980 = sdiv i64 %979, 4
  store i64 %980, ptr %48, align 8, !tbaa !9
  %981 = load ptr, ptr %20, align 8, !tbaa !5
  %982 = load i64, ptr %981, align 8, !tbaa !9
  %983 = sdiv i64 %982, 2
  store i64 %983, ptr %47, align 8, !tbaa !9
  %984 = load i64, ptr %48, align 8, !tbaa !9
  %985 = mul nsw i64 %984, 3
  store i64 %985, ptr %50, align 8, !tbaa !9
  %986 = load i64, ptr %79, align 8, !tbaa !9
  %987 = icmp ne i64 %986, 0
  br i1 %987, label %988, label %989

988:                                              ; preds = %977
  store i64 0, ptr %45, align 8, !tbaa !9
  br label %990

989:                                              ; preds = %977
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %990

990:                                              ; preds = %989, %988
  %991 = load i64, ptr %82, align 8, !tbaa !9
  %992 = icmp ne i64 %991, 0
  br i1 %992, label %993, label %1242

993:                                              ; preds = %990
  %994 = load ptr, ptr %19, align 8, !tbaa !5
  %995 = load i64, ptr %994, align 8, !tbaa !9
  %996 = load i64, ptr %50, align 8, !tbaa !9
  %997 = sub nsw i64 %995, %996
  store i64 %997, ptr %34, align 8, !tbaa !9
  %998 = load ptr, ptr %20, align 8, !tbaa !5
  %999 = load i64, ptr %998, align 8, !tbaa !9
  %1000 = load i64, ptr %50, align 8, !tbaa !9
  %1001 = sub nsw i64 %999, %1000
  store i64 %1001, ptr %35, align 8, !tbaa !9
  %1002 = load ptr, ptr %28, align 8, !tbaa !5
  %1003 = load i64, ptr %1002, align 8, !tbaa !9
  %1004 = load ptr, ptr %20, align 8, !tbaa !5
  %1005 = load i64, ptr %1004, align 8, !tbaa !9
  %1006 = sub nsw i64 %1003, %1005
  store i64 %1006, ptr %36, align 8, !tbaa !9
  %1007 = load ptr, ptr %18, align 8, !tbaa !5
  %1008 = load ptr, ptr %21, align 8, !tbaa !5
  %1009 = load i64, ptr %50, align 8, !tbaa !9
  %1010 = add nsw i64 %1009, 1
  %1011 = load i64, ptr %50, align 8, !tbaa !9
  %1012 = add nsw i64 %1011, 1
  %1013 = load i64, ptr %30, align 8, !tbaa !9
  %1014 = mul nsw i64 %1012, %1013
  %1015 = add nsw i64 %1010, %1014
  %1016 = getelementptr inbounds double, ptr %1008, i64 %1015
  %1017 = load ptr, ptr %22, align 8, !tbaa !5
  %1018 = load ptr, ptr %27, align 8, !tbaa !5
  %1019 = load i64, ptr %50, align 8, !tbaa !9
  %1020 = add nsw i64 %1019, 1
  %1021 = getelementptr inbounds double, ptr %1018, i64 %1020
  %1022 = load ptr, ptr %23, align 8, !tbaa !5
  %1023 = load i64, ptr %50, align 8, !tbaa !9
  %1024 = add nsw i64 %1023, 1
  %1025 = getelementptr inbounds double, ptr %1022, i64 %1024
  %1026 = load ptr, ptr %25, align 8, !tbaa !5
  %1027 = load i64, ptr %50, align 8, !tbaa !9
  %1028 = load i64, ptr %45, align 8, !tbaa !9
  %1029 = mul nsw i64 %1027, %1028
  %1030 = add nsw i64 %1029, 1
  %1031 = load i64, ptr %50, align 8, !tbaa !9
  %1032 = add nsw i64 %1031, 1
  %1033 = load i64, ptr %32, align 8, !tbaa !9
  %1034 = mul nsw i64 %1032, %1033
  %1035 = add nsw i64 %1030, %1034
  %1036 = getelementptr inbounds double, ptr %1026, i64 %1035
  %1037 = load ptr, ptr %26, align 8, !tbaa !5
  %1038 = load ptr, ptr %27, align 8, !tbaa !5
  %1039 = load ptr, ptr %20, align 8, !tbaa !5
  %1040 = load i64, ptr %1039, align 8, !tbaa !9
  %1041 = add nsw i64 %1040, 1
  %1042 = getelementptr inbounds double, ptr %1038, i64 %1041
  %1043 = call i32 @dgsvj0_(ptr noundef %1007, ptr noundef %34, ptr noundef %35, ptr noundef %1016, ptr noundef %1017, ptr noundef %1021, ptr noundef %1025, ptr noundef %62, ptr noundef %1036, ptr noundef %1037, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__2, ptr noundef %1042, ptr noundef %36, ptr noundef %67)
  %1044 = load ptr, ptr %19, align 8, !tbaa !5
  %1045 = load i64, ptr %1044, align 8, !tbaa !9
  %1046 = load i64, ptr %47, align 8, !tbaa !9
  %1047 = sub nsw i64 %1045, %1046
  store i64 %1047, ptr %34, align 8, !tbaa !9
  %1048 = load i64, ptr %50, align 8, !tbaa !9
  %1049 = load i64, ptr %47, align 8, !tbaa !9
  %1050 = sub nsw i64 %1048, %1049
  store i64 %1050, ptr %35, align 8, !tbaa !9
  %1051 = load ptr, ptr %28, align 8, !tbaa !5
  %1052 = load i64, ptr %1051, align 8, !tbaa !9
  %1053 = load ptr, ptr %20, align 8, !tbaa !5
  %1054 = load i64, ptr %1053, align 8, !tbaa !9
  %1055 = sub nsw i64 %1052, %1054
  store i64 %1055, ptr %36, align 8, !tbaa !9
  %1056 = load ptr, ptr %18, align 8, !tbaa !5
  %1057 = load ptr, ptr %21, align 8, !tbaa !5
  %1058 = load i64, ptr %47, align 8, !tbaa !9
  %1059 = add nsw i64 %1058, 1
  %1060 = load i64, ptr %47, align 8, !tbaa !9
  %1061 = add nsw i64 %1060, 1
  %1062 = load i64, ptr %30, align 8, !tbaa !9
  %1063 = mul nsw i64 %1061, %1062
  %1064 = add nsw i64 %1059, %1063
  %1065 = getelementptr inbounds double, ptr %1057, i64 %1064
  %1066 = load ptr, ptr %22, align 8, !tbaa !5
  %1067 = load ptr, ptr %27, align 8, !tbaa !5
  %1068 = load i64, ptr %47, align 8, !tbaa !9
  %1069 = add nsw i64 %1068, 1
  %1070 = getelementptr inbounds double, ptr %1067, i64 %1069
  %1071 = load ptr, ptr %23, align 8, !tbaa !5
  %1072 = load i64, ptr %47, align 8, !tbaa !9
  %1073 = add nsw i64 %1072, 1
  %1074 = getelementptr inbounds double, ptr %1071, i64 %1073
  %1075 = load ptr, ptr %25, align 8, !tbaa !5
  %1076 = load i64, ptr %47, align 8, !tbaa !9
  %1077 = load i64, ptr %45, align 8, !tbaa !9
  %1078 = mul nsw i64 %1076, %1077
  %1079 = add nsw i64 %1078, 1
  %1080 = load i64, ptr %47, align 8, !tbaa !9
  %1081 = add nsw i64 %1080, 1
  %1082 = load i64, ptr %32, align 8, !tbaa !9
  %1083 = mul nsw i64 %1081, %1082
  %1084 = add nsw i64 %1079, %1083
  %1085 = getelementptr inbounds double, ptr %1075, i64 %1084
  %1086 = load ptr, ptr %26, align 8, !tbaa !5
  %1087 = load ptr, ptr %27, align 8, !tbaa !5
  %1088 = load ptr, ptr %20, align 8, !tbaa !5
  %1089 = load i64, ptr %1088, align 8, !tbaa !9
  %1090 = add nsw i64 %1089, 1
  %1091 = getelementptr inbounds double, ptr %1087, i64 %1090
  %1092 = call i32 @dgsvj0_(ptr noundef %1056, ptr noundef %34, ptr noundef %35, ptr noundef %1065, ptr noundef %1066, ptr noundef %1070, ptr noundef %1074, ptr noundef %62, ptr noundef %1085, ptr noundef %1086, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__2, ptr noundef %1091, ptr noundef %36, ptr noundef %67)
  %1093 = load ptr, ptr %19, align 8, !tbaa !5
  %1094 = load i64, ptr %1093, align 8, !tbaa !9
  %1095 = load i64, ptr %47, align 8, !tbaa !9
  %1096 = sub nsw i64 %1094, %1095
  store i64 %1096, ptr %34, align 8, !tbaa !9
  %1097 = load ptr, ptr %20, align 8, !tbaa !5
  %1098 = load i64, ptr %1097, align 8, !tbaa !9
  %1099 = load i64, ptr %47, align 8, !tbaa !9
  %1100 = sub nsw i64 %1098, %1099
  store i64 %1100, ptr %35, align 8, !tbaa !9
  %1101 = load ptr, ptr %28, align 8, !tbaa !5
  %1102 = load i64, ptr %1101, align 8, !tbaa !9
  %1103 = load ptr, ptr %20, align 8, !tbaa !5
  %1104 = load i64, ptr %1103, align 8, !tbaa !9
  %1105 = sub nsw i64 %1102, %1104
  store i64 %1105, ptr %36, align 8, !tbaa !9
  %1106 = load ptr, ptr %18, align 8, !tbaa !5
  %1107 = load ptr, ptr %21, align 8, !tbaa !5
  %1108 = load i64, ptr %47, align 8, !tbaa !9
  %1109 = add nsw i64 %1108, 1
  %1110 = load i64, ptr %47, align 8, !tbaa !9
  %1111 = add nsw i64 %1110, 1
  %1112 = load i64, ptr %30, align 8, !tbaa !9
  %1113 = mul nsw i64 %1111, %1112
  %1114 = add nsw i64 %1109, %1113
  %1115 = getelementptr inbounds double, ptr %1107, i64 %1114
  %1116 = load ptr, ptr %22, align 8, !tbaa !5
  %1117 = load ptr, ptr %27, align 8, !tbaa !5
  %1118 = load i64, ptr %47, align 8, !tbaa !9
  %1119 = add nsw i64 %1118, 1
  %1120 = getelementptr inbounds double, ptr %1117, i64 %1119
  %1121 = load ptr, ptr %23, align 8, !tbaa !5
  %1122 = load i64, ptr %47, align 8, !tbaa !9
  %1123 = add nsw i64 %1122, 1
  %1124 = getelementptr inbounds double, ptr %1121, i64 %1123
  %1125 = load ptr, ptr %25, align 8, !tbaa !5
  %1126 = load i64, ptr %47, align 8, !tbaa !9
  %1127 = load i64, ptr %45, align 8, !tbaa !9
  %1128 = mul nsw i64 %1126, %1127
  %1129 = add nsw i64 %1128, 1
  %1130 = load i64, ptr %47, align 8, !tbaa !9
  %1131 = add nsw i64 %1130, 1
  %1132 = load i64, ptr %32, align 8, !tbaa !9
  %1133 = mul nsw i64 %1131, %1132
  %1134 = add nsw i64 %1129, %1133
  %1135 = getelementptr inbounds double, ptr %1125, i64 %1134
  %1136 = load ptr, ptr %26, align 8, !tbaa !5
  %1137 = load ptr, ptr %27, align 8, !tbaa !5
  %1138 = load ptr, ptr %20, align 8, !tbaa !5
  %1139 = load i64, ptr %1138, align 8, !tbaa !9
  %1140 = add nsw i64 %1139, 1
  %1141 = getelementptr inbounds double, ptr %1137, i64 %1140
  %1142 = call i32 @dgsvj1_(ptr noundef %1106, ptr noundef %34, ptr noundef %35, ptr noundef %48, ptr noundef %1115, ptr noundef %1116, ptr noundef %1120, ptr noundef %1124, ptr noundef %62, ptr noundef %1135, ptr noundef %1136, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__1, ptr noundef %1141, ptr noundef %36, ptr noundef %67)
  %1143 = load ptr, ptr %19, align 8, !tbaa !5
  %1144 = load i64, ptr %1143, align 8, !tbaa !9
  %1145 = load i64, ptr %48, align 8, !tbaa !9
  %1146 = sub nsw i64 %1144, %1145
  store i64 %1146, ptr %34, align 8, !tbaa !9
  %1147 = load i64, ptr %47, align 8, !tbaa !9
  %1148 = load i64, ptr %48, align 8, !tbaa !9
  %1149 = sub nsw i64 %1147, %1148
  store i64 %1149, ptr %35, align 8, !tbaa !9
  %1150 = load ptr, ptr %28, align 8, !tbaa !5
  %1151 = load i64, ptr %1150, align 8, !tbaa !9
  %1152 = load ptr, ptr %20, align 8, !tbaa !5
  %1153 = load i64, ptr %1152, align 8, !tbaa !9
  %1154 = sub nsw i64 %1151, %1153
  store i64 %1154, ptr %36, align 8, !tbaa !9
  %1155 = load ptr, ptr %18, align 8, !tbaa !5
  %1156 = load ptr, ptr %21, align 8, !tbaa !5
  %1157 = load i64, ptr %48, align 8, !tbaa !9
  %1158 = add nsw i64 %1157, 1
  %1159 = load i64, ptr %48, align 8, !tbaa !9
  %1160 = add nsw i64 %1159, 1
  %1161 = load i64, ptr %30, align 8, !tbaa !9
  %1162 = mul nsw i64 %1160, %1161
  %1163 = add nsw i64 %1158, %1162
  %1164 = getelementptr inbounds double, ptr %1156, i64 %1163
  %1165 = load ptr, ptr %22, align 8, !tbaa !5
  %1166 = load ptr, ptr %27, align 8, !tbaa !5
  %1167 = load i64, ptr %48, align 8, !tbaa !9
  %1168 = add nsw i64 %1167, 1
  %1169 = getelementptr inbounds double, ptr %1166, i64 %1168
  %1170 = load ptr, ptr %23, align 8, !tbaa !5
  %1171 = load i64, ptr %48, align 8, !tbaa !9
  %1172 = add nsw i64 %1171, 1
  %1173 = getelementptr inbounds double, ptr %1170, i64 %1172
  %1174 = load ptr, ptr %25, align 8, !tbaa !5
  %1175 = load i64, ptr %48, align 8, !tbaa !9
  %1176 = load i64, ptr %45, align 8, !tbaa !9
  %1177 = mul nsw i64 %1175, %1176
  %1178 = add nsw i64 %1177, 1
  %1179 = load i64, ptr %48, align 8, !tbaa !9
  %1180 = add nsw i64 %1179, 1
  %1181 = load i64, ptr %32, align 8, !tbaa !9
  %1182 = mul nsw i64 %1180, %1181
  %1183 = add nsw i64 %1178, %1182
  %1184 = getelementptr inbounds double, ptr %1174, i64 %1183
  %1185 = load ptr, ptr %26, align 8, !tbaa !5
  %1186 = load ptr, ptr %27, align 8, !tbaa !5
  %1187 = load ptr, ptr %20, align 8, !tbaa !5
  %1188 = load i64, ptr %1187, align 8, !tbaa !9
  %1189 = add nsw i64 %1188, 1
  %1190 = getelementptr inbounds double, ptr %1186, i64 %1189
  %1191 = call i32 @dgsvj0_(ptr noundef %1155, ptr noundef %34, ptr noundef %35, ptr noundef %1164, ptr noundef %1165, ptr noundef %1169, ptr noundef %1173, ptr noundef %62, ptr noundef %1184, ptr noundef %1185, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__1, ptr noundef %1190, ptr noundef %36, ptr noundef %67)
  %1192 = load ptr, ptr %28, align 8, !tbaa !5
  %1193 = load i64, ptr %1192, align 8, !tbaa !9
  %1194 = load ptr, ptr %20, align 8, !tbaa !5
  %1195 = load i64, ptr %1194, align 8, !tbaa !9
  %1196 = sub nsw i64 %1193, %1195
  store i64 %1196, ptr %34, align 8, !tbaa !9
  %1197 = load ptr, ptr %18, align 8, !tbaa !5
  %1198 = load ptr, ptr %19, align 8, !tbaa !5
  %1199 = load ptr, ptr %21, align 8, !tbaa !5
  %1200 = load i64, ptr %31, align 8, !tbaa !9
  %1201 = getelementptr inbounds double, ptr %1199, i64 %1200
  %1202 = load ptr, ptr %22, align 8, !tbaa !5
  %1203 = load ptr, ptr %27, align 8, !tbaa !5
  %1204 = getelementptr inbounds double, ptr %1203, i64 1
  %1205 = load ptr, ptr %23, align 8, !tbaa !5
  %1206 = getelementptr inbounds double, ptr %1205, i64 1
  %1207 = load ptr, ptr %25, align 8, !tbaa !5
  %1208 = load i64, ptr %33, align 8, !tbaa !9
  %1209 = getelementptr inbounds double, ptr %1207, i64 %1208
  %1210 = load ptr, ptr %26, align 8, !tbaa !5
  %1211 = load ptr, ptr %27, align 8, !tbaa !5
  %1212 = load ptr, ptr %20, align 8, !tbaa !5
  %1213 = load i64, ptr %1212, align 8, !tbaa !9
  %1214 = add nsw i64 %1213, 1
  %1215 = getelementptr inbounds double, ptr %1211, i64 %1214
  %1216 = call i32 @dgsvj0_(ptr noundef %1197, ptr noundef %1198, ptr noundef %48, ptr noundef %1201, ptr noundef %1202, ptr noundef %1204, ptr noundef %1206, ptr noundef %62, ptr noundef %1209, ptr noundef %1210, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__1, ptr noundef %1215, ptr noundef %34, ptr noundef %67)
  %1217 = load ptr, ptr %28, align 8, !tbaa !5
  %1218 = load i64, ptr %1217, align 8, !tbaa !9
  %1219 = load ptr, ptr %20, align 8, !tbaa !5
  %1220 = load i64, ptr %1219, align 8, !tbaa !9
  %1221 = sub nsw i64 %1218, %1220
  store i64 %1221, ptr %34, align 8, !tbaa !9
  %1222 = load ptr, ptr %18, align 8, !tbaa !5
  %1223 = load ptr, ptr %19, align 8, !tbaa !5
  %1224 = load ptr, ptr %21, align 8, !tbaa !5
  %1225 = load i64, ptr %31, align 8, !tbaa !9
  %1226 = getelementptr inbounds double, ptr %1224, i64 %1225
  %1227 = load ptr, ptr %22, align 8, !tbaa !5
  %1228 = load ptr, ptr %27, align 8, !tbaa !5
  %1229 = getelementptr inbounds double, ptr %1228, i64 1
  %1230 = load ptr, ptr %23, align 8, !tbaa !5
  %1231 = getelementptr inbounds double, ptr %1230, i64 1
  %1232 = load ptr, ptr %25, align 8, !tbaa !5
  %1233 = load i64, ptr %33, align 8, !tbaa !9
  %1234 = getelementptr inbounds double, ptr %1232, i64 %1233
  %1235 = load ptr, ptr %26, align 8, !tbaa !5
  %1236 = load ptr, ptr %27, align 8, !tbaa !5
  %1237 = load ptr, ptr %20, align 8, !tbaa !5
  %1238 = load i64, ptr %1237, align 8, !tbaa !9
  %1239 = add nsw i64 %1238, 1
  %1240 = getelementptr inbounds double, ptr %1236, i64 %1239
  %1241 = call i32 @dgsvj1_(ptr noundef %1222, ptr noundef %1223, ptr noundef %47, ptr noundef %48, ptr noundef %1226, ptr noundef %1227, ptr noundef %1229, ptr noundef %1231, ptr noundef %62, ptr noundef %1234, ptr noundef %1235, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__1, ptr noundef %1240, ptr noundef %34, ptr noundef %67)
  br label %1378

1242:                                             ; preds = %990
  %1243 = load i64, ptr %83, align 8, !tbaa !9
  %1244 = icmp ne i64 %1243, 0
  br i1 %1244, label %1245, label %1377

1245:                                             ; preds = %1242
  %1246 = load ptr, ptr %28, align 8, !tbaa !5
  %1247 = load i64, ptr %1246, align 8, !tbaa !9
  %1248 = load ptr, ptr %20, align 8, !tbaa !5
  %1249 = load i64, ptr %1248, align 8, !tbaa !9
  %1250 = sub nsw i64 %1247, %1249
  store i64 %1250, ptr %34, align 8, !tbaa !9
  %1251 = load ptr, ptr %18, align 8, !tbaa !5
  %1252 = load ptr, ptr %21, align 8, !tbaa !5
  %1253 = load i64, ptr %31, align 8, !tbaa !9
  %1254 = getelementptr inbounds double, ptr %1252, i64 %1253
  %1255 = load ptr, ptr %22, align 8, !tbaa !5
  %1256 = load ptr, ptr %27, align 8, !tbaa !5
  %1257 = getelementptr inbounds double, ptr %1256, i64 1
  %1258 = load ptr, ptr %23, align 8, !tbaa !5
  %1259 = getelementptr inbounds double, ptr %1258, i64 1
  %1260 = load ptr, ptr %25, align 8, !tbaa !5
  %1261 = load i64, ptr %33, align 8, !tbaa !9
  %1262 = getelementptr inbounds double, ptr %1260, i64 %1261
  %1263 = load ptr, ptr %26, align 8, !tbaa !5
  %1264 = load ptr, ptr %27, align 8, !tbaa !5
  %1265 = load ptr, ptr %20, align 8, !tbaa !5
  %1266 = load i64, ptr %1265, align 8, !tbaa !9
  %1267 = add nsw i64 %1266, 1
  %1268 = getelementptr inbounds double, ptr %1264, i64 %1267
  %1269 = call i32 @dgsvj0_(ptr noundef %1251, ptr noundef %48, ptr noundef %48, ptr noundef %1254, ptr noundef %1255, ptr noundef %1257, ptr noundef %1259, ptr noundef %62, ptr noundef %1262, ptr noundef %1263, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__2, ptr noundef %1268, ptr noundef %34, ptr noundef %67)
  %1270 = load ptr, ptr %28, align 8, !tbaa !5
  %1271 = load i64, ptr %1270, align 8, !tbaa !9
  %1272 = load ptr, ptr %20, align 8, !tbaa !5
  %1273 = load i64, ptr %1272, align 8, !tbaa !9
  %1274 = sub nsw i64 %1271, %1273
  store i64 %1274, ptr %34, align 8, !tbaa !9
  %1275 = load ptr, ptr %18, align 8, !tbaa !5
  %1276 = load ptr, ptr %21, align 8, !tbaa !5
  %1277 = load i64, ptr %48, align 8, !tbaa !9
  %1278 = add nsw i64 %1277, 1
  %1279 = load i64, ptr %30, align 8, !tbaa !9
  %1280 = mul nsw i64 %1278, %1279
  %1281 = add nsw i64 %1280, 1
  %1282 = getelementptr inbounds double, ptr %1276, i64 %1281
  %1283 = load ptr, ptr %22, align 8, !tbaa !5
  %1284 = load ptr, ptr %27, align 8, !tbaa !5
  %1285 = load i64, ptr %48, align 8, !tbaa !9
  %1286 = add nsw i64 %1285, 1
  %1287 = getelementptr inbounds double, ptr %1284, i64 %1286
  %1288 = load ptr, ptr %23, align 8, !tbaa !5
  %1289 = load i64, ptr %48, align 8, !tbaa !9
  %1290 = add nsw i64 %1289, 1
  %1291 = getelementptr inbounds double, ptr %1288, i64 %1290
  %1292 = load ptr, ptr %25, align 8, !tbaa !5
  %1293 = load i64, ptr %48, align 8, !tbaa !9
  %1294 = load i64, ptr %45, align 8, !tbaa !9
  %1295 = mul nsw i64 %1293, %1294
  %1296 = add nsw i64 %1295, 1
  %1297 = load i64, ptr %48, align 8, !tbaa !9
  %1298 = add nsw i64 %1297, 1
  %1299 = load i64, ptr %32, align 8, !tbaa !9
  %1300 = mul nsw i64 %1298, %1299
  %1301 = add nsw i64 %1296, %1300
  %1302 = getelementptr inbounds double, ptr %1292, i64 %1301
  %1303 = load ptr, ptr %26, align 8, !tbaa !5
  %1304 = load ptr, ptr %27, align 8, !tbaa !5
  %1305 = load ptr, ptr %20, align 8, !tbaa !5
  %1306 = load i64, ptr %1305, align 8, !tbaa !9
  %1307 = add nsw i64 %1306, 1
  %1308 = getelementptr inbounds double, ptr %1304, i64 %1307
  %1309 = call i32 @dgsvj0_(ptr noundef %1275, ptr noundef %47, ptr noundef %48, ptr noundef %1282, ptr noundef %1283, ptr noundef %1287, ptr noundef %1291, ptr noundef %62, ptr noundef %1302, ptr noundef %1303, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__1, ptr noundef %1308, ptr noundef %34, ptr noundef %67)
  %1310 = load ptr, ptr %28, align 8, !tbaa !5
  %1311 = load i64, ptr %1310, align 8, !tbaa !9
  %1312 = load ptr, ptr %20, align 8, !tbaa !5
  %1313 = load i64, ptr %1312, align 8, !tbaa !9
  %1314 = sub nsw i64 %1311, %1313
  store i64 %1314, ptr %34, align 8, !tbaa !9
  %1315 = load ptr, ptr %18, align 8, !tbaa !5
  %1316 = load ptr, ptr %21, align 8, !tbaa !5
  %1317 = load i64, ptr %31, align 8, !tbaa !9
  %1318 = getelementptr inbounds double, ptr %1316, i64 %1317
  %1319 = load ptr, ptr %22, align 8, !tbaa !5
  %1320 = load ptr, ptr %27, align 8, !tbaa !5
  %1321 = getelementptr inbounds double, ptr %1320, i64 1
  %1322 = load ptr, ptr %23, align 8, !tbaa !5
  %1323 = getelementptr inbounds double, ptr %1322, i64 1
  %1324 = load ptr, ptr %25, align 8, !tbaa !5
  %1325 = load i64, ptr %33, align 8, !tbaa !9
  %1326 = getelementptr inbounds double, ptr %1324, i64 %1325
  %1327 = load ptr, ptr %26, align 8, !tbaa !5
  %1328 = load ptr, ptr %27, align 8, !tbaa !5
  %1329 = load ptr, ptr %20, align 8, !tbaa !5
  %1330 = load i64, ptr %1329, align 8, !tbaa !9
  %1331 = add nsw i64 %1330, 1
  %1332 = getelementptr inbounds double, ptr %1328, i64 %1331
  %1333 = call i32 @dgsvj1_(ptr noundef %1315, ptr noundef %47, ptr noundef %47, ptr noundef %48, ptr noundef %1318, ptr noundef %1319, ptr noundef %1321, ptr noundef %1323, ptr noundef %62, ptr noundef %1326, ptr noundef %1327, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__1, ptr noundef %1332, ptr noundef %34, ptr noundef %67)
  %1334 = load i64, ptr %47, align 8, !tbaa !9
  %1335 = load i64, ptr %48, align 8, !tbaa !9
  %1336 = add nsw i64 %1334, %1335
  store i64 %1336, ptr %34, align 8, !tbaa !9
  %1337 = load ptr, ptr %28, align 8, !tbaa !5
  %1338 = load i64, ptr %1337, align 8, !tbaa !9
  %1339 = load ptr, ptr %20, align 8, !tbaa !5
  %1340 = load i64, ptr %1339, align 8, !tbaa !9
  %1341 = sub nsw i64 %1338, %1340
  store i64 %1341, ptr %35, align 8, !tbaa !9
  %1342 = load ptr, ptr %18, align 8, !tbaa !5
  %1343 = load ptr, ptr %21, align 8, !tbaa !5
  %1344 = load i64, ptr %47, align 8, !tbaa !9
  %1345 = add nsw i64 %1344, 1
  %1346 = load i64, ptr %30, align 8, !tbaa !9
  %1347 = mul nsw i64 %1345, %1346
  %1348 = add nsw i64 %1347, 1
  %1349 = getelementptr inbounds double, ptr %1343, i64 %1348
  %1350 = load ptr, ptr %22, align 8, !tbaa !5
  %1351 = load ptr, ptr %27, align 8, !tbaa !5
  %1352 = load i64, ptr %47, align 8, !tbaa !9
  %1353 = add nsw i64 %1352, 1
  %1354 = getelementptr inbounds double, ptr %1351, i64 %1353
  %1355 = load ptr, ptr %23, align 8, !tbaa !5
  %1356 = load i64, ptr %47, align 8, !tbaa !9
  %1357 = add nsw i64 %1356, 1
  %1358 = getelementptr inbounds double, ptr %1355, i64 %1357
  %1359 = load ptr, ptr %25, align 8, !tbaa !5
  %1360 = load i64, ptr %47, align 8, !tbaa !9
  %1361 = load i64, ptr %45, align 8, !tbaa !9
  %1362 = mul nsw i64 %1360, %1361
  %1363 = add nsw i64 %1362, 1
  %1364 = load i64, ptr %47, align 8, !tbaa !9
  %1365 = add nsw i64 %1364, 1
  %1366 = load i64, ptr %32, align 8, !tbaa !9
  %1367 = mul nsw i64 %1365, %1366
  %1368 = add nsw i64 %1363, %1367
  %1369 = getelementptr inbounds double, ptr %1359, i64 %1368
  %1370 = load ptr, ptr %26, align 8, !tbaa !5
  %1371 = load ptr, ptr %27, align 8, !tbaa !5
  %1372 = load ptr, ptr %20, align 8, !tbaa !5
  %1373 = load i64, ptr %1372, align 8, !tbaa !9
  %1374 = add nsw i64 %1373, 1
  %1375 = getelementptr inbounds double, ptr %1371, i64 %1374
  %1376 = call i32 @dgsvj0_(ptr noundef %1342, ptr noundef %34, ptr noundef %48, ptr noundef %1349, ptr noundef %1350, ptr noundef %1354, ptr noundef %1358, ptr noundef %62, ptr noundef %1369, ptr noundef %1370, ptr noundef %98, ptr noundef %76, ptr noundef %61, ptr noundef @c__1, ptr noundef %1375, ptr noundef %35, ptr noundef %67)
  br label %1377

1377:                                             ; preds = %1245, %1242
  br label %1378

1378:                                             ; preds = %1377, %993
  br label %1379

1379:                                             ; preds = %1378, %974, %961
  store i64 1, ptr %43, align 8, !tbaa !9
  br label %1380

1380:                                             ; preds = %4352, %1379
  %1381 = load i64, ptr %43, align 8, !tbaa !9
  %1382 = icmp sle i64 %1381, 30
  br i1 %1382, label %1383, label %4355

1383:                                             ; preds = %1380
  store double 0.000000e+00, ptr %88, align 8, !tbaa !11
  store double 0.000000e+00, ptr %90, align 8, !tbaa !11
  store i64 0, ptr %93, align 8, !tbaa !9
  store i64 0, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %42, align 8, !tbaa !9
  %1384 = load i64, ptr %60, align 8, !tbaa !9
  store i64 %1384, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %1385

1385:                                             ; preds = %4243, %1383
  %1386 = load i64, ptr %58, align 8, !tbaa !9
  %1387 = load i64, ptr %34, align 8, !tbaa !9
  %1388 = icmp sle i64 %1386, %1387
  br i1 %1388, label %1389, label %4246

1389:                                             ; preds = %1385
  %1390 = load i64, ptr %58, align 8, !tbaa !9
  %1391 = sub nsw i64 %1390, 1
  %1392 = load i64, ptr %56, align 8, !tbaa !9
  %1393 = mul nsw i64 %1391, %1392
  %1394 = add nsw i64 %1393, 1
  store i64 %1394, ptr %57, align 8, !tbaa !9
  %1395 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %1395, ptr %36, align 8, !tbaa !9
  %1396 = load i64, ptr %60, align 8, !tbaa !9
  %1397 = load i64, ptr %58, align 8, !tbaa !9
  %1398 = sub nsw i64 %1396, %1397
  store i64 %1398, ptr %37, align 8, !tbaa !9
  %1399 = load i64, ptr %36, align 8, !tbaa !9
  %1400 = load i64, ptr %37, align 8, !tbaa !9
  %1401 = icmp sle i64 %1399, %1400
  br i1 %1401, label %1402, label %1404

1402:                                             ; preds = %1389
  %1403 = load i64, ptr %36, align 8, !tbaa !9
  br label %1406

1404:                                             ; preds = %1389
  %1405 = load i64, ptr %37, align 8, !tbaa !9
  br label %1406

1406:                                             ; preds = %1404, %1402
  %1407 = phi i64 [ %1403, %1402 ], [ %1405, %1404 ]
  store i64 %1407, ptr %35, align 8, !tbaa !9
  store i64 0, ptr %53, align 8, !tbaa !9
  br label %1408

1408:                                             ; preds = %2797, %1406
  %1409 = load i64, ptr %53, align 8, !tbaa !9
  %1410 = load i64, ptr %35, align 8, !tbaa !9
  %1411 = icmp sle i64 %1409, %1410
  br i1 %1411, label %1412, label %2800

1412:                                             ; preds = %1408
  %1413 = load i64, ptr %53, align 8, !tbaa !9
  %1414 = load i64, ptr %56, align 8, !tbaa !9
  %1415 = mul nsw i64 %1413, %1414
  %1416 = load i64, ptr %57, align 8, !tbaa !9
  %1417 = add nsw i64 %1416, %1415
  store i64 %1417, ptr %57, align 8, !tbaa !9
  %1418 = load i64, ptr %57, align 8, !tbaa !9
  %1419 = load i64, ptr %56, align 8, !tbaa !9
  %1420 = add nsw i64 %1418, %1419
  %1421 = sub nsw i64 %1420, 1
  store i64 %1421, ptr %37, align 8, !tbaa !9
  %1422 = load ptr, ptr %20, align 8, !tbaa !5
  %1423 = load i64, ptr %1422, align 8, !tbaa !9
  %1424 = sub nsw i64 %1423, 1
  store i64 %1424, ptr %38, align 8, !tbaa !9
  %1425 = load i64, ptr %37, align 8, !tbaa !9
  %1426 = load i64, ptr %38, align 8, !tbaa !9
  %1427 = icmp sle i64 %1425, %1426
  br i1 %1427, label %1428, label %1430

1428:                                             ; preds = %1412
  %1429 = load i64, ptr %37, align 8, !tbaa !9
  br label %1432

1430:                                             ; preds = %1412
  %1431 = load i64, ptr %38, align 8, !tbaa !9
  br label %1432

1432:                                             ; preds = %1430, %1428
  %1433 = phi i64 [ %1429, %1428 ], [ %1431, %1430 ]
  store i64 %1433, ptr %36, align 8, !tbaa !9
  %1434 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %1434, ptr %44, align 8, !tbaa !9
  br label %1435

1435:                                             ; preds = %2793, %1432
  %1436 = load i64, ptr %44, align 8, !tbaa !9
  %1437 = load i64, ptr %36, align 8, !tbaa !9
  %1438 = icmp sle i64 %1436, %1437
  br i1 %1438, label %1439, label %2796

1439:                                             ; preds = %1435
  %1440 = load ptr, ptr %20, align 8, !tbaa !5
  %1441 = load i64, ptr %1440, align 8, !tbaa !9
  %1442 = load i64, ptr %44, align 8, !tbaa !9
  %1443 = sub nsw i64 %1441, %1442
  %1444 = add nsw i64 %1443, 1
  store i64 %1444, ptr %37, align 8, !tbaa !9
  %1445 = load ptr, ptr %23, align 8, !tbaa !5
  %1446 = load i64, ptr %44, align 8, !tbaa !9
  %1447 = getelementptr inbounds double, ptr %1445, i64 %1446
  %1448 = call i64 @f2c_idamax(ptr noundef %37, ptr noundef %1447, ptr noundef @c__1)
  %1449 = load i64, ptr %44, align 8, !tbaa !9
  %1450 = add nsw i64 %1448, %1449
  %1451 = sub nsw i64 %1450, 1
  store i64 %1451, ptr %45, align 8, !tbaa !9
  %1452 = load i64, ptr %44, align 8, !tbaa !9
  %1453 = load i64, ptr %45, align 8, !tbaa !9
  %1454 = icmp ne i64 %1452, %1453
  br i1 %1454, label %1455, label %1517

1455:                                             ; preds = %1439
  %1456 = load ptr, ptr %19, align 8, !tbaa !5
  %1457 = load ptr, ptr %21, align 8, !tbaa !5
  %1458 = load i64, ptr %44, align 8, !tbaa !9
  %1459 = load i64, ptr %30, align 8, !tbaa !9
  %1460 = mul nsw i64 %1458, %1459
  %1461 = add nsw i64 %1460, 1
  %1462 = getelementptr inbounds double, ptr %1457, i64 %1461
  %1463 = load ptr, ptr %21, align 8, !tbaa !5
  %1464 = load i64, ptr %45, align 8, !tbaa !9
  %1465 = load i64, ptr %30, align 8, !tbaa !9
  %1466 = mul nsw i64 %1464, %1465
  %1467 = add nsw i64 %1466, 1
  %1468 = getelementptr inbounds double, ptr %1463, i64 %1467
  %1469 = call i32 @f2c_dswap(ptr noundef %1456, ptr noundef %1462, ptr noundef @c__1, ptr noundef %1468, ptr noundef @c__1)
  %1470 = load i64, ptr %80, align 8, !tbaa !9
  %1471 = icmp ne i64 %1470, 0
  br i1 %1471, label %1472, label %1486

1472:                                             ; preds = %1455
  %1473 = load ptr, ptr %25, align 8, !tbaa !5
  %1474 = load i64, ptr %44, align 8, !tbaa !9
  %1475 = load i64, ptr %32, align 8, !tbaa !9
  %1476 = mul nsw i64 %1474, %1475
  %1477 = add nsw i64 %1476, 1
  %1478 = getelementptr inbounds double, ptr %1473, i64 %1477
  %1479 = load ptr, ptr %25, align 8, !tbaa !5
  %1480 = load i64, ptr %45, align 8, !tbaa !9
  %1481 = load i64, ptr %32, align 8, !tbaa !9
  %1482 = mul nsw i64 %1480, %1481
  %1483 = add nsw i64 %1482, 1
  %1484 = getelementptr inbounds double, ptr %1479, i64 %1483
  %1485 = call i32 @f2c_dswap(ptr noundef %62, ptr noundef %1478, ptr noundef @c__1, ptr noundef %1484, ptr noundef @c__1)
  br label %1486

1486:                                             ; preds = %1472, %1455
  %1487 = load ptr, ptr %23, align 8, !tbaa !5
  %1488 = load i64, ptr %44, align 8, !tbaa !9
  %1489 = getelementptr inbounds double, ptr %1487, i64 %1488
  %1490 = load double, ptr %1489, align 8, !tbaa !11
  store double %1490, ptr %69, align 8, !tbaa !11
  %1491 = load ptr, ptr %23, align 8, !tbaa !5
  %1492 = load i64, ptr %45, align 8, !tbaa !9
  %1493 = getelementptr inbounds double, ptr %1491, i64 %1492
  %1494 = load double, ptr %1493, align 8, !tbaa !11
  %1495 = load ptr, ptr %23, align 8, !tbaa !5
  %1496 = load i64, ptr %44, align 8, !tbaa !9
  %1497 = getelementptr inbounds double, ptr %1495, i64 %1496
  store double %1494, ptr %1497, align 8, !tbaa !11
  %1498 = load double, ptr %69, align 8, !tbaa !11
  %1499 = load ptr, ptr %23, align 8, !tbaa !5
  %1500 = load i64, ptr %45, align 8, !tbaa !9
  %1501 = getelementptr inbounds double, ptr %1499, i64 %1500
  store double %1498, ptr %1501, align 8, !tbaa !11
  %1502 = load ptr, ptr %27, align 8, !tbaa !5
  %1503 = load i64, ptr %44, align 8, !tbaa !9
  %1504 = getelementptr inbounds double, ptr %1502, i64 %1503
  %1505 = load double, ptr %1504, align 8, !tbaa !11
  store double %1505, ptr %69, align 8, !tbaa !11
  %1506 = load ptr, ptr %27, align 8, !tbaa !5
  %1507 = load i64, ptr %45, align 8, !tbaa !9
  %1508 = getelementptr inbounds double, ptr %1506, i64 %1507
  %1509 = load double, ptr %1508, align 8, !tbaa !11
  %1510 = load ptr, ptr %27, align 8, !tbaa !5
  %1511 = load i64, ptr %44, align 8, !tbaa !9
  %1512 = getelementptr inbounds double, ptr %1510, i64 %1511
  store double %1509, ptr %1512, align 8, !tbaa !11
  %1513 = load double, ptr %69, align 8, !tbaa !11
  %1514 = load ptr, ptr %27, align 8, !tbaa !5
  %1515 = load i64, ptr %45, align 8, !tbaa !9
  %1516 = getelementptr inbounds double, ptr %1514, i64 %1515
  store double %1513, ptr %1516, align 8, !tbaa !11
  br label %1517

1517:                                             ; preds = %1486, %1439
  %1518 = load i64, ptr %53, align 8, !tbaa !9
  %1519 = icmp eq i64 %1518, 0
  br i1 %1519, label %1520, label %1577

1520:                                             ; preds = %1517
  %1521 = load ptr, ptr %23, align 8, !tbaa !5
  %1522 = load i64, ptr %44, align 8, !tbaa !9
  %1523 = getelementptr inbounds double, ptr %1521, i64 %1522
  %1524 = load double, ptr %1523, align 8, !tbaa !11
  %1525 = load double, ptr %97, align 8, !tbaa !11
  %1526 = fcmp olt double %1524, %1525
  br i1 %1526, label %1527, label %1551

1527:                                             ; preds = %1520
  %1528 = load ptr, ptr %23, align 8, !tbaa !5
  %1529 = load i64, ptr %44, align 8, !tbaa !9
  %1530 = getelementptr inbounds double, ptr %1528, i64 %1529
  %1531 = load double, ptr %1530, align 8, !tbaa !11
  %1532 = load double, ptr %49, align 8, !tbaa !11
  %1533 = fcmp ogt double %1531, %1532
  br i1 %1533, label %1534, label %1551

1534:                                             ; preds = %1527
  %1535 = load ptr, ptr %19, align 8, !tbaa !5
  %1536 = load ptr, ptr %21, align 8, !tbaa !5
  %1537 = load i64, ptr %44, align 8, !tbaa !9
  %1538 = load i64, ptr %30, align 8, !tbaa !9
  %1539 = mul nsw i64 %1537, %1538
  %1540 = add nsw i64 %1539, 1
  %1541 = getelementptr inbounds double, ptr %1536, i64 %1540
  %1542 = call double @f2c_dnrm2(ptr noundef %1535, ptr noundef %1541, ptr noundef @c__1)
  %1543 = load ptr, ptr %27, align 8, !tbaa !5
  %1544 = load i64, ptr %44, align 8, !tbaa !9
  %1545 = getelementptr inbounds double, ptr %1543, i64 %1544
  %1546 = load double, ptr %1545, align 8, !tbaa !11
  %1547 = fmul double %1542, %1546
  %1548 = load ptr, ptr %23, align 8, !tbaa !5
  %1549 = load i64, ptr %44, align 8, !tbaa !9
  %1550 = getelementptr inbounds double, ptr %1548, i64 %1549
  store double %1547, ptr %1550, align 8, !tbaa !11
  br label %1572

1551:                                             ; preds = %1527, %1520
  store double 0.000000e+00, ptr %69, align 8, !tbaa !11
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  %1552 = load ptr, ptr %19, align 8, !tbaa !5
  %1553 = load ptr, ptr %21, align 8, !tbaa !5
  %1554 = load i64, ptr %44, align 8, !tbaa !9
  %1555 = load i64, ptr %30, align 8, !tbaa !9
  %1556 = mul nsw i64 %1554, %1555
  %1557 = add nsw i64 %1556, 1
  %1558 = getelementptr inbounds double, ptr %1553, i64 %1557
  %1559 = call i32 @dlassq_(ptr noundef %1552, ptr noundef %1558, ptr noundef @c__1, ptr noundef %69, ptr noundef %63)
  %1560 = load double, ptr %69, align 8, !tbaa !11
  %1561 = load double, ptr %63, align 8, !tbaa !11
  %1562 = call double @sqrt(double noundef %1561) #5
  %1563 = fmul double %1560, %1562
  %1564 = load ptr, ptr %27, align 8, !tbaa !5
  %1565 = load i64, ptr %44, align 8, !tbaa !9
  %1566 = getelementptr inbounds double, ptr %1564, i64 %1565
  %1567 = load double, ptr %1566, align 8, !tbaa !11
  %1568 = fmul double %1563, %1567
  %1569 = load ptr, ptr %23, align 8, !tbaa !5
  %1570 = load i64, ptr %44, align 8, !tbaa !9
  %1571 = getelementptr inbounds double, ptr %1569, i64 %1570
  store double %1568, ptr %1571, align 8, !tbaa !11
  br label %1572

1572:                                             ; preds = %1551, %1534
  %1573 = load ptr, ptr %23, align 8, !tbaa !5
  %1574 = load i64, ptr %44, align 8, !tbaa !9
  %1575 = getelementptr inbounds double, ptr %1573, i64 %1574
  %1576 = load double, ptr %1575, align 8, !tbaa !11
  store double %1576, ptr %63, align 8, !tbaa !11
  br label %1582

1577:                                             ; preds = %1517
  %1578 = load ptr, ptr %23, align 8, !tbaa !5
  %1579 = load i64, ptr %44, align 8, !tbaa !9
  %1580 = getelementptr inbounds double, ptr %1578, i64 %1579
  %1581 = load double, ptr %1580, align 8, !tbaa !11
  store double %1581, ptr %63, align 8, !tbaa !11
  br label %1582

1582:                                             ; preds = %1577, %1572
  %1583 = load double, ptr %63, align 8, !tbaa !11
  %1584 = fcmp ogt double %1583, 0.000000e+00
  br i1 %1584, label %1585, label %2761

1585:                                             ; preds = %1582
  store i64 0, ptr %42, align 8, !tbaa !9
  %1586 = load i64, ptr %57, align 8, !tbaa !9
  %1587 = load i64, ptr %56, align 8, !tbaa !9
  %1588 = add nsw i64 %1586, %1587
  %1589 = sub nsw i64 %1588, 1
  store i64 %1589, ptr %38, align 8, !tbaa !9
  %1590 = load i64, ptr %38, align 8, !tbaa !9
  %1591 = load ptr, ptr %20, align 8, !tbaa !5
  %1592 = load i64, ptr %1591, align 8, !tbaa !9
  %1593 = icmp sle i64 %1590, %1592
  br i1 %1593, label %1594, label %1596

1594:                                             ; preds = %1585
  %1595 = load i64, ptr %38, align 8, !tbaa !9
  br label %1599

1596:                                             ; preds = %1585
  %1597 = load ptr, ptr %20, align 8, !tbaa !5
  %1598 = load i64, ptr %1597, align 8, !tbaa !9
  br label %1599

1599:                                             ; preds = %1596, %1594
  %1600 = phi i64 [ %1595, %1594 ], [ %1598, %1596 ]
  store i64 %1600, ptr %37, align 8, !tbaa !9
  %1601 = load i64, ptr %44, align 8, !tbaa !9
  %1602 = add nsw i64 %1601, 1
  store i64 %1602, ptr %45, align 8, !tbaa !9
  br label %1603

1603:                                             ; preds = %2752, %1599
  %1604 = load i64, ptr %45, align 8, !tbaa !9
  %1605 = load i64, ptr %37, align 8, !tbaa !9
  %1606 = icmp sle i64 %1604, %1605
  br i1 %1606, label %1607, label %2755

1607:                                             ; preds = %1603
  %1608 = load ptr, ptr %23, align 8, !tbaa !5
  %1609 = load i64, ptr %45, align 8, !tbaa !9
  %1610 = getelementptr inbounds double, ptr %1608, i64 %1609
  %1611 = load double, ptr %1610, align 8, !tbaa !11
  store double %1611, ptr %65, align 8, !tbaa !11
  %1612 = load double, ptr %65, align 8, !tbaa !11
  %1613 = fcmp ogt double %1612, 0.000000e+00
  br i1 %1613, label %1614, label %2727

1614:                                             ; preds = %1607
  %1615 = load double, ptr %63, align 8, !tbaa !11
  store double %1615, ptr %68, align 8, !tbaa !11
  %1616 = load double, ptr %65, align 8, !tbaa !11
  %1617 = fcmp oge double %1616, 1.000000e+00
  br i1 %1617, label %1618, label %1706

1618:                                             ; preds = %1614
  %1619 = load double, ptr %75, align 8, !tbaa !11
  %1620 = load double, ptr %63, align 8, !tbaa !11
  %1621 = fmul double %1619, %1620
  %1622 = load double, ptr %65, align 8, !tbaa !11
  %1623 = fcmp ole double %1621, %1622
  %1624 = zext i1 %1623 to i32
  %1625 = sext i32 %1624 to i64
  store i64 %1625, ptr %84, align 8, !tbaa !9
  %1626 = load double, ptr %63, align 8, !tbaa !11
  %1627 = load double, ptr %55, align 8, !tbaa !11
  %1628 = load double, ptr %65, align 8, !tbaa !11
  %1629 = fdiv double %1627, %1628
  %1630 = fcmp olt double %1626, %1629
  br i1 %1630, label %1631, label %1660

1631:                                             ; preds = %1618
  %1632 = load ptr, ptr %19, align 8, !tbaa !5
  %1633 = load ptr, ptr %21, align 8, !tbaa !5
  %1634 = load i64, ptr %44, align 8, !tbaa !9
  %1635 = load i64, ptr %30, align 8, !tbaa !9
  %1636 = mul nsw i64 %1634, %1635
  %1637 = add nsw i64 %1636, 1
  %1638 = getelementptr inbounds double, ptr %1633, i64 %1637
  %1639 = load ptr, ptr %21, align 8, !tbaa !5
  %1640 = load i64, ptr %45, align 8, !tbaa !9
  %1641 = load i64, ptr %30, align 8, !tbaa !9
  %1642 = mul nsw i64 %1640, %1641
  %1643 = add nsw i64 %1642, 1
  %1644 = getelementptr inbounds double, ptr %1639, i64 %1643
  %1645 = call double @f2c_ddot(ptr noundef %1632, ptr noundef %1638, ptr noundef @c__1, ptr noundef %1644, ptr noundef @c__1)
  %1646 = load ptr, ptr %27, align 8, !tbaa !5
  %1647 = load i64, ptr %44, align 8, !tbaa !9
  %1648 = getelementptr inbounds double, ptr %1646, i64 %1647
  %1649 = load double, ptr %1648, align 8, !tbaa !11
  %1650 = fmul double %1645, %1649
  %1651 = load ptr, ptr %27, align 8, !tbaa !5
  %1652 = load i64, ptr %45, align 8, !tbaa !9
  %1653 = getelementptr inbounds double, ptr %1651, i64 %1652
  %1654 = load double, ptr %1653, align 8, !tbaa !11
  %1655 = fmul double %1650, %1654
  %1656 = load double, ptr %65, align 8, !tbaa !11
  %1657 = fdiv double %1655, %1656
  %1658 = load double, ptr %63, align 8, !tbaa !11
  %1659 = fdiv double %1657, %1658
  store double %1659, ptr %64, align 8, !tbaa !11
  br label %1705

1660:                                             ; preds = %1618
  %1661 = load ptr, ptr %19, align 8, !tbaa !5
  %1662 = load ptr, ptr %21, align 8, !tbaa !5
  %1663 = load i64, ptr %44, align 8, !tbaa !9
  %1664 = load i64, ptr %30, align 8, !tbaa !9
  %1665 = mul nsw i64 %1663, %1664
  %1666 = add nsw i64 %1665, 1
  %1667 = getelementptr inbounds double, ptr %1662, i64 %1666
  %1668 = load ptr, ptr %27, align 8, !tbaa !5
  %1669 = load ptr, ptr %20, align 8, !tbaa !5
  %1670 = load i64, ptr %1669, align 8, !tbaa !9
  %1671 = add nsw i64 %1670, 1
  %1672 = getelementptr inbounds double, ptr %1668, i64 %1671
  %1673 = call i32 @f2c_dcopy(ptr noundef %1661, ptr noundef %1667, ptr noundef @c__1, ptr noundef %1672, ptr noundef @c__1)
  %1674 = load ptr, ptr %27, align 8, !tbaa !5
  %1675 = load i64, ptr %44, align 8, !tbaa !9
  %1676 = getelementptr inbounds double, ptr %1674, i64 %1675
  %1677 = load ptr, ptr %19, align 8, !tbaa !5
  %1678 = load ptr, ptr %27, align 8, !tbaa !5
  %1679 = load ptr, ptr %20, align 8, !tbaa !5
  %1680 = load i64, ptr %1679, align 8, !tbaa !9
  %1681 = add nsw i64 %1680, 1
  %1682 = getelementptr inbounds double, ptr %1678, i64 %1681
  %1683 = load ptr, ptr %22, align 8, !tbaa !5
  %1684 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef %1676, ptr noundef %1677, ptr noundef @c__1, ptr noundef %1682, ptr noundef %1683, ptr noundef %67)
  %1685 = load ptr, ptr %19, align 8, !tbaa !5
  %1686 = load ptr, ptr %27, align 8, !tbaa !5
  %1687 = load ptr, ptr %20, align 8, !tbaa !5
  %1688 = load i64, ptr %1687, align 8, !tbaa !9
  %1689 = add nsw i64 %1688, 1
  %1690 = getelementptr inbounds double, ptr %1686, i64 %1689
  %1691 = load ptr, ptr %21, align 8, !tbaa !5
  %1692 = load i64, ptr %45, align 8, !tbaa !9
  %1693 = load i64, ptr %30, align 8, !tbaa !9
  %1694 = mul nsw i64 %1692, %1693
  %1695 = add nsw i64 %1694, 1
  %1696 = getelementptr inbounds double, ptr %1691, i64 %1695
  %1697 = call double @f2c_ddot(ptr noundef %1685, ptr noundef %1690, ptr noundef @c__1, ptr noundef %1696, ptr noundef @c__1)
  %1698 = load ptr, ptr %27, align 8, !tbaa !5
  %1699 = load i64, ptr %45, align 8, !tbaa !9
  %1700 = getelementptr inbounds double, ptr %1698, i64 %1699
  %1701 = load double, ptr %1700, align 8, !tbaa !11
  %1702 = fmul double %1697, %1701
  %1703 = load double, ptr %65, align 8, !tbaa !11
  %1704 = fdiv double %1702, %1703
  store double %1704, ptr %64, align 8, !tbaa !11
  br label %1705

1705:                                             ; preds = %1660, %1631
  br label %1794

1706:                                             ; preds = %1614
  %1707 = load double, ptr %63, align 8, !tbaa !11
  %1708 = load double, ptr %65, align 8, !tbaa !11
  %1709 = load double, ptr %75, align 8, !tbaa !11
  %1710 = fdiv double %1708, %1709
  %1711 = fcmp ole double %1707, %1710
  %1712 = zext i1 %1711 to i32
  %1713 = sext i32 %1712 to i64
  store i64 %1713, ptr %84, align 8, !tbaa !9
  %1714 = load double, ptr %63, align 8, !tbaa !11
  %1715 = load double, ptr %75, align 8, !tbaa !11
  %1716 = load double, ptr %65, align 8, !tbaa !11
  %1717 = fdiv double %1715, %1716
  %1718 = fcmp ogt double %1714, %1717
  br i1 %1718, label %1719, label %1748

1719:                                             ; preds = %1706
  %1720 = load ptr, ptr %19, align 8, !tbaa !5
  %1721 = load ptr, ptr %21, align 8, !tbaa !5
  %1722 = load i64, ptr %44, align 8, !tbaa !9
  %1723 = load i64, ptr %30, align 8, !tbaa !9
  %1724 = mul nsw i64 %1722, %1723
  %1725 = add nsw i64 %1724, 1
  %1726 = getelementptr inbounds double, ptr %1721, i64 %1725
  %1727 = load ptr, ptr %21, align 8, !tbaa !5
  %1728 = load i64, ptr %45, align 8, !tbaa !9
  %1729 = load i64, ptr %30, align 8, !tbaa !9
  %1730 = mul nsw i64 %1728, %1729
  %1731 = add nsw i64 %1730, 1
  %1732 = getelementptr inbounds double, ptr %1727, i64 %1731
  %1733 = call double @f2c_ddot(ptr noundef %1720, ptr noundef %1726, ptr noundef @c__1, ptr noundef %1732, ptr noundef @c__1)
  %1734 = load ptr, ptr %27, align 8, !tbaa !5
  %1735 = load i64, ptr %44, align 8, !tbaa !9
  %1736 = getelementptr inbounds double, ptr %1734, i64 %1735
  %1737 = load double, ptr %1736, align 8, !tbaa !11
  %1738 = fmul double %1733, %1737
  %1739 = load ptr, ptr %27, align 8, !tbaa !5
  %1740 = load i64, ptr %45, align 8, !tbaa !9
  %1741 = getelementptr inbounds double, ptr %1739, i64 %1740
  %1742 = load double, ptr %1741, align 8, !tbaa !11
  %1743 = fmul double %1738, %1742
  %1744 = load double, ptr %65, align 8, !tbaa !11
  %1745 = fdiv double %1743, %1744
  %1746 = load double, ptr %63, align 8, !tbaa !11
  %1747 = fdiv double %1745, %1746
  store double %1747, ptr %64, align 8, !tbaa !11
  br label %1793

1748:                                             ; preds = %1706
  %1749 = load ptr, ptr %19, align 8, !tbaa !5
  %1750 = load ptr, ptr %21, align 8, !tbaa !5
  %1751 = load i64, ptr %45, align 8, !tbaa !9
  %1752 = load i64, ptr %30, align 8, !tbaa !9
  %1753 = mul nsw i64 %1751, %1752
  %1754 = add nsw i64 %1753, 1
  %1755 = getelementptr inbounds double, ptr %1750, i64 %1754
  %1756 = load ptr, ptr %27, align 8, !tbaa !5
  %1757 = load ptr, ptr %20, align 8, !tbaa !5
  %1758 = load i64, ptr %1757, align 8, !tbaa !9
  %1759 = add nsw i64 %1758, 1
  %1760 = getelementptr inbounds double, ptr %1756, i64 %1759
  %1761 = call i32 @f2c_dcopy(ptr noundef %1749, ptr noundef %1755, ptr noundef @c__1, ptr noundef %1760, ptr noundef @c__1)
  %1762 = load ptr, ptr %27, align 8, !tbaa !5
  %1763 = load i64, ptr %45, align 8, !tbaa !9
  %1764 = getelementptr inbounds double, ptr %1762, i64 %1763
  %1765 = load ptr, ptr %19, align 8, !tbaa !5
  %1766 = load ptr, ptr %27, align 8, !tbaa !5
  %1767 = load ptr, ptr %20, align 8, !tbaa !5
  %1768 = load i64, ptr %1767, align 8, !tbaa !9
  %1769 = add nsw i64 %1768, 1
  %1770 = getelementptr inbounds double, ptr %1766, i64 %1769
  %1771 = load ptr, ptr %22, align 8, !tbaa !5
  %1772 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %1764, ptr noundef %1765, ptr noundef @c__1, ptr noundef %1770, ptr noundef %1771, ptr noundef %67)
  %1773 = load ptr, ptr %19, align 8, !tbaa !5
  %1774 = load ptr, ptr %27, align 8, !tbaa !5
  %1775 = load ptr, ptr %20, align 8, !tbaa !5
  %1776 = load i64, ptr %1775, align 8, !tbaa !9
  %1777 = add nsw i64 %1776, 1
  %1778 = getelementptr inbounds double, ptr %1774, i64 %1777
  %1779 = load ptr, ptr %21, align 8, !tbaa !5
  %1780 = load i64, ptr %44, align 8, !tbaa !9
  %1781 = load i64, ptr %30, align 8, !tbaa !9
  %1782 = mul nsw i64 %1780, %1781
  %1783 = add nsw i64 %1782, 1
  %1784 = getelementptr inbounds double, ptr %1779, i64 %1783
  %1785 = call double @f2c_ddot(ptr noundef %1773, ptr noundef %1778, ptr noundef @c__1, ptr noundef %1784, ptr noundef @c__1)
  %1786 = load ptr, ptr %27, align 8, !tbaa !5
  %1787 = load i64, ptr %44, align 8, !tbaa !9
  %1788 = getelementptr inbounds double, ptr %1786, i64 %1787
  %1789 = load double, ptr %1788, align 8, !tbaa !11
  %1790 = fmul double %1785, %1789
  %1791 = load double, ptr %63, align 8, !tbaa !11
  %1792 = fdiv double %1790, %1791
  store double %1792, ptr %64, align 8, !tbaa !11
  br label %1793

1793:                                             ; preds = %1748, %1719
  br label %1794

1794:                                             ; preds = %1793, %1705
  %1795 = load double, ptr %88, align 8, !tbaa !11
  store double %1795, ptr %39, align 8, !tbaa !11
  %1796 = load double, ptr %64, align 8, !tbaa !11
  %1797 = fcmp oge double %1796, 0.000000e+00
  br i1 %1797, label %1798, label %1800

1798:                                             ; preds = %1794
  %1799 = load double, ptr %64, align 8, !tbaa !11
  br label %1803

1800:                                             ; preds = %1794
  %1801 = load double, ptr %64, align 8, !tbaa !11
  %1802 = fneg double %1801
  br label %1803

1803:                                             ; preds = %1800, %1798
  %1804 = phi double [ %1799, %1798 ], [ %1802, %1800 ]
  store double %1804, ptr %40, align 8, !tbaa !11
  %1805 = load double, ptr %39, align 8, !tbaa !11
  %1806 = load double, ptr %40, align 8, !tbaa !11
  %1807 = fcmp oge double %1805, %1806
  br i1 %1807, label %1808, label %1810

1808:                                             ; preds = %1803
  %1809 = load double, ptr %39, align 8, !tbaa !11
  br label %1812

1810:                                             ; preds = %1803
  %1811 = load double, ptr %40, align 8, !tbaa !11
  br label %1812

1812:                                             ; preds = %1810, %1808
  %1813 = phi double [ %1809, %1808 ], [ %1811, %1810 ]
  store double %1813, ptr %88, align 8, !tbaa !11
  %1814 = load double, ptr %64, align 8, !tbaa !11
  %1815 = fcmp oge double %1814, 0.000000e+00
  br i1 %1815, label %1816, label %1818

1816:                                             ; preds = %1812
  %1817 = load double, ptr %64, align 8, !tbaa !11
  br label %1821

1818:                                             ; preds = %1812
  %1819 = load double, ptr %64, align 8, !tbaa !11
  %1820 = fneg double %1819
  br label %1821

1821:                                             ; preds = %1818, %1816
  %1822 = phi double [ %1817, %1816 ], [ %1820, %1818 ]
  %1823 = load double, ptr %61, align 8, !tbaa !11
  %1824 = fcmp ogt double %1822, %1823
  br i1 %1824, label %1825, label %2717

1825:                                             ; preds = %1821
  %1826 = load i64, ptr %53, align 8, !tbaa !9
  %1827 = icmp eq i64 %1826, 0
  br i1 %1827, label %1828, label %1831

1828:                                             ; preds = %1825
  store i64 0, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %42, align 8, !tbaa !9
  %1829 = load i64, ptr %93, align 8, !tbaa !9
  %1830 = add nsw i64 %1829, 1
  store i64 %1830, ptr %93, align 8, !tbaa !9
  br label %1831

1831:                                             ; preds = %1828, %1825
  %1832 = load i64, ptr %84, align 8, !tbaa !9
  %1833 = icmp ne i64 %1832, 0
  br i1 %1833, label %1834, label %2513

1834:                                             ; preds = %1831
  %1835 = load double, ptr %65, align 8, !tbaa !11
  %1836 = load double, ptr %63, align 8, !tbaa !11
  %1837 = fdiv double %1835, %1836
  store double %1837, ptr %73, align 8, !tbaa !11
  %1838 = load double, ptr %63, align 8, !tbaa !11
  %1839 = load double, ptr %65, align 8, !tbaa !11
  %1840 = fdiv double %1838, %1839
  store double %1840, ptr %72, align 8, !tbaa !11
  %1841 = load double, ptr %73, align 8, !tbaa !11
  %1842 = load double, ptr %72, align 8, !tbaa !11
  %1843 = fsub double %1841, %1842
  store double %1843, ptr %39, align 8, !tbaa !11
  %1844 = load double, ptr %39, align 8, !tbaa !11
  %1845 = fcmp oge double %1844, 0.000000e+00
  br i1 %1845, label %1846, label %1848

1846:                                             ; preds = %1834
  %1847 = load double, ptr %39, align 8, !tbaa !11
  br label %1851

1848:                                             ; preds = %1834
  %1849 = load double, ptr %39, align 8, !tbaa !11
  %1850 = fneg double %1849
  br label %1851

1851:                                             ; preds = %1848, %1846
  %1852 = phi double [ %1847, %1846 ], [ %1850, %1848 ]
  %1853 = fmul double %1852, -5.000000e-01
  %1854 = load double, ptr %64, align 8, !tbaa !11
  %1855 = fdiv double %1853, %1854
  store double %1855, ptr %74, align 8, !tbaa !11
  %1856 = load double, ptr %74, align 8, !tbaa !11
  %1857 = fcmp oge double %1856, 0.000000e+00
  br i1 %1857, label %1858, label %1860

1858:                                             ; preds = %1851
  %1859 = load double, ptr %74, align 8, !tbaa !11
  br label %1863

1860:                                             ; preds = %1851
  %1861 = load double, ptr %74, align 8, !tbaa !11
  %1862 = fneg double %1861
  br label %1863

1863:                                             ; preds = %1860, %1858
  %1864 = phi double [ %1859, %1858 ], [ %1862, %1860 ]
  %1865 = load double, ptr %41, align 8, !tbaa !11
  %1866 = fcmp ogt double %1864, %1865
  br i1 %1866, label %1867, label %1976

1867:                                             ; preds = %1863
  %1868 = load double, ptr %74, align 8, !tbaa !11
  %1869 = fdiv double 5.000000e-01, %1868
  store double %1869, ptr %46, align 8, !tbaa !11
  %1870 = load double, ptr %46, align 8, !tbaa !11
  %1871 = load ptr, ptr %27, align 8, !tbaa !5
  %1872 = load i64, ptr %44, align 8, !tbaa !9
  %1873 = getelementptr inbounds double, ptr %1871, i64 %1872
  %1874 = load double, ptr %1873, align 8, !tbaa !11
  %1875 = fmul double %1870, %1874
  %1876 = load ptr, ptr %27, align 8, !tbaa !5
  %1877 = load i64, ptr %45, align 8, !tbaa !9
  %1878 = getelementptr inbounds double, ptr %1876, i64 %1877
  %1879 = load double, ptr %1878, align 8, !tbaa !11
  %1880 = fdiv double %1875, %1879
  %1881 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 2
  store double %1880, ptr %1881, align 16, !tbaa !11
  %1882 = load double, ptr %46, align 8, !tbaa !11
  %1883 = fneg double %1882
  %1884 = load ptr, ptr %27, align 8, !tbaa !5
  %1885 = load i64, ptr %45, align 8, !tbaa !9
  %1886 = getelementptr inbounds double, ptr %1884, i64 %1885
  %1887 = load double, ptr %1886, align 8, !tbaa !11
  %1888 = fmul double %1883, %1887
  %1889 = load ptr, ptr %27, align 8, !tbaa !5
  %1890 = load i64, ptr %44, align 8, !tbaa !9
  %1891 = getelementptr inbounds double, ptr %1889, i64 %1890
  %1892 = load double, ptr %1891, align 8, !tbaa !11
  %1893 = fdiv double %1888, %1892
  %1894 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 3
  store double %1893, ptr %1894, align 8, !tbaa !11
  %1895 = load ptr, ptr %19, align 8, !tbaa !5
  %1896 = load ptr, ptr %21, align 8, !tbaa !5
  %1897 = load i64, ptr %44, align 8, !tbaa !9
  %1898 = load i64, ptr %30, align 8, !tbaa !9
  %1899 = mul nsw i64 %1897, %1898
  %1900 = add nsw i64 %1899, 1
  %1901 = getelementptr inbounds double, ptr %1896, i64 %1900
  %1902 = load ptr, ptr %21, align 8, !tbaa !5
  %1903 = load i64, ptr %45, align 8, !tbaa !9
  %1904 = load i64, ptr %30, align 8, !tbaa !9
  %1905 = mul nsw i64 %1903, %1904
  %1906 = add nsw i64 %1905, 1
  %1907 = getelementptr inbounds double, ptr %1902, i64 %1906
  %1908 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %1909 = call i32 @f2c_drotm(ptr noundef %1895, ptr noundef %1901, ptr noundef @c__1, ptr noundef %1907, ptr noundef @c__1, ptr noundef %1908)
  %1910 = load i64, ptr %80, align 8, !tbaa !9
  %1911 = icmp ne i64 %1910, 0
  br i1 %1911, label %1912, label %1927

1912:                                             ; preds = %1867
  %1913 = load ptr, ptr %25, align 8, !tbaa !5
  %1914 = load i64, ptr %44, align 8, !tbaa !9
  %1915 = load i64, ptr %32, align 8, !tbaa !9
  %1916 = mul nsw i64 %1914, %1915
  %1917 = add nsw i64 %1916, 1
  %1918 = getelementptr inbounds double, ptr %1913, i64 %1917
  %1919 = load ptr, ptr %25, align 8, !tbaa !5
  %1920 = load i64, ptr %45, align 8, !tbaa !9
  %1921 = load i64, ptr %32, align 8, !tbaa !9
  %1922 = mul nsw i64 %1920, %1921
  %1923 = add nsw i64 %1922, 1
  %1924 = getelementptr inbounds double, ptr %1919, i64 %1923
  %1925 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %1926 = call i32 @f2c_drotm(ptr noundef %62, ptr noundef %1918, ptr noundef @c__1, ptr noundef %1924, ptr noundef @c__1, ptr noundef %1925)
  br label %1927

1927:                                             ; preds = %1912, %1867
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %1928 = load double, ptr %46, align 8, !tbaa !11
  %1929 = load double, ptr %72, align 8, !tbaa !11
  %1930 = fmul double %1928, %1929
  %1931 = load double, ptr %64, align 8, !tbaa !11
  %1932 = call double @llvm.fmuladd.f64(double %1930, double %1931, double 1.000000e+00)
  store double %1932, ptr %40, align 8, !tbaa !11
  %1933 = load double, ptr %65, align 8, !tbaa !11
  %1934 = load double, ptr %39, align 8, !tbaa !11
  %1935 = load double, ptr %40, align 8, !tbaa !11
  %1936 = fcmp oge double %1934, %1935
  br i1 %1936, label %1937, label %1939

1937:                                             ; preds = %1927
  %1938 = load double, ptr %39, align 8, !tbaa !11
  br label %1941

1939:                                             ; preds = %1927
  %1940 = load double, ptr %40, align 8, !tbaa !11
  br label %1941

1941:                                             ; preds = %1939, %1937
  %1942 = phi double [ %1938, %1937 ], [ %1940, %1939 ]
  %1943 = call double @sqrt(double noundef %1942) #5
  %1944 = fmul double %1933, %1943
  %1945 = load ptr, ptr %23, align 8, !tbaa !5
  %1946 = load i64, ptr %45, align 8, !tbaa !9
  %1947 = getelementptr inbounds double, ptr %1945, i64 %1946
  store double %1944, ptr %1947, align 8, !tbaa !11
  %1948 = load double, ptr %46, align 8, !tbaa !11
  %1949 = load double, ptr %73, align 8, !tbaa !11
  %1950 = fmul double %1948, %1949
  %1951 = load double, ptr %64, align 8, !tbaa !11
  %1952 = fneg double %1950
  %1953 = call double @llvm.fmuladd.f64(double %1952, double %1951, double 1.000000e+00)
  %1954 = call double @sqrt(double noundef %1953) #5
  %1955 = load double, ptr %63, align 8, !tbaa !11
  %1956 = fmul double %1955, %1954
  store double %1956, ptr %63, align 8, !tbaa !11
  %1957 = load double, ptr %90, align 8, !tbaa !11
  store double %1957, ptr %39, align 8, !tbaa !11
  %1958 = load double, ptr %46, align 8, !tbaa !11
  %1959 = fcmp oge double %1958, 0.000000e+00
  br i1 %1959, label %1960, label %1962

1960:                                             ; preds = %1941
  %1961 = load double, ptr %46, align 8, !tbaa !11
  br label %1965

1962:                                             ; preds = %1941
  %1963 = load double, ptr %46, align 8, !tbaa !11
  %1964 = fneg double %1963
  br label %1965

1965:                                             ; preds = %1962, %1960
  %1966 = phi double [ %1961, %1960 ], [ %1964, %1962 ]
  store double %1966, ptr %40, align 8, !tbaa !11
  %1967 = load double, ptr %39, align 8, !tbaa !11
  %1968 = load double, ptr %40, align 8, !tbaa !11
  %1969 = fcmp oge double %1967, %1968
  br i1 %1969, label %1970, label %1972

1970:                                             ; preds = %1965
  %1971 = load double, ptr %39, align 8, !tbaa !11
  br label %1974

1972:                                             ; preds = %1965
  %1973 = load double, ptr %40, align 8, !tbaa !11
  br label %1974

1974:                                             ; preds = %1972, %1970
  %1975 = phi double [ %1971, %1970 ], [ %1973, %1972 ]
  store double %1975, ptr %90, align 8, !tbaa !11
  br label %2512

1976:                                             ; preds = %1863
  %1977 = call double @d_sign(ptr noundef @c_b18, ptr noundef %64)
  %1978 = fneg double %1977
  store double %1978, ptr %89, align 8, !tbaa !11
  %1979 = load double, ptr %74, align 8, !tbaa !11
  %1980 = load double, ptr %89, align 8, !tbaa !11
  %1981 = load double, ptr %74, align 8, !tbaa !11
  %1982 = load double, ptr %74, align 8, !tbaa !11
  %1983 = call double @llvm.fmuladd.f64(double %1981, double %1982, double 1.000000e+00)
  %1984 = call double @sqrt(double noundef %1983) #5
  %1985 = call double @llvm.fmuladd.f64(double %1980, double %1984, double %1979)
  %1986 = fdiv double 1.000000e+00, %1985
  store double %1986, ptr %46, align 8, !tbaa !11
  %1987 = load double, ptr %46, align 8, !tbaa !11
  %1988 = load double, ptr %46, align 8, !tbaa !11
  %1989 = call double @llvm.fmuladd.f64(double %1987, double %1988, double 1.000000e+00)
  %1990 = fdiv double 1.000000e+00, %1989
  %1991 = call double @sqrt(double noundef %1990) #5
  store double %1991, ptr %51, align 8, !tbaa !11
  %1992 = load double, ptr %46, align 8, !tbaa !11
  %1993 = load double, ptr %51, align 8, !tbaa !11
  %1994 = fmul double %1992, %1993
  store double %1994, ptr %52, align 8, !tbaa !11
  %1995 = load double, ptr %90, align 8, !tbaa !11
  store double %1995, ptr %39, align 8, !tbaa !11
  %1996 = load double, ptr %52, align 8, !tbaa !11
  %1997 = fcmp oge double %1996, 0.000000e+00
  br i1 %1997, label %1998, label %2000

1998:                                             ; preds = %1976
  %1999 = load double, ptr %52, align 8, !tbaa !11
  br label %2003

2000:                                             ; preds = %1976
  %2001 = load double, ptr %52, align 8, !tbaa !11
  %2002 = fneg double %2001
  br label %2003

2003:                                             ; preds = %2000, %1998
  %2004 = phi double [ %1999, %1998 ], [ %2002, %2000 ]
  store double %2004, ptr %40, align 8, !tbaa !11
  %2005 = load double, ptr %39, align 8, !tbaa !11
  %2006 = load double, ptr %40, align 8, !tbaa !11
  %2007 = fcmp oge double %2005, %2006
  br i1 %2007, label %2008, label %2010

2008:                                             ; preds = %2003
  %2009 = load double, ptr %39, align 8, !tbaa !11
  br label %2012

2010:                                             ; preds = %2003
  %2011 = load double, ptr %40, align 8, !tbaa !11
  br label %2012

2012:                                             ; preds = %2010, %2008
  %2013 = phi double [ %2009, %2008 ], [ %2011, %2010 ]
  store double %2013, ptr %90, align 8, !tbaa !11
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %2014 = load double, ptr %46, align 8, !tbaa !11
  %2015 = load double, ptr %72, align 8, !tbaa !11
  %2016 = fmul double %2014, %2015
  %2017 = load double, ptr %64, align 8, !tbaa !11
  %2018 = call double @llvm.fmuladd.f64(double %2016, double %2017, double 1.000000e+00)
  store double %2018, ptr %40, align 8, !tbaa !11
  %2019 = load double, ptr %65, align 8, !tbaa !11
  %2020 = load double, ptr %39, align 8, !tbaa !11
  %2021 = load double, ptr %40, align 8, !tbaa !11
  %2022 = fcmp oge double %2020, %2021
  br i1 %2022, label %2023, label %2025

2023:                                             ; preds = %2012
  %2024 = load double, ptr %39, align 8, !tbaa !11
  br label %2027

2025:                                             ; preds = %2012
  %2026 = load double, ptr %40, align 8, !tbaa !11
  br label %2027

2027:                                             ; preds = %2025, %2023
  %2028 = phi double [ %2024, %2023 ], [ %2026, %2025 ]
  %2029 = call double @sqrt(double noundef %2028) #5
  %2030 = fmul double %2019, %2029
  %2031 = load ptr, ptr %23, align 8, !tbaa !5
  %2032 = load i64, ptr %45, align 8, !tbaa !9
  %2033 = getelementptr inbounds double, ptr %2031, i64 %2032
  store double %2030, ptr %2033, align 8, !tbaa !11
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %2034 = load double, ptr %46, align 8, !tbaa !11
  %2035 = load double, ptr %73, align 8, !tbaa !11
  %2036 = fmul double %2034, %2035
  %2037 = load double, ptr %64, align 8, !tbaa !11
  %2038 = fneg double %2036
  %2039 = call double @llvm.fmuladd.f64(double %2038, double %2037, double 1.000000e+00)
  store double %2039, ptr %40, align 8, !tbaa !11
  %2040 = load double, ptr %39, align 8, !tbaa !11
  %2041 = load double, ptr %40, align 8, !tbaa !11
  %2042 = fcmp oge double %2040, %2041
  br i1 %2042, label %2043, label %2045

2043:                                             ; preds = %2027
  %2044 = load double, ptr %39, align 8, !tbaa !11
  br label %2047

2045:                                             ; preds = %2027
  %2046 = load double, ptr %40, align 8, !tbaa !11
  br label %2047

2047:                                             ; preds = %2045, %2043
  %2048 = phi double [ %2044, %2043 ], [ %2046, %2045 ]
  %2049 = call double @sqrt(double noundef %2048) #5
  %2050 = load double, ptr %63, align 8, !tbaa !11
  %2051 = fmul double %2050, %2049
  store double %2051, ptr %63, align 8, !tbaa !11
  %2052 = load ptr, ptr %27, align 8, !tbaa !5
  %2053 = load i64, ptr %44, align 8, !tbaa !9
  %2054 = getelementptr inbounds double, ptr %2052, i64 %2053
  %2055 = load double, ptr %2054, align 8, !tbaa !11
  %2056 = load ptr, ptr %27, align 8, !tbaa !5
  %2057 = load i64, ptr %45, align 8, !tbaa !9
  %2058 = getelementptr inbounds double, ptr %2056, i64 %2057
  %2059 = load double, ptr %2058, align 8, !tbaa !11
  %2060 = fdiv double %2055, %2059
  store double %2060, ptr %72, align 8, !tbaa !11
  %2061 = load ptr, ptr %27, align 8, !tbaa !5
  %2062 = load i64, ptr %45, align 8, !tbaa !9
  %2063 = getelementptr inbounds double, ptr %2061, i64 %2062
  %2064 = load double, ptr %2063, align 8, !tbaa !11
  %2065 = load ptr, ptr %27, align 8, !tbaa !5
  %2066 = load i64, ptr %44, align 8, !tbaa !9
  %2067 = getelementptr inbounds double, ptr %2065, i64 %2066
  %2068 = load double, ptr %2067, align 8, !tbaa !11
  %2069 = fdiv double %2064, %2068
  store double %2069, ptr %73, align 8, !tbaa !11
  %2070 = load ptr, ptr %27, align 8, !tbaa !5
  %2071 = load i64, ptr %44, align 8, !tbaa !9
  %2072 = getelementptr inbounds double, ptr %2070, i64 %2071
  %2073 = load double, ptr %2072, align 8, !tbaa !11
  %2074 = fcmp oge double %2073, 1.000000e+00
  br i1 %2074, label %2075, label %2226

2075:                                             ; preds = %2047
  %2076 = load ptr, ptr %27, align 8, !tbaa !5
  %2077 = load i64, ptr %45, align 8, !tbaa !9
  %2078 = getelementptr inbounds double, ptr %2076, i64 %2077
  %2079 = load double, ptr %2078, align 8, !tbaa !11
  %2080 = fcmp oge double %2079, 1.000000e+00
  br i1 %2080, label %2081, label %2136

2081:                                             ; preds = %2075
  %2082 = load double, ptr %46, align 8, !tbaa !11
  %2083 = load double, ptr %72, align 8, !tbaa !11
  %2084 = fmul double %2082, %2083
  %2085 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 2
  store double %2084, ptr %2085, align 16, !tbaa !11
  %2086 = load double, ptr %46, align 8, !tbaa !11
  %2087 = fneg double %2086
  %2088 = load double, ptr %73, align 8, !tbaa !11
  %2089 = fmul double %2087, %2088
  %2090 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 3
  store double %2089, ptr %2090, align 8, !tbaa !11
  %2091 = load double, ptr %51, align 8, !tbaa !11
  %2092 = load ptr, ptr %27, align 8, !tbaa !5
  %2093 = load i64, ptr %44, align 8, !tbaa !9
  %2094 = getelementptr inbounds double, ptr %2092, i64 %2093
  %2095 = load double, ptr %2094, align 8, !tbaa !11
  %2096 = fmul double %2095, %2091
  store double %2096, ptr %2094, align 8, !tbaa !11
  %2097 = load double, ptr %51, align 8, !tbaa !11
  %2098 = load ptr, ptr %27, align 8, !tbaa !5
  %2099 = load i64, ptr %45, align 8, !tbaa !9
  %2100 = getelementptr inbounds double, ptr %2098, i64 %2099
  %2101 = load double, ptr %2100, align 8, !tbaa !11
  %2102 = fmul double %2101, %2097
  store double %2102, ptr %2100, align 8, !tbaa !11
  %2103 = load ptr, ptr %19, align 8, !tbaa !5
  %2104 = load ptr, ptr %21, align 8, !tbaa !5
  %2105 = load i64, ptr %44, align 8, !tbaa !9
  %2106 = load i64, ptr %30, align 8, !tbaa !9
  %2107 = mul nsw i64 %2105, %2106
  %2108 = add nsw i64 %2107, 1
  %2109 = getelementptr inbounds double, ptr %2104, i64 %2108
  %2110 = load ptr, ptr %21, align 8, !tbaa !5
  %2111 = load i64, ptr %45, align 8, !tbaa !9
  %2112 = load i64, ptr %30, align 8, !tbaa !9
  %2113 = mul nsw i64 %2111, %2112
  %2114 = add nsw i64 %2113, 1
  %2115 = getelementptr inbounds double, ptr %2110, i64 %2114
  %2116 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %2117 = call i32 @f2c_drotm(ptr noundef %2103, ptr noundef %2109, ptr noundef @c__1, ptr noundef %2115, ptr noundef @c__1, ptr noundef %2116)
  %2118 = load i64, ptr %80, align 8, !tbaa !9
  %2119 = icmp ne i64 %2118, 0
  br i1 %2119, label %2120, label %2135

2120:                                             ; preds = %2081
  %2121 = load ptr, ptr %25, align 8, !tbaa !5
  %2122 = load i64, ptr %44, align 8, !tbaa !9
  %2123 = load i64, ptr %32, align 8, !tbaa !9
  %2124 = mul nsw i64 %2122, %2123
  %2125 = add nsw i64 %2124, 1
  %2126 = getelementptr inbounds double, ptr %2121, i64 %2125
  %2127 = load ptr, ptr %25, align 8, !tbaa !5
  %2128 = load i64, ptr %45, align 8, !tbaa !9
  %2129 = load i64, ptr %32, align 8, !tbaa !9
  %2130 = mul nsw i64 %2128, %2129
  %2131 = add nsw i64 %2130, 1
  %2132 = getelementptr inbounds double, ptr %2127, i64 %2131
  %2133 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %2134 = call i32 @f2c_drotm(ptr noundef %62, ptr noundef %2126, ptr noundef @c__1, ptr noundef %2132, ptr noundef @c__1, ptr noundef %2133)
  br label %2135

2135:                                             ; preds = %2120, %2081
  br label %2225

2136:                                             ; preds = %2075
  %2137 = load double, ptr %46, align 8, !tbaa !11
  %2138 = fneg double %2137
  %2139 = load double, ptr %73, align 8, !tbaa !11
  %2140 = fmul double %2138, %2139
  store double %2140, ptr %39, align 8, !tbaa !11
  %2141 = load ptr, ptr %19, align 8, !tbaa !5
  %2142 = load ptr, ptr %21, align 8, !tbaa !5
  %2143 = load i64, ptr %45, align 8, !tbaa !9
  %2144 = load i64, ptr %30, align 8, !tbaa !9
  %2145 = mul nsw i64 %2143, %2144
  %2146 = add nsw i64 %2145, 1
  %2147 = getelementptr inbounds double, ptr %2142, i64 %2146
  %2148 = load ptr, ptr %21, align 8, !tbaa !5
  %2149 = load i64, ptr %44, align 8, !tbaa !9
  %2150 = load i64, ptr %30, align 8, !tbaa !9
  %2151 = mul nsw i64 %2149, %2150
  %2152 = add nsw i64 %2151, 1
  %2153 = getelementptr inbounds double, ptr %2148, i64 %2152
  %2154 = call i32 @f2c_daxpy(ptr noundef %2141, ptr noundef %39, ptr noundef %2147, ptr noundef @c__1, ptr noundef %2153, ptr noundef @c__1)
  %2155 = load double, ptr %51, align 8, !tbaa !11
  %2156 = load double, ptr %52, align 8, !tbaa !11
  %2157 = fmul double %2155, %2156
  %2158 = load double, ptr %72, align 8, !tbaa !11
  %2159 = fmul double %2157, %2158
  store double %2159, ptr %39, align 8, !tbaa !11
  %2160 = load ptr, ptr %19, align 8, !tbaa !5
  %2161 = load ptr, ptr %21, align 8, !tbaa !5
  %2162 = load i64, ptr %44, align 8, !tbaa !9
  %2163 = load i64, ptr %30, align 8, !tbaa !9
  %2164 = mul nsw i64 %2162, %2163
  %2165 = add nsw i64 %2164, 1
  %2166 = getelementptr inbounds double, ptr %2161, i64 %2165
  %2167 = load ptr, ptr %21, align 8, !tbaa !5
  %2168 = load i64, ptr %45, align 8, !tbaa !9
  %2169 = load i64, ptr %30, align 8, !tbaa !9
  %2170 = mul nsw i64 %2168, %2169
  %2171 = add nsw i64 %2170, 1
  %2172 = getelementptr inbounds double, ptr %2167, i64 %2171
  %2173 = call i32 @f2c_daxpy(ptr noundef %2160, ptr noundef %39, ptr noundef %2166, ptr noundef @c__1, ptr noundef %2172, ptr noundef @c__1)
  %2174 = load double, ptr %51, align 8, !tbaa !11
  %2175 = load ptr, ptr %27, align 8, !tbaa !5
  %2176 = load i64, ptr %44, align 8, !tbaa !9
  %2177 = getelementptr inbounds double, ptr %2175, i64 %2176
  %2178 = load double, ptr %2177, align 8, !tbaa !11
  %2179 = fmul double %2178, %2174
  store double %2179, ptr %2177, align 8, !tbaa !11
  %2180 = load double, ptr %51, align 8, !tbaa !11
  %2181 = load ptr, ptr %27, align 8, !tbaa !5
  %2182 = load i64, ptr %45, align 8, !tbaa !9
  %2183 = getelementptr inbounds double, ptr %2181, i64 %2182
  %2184 = load double, ptr %2183, align 8, !tbaa !11
  %2185 = fdiv double %2184, %2180
  store double %2185, ptr %2183, align 8, !tbaa !11
  %2186 = load i64, ptr %80, align 8, !tbaa !9
  %2187 = icmp ne i64 %2186, 0
  br i1 %2187, label %2188, label %2224

2188:                                             ; preds = %2136
  %2189 = load double, ptr %46, align 8, !tbaa !11
  %2190 = fneg double %2189
  %2191 = load double, ptr %73, align 8, !tbaa !11
  %2192 = fmul double %2190, %2191
  store double %2192, ptr %39, align 8, !tbaa !11
  %2193 = load ptr, ptr %25, align 8, !tbaa !5
  %2194 = load i64, ptr %45, align 8, !tbaa !9
  %2195 = load i64, ptr %32, align 8, !tbaa !9
  %2196 = mul nsw i64 %2194, %2195
  %2197 = add nsw i64 %2196, 1
  %2198 = getelementptr inbounds double, ptr %2193, i64 %2197
  %2199 = load ptr, ptr %25, align 8, !tbaa !5
  %2200 = load i64, ptr %44, align 8, !tbaa !9
  %2201 = load i64, ptr %32, align 8, !tbaa !9
  %2202 = mul nsw i64 %2200, %2201
  %2203 = add nsw i64 %2202, 1
  %2204 = getelementptr inbounds double, ptr %2199, i64 %2203
  %2205 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2198, ptr noundef @c__1, ptr noundef %2204, ptr noundef @c__1)
  %2206 = load double, ptr %51, align 8, !tbaa !11
  %2207 = load double, ptr %52, align 8, !tbaa !11
  %2208 = fmul double %2206, %2207
  %2209 = load double, ptr %72, align 8, !tbaa !11
  %2210 = fmul double %2208, %2209
  store double %2210, ptr %39, align 8, !tbaa !11
  %2211 = load ptr, ptr %25, align 8, !tbaa !5
  %2212 = load i64, ptr %44, align 8, !tbaa !9
  %2213 = load i64, ptr %32, align 8, !tbaa !9
  %2214 = mul nsw i64 %2212, %2213
  %2215 = add nsw i64 %2214, 1
  %2216 = getelementptr inbounds double, ptr %2211, i64 %2215
  %2217 = load ptr, ptr %25, align 8, !tbaa !5
  %2218 = load i64, ptr %45, align 8, !tbaa !9
  %2219 = load i64, ptr %32, align 8, !tbaa !9
  %2220 = mul nsw i64 %2218, %2219
  %2221 = add nsw i64 %2220, 1
  %2222 = getelementptr inbounds double, ptr %2217, i64 %2221
  %2223 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2216, ptr noundef @c__1, ptr noundef %2222, ptr noundef @c__1)
  br label %2224

2224:                                             ; preds = %2188, %2136
  br label %2225

2225:                                             ; preds = %2224, %2135
  br label %2511

2226:                                             ; preds = %2047
  %2227 = load ptr, ptr %27, align 8, !tbaa !5
  %2228 = load i64, ptr %45, align 8, !tbaa !9
  %2229 = getelementptr inbounds double, ptr %2227, i64 %2228
  %2230 = load double, ptr %2229, align 8, !tbaa !11
  %2231 = fcmp oge double %2230, 1.000000e+00
  br i1 %2231, label %2232, label %2321

2232:                                             ; preds = %2226
  %2233 = load double, ptr %46, align 8, !tbaa !11
  %2234 = load double, ptr %72, align 8, !tbaa !11
  %2235 = fmul double %2233, %2234
  store double %2235, ptr %39, align 8, !tbaa !11
  %2236 = load ptr, ptr %19, align 8, !tbaa !5
  %2237 = load ptr, ptr %21, align 8, !tbaa !5
  %2238 = load i64, ptr %44, align 8, !tbaa !9
  %2239 = load i64, ptr %30, align 8, !tbaa !9
  %2240 = mul nsw i64 %2238, %2239
  %2241 = add nsw i64 %2240, 1
  %2242 = getelementptr inbounds double, ptr %2237, i64 %2241
  %2243 = load ptr, ptr %21, align 8, !tbaa !5
  %2244 = load i64, ptr %45, align 8, !tbaa !9
  %2245 = load i64, ptr %30, align 8, !tbaa !9
  %2246 = mul nsw i64 %2244, %2245
  %2247 = add nsw i64 %2246, 1
  %2248 = getelementptr inbounds double, ptr %2243, i64 %2247
  %2249 = call i32 @f2c_daxpy(ptr noundef %2236, ptr noundef %39, ptr noundef %2242, ptr noundef @c__1, ptr noundef %2248, ptr noundef @c__1)
  %2250 = load double, ptr %51, align 8, !tbaa !11
  %2251 = fneg double %2250
  %2252 = load double, ptr %52, align 8, !tbaa !11
  %2253 = fmul double %2251, %2252
  %2254 = load double, ptr %73, align 8, !tbaa !11
  %2255 = fmul double %2253, %2254
  store double %2255, ptr %39, align 8, !tbaa !11
  %2256 = load ptr, ptr %19, align 8, !tbaa !5
  %2257 = load ptr, ptr %21, align 8, !tbaa !5
  %2258 = load i64, ptr %45, align 8, !tbaa !9
  %2259 = load i64, ptr %30, align 8, !tbaa !9
  %2260 = mul nsw i64 %2258, %2259
  %2261 = add nsw i64 %2260, 1
  %2262 = getelementptr inbounds double, ptr %2257, i64 %2261
  %2263 = load ptr, ptr %21, align 8, !tbaa !5
  %2264 = load i64, ptr %44, align 8, !tbaa !9
  %2265 = load i64, ptr %30, align 8, !tbaa !9
  %2266 = mul nsw i64 %2264, %2265
  %2267 = add nsw i64 %2266, 1
  %2268 = getelementptr inbounds double, ptr %2263, i64 %2267
  %2269 = call i32 @f2c_daxpy(ptr noundef %2256, ptr noundef %39, ptr noundef %2262, ptr noundef @c__1, ptr noundef %2268, ptr noundef @c__1)
  %2270 = load double, ptr %51, align 8, !tbaa !11
  %2271 = load ptr, ptr %27, align 8, !tbaa !5
  %2272 = load i64, ptr %44, align 8, !tbaa !9
  %2273 = getelementptr inbounds double, ptr %2271, i64 %2272
  %2274 = load double, ptr %2273, align 8, !tbaa !11
  %2275 = fdiv double %2274, %2270
  store double %2275, ptr %2273, align 8, !tbaa !11
  %2276 = load double, ptr %51, align 8, !tbaa !11
  %2277 = load ptr, ptr %27, align 8, !tbaa !5
  %2278 = load i64, ptr %45, align 8, !tbaa !9
  %2279 = getelementptr inbounds double, ptr %2277, i64 %2278
  %2280 = load double, ptr %2279, align 8, !tbaa !11
  %2281 = fmul double %2280, %2276
  store double %2281, ptr %2279, align 8, !tbaa !11
  %2282 = load i64, ptr %80, align 8, !tbaa !9
  %2283 = icmp ne i64 %2282, 0
  br i1 %2283, label %2284, label %2320

2284:                                             ; preds = %2232
  %2285 = load double, ptr %46, align 8, !tbaa !11
  %2286 = load double, ptr %72, align 8, !tbaa !11
  %2287 = fmul double %2285, %2286
  store double %2287, ptr %39, align 8, !tbaa !11
  %2288 = load ptr, ptr %25, align 8, !tbaa !5
  %2289 = load i64, ptr %44, align 8, !tbaa !9
  %2290 = load i64, ptr %32, align 8, !tbaa !9
  %2291 = mul nsw i64 %2289, %2290
  %2292 = add nsw i64 %2291, 1
  %2293 = getelementptr inbounds double, ptr %2288, i64 %2292
  %2294 = load ptr, ptr %25, align 8, !tbaa !5
  %2295 = load i64, ptr %45, align 8, !tbaa !9
  %2296 = load i64, ptr %32, align 8, !tbaa !9
  %2297 = mul nsw i64 %2295, %2296
  %2298 = add nsw i64 %2297, 1
  %2299 = getelementptr inbounds double, ptr %2294, i64 %2298
  %2300 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2293, ptr noundef @c__1, ptr noundef %2299, ptr noundef @c__1)
  %2301 = load double, ptr %51, align 8, !tbaa !11
  %2302 = fneg double %2301
  %2303 = load double, ptr %52, align 8, !tbaa !11
  %2304 = fmul double %2302, %2303
  %2305 = load double, ptr %73, align 8, !tbaa !11
  %2306 = fmul double %2304, %2305
  store double %2306, ptr %39, align 8, !tbaa !11
  %2307 = load ptr, ptr %25, align 8, !tbaa !5
  %2308 = load i64, ptr %45, align 8, !tbaa !9
  %2309 = load i64, ptr %32, align 8, !tbaa !9
  %2310 = mul nsw i64 %2308, %2309
  %2311 = add nsw i64 %2310, 1
  %2312 = getelementptr inbounds double, ptr %2307, i64 %2311
  %2313 = load ptr, ptr %25, align 8, !tbaa !5
  %2314 = load i64, ptr %44, align 8, !tbaa !9
  %2315 = load i64, ptr %32, align 8, !tbaa !9
  %2316 = mul nsw i64 %2314, %2315
  %2317 = add nsw i64 %2316, 1
  %2318 = getelementptr inbounds double, ptr %2313, i64 %2317
  %2319 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2312, ptr noundef @c__1, ptr noundef %2318, ptr noundef @c__1)
  br label %2320

2320:                                             ; preds = %2284, %2232
  br label %2510

2321:                                             ; preds = %2226
  %2322 = load ptr, ptr %27, align 8, !tbaa !5
  %2323 = load i64, ptr %44, align 8, !tbaa !9
  %2324 = getelementptr inbounds double, ptr %2322, i64 %2323
  %2325 = load double, ptr %2324, align 8, !tbaa !11
  %2326 = load ptr, ptr %27, align 8, !tbaa !5
  %2327 = load i64, ptr %45, align 8, !tbaa !9
  %2328 = getelementptr inbounds double, ptr %2326, i64 %2327
  %2329 = load double, ptr %2328, align 8, !tbaa !11
  %2330 = fcmp oge double %2325, %2329
  br i1 %2330, label %2331, label %2420

2331:                                             ; preds = %2321
  %2332 = load double, ptr %46, align 8, !tbaa !11
  %2333 = fneg double %2332
  %2334 = load double, ptr %73, align 8, !tbaa !11
  %2335 = fmul double %2333, %2334
  store double %2335, ptr %39, align 8, !tbaa !11
  %2336 = load ptr, ptr %19, align 8, !tbaa !5
  %2337 = load ptr, ptr %21, align 8, !tbaa !5
  %2338 = load i64, ptr %45, align 8, !tbaa !9
  %2339 = load i64, ptr %30, align 8, !tbaa !9
  %2340 = mul nsw i64 %2338, %2339
  %2341 = add nsw i64 %2340, 1
  %2342 = getelementptr inbounds double, ptr %2337, i64 %2341
  %2343 = load ptr, ptr %21, align 8, !tbaa !5
  %2344 = load i64, ptr %44, align 8, !tbaa !9
  %2345 = load i64, ptr %30, align 8, !tbaa !9
  %2346 = mul nsw i64 %2344, %2345
  %2347 = add nsw i64 %2346, 1
  %2348 = getelementptr inbounds double, ptr %2343, i64 %2347
  %2349 = call i32 @f2c_daxpy(ptr noundef %2336, ptr noundef %39, ptr noundef %2342, ptr noundef @c__1, ptr noundef %2348, ptr noundef @c__1)
  %2350 = load double, ptr %51, align 8, !tbaa !11
  %2351 = load double, ptr %52, align 8, !tbaa !11
  %2352 = fmul double %2350, %2351
  %2353 = load double, ptr %72, align 8, !tbaa !11
  %2354 = fmul double %2352, %2353
  store double %2354, ptr %39, align 8, !tbaa !11
  %2355 = load ptr, ptr %19, align 8, !tbaa !5
  %2356 = load ptr, ptr %21, align 8, !tbaa !5
  %2357 = load i64, ptr %44, align 8, !tbaa !9
  %2358 = load i64, ptr %30, align 8, !tbaa !9
  %2359 = mul nsw i64 %2357, %2358
  %2360 = add nsw i64 %2359, 1
  %2361 = getelementptr inbounds double, ptr %2356, i64 %2360
  %2362 = load ptr, ptr %21, align 8, !tbaa !5
  %2363 = load i64, ptr %45, align 8, !tbaa !9
  %2364 = load i64, ptr %30, align 8, !tbaa !9
  %2365 = mul nsw i64 %2363, %2364
  %2366 = add nsw i64 %2365, 1
  %2367 = getelementptr inbounds double, ptr %2362, i64 %2366
  %2368 = call i32 @f2c_daxpy(ptr noundef %2355, ptr noundef %39, ptr noundef %2361, ptr noundef @c__1, ptr noundef %2367, ptr noundef @c__1)
  %2369 = load double, ptr %51, align 8, !tbaa !11
  %2370 = load ptr, ptr %27, align 8, !tbaa !5
  %2371 = load i64, ptr %44, align 8, !tbaa !9
  %2372 = getelementptr inbounds double, ptr %2370, i64 %2371
  %2373 = load double, ptr %2372, align 8, !tbaa !11
  %2374 = fmul double %2373, %2369
  store double %2374, ptr %2372, align 8, !tbaa !11
  %2375 = load double, ptr %51, align 8, !tbaa !11
  %2376 = load ptr, ptr %27, align 8, !tbaa !5
  %2377 = load i64, ptr %45, align 8, !tbaa !9
  %2378 = getelementptr inbounds double, ptr %2376, i64 %2377
  %2379 = load double, ptr %2378, align 8, !tbaa !11
  %2380 = fdiv double %2379, %2375
  store double %2380, ptr %2378, align 8, !tbaa !11
  %2381 = load i64, ptr %80, align 8, !tbaa !9
  %2382 = icmp ne i64 %2381, 0
  br i1 %2382, label %2383, label %2419

2383:                                             ; preds = %2331
  %2384 = load double, ptr %46, align 8, !tbaa !11
  %2385 = fneg double %2384
  %2386 = load double, ptr %73, align 8, !tbaa !11
  %2387 = fmul double %2385, %2386
  store double %2387, ptr %39, align 8, !tbaa !11
  %2388 = load ptr, ptr %25, align 8, !tbaa !5
  %2389 = load i64, ptr %45, align 8, !tbaa !9
  %2390 = load i64, ptr %32, align 8, !tbaa !9
  %2391 = mul nsw i64 %2389, %2390
  %2392 = add nsw i64 %2391, 1
  %2393 = getelementptr inbounds double, ptr %2388, i64 %2392
  %2394 = load ptr, ptr %25, align 8, !tbaa !5
  %2395 = load i64, ptr %44, align 8, !tbaa !9
  %2396 = load i64, ptr %32, align 8, !tbaa !9
  %2397 = mul nsw i64 %2395, %2396
  %2398 = add nsw i64 %2397, 1
  %2399 = getelementptr inbounds double, ptr %2394, i64 %2398
  %2400 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2393, ptr noundef @c__1, ptr noundef %2399, ptr noundef @c__1)
  %2401 = load double, ptr %51, align 8, !tbaa !11
  %2402 = load double, ptr %52, align 8, !tbaa !11
  %2403 = fmul double %2401, %2402
  %2404 = load double, ptr %72, align 8, !tbaa !11
  %2405 = fmul double %2403, %2404
  store double %2405, ptr %39, align 8, !tbaa !11
  %2406 = load ptr, ptr %25, align 8, !tbaa !5
  %2407 = load i64, ptr %44, align 8, !tbaa !9
  %2408 = load i64, ptr %32, align 8, !tbaa !9
  %2409 = mul nsw i64 %2407, %2408
  %2410 = add nsw i64 %2409, 1
  %2411 = getelementptr inbounds double, ptr %2406, i64 %2410
  %2412 = load ptr, ptr %25, align 8, !tbaa !5
  %2413 = load i64, ptr %45, align 8, !tbaa !9
  %2414 = load i64, ptr %32, align 8, !tbaa !9
  %2415 = mul nsw i64 %2413, %2414
  %2416 = add nsw i64 %2415, 1
  %2417 = getelementptr inbounds double, ptr %2412, i64 %2416
  %2418 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2411, ptr noundef @c__1, ptr noundef %2417, ptr noundef @c__1)
  br label %2419

2419:                                             ; preds = %2383, %2331
  br label %2509

2420:                                             ; preds = %2321
  %2421 = load double, ptr %46, align 8, !tbaa !11
  %2422 = load double, ptr %72, align 8, !tbaa !11
  %2423 = fmul double %2421, %2422
  store double %2423, ptr %39, align 8, !tbaa !11
  %2424 = load ptr, ptr %19, align 8, !tbaa !5
  %2425 = load ptr, ptr %21, align 8, !tbaa !5
  %2426 = load i64, ptr %44, align 8, !tbaa !9
  %2427 = load i64, ptr %30, align 8, !tbaa !9
  %2428 = mul nsw i64 %2426, %2427
  %2429 = add nsw i64 %2428, 1
  %2430 = getelementptr inbounds double, ptr %2425, i64 %2429
  %2431 = load ptr, ptr %21, align 8, !tbaa !5
  %2432 = load i64, ptr %45, align 8, !tbaa !9
  %2433 = load i64, ptr %30, align 8, !tbaa !9
  %2434 = mul nsw i64 %2432, %2433
  %2435 = add nsw i64 %2434, 1
  %2436 = getelementptr inbounds double, ptr %2431, i64 %2435
  %2437 = call i32 @f2c_daxpy(ptr noundef %2424, ptr noundef %39, ptr noundef %2430, ptr noundef @c__1, ptr noundef %2436, ptr noundef @c__1)
  %2438 = load double, ptr %51, align 8, !tbaa !11
  %2439 = fneg double %2438
  %2440 = load double, ptr %52, align 8, !tbaa !11
  %2441 = fmul double %2439, %2440
  %2442 = load double, ptr %73, align 8, !tbaa !11
  %2443 = fmul double %2441, %2442
  store double %2443, ptr %39, align 8, !tbaa !11
  %2444 = load ptr, ptr %19, align 8, !tbaa !5
  %2445 = load ptr, ptr %21, align 8, !tbaa !5
  %2446 = load i64, ptr %45, align 8, !tbaa !9
  %2447 = load i64, ptr %30, align 8, !tbaa !9
  %2448 = mul nsw i64 %2446, %2447
  %2449 = add nsw i64 %2448, 1
  %2450 = getelementptr inbounds double, ptr %2445, i64 %2449
  %2451 = load ptr, ptr %21, align 8, !tbaa !5
  %2452 = load i64, ptr %44, align 8, !tbaa !9
  %2453 = load i64, ptr %30, align 8, !tbaa !9
  %2454 = mul nsw i64 %2452, %2453
  %2455 = add nsw i64 %2454, 1
  %2456 = getelementptr inbounds double, ptr %2451, i64 %2455
  %2457 = call i32 @f2c_daxpy(ptr noundef %2444, ptr noundef %39, ptr noundef %2450, ptr noundef @c__1, ptr noundef %2456, ptr noundef @c__1)
  %2458 = load double, ptr %51, align 8, !tbaa !11
  %2459 = load ptr, ptr %27, align 8, !tbaa !5
  %2460 = load i64, ptr %44, align 8, !tbaa !9
  %2461 = getelementptr inbounds double, ptr %2459, i64 %2460
  %2462 = load double, ptr %2461, align 8, !tbaa !11
  %2463 = fdiv double %2462, %2458
  store double %2463, ptr %2461, align 8, !tbaa !11
  %2464 = load double, ptr %51, align 8, !tbaa !11
  %2465 = load ptr, ptr %27, align 8, !tbaa !5
  %2466 = load i64, ptr %45, align 8, !tbaa !9
  %2467 = getelementptr inbounds double, ptr %2465, i64 %2466
  %2468 = load double, ptr %2467, align 8, !tbaa !11
  %2469 = fmul double %2468, %2464
  store double %2469, ptr %2467, align 8, !tbaa !11
  %2470 = load i64, ptr %80, align 8, !tbaa !9
  %2471 = icmp ne i64 %2470, 0
  br i1 %2471, label %2472, label %2508

2472:                                             ; preds = %2420
  %2473 = load double, ptr %46, align 8, !tbaa !11
  %2474 = load double, ptr %72, align 8, !tbaa !11
  %2475 = fmul double %2473, %2474
  store double %2475, ptr %39, align 8, !tbaa !11
  %2476 = load ptr, ptr %25, align 8, !tbaa !5
  %2477 = load i64, ptr %44, align 8, !tbaa !9
  %2478 = load i64, ptr %32, align 8, !tbaa !9
  %2479 = mul nsw i64 %2477, %2478
  %2480 = add nsw i64 %2479, 1
  %2481 = getelementptr inbounds double, ptr %2476, i64 %2480
  %2482 = load ptr, ptr %25, align 8, !tbaa !5
  %2483 = load i64, ptr %45, align 8, !tbaa !9
  %2484 = load i64, ptr %32, align 8, !tbaa !9
  %2485 = mul nsw i64 %2483, %2484
  %2486 = add nsw i64 %2485, 1
  %2487 = getelementptr inbounds double, ptr %2482, i64 %2486
  %2488 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2481, ptr noundef @c__1, ptr noundef %2487, ptr noundef @c__1)
  %2489 = load double, ptr %51, align 8, !tbaa !11
  %2490 = fneg double %2489
  %2491 = load double, ptr %52, align 8, !tbaa !11
  %2492 = fmul double %2490, %2491
  %2493 = load double, ptr %73, align 8, !tbaa !11
  %2494 = fmul double %2492, %2493
  store double %2494, ptr %39, align 8, !tbaa !11
  %2495 = load ptr, ptr %25, align 8, !tbaa !5
  %2496 = load i64, ptr %45, align 8, !tbaa !9
  %2497 = load i64, ptr %32, align 8, !tbaa !9
  %2498 = mul nsw i64 %2496, %2497
  %2499 = add nsw i64 %2498, 1
  %2500 = getelementptr inbounds double, ptr %2495, i64 %2499
  %2501 = load ptr, ptr %25, align 8, !tbaa !5
  %2502 = load i64, ptr %44, align 8, !tbaa !9
  %2503 = load i64, ptr %32, align 8, !tbaa !9
  %2504 = mul nsw i64 %2502, %2503
  %2505 = add nsw i64 %2504, 1
  %2506 = getelementptr inbounds double, ptr %2501, i64 %2505
  %2507 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %2500, ptr noundef @c__1, ptr noundef %2506, ptr noundef @c__1)
  br label %2508

2508:                                             ; preds = %2472, %2420
  br label %2509

2509:                                             ; preds = %2508, %2419
  br label %2510

2510:                                             ; preds = %2509, %2320
  br label %2511

2511:                                             ; preds = %2510, %2225
  br label %2512

2512:                                             ; preds = %2511, %1974
  br label %2606

2513:                                             ; preds = %1831
  %2514 = load ptr, ptr %19, align 8, !tbaa !5
  %2515 = load ptr, ptr %21, align 8, !tbaa !5
  %2516 = load i64, ptr %44, align 8, !tbaa !9
  %2517 = load i64, ptr %30, align 8, !tbaa !9
  %2518 = mul nsw i64 %2516, %2517
  %2519 = add nsw i64 %2518, 1
  %2520 = getelementptr inbounds double, ptr %2515, i64 %2519
  %2521 = load ptr, ptr %27, align 8, !tbaa !5
  %2522 = load ptr, ptr %20, align 8, !tbaa !5
  %2523 = load i64, ptr %2522, align 8, !tbaa !9
  %2524 = add nsw i64 %2523, 1
  %2525 = getelementptr inbounds double, ptr %2521, i64 %2524
  %2526 = call i32 @f2c_dcopy(ptr noundef %2514, ptr noundef %2520, ptr noundef @c__1, ptr noundef %2525, ptr noundef @c__1)
  %2527 = load ptr, ptr %19, align 8, !tbaa !5
  %2528 = load ptr, ptr %27, align 8, !tbaa !5
  %2529 = load ptr, ptr %20, align 8, !tbaa !5
  %2530 = load i64, ptr %2529, align 8, !tbaa !9
  %2531 = add nsw i64 %2530, 1
  %2532 = getelementptr inbounds double, ptr %2528, i64 %2531
  %2533 = load ptr, ptr %22, align 8, !tbaa !5
  %2534 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef @c_b18, ptr noundef %2527, ptr noundef @c__1, ptr noundef %2532, ptr noundef %2533, ptr noundef %67)
  %2535 = load ptr, ptr %19, align 8, !tbaa !5
  %2536 = load ptr, ptr %21, align 8, !tbaa !5
  %2537 = load i64, ptr %45, align 8, !tbaa !9
  %2538 = load i64, ptr %30, align 8, !tbaa !9
  %2539 = mul nsw i64 %2537, %2538
  %2540 = add nsw i64 %2539, 1
  %2541 = getelementptr inbounds double, ptr %2536, i64 %2540
  %2542 = load ptr, ptr %22, align 8, !tbaa !5
  %2543 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef @c_b18, ptr noundef %2535, ptr noundef @c__1, ptr noundef %2541, ptr noundef %2542, ptr noundef %67)
  %2544 = load double, ptr %64, align 8, !tbaa !11
  %2545 = fneg double %2544
  %2546 = load ptr, ptr %27, align 8, !tbaa !5
  %2547 = load i64, ptr %44, align 8, !tbaa !9
  %2548 = getelementptr inbounds double, ptr %2546, i64 %2547
  %2549 = load double, ptr %2548, align 8, !tbaa !11
  %2550 = fmul double %2545, %2549
  %2551 = load ptr, ptr %27, align 8, !tbaa !5
  %2552 = load i64, ptr %45, align 8, !tbaa !9
  %2553 = getelementptr inbounds double, ptr %2551, i64 %2552
  %2554 = load double, ptr %2553, align 8, !tbaa !11
  %2555 = fdiv double %2550, %2554
  store double %2555, ptr %69, align 8, !tbaa !11
  %2556 = load ptr, ptr %19, align 8, !tbaa !5
  %2557 = load ptr, ptr %27, align 8, !tbaa !5
  %2558 = load ptr, ptr %20, align 8, !tbaa !5
  %2559 = load i64, ptr %2558, align 8, !tbaa !9
  %2560 = add nsw i64 %2559, 1
  %2561 = getelementptr inbounds double, ptr %2557, i64 %2560
  %2562 = load ptr, ptr %21, align 8, !tbaa !5
  %2563 = load i64, ptr %45, align 8, !tbaa !9
  %2564 = load i64, ptr %30, align 8, !tbaa !9
  %2565 = mul nsw i64 %2563, %2564
  %2566 = add nsw i64 %2565, 1
  %2567 = getelementptr inbounds double, ptr %2562, i64 %2566
  %2568 = call i32 @f2c_daxpy(ptr noundef %2556, ptr noundef %69, ptr noundef %2561, ptr noundef @c__1, ptr noundef %2567, ptr noundef @c__1)
  %2569 = load ptr, ptr %19, align 8, !tbaa !5
  %2570 = load ptr, ptr %21, align 8, !tbaa !5
  %2571 = load i64, ptr %45, align 8, !tbaa !9
  %2572 = load i64, ptr %30, align 8, !tbaa !9
  %2573 = mul nsw i64 %2571, %2572
  %2574 = add nsw i64 %2573, 1
  %2575 = getelementptr inbounds double, ptr %2570, i64 %2574
  %2576 = load ptr, ptr %22, align 8, !tbaa !5
  %2577 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %65, ptr noundef %2569, ptr noundef @c__1, ptr noundef %2575, ptr noundef %2576, ptr noundef %67)
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %2578 = load double, ptr %64, align 8, !tbaa !11
  %2579 = load double, ptr %64, align 8, !tbaa !11
  %2580 = fneg double %2578
  %2581 = call double @llvm.fmuladd.f64(double %2580, double %2579, double 1.000000e+00)
  store double %2581, ptr %40, align 8, !tbaa !11
  %2582 = load double, ptr %65, align 8, !tbaa !11
  %2583 = load double, ptr %39, align 8, !tbaa !11
  %2584 = load double, ptr %40, align 8, !tbaa !11
  %2585 = fcmp oge double %2583, %2584
  br i1 %2585, label %2586, label %2588

2586:                                             ; preds = %2513
  %2587 = load double, ptr %39, align 8, !tbaa !11
  br label %2590

2588:                                             ; preds = %2513
  %2589 = load double, ptr %40, align 8, !tbaa !11
  br label %2590

2590:                                             ; preds = %2588, %2586
  %2591 = phi double [ %2587, %2586 ], [ %2589, %2588 ]
  %2592 = call double @sqrt(double noundef %2591) #5
  %2593 = fmul double %2582, %2592
  %2594 = load ptr, ptr %23, align 8, !tbaa !5
  %2595 = load i64, ptr %45, align 8, !tbaa !9
  %2596 = getelementptr inbounds double, ptr %2594, i64 %2595
  store double %2593, ptr %2596, align 8, !tbaa !11
  %2597 = load double, ptr %90, align 8, !tbaa !11
  %2598 = load double, ptr %76, align 8, !tbaa !11
  %2599 = fcmp oge double %2597, %2598
  br i1 %2599, label %2600, label %2602

2600:                                             ; preds = %2590
  %2601 = load double, ptr %90, align 8, !tbaa !11
  br label %2604

2602:                                             ; preds = %2590
  %2603 = load double, ptr %76, align 8, !tbaa !11
  br label %2604

2604:                                             ; preds = %2602, %2600
  %2605 = phi double [ %2601, %2600 ], [ %2603, %2602 ]
  store double %2605, ptr %90, align 8, !tbaa !11
  br label %2606

2606:                                             ; preds = %2604, %2512
  %2607 = load ptr, ptr %23, align 8, !tbaa !5
  %2608 = load i64, ptr %45, align 8, !tbaa !9
  %2609 = getelementptr inbounds double, ptr %2607, i64 %2608
  %2610 = load double, ptr %2609, align 8, !tbaa !11
  %2611 = load double, ptr %65, align 8, !tbaa !11
  %2612 = fdiv double %2610, %2611
  store double %2612, ptr %39, align 8, !tbaa !11
  %2613 = load double, ptr %39, align 8, !tbaa !11
  %2614 = load double, ptr %39, align 8, !tbaa !11
  %2615 = fmul double %2613, %2614
  %2616 = load double, ptr %99, align 8, !tbaa !11
  %2617 = fcmp ole double %2615, %2616
  br i1 %2617, label %2618, label %2665

2618:                                             ; preds = %2606
  %2619 = load double, ptr %65, align 8, !tbaa !11
  %2620 = load double, ptr %97, align 8, !tbaa !11
  %2621 = fcmp olt double %2619, %2620
  br i1 %2621, label %2622, label %2643

2622:                                             ; preds = %2618
  %2623 = load double, ptr %65, align 8, !tbaa !11
  %2624 = load double, ptr %49, align 8, !tbaa !11
  %2625 = fcmp ogt double %2623, %2624
  br i1 %2625, label %2626, label %2643

2626:                                             ; preds = %2622
  %2627 = load ptr, ptr %19, align 8, !tbaa !5
  %2628 = load ptr, ptr %21, align 8, !tbaa !5
  %2629 = load i64, ptr %45, align 8, !tbaa !9
  %2630 = load i64, ptr %30, align 8, !tbaa !9
  %2631 = mul nsw i64 %2629, %2630
  %2632 = add nsw i64 %2631, 1
  %2633 = getelementptr inbounds double, ptr %2628, i64 %2632
  %2634 = call double @f2c_dnrm2(ptr noundef %2627, ptr noundef %2633, ptr noundef @c__1)
  %2635 = load ptr, ptr %27, align 8, !tbaa !5
  %2636 = load i64, ptr %45, align 8, !tbaa !9
  %2637 = getelementptr inbounds double, ptr %2635, i64 %2636
  %2638 = load double, ptr %2637, align 8, !tbaa !11
  %2639 = fmul double %2634, %2638
  %2640 = load ptr, ptr %23, align 8, !tbaa !5
  %2641 = load i64, ptr %45, align 8, !tbaa !9
  %2642 = getelementptr inbounds double, ptr %2640, i64 %2641
  store double %2639, ptr %2642, align 8, !tbaa !11
  br label %2664

2643:                                             ; preds = %2622, %2618
  store double 0.000000e+00, ptr %46, align 8, !tbaa !11
  store double 0.000000e+00, ptr %65, align 8, !tbaa !11
  %2644 = load ptr, ptr %19, align 8, !tbaa !5
  %2645 = load ptr, ptr %21, align 8, !tbaa !5
  %2646 = load i64, ptr %45, align 8, !tbaa !9
  %2647 = load i64, ptr %30, align 8, !tbaa !9
  %2648 = mul nsw i64 %2646, %2647
  %2649 = add nsw i64 %2648, 1
  %2650 = getelementptr inbounds double, ptr %2645, i64 %2649
  %2651 = call i32 @dlassq_(ptr noundef %2644, ptr noundef %2650, ptr noundef @c__1, ptr noundef %46, ptr noundef %65)
  %2652 = load double, ptr %46, align 8, !tbaa !11
  %2653 = load double, ptr %65, align 8, !tbaa !11
  %2654 = call double @sqrt(double noundef %2653) #5
  %2655 = fmul double %2652, %2654
  %2656 = load ptr, ptr %27, align 8, !tbaa !5
  %2657 = load i64, ptr %45, align 8, !tbaa !9
  %2658 = getelementptr inbounds double, ptr %2656, i64 %2657
  %2659 = load double, ptr %2658, align 8, !tbaa !11
  %2660 = fmul double %2655, %2659
  %2661 = load ptr, ptr %23, align 8, !tbaa !5
  %2662 = load i64, ptr %45, align 8, !tbaa !9
  %2663 = getelementptr inbounds double, ptr %2661, i64 %2662
  store double %2660, ptr %2663, align 8, !tbaa !11
  br label %2664

2664:                                             ; preds = %2643, %2626
  br label %2665

2665:                                             ; preds = %2664, %2606
  %2666 = load double, ptr %63, align 8, !tbaa !11
  %2667 = load double, ptr %68, align 8, !tbaa !11
  %2668 = fdiv double %2666, %2667
  %2669 = load double, ptr %99, align 8, !tbaa !11
  %2670 = fcmp ole double %2668, %2669
  br i1 %2670, label %2671, label %2716

2671:                                             ; preds = %2665
  %2672 = load double, ptr %63, align 8, !tbaa !11
  %2673 = load double, ptr %97, align 8, !tbaa !11
  %2674 = fcmp olt double %2672, %2673
  br i1 %2674, label %2675, label %2693

2675:                                             ; preds = %2671
  %2676 = load double, ptr %63, align 8, !tbaa !11
  %2677 = load double, ptr %49, align 8, !tbaa !11
  %2678 = fcmp ogt double %2676, %2677
  br i1 %2678, label %2679, label %2693

2679:                                             ; preds = %2675
  %2680 = load ptr, ptr %19, align 8, !tbaa !5
  %2681 = load ptr, ptr %21, align 8, !tbaa !5
  %2682 = load i64, ptr %44, align 8, !tbaa !9
  %2683 = load i64, ptr %30, align 8, !tbaa !9
  %2684 = mul nsw i64 %2682, %2683
  %2685 = add nsw i64 %2684, 1
  %2686 = getelementptr inbounds double, ptr %2681, i64 %2685
  %2687 = call double @f2c_dnrm2(ptr noundef %2680, ptr noundef %2686, ptr noundef @c__1)
  %2688 = load ptr, ptr %27, align 8, !tbaa !5
  %2689 = load i64, ptr %44, align 8, !tbaa !9
  %2690 = getelementptr inbounds double, ptr %2688, i64 %2689
  %2691 = load double, ptr %2690, align 8, !tbaa !11
  %2692 = fmul double %2687, %2691
  store double %2692, ptr %63, align 8, !tbaa !11
  br label %2711

2693:                                             ; preds = %2675, %2671
  store double 0.000000e+00, ptr %46, align 8, !tbaa !11
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  %2694 = load ptr, ptr %19, align 8, !tbaa !5
  %2695 = load ptr, ptr %21, align 8, !tbaa !5
  %2696 = load i64, ptr %44, align 8, !tbaa !9
  %2697 = load i64, ptr %30, align 8, !tbaa !9
  %2698 = mul nsw i64 %2696, %2697
  %2699 = add nsw i64 %2698, 1
  %2700 = getelementptr inbounds double, ptr %2695, i64 %2699
  %2701 = call i32 @dlassq_(ptr noundef %2694, ptr noundef %2700, ptr noundef @c__1, ptr noundef %46, ptr noundef %63)
  %2702 = load double, ptr %46, align 8, !tbaa !11
  %2703 = load double, ptr %63, align 8, !tbaa !11
  %2704 = call double @sqrt(double noundef %2703) #5
  %2705 = fmul double %2702, %2704
  %2706 = load ptr, ptr %27, align 8, !tbaa !5
  %2707 = load i64, ptr %44, align 8, !tbaa !9
  %2708 = getelementptr inbounds double, ptr %2706, i64 %2707
  %2709 = load double, ptr %2708, align 8, !tbaa !11
  %2710 = fmul double %2705, %2709
  store double %2710, ptr %63, align 8, !tbaa !11
  br label %2711

2711:                                             ; preds = %2693, %2679
  %2712 = load double, ptr %63, align 8, !tbaa !11
  %2713 = load ptr, ptr %23, align 8, !tbaa !5
  %2714 = load i64, ptr %44, align 8, !tbaa !9
  %2715 = getelementptr inbounds double, ptr %2713, i64 %2714
  store double %2712, ptr %2715, align 8, !tbaa !11
  br label %2716

2716:                                             ; preds = %2711, %2665
  br label %2726

2717:                                             ; preds = %1821
  %2718 = load i64, ptr %53, align 8, !tbaa !9
  %2719 = icmp eq i64 %2718, 0
  br i1 %2719, label %2720, label %2723

2720:                                             ; preds = %2717
  %2721 = load i64, ptr %92, align 8, !tbaa !9
  %2722 = add nsw i64 %2721, 1
  store i64 %2722, ptr %92, align 8, !tbaa !9
  br label %2723

2723:                                             ; preds = %2720, %2717
  %2724 = load i64, ptr %42, align 8, !tbaa !9
  %2725 = add nsw i64 %2724, 1
  store i64 %2725, ptr %42, align 8, !tbaa !9
  br label %2726

2726:                                             ; preds = %2723, %2716
  br label %2736

2727:                                             ; preds = %1607
  %2728 = load i64, ptr %53, align 8, !tbaa !9
  %2729 = icmp eq i64 %2728, 0
  br i1 %2729, label %2730, label %2733

2730:                                             ; preds = %2727
  %2731 = load i64, ptr %92, align 8, !tbaa !9
  %2732 = add nsw i64 %2731, 1
  store i64 %2732, ptr %92, align 8, !tbaa !9
  br label %2733

2733:                                             ; preds = %2730, %2727
  %2734 = load i64, ptr %42, align 8, !tbaa !9
  %2735 = add nsw i64 %2734, 1
  store i64 %2735, ptr %42, align 8, !tbaa !9
  br label %2736

2736:                                             ; preds = %2733, %2726
  %2737 = load i64, ptr %43, align 8, !tbaa !9
  %2738 = load i64, ptr %86, align 8, !tbaa !9
  %2739 = icmp sle i64 %2737, %2738
  br i1 %2739, label %2740, label %2751

2740:                                             ; preds = %2736
  %2741 = load i64, ptr %42, align 8, !tbaa !9
  %2742 = load i64, ptr %100, align 8, !tbaa !9
  %2743 = icmp sgt i64 %2741, %2742
  br i1 %2743, label %2744, label %2751

2744:                                             ; preds = %2740
  %2745 = load i64, ptr %53, align 8, !tbaa !9
  %2746 = icmp eq i64 %2745, 0
  br i1 %2746, label %2747, label %2750

2747:                                             ; preds = %2744
  %2748 = load double, ptr %63, align 8, !tbaa !11
  %2749 = fneg double %2748
  store double %2749, ptr %63, align 8, !tbaa !11
  br label %2750

2750:                                             ; preds = %2747, %2744
  store i64 0, ptr %92, align 8, !tbaa !9
  br label %2756

2751:                                             ; preds = %2740, %2736
  br label %2752

2752:                                             ; preds = %2751
  %2753 = load i64, ptr %45, align 8, !tbaa !9
  %2754 = add nsw i64 %2753, 1
  store i64 %2754, ptr %45, align 8, !tbaa !9
  br label %1603, !llvm.loop !22

2755:                                             ; preds = %1603
  br label %2756

2756:                                             ; preds = %2755, %2750
  %2757 = load double, ptr %63, align 8, !tbaa !11
  %2758 = load ptr, ptr %23, align 8, !tbaa !5
  %2759 = load i64, ptr %44, align 8, !tbaa !9
  %2760 = getelementptr inbounds double, ptr %2758, i64 %2759
  store double %2757, ptr %2760, align 8, !tbaa !11
  br label %2792

2761:                                             ; preds = %1582
  %2762 = load double, ptr %63, align 8, !tbaa !11
  %2763 = load ptr, ptr %23, align 8, !tbaa !5
  %2764 = load i64, ptr %44, align 8, !tbaa !9
  %2765 = getelementptr inbounds double, ptr %2763, i64 %2764
  store double %2762, ptr %2765, align 8, !tbaa !11
  %2766 = load i64, ptr %53, align 8, !tbaa !9
  %2767 = icmp eq i64 %2766, 0
  br i1 %2767, label %2768, label %2791

2768:                                             ; preds = %2761
  %2769 = load double, ptr %63, align 8, !tbaa !11
  %2770 = fcmp oeq double %2769, 0.000000e+00
  br i1 %2770, label %2771, label %2791

2771:                                             ; preds = %2768
  %2772 = load i64, ptr %57, align 8, !tbaa !9
  %2773 = load i64, ptr %56, align 8, !tbaa !9
  %2774 = add nsw i64 %2772, %2773
  %2775 = sub nsw i64 %2774, 1
  store i64 %2775, ptr %37, align 8, !tbaa !9
  %2776 = load i64, ptr %92, align 8, !tbaa !9
  %2777 = load i64, ptr %37, align 8, !tbaa !9
  %2778 = load ptr, ptr %20, align 8, !tbaa !5
  %2779 = load i64, ptr %2778, align 8, !tbaa !9
  %2780 = icmp sle i64 %2777, %2779
  br i1 %2780, label %2781, label %2783

2781:                                             ; preds = %2771
  %2782 = load i64, ptr %37, align 8, !tbaa !9
  br label %2786

2783:                                             ; preds = %2771
  %2784 = load ptr, ptr %20, align 8, !tbaa !5
  %2785 = load i64, ptr %2784, align 8, !tbaa !9
  br label %2786

2786:                                             ; preds = %2783, %2781
  %2787 = phi i64 [ %2782, %2781 ], [ %2785, %2783 ]
  %2788 = add nsw i64 %2776, %2787
  %2789 = load i64, ptr %44, align 8, !tbaa !9
  %2790 = sub nsw i64 %2788, %2789
  store i64 %2790, ptr %92, align 8, !tbaa !9
  br label %2791

2791:                                             ; preds = %2786, %2768, %2761
  br label %2792

2792:                                             ; preds = %2791, %2756
  br label %2793

2793:                                             ; preds = %2792
  %2794 = load i64, ptr %44, align 8, !tbaa !9
  %2795 = add nsw i64 %2794, 1
  store i64 %2795, ptr %44, align 8, !tbaa !9
  br label %1435, !llvm.loop !23

2796:                                             ; preds = %1435
  br label %2797

2797:                                             ; preds = %2796
  %2798 = load i64, ptr %53, align 8, !tbaa !9
  %2799 = add nsw i64 %2798, 1
  store i64 %2799, ptr %53, align 8, !tbaa !9
  br label %1408, !llvm.loop !24

2800:                                             ; preds = %1408
  %2801 = load i64, ptr %58, align 8, !tbaa !9
  %2802 = sub nsw i64 %2801, 1
  %2803 = load i64, ptr %56, align 8, !tbaa !9
  %2804 = mul nsw i64 %2802, %2803
  %2805 = add nsw i64 %2804, 1
  store i64 %2805, ptr %57, align 8, !tbaa !9
  %2806 = load i64, ptr %60, align 8, !tbaa !9
  store i64 %2806, ptr %35, align 8, !tbaa !9
  %2807 = load i64, ptr %58, align 8, !tbaa !9
  %2808 = add nsw i64 %2807, 1
  store i64 %2808, ptr %54, align 8, !tbaa !9
  br label %2809

2809:                                             ; preds = %4197, %2800
  %2810 = load i64, ptr %54, align 8, !tbaa !9
  %2811 = load i64, ptr %35, align 8, !tbaa !9
  %2812 = icmp sle i64 %2810, %2811
  br i1 %2812, label %2813, label %4200

2813:                                             ; preds = %2809
  %2814 = load i64, ptr %54, align 8, !tbaa !9
  %2815 = sub nsw i64 %2814, 1
  %2816 = load i64, ptr %56, align 8, !tbaa !9
  %2817 = mul nsw i64 %2815, %2816
  %2818 = add nsw i64 %2817, 1
  store i64 %2818, ptr %59, align 8, !tbaa !9
  store i64 0, ptr %85, align 8, !tbaa !9
  %2819 = load i64, ptr %57, align 8, !tbaa !9
  %2820 = load i64, ptr %56, align 8, !tbaa !9
  %2821 = add nsw i64 %2819, %2820
  %2822 = sub nsw i64 %2821, 1
  store i64 %2822, ptr %37, align 8, !tbaa !9
  %2823 = load i64, ptr %37, align 8, !tbaa !9
  %2824 = load ptr, ptr %20, align 8, !tbaa !5
  %2825 = load i64, ptr %2824, align 8, !tbaa !9
  %2826 = icmp sle i64 %2823, %2825
  br i1 %2826, label %2827, label %2829

2827:                                             ; preds = %2813
  %2828 = load i64, ptr %37, align 8, !tbaa !9
  br label %2832

2829:                                             ; preds = %2813
  %2830 = load ptr, ptr %20, align 8, !tbaa !5
  %2831 = load i64, ptr %2830, align 8, !tbaa !9
  br label %2832

2832:                                             ; preds = %2829, %2827
  %2833 = phi i64 [ %2828, %2827 ], [ %2831, %2829 ]
  store i64 %2833, ptr %36, align 8, !tbaa !9
  %2834 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %2834, ptr %44, align 8, !tbaa !9
  br label %2835

2835:                                             ; preds = %4193, %2832
  %2836 = load i64, ptr %44, align 8, !tbaa !9
  %2837 = load i64, ptr %36, align 8, !tbaa !9
  %2838 = icmp sle i64 %2836, %2837
  br i1 %2838, label %2839, label %4196

2839:                                             ; preds = %2835
  %2840 = load ptr, ptr %23, align 8, !tbaa !5
  %2841 = load i64, ptr %44, align 8, !tbaa !9
  %2842 = getelementptr inbounds double, ptr %2840, i64 %2841
  %2843 = load double, ptr %2842, align 8, !tbaa !11
  store double %2843, ptr %63, align 8, !tbaa !11
  %2844 = load double, ptr %63, align 8, !tbaa !11
  %2845 = fcmp ogt double %2844, 0.000000e+00
  br i1 %2845, label %2846, label %4163

2846:                                             ; preds = %2839
  store i64 0, ptr %42, align 8, !tbaa !9
  %2847 = load i64, ptr %59, align 8, !tbaa !9
  %2848 = load i64, ptr %56, align 8, !tbaa !9
  %2849 = add nsw i64 %2847, %2848
  %2850 = sub nsw i64 %2849, 1
  store i64 %2850, ptr %38, align 8, !tbaa !9
  %2851 = load i64, ptr %38, align 8, !tbaa !9
  %2852 = load ptr, ptr %20, align 8, !tbaa !5
  %2853 = load i64, ptr %2852, align 8, !tbaa !9
  %2854 = icmp sle i64 %2851, %2853
  br i1 %2854, label %2855, label %2857

2855:                                             ; preds = %2846
  %2856 = load i64, ptr %38, align 8, !tbaa !9
  br label %2860

2857:                                             ; preds = %2846
  %2858 = load ptr, ptr %20, align 8, !tbaa !5
  %2859 = load i64, ptr %2858, align 8, !tbaa !9
  br label %2860

2860:                                             ; preds = %2857, %2855
  %2861 = phi i64 [ %2856, %2855 ], [ %2859, %2857 ]
  store i64 %2861, ptr %37, align 8, !tbaa !9
  %2862 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %2862, ptr %45, align 8, !tbaa !9
  br label %2863

2863:                                             ; preds = %4154, %2860
  %2864 = load i64, ptr %45, align 8, !tbaa !9
  %2865 = load i64, ptr %37, align 8, !tbaa !9
  %2866 = icmp sle i64 %2864, %2865
  br i1 %2866, label %2867, label %4157

2867:                                             ; preds = %2863
  %2868 = load ptr, ptr %23, align 8, !tbaa !5
  %2869 = load i64, ptr %45, align 8, !tbaa !9
  %2870 = getelementptr inbounds double, ptr %2868, i64 %2869
  %2871 = load double, ptr %2870, align 8, !tbaa !11
  store double %2871, ptr %65, align 8, !tbaa !11
  %2872 = load double, ptr %65, align 8, !tbaa !11
  %2873 = fcmp ogt double %2872, 0.000000e+00
  br i1 %2873, label %2874, label %4122

2874:                                             ; preds = %2867
  %2875 = load double, ptr %63, align 8, !tbaa !11
  store double %2875, ptr %68, align 8, !tbaa !11
  %2876 = load double, ptr %65, align 8, !tbaa !11
  %2877 = fcmp oge double %2876, 1.000000e+00
  br i1 %2877, label %2878, label %2979

2878:                                             ; preds = %2874
  %2879 = load double, ptr %63, align 8, !tbaa !11
  %2880 = load double, ptr %65, align 8, !tbaa !11
  %2881 = fcmp oge double %2879, %2880
  br i1 %2881, label %2882, label %2890

2882:                                             ; preds = %2878
  %2883 = load double, ptr %75, align 8, !tbaa !11
  %2884 = load double, ptr %63, align 8, !tbaa !11
  %2885 = fmul double %2883, %2884
  %2886 = load double, ptr %65, align 8, !tbaa !11
  %2887 = fcmp ole double %2885, %2886
  %2888 = zext i1 %2887 to i32
  %2889 = sext i32 %2888 to i64
  store i64 %2889, ptr %84, align 8, !tbaa !9
  br label %2898

2890:                                             ; preds = %2878
  %2891 = load double, ptr %75, align 8, !tbaa !11
  %2892 = load double, ptr %65, align 8, !tbaa !11
  %2893 = fmul double %2891, %2892
  %2894 = load double, ptr %63, align 8, !tbaa !11
  %2895 = fcmp ole double %2893, %2894
  %2896 = zext i1 %2895 to i32
  %2897 = sext i32 %2896 to i64
  store i64 %2897, ptr %84, align 8, !tbaa !9
  br label %2898

2898:                                             ; preds = %2890, %2882
  %2899 = load double, ptr %63, align 8, !tbaa !11
  %2900 = load double, ptr %55, align 8, !tbaa !11
  %2901 = load double, ptr %65, align 8, !tbaa !11
  %2902 = fdiv double %2900, %2901
  %2903 = fcmp olt double %2899, %2902
  br i1 %2903, label %2904, label %2933

2904:                                             ; preds = %2898
  %2905 = load ptr, ptr %19, align 8, !tbaa !5
  %2906 = load ptr, ptr %21, align 8, !tbaa !5
  %2907 = load i64, ptr %44, align 8, !tbaa !9
  %2908 = load i64, ptr %30, align 8, !tbaa !9
  %2909 = mul nsw i64 %2907, %2908
  %2910 = add nsw i64 %2909, 1
  %2911 = getelementptr inbounds double, ptr %2906, i64 %2910
  %2912 = load ptr, ptr %21, align 8, !tbaa !5
  %2913 = load i64, ptr %45, align 8, !tbaa !9
  %2914 = load i64, ptr %30, align 8, !tbaa !9
  %2915 = mul nsw i64 %2913, %2914
  %2916 = add nsw i64 %2915, 1
  %2917 = getelementptr inbounds double, ptr %2912, i64 %2916
  %2918 = call double @f2c_ddot(ptr noundef %2905, ptr noundef %2911, ptr noundef @c__1, ptr noundef %2917, ptr noundef @c__1)
  %2919 = load ptr, ptr %27, align 8, !tbaa !5
  %2920 = load i64, ptr %44, align 8, !tbaa !9
  %2921 = getelementptr inbounds double, ptr %2919, i64 %2920
  %2922 = load double, ptr %2921, align 8, !tbaa !11
  %2923 = fmul double %2918, %2922
  %2924 = load ptr, ptr %27, align 8, !tbaa !5
  %2925 = load i64, ptr %45, align 8, !tbaa !9
  %2926 = getelementptr inbounds double, ptr %2924, i64 %2925
  %2927 = load double, ptr %2926, align 8, !tbaa !11
  %2928 = fmul double %2923, %2927
  %2929 = load double, ptr %65, align 8, !tbaa !11
  %2930 = fdiv double %2928, %2929
  %2931 = load double, ptr %63, align 8, !tbaa !11
  %2932 = fdiv double %2930, %2931
  store double %2932, ptr %64, align 8, !tbaa !11
  br label %2978

2933:                                             ; preds = %2898
  %2934 = load ptr, ptr %19, align 8, !tbaa !5
  %2935 = load ptr, ptr %21, align 8, !tbaa !5
  %2936 = load i64, ptr %44, align 8, !tbaa !9
  %2937 = load i64, ptr %30, align 8, !tbaa !9
  %2938 = mul nsw i64 %2936, %2937
  %2939 = add nsw i64 %2938, 1
  %2940 = getelementptr inbounds double, ptr %2935, i64 %2939
  %2941 = load ptr, ptr %27, align 8, !tbaa !5
  %2942 = load ptr, ptr %20, align 8, !tbaa !5
  %2943 = load i64, ptr %2942, align 8, !tbaa !9
  %2944 = add nsw i64 %2943, 1
  %2945 = getelementptr inbounds double, ptr %2941, i64 %2944
  %2946 = call i32 @f2c_dcopy(ptr noundef %2934, ptr noundef %2940, ptr noundef @c__1, ptr noundef %2945, ptr noundef @c__1)
  %2947 = load ptr, ptr %27, align 8, !tbaa !5
  %2948 = load i64, ptr %44, align 8, !tbaa !9
  %2949 = getelementptr inbounds double, ptr %2947, i64 %2948
  %2950 = load ptr, ptr %19, align 8, !tbaa !5
  %2951 = load ptr, ptr %27, align 8, !tbaa !5
  %2952 = load ptr, ptr %20, align 8, !tbaa !5
  %2953 = load i64, ptr %2952, align 8, !tbaa !9
  %2954 = add nsw i64 %2953, 1
  %2955 = getelementptr inbounds double, ptr %2951, i64 %2954
  %2956 = load ptr, ptr %22, align 8, !tbaa !5
  %2957 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef %2949, ptr noundef %2950, ptr noundef @c__1, ptr noundef %2955, ptr noundef %2956, ptr noundef %67)
  %2958 = load ptr, ptr %19, align 8, !tbaa !5
  %2959 = load ptr, ptr %27, align 8, !tbaa !5
  %2960 = load ptr, ptr %20, align 8, !tbaa !5
  %2961 = load i64, ptr %2960, align 8, !tbaa !9
  %2962 = add nsw i64 %2961, 1
  %2963 = getelementptr inbounds double, ptr %2959, i64 %2962
  %2964 = load ptr, ptr %21, align 8, !tbaa !5
  %2965 = load i64, ptr %45, align 8, !tbaa !9
  %2966 = load i64, ptr %30, align 8, !tbaa !9
  %2967 = mul nsw i64 %2965, %2966
  %2968 = add nsw i64 %2967, 1
  %2969 = getelementptr inbounds double, ptr %2964, i64 %2968
  %2970 = call double @f2c_ddot(ptr noundef %2958, ptr noundef %2963, ptr noundef @c__1, ptr noundef %2969, ptr noundef @c__1)
  %2971 = load ptr, ptr %27, align 8, !tbaa !5
  %2972 = load i64, ptr %45, align 8, !tbaa !9
  %2973 = getelementptr inbounds double, ptr %2971, i64 %2972
  %2974 = load double, ptr %2973, align 8, !tbaa !11
  %2975 = fmul double %2970, %2974
  %2976 = load double, ptr %65, align 8, !tbaa !11
  %2977 = fdiv double %2975, %2976
  store double %2977, ptr %64, align 8, !tbaa !11
  br label %2978

2978:                                             ; preds = %2933, %2904
  br label %3080

2979:                                             ; preds = %2874
  %2980 = load double, ptr %63, align 8, !tbaa !11
  %2981 = load double, ptr %65, align 8, !tbaa !11
  %2982 = fcmp oge double %2980, %2981
  br i1 %2982, label %2983, label %2991

2983:                                             ; preds = %2979
  %2984 = load double, ptr %63, align 8, !tbaa !11
  %2985 = load double, ptr %65, align 8, !tbaa !11
  %2986 = load double, ptr %75, align 8, !tbaa !11
  %2987 = fdiv double %2985, %2986
  %2988 = fcmp ole double %2984, %2987
  %2989 = zext i1 %2988 to i32
  %2990 = sext i32 %2989 to i64
  store i64 %2990, ptr %84, align 8, !tbaa !9
  br label %2999

2991:                                             ; preds = %2979
  %2992 = load double, ptr %65, align 8, !tbaa !11
  %2993 = load double, ptr %63, align 8, !tbaa !11
  %2994 = load double, ptr %75, align 8, !tbaa !11
  %2995 = fdiv double %2993, %2994
  %2996 = fcmp ole double %2992, %2995
  %2997 = zext i1 %2996 to i32
  %2998 = sext i32 %2997 to i64
  store i64 %2998, ptr %84, align 8, !tbaa !9
  br label %2999

2999:                                             ; preds = %2991, %2983
  %3000 = load double, ptr %63, align 8, !tbaa !11
  %3001 = load double, ptr %75, align 8, !tbaa !11
  %3002 = load double, ptr %65, align 8, !tbaa !11
  %3003 = fdiv double %3001, %3002
  %3004 = fcmp ogt double %3000, %3003
  br i1 %3004, label %3005, label %3034

3005:                                             ; preds = %2999
  %3006 = load ptr, ptr %19, align 8, !tbaa !5
  %3007 = load ptr, ptr %21, align 8, !tbaa !5
  %3008 = load i64, ptr %44, align 8, !tbaa !9
  %3009 = load i64, ptr %30, align 8, !tbaa !9
  %3010 = mul nsw i64 %3008, %3009
  %3011 = add nsw i64 %3010, 1
  %3012 = getelementptr inbounds double, ptr %3007, i64 %3011
  %3013 = load ptr, ptr %21, align 8, !tbaa !5
  %3014 = load i64, ptr %45, align 8, !tbaa !9
  %3015 = load i64, ptr %30, align 8, !tbaa !9
  %3016 = mul nsw i64 %3014, %3015
  %3017 = add nsw i64 %3016, 1
  %3018 = getelementptr inbounds double, ptr %3013, i64 %3017
  %3019 = call double @f2c_ddot(ptr noundef %3006, ptr noundef %3012, ptr noundef @c__1, ptr noundef %3018, ptr noundef @c__1)
  %3020 = load ptr, ptr %27, align 8, !tbaa !5
  %3021 = load i64, ptr %44, align 8, !tbaa !9
  %3022 = getelementptr inbounds double, ptr %3020, i64 %3021
  %3023 = load double, ptr %3022, align 8, !tbaa !11
  %3024 = fmul double %3019, %3023
  %3025 = load ptr, ptr %27, align 8, !tbaa !5
  %3026 = load i64, ptr %45, align 8, !tbaa !9
  %3027 = getelementptr inbounds double, ptr %3025, i64 %3026
  %3028 = load double, ptr %3027, align 8, !tbaa !11
  %3029 = fmul double %3024, %3028
  %3030 = load double, ptr %65, align 8, !tbaa !11
  %3031 = fdiv double %3029, %3030
  %3032 = load double, ptr %63, align 8, !tbaa !11
  %3033 = fdiv double %3031, %3032
  store double %3033, ptr %64, align 8, !tbaa !11
  br label %3079

3034:                                             ; preds = %2999
  %3035 = load ptr, ptr %19, align 8, !tbaa !5
  %3036 = load ptr, ptr %21, align 8, !tbaa !5
  %3037 = load i64, ptr %45, align 8, !tbaa !9
  %3038 = load i64, ptr %30, align 8, !tbaa !9
  %3039 = mul nsw i64 %3037, %3038
  %3040 = add nsw i64 %3039, 1
  %3041 = getelementptr inbounds double, ptr %3036, i64 %3040
  %3042 = load ptr, ptr %27, align 8, !tbaa !5
  %3043 = load ptr, ptr %20, align 8, !tbaa !5
  %3044 = load i64, ptr %3043, align 8, !tbaa !9
  %3045 = add nsw i64 %3044, 1
  %3046 = getelementptr inbounds double, ptr %3042, i64 %3045
  %3047 = call i32 @f2c_dcopy(ptr noundef %3035, ptr noundef %3041, ptr noundef @c__1, ptr noundef %3046, ptr noundef @c__1)
  %3048 = load ptr, ptr %27, align 8, !tbaa !5
  %3049 = load i64, ptr %45, align 8, !tbaa !9
  %3050 = getelementptr inbounds double, ptr %3048, i64 %3049
  %3051 = load ptr, ptr %19, align 8, !tbaa !5
  %3052 = load ptr, ptr %27, align 8, !tbaa !5
  %3053 = load ptr, ptr %20, align 8, !tbaa !5
  %3054 = load i64, ptr %3053, align 8, !tbaa !9
  %3055 = add nsw i64 %3054, 1
  %3056 = getelementptr inbounds double, ptr %3052, i64 %3055
  %3057 = load ptr, ptr %22, align 8, !tbaa !5
  %3058 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %3050, ptr noundef %3051, ptr noundef @c__1, ptr noundef %3056, ptr noundef %3057, ptr noundef %67)
  %3059 = load ptr, ptr %19, align 8, !tbaa !5
  %3060 = load ptr, ptr %27, align 8, !tbaa !5
  %3061 = load ptr, ptr %20, align 8, !tbaa !5
  %3062 = load i64, ptr %3061, align 8, !tbaa !9
  %3063 = add nsw i64 %3062, 1
  %3064 = getelementptr inbounds double, ptr %3060, i64 %3063
  %3065 = load ptr, ptr %21, align 8, !tbaa !5
  %3066 = load i64, ptr %44, align 8, !tbaa !9
  %3067 = load i64, ptr %30, align 8, !tbaa !9
  %3068 = mul nsw i64 %3066, %3067
  %3069 = add nsw i64 %3068, 1
  %3070 = getelementptr inbounds double, ptr %3065, i64 %3069
  %3071 = call double @f2c_ddot(ptr noundef %3059, ptr noundef %3064, ptr noundef @c__1, ptr noundef %3070, ptr noundef @c__1)
  %3072 = load ptr, ptr %27, align 8, !tbaa !5
  %3073 = load i64, ptr %44, align 8, !tbaa !9
  %3074 = getelementptr inbounds double, ptr %3072, i64 %3073
  %3075 = load double, ptr %3074, align 8, !tbaa !11
  %3076 = fmul double %3071, %3075
  %3077 = load double, ptr %63, align 8, !tbaa !11
  %3078 = fdiv double %3076, %3077
  store double %3078, ptr %64, align 8, !tbaa !11
  br label %3079

3079:                                             ; preds = %3034, %3005
  br label %3080

3080:                                             ; preds = %3079, %2978
  %3081 = load double, ptr %88, align 8, !tbaa !11
  store double %3081, ptr %39, align 8, !tbaa !11
  %3082 = load double, ptr %64, align 8, !tbaa !11
  %3083 = fcmp oge double %3082, 0.000000e+00
  br i1 %3083, label %3084, label %3086

3084:                                             ; preds = %3080
  %3085 = load double, ptr %64, align 8, !tbaa !11
  br label %3089

3086:                                             ; preds = %3080
  %3087 = load double, ptr %64, align 8, !tbaa !11
  %3088 = fneg double %3087
  br label %3089

3089:                                             ; preds = %3086, %3084
  %3090 = phi double [ %3085, %3084 ], [ %3088, %3086 ]
  store double %3090, ptr %40, align 8, !tbaa !11
  %3091 = load double, ptr %39, align 8, !tbaa !11
  %3092 = load double, ptr %40, align 8, !tbaa !11
  %3093 = fcmp oge double %3091, %3092
  br i1 %3093, label %3094, label %3096

3094:                                             ; preds = %3089
  %3095 = load double, ptr %39, align 8, !tbaa !11
  br label %3098

3096:                                             ; preds = %3089
  %3097 = load double, ptr %40, align 8, !tbaa !11
  br label %3098

3098:                                             ; preds = %3096, %3094
  %3099 = phi double [ %3095, %3094 ], [ %3097, %3096 ]
  store double %3099, ptr %88, align 8, !tbaa !11
  %3100 = load double, ptr %64, align 8, !tbaa !11
  %3101 = fcmp oge double %3100, 0.000000e+00
  br i1 %3101, label %3102, label %3104

3102:                                             ; preds = %3098
  %3103 = load double, ptr %64, align 8, !tbaa !11
  br label %3107

3104:                                             ; preds = %3098
  %3105 = load double, ptr %64, align 8, !tbaa !11
  %3106 = fneg double %3105
  br label %3107

3107:                                             ; preds = %3104, %3102
  %3108 = phi double [ %3103, %3102 ], [ %3106, %3104 ]
  %3109 = load double, ptr %61, align 8, !tbaa !11
  %3110 = fcmp ogt double %3108, %3109
  br i1 %3110, label %3111, label %4114

3111:                                             ; preds = %3107
  store i64 0, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %42, align 8, !tbaa !9
  %3112 = load i64, ptr %93, align 8, !tbaa !9
  %3113 = add nsw i64 %3112, 1
  store i64 %3113, ptr %93, align 8, !tbaa !9
  %3114 = load i64, ptr %84, align 8, !tbaa !9
  %3115 = icmp ne i64 %3114, 0
  br i1 %3115, label %3116, label %3809

3116:                                             ; preds = %3111
  %3117 = load double, ptr %65, align 8, !tbaa !11
  %3118 = load double, ptr %63, align 8, !tbaa !11
  %3119 = fdiv double %3117, %3118
  store double %3119, ptr %73, align 8, !tbaa !11
  %3120 = load double, ptr %63, align 8, !tbaa !11
  %3121 = load double, ptr %65, align 8, !tbaa !11
  %3122 = fdiv double %3120, %3121
  store double %3122, ptr %72, align 8, !tbaa !11
  %3123 = load double, ptr %73, align 8, !tbaa !11
  %3124 = load double, ptr %72, align 8, !tbaa !11
  %3125 = fsub double %3123, %3124
  store double %3125, ptr %39, align 8, !tbaa !11
  %3126 = load double, ptr %39, align 8, !tbaa !11
  %3127 = fcmp oge double %3126, 0.000000e+00
  br i1 %3127, label %3128, label %3130

3128:                                             ; preds = %3116
  %3129 = load double, ptr %39, align 8, !tbaa !11
  br label %3133

3130:                                             ; preds = %3116
  %3131 = load double, ptr %39, align 8, !tbaa !11
  %3132 = fneg double %3131
  br label %3133

3133:                                             ; preds = %3130, %3128
  %3134 = phi double [ %3129, %3128 ], [ %3132, %3130 ]
  %3135 = fmul double %3134, -5.000000e-01
  %3136 = load double, ptr %64, align 8, !tbaa !11
  %3137 = fdiv double %3135, %3136
  store double %3137, ptr %74, align 8, !tbaa !11
  %3138 = load double, ptr %65, align 8, !tbaa !11
  %3139 = load double, ptr %68, align 8, !tbaa !11
  %3140 = fcmp ogt double %3138, %3139
  br i1 %3140, label %3141, label %3144

3141:                                             ; preds = %3133
  %3142 = load double, ptr %74, align 8, !tbaa !11
  %3143 = fneg double %3142
  store double %3143, ptr %74, align 8, !tbaa !11
  br label %3144

3144:                                             ; preds = %3141, %3133
  %3145 = load double, ptr %74, align 8, !tbaa !11
  %3146 = fcmp oge double %3145, 0.000000e+00
  br i1 %3146, label %3147, label %3149

3147:                                             ; preds = %3144
  %3148 = load double, ptr %74, align 8, !tbaa !11
  br label %3152

3149:                                             ; preds = %3144
  %3150 = load double, ptr %74, align 8, !tbaa !11
  %3151 = fneg double %3150
  br label %3152

3152:                                             ; preds = %3149, %3147
  %3153 = phi double [ %3148, %3147 ], [ %3151, %3149 ]
  %3154 = load double, ptr %41, align 8, !tbaa !11
  %3155 = fcmp ogt double %3153, %3154
  br i1 %3155, label %3156, label %3274

3156:                                             ; preds = %3152
  %3157 = load double, ptr %74, align 8, !tbaa !11
  %3158 = fdiv double 5.000000e-01, %3157
  store double %3158, ptr %46, align 8, !tbaa !11
  %3159 = load double, ptr %46, align 8, !tbaa !11
  %3160 = load ptr, ptr %27, align 8, !tbaa !5
  %3161 = load i64, ptr %44, align 8, !tbaa !9
  %3162 = getelementptr inbounds double, ptr %3160, i64 %3161
  %3163 = load double, ptr %3162, align 8, !tbaa !11
  %3164 = fmul double %3159, %3163
  %3165 = load ptr, ptr %27, align 8, !tbaa !5
  %3166 = load i64, ptr %45, align 8, !tbaa !9
  %3167 = getelementptr inbounds double, ptr %3165, i64 %3166
  %3168 = load double, ptr %3167, align 8, !tbaa !11
  %3169 = fdiv double %3164, %3168
  %3170 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 2
  store double %3169, ptr %3170, align 16, !tbaa !11
  %3171 = load double, ptr %46, align 8, !tbaa !11
  %3172 = fneg double %3171
  %3173 = load ptr, ptr %27, align 8, !tbaa !5
  %3174 = load i64, ptr %45, align 8, !tbaa !9
  %3175 = getelementptr inbounds double, ptr %3173, i64 %3174
  %3176 = load double, ptr %3175, align 8, !tbaa !11
  %3177 = fmul double %3172, %3176
  %3178 = load ptr, ptr %27, align 8, !tbaa !5
  %3179 = load i64, ptr %44, align 8, !tbaa !9
  %3180 = getelementptr inbounds double, ptr %3178, i64 %3179
  %3181 = load double, ptr %3180, align 8, !tbaa !11
  %3182 = fdiv double %3177, %3181
  %3183 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 3
  store double %3182, ptr %3183, align 8, !tbaa !11
  %3184 = load ptr, ptr %19, align 8, !tbaa !5
  %3185 = load ptr, ptr %21, align 8, !tbaa !5
  %3186 = load i64, ptr %44, align 8, !tbaa !9
  %3187 = load i64, ptr %30, align 8, !tbaa !9
  %3188 = mul nsw i64 %3186, %3187
  %3189 = add nsw i64 %3188, 1
  %3190 = getelementptr inbounds double, ptr %3185, i64 %3189
  %3191 = load ptr, ptr %21, align 8, !tbaa !5
  %3192 = load i64, ptr %45, align 8, !tbaa !9
  %3193 = load i64, ptr %30, align 8, !tbaa !9
  %3194 = mul nsw i64 %3192, %3193
  %3195 = add nsw i64 %3194, 1
  %3196 = getelementptr inbounds double, ptr %3191, i64 %3195
  %3197 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %3198 = call i32 @f2c_drotm(ptr noundef %3184, ptr noundef %3190, ptr noundef @c__1, ptr noundef %3196, ptr noundef @c__1, ptr noundef %3197)
  %3199 = load i64, ptr %80, align 8, !tbaa !9
  %3200 = icmp ne i64 %3199, 0
  br i1 %3200, label %3201, label %3216

3201:                                             ; preds = %3156
  %3202 = load ptr, ptr %25, align 8, !tbaa !5
  %3203 = load i64, ptr %44, align 8, !tbaa !9
  %3204 = load i64, ptr %32, align 8, !tbaa !9
  %3205 = mul nsw i64 %3203, %3204
  %3206 = add nsw i64 %3205, 1
  %3207 = getelementptr inbounds double, ptr %3202, i64 %3206
  %3208 = load ptr, ptr %25, align 8, !tbaa !5
  %3209 = load i64, ptr %45, align 8, !tbaa !9
  %3210 = load i64, ptr %32, align 8, !tbaa !9
  %3211 = mul nsw i64 %3209, %3210
  %3212 = add nsw i64 %3211, 1
  %3213 = getelementptr inbounds double, ptr %3208, i64 %3212
  %3214 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %3215 = call i32 @f2c_drotm(ptr noundef %62, ptr noundef %3207, ptr noundef @c__1, ptr noundef %3213, ptr noundef @c__1, ptr noundef %3214)
  br label %3216

3216:                                             ; preds = %3201, %3156
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %3217 = load double, ptr %46, align 8, !tbaa !11
  %3218 = load double, ptr %72, align 8, !tbaa !11
  %3219 = fmul double %3217, %3218
  %3220 = load double, ptr %64, align 8, !tbaa !11
  %3221 = call double @llvm.fmuladd.f64(double %3219, double %3220, double 1.000000e+00)
  store double %3221, ptr %40, align 8, !tbaa !11
  %3222 = load double, ptr %65, align 8, !tbaa !11
  %3223 = load double, ptr %39, align 8, !tbaa !11
  %3224 = load double, ptr %40, align 8, !tbaa !11
  %3225 = fcmp oge double %3223, %3224
  br i1 %3225, label %3226, label %3228

3226:                                             ; preds = %3216
  %3227 = load double, ptr %39, align 8, !tbaa !11
  br label %3230

3228:                                             ; preds = %3216
  %3229 = load double, ptr %40, align 8, !tbaa !11
  br label %3230

3230:                                             ; preds = %3228, %3226
  %3231 = phi double [ %3227, %3226 ], [ %3229, %3228 ]
  %3232 = call double @sqrt(double noundef %3231) #5
  %3233 = fmul double %3222, %3232
  %3234 = load ptr, ptr %23, align 8, !tbaa !5
  %3235 = load i64, ptr %45, align 8, !tbaa !9
  %3236 = getelementptr inbounds double, ptr %3234, i64 %3235
  store double %3233, ptr %3236, align 8, !tbaa !11
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %3237 = load double, ptr %46, align 8, !tbaa !11
  %3238 = load double, ptr %73, align 8, !tbaa !11
  %3239 = fmul double %3237, %3238
  %3240 = load double, ptr %64, align 8, !tbaa !11
  %3241 = fneg double %3239
  %3242 = call double @llvm.fmuladd.f64(double %3241, double %3240, double 1.000000e+00)
  store double %3242, ptr %40, align 8, !tbaa !11
  %3243 = load double, ptr %39, align 8, !tbaa !11
  %3244 = load double, ptr %40, align 8, !tbaa !11
  %3245 = fcmp oge double %3243, %3244
  br i1 %3245, label %3246, label %3248

3246:                                             ; preds = %3230
  %3247 = load double, ptr %39, align 8, !tbaa !11
  br label %3250

3248:                                             ; preds = %3230
  %3249 = load double, ptr %40, align 8, !tbaa !11
  br label %3250

3250:                                             ; preds = %3248, %3246
  %3251 = phi double [ %3247, %3246 ], [ %3249, %3248 ]
  %3252 = call double @sqrt(double noundef %3251) #5
  %3253 = load double, ptr %63, align 8, !tbaa !11
  %3254 = fmul double %3253, %3252
  store double %3254, ptr %63, align 8, !tbaa !11
  %3255 = load double, ptr %90, align 8, !tbaa !11
  store double %3255, ptr %39, align 8, !tbaa !11
  %3256 = load double, ptr %46, align 8, !tbaa !11
  %3257 = fcmp oge double %3256, 0.000000e+00
  br i1 %3257, label %3258, label %3260

3258:                                             ; preds = %3250
  %3259 = load double, ptr %46, align 8, !tbaa !11
  br label %3263

3260:                                             ; preds = %3250
  %3261 = load double, ptr %46, align 8, !tbaa !11
  %3262 = fneg double %3261
  br label %3263

3263:                                             ; preds = %3260, %3258
  %3264 = phi double [ %3259, %3258 ], [ %3262, %3260 ]
  store double %3264, ptr %40, align 8, !tbaa !11
  %3265 = load double, ptr %39, align 8, !tbaa !11
  %3266 = load double, ptr %40, align 8, !tbaa !11
  %3267 = fcmp oge double %3265, %3266
  br i1 %3267, label %3268, label %3270

3268:                                             ; preds = %3263
  %3269 = load double, ptr %39, align 8, !tbaa !11
  br label %3272

3270:                                             ; preds = %3263
  %3271 = load double, ptr %40, align 8, !tbaa !11
  br label %3272

3272:                                             ; preds = %3270, %3268
  %3273 = phi double [ %3269, %3268 ], [ %3271, %3270 ]
  store double %3273, ptr %90, align 8, !tbaa !11
  br label %3808

3274:                                             ; preds = %3152
  %3275 = call double @d_sign(ptr noundef @c_b18, ptr noundef %64)
  %3276 = fneg double %3275
  store double %3276, ptr %89, align 8, !tbaa !11
  %3277 = load double, ptr %65, align 8, !tbaa !11
  %3278 = load double, ptr %68, align 8, !tbaa !11
  %3279 = fcmp ogt double %3277, %3278
  br i1 %3279, label %3280, label %3283

3280:                                             ; preds = %3274
  %3281 = load double, ptr %89, align 8, !tbaa !11
  %3282 = fneg double %3281
  store double %3282, ptr %89, align 8, !tbaa !11
  br label %3283

3283:                                             ; preds = %3280, %3274
  %3284 = load double, ptr %74, align 8, !tbaa !11
  %3285 = load double, ptr %89, align 8, !tbaa !11
  %3286 = load double, ptr %74, align 8, !tbaa !11
  %3287 = load double, ptr %74, align 8, !tbaa !11
  %3288 = call double @llvm.fmuladd.f64(double %3286, double %3287, double 1.000000e+00)
  %3289 = call double @sqrt(double noundef %3288) #5
  %3290 = call double @llvm.fmuladd.f64(double %3285, double %3289, double %3284)
  %3291 = fdiv double 1.000000e+00, %3290
  store double %3291, ptr %46, align 8, !tbaa !11
  %3292 = load double, ptr %46, align 8, !tbaa !11
  %3293 = load double, ptr %46, align 8, !tbaa !11
  %3294 = call double @llvm.fmuladd.f64(double %3292, double %3293, double 1.000000e+00)
  %3295 = fdiv double 1.000000e+00, %3294
  %3296 = call double @sqrt(double noundef %3295) #5
  store double %3296, ptr %51, align 8, !tbaa !11
  %3297 = load double, ptr %46, align 8, !tbaa !11
  %3298 = load double, ptr %51, align 8, !tbaa !11
  %3299 = fmul double %3297, %3298
  store double %3299, ptr %52, align 8, !tbaa !11
  %3300 = load double, ptr %90, align 8, !tbaa !11
  store double %3300, ptr %39, align 8, !tbaa !11
  %3301 = load double, ptr %52, align 8, !tbaa !11
  %3302 = fcmp oge double %3301, 0.000000e+00
  br i1 %3302, label %3303, label %3305

3303:                                             ; preds = %3283
  %3304 = load double, ptr %52, align 8, !tbaa !11
  br label %3308

3305:                                             ; preds = %3283
  %3306 = load double, ptr %52, align 8, !tbaa !11
  %3307 = fneg double %3306
  br label %3308

3308:                                             ; preds = %3305, %3303
  %3309 = phi double [ %3304, %3303 ], [ %3307, %3305 ]
  store double %3309, ptr %40, align 8, !tbaa !11
  %3310 = load double, ptr %39, align 8, !tbaa !11
  %3311 = load double, ptr %40, align 8, !tbaa !11
  %3312 = fcmp oge double %3310, %3311
  br i1 %3312, label %3313, label %3315

3313:                                             ; preds = %3308
  %3314 = load double, ptr %39, align 8, !tbaa !11
  br label %3317

3315:                                             ; preds = %3308
  %3316 = load double, ptr %40, align 8, !tbaa !11
  br label %3317

3317:                                             ; preds = %3315, %3313
  %3318 = phi double [ %3314, %3313 ], [ %3316, %3315 ]
  store double %3318, ptr %90, align 8, !tbaa !11
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %3319 = load double, ptr %46, align 8, !tbaa !11
  %3320 = load double, ptr %72, align 8, !tbaa !11
  %3321 = fmul double %3319, %3320
  %3322 = load double, ptr %64, align 8, !tbaa !11
  %3323 = call double @llvm.fmuladd.f64(double %3321, double %3322, double 1.000000e+00)
  store double %3323, ptr %40, align 8, !tbaa !11
  %3324 = load double, ptr %65, align 8, !tbaa !11
  %3325 = load double, ptr %39, align 8, !tbaa !11
  %3326 = load double, ptr %40, align 8, !tbaa !11
  %3327 = fcmp oge double %3325, %3326
  br i1 %3327, label %3328, label %3330

3328:                                             ; preds = %3317
  %3329 = load double, ptr %39, align 8, !tbaa !11
  br label %3332

3330:                                             ; preds = %3317
  %3331 = load double, ptr %40, align 8, !tbaa !11
  br label %3332

3332:                                             ; preds = %3330, %3328
  %3333 = phi double [ %3329, %3328 ], [ %3331, %3330 ]
  %3334 = call double @sqrt(double noundef %3333) #5
  %3335 = fmul double %3324, %3334
  %3336 = load ptr, ptr %23, align 8, !tbaa !5
  %3337 = load i64, ptr %45, align 8, !tbaa !9
  %3338 = getelementptr inbounds double, ptr %3336, i64 %3337
  store double %3335, ptr %3338, align 8, !tbaa !11
  %3339 = load double, ptr %46, align 8, !tbaa !11
  %3340 = load double, ptr %73, align 8, !tbaa !11
  %3341 = fmul double %3339, %3340
  %3342 = load double, ptr %64, align 8, !tbaa !11
  %3343 = fneg double %3341
  %3344 = call double @llvm.fmuladd.f64(double %3343, double %3342, double 1.000000e+00)
  %3345 = call double @sqrt(double noundef %3344) #5
  %3346 = load double, ptr %63, align 8, !tbaa !11
  %3347 = fmul double %3346, %3345
  store double %3347, ptr %63, align 8, !tbaa !11
  %3348 = load ptr, ptr %27, align 8, !tbaa !5
  %3349 = load i64, ptr %44, align 8, !tbaa !9
  %3350 = getelementptr inbounds double, ptr %3348, i64 %3349
  %3351 = load double, ptr %3350, align 8, !tbaa !11
  %3352 = load ptr, ptr %27, align 8, !tbaa !5
  %3353 = load i64, ptr %45, align 8, !tbaa !9
  %3354 = getelementptr inbounds double, ptr %3352, i64 %3353
  %3355 = load double, ptr %3354, align 8, !tbaa !11
  %3356 = fdiv double %3351, %3355
  store double %3356, ptr %72, align 8, !tbaa !11
  %3357 = load ptr, ptr %27, align 8, !tbaa !5
  %3358 = load i64, ptr %45, align 8, !tbaa !9
  %3359 = getelementptr inbounds double, ptr %3357, i64 %3358
  %3360 = load double, ptr %3359, align 8, !tbaa !11
  %3361 = load ptr, ptr %27, align 8, !tbaa !5
  %3362 = load i64, ptr %44, align 8, !tbaa !9
  %3363 = getelementptr inbounds double, ptr %3361, i64 %3362
  %3364 = load double, ptr %3363, align 8, !tbaa !11
  %3365 = fdiv double %3360, %3364
  store double %3365, ptr %73, align 8, !tbaa !11
  %3366 = load ptr, ptr %27, align 8, !tbaa !5
  %3367 = load i64, ptr %44, align 8, !tbaa !9
  %3368 = getelementptr inbounds double, ptr %3366, i64 %3367
  %3369 = load double, ptr %3368, align 8, !tbaa !11
  %3370 = fcmp oge double %3369, 1.000000e+00
  br i1 %3370, label %3371, label %3522

3371:                                             ; preds = %3332
  %3372 = load ptr, ptr %27, align 8, !tbaa !5
  %3373 = load i64, ptr %45, align 8, !tbaa !9
  %3374 = getelementptr inbounds double, ptr %3372, i64 %3373
  %3375 = load double, ptr %3374, align 8, !tbaa !11
  %3376 = fcmp oge double %3375, 1.000000e+00
  br i1 %3376, label %3377, label %3432

3377:                                             ; preds = %3371
  %3378 = load double, ptr %46, align 8, !tbaa !11
  %3379 = load double, ptr %72, align 8, !tbaa !11
  %3380 = fmul double %3378, %3379
  %3381 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 2
  store double %3380, ptr %3381, align 16, !tbaa !11
  %3382 = load double, ptr %46, align 8, !tbaa !11
  %3383 = fneg double %3382
  %3384 = load double, ptr %73, align 8, !tbaa !11
  %3385 = fmul double %3383, %3384
  %3386 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 3
  store double %3385, ptr %3386, align 8, !tbaa !11
  %3387 = load double, ptr %51, align 8, !tbaa !11
  %3388 = load ptr, ptr %27, align 8, !tbaa !5
  %3389 = load i64, ptr %44, align 8, !tbaa !9
  %3390 = getelementptr inbounds double, ptr %3388, i64 %3389
  %3391 = load double, ptr %3390, align 8, !tbaa !11
  %3392 = fmul double %3391, %3387
  store double %3392, ptr %3390, align 8, !tbaa !11
  %3393 = load double, ptr %51, align 8, !tbaa !11
  %3394 = load ptr, ptr %27, align 8, !tbaa !5
  %3395 = load i64, ptr %45, align 8, !tbaa !9
  %3396 = getelementptr inbounds double, ptr %3394, i64 %3395
  %3397 = load double, ptr %3396, align 8, !tbaa !11
  %3398 = fmul double %3397, %3393
  store double %3398, ptr %3396, align 8, !tbaa !11
  %3399 = load ptr, ptr %19, align 8, !tbaa !5
  %3400 = load ptr, ptr %21, align 8, !tbaa !5
  %3401 = load i64, ptr %44, align 8, !tbaa !9
  %3402 = load i64, ptr %30, align 8, !tbaa !9
  %3403 = mul nsw i64 %3401, %3402
  %3404 = add nsw i64 %3403, 1
  %3405 = getelementptr inbounds double, ptr %3400, i64 %3404
  %3406 = load ptr, ptr %21, align 8, !tbaa !5
  %3407 = load i64, ptr %45, align 8, !tbaa !9
  %3408 = load i64, ptr %30, align 8, !tbaa !9
  %3409 = mul nsw i64 %3407, %3408
  %3410 = add nsw i64 %3409, 1
  %3411 = getelementptr inbounds double, ptr %3406, i64 %3410
  %3412 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %3413 = call i32 @f2c_drotm(ptr noundef %3399, ptr noundef %3405, ptr noundef @c__1, ptr noundef %3411, ptr noundef @c__1, ptr noundef %3412)
  %3414 = load i64, ptr %80, align 8, !tbaa !9
  %3415 = icmp ne i64 %3414, 0
  br i1 %3415, label %3416, label %3431

3416:                                             ; preds = %3377
  %3417 = load ptr, ptr %25, align 8, !tbaa !5
  %3418 = load i64, ptr %44, align 8, !tbaa !9
  %3419 = load i64, ptr %32, align 8, !tbaa !9
  %3420 = mul nsw i64 %3418, %3419
  %3421 = add nsw i64 %3420, 1
  %3422 = getelementptr inbounds double, ptr %3417, i64 %3421
  %3423 = load ptr, ptr %25, align 8, !tbaa !5
  %3424 = load i64, ptr %45, align 8, !tbaa !9
  %3425 = load i64, ptr %32, align 8, !tbaa !9
  %3426 = mul nsw i64 %3424, %3425
  %3427 = add nsw i64 %3426, 1
  %3428 = getelementptr inbounds double, ptr %3423, i64 %3427
  %3429 = getelementptr inbounds [5 x double], ptr %78, i64 0, i64 0
  %3430 = call i32 @f2c_drotm(ptr noundef %62, ptr noundef %3422, ptr noundef @c__1, ptr noundef %3428, ptr noundef @c__1, ptr noundef %3429)
  br label %3431

3431:                                             ; preds = %3416, %3377
  br label %3521

3432:                                             ; preds = %3371
  %3433 = load double, ptr %46, align 8, !tbaa !11
  %3434 = fneg double %3433
  %3435 = load double, ptr %73, align 8, !tbaa !11
  %3436 = fmul double %3434, %3435
  store double %3436, ptr %39, align 8, !tbaa !11
  %3437 = load ptr, ptr %19, align 8, !tbaa !5
  %3438 = load ptr, ptr %21, align 8, !tbaa !5
  %3439 = load i64, ptr %45, align 8, !tbaa !9
  %3440 = load i64, ptr %30, align 8, !tbaa !9
  %3441 = mul nsw i64 %3439, %3440
  %3442 = add nsw i64 %3441, 1
  %3443 = getelementptr inbounds double, ptr %3438, i64 %3442
  %3444 = load ptr, ptr %21, align 8, !tbaa !5
  %3445 = load i64, ptr %44, align 8, !tbaa !9
  %3446 = load i64, ptr %30, align 8, !tbaa !9
  %3447 = mul nsw i64 %3445, %3446
  %3448 = add nsw i64 %3447, 1
  %3449 = getelementptr inbounds double, ptr %3444, i64 %3448
  %3450 = call i32 @f2c_daxpy(ptr noundef %3437, ptr noundef %39, ptr noundef %3443, ptr noundef @c__1, ptr noundef %3449, ptr noundef @c__1)
  %3451 = load double, ptr %51, align 8, !tbaa !11
  %3452 = load double, ptr %52, align 8, !tbaa !11
  %3453 = fmul double %3451, %3452
  %3454 = load double, ptr %72, align 8, !tbaa !11
  %3455 = fmul double %3453, %3454
  store double %3455, ptr %39, align 8, !tbaa !11
  %3456 = load ptr, ptr %19, align 8, !tbaa !5
  %3457 = load ptr, ptr %21, align 8, !tbaa !5
  %3458 = load i64, ptr %44, align 8, !tbaa !9
  %3459 = load i64, ptr %30, align 8, !tbaa !9
  %3460 = mul nsw i64 %3458, %3459
  %3461 = add nsw i64 %3460, 1
  %3462 = getelementptr inbounds double, ptr %3457, i64 %3461
  %3463 = load ptr, ptr %21, align 8, !tbaa !5
  %3464 = load i64, ptr %45, align 8, !tbaa !9
  %3465 = load i64, ptr %30, align 8, !tbaa !9
  %3466 = mul nsw i64 %3464, %3465
  %3467 = add nsw i64 %3466, 1
  %3468 = getelementptr inbounds double, ptr %3463, i64 %3467
  %3469 = call i32 @f2c_daxpy(ptr noundef %3456, ptr noundef %39, ptr noundef %3462, ptr noundef @c__1, ptr noundef %3468, ptr noundef @c__1)
  %3470 = load i64, ptr %80, align 8, !tbaa !9
  %3471 = icmp ne i64 %3470, 0
  br i1 %3471, label %3472, label %3508

3472:                                             ; preds = %3432
  %3473 = load double, ptr %46, align 8, !tbaa !11
  %3474 = fneg double %3473
  %3475 = load double, ptr %73, align 8, !tbaa !11
  %3476 = fmul double %3474, %3475
  store double %3476, ptr %39, align 8, !tbaa !11
  %3477 = load ptr, ptr %25, align 8, !tbaa !5
  %3478 = load i64, ptr %45, align 8, !tbaa !9
  %3479 = load i64, ptr %32, align 8, !tbaa !9
  %3480 = mul nsw i64 %3478, %3479
  %3481 = add nsw i64 %3480, 1
  %3482 = getelementptr inbounds double, ptr %3477, i64 %3481
  %3483 = load ptr, ptr %25, align 8, !tbaa !5
  %3484 = load i64, ptr %44, align 8, !tbaa !9
  %3485 = load i64, ptr %32, align 8, !tbaa !9
  %3486 = mul nsw i64 %3484, %3485
  %3487 = add nsw i64 %3486, 1
  %3488 = getelementptr inbounds double, ptr %3483, i64 %3487
  %3489 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3482, ptr noundef @c__1, ptr noundef %3488, ptr noundef @c__1)
  %3490 = load double, ptr %51, align 8, !tbaa !11
  %3491 = load double, ptr %52, align 8, !tbaa !11
  %3492 = fmul double %3490, %3491
  %3493 = load double, ptr %72, align 8, !tbaa !11
  %3494 = fmul double %3492, %3493
  store double %3494, ptr %39, align 8, !tbaa !11
  %3495 = load ptr, ptr %25, align 8, !tbaa !5
  %3496 = load i64, ptr %44, align 8, !tbaa !9
  %3497 = load i64, ptr %32, align 8, !tbaa !9
  %3498 = mul nsw i64 %3496, %3497
  %3499 = add nsw i64 %3498, 1
  %3500 = getelementptr inbounds double, ptr %3495, i64 %3499
  %3501 = load ptr, ptr %25, align 8, !tbaa !5
  %3502 = load i64, ptr %45, align 8, !tbaa !9
  %3503 = load i64, ptr %32, align 8, !tbaa !9
  %3504 = mul nsw i64 %3502, %3503
  %3505 = add nsw i64 %3504, 1
  %3506 = getelementptr inbounds double, ptr %3501, i64 %3505
  %3507 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3500, ptr noundef @c__1, ptr noundef %3506, ptr noundef @c__1)
  br label %3508

3508:                                             ; preds = %3472, %3432
  %3509 = load double, ptr %51, align 8, !tbaa !11
  %3510 = load ptr, ptr %27, align 8, !tbaa !5
  %3511 = load i64, ptr %44, align 8, !tbaa !9
  %3512 = getelementptr inbounds double, ptr %3510, i64 %3511
  %3513 = load double, ptr %3512, align 8, !tbaa !11
  %3514 = fmul double %3513, %3509
  store double %3514, ptr %3512, align 8, !tbaa !11
  %3515 = load double, ptr %51, align 8, !tbaa !11
  %3516 = load ptr, ptr %27, align 8, !tbaa !5
  %3517 = load i64, ptr %45, align 8, !tbaa !9
  %3518 = getelementptr inbounds double, ptr %3516, i64 %3517
  %3519 = load double, ptr %3518, align 8, !tbaa !11
  %3520 = fdiv double %3519, %3515
  store double %3520, ptr %3518, align 8, !tbaa !11
  br label %3521

3521:                                             ; preds = %3508, %3431
  br label %3807

3522:                                             ; preds = %3332
  %3523 = load ptr, ptr %27, align 8, !tbaa !5
  %3524 = load i64, ptr %45, align 8, !tbaa !9
  %3525 = getelementptr inbounds double, ptr %3523, i64 %3524
  %3526 = load double, ptr %3525, align 8, !tbaa !11
  %3527 = fcmp oge double %3526, 1.000000e+00
  br i1 %3527, label %3528, label %3617

3528:                                             ; preds = %3522
  %3529 = load double, ptr %46, align 8, !tbaa !11
  %3530 = load double, ptr %72, align 8, !tbaa !11
  %3531 = fmul double %3529, %3530
  store double %3531, ptr %39, align 8, !tbaa !11
  %3532 = load ptr, ptr %19, align 8, !tbaa !5
  %3533 = load ptr, ptr %21, align 8, !tbaa !5
  %3534 = load i64, ptr %44, align 8, !tbaa !9
  %3535 = load i64, ptr %30, align 8, !tbaa !9
  %3536 = mul nsw i64 %3534, %3535
  %3537 = add nsw i64 %3536, 1
  %3538 = getelementptr inbounds double, ptr %3533, i64 %3537
  %3539 = load ptr, ptr %21, align 8, !tbaa !5
  %3540 = load i64, ptr %45, align 8, !tbaa !9
  %3541 = load i64, ptr %30, align 8, !tbaa !9
  %3542 = mul nsw i64 %3540, %3541
  %3543 = add nsw i64 %3542, 1
  %3544 = getelementptr inbounds double, ptr %3539, i64 %3543
  %3545 = call i32 @f2c_daxpy(ptr noundef %3532, ptr noundef %39, ptr noundef %3538, ptr noundef @c__1, ptr noundef %3544, ptr noundef @c__1)
  %3546 = load double, ptr %51, align 8, !tbaa !11
  %3547 = fneg double %3546
  %3548 = load double, ptr %52, align 8, !tbaa !11
  %3549 = fmul double %3547, %3548
  %3550 = load double, ptr %73, align 8, !tbaa !11
  %3551 = fmul double %3549, %3550
  store double %3551, ptr %39, align 8, !tbaa !11
  %3552 = load ptr, ptr %19, align 8, !tbaa !5
  %3553 = load ptr, ptr %21, align 8, !tbaa !5
  %3554 = load i64, ptr %45, align 8, !tbaa !9
  %3555 = load i64, ptr %30, align 8, !tbaa !9
  %3556 = mul nsw i64 %3554, %3555
  %3557 = add nsw i64 %3556, 1
  %3558 = getelementptr inbounds double, ptr %3553, i64 %3557
  %3559 = load ptr, ptr %21, align 8, !tbaa !5
  %3560 = load i64, ptr %44, align 8, !tbaa !9
  %3561 = load i64, ptr %30, align 8, !tbaa !9
  %3562 = mul nsw i64 %3560, %3561
  %3563 = add nsw i64 %3562, 1
  %3564 = getelementptr inbounds double, ptr %3559, i64 %3563
  %3565 = call i32 @f2c_daxpy(ptr noundef %3552, ptr noundef %39, ptr noundef %3558, ptr noundef @c__1, ptr noundef %3564, ptr noundef @c__1)
  %3566 = load i64, ptr %80, align 8, !tbaa !9
  %3567 = icmp ne i64 %3566, 0
  br i1 %3567, label %3568, label %3604

3568:                                             ; preds = %3528
  %3569 = load double, ptr %46, align 8, !tbaa !11
  %3570 = load double, ptr %72, align 8, !tbaa !11
  %3571 = fmul double %3569, %3570
  store double %3571, ptr %39, align 8, !tbaa !11
  %3572 = load ptr, ptr %25, align 8, !tbaa !5
  %3573 = load i64, ptr %44, align 8, !tbaa !9
  %3574 = load i64, ptr %32, align 8, !tbaa !9
  %3575 = mul nsw i64 %3573, %3574
  %3576 = add nsw i64 %3575, 1
  %3577 = getelementptr inbounds double, ptr %3572, i64 %3576
  %3578 = load ptr, ptr %25, align 8, !tbaa !5
  %3579 = load i64, ptr %45, align 8, !tbaa !9
  %3580 = load i64, ptr %32, align 8, !tbaa !9
  %3581 = mul nsw i64 %3579, %3580
  %3582 = add nsw i64 %3581, 1
  %3583 = getelementptr inbounds double, ptr %3578, i64 %3582
  %3584 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3577, ptr noundef @c__1, ptr noundef %3583, ptr noundef @c__1)
  %3585 = load double, ptr %51, align 8, !tbaa !11
  %3586 = fneg double %3585
  %3587 = load double, ptr %52, align 8, !tbaa !11
  %3588 = fmul double %3586, %3587
  %3589 = load double, ptr %73, align 8, !tbaa !11
  %3590 = fmul double %3588, %3589
  store double %3590, ptr %39, align 8, !tbaa !11
  %3591 = load ptr, ptr %25, align 8, !tbaa !5
  %3592 = load i64, ptr %45, align 8, !tbaa !9
  %3593 = load i64, ptr %32, align 8, !tbaa !9
  %3594 = mul nsw i64 %3592, %3593
  %3595 = add nsw i64 %3594, 1
  %3596 = getelementptr inbounds double, ptr %3591, i64 %3595
  %3597 = load ptr, ptr %25, align 8, !tbaa !5
  %3598 = load i64, ptr %44, align 8, !tbaa !9
  %3599 = load i64, ptr %32, align 8, !tbaa !9
  %3600 = mul nsw i64 %3598, %3599
  %3601 = add nsw i64 %3600, 1
  %3602 = getelementptr inbounds double, ptr %3597, i64 %3601
  %3603 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3596, ptr noundef @c__1, ptr noundef %3602, ptr noundef @c__1)
  br label %3604

3604:                                             ; preds = %3568, %3528
  %3605 = load double, ptr %51, align 8, !tbaa !11
  %3606 = load ptr, ptr %27, align 8, !tbaa !5
  %3607 = load i64, ptr %44, align 8, !tbaa !9
  %3608 = getelementptr inbounds double, ptr %3606, i64 %3607
  %3609 = load double, ptr %3608, align 8, !tbaa !11
  %3610 = fdiv double %3609, %3605
  store double %3610, ptr %3608, align 8, !tbaa !11
  %3611 = load double, ptr %51, align 8, !tbaa !11
  %3612 = load ptr, ptr %27, align 8, !tbaa !5
  %3613 = load i64, ptr %45, align 8, !tbaa !9
  %3614 = getelementptr inbounds double, ptr %3612, i64 %3613
  %3615 = load double, ptr %3614, align 8, !tbaa !11
  %3616 = fmul double %3615, %3611
  store double %3616, ptr %3614, align 8, !tbaa !11
  br label %3806

3617:                                             ; preds = %3522
  %3618 = load ptr, ptr %27, align 8, !tbaa !5
  %3619 = load i64, ptr %44, align 8, !tbaa !9
  %3620 = getelementptr inbounds double, ptr %3618, i64 %3619
  %3621 = load double, ptr %3620, align 8, !tbaa !11
  %3622 = load ptr, ptr %27, align 8, !tbaa !5
  %3623 = load i64, ptr %45, align 8, !tbaa !9
  %3624 = getelementptr inbounds double, ptr %3622, i64 %3623
  %3625 = load double, ptr %3624, align 8, !tbaa !11
  %3626 = fcmp oge double %3621, %3625
  br i1 %3626, label %3627, label %3716

3627:                                             ; preds = %3617
  %3628 = load double, ptr %46, align 8, !tbaa !11
  %3629 = fneg double %3628
  %3630 = load double, ptr %73, align 8, !tbaa !11
  %3631 = fmul double %3629, %3630
  store double %3631, ptr %39, align 8, !tbaa !11
  %3632 = load ptr, ptr %19, align 8, !tbaa !5
  %3633 = load ptr, ptr %21, align 8, !tbaa !5
  %3634 = load i64, ptr %45, align 8, !tbaa !9
  %3635 = load i64, ptr %30, align 8, !tbaa !9
  %3636 = mul nsw i64 %3634, %3635
  %3637 = add nsw i64 %3636, 1
  %3638 = getelementptr inbounds double, ptr %3633, i64 %3637
  %3639 = load ptr, ptr %21, align 8, !tbaa !5
  %3640 = load i64, ptr %44, align 8, !tbaa !9
  %3641 = load i64, ptr %30, align 8, !tbaa !9
  %3642 = mul nsw i64 %3640, %3641
  %3643 = add nsw i64 %3642, 1
  %3644 = getelementptr inbounds double, ptr %3639, i64 %3643
  %3645 = call i32 @f2c_daxpy(ptr noundef %3632, ptr noundef %39, ptr noundef %3638, ptr noundef @c__1, ptr noundef %3644, ptr noundef @c__1)
  %3646 = load double, ptr %51, align 8, !tbaa !11
  %3647 = load double, ptr %52, align 8, !tbaa !11
  %3648 = fmul double %3646, %3647
  %3649 = load double, ptr %72, align 8, !tbaa !11
  %3650 = fmul double %3648, %3649
  store double %3650, ptr %39, align 8, !tbaa !11
  %3651 = load ptr, ptr %19, align 8, !tbaa !5
  %3652 = load ptr, ptr %21, align 8, !tbaa !5
  %3653 = load i64, ptr %44, align 8, !tbaa !9
  %3654 = load i64, ptr %30, align 8, !tbaa !9
  %3655 = mul nsw i64 %3653, %3654
  %3656 = add nsw i64 %3655, 1
  %3657 = getelementptr inbounds double, ptr %3652, i64 %3656
  %3658 = load ptr, ptr %21, align 8, !tbaa !5
  %3659 = load i64, ptr %45, align 8, !tbaa !9
  %3660 = load i64, ptr %30, align 8, !tbaa !9
  %3661 = mul nsw i64 %3659, %3660
  %3662 = add nsw i64 %3661, 1
  %3663 = getelementptr inbounds double, ptr %3658, i64 %3662
  %3664 = call i32 @f2c_daxpy(ptr noundef %3651, ptr noundef %39, ptr noundef %3657, ptr noundef @c__1, ptr noundef %3663, ptr noundef @c__1)
  %3665 = load double, ptr %51, align 8, !tbaa !11
  %3666 = load ptr, ptr %27, align 8, !tbaa !5
  %3667 = load i64, ptr %44, align 8, !tbaa !9
  %3668 = getelementptr inbounds double, ptr %3666, i64 %3667
  %3669 = load double, ptr %3668, align 8, !tbaa !11
  %3670 = fmul double %3669, %3665
  store double %3670, ptr %3668, align 8, !tbaa !11
  %3671 = load double, ptr %51, align 8, !tbaa !11
  %3672 = load ptr, ptr %27, align 8, !tbaa !5
  %3673 = load i64, ptr %45, align 8, !tbaa !9
  %3674 = getelementptr inbounds double, ptr %3672, i64 %3673
  %3675 = load double, ptr %3674, align 8, !tbaa !11
  %3676 = fdiv double %3675, %3671
  store double %3676, ptr %3674, align 8, !tbaa !11
  %3677 = load i64, ptr %80, align 8, !tbaa !9
  %3678 = icmp ne i64 %3677, 0
  br i1 %3678, label %3679, label %3715

3679:                                             ; preds = %3627
  %3680 = load double, ptr %46, align 8, !tbaa !11
  %3681 = fneg double %3680
  %3682 = load double, ptr %73, align 8, !tbaa !11
  %3683 = fmul double %3681, %3682
  store double %3683, ptr %39, align 8, !tbaa !11
  %3684 = load ptr, ptr %25, align 8, !tbaa !5
  %3685 = load i64, ptr %45, align 8, !tbaa !9
  %3686 = load i64, ptr %32, align 8, !tbaa !9
  %3687 = mul nsw i64 %3685, %3686
  %3688 = add nsw i64 %3687, 1
  %3689 = getelementptr inbounds double, ptr %3684, i64 %3688
  %3690 = load ptr, ptr %25, align 8, !tbaa !5
  %3691 = load i64, ptr %44, align 8, !tbaa !9
  %3692 = load i64, ptr %32, align 8, !tbaa !9
  %3693 = mul nsw i64 %3691, %3692
  %3694 = add nsw i64 %3693, 1
  %3695 = getelementptr inbounds double, ptr %3690, i64 %3694
  %3696 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3689, ptr noundef @c__1, ptr noundef %3695, ptr noundef @c__1)
  %3697 = load double, ptr %51, align 8, !tbaa !11
  %3698 = load double, ptr %52, align 8, !tbaa !11
  %3699 = fmul double %3697, %3698
  %3700 = load double, ptr %72, align 8, !tbaa !11
  %3701 = fmul double %3699, %3700
  store double %3701, ptr %39, align 8, !tbaa !11
  %3702 = load ptr, ptr %25, align 8, !tbaa !5
  %3703 = load i64, ptr %44, align 8, !tbaa !9
  %3704 = load i64, ptr %32, align 8, !tbaa !9
  %3705 = mul nsw i64 %3703, %3704
  %3706 = add nsw i64 %3705, 1
  %3707 = getelementptr inbounds double, ptr %3702, i64 %3706
  %3708 = load ptr, ptr %25, align 8, !tbaa !5
  %3709 = load i64, ptr %45, align 8, !tbaa !9
  %3710 = load i64, ptr %32, align 8, !tbaa !9
  %3711 = mul nsw i64 %3709, %3710
  %3712 = add nsw i64 %3711, 1
  %3713 = getelementptr inbounds double, ptr %3708, i64 %3712
  %3714 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3707, ptr noundef @c__1, ptr noundef %3713, ptr noundef @c__1)
  br label %3715

3715:                                             ; preds = %3679, %3627
  br label %3805

3716:                                             ; preds = %3617
  %3717 = load double, ptr %46, align 8, !tbaa !11
  %3718 = load double, ptr %72, align 8, !tbaa !11
  %3719 = fmul double %3717, %3718
  store double %3719, ptr %39, align 8, !tbaa !11
  %3720 = load ptr, ptr %19, align 8, !tbaa !5
  %3721 = load ptr, ptr %21, align 8, !tbaa !5
  %3722 = load i64, ptr %44, align 8, !tbaa !9
  %3723 = load i64, ptr %30, align 8, !tbaa !9
  %3724 = mul nsw i64 %3722, %3723
  %3725 = add nsw i64 %3724, 1
  %3726 = getelementptr inbounds double, ptr %3721, i64 %3725
  %3727 = load ptr, ptr %21, align 8, !tbaa !5
  %3728 = load i64, ptr %45, align 8, !tbaa !9
  %3729 = load i64, ptr %30, align 8, !tbaa !9
  %3730 = mul nsw i64 %3728, %3729
  %3731 = add nsw i64 %3730, 1
  %3732 = getelementptr inbounds double, ptr %3727, i64 %3731
  %3733 = call i32 @f2c_daxpy(ptr noundef %3720, ptr noundef %39, ptr noundef %3726, ptr noundef @c__1, ptr noundef %3732, ptr noundef @c__1)
  %3734 = load double, ptr %51, align 8, !tbaa !11
  %3735 = fneg double %3734
  %3736 = load double, ptr %52, align 8, !tbaa !11
  %3737 = fmul double %3735, %3736
  %3738 = load double, ptr %73, align 8, !tbaa !11
  %3739 = fmul double %3737, %3738
  store double %3739, ptr %39, align 8, !tbaa !11
  %3740 = load ptr, ptr %19, align 8, !tbaa !5
  %3741 = load ptr, ptr %21, align 8, !tbaa !5
  %3742 = load i64, ptr %45, align 8, !tbaa !9
  %3743 = load i64, ptr %30, align 8, !tbaa !9
  %3744 = mul nsw i64 %3742, %3743
  %3745 = add nsw i64 %3744, 1
  %3746 = getelementptr inbounds double, ptr %3741, i64 %3745
  %3747 = load ptr, ptr %21, align 8, !tbaa !5
  %3748 = load i64, ptr %44, align 8, !tbaa !9
  %3749 = load i64, ptr %30, align 8, !tbaa !9
  %3750 = mul nsw i64 %3748, %3749
  %3751 = add nsw i64 %3750, 1
  %3752 = getelementptr inbounds double, ptr %3747, i64 %3751
  %3753 = call i32 @f2c_daxpy(ptr noundef %3740, ptr noundef %39, ptr noundef %3746, ptr noundef @c__1, ptr noundef %3752, ptr noundef @c__1)
  %3754 = load double, ptr %51, align 8, !tbaa !11
  %3755 = load ptr, ptr %27, align 8, !tbaa !5
  %3756 = load i64, ptr %44, align 8, !tbaa !9
  %3757 = getelementptr inbounds double, ptr %3755, i64 %3756
  %3758 = load double, ptr %3757, align 8, !tbaa !11
  %3759 = fdiv double %3758, %3754
  store double %3759, ptr %3757, align 8, !tbaa !11
  %3760 = load double, ptr %51, align 8, !tbaa !11
  %3761 = load ptr, ptr %27, align 8, !tbaa !5
  %3762 = load i64, ptr %45, align 8, !tbaa !9
  %3763 = getelementptr inbounds double, ptr %3761, i64 %3762
  %3764 = load double, ptr %3763, align 8, !tbaa !11
  %3765 = fmul double %3764, %3760
  store double %3765, ptr %3763, align 8, !tbaa !11
  %3766 = load i64, ptr %80, align 8, !tbaa !9
  %3767 = icmp ne i64 %3766, 0
  br i1 %3767, label %3768, label %3804

3768:                                             ; preds = %3716
  %3769 = load double, ptr %46, align 8, !tbaa !11
  %3770 = load double, ptr %72, align 8, !tbaa !11
  %3771 = fmul double %3769, %3770
  store double %3771, ptr %39, align 8, !tbaa !11
  %3772 = load ptr, ptr %25, align 8, !tbaa !5
  %3773 = load i64, ptr %44, align 8, !tbaa !9
  %3774 = load i64, ptr %32, align 8, !tbaa !9
  %3775 = mul nsw i64 %3773, %3774
  %3776 = add nsw i64 %3775, 1
  %3777 = getelementptr inbounds double, ptr %3772, i64 %3776
  %3778 = load ptr, ptr %25, align 8, !tbaa !5
  %3779 = load i64, ptr %45, align 8, !tbaa !9
  %3780 = load i64, ptr %32, align 8, !tbaa !9
  %3781 = mul nsw i64 %3779, %3780
  %3782 = add nsw i64 %3781, 1
  %3783 = getelementptr inbounds double, ptr %3778, i64 %3782
  %3784 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3777, ptr noundef @c__1, ptr noundef %3783, ptr noundef @c__1)
  %3785 = load double, ptr %51, align 8, !tbaa !11
  %3786 = fneg double %3785
  %3787 = load double, ptr %52, align 8, !tbaa !11
  %3788 = fmul double %3786, %3787
  %3789 = load double, ptr %73, align 8, !tbaa !11
  %3790 = fmul double %3788, %3789
  store double %3790, ptr %39, align 8, !tbaa !11
  %3791 = load ptr, ptr %25, align 8, !tbaa !5
  %3792 = load i64, ptr %45, align 8, !tbaa !9
  %3793 = load i64, ptr %32, align 8, !tbaa !9
  %3794 = mul nsw i64 %3792, %3793
  %3795 = add nsw i64 %3794, 1
  %3796 = getelementptr inbounds double, ptr %3791, i64 %3795
  %3797 = load ptr, ptr %25, align 8, !tbaa !5
  %3798 = load i64, ptr %44, align 8, !tbaa !9
  %3799 = load i64, ptr %32, align 8, !tbaa !9
  %3800 = mul nsw i64 %3798, %3799
  %3801 = add nsw i64 %3800, 1
  %3802 = getelementptr inbounds double, ptr %3797, i64 %3801
  %3803 = call i32 @f2c_daxpy(ptr noundef %62, ptr noundef %39, ptr noundef %3796, ptr noundef @c__1, ptr noundef %3802, ptr noundef @c__1)
  br label %3804

3804:                                             ; preds = %3768, %3716
  br label %3805

3805:                                             ; preds = %3804, %3715
  br label %3806

3806:                                             ; preds = %3805, %3604
  br label %3807

3807:                                             ; preds = %3806, %3521
  br label %3808

3808:                                             ; preds = %3807, %3272
  br label %4000

3809:                                             ; preds = %3111
  %3810 = load double, ptr %63, align 8, !tbaa !11
  %3811 = load double, ptr %65, align 8, !tbaa !11
  %3812 = fcmp ogt double %3810, %3811
  br i1 %3812, label %3813, label %3906

3813:                                             ; preds = %3809
  %3814 = load ptr, ptr %19, align 8, !tbaa !5
  %3815 = load ptr, ptr %21, align 8, !tbaa !5
  %3816 = load i64, ptr %44, align 8, !tbaa !9
  %3817 = load i64, ptr %30, align 8, !tbaa !9
  %3818 = mul nsw i64 %3816, %3817
  %3819 = add nsw i64 %3818, 1
  %3820 = getelementptr inbounds double, ptr %3815, i64 %3819
  %3821 = load ptr, ptr %27, align 8, !tbaa !5
  %3822 = load ptr, ptr %20, align 8, !tbaa !5
  %3823 = load i64, ptr %3822, align 8, !tbaa !9
  %3824 = add nsw i64 %3823, 1
  %3825 = getelementptr inbounds double, ptr %3821, i64 %3824
  %3826 = call i32 @f2c_dcopy(ptr noundef %3814, ptr noundef %3820, ptr noundef @c__1, ptr noundef %3825, ptr noundef @c__1)
  %3827 = load ptr, ptr %19, align 8, !tbaa !5
  %3828 = load ptr, ptr %27, align 8, !tbaa !5
  %3829 = load ptr, ptr %20, align 8, !tbaa !5
  %3830 = load i64, ptr %3829, align 8, !tbaa !9
  %3831 = add nsw i64 %3830, 1
  %3832 = getelementptr inbounds double, ptr %3828, i64 %3831
  %3833 = load ptr, ptr %22, align 8, !tbaa !5
  %3834 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef @c_b18, ptr noundef %3827, ptr noundef @c__1, ptr noundef %3832, ptr noundef %3833, ptr noundef %67)
  %3835 = load ptr, ptr %19, align 8, !tbaa !5
  %3836 = load ptr, ptr %21, align 8, !tbaa !5
  %3837 = load i64, ptr %45, align 8, !tbaa !9
  %3838 = load i64, ptr %30, align 8, !tbaa !9
  %3839 = mul nsw i64 %3837, %3838
  %3840 = add nsw i64 %3839, 1
  %3841 = getelementptr inbounds double, ptr %3836, i64 %3840
  %3842 = load ptr, ptr %22, align 8, !tbaa !5
  %3843 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef @c_b18, ptr noundef %3835, ptr noundef @c__1, ptr noundef %3841, ptr noundef %3842, ptr noundef %67)
  %3844 = load double, ptr %64, align 8, !tbaa !11
  %3845 = fneg double %3844
  %3846 = load ptr, ptr %27, align 8, !tbaa !5
  %3847 = load i64, ptr %44, align 8, !tbaa !9
  %3848 = getelementptr inbounds double, ptr %3846, i64 %3847
  %3849 = load double, ptr %3848, align 8, !tbaa !11
  %3850 = fmul double %3845, %3849
  %3851 = load ptr, ptr %27, align 8, !tbaa !5
  %3852 = load i64, ptr %45, align 8, !tbaa !9
  %3853 = getelementptr inbounds double, ptr %3851, i64 %3852
  %3854 = load double, ptr %3853, align 8, !tbaa !11
  %3855 = fdiv double %3850, %3854
  store double %3855, ptr %69, align 8, !tbaa !11
  %3856 = load ptr, ptr %19, align 8, !tbaa !5
  %3857 = load ptr, ptr %27, align 8, !tbaa !5
  %3858 = load ptr, ptr %20, align 8, !tbaa !5
  %3859 = load i64, ptr %3858, align 8, !tbaa !9
  %3860 = add nsw i64 %3859, 1
  %3861 = getelementptr inbounds double, ptr %3857, i64 %3860
  %3862 = load ptr, ptr %21, align 8, !tbaa !5
  %3863 = load i64, ptr %45, align 8, !tbaa !9
  %3864 = load i64, ptr %30, align 8, !tbaa !9
  %3865 = mul nsw i64 %3863, %3864
  %3866 = add nsw i64 %3865, 1
  %3867 = getelementptr inbounds double, ptr %3862, i64 %3866
  %3868 = call i32 @f2c_daxpy(ptr noundef %3856, ptr noundef %69, ptr noundef %3861, ptr noundef @c__1, ptr noundef %3867, ptr noundef @c__1)
  %3869 = load ptr, ptr %19, align 8, !tbaa !5
  %3870 = load ptr, ptr %21, align 8, !tbaa !5
  %3871 = load i64, ptr %45, align 8, !tbaa !9
  %3872 = load i64, ptr %30, align 8, !tbaa !9
  %3873 = mul nsw i64 %3871, %3872
  %3874 = add nsw i64 %3873, 1
  %3875 = getelementptr inbounds double, ptr %3870, i64 %3874
  %3876 = load ptr, ptr %22, align 8, !tbaa !5
  %3877 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %65, ptr noundef %3869, ptr noundef @c__1, ptr noundef %3875, ptr noundef %3876, ptr noundef %67)
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %3878 = load double, ptr %64, align 8, !tbaa !11
  %3879 = load double, ptr %64, align 8, !tbaa !11
  %3880 = fneg double %3878
  %3881 = call double @llvm.fmuladd.f64(double %3880, double %3879, double 1.000000e+00)
  store double %3881, ptr %40, align 8, !tbaa !11
  %3882 = load double, ptr %65, align 8, !tbaa !11
  %3883 = load double, ptr %39, align 8, !tbaa !11
  %3884 = load double, ptr %40, align 8, !tbaa !11
  %3885 = fcmp oge double %3883, %3884
  br i1 %3885, label %3886, label %3888

3886:                                             ; preds = %3813
  %3887 = load double, ptr %39, align 8, !tbaa !11
  br label %3890

3888:                                             ; preds = %3813
  %3889 = load double, ptr %40, align 8, !tbaa !11
  br label %3890

3890:                                             ; preds = %3888, %3886
  %3891 = phi double [ %3887, %3886 ], [ %3889, %3888 ]
  %3892 = call double @sqrt(double noundef %3891) #5
  %3893 = fmul double %3882, %3892
  %3894 = load ptr, ptr %23, align 8, !tbaa !5
  %3895 = load i64, ptr %45, align 8, !tbaa !9
  %3896 = getelementptr inbounds double, ptr %3894, i64 %3895
  store double %3893, ptr %3896, align 8, !tbaa !11
  %3897 = load double, ptr %90, align 8, !tbaa !11
  %3898 = load double, ptr %76, align 8, !tbaa !11
  %3899 = fcmp oge double %3897, %3898
  br i1 %3899, label %3900, label %3902

3900:                                             ; preds = %3890
  %3901 = load double, ptr %90, align 8, !tbaa !11
  br label %3904

3902:                                             ; preds = %3890
  %3903 = load double, ptr %76, align 8, !tbaa !11
  br label %3904

3904:                                             ; preds = %3902, %3900
  %3905 = phi double [ %3901, %3900 ], [ %3903, %3902 ]
  store double %3905, ptr %90, align 8, !tbaa !11
  br label %3999

3906:                                             ; preds = %3809
  %3907 = load ptr, ptr %19, align 8, !tbaa !5
  %3908 = load ptr, ptr %21, align 8, !tbaa !5
  %3909 = load i64, ptr %45, align 8, !tbaa !9
  %3910 = load i64, ptr %30, align 8, !tbaa !9
  %3911 = mul nsw i64 %3909, %3910
  %3912 = add nsw i64 %3911, 1
  %3913 = getelementptr inbounds double, ptr %3908, i64 %3912
  %3914 = load ptr, ptr %27, align 8, !tbaa !5
  %3915 = load ptr, ptr %20, align 8, !tbaa !5
  %3916 = load i64, ptr %3915, align 8, !tbaa !9
  %3917 = add nsw i64 %3916, 1
  %3918 = getelementptr inbounds double, ptr %3914, i64 %3917
  %3919 = call i32 @f2c_dcopy(ptr noundef %3907, ptr noundef %3913, ptr noundef @c__1, ptr noundef %3918, ptr noundef @c__1)
  %3920 = load ptr, ptr %19, align 8, !tbaa !5
  %3921 = load ptr, ptr %27, align 8, !tbaa !5
  %3922 = load ptr, ptr %20, align 8, !tbaa !5
  %3923 = load i64, ptr %3922, align 8, !tbaa !9
  %3924 = add nsw i64 %3923, 1
  %3925 = getelementptr inbounds double, ptr %3921, i64 %3924
  %3926 = load ptr, ptr %22, align 8, !tbaa !5
  %3927 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef @c_b18, ptr noundef %3920, ptr noundef @c__1, ptr noundef %3925, ptr noundef %3926, ptr noundef %67)
  %3928 = load ptr, ptr %19, align 8, !tbaa !5
  %3929 = load ptr, ptr %21, align 8, !tbaa !5
  %3930 = load i64, ptr %44, align 8, !tbaa !9
  %3931 = load i64, ptr %30, align 8, !tbaa !9
  %3932 = mul nsw i64 %3930, %3931
  %3933 = add nsw i64 %3932, 1
  %3934 = getelementptr inbounds double, ptr %3929, i64 %3933
  %3935 = load ptr, ptr %22, align 8, !tbaa !5
  %3936 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef @c_b18, ptr noundef %3928, ptr noundef @c__1, ptr noundef %3934, ptr noundef %3935, ptr noundef %67)
  %3937 = load double, ptr %64, align 8, !tbaa !11
  %3938 = fneg double %3937
  %3939 = load ptr, ptr %27, align 8, !tbaa !5
  %3940 = load i64, ptr %45, align 8, !tbaa !9
  %3941 = getelementptr inbounds double, ptr %3939, i64 %3940
  %3942 = load double, ptr %3941, align 8, !tbaa !11
  %3943 = fmul double %3938, %3942
  %3944 = load ptr, ptr %27, align 8, !tbaa !5
  %3945 = load i64, ptr %44, align 8, !tbaa !9
  %3946 = getelementptr inbounds double, ptr %3944, i64 %3945
  %3947 = load double, ptr %3946, align 8, !tbaa !11
  %3948 = fdiv double %3943, %3947
  store double %3948, ptr %69, align 8, !tbaa !11
  %3949 = load ptr, ptr %19, align 8, !tbaa !5
  %3950 = load ptr, ptr %27, align 8, !tbaa !5
  %3951 = load ptr, ptr %20, align 8, !tbaa !5
  %3952 = load i64, ptr %3951, align 8, !tbaa !9
  %3953 = add nsw i64 %3952, 1
  %3954 = getelementptr inbounds double, ptr %3950, i64 %3953
  %3955 = load ptr, ptr %21, align 8, !tbaa !5
  %3956 = load i64, ptr %44, align 8, !tbaa !9
  %3957 = load i64, ptr %30, align 8, !tbaa !9
  %3958 = mul nsw i64 %3956, %3957
  %3959 = add nsw i64 %3958, 1
  %3960 = getelementptr inbounds double, ptr %3955, i64 %3959
  %3961 = call i32 @f2c_daxpy(ptr noundef %3949, ptr noundef %69, ptr noundef %3954, ptr noundef @c__1, ptr noundef %3960, ptr noundef @c__1)
  %3962 = load ptr, ptr %19, align 8, !tbaa !5
  %3963 = load ptr, ptr %21, align 8, !tbaa !5
  %3964 = load i64, ptr %44, align 8, !tbaa !9
  %3965 = load i64, ptr %30, align 8, !tbaa !9
  %3966 = mul nsw i64 %3964, %3965
  %3967 = add nsw i64 %3966, 1
  %3968 = getelementptr inbounds double, ptr %3963, i64 %3967
  %3969 = load ptr, ptr %22, align 8, !tbaa !5
  %3970 = call i32 @dlascl_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b18, ptr noundef %63, ptr noundef %3962, ptr noundef @c__1, ptr noundef %3968, ptr noundef %3969, ptr noundef %67)
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %3971 = load double, ptr %64, align 8, !tbaa !11
  %3972 = load double, ptr %64, align 8, !tbaa !11
  %3973 = fneg double %3971
  %3974 = call double @llvm.fmuladd.f64(double %3973, double %3972, double 1.000000e+00)
  store double %3974, ptr %40, align 8, !tbaa !11
  %3975 = load double, ptr %63, align 8, !tbaa !11
  %3976 = load double, ptr %39, align 8, !tbaa !11
  %3977 = load double, ptr %40, align 8, !tbaa !11
  %3978 = fcmp oge double %3976, %3977
  br i1 %3978, label %3979, label %3981

3979:                                             ; preds = %3906
  %3980 = load double, ptr %39, align 8, !tbaa !11
  br label %3983

3981:                                             ; preds = %3906
  %3982 = load double, ptr %40, align 8, !tbaa !11
  br label %3983

3983:                                             ; preds = %3981, %3979
  %3984 = phi double [ %3980, %3979 ], [ %3982, %3981 ]
  %3985 = call double @sqrt(double noundef %3984) #5
  %3986 = fmul double %3975, %3985
  %3987 = load ptr, ptr %23, align 8, !tbaa !5
  %3988 = load i64, ptr %44, align 8, !tbaa !9
  %3989 = getelementptr inbounds double, ptr %3987, i64 %3988
  store double %3986, ptr %3989, align 8, !tbaa !11
  %3990 = load double, ptr %90, align 8, !tbaa !11
  %3991 = load double, ptr %76, align 8, !tbaa !11
  %3992 = fcmp oge double %3990, %3991
  br i1 %3992, label %3993, label %3995

3993:                                             ; preds = %3983
  %3994 = load double, ptr %90, align 8, !tbaa !11
  br label %3997

3995:                                             ; preds = %3983
  %3996 = load double, ptr %76, align 8, !tbaa !11
  br label %3997

3997:                                             ; preds = %3995, %3993
  %3998 = phi double [ %3994, %3993 ], [ %3996, %3995 ]
  store double %3998, ptr %90, align 8, !tbaa !11
  br label %3999

3999:                                             ; preds = %3997, %3904
  br label %4000

4000:                                             ; preds = %3999, %3808
  %4001 = load ptr, ptr %23, align 8, !tbaa !5
  %4002 = load i64, ptr %45, align 8, !tbaa !9
  %4003 = getelementptr inbounds double, ptr %4001, i64 %4002
  %4004 = load double, ptr %4003, align 8, !tbaa !11
  %4005 = load double, ptr %65, align 8, !tbaa !11
  %4006 = fdiv double %4004, %4005
  store double %4006, ptr %39, align 8, !tbaa !11
  %4007 = load double, ptr %39, align 8, !tbaa !11
  %4008 = load double, ptr %39, align 8, !tbaa !11
  %4009 = fmul double %4007, %4008
  %4010 = load double, ptr %99, align 8, !tbaa !11
  %4011 = fcmp ole double %4009, %4010
  br i1 %4011, label %4012, label %4059

4012:                                             ; preds = %4000
  %4013 = load double, ptr %65, align 8, !tbaa !11
  %4014 = load double, ptr %97, align 8, !tbaa !11
  %4015 = fcmp olt double %4013, %4014
  br i1 %4015, label %4016, label %4037

4016:                                             ; preds = %4012
  %4017 = load double, ptr %65, align 8, !tbaa !11
  %4018 = load double, ptr %49, align 8, !tbaa !11
  %4019 = fcmp ogt double %4017, %4018
  br i1 %4019, label %4020, label %4037

4020:                                             ; preds = %4016
  %4021 = load ptr, ptr %19, align 8, !tbaa !5
  %4022 = load ptr, ptr %21, align 8, !tbaa !5
  %4023 = load i64, ptr %45, align 8, !tbaa !9
  %4024 = load i64, ptr %30, align 8, !tbaa !9
  %4025 = mul nsw i64 %4023, %4024
  %4026 = add nsw i64 %4025, 1
  %4027 = getelementptr inbounds double, ptr %4022, i64 %4026
  %4028 = call double @f2c_dnrm2(ptr noundef %4021, ptr noundef %4027, ptr noundef @c__1)
  %4029 = load ptr, ptr %27, align 8, !tbaa !5
  %4030 = load i64, ptr %45, align 8, !tbaa !9
  %4031 = getelementptr inbounds double, ptr %4029, i64 %4030
  %4032 = load double, ptr %4031, align 8, !tbaa !11
  %4033 = fmul double %4028, %4032
  %4034 = load ptr, ptr %23, align 8, !tbaa !5
  %4035 = load i64, ptr %45, align 8, !tbaa !9
  %4036 = getelementptr inbounds double, ptr %4034, i64 %4035
  store double %4033, ptr %4036, align 8, !tbaa !11
  br label %4058

4037:                                             ; preds = %4016, %4012
  store double 0.000000e+00, ptr %46, align 8, !tbaa !11
  store double 0.000000e+00, ptr %65, align 8, !tbaa !11
  %4038 = load ptr, ptr %19, align 8, !tbaa !5
  %4039 = load ptr, ptr %21, align 8, !tbaa !5
  %4040 = load i64, ptr %45, align 8, !tbaa !9
  %4041 = load i64, ptr %30, align 8, !tbaa !9
  %4042 = mul nsw i64 %4040, %4041
  %4043 = add nsw i64 %4042, 1
  %4044 = getelementptr inbounds double, ptr %4039, i64 %4043
  %4045 = call i32 @dlassq_(ptr noundef %4038, ptr noundef %4044, ptr noundef @c__1, ptr noundef %46, ptr noundef %65)
  %4046 = load double, ptr %46, align 8, !tbaa !11
  %4047 = load double, ptr %65, align 8, !tbaa !11
  %4048 = call double @sqrt(double noundef %4047) #5
  %4049 = fmul double %4046, %4048
  %4050 = load ptr, ptr %27, align 8, !tbaa !5
  %4051 = load i64, ptr %45, align 8, !tbaa !9
  %4052 = getelementptr inbounds double, ptr %4050, i64 %4051
  %4053 = load double, ptr %4052, align 8, !tbaa !11
  %4054 = fmul double %4049, %4053
  %4055 = load ptr, ptr %23, align 8, !tbaa !5
  %4056 = load i64, ptr %45, align 8, !tbaa !9
  %4057 = getelementptr inbounds double, ptr %4055, i64 %4056
  store double %4054, ptr %4057, align 8, !tbaa !11
  br label %4058

4058:                                             ; preds = %4037, %4020
  br label %4059

4059:                                             ; preds = %4058, %4000
  %4060 = load double, ptr %63, align 8, !tbaa !11
  %4061 = load double, ptr %68, align 8, !tbaa !11
  %4062 = fdiv double %4060, %4061
  store double %4062, ptr %39, align 8, !tbaa !11
  %4063 = load double, ptr %39, align 8, !tbaa !11
  %4064 = load double, ptr %39, align 8, !tbaa !11
  %4065 = fmul double %4063, %4064
  %4066 = load double, ptr %99, align 8, !tbaa !11
  %4067 = fcmp ole double %4065, %4066
  br i1 %4067, label %4068, label %4113

4068:                                             ; preds = %4059
  %4069 = load double, ptr %63, align 8, !tbaa !11
  %4070 = load double, ptr %97, align 8, !tbaa !11
  %4071 = fcmp olt double %4069, %4070
  br i1 %4071, label %4072, label %4090

4072:                                             ; preds = %4068
  %4073 = load double, ptr %63, align 8, !tbaa !11
  %4074 = load double, ptr %49, align 8, !tbaa !11
  %4075 = fcmp ogt double %4073, %4074
  br i1 %4075, label %4076, label %4090

4076:                                             ; preds = %4072
  %4077 = load ptr, ptr %19, align 8, !tbaa !5
  %4078 = load ptr, ptr %21, align 8, !tbaa !5
  %4079 = load i64, ptr %44, align 8, !tbaa !9
  %4080 = load i64, ptr %30, align 8, !tbaa !9
  %4081 = mul nsw i64 %4079, %4080
  %4082 = add nsw i64 %4081, 1
  %4083 = getelementptr inbounds double, ptr %4078, i64 %4082
  %4084 = call double @f2c_dnrm2(ptr noundef %4077, ptr noundef %4083, ptr noundef @c__1)
  %4085 = load ptr, ptr %27, align 8, !tbaa !5
  %4086 = load i64, ptr %44, align 8, !tbaa !9
  %4087 = getelementptr inbounds double, ptr %4085, i64 %4086
  %4088 = load double, ptr %4087, align 8, !tbaa !11
  %4089 = fmul double %4084, %4088
  store double %4089, ptr %63, align 8, !tbaa !11
  br label %4108

4090:                                             ; preds = %4072, %4068
  store double 0.000000e+00, ptr %46, align 8, !tbaa !11
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  %4091 = load ptr, ptr %19, align 8, !tbaa !5
  %4092 = load ptr, ptr %21, align 8, !tbaa !5
  %4093 = load i64, ptr %44, align 8, !tbaa !9
  %4094 = load i64, ptr %30, align 8, !tbaa !9
  %4095 = mul nsw i64 %4093, %4094
  %4096 = add nsw i64 %4095, 1
  %4097 = getelementptr inbounds double, ptr %4092, i64 %4096
  %4098 = call i32 @dlassq_(ptr noundef %4091, ptr noundef %4097, ptr noundef @c__1, ptr noundef %46, ptr noundef %63)
  %4099 = load double, ptr %46, align 8, !tbaa !11
  %4100 = load double, ptr %63, align 8, !tbaa !11
  %4101 = call double @sqrt(double noundef %4100) #5
  %4102 = fmul double %4099, %4101
  %4103 = load ptr, ptr %27, align 8, !tbaa !5
  %4104 = load i64, ptr %44, align 8, !tbaa !9
  %4105 = getelementptr inbounds double, ptr %4103, i64 %4104
  %4106 = load double, ptr %4105, align 8, !tbaa !11
  %4107 = fmul double %4102, %4106
  store double %4107, ptr %63, align 8, !tbaa !11
  br label %4108

4108:                                             ; preds = %4090, %4076
  %4109 = load double, ptr %63, align 8, !tbaa !11
  %4110 = load ptr, ptr %23, align 8, !tbaa !5
  %4111 = load i64, ptr %44, align 8, !tbaa !9
  %4112 = getelementptr inbounds double, ptr %4110, i64 %4111
  store double %4109, ptr %4112, align 8, !tbaa !11
  br label %4113

4113:                                             ; preds = %4108, %4059
  br label %4121

4114:                                             ; preds = %3107
  %4115 = load i64, ptr %92, align 8, !tbaa !9
  %4116 = add nsw i64 %4115, 1
  store i64 %4116, ptr %92, align 8, !tbaa !9
  %4117 = load i64, ptr %42, align 8, !tbaa !9
  %4118 = add nsw i64 %4117, 1
  store i64 %4118, ptr %42, align 8, !tbaa !9
  %4119 = load i64, ptr %85, align 8, !tbaa !9
  %4120 = add nsw i64 %4119, 1
  store i64 %4120, ptr %85, align 8, !tbaa !9
  br label %4121

4121:                                             ; preds = %4114, %4113
  br label %4129

4122:                                             ; preds = %2867
  %4123 = load i64, ptr %92, align 8, !tbaa !9
  %4124 = add nsw i64 %4123, 1
  store i64 %4124, ptr %92, align 8, !tbaa !9
  %4125 = load i64, ptr %42, align 8, !tbaa !9
  %4126 = add nsw i64 %4125, 1
  store i64 %4126, ptr %42, align 8, !tbaa !9
  %4127 = load i64, ptr %85, align 8, !tbaa !9
  %4128 = add nsw i64 %4127, 1
  store i64 %4128, ptr %85, align 8, !tbaa !9
  br label %4129

4129:                                             ; preds = %4122, %4121
  %4130 = load i64, ptr %43, align 8, !tbaa !9
  %4131 = load i64, ptr %86, align 8, !tbaa !9
  %4132 = icmp sle i64 %4130, %4131
  br i1 %4132, label %4133, label %4142

4133:                                             ; preds = %4129
  %4134 = load i64, ptr %85, align 8, !tbaa !9
  %4135 = load i64, ptr %87, align 8, !tbaa !9
  %4136 = icmp sge i64 %4134, %4135
  br i1 %4136, label %4137, label %4142

4137:                                             ; preds = %4133
  %4138 = load double, ptr %63, align 8, !tbaa !11
  %4139 = load ptr, ptr %23, align 8, !tbaa !5
  %4140 = load i64, ptr %44, align 8, !tbaa !9
  %4141 = getelementptr inbounds double, ptr %4139, i64 %4140
  store double %4138, ptr %4141, align 8, !tbaa !11
  store i64 0, ptr %92, align 8, !tbaa !9
  br label %4201

4142:                                             ; preds = %4133, %4129
  %4143 = load i64, ptr %43, align 8, !tbaa !9
  %4144 = load i64, ptr %86, align 8, !tbaa !9
  %4145 = icmp sle i64 %4143, %4144
  br i1 %4145, label %4146, label %4153

4146:                                             ; preds = %4142
  %4147 = load i64, ptr %42, align 8, !tbaa !9
  %4148 = load i64, ptr %100, align 8, !tbaa !9
  %4149 = icmp sgt i64 %4147, %4148
  br i1 %4149, label %4150, label %4153

4150:                                             ; preds = %4146
  %4151 = load double, ptr %63, align 8, !tbaa !11
  %4152 = fneg double %4151
  store double %4152, ptr %63, align 8, !tbaa !11
  store i64 0, ptr %92, align 8, !tbaa !9
  br label %4158

4153:                                             ; preds = %4146, %4142
  br label %4154

4154:                                             ; preds = %4153
  %4155 = load i64, ptr %45, align 8, !tbaa !9
  %4156 = add nsw i64 %4155, 1
  store i64 %4156, ptr %45, align 8, !tbaa !9
  br label %2863, !llvm.loop !25

4157:                                             ; preds = %2863
  br label %4158

4158:                                             ; preds = %4157, %4150
  %4159 = load double, ptr %63, align 8, !tbaa !11
  %4160 = load ptr, ptr %23, align 8, !tbaa !5
  %4161 = load i64, ptr %44, align 8, !tbaa !9
  %4162 = getelementptr inbounds double, ptr %4160, i64 %4161
  store double %4159, ptr %4162, align 8, !tbaa !11
  br label %4192

4163:                                             ; preds = %2839
  %4164 = load double, ptr %63, align 8, !tbaa !11
  %4165 = fcmp oeq double %4164, 0.000000e+00
  br i1 %4165, label %4166, label %4187

4166:                                             ; preds = %4163
  %4167 = load i64, ptr %59, align 8, !tbaa !9
  %4168 = load i64, ptr %56, align 8, !tbaa !9
  %4169 = add nsw i64 %4167, %4168
  %4170 = sub nsw i64 %4169, 1
  store i64 %4170, ptr %37, align 8, !tbaa !9
  %4171 = load i64, ptr %92, align 8, !tbaa !9
  %4172 = load i64, ptr %37, align 8, !tbaa !9
  %4173 = load ptr, ptr %20, align 8, !tbaa !5
  %4174 = load i64, ptr %4173, align 8, !tbaa !9
  %4175 = icmp sle i64 %4172, %4174
  br i1 %4175, label %4176, label %4178

4176:                                             ; preds = %4166
  %4177 = load i64, ptr %37, align 8, !tbaa !9
  br label %4181

4178:                                             ; preds = %4166
  %4179 = load ptr, ptr %20, align 8, !tbaa !5
  %4180 = load i64, ptr %4179, align 8, !tbaa !9
  br label %4181

4181:                                             ; preds = %4178, %4176
  %4182 = phi i64 [ %4177, %4176 ], [ %4180, %4178 ]
  %4183 = add nsw i64 %4171, %4182
  %4184 = load i64, ptr %59, align 8, !tbaa !9
  %4185 = sub nsw i64 %4183, %4184
  %4186 = add nsw i64 %4185, 1
  store i64 %4186, ptr %92, align 8, !tbaa !9
  br label %4187

4187:                                             ; preds = %4181, %4163
  %4188 = load double, ptr %63, align 8, !tbaa !11
  %4189 = fcmp olt double %4188, 0.000000e+00
  br i1 %4189, label %4190, label %4191

4190:                                             ; preds = %4187
  store i64 0, ptr %92, align 8, !tbaa !9
  br label %4191

4191:                                             ; preds = %4190, %4187
  br label %4192

4192:                                             ; preds = %4191, %4158
  br label %4193

4193:                                             ; preds = %4192
  %4194 = load i64, ptr %44, align 8, !tbaa !9
  %4195 = add nsw i64 %4194, 1
  store i64 %4195, ptr %44, align 8, !tbaa !9
  br label %2835, !llvm.loop !26

4196:                                             ; preds = %2835
  br label %4197

4197:                                             ; preds = %4196
  %4198 = load i64, ptr %54, align 8, !tbaa !9
  %4199 = add nsw i64 %4198, 1
  store i64 %4199, ptr %54, align 8, !tbaa !9
  br label %2809, !llvm.loop !27

4200:                                             ; preds = %2809
  br label %4201

4201:                                             ; preds = %4200, %4137
  %4202 = load i64, ptr %57, align 8, !tbaa !9
  %4203 = load i64, ptr %56, align 8, !tbaa !9
  %4204 = add nsw i64 %4202, %4203
  %4205 = sub nsw i64 %4204, 1
  store i64 %4205, ptr %36, align 8, !tbaa !9
  %4206 = load i64, ptr %36, align 8, !tbaa !9
  %4207 = load ptr, ptr %20, align 8, !tbaa !5
  %4208 = load i64, ptr %4207, align 8, !tbaa !9
  %4209 = icmp sle i64 %4206, %4208
  br i1 %4209, label %4210, label %4212

4210:                                             ; preds = %4201
  %4211 = load i64, ptr %36, align 8, !tbaa !9
  br label %4215

4212:                                             ; preds = %4201
  %4213 = load ptr, ptr %20, align 8, !tbaa !5
  %4214 = load i64, ptr %4213, align 8, !tbaa !9
  br label %4215

4215:                                             ; preds = %4212, %4210
  %4216 = phi i64 [ %4211, %4210 ], [ %4214, %4212 ]
  store i64 %4216, ptr %35, align 8, !tbaa !9
  %4217 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %4217, ptr %44, align 8, !tbaa !9
  br label %4218

4218:                                             ; preds = %4239, %4215
  %4219 = load i64, ptr %44, align 8, !tbaa !9
  %4220 = load i64, ptr %35, align 8, !tbaa !9
  %4221 = icmp sle i64 %4219, %4220
  br i1 %4221, label %4222, label %4242

4222:                                             ; preds = %4218
  %4223 = load ptr, ptr %23, align 8, !tbaa !5
  %4224 = load i64, ptr %44, align 8, !tbaa !9
  %4225 = getelementptr inbounds double, ptr %4223, i64 %4224
  %4226 = load double, ptr %4225, align 8, !tbaa !11
  store double %4226, ptr %39, align 8, !tbaa !11
  %4227 = load double, ptr %39, align 8, !tbaa !11
  %4228 = fcmp oge double %4227, 0.000000e+00
  br i1 %4228, label %4229, label %4231

4229:                                             ; preds = %4222
  %4230 = load double, ptr %39, align 8, !tbaa !11
  br label %4234

4231:                                             ; preds = %4222
  %4232 = load double, ptr %39, align 8, !tbaa !11
  %4233 = fneg double %4232
  br label %4234

4234:                                             ; preds = %4231, %4229
  %4235 = phi double [ %4230, %4229 ], [ %4233, %4231 ]
  %4236 = load ptr, ptr %23, align 8, !tbaa !5
  %4237 = load i64, ptr %44, align 8, !tbaa !9
  %4238 = getelementptr inbounds double, ptr %4236, i64 %4237
  store double %4235, ptr %4238, align 8, !tbaa !11
  br label %4239

4239:                                             ; preds = %4234
  %4240 = load i64, ptr %44, align 8, !tbaa !9
  %4241 = add nsw i64 %4240, 1
  store i64 %4241, ptr %44, align 8, !tbaa !9
  br label %4218, !llvm.loop !28

4242:                                             ; preds = %4218
  br label %4243

4243:                                             ; preds = %4242
  %4244 = load i64, ptr %58, align 8, !tbaa !9
  %4245 = add nsw i64 %4244, 1
  store i64 %4245, ptr %58, align 8, !tbaa !9
  br label %1385, !llvm.loop !29

4246:                                             ; preds = %1385
  %4247 = load ptr, ptr %23, align 8, !tbaa !5
  %4248 = load ptr, ptr %20, align 8, !tbaa !5
  %4249 = load i64, ptr %4248, align 8, !tbaa !9
  %4250 = getelementptr inbounds double, ptr %4247, i64 %4249
  %4251 = load double, ptr %4250, align 8, !tbaa !11
  %4252 = load double, ptr %97, align 8, !tbaa !11
  %4253 = fcmp olt double %4251, %4252
  br i1 %4253, label %4254, label %4282

4254:                                             ; preds = %4246
  %4255 = load ptr, ptr %23, align 8, !tbaa !5
  %4256 = load ptr, ptr %20, align 8, !tbaa !5
  %4257 = load i64, ptr %4256, align 8, !tbaa !9
  %4258 = getelementptr inbounds double, ptr %4255, i64 %4257
  %4259 = load double, ptr %4258, align 8, !tbaa !11
  %4260 = load double, ptr %49, align 8, !tbaa !11
  %4261 = fcmp ogt double %4259, %4260
  br i1 %4261, label %4262, label %4282

4262:                                             ; preds = %4254
  %4263 = load ptr, ptr %19, align 8, !tbaa !5
  %4264 = load ptr, ptr %21, align 8, !tbaa !5
  %4265 = load ptr, ptr %20, align 8, !tbaa !5
  %4266 = load i64, ptr %4265, align 8, !tbaa !9
  %4267 = load i64, ptr %30, align 8, !tbaa !9
  %4268 = mul nsw i64 %4266, %4267
  %4269 = add nsw i64 %4268, 1
  %4270 = getelementptr inbounds double, ptr %4264, i64 %4269
  %4271 = call double @f2c_dnrm2(ptr noundef %4263, ptr noundef %4270, ptr noundef @c__1)
  %4272 = load ptr, ptr %27, align 8, !tbaa !5
  %4273 = load ptr, ptr %20, align 8, !tbaa !5
  %4274 = load i64, ptr %4273, align 8, !tbaa !9
  %4275 = getelementptr inbounds double, ptr %4272, i64 %4274
  %4276 = load double, ptr %4275, align 8, !tbaa !11
  %4277 = fmul double %4271, %4276
  %4278 = load ptr, ptr %23, align 8, !tbaa !5
  %4279 = load ptr, ptr %20, align 8, !tbaa !5
  %4280 = load i64, ptr %4279, align 8, !tbaa !9
  %4281 = getelementptr inbounds double, ptr %4278, i64 %4280
  store double %4277, ptr %4281, align 8, !tbaa !11
  br label %4306

4282:                                             ; preds = %4254, %4246
  store double 0.000000e+00, ptr %46, align 8, !tbaa !11
  store double 0.000000e+00, ptr %63, align 8, !tbaa !11
  %4283 = load ptr, ptr %19, align 8, !tbaa !5
  %4284 = load ptr, ptr %21, align 8, !tbaa !5
  %4285 = load ptr, ptr %20, align 8, !tbaa !5
  %4286 = load i64, ptr %4285, align 8, !tbaa !9
  %4287 = load i64, ptr %30, align 8, !tbaa !9
  %4288 = mul nsw i64 %4286, %4287
  %4289 = add nsw i64 %4288, 1
  %4290 = getelementptr inbounds double, ptr %4284, i64 %4289
  %4291 = call i32 @dlassq_(ptr noundef %4283, ptr noundef %4290, ptr noundef @c__1, ptr noundef %46, ptr noundef %63)
  %4292 = load double, ptr %46, align 8, !tbaa !11
  %4293 = load double, ptr %63, align 8, !tbaa !11
  %4294 = call double @sqrt(double noundef %4293) #5
  %4295 = fmul double %4292, %4294
  %4296 = load ptr, ptr %27, align 8, !tbaa !5
  %4297 = load ptr, ptr %20, align 8, !tbaa !5
  %4298 = load i64, ptr %4297, align 8, !tbaa !9
  %4299 = getelementptr inbounds double, ptr %4296, i64 %4298
  %4300 = load double, ptr %4299, align 8, !tbaa !11
  %4301 = fmul double %4295, %4300
  %4302 = load ptr, ptr %23, align 8, !tbaa !5
  %4303 = load ptr, ptr %20, align 8, !tbaa !5
  %4304 = load i64, ptr %4303, align 8, !tbaa !9
  %4305 = getelementptr inbounds double, ptr %4302, i64 %4304
  store double %4301, ptr %4305, align 8, !tbaa !11
  br label %4306

4306:                                             ; preds = %4282, %4262
  %4307 = load i64, ptr %43, align 8, !tbaa !9
  %4308 = load i64, ptr %86, align 8, !tbaa !9
  %4309 = icmp slt i64 %4307, %4308
  br i1 %4309, label %4310, label %4321

4310:                                             ; preds = %4306
  %4311 = load double, ptr %88, align 8, !tbaa !11
  %4312 = load double, ptr %101, align 8, !tbaa !11
  %4313 = fcmp ole double %4311, %4312
  br i1 %4313, label %4319, label %4314

4314:                                             ; preds = %4310
  %4315 = load i64, ptr %93, align 8, !tbaa !9
  %4316 = load ptr, ptr %20, align 8, !tbaa !5
  %4317 = load i64, ptr %4316, align 8, !tbaa !9
  %4318 = icmp sle i64 %4315, %4317
  br i1 %4318, label %4319, label %4321

4319:                                             ; preds = %4314, %4310
  %4320 = load i64, ptr %43, align 8, !tbaa !9
  store i64 %4320, ptr %86, align 8, !tbaa !9
  br label %4321

4321:                                             ; preds = %4319, %4314, %4306
  %4322 = load i64, ptr %43, align 8, !tbaa !9
  %4323 = load i64, ptr %86, align 8, !tbaa !9
  %4324 = add nsw i64 %4323, 1
  %4325 = icmp sgt i64 %4322, %4324
  br i1 %4325, label %4326, label %4346

4326:                                             ; preds = %4321
  %4327 = load double, ptr %88, align 8, !tbaa !11
  %4328 = load ptr, ptr %20, align 8, !tbaa !5
  %4329 = load i64, ptr %4328, align 8, !tbaa !9
  %4330 = sitofp i64 %4329 to double
  %4331 = call double @sqrt(double noundef %4330) #5
  %4332 = load double, ptr %61, align 8, !tbaa !11
  %4333 = fmul double %4331, %4332
  %4334 = fcmp olt double %4327, %4333
  br i1 %4334, label %4335, label %4346

4335:                                             ; preds = %4326
  %4336 = load ptr, ptr %20, align 8, !tbaa !5
  %4337 = load i64, ptr %4336, align 8, !tbaa !9
  %4338 = sitofp i64 %4337 to double
  %4339 = load double, ptr %88, align 8, !tbaa !11
  %4340 = fmul double %4338, %4339
  %4341 = load double, ptr %90, align 8, !tbaa !11
  %4342 = fmul double %4340, %4341
  %4343 = load double, ptr %61, align 8, !tbaa !11
  %4344 = fcmp olt double %4342, %4343
  br i1 %4344, label %4345, label %4346

4345:                                             ; preds = %4335
  br label %4357

4346:                                             ; preds = %4335, %4326, %4321
  %4347 = load i64, ptr %92, align 8, !tbaa !9
  %4348 = load i64, ptr %91, align 8, !tbaa !9
  %4349 = icmp sge i64 %4347, %4348
  br i1 %4349, label %4350, label %4351

4350:                                             ; preds = %4346
  br label %4357

4351:                                             ; preds = %4346
  br label %4352

4352:                                             ; preds = %4351
  %4353 = load i64, ptr %43, align 8, !tbaa !9
  %4354 = add nsw i64 %4353, 1
  store i64 %4354, ptr %43, align 8, !tbaa !9
  br label %1380, !llvm.loop !30

4355:                                             ; preds = %1380
  %4356 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 29, ptr %4356, align 8, !tbaa !9
  br label %4359

4357:                                             ; preds = %4350, %4345
  %4358 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 0, ptr %4358, align 8, !tbaa !9
  br label %4359

4359:                                             ; preds = %4357, %4355
  store i64 0, ptr %47, align 8, !tbaa !9
  store i64 0, ptr %48, align 8, !tbaa !9
  %4360 = load ptr, ptr %20, align 8, !tbaa !5
  %4361 = load i64, ptr %4360, align 8, !tbaa !9
  %4362 = sub nsw i64 %4361, 1
  store i64 %4362, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %4363

4363:                                             ; preds = %4467, %4359
  %4364 = load i64, ptr %44, align 8, !tbaa !9
  %4365 = load i64, ptr %34, align 8, !tbaa !9
  %4366 = icmp sle i64 %4364, %4365
  br i1 %4366, label %4367, label %4470

4367:                                             ; preds = %4363
  %4368 = load ptr, ptr %20, align 8, !tbaa !5
  %4369 = load i64, ptr %4368, align 8, !tbaa !9
  %4370 = load i64, ptr %44, align 8, !tbaa !9
  %4371 = sub nsw i64 %4369, %4370
  %4372 = add nsw i64 %4371, 1
  store i64 %4372, ptr %35, align 8, !tbaa !9
  %4373 = load ptr, ptr %23, align 8, !tbaa !5
  %4374 = load i64, ptr %44, align 8, !tbaa !9
  %4375 = getelementptr inbounds double, ptr %4373, i64 %4374
  %4376 = call i64 @f2c_idamax(ptr noundef %35, ptr noundef %4375, ptr noundef @c__1)
  %4377 = load i64, ptr %44, align 8, !tbaa !9
  %4378 = add nsw i64 %4376, %4377
  %4379 = sub nsw i64 %4378, 1
  store i64 %4379, ptr %45, align 8, !tbaa !9
  %4380 = load i64, ptr %44, align 8, !tbaa !9
  %4381 = load i64, ptr %45, align 8, !tbaa !9
  %4382 = icmp ne i64 %4380, %4381
  br i1 %4382, label %4383, label %4445

4383:                                             ; preds = %4367
  %4384 = load ptr, ptr %23, align 8, !tbaa !5
  %4385 = load i64, ptr %44, align 8, !tbaa !9
  %4386 = getelementptr inbounds double, ptr %4384, i64 %4385
  %4387 = load double, ptr %4386, align 8, !tbaa !11
  store double %4387, ptr %69, align 8, !tbaa !11
  %4388 = load ptr, ptr %23, align 8, !tbaa !5
  %4389 = load i64, ptr %45, align 8, !tbaa !9
  %4390 = getelementptr inbounds double, ptr %4388, i64 %4389
  %4391 = load double, ptr %4390, align 8, !tbaa !11
  %4392 = load ptr, ptr %23, align 8, !tbaa !5
  %4393 = load i64, ptr %44, align 8, !tbaa !9
  %4394 = getelementptr inbounds double, ptr %4392, i64 %4393
  store double %4391, ptr %4394, align 8, !tbaa !11
  %4395 = load double, ptr %69, align 8, !tbaa !11
  %4396 = load ptr, ptr %23, align 8, !tbaa !5
  %4397 = load i64, ptr %45, align 8, !tbaa !9
  %4398 = getelementptr inbounds double, ptr %4396, i64 %4397
  store double %4395, ptr %4398, align 8, !tbaa !11
  %4399 = load ptr, ptr %27, align 8, !tbaa !5
  %4400 = load i64, ptr %44, align 8, !tbaa !9
  %4401 = getelementptr inbounds double, ptr %4399, i64 %4400
  %4402 = load double, ptr %4401, align 8, !tbaa !11
  store double %4402, ptr %69, align 8, !tbaa !11
  %4403 = load ptr, ptr %27, align 8, !tbaa !5
  %4404 = load i64, ptr %45, align 8, !tbaa !9
  %4405 = getelementptr inbounds double, ptr %4403, i64 %4404
  %4406 = load double, ptr %4405, align 8, !tbaa !11
  %4407 = load ptr, ptr %27, align 8, !tbaa !5
  %4408 = load i64, ptr %44, align 8, !tbaa !9
  %4409 = getelementptr inbounds double, ptr %4407, i64 %4408
  store double %4406, ptr %4409, align 8, !tbaa !11
  %4410 = load double, ptr %69, align 8, !tbaa !11
  %4411 = load ptr, ptr %27, align 8, !tbaa !5
  %4412 = load i64, ptr %45, align 8, !tbaa !9
  %4413 = getelementptr inbounds double, ptr %4411, i64 %4412
  store double %4410, ptr %4413, align 8, !tbaa !11
  %4414 = load ptr, ptr %19, align 8, !tbaa !5
  %4415 = load ptr, ptr %21, align 8, !tbaa !5
  %4416 = load i64, ptr %44, align 8, !tbaa !9
  %4417 = load i64, ptr %30, align 8, !tbaa !9
  %4418 = mul nsw i64 %4416, %4417
  %4419 = add nsw i64 %4418, 1
  %4420 = getelementptr inbounds double, ptr %4415, i64 %4419
  %4421 = load ptr, ptr %21, align 8, !tbaa !5
  %4422 = load i64, ptr %45, align 8, !tbaa !9
  %4423 = load i64, ptr %30, align 8, !tbaa !9
  %4424 = mul nsw i64 %4422, %4423
  %4425 = add nsw i64 %4424, 1
  %4426 = getelementptr inbounds double, ptr %4421, i64 %4425
  %4427 = call i32 @f2c_dswap(ptr noundef %4414, ptr noundef %4420, ptr noundef @c__1, ptr noundef %4426, ptr noundef @c__1)
  %4428 = load i64, ptr %80, align 8, !tbaa !9
  %4429 = icmp ne i64 %4428, 0
  br i1 %4429, label %4430, label %4444

4430:                                             ; preds = %4383
  %4431 = load ptr, ptr %25, align 8, !tbaa !5
  %4432 = load i64, ptr %44, align 8, !tbaa !9
  %4433 = load i64, ptr %32, align 8, !tbaa !9
  %4434 = mul nsw i64 %4432, %4433
  %4435 = add nsw i64 %4434, 1
  %4436 = getelementptr inbounds double, ptr %4431, i64 %4435
  %4437 = load ptr, ptr %25, align 8, !tbaa !5
  %4438 = load i64, ptr %45, align 8, !tbaa !9
  %4439 = load i64, ptr %32, align 8, !tbaa !9
  %4440 = mul nsw i64 %4438, %4439
  %4441 = add nsw i64 %4440, 1
  %4442 = getelementptr inbounds double, ptr %4437, i64 %4441
  %4443 = call i32 @f2c_dswap(ptr noundef %62, ptr noundef %4436, ptr noundef @c__1, ptr noundef %4442, ptr noundef @c__1)
  br label %4444

4444:                                             ; preds = %4430, %4383
  br label %4445

4445:                                             ; preds = %4444, %4367
  %4446 = load ptr, ptr %23, align 8, !tbaa !5
  %4447 = load i64, ptr %44, align 8, !tbaa !9
  %4448 = getelementptr inbounds double, ptr %4446, i64 %4447
  %4449 = load double, ptr %4448, align 8, !tbaa !11
  %4450 = fcmp une double %4449, 0.000000e+00
  br i1 %4450, label %4451, label %4466

4451:                                             ; preds = %4445
  %4452 = load i64, ptr %48, align 8, !tbaa !9
  %4453 = add nsw i64 %4452, 1
  store i64 %4453, ptr %48, align 8, !tbaa !9
  %4454 = load ptr, ptr %23, align 8, !tbaa !5
  %4455 = load i64, ptr %44, align 8, !tbaa !9
  %4456 = getelementptr inbounds double, ptr %4454, i64 %4455
  %4457 = load double, ptr %4456, align 8, !tbaa !11
  %4458 = load double, ptr %70, align 8, !tbaa !11
  %4459 = fmul double %4457, %4458
  %4460 = load double, ptr %76, align 8, !tbaa !11
  %4461 = fcmp ogt double %4459, %4460
  br i1 %4461, label %4462, label %4465

4462:                                             ; preds = %4451
  %4463 = load i64, ptr %47, align 8, !tbaa !9
  %4464 = add nsw i64 %4463, 1
  store i64 %4464, ptr %47, align 8, !tbaa !9
  br label %4465

4465:                                             ; preds = %4462, %4451
  br label %4466

4466:                                             ; preds = %4465, %4445
  br label %4467

4467:                                             ; preds = %4466
  %4468 = load i64, ptr %44, align 8, !tbaa !9
  %4469 = add nsw i64 %4468, 1
  store i64 %4469, ptr %44, align 8, !tbaa !9
  br label %4363, !llvm.loop !31

4470:                                             ; preds = %4363
  %4471 = load ptr, ptr %23, align 8, !tbaa !5
  %4472 = load ptr, ptr %20, align 8, !tbaa !5
  %4473 = load i64, ptr %4472, align 8, !tbaa !9
  %4474 = getelementptr inbounds double, ptr %4471, i64 %4473
  %4475 = load double, ptr %4474, align 8, !tbaa !11
  %4476 = fcmp une double %4475, 0.000000e+00
  br i1 %4476, label %4477, label %4493

4477:                                             ; preds = %4470
  %4478 = load i64, ptr %48, align 8, !tbaa !9
  %4479 = add nsw i64 %4478, 1
  store i64 %4479, ptr %48, align 8, !tbaa !9
  %4480 = load ptr, ptr %23, align 8, !tbaa !5
  %4481 = load ptr, ptr %20, align 8, !tbaa !5
  %4482 = load i64, ptr %4481, align 8, !tbaa !9
  %4483 = getelementptr inbounds double, ptr %4480, i64 %4482
  %4484 = load double, ptr %4483, align 8, !tbaa !11
  %4485 = load double, ptr %70, align 8, !tbaa !11
  %4486 = fmul double %4484, %4485
  %4487 = load double, ptr %76, align 8, !tbaa !11
  %4488 = fcmp ogt double %4486, %4487
  br i1 %4488, label %4489, label %4492

4489:                                             ; preds = %4477
  %4490 = load i64, ptr %47, align 8, !tbaa !9
  %4491 = add nsw i64 %4490, 1
  store i64 %4491, ptr %47, align 8, !tbaa !9
  br label %4492

4492:                                             ; preds = %4489, %4477
  br label %4493

4493:                                             ; preds = %4492, %4470
  %4494 = load i64, ptr %77, align 8, !tbaa !9
  %4495 = icmp ne i64 %4494, 0
  br i1 %4495, label %4499, label %4496

4496:                                             ; preds = %4493
  %4497 = load i64, ptr %81, align 8, !tbaa !9
  %4498 = icmp ne i64 %4497, 0
  br i1 %4498, label %4499, label %4527

4499:                                             ; preds = %4496, %4493
  %4500 = load i64, ptr %47, align 8, !tbaa !9
  store i64 %4500, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %4501

4501:                                             ; preds = %4523, %4499
  %4502 = load i64, ptr %44, align 8, !tbaa !9
  %4503 = load i64, ptr %34, align 8, !tbaa !9
  %4504 = icmp sle i64 %4502, %4503
  br i1 %4504, label %4505, label %4526

4505:                                             ; preds = %4501
  %4506 = load ptr, ptr %27, align 8, !tbaa !5
  %4507 = load i64, ptr %44, align 8, !tbaa !9
  %4508 = getelementptr inbounds double, ptr %4506, i64 %4507
  %4509 = load double, ptr %4508, align 8, !tbaa !11
  %4510 = load ptr, ptr %23, align 8, !tbaa !5
  %4511 = load i64, ptr %44, align 8, !tbaa !9
  %4512 = getelementptr inbounds double, ptr %4510, i64 %4511
  %4513 = load double, ptr %4512, align 8, !tbaa !11
  %4514 = fdiv double %4509, %4513
  store double %4514, ptr %39, align 8, !tbaa !11
  %4515 = load ptr, ptr %19, align 8, !tbaa !5
  %4516 = load ptr, ptr %21, align 8, !tbaa !5
  %4517 = load i64, ptr %44, align 8, !tbaa !9
  %4518 = load i64, ptr %30, align 8, !tbaa !9
  %4519 = mul nsw i64 %4517, %4518
  %4520 = add nsw i64 %4519, 1
  %4521 = getelementptr inbounds double, ptr %4516, i64 %4520
  %4522 = call i32 @f2c_dscal(ptr noundef %4515, ptr noundef %39, ptr noundef %4521, ptr noundef @c__1)
  br label %4523

4523:                                             ; preds = %4505
  %4524 = load i64, ptr %44, align 8, !tbaa !9
  %4525 = add nsw i64 %4524, 1
  store i64 %4525, ptr %44, align 8, !tbaa !9
  br label %4501, !llvm.loop !32

4526:                                             ; preds = %4501
  br label %4527

4527:                                             ; preds = %4526, %4496
  %4528 = load i64, ptr %80, align 8, !tbaa !9
  %4529 = icmp ne i64 %4528, 0
  br i1 %4529, label %4530, label %4583

4530:                                             ; preds = %4527
  %4531 = load i64, ptr %79, align 8, !tbaa !9
  %4532 = icmp ne i64 %4531, 0
  br i1 %4532, label %4533, label %4555

4533:                                             ; preds = %4530
  %4534 = load ptr, ptr %20, align 8, !tbaa !5
  %4535 = load i64, ptr %4534, align 8, !tbaa !9
  store i64 %4535, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %4536

4536:                                             ; preds = %4551, %4533
  %4537 = load i64, ptr %44, align 8, !tbaa !9
  %4538 = load i64, ptr %34, align 8, !tbaa !9
  %4539 = icmp sle i64 %4537, %4538
  br i1 %4539, label %4540, label %4554

4540:                                             ; preds = %4536
  %4541 = load ptr, ptr %27, align 8, !tbaa !5
  %4542 = load i64, ptr %44, align 8, !tbaa !9
  %4543 = getelementptr inbounds double, ptr %4541, i64 %4542
  %4544 = load ptr, ptr %25, align 8, !tbaa !5
  %4545 = load i64, ptr %44, align 8, !tbaa !9
  %4546 = load i64, ptr %32, align 8, !tbaa !9
  %4547 = mul nsw i64 %4545, %4546
  %4548 = add nsw i64 %4547, 1
  %4549 = getelementptr inbounds double, ptr %4544, i64 %4548
  %4550 = call i32 @f2c_dscal(ptr noundef %62, ptr noundef %4543, ptr noundef %4549, ptr noundef @c__1)
  br label %4551

4551:                                             ; preds = %4540
  %4552 = load i64, ptr %44, align 8, !tbaa !9
  %4553 = add nsw i64 %4552, 1
  store i64 %4553, ptr %44, align 8, !tbaa !9
  br label %4536, !llvm.loop !33

4554:                                             ; preds = %4536
  br label %4582

4555:                                             ; preds = %4530
  %4556 = load ptr, ptr %20, align 8, !tbaa !5
  %4557 = load i64, ptr %4556, align 8, !tbaa !9
  store i64 %4557, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %4558

4558:                                             ; preds = %4578, %4555
  %4559 = load i64, ptr %44, align 8, !tbaa !9
  %4560 = load i64, ptr %34, align 8, !tbaa !9
  %4561 = icmp sle i64 %4559, %4560
  br i1 %4561, label %4562, label %4581

4562:                                             ; preds = %4558
  %4563 = load ptr, ptr %25, align 8, !tbaa !5
  %4564 = load i64, ptr %44, align 8, !tbaa !9
  %4565 = load i64, ptr %32, align 8, !tbaa !9
  %4566 = mul nsw i64 %4564, %4565
  %4567 = add nsw i64 %4566, 1
  %4568 = getelementptr inbounds double, ptr %4563, i64 %4567
  %4569 = call double @f2c_dnrm2(ptr noundef %62, ptr noundef %4568, ptr noundef @c__1)
  %4570 = fdiv double 1.000000e+00, %4569
  store double %4570, ptr %69, align 8, !tbaa !11
  %4571 = load ptr, ptr %25, align 8, !tbaa !5
  %4572 = load i64, ptr %44, align 8, !tbaa !9
  %4573 = load i64, ptr %32, align 8, !tbaa !9
  %4574 = mul nsw i64 %4572, %4573
  %4575 = add nsw i64 %4574, 1
  %4576 = getelementptr inbounds double, ptr %4571, i64 %4575
  %4577 = call i32 @f2c_dscal(ptr noundef %62, ptr noundef %69, ptr noundef %4576, ptr noundef @c__1)
  br label %4578

4578:                                             ; preds = %4562
  %4579 = load i64, ptr %44, align 8, !tbaa !9
  %4580 = add nsw i64 %4579, 1
  store i64 %4580, ptr %44, align 8, !tbaa !9
  br label %4558, !llvm.loop !34

4581:                                             ; preds = %4558
  br label %4582

4582:                                             ; preds = %4581, %4554
  br label %4583

4583:                                             ; preds = %4582, %4527
  %4584 = load double, ptr %70, align 8, !tbaa !11
  %4585 = fcmp ogt double %4584, 1.000000e+00
  br i1 %4585, label %4586, label %4594

4586:                                             ; preds = %4583
  %4587 = load ptr, ptr %23, align 8, !tbaa !5
  %4588 = getelementptr inbounds double, ptr %4587, i64 1
  %4589 = load double, ptr %4588, align 8, !tbaa !11
  %4590 = load double, ptr %55, align 8, !tbaa !11
  %4591 = load double, ptr %70, align 8, !tbaa !11
  %4592 = fdiv double %4590, %4591
  %4593 = fcmp olt double %4589, %4592
  br i1 %4593, label %4606, label %4594

4594:                                             ; preds = %4586, %4583
  %4595 = load double, ptr %70, align 8, !tbaa !11
  %4596 = fcmp olt double %4595, 1.000000e+00
  br i1 %4596, label %4597, label %4627

4597:                                             ; preds = %4594
  %4598 = load ptr, ptr %23, align 8, !tbaa !5
  %4599 = load i64, ptr %47, align 8, !tbaa !9
  %4600 = getelementptr inbounds double, ptr %4598, i64 %4599
  %4601 = load double, ptr %4600, align 8, !tbaa !11
  %4602 = load double, ptr %76, align 8, !tbaa !11
  %4603 = load double, ptr %70, align 8, !tbaa !11
  %4604 = fdiv double %4602, %4603
  %4605 = fcmp ogt double %4601, %4604
  br i1 %4605, label %4606, label %4627

4606:                                             ; preds = %4597, %4586
  %4607 = load ptr, ptr %20, align 8, !tbaa !5
  %4608 = load i64, ptr %4607, align 8, !tbaa !9
  store i64 %4608, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %4609

4609:                                             ; preds = %4623, %4606
  %4610 = load i64, ptr %44, align 8, !tbaa !9
  %4611 = load i64, ptr %34, align 8, !tbaa !9
  %4612 = icmp sle i64 %4610, %4611
  br i1 %4612, label %4613, label %4626

4613:                                             ; preds = %4609
  %4614 = load double, ptr %70, align 8, !tbaa !11
  %4615 = load ptr, ptr %23, align 8, !tbaa !5
  %4616 = load i64, ptr %44, align 8, !tbaa !9
  %4617 = getelementptr inbounds double, ptr %4615, i64 %4616
  %4618 = load double, ptr %4617, align 8, !tbaa !11
  %4619 = fmul double %4614, %4618
  %4620 = load ptr, ptr %23, align 8, !tbaa !5
  %4621 = load i64, ptr %44, align 8, !tbaa !9
  %4622 = getelementptr inbounds double, ptr %4620, i64 %4621
  store double %4619, ptr %4622, align 8, !tbaa !11
  br label %4623

4623:                                             ; preds = %4613
  %4624 = load i64, ptr %44, align 8, !tbaa !9
  %4625 = add nsw i64 %4624, 1
  store i64 %4625, ptr %44, align 8, !tbaa !9
  br label %4609, !llvm.loop !35

4626:                                             ; preds = %4609
  store double 1.000000e+00, ptr %70, align 8, !tbaa !11
  br label %4627

4627:                                             ; preds = %4626, %4597, %4594
  %4628 = load double, ptr %70, align 8, !tbaa !11
  %4629 = load ptr, ptr %27, align 8, !tbaa !5
  %4630 = getelementptr inbounds double, ptr %4629, i64 1
  store double %4628, ptr %4630, align 8, !tbaa !11
  %4631 = load i64, ptr %48, align 8, !tbaa !9
  %4632 = sitofp i64 %4631 to double
  %4633 = load ptr, ptr %27, align 8, !tbaa !5
  %4634 = getelementptr inbounds double, ptr %4633, i64 2
  store double %4632, ptr %4634, align 8, !tbaa !11
  %4635 = load i64, ptr %47, align 8, !tbaa !9
  %4636 = sitofp i64 %4635 to double
  %4637 = load ptr, ptr %27, align 8, !tbaa !5
  %4638 = getelementptr inbounds double, ptr %4637, i64 3
  store double %4636, ptr %4638, align 8, !tbaa !11
  %4639 = load i64, ptr %43, align 8, !tbaa !9
  %4640 = sitofp i64 %4639 to double
  %4641 = load ptr, ptr %27, align 8, !tbaa !5
  %4642 = getelementptr inbounds double, ptr %4641, i64 4
  store double %4640, ptr %4642, align 8, !tbaa !11
  %4643 = load double, ptr %88, align 8, !tbaa !11
  %4644 = load ptr, ptr %27, align 8, !tbaa !5
  %4645 = getelementptr inbounds double, ptr %4644, i64 5
  store double %4643, ptr %4645, align 8, !tbaa !11
  %4646 = load double, ptr %90, align 8, !tbaa !11
  %4647 = load ptr, ptr %27, align 8, !tbaa !5
  %4648 = getelementptr inbounds double, ptr %4647, i64 6
  store double %4646, ptr %4648, align 8, !tbaa !11
  store i32 0, ptr %15, align 4
  store i32 1, ptr %102, align 4
  br label %4649

4649:                                             ; preds = %4627, %739, %693, %568, %490, %410, %340, %278, %265
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  %4650 = load i32, ptr %15, align 4
  ret i32 %4650
}

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

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

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

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

declare double @dlamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare i32 @f2c_drotm(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.fmuladd.f64(double, double, double) #4

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

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

declare i32 @f2c_dscal(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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !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}


; 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 [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@c_b17 = external hidden global double, align 8
@c_b18 = external hidden global double, align 8
@c__1 = external hidden global i64, align 8
@c__0 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8

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

51:                                               ; preds = %14
  %52 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #7
  %.not = icmp eq i64 %52, 0
  br i1 %.not, label %91, label %53

53:                                               ; preds = %51, %14
  %54 = icmp ne i64 %43, 0
  %55 = icmp ne i64 %44, 0
  %or.cond3 = select i1 %54, i1 true, i1 %55
  br i1 %or.cond3, label %58, label %56

56:                                               ; preds = %53
  %57 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #7
  %.not1578 = icmp eq i64 %57, 0
  br i1 %.not1578, label %91, label %58

58:                                               ; preds = %56, %53
  %59 = icmp ne i64 %45, 0
  %60 = icmp ne i64 %46, 0
  %or.cond5 = select i1 %59, i1 true, i1 %60
  br i1 %or.cond5, label %63, label %61

61:                                               ; preds = %58
  %62 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.6) #7
  %.not1579 = icmp eq i64 %62, 0
  br i1 %.not1579, label %91, label %63

63:                                               ; preds = %61, %58
  %64 = load i64, ptr %3, align 8, !tbaa !5
  %65 = icmp slt i64 %64, 0
  br i1 %65, label %91, label %66

66:                                               ; preds = %63
  %67 = load i64, ptr %4, align 8, !tbaa !5
  %or.cond1641 = icmp ugt i64 %67, %64
  br i1 %or.cond1641, label %91, label %68

68:                                               ; preds = %66
  %69 = load i64, ptr %6, align 8, !tbaa !5
  %70 = icmp slt i64 %69, %64
  br i1 %70, label %91, label %71

71:                                               ; preds = %68
  %72 = load i64, ptr %8, align 8, !tbaa !5
  %73 = icmp slt i64 %72, 0
  br i1 %73, label %91, label %74

74:                                               ; preds = %71
  br i1 %59, label %75, label %78

75:                                               ; preds = %74
  %76 = load i64, ptr %10, align 8, !tbaa !5
  %77 = icmp slt i64 %76, %67
  br i1 %77, label %91, label %78

78:                                               ; preds = %75, %74
  br i1 %60, label %79, label %82

79:                                               ; preds = %78
  %80 = load i64, ptr %10, align 8, !tbaa !5
  %81 = icmp slt i64 %80, %72
  br i1 %81, label %91, label %82

82:                                               ; preds = %79, %78
  br i1 %55, label %83, label %86

83:                                               ; preds = %82
  %84 = load double, ptr %11, align 8, !tbaa !9
  %85 = fcmp ugt double %84, 1.000000e+00
  br i1 %85, label %86, label %91

86:                                               ; preds = %83, %82
  %87 = add nuw nsw i64 %67, %64
  store i64 %87, ptr %15, align 8, !tbaa !5
  %88 = load i64, ptr %12, align 8, !tbaa !5
  %89 = tail call i64 @llvm.umax.i64(i64 %87, i64 6)
  %90 = icmp slt i64 %88, %89
  br i1 %90, label %91, label %93

91:                                               ; preds = %86, %83, %75, %79, %71, %68, %66, %63, %61, %56, %51
  %.sink2170 = phi i64 [ -1, %51 ], [ -2, %56 ], [ -3, %61 ], [ -4, %63 ], [ -5, %66 ], [ -7, %68 ], [ -9, %71 ], [ -11, %79 ], [ -11, %75 ], [ -12, %83 ], [ -13, %86 ]
  %.ph.neg = phi i64 [ 1, %51 ], [ 2, %56 ], [ 3, %61 ], [ 4, %63 ], [ 5, %66 ], [ 7, %68 ], [ 9, %71 ], [ 11, %79 ], [ 11, %75 ], [ 12, %83 ], [ 13, %86 ]
  store i64 %.sink2170, ptr %13, align 8, !tbaa !5
  store i64 %.ph.neg, ptr %15, align 8, !tbaa !5
  %92 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15) #7
  br label %1770

93:                                               ; preds = %86
  store i64 0, ptr %13, align 8, !tbaa !5
  %94 = load i64, ptr %3, align 8, !tbaa !5
  %95 = icmp eq i64 %94, 0
  br i1 %95, label %1770, label %96

96:                                               ; preds = %93
  %97 = load i64, ptr %4, align 8, !tbaa !5
  %98 = icmp eq i64 %97, 0
  br i1 %98, label %1770, label %99

99:                                               ; preds = %96
  %.not1603 = icmp eq i64 %44, 0
  br i1 %.not1603, label %102, label %100

100:                                              ; preds = %99
  %101 = load double, ptr %11, align 8, !tbaa !9
  br label %107

102:                                              ; preds = %99
  %103 = or i64 %43, %45
  %or.cond7 = icmp ne i64 %103, 0
  %or.cond9 = select i1 %or.cond7, i1 true, i1 %60
  %104 = sitofp i64 %94 to double
  br i1 %or.cond9, label %105, label %107

105:                                              ; preds = %102
  %106 = tail call double @sqrt(double noundef %104) #7
  br label %107

107:                                              ; preds = %102, %105, %100
  %.01511 = phi double [ %101, %100 ], [ %106, %105 ], [ %104, %102 ]
  %108 = tail call double @dlamch_(ptr noundef nonnull @.str.8) #7
  store double %108, ptr %34, align 8, !tbaa !9
  %109 = tail call double @sqrt(double noundef %108) #7
  %110 = tail call double @dlamch_(ptr noundef nonnull @.str.9) #7
  store double %110, ptr %32, align 8, !tbaa !9
  %111 = tail call double @sqrt(double noundef %110) #7
  %112 = fdiv double %110, %108
  %113 = tail call double @dlamch_(ptr noundef nonnull @.str.10) #7
  %114 = fdiv double 1.000000e+00, %111
  %115 = load i64, ptr %3, align 8, !tbaa !5
  %116 = load i64, ptr %4, align 8, !tbaa !5
  %117 = mul nsw i64 %116, %115
  %118 = icmp slt i64 %117, 0
  br i1 %118, label %cdce.call, label %cdce.end, !prof !11

cdce.call:                                        ; preds = %107
  %119 = sitofp i64 %117 to double
  %120 = tail call double @sqrt(double noundef %119) #7
  br label %cdce.end

cdce.end:                                         ; preds = %107, %cdce.call
  %121 = fdiv double 1.000000e+00, %109
  %122 = fmul double %.01511, %108
  store double %122, ptr %24, align 8, !tbaa !9
  %123 = tail call double @sqrt(double noundef %122) #7
  %124 = load i64, ptr %3, align 8, !tbaa !5
  %125 = sitofp i64 %124 to double
  %126 = fmul double %108, %125
  %127 = fcmp ult double %126, 1.000000e+00
  br i1 %127, label %130, label %128

128:                                              ; preds = %cdce.end
  store i64 -5, ptr %13, align 8, !tbaa !5
  store i64 5, ptr %15, align 8, !tbaa !5
  %129 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15) #7
  br label %1770

130:                                              ; preds = %cdce.end
  br i1 %59, label %131, label %134

131:                                              ; preds = %130
  %132 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %132, ptr %25, align 8, !tbaa !5
  %133 = call i32 @dlaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %25, ptr noundef nonnull %4, ptr noundef nonnull @c_b17, ptr noundef nonnull @c_b18, ptr noundef %9, ptr noundef nonnull %10) #7
  %.pre = load i64, ptr %3, align 8, !tbaa !5
  %.pre2143 = sitofp i64 %.pre to double
  br label %137

134:                                              ; preds = %130
  %.not1581 = icmp eq i64 %46, 0
  br i1 %.not1581, label %137, label %135

135:                                              ; preds = %134
  %136 = load i64, ptr %8, align 8, !tbaa !5
  store i64 %136, ptr %25, align 8, !tbaa !5
  br label %137

137:                                              ; preds = %134, %135, %131
  %.pre-phi = phi double [ %125, %134 ], [ %125, %135 ], [ %.pre2143, %131 ]
  %138 = load i64, ptr %4, align 8, !tbaa !5
  %139 = sitofp i64 %138 to double
  %140 = fmul double %.pre-phi, %139
  %141 = call double @sqrt(double noundef %140) #7
  %142 = fdiv double 1.000000e+00, %141
  store double %142, ptr %31, align 8, !tbaa !9
  %143 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %143, ptr %15, align 8, !tbaa !5
  br i1 %50, label %144, label %188

144:                                              ; preds = %137
  store i64 1, ptr %20, align 8, !tbaa !5
  %.not15901742 = icmp slt i64 %143, 1
  br i1 %.not15901742, label %.loopexit1687.thread, label %.lr.ph1746

.lr.ph1746:                                       ; preds = %144
  %145 = add i64 %36, 1
  br label %146

146:                                              ; preds = %.lr.ph1746, %.loopexit1686
  %.014201745 = phi i64 [ 1, %.lr.ph1746 ], [ %.1, %.loopexit1686 ]
  %.014211744 = phi i64 [ 1, %.lr.ph1746 ], [ %.11422, %.loopexit1686 ]
  %storemerge15891743 = phi i64 [ 1, %.lr.ph1746 ], [ %186, %.loopexit1686 ]
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  store double 0.000000e+00, ptr %28, align 8, !tbaa !9
  %147 = load i64, ptr %3, align 8, !tbaa !5
  %reass.sub = sub i64 %147, %storemerge15891743
  %148 = add i64 %reass.sub, 1
  store i64 %148, ptr %16, align 8, !tbaa !5
  %149 = mul i64 %storemerge15891743, %145
  %150 = getelementptr inbounds double, ptr %38, i64 %149
  %151 = call i32 @dlassq_(ptr noundef nonnull %16, ptr noundef %150, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %28) #7
  %152 = load double, ptr %26, align 8, !tbaa !9
  %153 = fcmp ogt double %152, %113
  br i1 %153, label %154, label %156

154:                                              ; preds = %146
  store i64 -6, ptr %13, align 8, !tbaa !5
  store i64 6, ptr %16, align 8, !tbaa !5
  %155 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %16) #7
  br label %1770

156:                                              ; preds = %146
  %157 = load double, ptr %28, align 8, !tbaa !9
  %158 = call double @sqrt(double noundef %157) #7
  store double %158, ptr %28, align 8, !tbaa !9
  %159 = load double, ptr %26, align 8, !tbaa !9
  %160 = fdiv double %113, %158
  %161 = fcmp olt double %159, %160
  %162 = icmp ne i64 %.014201745, 0
  %or.cond11 = and i1 %162, %161
  br i1 %or.cond11, label %163, label %167

163:                                              ; preds = %156
  %164 = fmul double %158, %159
  %165 = load i64, ptr %20, align 8, !tbaa !5
  %166 = getelementptr inbounds double, ptr %35, i64 %165
  store double %164, ptr %166, align 8, !tbaa !9
  br label %.loopexit1686

167:                                              ; preds = %156
  %168 = load double, ptr %31, align 8, !tbaa !9
  %169 = fmul double %158, %168
  %170 = fmul double %159, %169
  %171 = load i64, ptr %20, align 8, !tbaa !5
  %172 = getelementptr inbounds double, ptr %35, i64 %171
  store double %170, ptr %172, align 8, !tbaa !9
  %.not1639 = icmp eq i64 %.014211744, 0
  br i1 %.not1639, label %.loopexit1686, label %173

173:                                              ; preds = %167
  %174 = add nsw i64 %171, -1
  store i64 %174, ptr %16, align 8, !tbaa !5
  %.not1640.not1739 = icmp sgt i64 %171, 1
  br i1 %.not1640.not1739, label %.lr.ph1741.preheader, label %.loopexit1686

.lr.ph1741.preheader:                             ; preds = %173
  %175 = add nsw i64 %171, -1
  %min.iters.check2245 = icmp ult i64 %171, 5
  br i1 %min.iters.check2245, label %.lr.ph1741.preheader2328, label %vector.ph2246

vector.ph2246:                                    ; preds = %.lr.ph1741.preheader
  %n.vec2248 = and i64 %175, -4
  %ind.end2249 = or disjoint i64 %n.vec2248, 1
  %broadcast.splatinsert2256 = insertelement <2 x double> poison, double %168, i64 0
  %broadcast.splat2257 = shufflevector <2 x double> %broadcast.splatinsert2256, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2251

vector.body2251:                                  ; preds = %vector.body2251, %vector.ph2246
  %index2252 = phi i64 [ 0, %vector.ph2246 ], [ %index.next2258, %vector.body2251 ]
  %176 = getelementptr double, ptr %7, i64 %index2252
  %177 = getelementptr inbounds i8, ptr %176, i64 16
  %wide.load2254 = load <2 x double>, ptr %176, align 8, !tbaa !9
  %wide.load2255 = load <2 x double>, ptr %177, align 8, !tbaa !9
  %178 = fmul <2 x double> %broadcast.splat2257, %wide.load2254
  %179 = fmul <2 x double> %broadcast.splat2257, %wide.load2255
  store <2 x double> %178, ptr %176, align 8, !tbaa !9
  store <2 x double> %179, ptr %177, align 8, !tbaa !9
  %index.next2258 = add nuw i64 %index2252, 4
  %180 = icmp eq i64 %index.next2258, %n.vec2248
  br i1 %180, label %middle.block2243, label %vector.body2251, !llvm.loop !12

middle.block2243:                                 ; preds = %vector.body2251
  %cmp.n2259 = icmp eq i64 %175, %n.vec2248
  br i1 %cmp.n2259, label %.loopexit1686, label %.lr.ph1741.preheader2328

.lr.ph1741.preheader2328:                         ; preds = %middle.block2243, %.lr.ph1741.preheader
  %.015011740.ph = phi i64 [ 1, %.lr.ph1741.preheader ], [ %ind.end2249, %middle.block2243 ]
  br label %.lr.ph1741

.lr.ph1741:                                       ; preds = %.lr.ph1741.preheader2328, %.lr.ph1741
  %.015011740 = phi i64 [ %184, %.lr.ph1741 ], [ %.015011740.ph, %.lr.ph1741.preheader2328 ]
  %181 = getelementptr inbounds double, ptr %35, i64 %.015011740
  %182 = load double, ptr %181, align 8, !tbaa !9
  %183 = fmul double %168, %182
  store double %183, ptr %181, align 8, !tbaa !9
  %184 = add nuw nsw i64 %.015011740, 1
  %exitcond2122.not = icmp eq i64 %184, %171
  br i1 %exitcond2122.not, label %.loopexit1686, label %.lr.ph1741, !llvm.loop !16

.loopexit1686:                                    ; preds = %.lr.ph1741, %middle.block2243, %173, %163, %167
  %185 = phi i64 [ %165, %163 ], [ %171, %167 ], [ %171, %173 ], [ %171, %middle.block2243 ], [ %171, %.lr.ph1741 ]
  %.11422 = phi i64 [ %.014211744, %163 ], [ 0, %167 ], [ 0, %173 ], [ 0, %middle.block2243 ], [ 0, %.lr.ph1741 ]
  %.1 = phi i64 [ 1, %163 ], [ 0, %167 ], [ 0, %173 ], [ 0, %middle.block2243 ], [ 0, %.lr.ph1741 ]
  %186 = add nsw i64 %185, 1
  store i64 %186, ptr %20, align 8, !tbaa !5
  %187 = load i64, ptr %15, align 8, !tbaa !5
  %.not1590.not = icmp slt i64 %185, %187
  br i1 %.not1590.not, label %146, label %.loopexit1687, !llvm.loop !17

188:                                              ; preds = %137
  %invariant.gep1731 = getelementptr i8, ptr %38, i64 8
  store i64 1, ptr %20, align 8, !tbaa !5
  %.not15861733 = icmp slt i64 %143, 1
  br i1 %49, label %189, label %228

189:                                              ; preds = %188
  br i1 %.not15861733, label %.loopexit1687.thread, label %.lr.ph1737

.lr.ph1737:                                       ; preds = %189, %.loopexit1688
  %.21736 = phi i64 [ %.3, %.loopexit1688 ], [ 1, %189 ]
  %.214231735 = phi i64 [ %.31424, %.loopexit1688 ], [ 1, %189 ]
  %storemerge15851734 = phi i64 [ %226, %.loopexit1688 ], [ 1, %189 ]
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  store double 0.000000e+00, ptr %28, align 8, !tbaa !9
  %190 = mul nsw i64 %storemerge15851734, %36
  %gep1732 = getelementptr double, ptr %invariant.gep1731, i64 %190
  %191 = call i32 @dlassq_(ptr noundef nonnull %20, ptr noundef %gep1732, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %28) #7
  %192 = load double, ptr %26, align 8, !tbaa !9
  %193 = fcmp ogt double %192, %113
  br i1 %193, label %194, label %196

194:                                              ; preds = %.lr.ph1737
  store i64 -6, ptr %13, align 8, !tbaa !5
  store i64 6, ptr %16, align 8, !tbaa !5
  %195 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %16) #7
  br label %1770

196:                                              ; preds = %.lr.ph1737
  %197 = load double, ptr %28, align 8, !tbaa !9
  %198 = call double @sqrt(double noundef %197) #7
  store double %198, ptr %28, align 8, !tbaa !9
  %199 = load double, ptr %26, align 8, !tbaa !9
  %200 = fdiv double %113, %198
  %201 = fcmp olt double %199, %200
  %202 = icmp ne i64 %.21736, 0
  %or.cond13 = and i1 %202, %201
  br i1 %or.cond13, label %203, label %207

203:                                              ; preds = %196
  %204 = fmul double %198, %199
  %205 = load i64, ptr %20, align 8, !tbaa !5
  %206 = getelementptr inbounds double, ptr %35, i64 %205
  store double %204, ptr %206, align 8, !tbaa !9
  br label %.loopexit1688

207:                                              ; preds = %196
  %208 = load double, ptr %31, align 8, !tbaa !9
  %209 = fmul double %198, %208
  %210 = fmul double %199, %209
  %211 = load i64, ptr %20, align 8, !tbaa !5
  %212 = getelementptr inbounds double, ptr %35, i64 %211
  store double %210, ptr %212, align 8, !tbaa !9
  %.not1587 = icmp eq i64 %.214231735, 0
  br i1 %.not1587, label %.loopexit1688, label %213

213:                                              ; preds = %207
  %214 = add nsw i64 %211, -1
  store i64 %214, ptr %16, align 8, !tbaa !5
  %.not1588.not1728 = icmp sgt i64 %211, 1
  br i1 %.not1588.not1728, label %.lr.ph1730.preheader, label %.loopexit1688

.lr.ph1730.preheader:                             ; preds = %213
  %215 = add nsw i64 %211, -1
  %min.iters.check2228 = icmp ult i64 %211, 5
  br i1 %min.iters.check2228, label %.lr.ph1730.preheader2329, label %vector.ph2229

vector.ph2229:                                    ; preds = %.lr.ph1730.preheader
  %n.vec2231 = and i64 %215, -4
  %ind.end2232 = or disjoint i64 %n.vec2231, 1
  %broadcast.splatinsert2239 = insertelement <2 x double> poison, double %208, i64 0
  %broadcast.splat2240 = shufflevector <2 x double> %broadcast.splatinsert2239, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2234

vector.body2234:                                  ; preds = %vector.body2234, %vector.ph2229
  %index2235 = phi i64 [ 0, %vector.ph2229 ], [ %index.next2241, %vector.body2234 ]
  %216 = getelementptr double, ptr %7, i64 %index2235
  %217 = getelementptr inbounds i8, ptr %216, i64 16
  %wide.load2237 = load <2 x double>, ptr %216, align 8, !tbaa !9
  %wide.load2238 = load <2 x double>, ptr %217, align 8, !tbaa !9
  %218 = fmul <2 x double> %broadcast.splat2240, %wide.load2237
  %219 = fmul <2 x double> %broadcast.splat2240, %wide.load2238
  store <2 x double> %218, ptr %216, align 8, !tbaa !9
  store <2 x double> %219, ptr %217, align 8, !tbaa !9
  %index.next2241 = add nuw i64 %index2235, 4
  %220 = icmp eq i64 %index.next2241, %n.vec2231
  br i1 %220, label %middle.block2226, label %vector.body2234, !llvm.loop !18

middle.block2226:                                 ; preds = %vector.body2234
  %cmp.n2242 = icmp eq i64 %215, %n.vec2231
  br i1 %cmp.n2242, label %.loopexit1688, label %.lr.ph1730.preheader2329

.lr.ph1730.preheader2329:                         ; preds = %middle.block2226, %.lr.ph1730.preheader
  %.115021729.ph = phi i64 [ 1, %.lr.ph1730.preheader ], [ %ind.end2232, %middle.block2226 ]
  br label %.lr.ph1730

.lr.ph1730:                                       ; preds = %.lr.ph1730.preheader2329, %.lr.ph1730
  %.115021729 = phi i64 [ %224, %.lr.ph1730 ], [ %.115021729.ph, %.lr.ph1730.preheader2329 ]
  %221 = getelementptr inbounds double, ptr %35, i64 %.115021729
  %222 = load double, ptr %221, align 8, !tbaa !9
  %223 = fmul double %208, %222
  store double %223, ptr %221, align 8, !tbaa !9
  %224 = add nuw nsw i64 %.115021729, 1
  %exitcond2121.not = icmp eq i64 %224, %211
  br i1 %exitcond2121.not, label %.loopexit1688, label %.lr.ph1730, !llvm.loop !19

.loopexit1688:                                    ; preds = %.lr.ph1730, %middle.block2226, %213, %203, %207
  %225 = phi i64 [ %205, %203 ], [ %211, %207 ], [ %211, %213 ], [ %211, %middle.block2226 ], [ %211, %.lr.ph1730 ]
  %.31424 = phi i64 [ %.214231735, %203 ], [ 0, %207 ], [ 0, %213 ], [ 0, %middle.block2226 ], [ 0, %.lr.ph1730 ]
  %.3 = phi i64 [ 1, %203 ], [ 0, %207 ], [ 0, %213 ], [ 0, %middle.block2226 ], [ 0, %.lr.ph1730 ]
  %226 = add nsw i64 %225, 1
  store i64 %226, ptr %20, align 8, !tbaa !5
  %227 = load i64, ptr %15, align 8, !tbaa !5
  %.not1586.not = icmp slt i64 %225, %227
  br i1 %.not1586.not, label %.lr.ph1737, label %.loopexit1687, !llvm.loop !20

228:                                              ; preds = %188
  br i1 %.not15861733, label %.loopexit1687.thread, label %.lr.ph1727

.lr.ph1727:                                       ; preds = %228, %.loopexit1690
  %.41726 = phi i64 [ %.5, %.loopexit1690 ], [ 1, %228 ]
  %.414251725 = phi i64 [ %.51426, %.loopexit1690 ], [ 1, %228 ]
  %storemerge1724 = phi i64 [ %265, %.loopexit1690 ], [ 1, %228 ]
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  store double 0.000000e+00, ptr %28, align 8, !tbaa !9
  %229 = mul nsw i64 %storemerge1724, %36
  %gep = getelementptr double, ptr %invariant.gep1731, i64 %229
  %230 = call i32 @dlassq_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %28) #7
  %231 = load double, ptr %26, align 8, !tbaa !9
  %232 = fcmp ogt double %231, %113
  br i1 %232, label %233, label %235

233:                                              ; preds = %.lr.ph1727
  store i64 -6, ptr %13, align 8, !tbaa !5
  store i64 6, ptr %16, align 8, !tbaa !5
  %234 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %16) #7
  br label %1770

235:                                              ; preds = %.lr.ph1727
  %236 = load double, ptr %28, align 8, !tbaa !9
  %237 = call double @sqrt(double noundef %236) #7
  store double %237, ptr %28, align 8, !tbaa !9
  %238 = load double, ptr %26, align 8, !tbaa !9
  %239 = fdiv double %113, %237
  %240 = fcmp olt double %238, %239
  %241 = icmp ne i64 %.41726, 0
  %or.cond15 = and i1 %241, %240
  br i1 %or.cond15, label %242, label %246

242:                                              ; preds = %235
  %243 = fmul double %237, %238
  %244 = load i64, ptr %20, align 8, !tbaa !5
  %245 = getelementptr inbounds double, ptr %35, i64 %244
  store double %243, ptr %245, align 8, !tbaa !9
  br label %.loopexit1690

246:                                              ; preds = %235
  %247 = load double, ptr %31, align 8, !tbaa !9
  %248 = fmul double %237, %247
  %249 = fmul double %238, %248
  %250 = load i64, ptr %20, align 8, !tbaa !5
  %251 = getelementptr inbounds double, ptr %35, i64 %250
  store double %249, ptr %251, align 8, !tbaa !9
  %.not1583 = icmp eq i64 %.414251725, 0
  br i1 %.not1583, label %.loopexit1690, label %252

252:                                              ; preds = %246
  %253 = add nsw i64 %250, -1
  store i64 %253, ptr %16, align 8, !tbaa !5
  %.not1584.not1721 = icmp sgt i64 %250, 1
  br i1 %.not1584.not1721, label %.lr.ph.preheader, label %.loopexit1690

.lr.ph.preheader:                                 ; preds = %252
  %254 = add nsw i64 %250, -1
  %min.iters.check = icmp ult i64 %250, 5
  br i1 %min.iters.check, label %.lr.ph.preheader2331, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %254, -4
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <2 x double> poison, double %247, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %255 = getelementptr double, ptr %7, i64 %index
  %256 = getelementptr inbounds i8, ptr %255, i64 16
  %wide.load = load <2 x double>, ptr %255, align 8, !tbaa !9
  %wide.load2225 = load <2 x double>, ptr %256, align 8, !tbaa !9
  %257 = fmul <2 x double> %broadcast.splat, %wide.load
  %258 = fmul <2 x double> %broadcast.splat, %wide.load2225
  store <2 x double> %257, ptr %255, align 8, !tbaa !9
  store <2 x double> %258, ptr %256, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %259 = icmp eq i64 %index.next, %n.vec
  br i1 %259, label %middle.block, label %vector.body, !llvm.loop !21

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %254, %n.vec
  br i1 %cmp.n, label %.loopexit1690, label %.lr.ph.preheader2331

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

.lr.ph:                                           ; preds = %.lr.ph.preheader2331, %.lr.ph
  %.215031722 = phi i64 [ %263, %.lr.ph ], [ %.215031722.ph, %.lr.ph.preheader2331 ]
  %260 = getelementptr inbounds double, ptr %35, i64 %.215031722
  %261 = load double, ptr %260, align 8, !tbaa !9
  %262 = fmul double %247, %261
  store double %262, ptr %260, align 8, !tbaa !9
  %263 = add nuw nsw i64 %.215031722, 1
  %exitcond.not = icmp eq i64 %263, %250
  br i1 %exitcond.not, label %.loopexit1690, label %.lr.ph, !llvm.loop !22

.loopexit1690:                                    ; preds = %.lr.ph, %middle.block, %252, %242, %246
  %264 = phi i64 [ %244, %242 ], [ %250, %246 ], [ %250, %252 ], [ %250, %middle.block ], [ %250, %.lr.ph ]
  %.51426 = phi i64 [ %.414251725, %242 ], [ 0, %246 ], [ 0, %252 ], [ 0, %middle.block ], [ 0, %.lr.ph ]
  %.5 = phi i64 [ 1, %242 ], [ 0, %246 ], [ 0, %252 ], [ 0, %middle.block ], [ 0, %.lr.ph ]
  %265 = add nsw i64 %264, 1
  store i64 %265, ptr %20, align 8, !tbaa !5
  %266 = load i64, ptr %15, align 8, !tbaa !5
  %.not1582.not = icmp slt i64 %264, %266
  br i1 %.not1582.not, label %.lr.ph1727, label %.loopexit1687, !llvm.loop !23

.loopexit1687:                                    ; preds = %.loopexit1690, %.loopexit1688, %.loopexit1686
  %.6 = phi i64 [ %.1, %.loopexit1686 ], [ %.3, %.loopexit1688 ], [ %.5, %.loopexit1690 ]
  %.not1591 = icmp eq i64 %.6, 0
  br i1 %.not1591, label %267, label %.loopexit1687.thread

.loopexit1687.thread:                             ; preds = %228, %189, %144, %.loopexit1687
  store double 1.000000e+00, ptr %31, align 8, !tbaa !9
  br label %267

267:                                              ; preds = %.loopexit1687.thread, %.loopexit1687
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  store double %113, ptr %28, align 8, !tbaa !9
  %268 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %268, ptr %15, align 8, !tbaa !5
  %.not15931749 = icmp slt i64 %268, 1
  br i1 %.not15931749, label %.thread, label %.lr.ph1751.preheader

.thread:                                          ; preds = %267
  store i64 1, ptr %20, align 8, !tbaa !5
  br label %285

.lr.ph1751.preheader:                             ; preds = %267
  %269 = add nuw i64 %268, 1
  br label %.lr.ph1751

.lr.ph1751:                                       ; preds = %.lr.ph1751.preheader, %278
  %storemerge15921750 = phi i64 [ %282, %278 ], [ 1, %.lr.ph1751.preheader ]
  %270 = phi double [ %279, %278 ], [ %113, %.lr.ph1751.preheader ]
  %271 = phi double [ %281, %278 ], [ 0.000000e+00, %.lr.ph1751.preheader ]
  %272 = getelementptr inbounds double, ptr %35, i64 %storemerge15921750
  %273 = load double, ptr %272, align 8, !tbaa !9
  %274 = fcmp une double %273, 0.000000e+00
  br i1 %274, label %275, label %278

275:                                              ; preds = %.lr.ph1751
  %276 = fcmp ole double %270, %273
  %277 = select i1 %276, double %270, double %273
  store double %277, ptr %28, align 8, !tbaa !9
  br label %278

278:                                              ; preds = %275, %.lr.ph1751
  %279 = phi double [ %277, %275 ], [ %270, %.lr.ph1751 ]
  %280 = fcmp oge double %271, %273
  %281 = select i1 %280, double %271, double %273
  %282 = add nuw i64 %storemerge15921750, 1
  %exitcond2123.not = icmp eq i64 %storemerge15921750, %268
  br i1 %exitcond2123.not, label %283, label %.lr.ph1751, !llvm.loop !24

283:                                              ; preds = %278
  store double %271, ptr %19, align 8, !tbaa !9
  store double %281, ptr %26, align 8, !tbaa !9
  store i64 %269, ptr %20, align 8, !tbaa !5
  %284 = fcmp oeq double %281, 0.000000e+00
  br i1 %284, label %285, label %290

285:                                              ; preds = %.thread, %283
  %.not1638 = icmp eq i64 %43, 0
  br i1 %.not1638, label %288, label %286

286:                                              ; preds = %285
  %287 = call i32 @dlaset_(ptr noundef nonnull @.str.5, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_b17, ptr noundef nonnull @c_b18, ptr noundef %5, ptr noundef nonnull %6) #7
  br label %288

288:                                              ; preds = %286, %285
  store double 1.000000e+00, ptr %11, align 8, !tbaa !9
  %289 = getelementptr inbounds i8, ptr %11, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %289, i8 0, i64 40, i1 false)
  br label %1770

290:                                              ; preds = %283
  %291 = icmp eq i64 %268, 1
  br i1 %291, label %292, label %303

292:                                              ; preds = %290
  %.not1637 = icmp eq i64 %43, 0
  br i1 %.not1637, label %295, label %293

293:                                              ; preds = %292
  %294 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %7, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  br label %295

295:                                              ; preds = %293, %292
  %296 = load double, ptr %31, align 8, !tbaa !9
  %297 = fdiv double 1.000000e+00, %296
  store double %297, ptr %11, align 8, !tbaa !9
  %298 = load double, ptr %7, align 8, !tbaa !9
  %299 = load double, ptr %32, align 8, !tbaa !9
  %300 = fcmp ult double %298, %299
  %.sink = select i1 %300, double 0.000000e+00, double 1.000000e+00
  %301 = getelementptr inbounds i8, ptr %11, i64 8
  store double %.sink, ptr %301, align 8
  %302 = getelementptr inbounds i8, ptr %11, i64 16
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %302, i8 0, i64 32, i1 false)
  br label %1770

303:                                              ; preds = %290
  %304 = load double, ptr %32, align 8, !tbaa !9
  %305 = load double, ptr %34, align 8, !tbaa !9
  %306 = fdiv double %304, %305
  %307 = call double @sqrt(double noundef %306) #7
  %308 = load i64, ptr %4, align 8, !tbaa !5
  %309 = sitofp i64 %308 to double
  %310 = fdiv double %113, %309
  %311 = call double @sqrt(double noundef %310) #7
  %312 = load double, ptr %26, align 8, !tbaa !9
  %313 = fcmp ugt double %312, %307
  br i1 %313, label %314, label %320

314:                                              ; preds = %303
  %315 = load double, ptr %28, align 8, !tbaa !9
  %316 = fcmp ult double %315, %311
  br i1 %316, label %317, label %320

317:                                              ; preds = %314
  %318 = fcmp ugt double %307, %315
  %319 = fcmp ugt double %312, %311
  %or.cond1642 = select i1 %318, i1 true, i1 %319
  br i1 %or.cond1642, label %324, label %320

320:                                              ; preds = %317, %314, %303
  store double %113, ptr %19, align 8, !tbaa !9
  %321 = fdiv double %311, %312
  %322 = fcmp ole double %113, %321
  %323 = select i1 %322, double %113, double %321
  store double %323, ptr %30, align 8, !tbaa !9
  br label %360

324:                                              ; preds = %317
  %325 = fcmp ugt double %315, %307
  %brmerge = select i1 %325, i1 true, i1 %319
  br i1 %brmerge, label %336, label %326

326:                                              ; preds = %324
  %327 = fdiv double %307, %315
  store double %327, ptr %19, align 8, !tbaa !9
  %328 = load i64, ptr %4, align 8, !tbaa !5
  %329 = sitofp i64 %328 to double
  %330 = call double @sqrt(double noundef %329) #7
  %331 = fmul double %312, %330
  %332 = fdiv double %113, %331
  %333 = load double, ptr %19, align 8
  %334 = fcmp ole double %333, %332
  %335 = select i1 %334, double %333, double %332
  store double %335, ptr %30, align 8, !tbaa !9
  br label %360

336:                                              ; preds = %324
  %337 = fcmp ult double %312, %311
  %or.cond1663 = select i1 %318, i1 true, i1 %337
  br i1 %or.cond1663, label %348, label %338

338:                                              ; preds = %336
  %339 = insertelement <2 x double> poison, double %307, i64 0
  %340 = insertelement <2 x double> %339, double %311, i64 1
  %341 = insertelement <2 x double> poison, double %315, i64 0
  %342 = insertelement <2 x double> %341, double %312, i64 1
  %343 = fdiv <2 x double> %340, %342
  %344 = extractelement <2 x double> %343, i64 0
  store double %344, ptr %19, align 8, !tbaa !9
  %345 = extractelement <2 x double> %343, i64 1
  %346 = fcmp oge double %344, %345
  %347 = select i1 %346, double %344, double %345
  store double %347, ptr %30, align 8, !tbaa !9
  br label %360

348:                                              ; preds = %336
  %or.cond1664 = select i1 %325, i1 true, i1 %337
  br i1 %or.cond1664, label %.thread1662, label %349

349:                                              ; preds = %348
  %350 = fdiv double %307, %315
  store double %350, ptr %19, align 8, !tbaa !9
  %351 = load i64, ptr %4, align 8, !tbaa !5
  %352 = sitofp i64 %351 to double
  %353 = call double @sqrt(double noundef %352) #7
  %354 = load double, ptr %26, align 8, !tbaa !9
  %355 = fmul double %353, %354
  %356 = fdiv double %113, %355
  %357 = load double, ptr %19, align 8
  %358 = fcmp ole double %357, %356
  %359 = select i1 %358, double %357, double %356
  store double %359, ptr %30, align 8, !tbaa !9
  br label %360

.thread1662:                                      ; preds = %348
  store double 1.000000e+00, ptr %30, align 8, !tbaa !9
  br label %365

360:                                              ; preds = %326, %349, %338, %320
  %361 = phi double [ %335, %326 ], [ %359, %349 ], [ %347, %338 ], [ %323, %320 ]
  %362 = fcmp une double %361, 1.000000e+00
  br i1 %362, label %363, label %365

363:                                              ; preds = %360
  %364 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %30, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull %4, ptr noundef nonnull %29) #7
  %.pre2127 = load double, ptr %30, align 8, !tbaa !9
  br label %365

365:                                              ; preds = %.thread1662, %363, %360
  %366 = phi double [ 1.000000e+00, %.thread1662 ], [ %.pre2127, %363 ], [ 1.000000e+00, %360 ]
  %367 = load double, ptr %31, align 8, !tbaa !9
  %368 = fmul double %366, %367
  store double %368, ptr %31, align 8, !tbaa !9
  %369 = fcmp une double %368, 1.000000e+00
  br i1 %369, label %370, label %374

370:                                              ; preds = %365
  %371 = call i32 @dlascl_(ptr noundef %0, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %372 = load double, ptr %31, align 8, !tbaa !9
  %373 = fdiv double 1.000000e+00, %372
  store double %373, ptr %31, align 8, !tbaa !9
  br label %374

374:                                              ; preds = %370, %365
  %375 = load i64, ptr %4, align 8, !tbaa !5
  %376 = add nsw i64 %375, -1
  %377 = mul nsw i64 %376, %375
  %378 = sdiv i64 %377, 2
  store double 0.000000e+00, ptr %33, align 16, !tbaa !9
  %.not15941754 = icmp slt i64 %375, 1
  br i1 %.not15941754, label %._crit_edge1758, label %.lr.ph1757.preheader

.lr.ph1757.preheader:                             ; preds = %374
  %min.iters.check2262 = icmp ult i64 %375, 4
  br i1 %min.iters.check2262, label %.lr.ph1757.preheader2325, label %vector.ph2263

vector.ph2263:                                    ; preds = %.lr.ph1757.preheader
  %n.vec2265 = and i64 %375, 9223372036854775804
  %ind.end2266 = or disjoint i64 %n.vec2265, 1
  br label %vector.body2268

vector.body2268:                                  ; preds = %vector.body2268, %vector.ph2263
  %index2269 = phi i64 [ 0, %vector.ph2263 ], [ %index.next2271, %vector.body2268 ]
  %379 = getelementptr double, ptr %11, i64 %index2269
  %380 = getelementptr inbounds i8, ptr %379, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %379, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %380, align 8, !tbaa !9
  %index.next2271 = add nuw i64 %index2269, 4
  %381 = icmp eq i64 %index.next2271, %n.vec2265
  br i1 %381, label %middle.block2260, label %vector.body2268, !llvm.loop !25

middle.block2260:                                 ; preds = %vector.body2268
  %cmp.n2272 = icmp eq i64 %375, %n.vec2265
  br i1 %cmp.n2272, label %._crit_edge1758, label %.lr.ph1757.preheader2325

.lr.ph1757.preheader2325:                         ; preds = %middle.block2260, %.lr.ph1757.preheader
  %.315041755.ph = phi i64 [ 1, %.lr.ph1757.preheader ], [ %ind.end2266, %middle.block2260 ]
  br label %.lr.ph1757

.lr.ph1757:                                       ; preds = %.lr.ph1757.preheader2325, %.lr.ph1757
  %.315041755 = phi i64 [ %383, %.lr.ph1757 ], [ %.315041755.ph, %.lr.ph1757.preheader2325 ]
  %382 = getelementptr inbounds double, ptr %42, i64 %.315041755
  store double 1.000000e+00, ptr %382, align 8, !tbaa !9
  %383 = add nuw i64 %.315041755, 1
  %exitcond2124.not = icmp eq i64 %.315041755, %375
  br i1 %exitcond2124.not, label %._crit_edge1758, label %.lr.ph1757, !llvm.loop !26

._crit_edge1758:                                  ; preds = %.lr.ph1757, %middle.block2260, %374
  %spec.select = call i64 @llvm.smin.i64(i64 %375, i64 8)
  %384 = sdiv i64 %375, %spec.select
  %385 = mul nsw i64 %384, %spec.select
  %.not1595 = icmp ne i64 %385, %375
  %386 = zext i1 %.not1595 to i64
  %.01512 = add nsw i64 %384, %386
  %387 = mul nsw i64 %spec.select, %spec.select
  %388 = call i64 @llvm.smin.i64(i64 %375, i64 5)
  %389 = shl i64 %spec.select, 2
  store i64 %389, ptr %16, align 8, !tbaa !5
  %390 = or i64 %48, %47
  %or.cond17.not = icmp ne i64 %390, 0
  %391 = call i64 @llvm.smax.i64(i64 %389, i64 64)
  %392 = icmp sgt i64 %375, %391
  %or.cond1666 = and i1 %or.cond17.not, %392
  br i1 %or.cond1666, label %393, label %531

393:                                              ; preds = %._crit_edge1758
  %394 = lshr i64 %375, 2
  store i64 %394, ptr %23, align 8, !tbaa !5
  %395 = lshr i64 %375, 1
  store i64 %395, ptr %22, align 8, !tbaa !5
  br i1 %50, label %396, label %484

396:                                              ; preds = %393
  %397 = mul nuw nsw i64 %394, 3
  %398 = load i64, ptr %3, align 8, !tbaa !5
  %399 = sub nsw i64 %398, %397
  store i64 %399, ptr %15, align 8, !tbaa !5
  %400 = sub nsw i64 %375, %397
  store i64 %400, ptr %16, align 8, !tbaa !5
  %401 = load i64, ptr %12, align 8, !tbaa !5
  %402 = sub nsw i64 %401, %375
  store i64 %402, ptr %17, align 8, !tbaa !5
  %403 = add nuw nsw i64 %397, 1
  %404 = add i64 %36, 1
  %405 = mul i64 %403, %404
  %406 = getelementptr inbounds double, ptr %38, i64 %405
  %407 = getelementptr double, ptr %11, i64 %397
  %408 = getelementptr double, ptr %7, i64 %397
  %409 = select i1 %60, i64 0, i64 %397
  %410 = mul nsw i64 %403, %39
  %411 = getelementptr double, ptr %41, i64 %409
  %412 = getelementptr i8, ptr %411, i64 8
  %413 = getelementptr double, ptr %412, i64 %410
  %414 = getelementptr double, ptr %11, i64 %375
  %415 = call i32 @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %406, ptr noundef nonnull %6, ptr noundef %407, ptr noundef %408, ptr noundef nonnull %25, ptr noundef %413, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__2, ptr noundef %414, ptr noundef nonnull %17, ptr noundef nonnull %29) #7
  %416 = load i64, ptr %3, align 8, !tbaa !5
  %417 = load i64, ptr %22, align 8, !tbaa !5
  %418 = sub nsw i64 %416, %417
  store i64 %418, ptr %15, align 8, !tbaa !5
  %419 = sub nsw i64 %397, %417
  store i64 %419, ptr %16, align 8, !tbaa !5
  %420 = load i64, ptr %12, align 8, !tbaa !5
  %421 = load i64, ptr %4, align 8, !tbaa !5
  %422 = sub nsw i64 %420, %421
  store i64 %422, ptr %17, align 8, !tbaa !5
  %423 = add nsw i64 %417, 1
  %424 = mul i64 %423, %404
  %425 = getelementptr inbounds double, ptr %38, i64 %424
  %426 = getelementptr double, ptr %11, i64 %417
  %427 = getelementptr double, ptr %7, i64 %417
  %428 = select i1 %60, i64 0, i64 %417
  %429 = mul nsw i64 %423, %39
  %430 = getelementptr double, ptr %41, i64 %428
  %431 = getelementptr i8, ptr %430, i64 8
  %432 = getelementptr double, ptr %431, i64 %429
  %433 = getelementptr double, ptr %11, i64 %421
  %434 = call i32 @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %425, ptr noundef nonnull %6, ptr noundef %426, ptr noundef %427, ptr noundef nonnull %25, ptr noundef %432, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__2, ptr noundef %433, ptr noundef nonnull %17, ptr noundef nonnull %29) #7
  %435 = load i64, ptr %3, align 8, !tbaa !5
  %436 = load i64, ptr %22, align 8, !tbaa !5
  %437 = sub nsw i64 %435, %436
  store i64 %437, ptr %15, align 8, !tbaa !5
  %438 = load i64, ptr %4, align 8, !tbaa !5
  %439 = sub nsw i64 %438, %436
  store i64 %439, ptr %16, align 8, !tbaa !5
  %440 = load i64, ptr %12, align 8, !tbaa !5
  %441 = sub nsw i64 %440, %438
  store i64 %441, ptr %17, align 8, !tbaa !5
  %442 = add nsw i64 %436, 1
  %443 = mul i64 %442, %404
  %444 = getelementptr inbounds double, ptr %38, i64 %443
  %445 = getelementptr double, ptr %11, i64 %436
  %446 = getelementptr double, ptr %7, i64 %436
  %447 = select i1 %60, i64 0, i64 %436
  %448 = mul nsw i64 %442, %39
  %449 = getelementptr double, ptr %41, i64 %447
  %450 = getelementptr i8, ptr %449, i64 8
  %451 = getelementptr double, ptr %450, i64 %448
  %452 = getelementptr double, ptr %11, i64 %438
  %453 = call i32 @dgsvj1_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %23, ptr noundef %444, ptr noundef nonnull %6, ptr noundef %445, ptr noundef %446, ptr noundef nonnull %25, ptr noundef %451, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %452, ptr noundef nonnull %17, ptr noundef nonnull %29) #7
  %454 = load i64, ptr %3, align 8, !tbaa !5
  %455 = load i64, ptr %23, align 8, !tbaa !5
  %456 = sub nsw i64 %454, %455
  store i64 %456, ptr %15, align 8, !tbaa !5
  %457 = load i64, ptr %22, align 8, !tbaa !5
  %458 = sub nsw i64 %457, %455
  store i64 %458, ptr %16, align 8, !tbaa !5
  %459 = load i64, ptr %12, align 8, !tbaa !5
  %460 = load i64, ptr %4, align 8, !tbaa !5
  %461 = sub nsw i64 %459, %460
  store i64 %461, ptr %17, align 8, !tbaa !5
  %462 = add nsw i64 %455, 1
  %463 = mul i64 %462, %404
  %464 = getelementptr inbounds double, ptr %38, i64 %463
  %465 = getelementptr double, ptr %11, i64 %455
  %466 = getelementptr double, ptr %7, i64 %455
  %467 = select i1 %60, i64 0, i64 %455
  %468 = mul nsw i64 %462, %39
  %469 = getelementptr double, ptr %41, i64 %467
  %470 = getelementptr i8, ptr %469, i64 8
  %471 = getelementptr double, ptr %470, i64 %468
  %472 = getelementptr double, ptr %11, i64 %460
  %473 = call i32 @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %464, ptr noundef nonnull %6, ptr noundef %465, ptr noundef %466, ptr noundef nonnull %25, ptr noundef %471, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %472, ptr noundef nonnull %17, ptr noundef nonnull %29) #7
  %474 = load i64, ptr %12, align 8, !tbaa !5
  %475 = load i64, ptr %4, align 8, !tbaa !5
  %476 = sub nsw i64 %474, %475
  store i64 %476, ptr %15, align 8, !tbaa !5
  %477 = getelementptr double, ptr %11, i64 %475
  %478 = call i32 @dgsvj0_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %25, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %477, ptr noundef nonnull %15, ptr noundef nonnull %29) #7
  %479 = load i64, ptr %12, align 8, !tbaa !5
  %480 = load i64, ptr %4, align 8, !tbaa !5
  %481 = sub nsw i64 %479, %480
  store i64 %481, ptr %15, align 8, !tbaa !5
  %482 = getelementptr double, ptr %11, i64 %480
  %483 = call i32 @dgsvj1_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %25, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %482, ptr noundef nonnull %15, ptr noundef nonnull %29) #7
  br label %531

484:                                              ; preds = %393
  br i1 %49, label %485, label %531

485:                                              ; preds = %484
  %486 = load i64, ptr %12, align 8, !tbaa !5
  %487 = sub nsw i64 %486, %375
  store i64 %487, ptr %15, align 8, !tbaa !5
  %488 = getelementptr double, ptr %11, i64 %375
  %489 = call i32 @dgsvj0_(ptr noundef %2, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %25, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__2, ptr noundef %488, ptr noundef nonnull %15, ptr noundef nonnull %29) #7
  %490 = load i64, ptr %12, align 8, !tbaa !5
  %491 = load i64, ptr %4, align 8, !tbaa !5
  %492 = sub nsw i64 %490, %491
  store i64 %492, ptr %15, align 8, !tbaa !5
  %493 = load i64, ptr %23, align 8, !tbaa !5
  %494 = add nsw i64 %493, 1
  %495 = mul nsw i64 %494, %36
  %496 = getelementptr double, ptr %38, i64 %495
  %497 = getelementptr i8, ptr %496, i64 8
  %498 = getelementptr double, ptr %11, i64 %493
  %499 = getelementptr double, ptr %7, i64 %493
  %500 = select i1 %60, i64 0, i64 %493
  %501 = mul nsw i64 %494, %39
  %502 = getelementptr double, ptr %41, i64 %500
  %503 = getelementptr i8, ptr %502, i64 8
  %504 = getelementptr double, ptr %503, i64 %501
  %505 = getelementptr double, ptr %11, i64 %491
  %506 = call i32 @dgsvj0_(ptr noundef %2, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef %497, ptr noundef nonnull %6, ptr noundef %498, ptr noundef %499, ptr noundef nonnull %25, ptr noundef %504, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %505, ptr noundef nonnull %15, ptr noundef nonnull %29) #7
  %507 = load i64, ptr %12, align 8, !tbaa !5
  %508 = load i64, ptr %4, align 8, !tbaa !5
  %509 = sub nsw i64 %507, %508
  store i64 %509, ptr %15, align 8, !tbaa !5
  %510 = getelementptr double, ptr %11, i64 %508
  %511 = call i32 @dgsvj1_(ptr noundef %2, ptr noundef nonnull %22, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef %7, ptr noundef nonnull %25, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %510, ptr noundef nonnull %15, ptr noundef nonnull %29) #7
  %512 = load i64, ptr %22, align 8, !tbaa !5
  %513 = load i64, ptr %23, align 8, !tbaa !5
  %514 = add nsw i64 %513, %512
  store i64 %514, ptr %15, align 8, !tbaa !5
  %515 = load i64, ptr %12, align 8, !tbaa !5
  %516 = load i64, ptr %4, align 8, !tbaa !5
  %517 = sub nsw i64 %515, %516
  store i64 %517, ptr %16, align 8, !tbaa !5
  %518 = add nsw i64 %512, 1
  %519 = mul nsw i64 %518, %36
  %520 = getelementptr double, ptr %38, i64 %519
  %521 = getelementptr i8, ptr %520, i64 8
  %522 = getelementptr double, ptr %11, i64 %512
  %523 = getelementptr double, ptr %7, i64 %512
  %524 = select i1 %60, i64 0, i64 %512
  %525 = mul nsw i64 %518, %39
  %526 = getelementptr double, ptr %41, i64 %524
  %527 = getelementptr i8, ptr %526, i64 8
  %528 = getelementptr double, ptr %527, i64 %525
  %529 = getelementptr double, ptr %11, i64 %516
  %530 = call i32 @dgsvj0_(ptr noundef %2, ptr noundef nonnull %15, ptr noundef nonnull %23, ptr noundef %521, ptr noundef nonnull %6, ptr noundef %522, ptr noundef %523, ptr noundef nonnull %25, ptr noundef %528, ptr noundef nonnull %10, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %529, ptr noundef nonnull %16, ptr noundef nonnull %29) #7
  br label %531

531:                                              ; preds = %396, %485, %484, %._crit_edge1758
  %invariant.gep2052 = getelementptr i8, ptr %38, i64 8
  %532 = add i64 %spec.select, -1
  %invariant.gep1855 = getelementptr i8, ptr %41, i64 8
  %533 = getelementptr inbounds i8, ptr %33, i64 16
  %.not15982039 = icmp slt i64 %.01512, 1
  %534 = insertelement <2 x double> poison, double %112, i64 0
  %535 = shufflevector <2 x double> %534, <2 x double> poison, <2 x i32> zeroinitializer
  br label %536

536:                                              ; preds = %531, %1640
  %.014842057 = phi i64 [ 3, %531 ], [ %.11485, %1640 ]
  %.015002056 = phi i64 [ 1, %531 ], [ %1641, %1640 ]
  store i64 %.01512, ptr %15, align 8, !tbaa !5
  br i1 %.not15982039, label %.._crit_edge2047_crit_edge, label %.lr.ph2046

.._crit_edge2047_crit_edge:                       ; preds = %536
  %.pre2137 = load i64, ptr %4, align 8, !tbaa !5
  br label %._crit_edge2047

.lr.ph2046:                                       ; preds = %536
  %.not1636 = icmp sle i64 %.015002056, %.014842057
  %.not1622 = icmp sgt i64 %.015002056, %.014842057
  br label %538

..loopexit1684_crit_edge:                         ; preds = %.lr.ph2036, %middle.block2273
  %.lcssa2221 = phi double [ %1595, %middle.block2273 ], [ %1597, %.lr.ph2036 ]
  %.lcssa = phi i64 [ %ind.end2279, %middle.block2273 ], [ %1601, %.lr.ph2036 ]
  store double %.lcssa2221, ptr %19, align 8, !tbaa !9
  br label %.loopexit1684

.loopexit1684:                                    ; preds = %..loopexit1684_crit_edge, %.loopexit1685
  %storemerge1625.lcssa = phi i64 [ %.lcssa, %..loopexit1684_crit_edge ], [ %542, %.loopexit1685 ]
  store i64 %storemerge1625.lcssa, ptr %20, align 8, !tbaa !5
  %537 = load i64, ptr %15, align 8, !tbaa !5
  %.not1598.not = icmp slt i64 %.015142040, %537
  %indvar.next = add i64 %indvar, 1
  br i1 %.not1598.not, label %538, label %._crit_edge2047, !llvm.loop !27

538:                                              ; preds = %.lr.ph2046, %.loopexit1684
  %indvar = phi i64 [ 0, %.lr.ph2046 ], [ %indvar.next, %.loopexit1684 ]
  %.014272044 = phi i64 [ 0, %.lr.ph2046 ], [ %.14, %.loopexit1684 ]
  %.014342043 = phi i64 [ 0, %.lr.ph2046 ], [ %.17, %.loopexit1684 ]
  %.114502042 = phi double [ 0.000000e+00, %.lr.ph2046 ], [ %.161465, %.loopexit1684 ]
  %.114692041 = phi double [ 0.000000e+00, %.lr.ph2046 ], [ %.141482, %.loopexit1684 ]
  %.015142040 = phi i64 [ 1, %.lr.ph2046 ], [ %1048, %.loopexit1684 ]
  %539 = mul i64 %spec.select, %indvar
  %540 = add nsw i64 %.015142040, -1
  %541 = mul nsw i64 %540, %spec.select
  %542 = add nsw i64 %541, 1
  %543 = sub nsw i64 %.01512, %.015142040
  store i64 %543, ptr %18, align 8, !tbaa !5
  %544 = call i64 @llvm.smin.i64(i64 %543, i64 1)
  store i64 %544, ptr %16, align 8, !tbaa !5
  %.not16131876 = icmp slt i64 %543, 0
  br i1 %.not16131876, label %._crit_edge1885, label %.lr.ph1884

.lr.ph1884:                                       ; preds = %538, %._crit_edge1871
  %545 = phi i64 [ %1046, %._crit_edge1871 ], [ %544, %538 ]
  %.114281882 = phi i64 [ %.21429.lcssa, %._crit_edge1871 ], [ %.014272044, %538 ]
  %.114351881 = phi i64 [ %.21436.lcssa, %._crit_edge1871 ], [ %.014342043, %538 ]
  %.214511880 = phi double [ %.31452.lcssa, %._crit_edge1871 ], [ %.114502042, %538 ]
  %.214701879 = phi double [ %.31471.lcssa, %._crit_edge1871 ], [ %.114692041, %538 ]
  %.015081878 = phi i64 [ %1047, %._crit_edge1871 ], [ 0, %538 ]
  %.015131877 = phi i64 [ %547, %._crit_edge1871 ], [ %542, %538 ]
  %546 = mul nsw i64 %.015081878, %spec.select
  %547 = add nsw i64 %546, %.015131877
  %548 = add i64 %532, %547
  store i64 %548, ptr %18, align 8, !tbaa !5
  %549 = load i64, ptr %4, align 8, !tbaa !5
  %550 = add nsw i64 %549, -1
  %551 = call i64 @llvm.smin.i64(i64 %548, i64 %550)
  store i64 %551, ptr %17, align 8, !tbaa !5
  store i64 %547, ptr %20, align 8, !tbaa !5
  %.not16291863 = icmp sgt i64 %547, %551
  br i1 %.not16291863, label %._crit_edge1871, label %.lr.ph1870

.lr.ph1870:                                       ; preds = %.lr.ph1884
  %552 = icmp eq i64 %.015081878, 0
  %553 = zext i1 %552 to i64
  br label %554

554:                                              ; preds = %.lr.ph1870, %1042
  %.214291868 = phi i64 [ %.114281882, %.lr.ph1870 ], [ %.7, %1042 ]
  %.214361867 = phi i64 [ %.114351881, %.lr.ph1870 ], [ %.91443, %1042 ]
  %.314521866 = phi double [ %.214511880, %.lr.ph1870 ], [ %.81457, %1042 ]
  %.314711865 = phi double [ %.214701879, %.lr.ph1870 ], [ %.71475, %1042 ]
  %storemerge16281864 = phi i64 [ %547, %.lr.ph1870 ], [ %1044, %1042 ]
  %555 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub2097 = sub i64 %555, %storemerge16281864
  %556 = add i64 %reass.sub2097, 1
  store i64 %556, ptr %18, align 8, !tbaa !5
  %557 = getelementptr inbounds double, ptr %35, i64 %storemerge16281864
  %558 = call i64 @f2c_idamax(ptr noundef nonnull %18, ptr noundef nonnull %557, ptr noundef nonnull @c__1) #7
  %559 = load i64, ptr %20, align 8, !tbaa !5
  %560 = add i64 %558, -1
  %561 = add i64 %560, %559
  %.not1630 = icmp eq i64 %560, 0
  br i1 %.not1630, label %581, label %562

562:                                              ; preds = %554
  %563 = mul nsw i64 %559, %36
  %gep1852 = getelementptr double, ptr %invariant.gep2052, i64 %563
  %564 = mul nsw i64 %561, %36
  %gep1854 = getelementptr double, ptr %invariant.gep2052, i64 %564
  %565 = call i32 @f2c_dswap(ptr noundef nonnull %3, ptr noundef %gep1852, ptr noundef nonnull @c__1, ptr noundef %gep1854, ptr noundef nonnull @c__1) #7
  br i1 %or.cond5, label %566, label %571

566:                                              ; preds = %562
  %567 = load i64, ptr %20, align 8, !tbaa !5
  %568 = mul nsw i64 %567, %39
  %gep1856 = getelementptr double, ptr %invariant.gep1855, i64 %568
  %569 = mul nsw i64 %561, %39
  %gep1858 = getelementptr double, ptr %invariant.gep1855, i64 %569
  %570 = call i32 @f2c_dswap(ptr noundef nonnull %25, ptr noundef %gep1856, ptr noundef nonnull @c__1, ptr noundef %gep1858, ptr noundef nonnull @c__1) #7
  br label %571

571:                                              ; preds = %566, %562
  %572 = load i64, ptr %20, align 8, !tbaa !5
  %573 = getelementptr inbounds double, ptr %35, i64 %572
  %574 = load double, ptr %573, align 8, !tbaa !9
  %575 = getelementptr inbounds double, ptr %35, i64 %561
  %576 = load double, ptr %575, align 8, !tbaa !9
  store double %576, ptr %573, align 8, !tbaa !9
  store double %574, ptr %575, align 8, !tbaa !9
  %577 = getelementptr inbounds double, ptr %42, i64 %572
  %578 = load double, ptr %577, align 8, !tbaa !9
  store double %578, ptr %30, align 8, !tbaa !9
  %579 = getelementptr inbounds double, ptr %42, i64 %561
  %580 = load double, ptr %579, align 8, !tbaa !9
  store double %580, ptr %577, align 8, !tbaa !9
  store double %578, ptr %579, align 8, !tbaa !9
  br label %581

581:                                              ; preds = %571, %554
  %582 = phi i64 [ %572, %571 ], [ %559, %554 ]
  %583 = getelementptr inbounds double, ptr %35, i64 %582
  %584 = load double, ptr %583, align 8, !tbaa !9
  br i1 %552, label %585, label %._crit_edge2129

585:                                              ; preds = %581
  %586 = fcmp olt double %584, %114
  %587 = fcmp ogt double %584, %111
  %or.cond1643 = and i1 %586, %587
  br i1 %or.cond1643, label %588, label %591

588:                                              ; preds = %585
  %589 = mul nsw i64 %582, %36
  %gep1862 = getelementptr double, ptr %invariant.gep2052, i64 %589
  %590 = call double @f2c_dnrm2(ptr noundef nonnull %3, ptr noundef %gep1862, ptr noundef nonnull @c__1) #7
  br label %._crit_edge2129.sink.split

591:                                              ; preds = %585
  store double 0.000000e+00, ptr %30, align 8, !tbaa !9
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  %592 = mul nsw i64 %582, %36
  %gep1860 = getelementptr double, ptr %invariant.gep2052, i64 %592
  %593 = call i32 @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1860, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %26) #7
  %594 = load double, ptr %30, align 8, !tbaa !9
  %595 = load double, ptr %26, align 8, !tbaa !9
  %596 = call double @sqrt(double noundef %595) #7
  %597 = fmul double %594, %596
  br label %._crit_edge2129.sink.split

._crit_edge2129.sink.split:                       ; preds = %591, %588
  %.sink2174 = phi double [ %590, %588 ], [ %597, %591 ]
  %.sink2177 = load i64, ptr %20, align 8, !tbaa !5
  %598 = getelementptr inbounds double, ptr %42, i64 %.sink2177
  %599 = load double, ptr %598, align 8, !tbaa !9
  %600 = fmul double %.sink2174, %599
  %601 = getelementptr inbounds double, ptr %35, i64 %.sink2177
  store double %600, ptr %601, align 8, !tbaa !9
  br label %._crit_edge2129

._crit_edge2129:                                  ; preds = %._crit_edge2129.sink.split, %581
  %storemerge1631 = phi double [ %584, %581 ], [ %600, %._crit_edge2129.sink.split ]
  %.pn = phi i64 [ %582, %581 ], [ %.sink2177, %._crit_edge2129.sink.split ]
  store double %storemerge1631, ptr %26, align 8, !tbaa !9
  %602 = fcmp ogt double %storemerge1631, 0.000000e+00
  br i1 %602, label %603, label %1036

603:                                              ; preds = %._crit_edge2129
  %604 = load i64, ptr %4, align 8, !tbaa !5
  %.1644 = call i64 @llvm.smin.i64(i64 %548, i64 %604)
  store i64 %.1644, ptr %18, align 8, !tbaa !5
  br label %605

605:                                              ; preds = %1028, %603
  %.51506.in = phi i64 [ %.pn, %603 ], [ %.51506, %1028 ]
  %.01495 = phi i64 [ 0, %603 ], [ %.21497, %1028 ]
  %.41472 = phi double [ %.314711865, %603 ], [ %.51473, %1028 ]
  %.41453 = phi double [ %.314521866, %603 ], [ %.61455, %1028 ]
  %.31437 = phi i64 [ %.214361867, %603 ], [ %.71441, %1028 ]
  %.31430 = phi i64 [ %.214291868, %603 ], [ %.51432, %1028 ]
  %.51506 = add nsw i64 %.51506.in, 1
  %606 = load i64, ptr %18, align 8, !tbaa !5
  %.not1634.not = icmp slt i64 %.51506.in, %606
  br i1 %.not1634.not, label %607, label %.loopexit1683.loopexit

607:                                              ; preds = %605
  %608 = getelementptr double, ptr %7, i64 %.51506.in
  %609 = load double, ptr %608, align 8, !tbaa !9
  store double %609, ptr %28, align 8, !tbaa !9
  %610 = fcmp ogt double %609, 0.000000e+00
  br i1 %610, label %611, label %1026

611:                                              ; preds = %607
  %612 = load double, ptr %26, align 8, !tbaa !9
  %613 = fcmp ult double %609, 1.000000e+00
  br i1 %613, label %653, label %614

614:                                              ; preds = %611
  %615 = fmul double %112, %612
  %616 = fcmp ole double %615, %609
  %617 = fdiv double %113, %609
  %618 = fcmp olt double %612, %617
  %619 = load i64, ptr %20, align 8, !tbaa !5
  %620 = mul nsw i64 %619, %36
  %gep1764 = getelementptr double, ptr %invariant.gep2052, i64 %620
  br i1 %618, label %621, label %635

621:                                              ; preds = %614
  %622 = mul nsw i64 %.51506, %36
  %gep1766 = getelementptr double, ptr %invariant.gep2052, i64 %622
  %623 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %gep1764, ptr noundef nonnull @c__1, ptr noundef %gep1766, ptr noundef nonnull @c__1) #7
  %624 = load i64, ptr %20, align 8, !tbaa !5
  %625 = getelementptr inbounds double, ptr %42, i64 %624
  %626 = load double, ptr %625, align 8, !tbaa !9
  %627 = fmul double %623, %626
  %628 = getelementptr double, ptr %11, i64 %.51506.in
  %629 = load double, ptr %628, align 8, !tbaa !9
  %630 = fmul double %627, %629
  %631 = load double, ptr %28, align 8, !tbaa !9
  %632 = fdiv double %630, %631
  %633 = load double, ptr %26, align 8, !tbaa !9
  %634 = fdiv double %632, %633
  store double %634, ptr %27, align 8, !tbaa !9
  br label %694

635:                                              ; preds = %614
  %636 = load i64, ptr %4, align 8, !tbaa !5
  %637 = getelementptr double, ptr %11, i64 %636
  %638 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep1764, ptr noundef nonnull @c__1, ptr noundef %637, ptr noundef nonnull @c__1) #7
  %639 = load i64, ptr %20, align 8, !tbaa !5
  %640 = getelementptr inbounds double, ptr %42, i64 %639
  %641 = load i64, ptr %4, align 8, !tbaa !5
  %642 = getelementptr double, ptr %11, i64 %641
  %643 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull %640, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %642, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %644 = load i64, ptr %4, align 8, !tbaa !5
  %645 = getelementptr double, ptr %11, i64 %644
  %646 = mul nsw i64 %.51506, %36
  %gep1762 = getelementptr double, ptr %invariant.gep2052, i64 %646
  %647 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %645, ptr noundef nonnull @c__1, ptr noundef %gep1762, ptr noundef nonnull @c__1) #7
  %648 = getelementptr double, ptr %11, i64 %.51506.in
  %649 = load double, ptr %648, align 8, !tbaa !9
  %650 = fmul double %647, %649
  %651 = load double, ptr %28, align 8, !tbaa !9
  %652 = fdiv double %650, %651
  store double %652, ptr %27, align 8, !tbaa !9
  br label %694

653:                                              ; preds = %611
  %654 = fdiv double %609, %112
  %655 = fcmp ole double %612, %654
  %656 = fdiv double %112, %609
  %657 = fcmp ogt double %612, %656
  br i1 %657, label %658, label %674

658:                                              ; preds = %653
  %659 = load i64, ptr %20, align 8, !tbaa !5
  %660 = mul nsw i64 %659, %36
  %gep1772 = getelementptr double, ptr %invariant.gep2052, i64 %660
  %661 = mul nsw i64 %.51506, %36
  %gep1774 = getelementptr double, ptr %invariant.gep2052, i64 %661
  %662 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %gep1772, ptr noundef nonnull @c__1, ptr noundef %gep1774, ptr noundef nonnull @c__1) #7
  %663 = load i64, ptr %20, align 8, !tbaa !5
  %664 = getelementptr inbounds double, ptr %42, i64 %663
  %665 = load double, ptr %664, align 8, !tbaa !9
  %666 = fmul double %662, %665
  %667 = getelementptr double, ptr %11, i64 %.51506.in
  %668 = load double, ptr %667, align 8, !tbaa !9
  %669 = fmul double %666, %668
  %670 = load double, ptr %28, align 8, !tbaa !9
  %671 = fdiv double %669, %670
  %672 = load double, ptr %26, align 8, !tbaa !9
  %673 = fdiv double %671, %672
  store double %673, ptr %27, align 8, !tbaa !9
  br label %694

674:                                              ; preds = %653
  %675 = mul nsw i64 %.51506, %36
  %gep1768 = getelementptr double, ptr %invariant.gep2052, i64 %675
  %676 = load i64, ptr %4, align 8, !tbaa !5
  %677 = getelementptr double, ptr %11, i64 %676
  %678 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep1768, ptr noundef nonnull @c__1, ptr noundef %677, ptr noundef nonnull @c__1) #7
  %679 = getelementptr double, ptr %11, i64 %.51506.in
  %680 = load i64, ptr %4, align 8, !tbaa !5
  %681 = getelementptr double, ptr %11, i64 %680
  %682 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %28, ptr noundef %679, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %681, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %683 = load i64, ptr %4, align 8, !tbaa !5
  %684 = getelementptr double, ptr %11, i64 %683
  %685 = load i64, ptr %20, align 8, !tbaa !5
  %686 = mul nsw i64 %685, %36
  %gep1770 = getelementptr double, ptr %invariant.gep2052, i64 %686
  %687 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %684, ptr noundef nonnull @c__1, ptr noundef %gep1770, ptr noundef nonnull @c__1) #7
  %688 = load i64, ptr %20, align 8, !tbaa !5
  %689 = getelementptr inbounds double, ptr %42, i64 %688
  %690 = load double, ptr %689, align 8, !tbaa !9
  %691 = fmul double %687, %690
  %692 = load double, ptr %26, align 8, !tbaa !9
  %693 = fdiv double %691, %692
  store double %693, ptr %27, align 8, !tbaa !9
  br label %694

694:                                              ; preds = %658, %674, %621, %635
  %695 = phi double [ %634, %621 ], [ %652, %635 ], [ %673, %658 ], [ %693, %674 ]
  %.01491.in = phi i1 [ %616, %621 ], [ %616, %635 ], [ %655, %658 ], [ %655, %674 ]
  store double %.41472, ptr %19, align 8, !tbaa !9
  %696 = fcmp oge double %695, 0.000000e+00
  %697 = fneg double %695
  %698 = select i1 %696, double %695, double %697
  %699 = fcmp oge double %.41472, %698
  %700 = select i1 %699, double %.41472, double %698
  %701 = load double, ptr %24, align 8, !tbaa !9
  %702 = fcmp ogt double %698, %701
  br i1 %702, label %703, label %1024

703:                                              ; preds = %694
  %.11496 = select i1 %552, i64 0, i64 %.01495
  %.41438 = select i1 %552, i64 0, i64 %.31437
  %.41431 = add nsw i64 %.31430, %553
  br i1 %.01491.in, label %704, label %944

704:                                              ; preds = %703
  %705 = load double, ptr %28, align 8, !tbaa !9
  %706 = load double, ptr %26, align 8, !tbaa !9
  %707 = insertelement <2 x double> poison, double %705, i64 0
  %708 = insertelement <2 x double> %707, double %706, i64 1
  %709 = insertelement <2 x double> poison, double %706, i64 0
  %710 = insertelement <2 x double> %709, double %705, i64 1
  %711 = fdiv <2 x double> %708, %710
  %712 = extractelement <2 x double> %711, i64 0
  %713 = extractelement <2 x double> %711, i64 1
  %714 = fsub double %712, %713
  store double %714, ptr %19, align 8, !tbaa !9
  %715 = fcmp oge double %714, 0.000000e+00
  %716 = fneg double %714
  %717 = select i1 %715, double %714, double %716
  %718 = fmul double %717, -5.000000e-01
  %719 = fdiv double %718, %695
  %720 = fcmp oge double %719, 0.000000e+00
  %721 = fneg double %719
  %722 = select i1 %720, double %719, double %721
  %723 = fcmp ogt double %722, %121
  br i1 %723, label %724, label %769

724:                                              ; preds = %704
  %725 = fdiv double 5.000000e-01, %719
  store double %725, ptr %21, align 8, !tbaa !9
  %726 = load i64, ptr %20, align 8, !tbaa !5
  %727 = getelementptr inbounds double, ptr %42, i64 %726
  %728 = load double, ptr %727, align 8, !tbaa !9
  %729 = getelementptr double, ptr %11, i64 %.51506.in
  %730 = load double, ptr %729, align 8, !tbaa !9
  %731 = fneg double %725
  %732 = insertelement <2 x double> poison, double %725, i64 0
  %733 = insertelement <2 x double> %732, double %730, i64 1
  %734 = insertelement <2 x double> poison, double %728, i64 0
  %735 = insertelement <2 x double> %734, double %731, i64 1
  %736 = fmul <2 x double> %733, %735
  %737 = insertelement <2 x double> poison, double %730, i64 0
  %738 = insertelement <2 x double> %737, double %728, i64 1
  %739 = fdiv <2 x double> %736, %738
  store <2 x double> %739, ptr %533, align 16, !tbaa !9
  %740 = mul nsw i64 %726, %36
  %gep1836 = getelementptr double, ptr %invariant.gep2052, i64 %740
  %741 = mul nsw i64 %.51506, %36
  %gep1838 = getelementptr double, ptr %invariant.gep2052, i64 %741
  %742 = call i32 @f2c_drotm(ptr noundef nonnull %3, ptr noundef %gep1836, ptr noundef nonnull @c__1, ptr noundef %gep1838, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br i1 %or.cond5, label %743, label %748

743:                                              ; preds = %724
  %744 = load i64, ptr %20, align 8, !tbaa !5
  %745 = mul nsw i64 %744, %39
  %gep1840 = getelementptr double, ptr %invariant.gep1855, i64 %745
  %746 = mul nsw i64 %.51506, %39
  %gep1842 = getelementptr double, ptr %invariant.gep1855, i64 %746
  %747 = call i32 @f2c_drotm(ptr noundef nonnull %25, ptr noundef %gep1840, ptr noundef nonnull @c__1, ptr noundef %gep1842, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br label %748

748:                                              ; preds = %743, %724
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %749 = load double, ptr %21, align 8, !tbaa !9
  %750 = fmul double %713, %749
  %751 = load double, ptr %27, align 8, !tbaa !9
  %752 = call double @llvm.fmuladd.f64(double %750, double %751, double 1.000000e+00)
  %753 = load double, ptr %28, align 8, !tbaa !9
  %754 = fcmp ole double %752, 0.000000e+00
  %755 = select i1 %754, double 0.000000e+00, double %752
  %sqrt = call double @llvm.sqrt.f64(double %755)
  %756 = fmul double %753, %sqrt
  store double %756, ptr %608, align 8, !tbaa !9
  %757 = fneg double %749
  %758 = fmul double %712, %757
  %759 = call double @llvm.fmuladd.f64(double %758, double %751, double 1.000000e+00)
  %760 = call double @sqrt(double noundef %759) #7
  %761 = load double, ptr %26, align 8, !tbaa !9
  %762 = fmul double %760, %761
  store double %762, ptr %26, align 8, !tbaa !9
  %763 = load double, ptr %21, align 8
  %764 = fcmp oge double %763, 0.000000e+00
  %765 = fneg double %763
  %766 = select i1 %764, double %763, double %765
  %767 = fcmp oge double %.41453, %766
  %768 = select i1 %767, double %.41453, double %766
  br label %978

769:                                              ; preds = %704
  %770 = call double @d_sign(ptr noundef nonnull @c_b18, ptr noundef nonnull %27) #7
  %771 = fneg double %770
  %772 = call double @llvm.fmuladd.f64(double %719, double %719, double 1.000000e+00)
  %sqrt1671 = call double @llvm.sqrt.f64(double %772)
  %773 = call double @llvm.fmuladd.f64(double %771, double %sqrt1671, double %719)
  %774 = fdiv double 1.000000e+00, %773
  store double %774, ptr %21, align 8, !tbaa !9
  %775 = call double @llvm.fmuladd.f64(double %774, double %774, double 1.000000e+00)
  %776 = fdiv double 1.000000e+00, %775
  %sqrt1670 = call double @llvm.sqrt.f64(double %776)
  %777 = fmul double %774, %sqrt1670
  %778 = fcmp oge double %777, 0.000000e+00
  %779 = fneg double %777
  %780 = select i1 %778, double %777, double %779
  %781 = fcmp oge double %.41453, %780
  %782 = select i1 %781, double %.41453, double %780
  %783 = load double, ptr %27, align 8, !tbaa !9
  %784 = load double, ptr %28, align 8, !tbaa !9
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %785 = fneg double %774
  %786 = insertelement <2 x double> poison, double %785, i64 0
  %787 = insertelement <2 x double> %786, double %774, i64 1
  %788 = fmul <2 x double> %711, %787
  %789 = insertelement <2 x double> poison, double %783, i64 0
  %790 = shufflevector <2 x double> %789, <2 x double> poison, <2 x i32> zeroinitializer
  %791 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %788, <2 x double> %790, <2 x double> <double 1.000000e+00, double 1.000000e+00>)
  %792 = fcmp ole <2 x double> %791, zeroinitializer
  %793 = extractelement <2 x i1> %792, i64 1
  %794 = extractelement <2 x double> %791, i64 1
  %795 = select i1 %793, double 0.000000e+00, double %794
  %sqrt1669 = call double @llvm.sqrt.f64(double %795)
  %796 = fmul double %784, %sqrt1669
  store double %796, ptr %608, align 8, !tbaa !9
  %797 = extractelement <2 x i1> %792, i64 0
  %798 = extractelement <2 x double> %791, i64 0
  %799 = select i1 %797, double 0.000000e+00, double %798
  %sqrt1668 = call double @llvm.sqrt.f64(double %799)
  %800 = load double, ptr %26, align 8, !tbaa !9
  %801 = fmul double %800, %sqrt1668
  store double %801, ptr %26, align 8, !tbaa !9
  %802 = load i64, ptr %20, align 8, !tbaa !5
  %803 = getelementptr inbounds double, ptr %42, i64 %802
  %804 = load double, ptr %803, align 8, !tbaa !9
  %805 = getelementptr double, ptr %11, i64 %.51506.in
  %806 = load double, ptr %805, align 8, !tbaa !9
  %807 = insertelement <2 x double> poison, double %806, i64 0
  %808 = insertelement <2 x double> %807, double %804, i64 1
  %809 = insertelement <2 x double> poison, double %804, i64 0
  %810 = insertelement <2 x double> %809, double %806, i64 1
  %811 = fdiv <2 x double> %808, %810
  %812 = fcmp ult double %804, 1.000000e+00
  %813 = fcmp ult double %806, 1.000000e+00
  br i1 %812, label %857, label %814

814:                                              ; preds = %769
  br i1 %813, label %829, label %815

815:                                              ; preds = %814
  %816 = fmul <2 x double> %811, %787
  %817 = shufflevector <2 x double> %816, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %817, ptr %533, align 16, !tbaa !9
  %818 = fmul double %sqrt1670, %804
  store double %818, ptr %803, align 8, !tbaa !9
  %819 = load double, ptr %805, align 8, !tbaa !9
  %820 = fmul double %sqrt1670, %819
  store double %820, ptr %805, align 8, !tbaa !9
  %821 = mul nsw i64 %802, %36
  %gep1780 = getelementptr double, ptr %invariant.gep2052, i64 %821
  %822 = mul nsw i64 %.51506, %36
  %gep1782 = getelementptr double, ptr %invariant.gep2052, i64 %822
  %823 = call i32 @f2c_drotm(ptr noundef nonnull %3, ptr noundef %gep1780, ptr noundef nonnull @c__1, ptr noundef %gep1782, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br i1 %or.cond5, label %824, label %978

824:                                              ; preds = %815
  %825 = load i64, ptr %20, align 8, !tbaa !5
  %826 = mul nsw i64 %825, %39
  %gep1784 = getelementptr double, ptr %invariant.gep1855, i64 %826
  %827 = mul nsw i64 %.51506, %39
  %gep1786 = getelementptr double, ptr %invariant.gep1855, i64 %827
  %828 = call i32 @f2c_drotm(ptr noundef nonnull %25, ptr noundef %gep1784, ptr noundef nonnull @c__1, ptr noundef %gep1786, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br label %978

829:                                              ; preds = %814
  %830 = extractelement <2 x double> %811, i64 0
  %831 = fmul double %830, %785
  store double %831, ptr %19, align 8, !tbaa !9
  %832 = mul nsw i64 %.51506, %36
  %gep1788 = getelementptr double, ptr %invariant.gep2052, i64 %832
  %833 = mul nsw i64 %802, %36
  %gep1790 = getelementptr double, ptr %invariant.gep2052, i64 %833
  %834 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1788, ptr noundef nonnull @c__1, ptr noundef %gep1790, ptr noundef nonnull @c__1) #7
  %835 = fmul double %sqrt1670, %777
  %836 = extractelement <2 x double> %811, i64 1
  %837 = fmul double %835, %836
  store double %837, ptr %19, align 8, !tbaa !9
  %838 = load i64, ptr %20, align 8, !tbaa !5
  %839 = mul nsw i64 %838, %36
  %gep1792 = getelementptr double, ptr %invariant.gep2052, i64 %839
  %840 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1792, ptr noundef nonnull @c__1, ptr noundef %gep1788, ptr noundef nonnull @c__1) #7
  %841 = load i64, ptr %20, align 8, !tbaa !5
  %842 = getelementptr inbounds double, ptr %42, i64 %841
  %843 = load double, ptr %842, align 8, !tbaa !9
  %844 = fmul double %sqrt1670, %843
  store double %844, ptr %842, align 8, !tbaa !9
  %845 = load double, ptr %805, align 8, !tbaa !9
  %846 = fdiv double %845, %sqrt1670
  store double %846, ptr %805, align 8, !tbaa !9
  br i1 %or.cond5, label %847, label %978

847:                                              ; preds = %829
  %848 = load double, ptr %21, align 8, !tbaa !9
  %849 = fneg double %848
  %850 = fmul double %830, %849
  store double %850, ptr %19, align 8, !tbaa !9
  %851 = mul nsw i64 %.51506, %39
  %gep1794 = getelementptr double, ptr %invariant.gep1855, i64 %851
  %852 = mul nsw i64 %841, %39
  %gep1796 = getelementptr double, ptr %invariant.gep1855, i64 %852
  %853 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1794, ptr noundef nonnull @c__1, ptr noundef %gep1796, ptr noundef nonnull @c__1) #7
  store double %837, ptr %19, align 8, !tbaa !9
  %854 = load i64, ptr %20, align 8, !tbaa !5
  %855 = mul nsw i64 %854, %39
  %gep1798 = getelementptr double, ptr %invariant.gep1855, i64 %855
  %856 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1798, ptr noundef nonnull @c__1, ptr noundef %gep1794, ptr noundef nonnull @c__1) #7
  br label %978

857:                                              ; preds = %769
  br i1 %813, label %886, label %858

858:                                              ; preds = %857
  %859 = extractelement <2 x double> %811, i64 1
  %860 = fmul double %859, %774
  store double %860, ptr %19, align 8, !tbaa !9
  %861 = mul nsw i64 %802, %36
  %gep1800 = getelementptr double, ptr %invariant.gep2052, i64 %861
  %862 = mul nsw i64 %.51506, %36
  %gep1802 = getelementptr double, ptr %invariant.gep2052, i64 %862
  %863 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1800, ptr noundef nonnull @c__1, ptr noundef %gep1802, ptr noundef nonnull @c__1) #7
  %864 = fneg double %sqrt1670
  %865 = fmul double %777, %864
  %866 = extractelement <2 x double> %811, i64 0
  %867 = fmul double %865, %866
  store double %867, ptr %19, align 8, !tbaa !9
  %868 = load i64, ptr %20, align 8, !tbaa !5
  %869 = mul nsw i64 %868, %36
  %gep1804 = getelementptr double, ptr %invariant.gep2052, i64 %869
  %870 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1802, ptr noundef nonnull @c__1, ptr noundef %gep1804, ptr noundef nonnull @c__1) #7
  %871 = load i64, ptr %20, align 8, !tbaa !5
  %872 = getelementptr inbounds double, ptr %42, i64 %871
  %873 = load double, ptr %872, align 8, !tbaa !9
  %874 = fdiv double %873, %sqrt1670
  store double %874, ptr %872, align 8, !tbaa !9
  %875 = load double, ptr %805, align 8, !tbaa !9
  %876 = fmul double %sqrt1670, %875
  store double %876, ptr %805, align 8, !tbaa !9
  br i1 %or.cond5, label %877, label %978

877:                                              ; preds = %858
  %878 = load double, ptr %21, align 8, !tbaa !9
  %879 = fmul double %859, %878
  store double %879, ptr %19, align 8, !tbaa !9
  %880 = mul nsw i64 %871, %39
  %gep1806 = getelementptr double, ptr %invariant.gep1855, i64 %880
  %881 = mul nsw i64 %.51506, %39
  %gep1808 = getelementptr double, ptr %invariant.gep1855, i64 %881
  %882 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1806, ptr noundef nonnull @c__1, ptr noundef %gep1808, ptr noundef nonnull @c__1) #7
  store double %867, ptr %19, align 8, !tbaa !9
  %883 = load i64, ptr %20, align 8, !tbaa !5
  %884 = mul nsw i64 %883, %39
  %gep1810 = getelementptr double, ptr %invariant.gep1855, i64 %884
  %885 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1808, ptr noundef nonnull @c__1, ptr noundef %gep1810, ptr noundef nonnull @c__1) #7
  br label %978

886:                                              ; preds = %857
  %887 = fcmp ult double %804, %806
  br i1 %887, label %916, label %888

888:                                              ; preds = %886
  %889 = extractelement <2 x double> %811, i64 0
  %890 = fmul double %889, %785
  store double %890, ptr %19, align 8, !tbaa !9
  %891 = mul nsw i64 %.51506, %36
  %gep1812 = getelementptr double, ptr %invariant.gep2052, i64 %891
  %892 = mul nsw i64 %802, %36
  %gep1814 = getelementptr double, ptr %invariant.gep2052, i64 %892
  %893 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1812, ptr noundef nonnull @c__1, ptr noundef %gep1814, ptr noundef nonnull @c__1) #7
  %894 = fmul double %sqrt1670, %777
  %895 = extractelement <2 x double> %811, i64 1
  %896 = fmul double %894, %895
  store double %896, ptr %19, align 8, !tbaa !9
  %897 = load i64, ptr %20, align 8, !tbaa !5
  %898 = mul nsw i64 %897, %36
  %gep1816 = getelementptr double, ptr %invariant.gep2052, i64 %898
  %899 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1816, ptr noundef nonnull @c__1, ptr noundef %gep1812, ptr noundef nonnull @c__1) #7
  %900 = load i64, ptr %20, align 8, !tbaa !5
  %901 = getelementptr inbounds double, ptr %42, i64 %900
  %902 = load double, ptr %901, align 8, !tbaa !9
  %903 = fmul double %sqrt1670, %902
  store double %903, ptr %901, align 8, !tbaa !9
  %904 = load double, ptr %805, align 8, !tbaa !9
  %905 = fdiv double %904, %sqrt1670
  store double %905, ptr %805, align 8, !tbaa !9
  br i1 %or.cond5, label %906, label %978

906:                                              ; preds = %888
  %907 = load double, ptr %21, align 8, !tbaa !9
  %908 = fneg double %907
  %909 = fmul double %889, %908
  store double %909, ptr %19, align 8, !tbaa !9
  %910 = mul nsw i64 %.51506, %39
  %gep1818 = getelementptr double, ptr %invariant.gep1855, i64 %910
  %911 = mul nsw i64 %900, %39
  %gep1820 = getelementptr double, ptr %invariant.gep1855, i64 %911
  %912 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1818, ptr noundef nonnull @c__1, ptr noundef %gep1820, ptr noundef nonnull @c__1) #7
  store double %896, ptr %19, align 8, !tbaa !9
  %913 = load i64, ptr %20, align 8, !tbaa !5
  %914 = mul nsw i64 %913, %39
  %gep1822 = getelementptr double, ptr %invariant.gep1855, i64 %914
  %915 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1822, ptr noundef nonnull @c__1, ptr noundef %gep1818, ptr noundef nonnull @c__1) #7
  br label %978

916:                                              ; preds = %886
  %917 = extractelement <2 x double> %811, i64 1
  %918 = fmul double %917, %774
  store double %918, ptr %19, align 8, !tbaa !9
  %919 = mul nsw i64 %802, %36
  %gep1824 = getelementptr double, ptr %invariant.gep2052, i64 %919
  %920 = mul nsw i64 %.51506, %36
  %gep1826 = getelementptr double, ptr %invariant.gep2052, i64 %920
  %921 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1824, ptr noundef nonnull @c__1, ptr noundef %gep1826, ptr noundef nonnull @c__1) #7
  %922 = fneg double %sqrt1670
  %923 = fmul double %777, %922
  %924 = extractelement <2 x double> %811, i64 0
  %925 = fmul double %923, %924
  store double %925, ptr %19, align 8, !tbaa !9
  %926 = load i64, ptr %20, align 8, !tbaa !5
  %927 = mul nsw i64 %926, %36
  %gep1828 = getelementptr double, ptr %invariant.gep2052, i64 %927
  %928 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1826, ptr noundef nonnull @c__1, ptr noundef %gep1828, ptr noundef nonnull @c__1) #7
  %929 = load i64, ptr %20, align 8, !tbaa !5
  %930 = getelementptr inbounds double, ptr %42, i64 %929
  %931 = load double, ptr %930, align 8, !tbaa !9
  %932 = fdiv double %931, %sqrt1670
  store double %932, ptr %930, align 8, !tbaa !9
  %933 = load double, ptr %805, align 8, !tbaa !9
  %934 = fmul double %sqrt1670, %933
  store double %934, ptr %805, align 8, !tbaa !9
  br i1 %or.cond5, label %935, label %978

935:                                              ; preds = %916
  %936 = load double, ptr %21, align 8, !tbaa !9
  %937 = fmul double %917, %936
  store double %937, ptr %19, align 8, !tbaa !9
  %938 = mul nsw i64 %929, %39
  %gep1830 = getelementptr double, ptr %invariant.gep1855, i64 %938
  %939 = mul nsw i64 %.51506, %39
  %gep1832 = getelementptr double, ptr %invariant.gep1855, i64 %939
  %940 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1830, ptr noundef nonnull @c__1, ptr noundef %gep1832, ptr noundef nonnull @c__1) #7
  store double %925, ptr %19, align 8, !tbaa !9
  %941 = load i64, ptr %20, align 8, !tbaa !5
  %942 = mul nsw i64 %941, %39
  %gep1834 = getelementptr double, ptr %invariant.gep1855, i64 %942
  %943 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1832, ptr noundef nonnull @c__1, ptr noundef %gep1834, ptr noundef nonnull @c__1) #7
  br label %978

944:                                              ; preds = %703
  %945 = load i64, ptr %20, align 8, !tbaa !5
  %946 = mul nsw i64 %945, %36
  %gep1776 = getelementptr double, ptr %invariant.gep2052, i64 %946
  %947 = load i64, ptr %4, align 8, !tbaa !5
  %948 = getelementptr double, ptr %11, i64 %947
  %949 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep1776, ptr noundef nonnull @c__1, ptr noundef %948, ptr noundef nonnull @c__1) #7
  %950 = load i64, ptr %4, align 8, !tbaa !5
  %951 = getelementptr double, ptr %11, i64 %950
  %952 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %951, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %953 = mul nsw i64 %.51506, %36
  %gep1778 = getelementptr double, ptr %invariant.gep2052, i64 %953
  %954 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %28, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1778, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %955 = load double, ptr %27, align 8, !tbaa !9
  %956 = fneg double %955
  %957 = load i64, ptr %20, align 8, !tbaa !5
  %958 = getelementptr inbounds double, ptr %42, i64 %957
  %959 = load double, ptr %958, align 8, !tbaa !9
  %960 = fmul double %959, %956
  %961 = getelementptr double, ptr %11, i64 %.51506.in
  %962 = load double, ptr %961, align 8, !tbaa !9
  %963 = fdiv double %960, %962
  store double %963, ptr %30, align 8, !tbaa !9
  %964 = load i64, ptr %4, align 8, !tbaa !5
  %965 = getelementptr double, ptr %11, i64 %964
  %966 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %30, ptr noundef %965, ptr noundef nonnull @c__1, ptr noundef %gep1778, ptr noundef nonnull @c__1) #7
  %967 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %28, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1778, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %968 = load double, ptr %27, align 8, !tbaa !9
  %969 = fneg double %968
  %970 = call double @llvm.fmuladd.f64(double %969, double %968, double 1.000000e+00)
  %971 = load double, ptr %28, align 8, !tbaa !9
  %972 = fcmp ole double %970, 0.000000e+00
  %973 = select i1 %972, double 0.000000e+00, double %970
  %sqrt1672 = call double @llvm.sqrt.f64(double %973)
  %974 = fmul double %971, %sqrt1672
  store double %974, ptr %608, align 8, !tbaa !9
  %975 = load double, ptr %32, align 8
  %976 = fcmp oge double %.41453, %975
  %977 = select i1 %976, double %.41453, double %975
  br label %978

978:                                              ; preds = %748, %877, %858, %916, %935, %888, %906, %824, %815, %847, %829, %944
  %.51454 = phi double [ %768, %748 ], [ %782, %824 ], [ %782, %815 ], [ %782, %847 ], [ %782, %829 ], [ %782, %877 ], [ %782, %858 ], [ %782, %906 ], [ %782, %888 ], [ %782, %935 ], [ %782, %916 ], [ %977, %944 ]
  %979 = load double, ptr %608, align 8, !tbaa !9
  %980 = load double, ptr %28, align 8, !tbaa !9
  %981 = fdiv double %979, %980
  store double %981, ptr %19, align 8, !tbaa !9
  %982 = fmul double %981, %981
  %983 = fcmp ugt double %982, %109
  br i1 %983, label %1000, label %984

984:                                              ; preds = %978
  %985 = fcmp olt double %980, %114
  %986 = fcmp ogt double %980, %111
  %or.cond1645 = and i1 %985, %986
  br i1 %or.cond1645, label %987, label %990

987:                                              ; preds = %984
  %988 = mul nsw i64 %.51506, %36
  %gep1846 = getelementptr double, ptr %invariant.gep2052, i64 %988
  %989 = call double @f2c_dnrm2(ptr noundef nonnull %3, ptr noundef %gep1846, ptr noundef nonnull @c__1) #7
  br label %.sink.split

990:                                              ; preds = %984
  store double 0.000000e+00, ptr %21, align 8, !tbaa !9
  store double 0.000000e+00, ptr %28, align 8, !tbaa !9
  %991 = mul nsw i64 %.51506, %36
  %gep1844 = getelementptr double, ptr %invariant.gep2052, i64 %991
  %992 = call i32 @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1844, ptr noundef nonnull @c__1, ptr noundef nonnull %21, ptr noundef nonnull %28) #7
  %993 = load double, ptr %21, align 8, !tbaa !9
  %994 = load double, ptr %28, align 8, !tbaa !9
  %995 = call double @sqrt(double noundef %994) #7
  %996 = fmul double %993, %995
  br label %.sink.split

.sink.split:                                      ; preds = %990, %987
  %.sink2179 = phi double [ %989, %987 ], [ %996, %990 ]
  %997 = getelementptr double, ptr %11, i64 %.51506.in
  %998 = load double, ptr %997, align 8, !tbaa !9
  %999 = fmul double %.sink2179, %998
  store double %999, ptr %608, align 8, !tbaa !9
  br label %1000

1000:                                             ; preds = %.sink.split, %978
  %1001 = load double, ptr %26, align 8, !tbaa !9
  %1002 = fdiv double %1001, %612
  %1003 = fcmp ugt double %1002, %109
  br i1 %1003, label %1028, label %1004

1004:                                             ; preds = %1000
  %1005 = fcmp olt double %1001, %114
  %1006 = fcmp ogt double %1001, %111
  %or.cond1646 = and i1 %1005, %1006
  br i1 %or.cond1646, label %1007, label %1011

1007:                                             ; preds = %1004
  %1008 = load i64, ptr %20, align 8, !tbaa !5
  %1009 = mul nsw i64 %1008, %36
  %gep1850 = getelementptr double, ptr %invariant.gep2052, i64 %1009
  %1010 = call double @f2c_dnrm2(ptr noundef nonnull %3, ptr noundef %gep1850, ptr noundef nonnull @c__1) #7
  br label %1019

1011:                                             ; preds = %1004
  store double 0.000000e+00, ptr %21, align 8, !tbaa !9
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  %1012 = load i64, ptr %20, align 8, !tbaa !5
  %1013 = mul nsw i64 %1012, %36
  %gep1848 = getelementptr double, ptr %invariant.gep2052, i64 %1013
  %1014 = call i32 @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1848, ptr noundef nonnull @c__1, ptr noundef nonnull %21, ptr noundef nonnull %26) #7
  %1015 = load double, ptr %21, align 8, !tbaa !9
  %1016 = load double, ptr %26, align 8, !tbaa !9
  %1017 = call double @sqrt(double noundef %1016) #7
  %1018 = fmul double %1015, %1017
  br label %1019

1019:                                             ; preds = %1011, %1007
  %.sink2182 = phi double [ %1018, %1011 ], [ %1010, %1007 ]
  %.sink2185 = load i64, ptr %20, align 8, !tbaa !5
  %1020 = getelementptr inbounds double, ptr %42, i64 %.sink2185
  %1021 = load double, ptr %1020, align 8, !tbaa !9
  %1022 = fmul double %.sink2182, %1021
  store double %1022, ptr %26, align 8, !tbaa !9
  %1023 = getelementptr inbounds double, ptr %35, i64 %.sink2185
  store double %1022, ptr %1023, align 8, !tbaa !9
  br label %1028

1024:                                             ; preds = %694
  %spec.select1647 = add nsw i64 %.31437, %553
  %1025 = add nsw i64 %.01495, 1
  br label %1028

1026:                                             ; preds = %607
  %spec.select1648 = add nsw i64 %.31437, %553
  %1027 = add nsw i64 %.01495, 1
  br label %1028

1028:                                             ; preds = %1024, %1019, %1000, %1026
  %.21497 = phi i64 [ %.11496, %1019 ], [ %.11496, %1000 ], [ %1025, %1024 ], [ %1027, %1026 ]
  %.51473 = phi double [ %700, %1019 ], [ %700, %1000 ], [ %700, %1024 ], [ %.41472, %1026 ]
  %.61455 = phi double [ %.51454, %1019 ], [ %.51454, %1000 ], [ %.41453, %1024 ], [ %.41453, %1026 ]
  %.71441 = phi i64 [ %.41438, %1019 ], [ %.41438, %1000 ], [ %spec.select1647, %1024 ], [ %spec.select1648, %1026 ]
  %.51432 = phi i64 [ %.41431, %1019 ], [ %.41431, %1000 ], [ %.31430, %1024 ], [ %.31430, %1026 ]
  %1029 = icmp sgt i64 %.21497, %388
  %or.cond1649 = select i1 %.not1636, i1 %1029, i1 false
  br i1 %or.cond1649, label %1030, label %605, !llvm.loop !28

1030:                                             ; preds = %1028
  %.pre2132 = load double, ptr %26, align 8, !tbaa !9
  br i1 %552, label %1031, label %.loopexit1683

1031:                                             ; preds = %1030
  %1032 = fneg double %.pre2132
  store double %1032, ptr %26, align 8, !tbaa !9
  br label %.loopexit1683

.loopexit1683.loopexit:                           ; preds = %605
  %.pre2131 = load double, ptr %26, align 8, !tbaa !9
  br label %.loopexit1683

.loopexit1683:                                    ; preds = %.loopexit1683.loopexit, %1030, %1031
  %1033 = phi double [ %1032, %1031 ], [ %.pre2132, %1030 ], [ %.pre2131, %.loopexit1683.loopexit ]
  %.61474 = phi double [ %.51473, %1031 ], [ %.51473, %1030 ], [ %.41472, %.loopexit1683.loopexit ]
  %.71456 = phi double [ %.61455, %1031 ], [ %.61455, %1030 ], [ %.41453, %.loopexit1683.loopexit ]
  %.81442 = phi i64 [ 0, %1031 ], [ 0, %1030 ], [ %.31437, %.loopexit1683.loopexit ]
  %.61433 = phi i64 [ %.51432, %1031 ], [ %.51432, %1030 ], [ %.31430, %.loopexit1683.loopexit ]
  %1034 = load i64, ptr %20, align 8, !tbaa !5
  %1035 = getelementptr inbounds double, ptr %35, i64 %1034
  store double %1033, ptr %1035, align 8, !tbaa !9
  br label %1042

1036:                                             ; preds = %._crit_edge2129
  %1037 = fcmp oeq double %storemerge1631, 0.000000e+00
  %or.cond19 = and i1 %552, %1037
  br i1 %or.cond19, label %1038, label %1042

1038:                                             ; preds = %1036
  store i64 %548, ptr %18, align 8, !tbaa !5
  %1039 = load i64, ptr %4, align 8, !tbaa !5
  %.1650 = call i64 @llvm.smin.i64(i64 %548, i64 %1039)
  %1040 = sub i64 %.214361867, %.pn
  %1041 = add i64 %1040, %.1650
  br label %1042

1042:                                             ; preds = %.loopexit1683, %1038, %1036
  %1043 = phi i64 [ %1034, %.loopexit1683 ], [ %.pn, %1038 ], [ %.pn, %1036 ]
  %.71475 = phi double [ %.61474, %.loopexit1683 ], [ %.314711865, %1038 ], [ %.314711865, %1036 ]
  %.81457 = phi double [ %.71456, %.loopexit1683 ], [ %.314521866, %1038 ], [ %.314521866, %1036 ]
  %.91443 = phi i64 [ %.81442, %.loopexit1683 ], [ %1041, %1038 ], [ %.214361867, %1036 ]
  %.7 = phi i64 [ %.61433, %.loopexit1683 ], [ %.214291868, %1038 ], [ %.214291868, %1036 ]
  %1044 = add nsw i64 %1043, 1
  store i64 %1044, ptr %20, align 8, !tbaa !5
  %1045 = load i64, ptr %17, align 8, !tbaa !5
  %.not1629.not = icmp slt i64 %1043, %1045
  br i1 %.not1629.not, label %554, label %._crit_edge1871.loopexit, !llvm.loop !29

._crit_edge1871.loopexit:                         ; preds = %1042
  %.pre2133 = load i64, ptr %16, align 8, !tbaa !5
  br label %._crit_edge1871

._crit_edge1871:                                  ; preds = %._crit_edge1871.loopexit, %.lr.ph1884
  %1046 = phi i64 [ %545, %.lr.ph1884 ], [ %.pre2133, %._crit_edge1871.loopexit ]
  %.31471.lcssa = phi double [ %.214701879, %.lr.ph1884 ], [ %.71475, %._crit_edge1871.loopexit ]
  %.31452.lcssa = phi double [ %.214511880, %.lr.ph1884 ], [ %.81457, %._crit_edge1871.loopexit ]
  %.21436.lcssa = phi i64 [ %.114351881, %.lr.ph1884 ], [ %.91443, %._crit_edge1871.loopexit ]
  %.21429.lcssa = phi i64 [ %.114281882, %.lr.ph1884 ], [ %.7, %._crit_edge1871.loopexit ]
  %1047 = add nuw nsw i64 %.015081878, 1
  %.not1613.not = icmp slt i64 %.015081878, %1046
  br i1 %.not1613.not, label %.lr.ph1884, label %._crit_edge1885, !llvm.loop !30

._crit_edge1885:                                  ; preds = %._crit_edge1871, %538
  %.21470.lcssa = phi double [ %.114692041, %538 ], [ %.31471.lcssa, %._crit_edge1871 ]
  %.21451.lcssa = phi double [ %.114502042, %538 ], [ %.31452.lcssa, %._crit_edge1871 ]
  %.11435.lcssa = phi i64 [ %.014342043, %538 ], [ %.21436.lcssa, %._crit_edge1871 ]
  %.11428.lcssa = phi i64 [ %.014272044, %538 ], [ %.21429.lcssa, %._crit_edge1871 ]
  store i64 %.01512, ptr %16, align 8, !tbaa !5
  %1048 = add nuw nsw i64 %.015142040, 1
  %.not16142021.not = icmp slt i64 %.015142040, %.01512
  %1049 = mul i64 %.015142040, %spec.select
  br i1 %.not16142021.not, label %.lr.ph2028, label %.loopexit1685

.lr.ph2028:                                       ; preds = %._crit_edge1885, %._crit_edge2016
  %1050 = phi i64 [ %1581, %._crit_edge2016 ], [ %.01512, %._crit_edge1885 ]
  %.82026 = phi i64 [ %.9.lcssa, %._crit_edge2016 ], [ %.11428.lcssa, %._crit_edge1885 ]
  %.1014442025 = phi i64 [ %.111445.lcssa, %._crit_edge2016 ], [ %.11435.lcssa, %._crit_edge1885 ]
  %.914582024 = phi double [ %.101459.lcssa, %._crit_edge2016 ], [ %.21451.lcssa, %._crit_edge1885 ]
  %.814762023 = phi double [ %.91477.lcssa, %._crit_edge2016 ], [ %.21470.lcssa, %._crit_edge1885 ]
  %.015102022 = phi i64 [ %1582, %._crit_edge2016 ], [ %1048, %._crit_edge1885 ]
  %1051 = add nsw i64 %.015102022, -1
  %1052 = mul nsw i64 %1051, %spec.select
  store i64 %1049, ptr %18, align 8, !tbaa !5
  %1053 = load i64, ptr %4, align 8, !tbaa !5
  %.1651 = call i64 @llvm.smin.i64(i64 %1049, i64 %1053)
  store i64 %.1651, ptr %17, align 8, !tbaa !5
  store i64 %542, ptr %20, align 8, !tbaa !5
  %.not16172007.not = icmp slt i64 %541, %.1651
  br i1 %.not16172007.not, label %.lr.ph2015, label %._crit_edge2016

.lr.ph2015:                                       ; preds = %.lr.ph2028
  %1054 = mul i64 %.015102022, %spec.select
  br label %1055

1055:                                             ; preds = %.lr.ph2015, %1577
  %1056 = phi i64 [ %.1651, %.lr.ph2015 ], [ %1578, %1577 ]
  %.92013 = phi i64 [ %.82026, %.lr.ph2015 ], [ %.13, %1577 ]
  %.1114452012 = phi i64 [ %.1014442025, %.lr.ph2015 ], [ %.16, %1577 ]
  %.1014592011 = phi double [ %.914582024, %.lr.ph2015 ], [ %.151464, %1577 ]
  %.914772010 = phi double [ %.814762023, %.lr.ph2015 ], [ %.131481, %1577 ]
  %.014862009 = phi i64 [ 0, %.lr.ph2015 ], [ %.41490, %1577 ]
  %storemerge16162008 = phi i64 [ %542, %.lr.ph2015 ], [ %1580, %1577 ]
  %1057 = getelementptr inbounds double, ptr %35, i64 %storemerge16162008
  %1058 = load double, ptr %1057, align 8, !tbaa !9
  store double %1058, ptr %26, align 8, !tbaa !9
  %1059 = fcmp ogt double %1058, 0.000000e+00
  br i1 %1059, label %1060, label %1568

1060:                                             ; preds = %1055
  %1061 = load i64, ptr %4, align 8, !tbaa !5
  %.1652 = call i64 @llvm.smin.i64(i64 %1054, i64 %1061)
  store i64 %.1652, ptr %18, align 8, !tbaa !5
  %.not16201990.not = icmp slt i64 %1052, %.1652
  br i1 %.not16201990.not, label %.lr.ph2001, label %.loopexit1682

1062:                                             ; preds = %1560
  %1063 = load i64, ptr %18, align 8, !tbaa !5
  %.not1620.not = icmp slt i64 %.615071991, %1063
  br i1 %.not1620.not, label %.lr.ph2001, label %.loopexit1682.loopexit, !llvm.loop !31

.lr.ph2001:                                       ; preds = %1060, %1062
  %.101999 = phi i64 [ %.11, %1062 ], [ %.92013, %1060 ]
  %.1214461998 = phi i64 [ %.131447, %1062 ], [ %.1114452012, %1060 ]
  %.1114601997 = phi double [ %.131462, %1062 ], [ %.1014592011, %1060 ]
  %.1014781996 = phi double [ %.111479, %1062 ], [ %.914772010, %1060 ]
  %.114871995 = phi i64 [ %.21488, %1062 ], [ %.014862009, %1060 ]
  %.314981994 = phi i64 [ %.41499, %1062 ], [ 0, %1060 ]
  %.615071991.in = phi i64 [ %.615071991, %1062 ], [ %1052, %1060 ]
  %.615071991 = add nsw i64 %.615071991.in, 1
  %1064 = getelementptr double, ptr %7, i64 %.615071991.in
  %1065 = load double, ptr %1064, align 8, !tbaa !9
  store double %1065, ptr %28, align 8, !tbaa !9
  %1066 = fcmp ogt double %1065, 0.000000e+00
  br i1 %1066, label %1067, label %1551

1067:                                             ; preds = %.lr.ph2001
  %1068 = load double, ptr %26, align 8, !tbaa !9
  %1069 = fcmp ult double %1065, 1.000000e+00
  %1070 = fcmp ult double %1068, %1065
  br i1 %1069, label %1112, label %1071

1071:                                             ; preds = %1067
  %1072 = fmul double %112, %1068
  %1073 = fcmp ole double %1072, %1065
  %1074 = fmul double %112, %1065
  %1075 = fcmp ole double %1074, %1068
  %.11492.in = select i1 %1070, i1 %1075, i1 %1073
  %1076 = fdiv double %113, %1065
  %1077 = fcmp olt double %1068, %1076
  %1078 = load i64, ptr %20, align 8, !tbaa !5
  %1079 = mul nsw i64 %1078, %36
  %gep1895 = getelementptr double, ptr %invariant.gep2052, i64 %1079
  br i1 %1077, label %1080, label %1094

1080:                                             ; preds = %1071
  %1081 = mul nsw i64 %.615071991, %36
  %gep1897 = getelementptr double, ptr %invariant.gep2052, i64 %1081
  %1082 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %gep1895, ptr noundef nonnull @c__1, ptr noundef %gep1897, ptr noundef nonnull @c__1) #7
  %1083 = load i64, ptr %20, align 8, !tbaa !5
  %1084 = getelementptr inbounds double, ptr %42, i64 %1083
  %1085 = load double, ptr %1084, align 8, !tbaa !9
  %1086 = fmul double %1082, %1085
  %1087 = getelementptr double, ptr %11, i64 %.615071991.in
  %1088 = load double, ptr %1087, align 8, !tbaa !9
  %1089 = fmul double %1086, %1088
  %1090 = load double, ptr %28, align 8, !tbaa !9
  %1091 = fdiv double %1089, %1090
  %1092 = load double, ptr %26, align 8, !tbaa !9
  %1093 = fdiv double %1091, %1092
  store double %1093, ptr %27, align 8, !tbaa !9
  br label %1159

1094:                                             ; preds = %1071
  %1095 = load i64, ptr %4, align 8, !tbaa !5
  %1096 = getelementptr double, ptr %11, i64 %1095
  %1097 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep1895, ptr noundef nonnull @c__1, ptr noundef %1096, ptr noundef nonnull @c__1) #7
  %1098 = load i64, ptr %20, align 8, !tbaa !5
  %1099 = getelementptr inbounds double, ptr %42, i64 %1098
  %1100 = load i64, ptr %4, align 8, !tbaa !5
  %1101 = getelementptr double, ptr %11, i64 %1100
  %1102 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull %1099, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %1101, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %1103 = load i64, ptr %4, align 8, !tbaa !5
  %1104 = getelementptr double, ptr %11, i64 %1103
  %1105 = mul nsw i64 %.615071991, %36
  %gep1893 = getelementptr double, ptr %invariant.gep2052, i64 %1105
  %1106 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %1104, ptr noundef nonnull @c__1, ptr noundef %gep1893, ptr noundef nonnull @c__1) #7
  %1107 = getelementptr double, ptr %11, i64 %.615071991.in
  %1108 = load double, ptr %1107, align 8, !tbaa !9
  %1109 = fmul double %1106, %1108
  %1110 = load double, ptr %28, align 8, !tbaa !9
  %1111 = fdiv double %1109, %1110
  store double %1111, ptr %27, align 8, !tbaa !9
  br label %1159

1112:                                             ; preds = %1067
  %1113 = insertelement <2 x double> poison, double %1065, i64 0
  %1114 = insertelement <2 x double> %1113, double %1068, i64 1
  %1115 = fdiv <2 x double> %1114, %535
  %1116 = insertelement <2 x double> poison, double %1068, i64 0
  %1117 = insertelement <2 x double> %1116, double %1065, i64 1
  %1118 = fcmp ole <2 x double> %1117, %1115
  %1119 = extractelement <2 x i1> %1118, i64 0
  %1120 = extractelement <2 x i1> %1118, i64 1
  %.21493.in = select i1 %1070, i1 %1120, i1 %1119
  %1121 = fdiv double %112, %1065
  %1122 = fcmp ogt double %1068, %1121
  br i1 %1122, label %1123, label %1139

1123:                                             ; preds = %1112
  %1124 = load i64, ptr %20, align 8, !tbaa !5
  %1125 = mul nsw i64 %1124, %36
  %gep1903 = getelementptr double, ptr %invariant.gep2052, i64 %1125
  %1126 = mul nsw i64 %.615071991, %36
  %gep1905 = getelementptr double, ptr %invariant.gep2052, i64 %1126
  %1127 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %gep1903, ptr noundef nonnull @c__1, ptr noundef %gep1905, ptr noundef nonnull @c__1) #7
  %1128 = load i64, ptr %20, align 8, !tbaa !5
  %1129 = getelementptr inbounds double, ptr %42, i64 %1128
  %1130 = load double, ptr %1129, align 8, !tbaa !9
  %1131 = fmul double %1127, %1130
  %1132 = getelementptr double, ptr %11, i64 %.615071991.in
  %1133 = load double, ptr %1132, align 8, !tbaa !9
  %1134 = fmul double %1131, %1133
  %1135 = load double, ptr %28, align 8, !tbaa !9
  %1136 = fdiv double %1134, %1135
  %1137 = load double, ptr %26, align 8, !tbaa !9
  %1138 = fdiv double %1136, %1137
  store double %1138, ptr %27, align 8, !tbaa !9
  br label %1159

1139:                                             ; preds = %1112
  %1140 = mul nsw i64 %.615071991, %36
  %gep1899 = getelementptr double, ptr %invariant.gep2052, i64 %1140
  %1141 = load i64, ptr %4, align 8, !tbaa !5
  %1142 = getelementptr double, ptr %11, i64 %1141
  %1143 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep1899, ptr noundef nonnull @c__1, ptr noundef %1142, ptr noundef nonnull @c__1) #7
  %1144 = getelementptr double, ptr %11, i64 %.615071991.in
  %1145 = load i64, ptr %4, align 8, !tbaa !5
  %1146 = getelementptr double, ptr %11, i64 %1145
  %1147 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %28, ptr noundef nonnull %1144, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %1146, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %1148 = load i64, ptr %4, align 8, !tbaa !5
  %1149 = getelementptr double, ptr %11, i64 %1148
  %1150 = load i64, ptr %20, align 8, !tbaa !5
  %1151 = mul nsw i64 %1150, %36
  %gep1901 = getelementptr double, ptr %invariant.gep2052, i64 %1151
  %1152 = call double @f2c_ddot(ptr noundef nonnull %3, ptr noundef %1149, ptr noundef nonnull @c__1, ptr noundef %gep1901, ptr noundef nonnull @c__1) #7
  %1153 = load i64, ptr %20, align 8, !tbaa !5
  %1154 = getelementptr inbounds double, ptr %42, i64 %1153
  %1155 = load double, ptr %1154, align 8, !tbaa !9
  %1156 = fmul double %1152, %1155
  %1157 = load double, ptr %26, align 8, !tbaa !9
  %1158 = fdiv double %1156, %1157
  store double %1158, ptr %27, align 8, !tbaa !9
  br label %1159

1159:                                             ; preds = %1123, %1139, %1080, %1094
  %1160 = phi double [ %1093, %1080 ], [ %1111, %1094 ], [ %1138, %1123 ], [ %1158, %1139 ]
  %.31494.in = phi i1 [ %.11492.in, %1080 ], [ %.11492.in, %1094 ], [ %.21493.in, %1123 ], [ %.21493.in, %1139 ]
  store double %.1014781996, ptr %19, align 8, !tbaa !9
  %1161 = fcmp oge double %1160, 0.000000e+00
  %1162 = fneg double %1160
  %1163 = select i1 %1161, double %1160, double %1162
  %1164 = fcmp oge double %.1014781996, %1163
  %1165 = select i1 %1164, double %.1014781996, double %1163
  %1166 = load double, ptr %24, align 8, !tbaa !9
  %1167 = fcmp ogt double %1163, %1166
  br i1 %1167, label %1168, label %1547

1168:                                             ; preds = %1159
  %1169 = add nsw i64 %.101999, 1
  br i1 %.31494.in, label %1170, label %1423

1170:                                             ; preds = %1168
  %1171 = load double, ptr %28, align 8, !tbaa !9
  %1172 = load double, ptr %26, align 8, !tbaa !9
  %1173 = insertelement <2 x double> poison, double %1171, i64 0
  %1174 = insertelement <2 x double> %1173, double %1172, i64 1
  %1175 = insertelement <2 x double> poison, double %1172, i64 0
  %1176 = insertelement <2 x double> %1175, double %1171, i64 1
  %1177 = fdiv <2 x double> %1174, %1176
  %1178 = extractelement <2 x double> %1177, i64 0
  %1179 = extractelement <2 x double> %1177, i64 1
  %1180 = fsub double %1178, %1179
  store double %1180, ptr %19, align 8, !tbaa !9
  %1181 = fcmp oge double %1180, 0.000000e+00
  %1182 = fneg double %1180
  %1183 = select i1 %1181, double %1180, double %1182
  %1184 = fmul double %1183, -5.000000e-01
  %1185 = fdiv double %1184, %1160
  %1186 = fcmp ogt double %1171, %1068
  %1187 = fneg double %1185
  %.01509 = select i1 %1186, double %1187, double %1185
  %1188 = fcmp oge double %.01509, 0.000000e+00
  %1189 = fneg double %.01509
  %1190 = select i1 %1188, double %.01509, double %1189
  %1191 = fcmp ogt double %1190, %121
  br i1 %1191, label %1192, label %1241

1192:                                             ; preds = %1170
  %1193 = fdiv double 5.000000e-01, %.01509
  store double %1193, ptr %21, align 8, !tbaa !9
  %1194 = load i64, ptr %20, align 8, !tbaa !5
  %1195 = getelementptr inbounds double, ptr %42, i64 %1194
  %1196 = load double, ptr %1195, align 8, !tbaa !9
  %1197 = getelementptr double, ptr %11, i64 %.615071991.in
  %1198 = load double, ptr %1197, align 8, !tbaa !9
  %1199 = fneg double %1193
  %1200 = insertelement <2 x double> poison, double %1193, i64 0
  %1201 = insertelement <2 x double> %1200, double %1198, i64 1
  %1202 = insertelement <2 x double> poison, double %1196, i64 0
  %1203 = insertelement <2 x double> %1202, double %1199, i64 1
  %1204 = fmul <2 x double> %1201, %1203
  %1205 = insertelement <2 x double> poison, double %1198, i64 0
  %1206 = insertelement <2 x double> %1205, double %1196, i64 1
  %1207 = fdiv <2 x double> %1204, %1206
  store <2 x double> %1207, ptr %533, align 16, !tbaa !9
  %1208 = mul nsw i64 %1194, %36
  %gep1975 = getelementptr double, ptr %invariant.gep2052, i64 %1208
  %1209 = mul nsw i64 %.615071991, %36
  %gep1977 = getelementptr double, ptr %invariant.gep2052, i64 %1209
  %1210 = call i32 @f2c_drotm(ptr noundef nonnull %3, ptr noundef %gep1975, ptr noundef nonnull @c__1, ptr noundef %gep1977, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br i1 %or.cond5, label %1211, label %1216

1211:                                             ; preds = %1192
  %1212 = load i64, ptr %20, align 8, !tbaa !5
  %1213 = mul nsw i64 %1212, %39
  %gep1979 = getelementptr double, ptr %invariant.gep1855, i64 %1213
  %1214 = mul nsw i64 %.615071991, %39
  %gep1981 = getelementptr double, ptr %invariant.gep1855, i64 %1214
  %1215 = call i32 @f2c_drotm(ptr noundef nonnull %25, ptr noundef %gep1979, ptr noundef nonnull @c__1, ptr noundef %gep1981, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br label %1216

1216:                                             ; preds = %1211, %1192
  %1217 = load double, ptr %21, align 8
  %1218 = load double, ptr %27, align 8, !tbaa !9
  %1219 = load double, ptr %28, align 8, !tbaa !9
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1220 = fneg double %1217
  %1221 = insertelement <2 x double> poison, double %1220, i64 0
  %1222 = insertelement <2 x double> %1221, double %1217, i64 1
  %1223 = fmul <2 x double> %1177, %1222
  %1224 = insertelement <2 x double> poison, double %1218, i64 0
  %1225 = shufflevector <2 x double> %1224, <2 x double> poison, <2 x i32> zeroinitializer
  %1226 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1223, <2 x double> %1225, <2 x double> <double 1.000000e+00, double 1.000000e+00>)
  %1227 = fcmp ole <2 x double> %1226, zeroinitializer
  %1228 = extractelement <2 x i1> %1227, i64 1
  %1229 = extractelement <2 x double> %1226, i64 1
  %1230 = select i1 %1228, double 0.000000e+00, double %1229
  %sqrt1674 = call double @llvm.sqrt.f64(double %1230)
  %1231 = fmul double %1219, %sqrt1674
  store double %1231, ptr %1064, align 8, !tbaa !9
  %1232 = extractelement <2 x i1> %1227, i64 0
  %1233 = extractelement <2 x double> %1226, i64 0
  %1234 = select i1 %1232, double 0.000000e+00, double %1233
  %sqrt1673 = call double @llvm.sqrt.f64(double %1234)
  %1235 = load double, ptr %26, align 8, !tbaa !9
  %1236 = fmul double %1235, %sqrt1673
  store double %1236, ptr %26, align 8, !tbaa !9
  %1237 = fcmp oge double %1217, 0.000000e+00
  %1238 = select i1 %1237, double %1217, double %1220
  %1239 = fcmp oge double %.1114601997, %1238
  %1240 = select i1 %1239, double %.1114601997, double %1238
  br label %1500

1241:                                             ; preds = %1170
  %1242 = call double @d_sign(ptr noundef nonnull @c_b18, ptr noundef nonnull %27) #7
  %1243 = fneg double %1242
  %1244 = load double, ptr %28, align 8, !tbaa !9
  %1245 = fcmp ogt double %1244, %1068
  %.01467 = select i1 %1245, double %1242, double %1243
  %1246 = call double @llvm.fmuladd.f64(double %.01509, double %.01509, double 1.000000e+00)
  %sqrt1677 = call double @llvm.sqrt.f64(double %1246)
  %1247 = call double @llvm.fmuladd.f64(double %.01467, double %sqrt1677, double %.01509)
  %1248 = fdiv double 1.000000e+00, %1247
  store double %1248, ptr %21, align 8, !tbaa !9
  %1249 = call double @llvm.fmuladd.f64(double %1248, double %1248, double 1.000000e+00)
  %1250 = fdiv double 1.000000e+00, %1249
  %sqrt1676 = call double @llvm.sqrt.f64(double %1250)
  %1251 = fmul double %1248, %sqrt1676
  %1252 = fcmp oge double %1251, 0.000000e+00
  %1253 = fneg double %1251
  %1254 = select i1 %1252, double %1251, double %1253
  %1255 = fcmp oge double %.1114601997, %1254
  %1256 = select i1 %1255, double %.1114601997, double %1254
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1257 = fmul double %1179, %1248
  %1258 = load double, ptr %27, align 8, !tbaa !9
  %1259 = call double @llvm.fmuladd.f64(double %1257, double %1258, double 1.000000e+00)
  %1260 = fcmp ole double %1259, 0.000000e+00
  %1261 = select i1 %1260, double 0.000000e+00, double %1259
  %sqrt1675 = call double @llvm.sqrt.f64(double %1261)
  %1262 = fmul double %1244, %sqrt1675
  store double %1262, ptr %1064, align 8, !tbaa !9
  %1263 = fneg double %1248
  %1264 = fmul double %1178, %1263
  %1265 = call double @llvm.fmuladd.f64(double %1264, double %1258, double 1.000000e+00)
  %1266 = call double @sqrt(double noundef %1265) #7
  %1267 = load double, ptr %26, align 8, !tbaa !9
  %1268 = fmul double %1266, %1267
  store double %1268, ptr %26, align 8, !tbaa !9
  %1269 = load i64, ptr %20, align 8, !tbaa !5
  %1270 = getelementptr inbounds double, ptr %42, i64 %1269
  %1271 = load double, ptr %1270, align 8, !tbaa !9
  %1272 = getelementptr double, ptr %11, i64 %.615071991.in
  %1273 = load double, ptr %1272, align 8, !tbaa !9
  %1274 = insertelement <2 x double> poison, double %1273, i64 0
  %1275 = insertelement <2 x double> %1274, double %1271, i64 1
  %1276 = insertelement <2 x double> poison, double %1271, i64 0
  %1277 = insertelement <2 x double> %1276, double %1273, i64 1
  %1278 = fdiv <2 x double> %1275, %1277
  %1279 = fcmp ult double %1271, 1.000000e+00
  %1280 = fcmp ult double %1273, 1.000000e+00
  br i1 %1279, label %1331, label %1281

1281:                                             ; preds = %1241
  %1282 = load double, ptr %21, align 8, !tbaa !9
  br i1 %1280, label %1300, label %1283

1283:                                             ; preds = %1281
  %1284 = fneg double %1282
  %1285 = insertelement <2 x double> poison, double %1284, i64 0
  %1286 = insertelement <2 x double> %1285, double %1282, i64 1
  %1287 = fmul <2 x double> %1278, %1286
  %1288 = shufflevector <2 x double> %1287, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  store <2 x double> %1288, ptr %533, align 16, !tbaa !9
  %1289 = fmul double %sqrt1676, %1271
  store double %1289, ptr %1270, align 8, !tbaa !9
  %1290 = load double, ptr %1272, align 8, !tbaa !9
  %1291 = fmul double %sqrt1676, %1290
  store double %1291, ptr %1272, align 8, !tbaa !9
  %1292 = mul nsw i64 %1269, %36
  %gep1919 = getelementptr double, ptr %invariant.gep2052, i64 %1292
  %1293 = mul nsw i64 %.615071991, %36
  %gep1921 = getelementptr double, ptr %invariant.gep2052, i64 %1293
  %1294 = call i32 @f2c_drotm(ptr noundef nonnull %3, ptr noundef %gep1919, ptr noundef nonnull @c__1, ptr noundef %gep1921, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br i1 %or.cond5, label %1295, label %1500

1295:                                             ; preds = %1283
  %1296 = load i64, ptr %20, align 8, !tbaa !5
  %1297 = mul nsw i64 %1296, %39
  %gep1923 = getelementptr double, ptr %invariant.gep1855, i64 %1297
  %1298 = mul nsw i64 %.615071991, %39
  %gep1925 = getelementptr double, ptr %invariant.gep1855, i64 %1298
  %1299 = call i32 @f2c_drotm(ptr noundef nonnull %25, ptr noundef %gep1923, ptr noundef nonnull @c__1, ptr noundef %gep1925, ptr noundef nonnull @c__1, ptr noundef nonnull %33) #7
  br label %1500

1300:                                             ; preds = %1281
  %1301 = fneg double %1282
  %1302 = extractelement <2 x double> %1278, i64 0
  %1303 = fmul double %1302, %1301
  store double %1303, ptr %19, align 8, !tbaa !9
  %1304 = mul nsw i64 %.615071991, %36
  %gep1927 = getelementptr double, ptr %invariant.gep2052, i64 %1304
  %1305 = mul nsw i64 %1269, %36
  %gep1929 = getelementptr double, ptr %invariant.gep2052, i64 %1305
  %1306 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1927, ptr noundef nonnull @c__1, ptr noundef %gep1929, ptr noundef nonnull @c__1) #7
  %1307 = fmul double %sqrt1676, %1251
  %1308 = extractelement <2 x double> %1278, i64 1
  %1309 = fmul double %1307, %1308
  store double %1309, ptr %19, align 8, !tbaa !9
  %1310 = load i64, ptr %20, align 8, !tbaa !5
  %1311 = mul nsw i64 %1310, %36
  %gep1931 = getelementptr double, ptr %invariant.gep2052, i64 %1311
  %1312 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1931, ptr noundef nonnull @c__1, ptr noundef %gep1927, ptr noundef nonnull @c__1) #7
  br i1 %or.cond5, label %1313, label %1324

1313:                                             ; preds = %1300
  %1314 = load double, ptr %21, align 8, !tbaa !9
  %1315 = fneg double %1314
  %1316 = fmul double %1302, %1315
  store double %1316, ptr %19, align 8, !tbaa !9
  %1317 = mul nsw i64 %.615071991, %39
  %gep1933 = getelementptr double, ptr %invariant.gep1855, i64 %1317
  %1318 = load i64, ptr %20, align 8, !tbaa !5
  %1319 = mul nsw i64 %1318, %39
  %gep1935 = getelementptr double, ptr %invariant.gep1855, i64 %1319
  %1320 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1933, ptr noundef nonnull @c__1, ptr noundef %gep1935, ptr noundef nonnull @c__1) #7
  store double %1309, ptr %19, align 8, !tbaa !9
  %1321 = load i64, ptr %20, align 8, !tbaa !5
  %1322 = mul nsw i64 %1321, %39
  %gep1937 = getelementptr double, ptr %invariant.gep1855, i64 %1322
  %1323 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1937, ptr noundef nonnull @c__1, ptr noundef %gep1933, ptr noundef nonnull @c__1) #7
  br label %1324

1324:                                             ; preds = %1313, %1300
  %1325 = load i64, ptr %20, align 8, !tbaa !5
  %1326 = getelementptr inbounds double, ptr %42, i64 %1325
  %1327 = load double, ptr %1326, align 8, !tbaa !9
  %1328 = fmul double %sqrt1676, %1327
  store double %1328, ptr %1326, align 8, !tbaa !9
  %1329 = load double, ptr %1272, align 8, !tbaa !9
  %1330 = fdiv double %1329, %sqrt1676
  store double %1330, ptr %1272, align 8, !tbaa !9
  br label %1500

1331:                                             ; preds = %1241
  br i1 %1280, label %1363, label %1332

1332:                                             ; preds = %1331
  %1333 = load double, ptr %21, align 8, !tbaa !9
  %1334 = extractelement <2 x double> %1278, i64 1
  %1335 = fmul double %1334, %1333
  store double %1335, ptr %19, align 8, !tbaa !9
  %1336 = mul nsw i64 %1269, %36
  %gep1939 = getelementptr double, ptr %invariant.gep2052, i64 %1336
  %1337 = mul nsw i64 %.615071991, %36
  %gep1941 = getelementptr double, ptr %invariant.gep2052, i64 %1337
  %1338 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1939, ptr noundef nonnull @c__1, ptr noundef %gep1941, ptr noundef nonnull @c__1) #7
  %1339 = fneg double %sqrt1676
  %1340 = fmul double %1251, %1339
  %1341 = extractelement <2 x double> %1278, i64 0
  %1342 = fmul double %1340, %1341
  store double %1342, ptr %19, align 8, !tbaa !9
  %1343 = load i64, ptr %20, align 8, !tbaa !5
  %1344 = mul nsw i64 %1343, %36
  %gep1943 = getelementptr double, ptr %invariant.gep2052, i64 %1344
  %1345 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1941, ptr noundef nonnull @c__1, ptr noundef %gep1943, ptr noundef nonnull @c__1) #7
  br i1 %or.cond5, label %1346, label %1356

1346:                                             ; preds = %1332
  %1347 = load double, ptr %21, align 8, !tbaa !9
  %1348 = fmul double %1334, %1347
  store double %1348, ptr %19, align 8, !tbaa !9
  %1349 = load i64, ptr %20, align 8, !tbaa !5
  %1350 = mul nsw i64 %1349, %39
  %gep1945 = getelementptr double, ptr %invariant.gep1855, i64 %1350
  %1351 = mul nsw i64 %.615071991, %39
  %gep1947 = getelementptr double, ptr %invariant.gep1855, i64 %1351
  %1352 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1945, ptr noundef nonnull @c__1, ptr noundef %gep1947, ptr noundef nonnull @c__1) #7
  store double %1342, ptr %19, align 8, !tbaa !9
  %1353 = load i64, ptr %20, align 8, !tbaa !5
  %1354 = mul nsw i64 %1353, %39
  %gep1949 = getelementptr double, ptr %invariant.gep1855, i64 %1354
  %1355 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1947, ptr noundef nonnull @c__1, ptr noundef %gep1949, ptr noundef nonnull @c__1) #7
  br label %1356

1356:                                             ; preds = %1346, %1332
  %1357 = load i64, ptr %20, align 8, !tbaa !5
  %1358 = getelementptr inbounds double, ptr %42, i64 %1357
  %1359 = load double, ptr %1358, align 8, !tbaa !9
  %1360 = fdiv double %1359, %sqrt1676
  store double %1360, ptr %1358, align 8, !tbaa !9
  %1361 = load double, ptr %1272, align 8, !tbaa !9
  %1362 = fmul double %sqrt1676, %1361
  store double %1362, ptr %1272, align 8, !tbaa !9
  br label %1500

1363:                                             ; preds = %1331
  %1364 = fcmp ult double %1271, %1273
  %1365 = load double, ptr %21, align 8, !tbaa !9
  br i1 %1364, label %1395, label %1366

1366:                                             ; preds = %1363
  %1367 = fneg double %1365
  %1368 = extractelement <2 x double> %1278, i64 0
  %1369 = fmul double %1368, %1367
  store double %1369, ptr %19, align 8, !tbaa !9
  %1370 = mul nsw i64 %.615071991, %36
  %gep1951 = getelementptr double, ptr %invariant.gep2052, i64 %1370
  %1371 = mul nsw i64 %1269, %36
  %gep1953 = getelementptr double, ptr %invariant.gep2052, i64 %1371
  %1372 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1951, ptr noundef nonnull @c__1, ptr noundef %gep1953, ptr noundef nonnull @c__1) #7
  %1373 = fmul double %sqrt1676, %1251
  %1374 = extractelement <2 x double> %1278, i64 1
  %1375 = fmul double %1373, %1374
  store double %1375, ptr %19, align 8, !tbaa !9
  %1376 = load i64, ptr %20, align 8, !tbaa !5
  %1377 = mul nsw i64 %1376, %36
  %gep1955 = getelementptr double, ptr %invariant.gep2052, i64 %1377
  %1378 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1955, ptr noundef nonnull @c__1, ptr noundef %gep1951, ptr noundef nonnull @c__1) #7
  %1379 = load i64, ptr %20, align 8, !tbaa !5
  %1380 = getelementptr inbounds double, ptr %42, i64 %1379
  %1381 = load double, ptr %1380, align 8, !tbaa !9
  %1382 = fmul double %sqrt1676, %1381
  store double %1382, ptr %1380, align 8, !tbaa !9
  %1383 = load double, ptr %1272, align 8, !tbaa !9
  %1384 = fdiv double %1383, %sqrt1676
  store double %1384, ptr %1272, align 8, !tbaa !9
  br i1 %or.cond5, label %1385, label %1500

1385:                                             ; preds = %1366
  %1386 = load double, ptr %21, align 8, !tbaa !9
  %1387 = fneg double %1386
  %1388 = fmul double %1368, %1387
  store double %1388, ptr %19, align 8, !tbaa !9
  %1389 = mul nsw i64 %.615071991, %39
  %gep1957 = getelementptr double, ptr %invariant.gep1855, i64 %1389
  %1390 = mul nsw i64 %1379, %39
  %gep1959 = getelementptr double, ptr %invariant.gep1855, i64 %1390
  %1391 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1957, ptr noundef nonnull @c__1, ptr noundef %gep1959, ptr noundef nonnull @c__1) #7
  store double %1375, ptr %19, align 8, !tbaa !9
  %1392 = load i64, ptr %20, align 8, !tbaa !5
  %1393 = mul nsw i64 %1392, %39
  %gep1961 = getelementptr double, ptr %invariant.gep1855, i64 %1393
  %1394 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1961, ptr noundef nonnull @c__1, ptr noundef %gep1957, ptr noundef nonnull @c__1) #7
  br label %1500

1395:                                             ; preds = %1363
  %1396 = extractelement <2 x double> %1278, i64 1
  %1397 = fmul double %1396, %1365
  store double %1397, ptr %19, align 8, !tbaa !9
  %1398 = mul nsw i64 %1269, %36
  %gep1963 = getelementptr double, ptr %invariant.gep2052, i64 %1398
  %1399 = mul nsw i64 %.615071991, %36
  %gep1965 = getelementptr double, ptr %invariant.gep2052, i64 %1399
  %1400 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1963, ptr noundef nonnull @c__1, ptr noundef %gep1965, ptr noundef nonnull @c__1) #7
  %1401 = fneg double %sqrt1676
  %1402 = fmul double %1251, %1401
  %1403 = extractelement <2 x double> %1278, i64 0
  %1404 = fmul double %1402, %1403
  store double %1404, ptr %19, align 8, !tbaa !9
  %1405 = load i64, ptr %20, align 8, !tbaa !5
  %1406 = mul nsw i64 %1405, %36
  %gep1967 = getelementptr double, ptr %invariant.gep2052, i64 %1406
  %1407 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep1965, ptr noundef nonnull @c__1, ptr noundef %gep1967, ptr noundef nonnull @c__1) #7
  %1408 = load i64, ptr %20, align 8, !tbaa !5
  %1409 = getelementptr inbounds double, ptr %42, i64 %1408
  %1410 = load double, ptr %1409, align 8, !tbaa !9
  %1411 = fdiv double %1410, %sqrt1676
  store double %1411, ptr %1409, align 8, !tbaa !9
  %1412 = load double, ptr %1272, align 8, !tbaa !9
  %1413 = fmul double %sqrt1676, %1412
  store double %1413, ptr %1272, align 8, !tbaa !9
  br i1 %or.cond5, label %1414, label %1500

1414:                                             ; preds = %1395
  %1415 = load double, ptr %21, align 8, !tbaa !9
  %1416 = fmul double %1396, %1415
  store double %1416, ptr %19, align 8, !tbaa !9
  %1417 = mul nsw i64 %1408, %39
  %gep1969 = getelementptr double, ptr %invariant.gep1855, i64 %1417
  %1418 = mul nsw i64 %.615071991, %39
  %gep1971 = getelementptr double, ptr %invariant.gep1855, i64 %1418
  %1419 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1969, ptr noundef nonnull @c__1, ptr noundef %gep1971, ptr noundef nonnull @c__1) #7
  store double %1404, ptr %19, align 8, !tbaa !9
  %1420 = load i64, ptr %20, align 8, !tbaa !5
  %1421 = mul nsw i64 %1420, %39
  %gep1973 = getelementptr double, ptr %invariant.gep1855, i64 %1421
  %1422 = call i32 @f2c_daxpy(ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef %gep1971, ptr noundef nonnull @c__1, ptr noundef %gep1973, ptr noundef nonnull @c__1) #7
  br label %1500

1423:                                             ; preds = %1168
  %1424 = load double, ptr %26, align 8, !tbaa !9
  %1425 = load double, ptr %28, align 8, !tbaa !9
  %1426 = fcmp ogt double %1424, %1425
  br i1 %1426, label %1427, label %1461

1427:                                             ; preds = %1423
  %1428 = load i64, ptr %20, align 8, !tbaa !5
  %1429 = mul nsw i64 %1428, %36
  %gep1915 = getelementptr double, ptr %invariant.gep2052, i64 %1429
  %1430 = load i64, ptr %4, align 8, !tbaa !5
  %1431 = getelementptr double, ptr %11, i64 %1430
  %1432 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep1915, ptr noundef nonnull @c__1, ptr noundef %1431, ptr noundef nonnull @c__1) #7
  %1433 = load i64, ptr %4, align 8, !tbaa !5
  %1434 = getelementptr double, ptr %11, i64 %1433
  %1435 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %1434, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %1436 = mul nsw i64 %.615071991, %36
  %gep1917 = getelementptr double, ptr %invariant.gep2052, i64 %1436
  %1437 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %28, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1917, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %1438 = load double, ptr %27, align 8, !tbaa !9
  %1439 = fneg double %1438
  %1440 = load i64, ptr %20, align 8, !tbaa !5
  %1441 = getelementptr inbounds double, ptr %42, i64 %1440
  %1442 = load double, ptr %1441, align 8, !tbaa !9
  %1443 = fmul double %1442, %1439
  %1444 = getelementptr double, ptr %11, i64 %.615071991.in
  %1445 = load double, ptr %1444, align 8, !tbaa !9
  %1446 = fdiv double %1443, %1445
  store double %1446, ptr %30, align 8, !tbaa !9
  %1447 = load i64, ptr %4, align 8, !tbaa !5
  %1448 = getelementptr double, ptr %11, i64 %1447
  %1449 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %30, ptr noundef %1448, ptr noundef nonnull @c__1, ptr noundef %gep1917, ptr noundef nonnull @c__1) #7
  %1450 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %28, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1917, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1451 = load double, ptr %27, align 8, !tbaa !9
  %1452 = fneg double %1451
  %1453 = call double @llvm.fmuladd.f64(double %1452, double %1451, double 1.000000e+00)
  %1454 = load double, ptr %28, align 8, !tbaa !9
  %1455 = fcmp ole double %1453, 0.000000e+00
  %1456 = select i1 %1455, double 0.000000e+00, double %1453
  %sqrt1678 = call double @llvm.sqrt.f64(double %1456)
  %1457 = fmul double %1454, %sqrt1678
  store double %1457, ptr %1064, align 8, !tbaa !9
  %1458 = load double, ptr %32, align 8
  %1459 = fcmp oge double %.1114601997, %1458
  %1460 = select i1 %1459, double %.1114601997, double %1458
  br label %1500

1461:                                             ; preds = %1423
  %1462 = mul nsw i64 %.615071991, %36
  %gep1907 = getelementptr double, ptr %invariant.gep2052, i64 %1462
  %1463 = load i64, ptr %4, align 8, !tbaa !5
  %1464 = getelementptr double, ptr %11, i64 %1463
  %1465 = call i32 @f2c_dcopy(ptr noundef nonnull %3, ptr noundef %gep1907, ptr noundef nonnull @c__1, ptr noundef %1464, ptr noundef nonnull @c__1) #7
  %1466 = load i64, ptr %4, align 8, !tbaa !5
  %1467 = getelementptr double, ptr %11, i64 %1466
  %1468 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %28, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %1467, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %1469 = load i64, ptr %20, align 8, !tbaa !5
  %1470 = mul nsw i64 %1469, %36
  %gep1909 = getelementptr double, ptr %invariant.gep2052, i64 %1470
  %1471 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %26, ptr noundef nonnull @c_b18, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1909, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  %1472 = load double, ptr %27, align 8, !tbaa !9
  %1473 = fneg double %1472
  %1474 = getelementptr double, ptr %11, i64 %.615071991.in
  %1475 = load double, ptr %1474, align 8, !tbaa !9
  %1476 = fmul double %1475, %1473
  %1477 = load i64, ptr %20, align 8, !tbaa !5
  %1478 = getelementptr inbounds double, ptr %42, i64 %1477
  %1479 = load double, ptr %1478, align 8, !tbaa !9
  %1480 = fdiv double %1476, %1479
  store double %1480, ptr %30, align 8, !tbaa !9
  %1481 = load i64, ptr %4, align 8, !tbaa !5
  %1482 = getelementptr double, ptr %11, i64 %1481
  %1483 = mul nsw i64 %1477, %36
  %gep1911 = getelementptr double, ptr %invariant.gep2052, i64 %1483
  %1484 = call i32 @f2c_daxpy(ptr noundef nonnull %3, ptr noundef nonnull %30, ptr noundef %1482, ptr noundef nonnull @c__1, ptr noundef %gep1911, ptr noundef nonnull @c__1) #7
  %1485 = load i64, ptr %20, align 8, !tbaa !5
  %1486 = mul nsw i64 %1485, %36
  %gep1913 = getelementptr double, ptr %invariant.gep2052, i64 %1486
  %1487 = call i32 @dlascl_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b18, ptr noundef nonnull %26, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %gep1913, ptr noundef nonnull %6, ptr noundef nonnull %29) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  %1488 = load double, ptr %27, align 8, !tbaa !9
  %1489 = fneg double %1488
  %1490 = call double @llvm.fmuladd.f64(double %1489, double %1488, double 1.000000e+00)
  %1491 = load double, ptr %26, align 8, !tbaa !9
  %1492 = fcmp ole double %1490, 0.000000e+00
  %1493 = select i1 %1492, double 0.000000e+00, double %1490
  %sqrt1679 = call double @llvm.sqrt.f64(double %1493)
  %1494 = fmul double %1491, %sqrt1679
  %1495 = load i64, ptr %20, align 8, !tbaa !5
  %1496 = getelementptr inbounds double, ptr %35, i64 %1495
  store double %1494, ptr %1496, align 8, !tbaa !9
  %1497 = load double, ptr %32, align 8
  %1498 = fcmp oge double %.1114601997, %1497
  %1499 = select i1 %1498, double %.1114601997, double %1497
  br label %1500

1500:                                             ; preds = %1427, %1461, %1216, %1356, %1395, %1414, %1366, %1385, %1324, %1295, %1283
  %.121461 = phi double [ %1240, %1216 ], [ %1256, %1295 ], [ %1256, %1283 ], [ %1256, %1324 ], [ %1256, %1356 ], [ %1256, %1385 ], [ %1256, %1366 ], [ %1256, %1414 ], [ %1256, %1395 ], [ %1460, %1427 ], [ %1499, %1461 ]
  %1501 = load double, ptr %1064, align 8, !tbaa !9
  %1502 = load double, ptr %28, align 8, !tbaa !9
  %1503 = fdiv double %1501, %1502
  store double %1503, ptr %19, align 8, !tbaa !9
  %1504 = fmul double %1503, %1503
  %1505 = fcmp ugt double %1504, %109
  br i1 %1505, label %1522, label %1506

1506:                                             ; preds = %1500
  %1507 = fcmp olt double %1502, %114
  %1508 = fcmp ogt double %1502, %111
  %or.cond1653 = and i1 %1507, %1508
  br i1 %or.cond1653, label %1509, label %1512

1509:                                             ; preds = %1506
  %1510 = mul nsw i64 %.615071991, %36
  %gep1985 = getelementptr double, ptr %invariant.gep2052, i64 %1510
  %1511 = call double @f2c_dnrm2(ptr noundef nonnull %3, ptr noundef %gep1985, ptr noundef nonnull @c__1) #7
  br label %.sink.split2186

1512:                                             ; preds = %1506
  store double 0.000000e+00, ptr %21, align 8, !tbaa !9
  store double 0.000000e+00, ptr %28, align 8, !tbaa !9
  %1513 = mul nsw i64 %.615071991, %36
  %gep1983 = getelementptr double, ptr %invariant.gep2052, i64 %1513
  %1514 = call i32 @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1983, ptr noundef nonnull @c__1, ptr noundef nonnull %21, ptr noundef nonnull %28) #7
  %1515 = load double, ptr %21, align 8, !tbaa !9
  %1516 = load double, ptr %28, align 8, !tbaa !9
  %1517 = call double @sqrt(double noundef %1516) #7
  %1518 = fmul double %1515, %1517
  br label %.sink.split2186

.sink.split2186:                                  ; preds = %1512, %1509
  %.sink2188 = phi double [ %1511, %1509 ], [ %1518, %1512 ]
  %1519 = getelementptr double, ptr %11, i64 %.615071991.in
  %1520 = load double, ptr %1519, align 8, !tbaa !9
  %1521 = fmul double %.sink2188, %1520
  store double %1521, ptr %1064, align 8, !tbaa !9
  br label %1522

1522:                                             ; preds = %.sink.split2186, %1500
  %1523 = load double, ptr %26, align 8, !tbaa !9
  %1524 = fdiv double %1523, %1068
  store double %1524, ptr %19, align 8, !tbaa !9
  %1525 = fmul double %1524, %1524
  %1526 = fcmp ugt double %1525, %109
  br i1 %1526, label %1555, label %1527

1527:                                             ; preds = %1522
  %1528 = fcmp olt double %1523, %114
  %1529 = fcmp ogt double %1523, %111
  %or.cond1654 = and i1 %1528, %1529
  br i1 %or.cond1654, label %1530, label %1534

1530:                                             ; preds = %1527
  %1531 = load i64, ptr %20, align 8, !tbaa !5
  %1532 = mul nsw i64 %1531, %36
  %gep1989 = getelementptr double, ptr %invariant.gep2052, i64 %1532
  %1533 = call double @f2c_dnrm2(ptr noundef nonnull %3, ptr noundef %gep1989, ptr noundef nonnull @c__1) #7
  br label %1542

1534:                                             ; preds = %1527
  store double 0.000000e+00, ptr %21, align 8, !tbaa !9
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  %1535 = load i64, ptr %20, align 8, !tbaa !5
  %1536 = mul nsw i64 %1535, %36
  %gep1987 = getelementptr double, ptr %invariant.gep2052, i64 %1536
  %1537 = call i32 @dlassq_(ptr noundef nonnull %3, ptr noundef %gep1987, ptr noundef nonnull @c__1, ptr noundef nonnull %21, ptr noundef nonnull %26) #7
  %1538 = load double, ptr %21, align 8, !tbaa !9
  %1539 = load double, ptr %26, align 8, !tbaa !9
  %1540 = call double @sqrt(double noundef %1539) #7
  %1541 = fmul double %1538, %1540
  br label %1542

1542:                                             ; preds = %1534, %1530
  %.sink2191 = phi double [ %1541, %1534 ], [ %1533, %1530 ]
  %.sink2194 = load i64, ptr %20, align 8, !tbaa !5
  %1543 = getelementptr inbounds double, ptr %42, i64 %.sink2194
  %1544 = load double, ptr %1543, align 8, !tbaa !9
  %1545 = fmul double %.sink2191, %1544
  store double %1545, ptr %26, align 8, !tbaa !9
  %1546 = getelementptr inbounds double, ptr %35, i64 %.sink2194
  store double %1545, ptr %1546, align 8, !tbaa !9
  br label %1555

1547:                                             ; preds = %1159
  %1548 = add nsw i64 %.1214461998, 1
  %1549 = add nsw i64 %.314981994, 1
  %1550 = add nsw i64 %.114871995, 1
  br label %1555

1551:                                             ; preds = %.lr.ph2001
  %1552 = add nsw i64 %.1214461998, 1
  %1553 = add nsw i64 %.314981994, 1
  %1554 = add nsw i64 %.114871995, 1
  br label %1555

1555:                                             ; preds = %1547, %1542, %1522, %1551
  %.41499 = phi i64 [ 0, %1542 ], [ 0, %1522 ], [ %1549, %1547 ], [ %1553, %1551 ]
  %.21488 = phi i64 [ %.114871995, %1542 ], [ %.114871995, %1522 ], [ %1550, %1547 ], [ %1554, %1551 ]
  %.111479 = phi double [ %1165, %1542 ], [ %1165, %1522 ], [ %1165, %1547 ], [ %.1014781996, %1551 ]
  %.131462 = phi double [ %.121461, %1542 ], [ %.121461, %1522 ], [ %.1114601997, %1547 ], [ %.1114601997, %1551 ]
  %.131447 = phi i64 [ 0, %1542 ], [ 0, %1522 ], [ %1548, %1547 ], [ %1552, %1551 ]
  %.11 = phi i64 [ %1169, %1542 ], [ %1169, %1522 ], [ %.101999, %1547 ], [ %.101999, %1551 ]
  %.not1623 = icmp slt i64 %.21488, %387
  %or.cond1655 = select i1 %.not1622, i1 true, i1 %.not1623
  br i1 %or.cond1655, label %1560, label %1556

1556:                                             ; preds = %1555
  %1557 = load double, ptr %26, align 8, !tbaa !9
  %1558 = load i64, ptr %20, align 8, !tbaa !5
  %1559 = getelementptr inbounds double, ptr %35, i64 %1558
  store double %1557, ptr %1559, align 8, !tbaa !9
  br label %.loopexit1685

1560:                                             ; preds = %1555
  %1561 = icmp sle i64 %.41499, %388
  %or.cond1656.not = select i1 %.not1622, i1 true, i1 %1561
  br i1 %or.cond1656.not, label %1062, label %1562

1562:                                             ; preds = %1560
  %1563 = load double, ptr %26, align 8, !tbaa !9
  %1564 = fneg double %1563
  store double %1564, ptr %26, align 8, !tbaa !9
  br label %.loopexit1682

.loopexit1682.loopexit:                           ; preds = %1062
  %.pre2134 = load double, ptr %26, align 8, !tbaa !9
  br label %.loopexit1682

.loopexit1682:                                    ; preds = %.loopexit1682.loopexit, %1060, %1562
  %1565 = phi double [ %1564, %1562 ], [ %1058, %1060 ], [ %.pre2134, %.loopexit1682.loopexit ]
  %.31489 = phi i64 [ %.21488, %1562 ], [ %.014862009, %1060 ], [ %.21488, %.loopexit1682.loopexit ]
  %.121480 = phi double [ %.111479, %1562 ], [ %.914772010, %1060 ], [ %.111479, %.loopexit1682.loopexit ]
  %.141463 = phi double [ %.131462, %1562 ], [ %.1014592011, %1060 ], [ %.131462, %.loopexit1682.loopexit ]
  %.141448 = phi i64 [ 0, %1562 ], [ %.1114452012, %1060 ], [ %.131447, %.loopexit1682.loopexit ]
  %.12 = phi i64 [ %.11, %1562 ], [ %.92013, %1060 ], [ %.11, %.loopexit1682.loopexit ]
  %1566 = load i64, ptr %20, align 8, !tbaa !5
  %1567 = getelementptr inbounds double, ptr %35, i64 %1566
  store double %1565, ptr %1567, align 8, !tbaa !9
  %.pre2135 = load i64, ptr %17, align 8, !tbaa !5
  br label %1577

1568:                                             ; preds = %1055
  %1569 = fcmp oeq double %1058, 0.000000e+00
  br i1 %1569, label %1570, label %1574

1570:                                             ; preds = %1568
  store i64 %1054, ptr %18, align 8, !tbaa !5
  %1571 = load i64, ptr %4, align 8, !tbaa !5
  %.1657 = call i64 @llvm.smin.i64(i64 %1054, i64 %1571)
  %1572 = sub i64 %.1114452012, %1052
  %1573 = add i64 %1572, %.1657
  br label %1574

1574:                                             ; preds = %1570, %1568
  %.15 = phi i64 [ %1573, %1570 ], [ %.1114452012, %1568 ]
  %1575 = fcmp olt double %1058, 0.000000e+00
  br i1 %1575, label %1576, label %1577

1576:                                             ; preds = %1574
  br label %1577

1577:                                             ; preds = %.loopexit1682, %1576, %1574
  %1578 = phi i64 [ %.pre2135, %.loopexit1682 ], [ %1056, %1576 ], [ %1056, %1574 ]
  %1579 = phi i64 [ %1566, %.loopexit1682 ], [ %storemerge16162008, %1576 ], [ %storemerge16162008, %1574 ]
  %.41490 = phi i64 [ %.31489, %.loopexit1682 ], [ %.014862009, %1576 ], [ %.014862009, %1574 ]
  %.131481 = phi double [ %.121480, %.loopexit1682 ], [ %.914772010, %1576 ], [ %.914772010, %1574 ]
  %.151464 = phi double [ %.141463, %.loopexit1682 ], [ %.1014592011, %1576 ], [ %.1014592011, %1574 ]
  %.16 = phi i64 [ %.141448, %.loopexit1682 ], [ 0, %1576 ], [ %.15, %1574 ]
  %.13 = phi i64 [ %.12, %.loopexit1682 ], [ %.92013, %1576 ], [ %.92013, %1574 ]
  %1580 = add nsw i64 %1579, 1
  store i64 %1580, ptr %20, align 8, !tbaa !5
  %.not1617.not = icmp slt i64 %1579, %1578
  br i1 %.not1617.not, label %1055, label %._crit_edge2016.loopexit, !llvm.loop !32

._crit_edge2016.loopexit:                         ; preds = %1577
  %.pre2136 = load i64, ptr %16, align 8, !tbaa !5
  br label %._crit_edge2016

._crit_edge2016:                                  ; preds = %._crit_edge2016.loopexit, %.lr.ph2028
  %1581 = phi i64 [ %1050, %.lr.ph2028 ], [ %.pre2136, %._crit_edge2016.loopexit ]
  %.91477.lcssa = phi double [ %.814762023, %.lr.ph2028 ], [ %.131481, %._crit_edge2016.loopexit ]
  %.101459.lcssa = phi double [ %.914582024, %.lr.ph2028 ], [ %.151464, %._crit_edge2016.loopexit ]
  %.111445.lcssa = phi i64 [ %.1014442025, %.lr.ph2028 ], [ %.16, %._crit_edge2016.loopexit ]
  %.9.lcssa = phi i64 [ %.82026, %.lr.ph2028 ], [ %.13, %._crit_edge2016.loopexit ]
  %1582 = add nuw nsw i64 %.015102022, 1
  %.not1614.not = icmp slt i64 %.015102022, %1581
  br i1 %.not1614.not, label %.lr.ph2028, label %.loopexit1685, !llvm.loop !33

.loopexit1685:                                    ; preds = %._crit_edge2016, %._crit_edge1885, %1556
  %.141482 = phi double [ %.111479, %1556 ], [ %.21470.lcssa, %._crit_edge1885 ], [ %.91477.lcssa, %._crit_edge2016 ]
  %.161465 = phi double [ %.131462, %1556 ], [ %.21451.lcssa, %._crit_edge1885 ], [ %.101459.lcssa, %._crit_edge2016 ]
  %.17 = phi i64 [ 0, %1556 ], [ %.11435.lcssa, %._crit_edge1885 ], [ %.111445.lcssa, %._crit_edge2016 ]
  %.14 = phi i64 [ %.11, %1556 ], [ %.11428.lcssa, %._crit_edge1885 ], [ %.9.lcssa, %._crit_edge2016 ]
  store i64 %1049, ptr %17, align 8, !tbaa !5
  %1583 = load i64, ptr %4, align 8, !tbaa !5
  %.1658 = call i64 @llvm.smin.i64(i64 %1049, i64 %1583)
  store i64 %.1658, ptr %16, align 8, !tbaa !5
  %.not16262033.not = icmp slt i64 %541, %.1658
  br i1 %.not16262033.not, label %.lr.ph2036.preheader, label %.loopexit1684

.lr.ph2036.preheader:                             ; preds = %.loopexit1685
  %1584 = sub i64 %.1658, %539
  %min.iters.check2275 = icmp ult i64 %1584, 4
  br i1 %min.iters.check2275, label %.lr.ph2036.preheader2307, label %vector.ph2276

vector.ph2276:                                    ; preds = %.lr.ph2036.preheader
  %n.vec2278 = and i64 %1584, -4
  %ind.end2279 = add i64 %542, %n.vec2278
  %1585 = getelementptr double, ptr %7, i64 %541
  br label %vector.body2281

vector.body2281:                                  ; preds = %vector.body2281, %vector.ph2276
  %index2282 = phi i64 [ 0, %vector.ph2276 ], [ %index.next2286, %vector.body2281 ]
  %1586 = getelementptr double, ptr %1585, i64 %index2282
  %1587 = getelementptr inbounds i8, ptr %1586, i64 16
  %wide.load2284 = load <2 x double>, ptr %1586, align 8, !tbaa !9
  %wide.load2285 = load <2 x double>, ptr %1587, align 8, !tbaa !9
  %1588 = fcmp oge <2 x double> %wide.load2284, zeroinitializer
  %1589 = fcmp oge <2 x double> %wide.load2285, zeroinitializer
  %1590 = fneg <2 x double> %wide.load2284
  %1591 = fneg <2 x double> %wide.load2285
  %1592 = select <2 x i1> %1588, <2 x double> %wide.load2284, <2 x double> %1590
  %1593 = select <2 x i1> %1589, <2 x double> %wide.load2285, <2 x double> %1591
  store <2 x double> %1592, ptr %1586, align 8, !tbaa !9
  store <2 x double> %1593, ptr %1587, align 8, !tbaa !9
  %index.next2286 = add nuw i64 %index2282, 4
  %1594 = icmp eq i64 %index.next2286, %n.vec2278
  br i1 %1594, label %middle.block2273, label %vector.body2281, !llvm.loop !34

middle.block2273:                                 ; preds = %vector.body2281
  %1595 = extractelement <2 x double> %wide.load2285, i64 1
  %cmp.n2287 = icmp eq i64 %1584, %n.vec2278
  br i1 %cmp.n2287, label %..loopexit1684_crit_edge, label %.lr.ph2036.preheader2307

.lr.ph2036.preheader2307:                         ; preds = %middle.block2273, %.lr.ph2036.preheader
  %storemerge16252034.ph = phi i64 [ %542, %.lr.ph2036.preheader ], [ %ind.end2279, %middle.block2273 ]
  br label %.lr.ph2036

.lr.ph2036:                                       ; preds = %.lr.ph2036.preheader2307, %.lr.ph2036
  %storemerge16252034 = phi i64 [ %1601, %.lr.ph2036 ], [ %storemerge16252034.ph, %.lr.ph2036.preheader2307 ]
  %1596 = getelementptr inbounds double, ptr %35, i64 %storemerge16252034
  %1597 = load double, ptr %1596, align 8, !tbaa !9
  %1598 = fcmp oge double %1597, 0.000000e+00
  %1599 = fneg double %1597
  %1600 = select i1 %1598, double %1597, double %1599
  store double %1600, ptr %1596, align 8, !tbaa !9
  %1601 = add nsw i64 %storemerge16252034, 1
  %.not1626.not = icmp slt i64 %storemerge16252034, %.1658
  br i1 %.not1626.not, label %.lr.ph2036, label %..loopexit1684_crit_edge, !llvm.loop !35

._crit_edge2047:                                  ; preds = %.loopexit1684, %.._crit_edge2047_crit_edge
  %1602 = phi i64 [ %.pre2137, %.._crit_edge2047_crit_edge ], [ %1583, %.loopexit1684 ]
  %.11469.lcssa = phi double [ 0.000000e+00, %.._crit_edge2047_crit_edge ], [ %.141482, %.loopexit1684 ]
  %.11450.lcssa = phi double [ 0.000000e+00, %.._crit_edge2047_crit_edge ], [ %.161465, %.loopexit1684 ]
  %.01434.lcssa = phi i64 [ 0, %.._crit_edge2047_crit_edge ], [ %.17, %.loopexit1684 ]
  %.01427.lcssa = phi i64 [ 0, %.._crit_edge2047_crit_edge ], [ %.14, %.loopexit1684 ]
  %1603 = getelementptr inbounds double, ptr %35, i64 %1602
  %1604 = load double, ptr %1603, align 8, !tbaa !9
  %1605 = fcmp olt double %1604, %114
  %1606 = fcmp ogt double %1604, %111
  %or.cond1659 = and i1 %1605, %1606
  br i1 %or.cond1659, label %1607, label %1610

1607:                                             ; preds = %._crit_edge2047
  %1608 = mul nsw i64 %1602, %36
  %gep2055 = getelementptr double, ptr %invariant.gep2052, i64 %1608
  %1609 = call double @f2c_dnrm2(ptr noundef nonnull %3, ptr noundef %gep2055, ptr noundef nonnull @c__1) #7
  br label %1617

1610:                                             ; preds = %._crit_edge2047
  store double 0.000000e+00, ptr %21, align 8, !tbaa !9
  store double 0.000000e+00, ptr %26, align 8, !tbaa !9
  %1611 = mul nsw i64 %1602, %36
  %gep2053 = getelementptr double, ptr %invariant.gep2052, i64 %1611
  %1612 = call i32 @dlassq_(ptr noundef nonnull %3, ptr noundef %gep2053, ptr noundef nonnull @c__1, ptr noundef nonnull %21, ptr noundef nonnull %26) #7
  %1613 = load double, ptr %21, align 8, !tbaa !9
  %1614 = load double, ptr %26, align 8, !tbaa !9
  %1615 = call double @sqrt(double noundef %1614) #7
  %1616 = fmul double %1613, %1615
  br label %1617

1617:                                             ; preds = %1610, %1607
  %.sink2198 = phi double [ %1616, %1610 ], [ %1609, %1607 ]
  %1618 = load i64, ptr %4, align 8, !tbaa !5
  %1619 = getelementptr inbounds double, ptr %42, i64 %1618
  %1620 = load double, ptr %1619, align 8, !tbaa !9
  %1621 = fmul double %.sink2198, %1620
  %1622 = getelementptr inbounds double, ptr %35, i64 %1618
  store double %1621, ptr %1622, align 8, !tbaa !9
  %1623 = icmp slt i64 %.015002056, %.014842057
  %1624 = fcmp ugt double %.11469.lcssa, %123
  %.not1599 = icmp sgt i64 %.01427.lcssa, %1618
  %or.cond2202 = select i1 %1624, i1 %.not1599, i1 false
  %spec.select2203 = select i1 %or.cond2202, i64 %.014842057, i64 %.015002056
  %.11485 = select i1 %1623, i64 %spec.select2203, i64 %.014842057
  %1625 = add nsw i64 %.11485, 1
  %1626 = icmp sgt i64 %.015002056, %1625
  br i1 %1626, label %1627, label %1639

1627:                                             ; preds = %1617
  %1628 = sitofp i64 %1618 to double
  %1629 = call double @sqrt(double noundef %1628) #7
  %1630 = load double, ptr %24, align 8, !tbaa !9
  %1631 = fmul double %1629, %1630
  %1632 = fcmp olt double %.11469.lcssa, %1631
  br i1 %1632, label %1633, label %1639

1633:                                             ; preds = %1627
  %1634 = load i64, ptr %4, align 8, !tbaa !5
  %1635 = sitofp i64 %1634 to double
  %1636 = fmul double %.11469.lcssa, %1635
  %1637 = fmul double %.11450.lcssa, %1636
  %1638 = fcmp uge double %1637, %1630
  %.not1600 = icmp slt i64 %.01434.lcssa, %378
  %or.cond1660 = select i1 %1638, i1 %.not1600, i1 false
  br i1 %or.cond1660, label %1640, label %1642

1639:                                             ; preds = %1627, %1617
  %.not1600.old = icmp slt i64 %.01434.lcssa, %378
  br i1 %.not1600.old, label %1640, label %1642

1640:                                             ; preds = %1633, %1639
  %1641 = add nuw nsw i64 %.015002056, 1
  %exitcond2125.not = icmp eq i64 %1641, 31
  br i1 %exitcond2125.not, label %1642, label %536, !llvm.loop !36

1642:                                             ; preds = %1633, %1639, %1640
  %.01500.lcssa = phi i64 [ %.015002056, %1633 ], [ %.015002056, %1639 ], [ 31, %1640 ]
  %storemerge1597 = phi i64 [ 0, %1633 ], [ 0, %1639 ], [ 29, %1640 ]
  store i64 %storemerge1597, ptr %13, align 8, !tbaa !5
  store i64 0, ptr %22, align 8, !tbaa !5
  store i64 0, ptr %23, align 8, !tbaa !5
  %1643 = load i64, ptr %4, align 8, !tbaa !5
  %1644 = add nsw i64 %1643, -1
  store i64 %1644, ptr %15, align 8, !tbaa !5
  store i64 1, ptr %20, align 8, !tbaa !5
  %.not16022066 = icmp slt i64 %1643, 2
  br i1 %.not16022066, label %._crit_edge2070, label %.lr.ph2069

.lr.ph2069:                                       ; preds = %1642, %1683
  %storemerge16012067 = phi i64 [ %1684, %1683 ], [ 1, %1642 ]
  %1645 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub2098 = sub i64 %1645, %storemerge16012067
  %1646 = add i64 %reass.sub2098, 1
  store i64 %1646, ptr %16, align 8, !tbaa !5
  %1647 = getelementptr inbounds double, ptr %35, i64 %storemerge16012067
  %1648 = call i64 @f2c_idamax(ptr noundef nonnull %16, ptr noundef nonnull %1647, ptr noundef nonnull @c__1) #7
  %1649 = load i64, ptr %20, align 8, !tbaa !5
  %1650 = add i64 %1648, -1
  %1651 = add i64 %1650, %1649
  %.not1612 = icmp eq i64 %1650, 0
  br i1 %.not1612, label %1668, label %1652

1652:                                             ; preds = %.lr.ph2069
  %1653 = getelementptr inbounds double, ptr %35, i64 %1649
  %1654 = load double, ptr %1653, align 8, !tbaa !9
  %1655 = getelementptr inbounds double, ptr %35, i64 %1651
  %1656 = load double, ptr %1655, align 8, !tbaa !9
  store double %1656, ptr %1653, align 8, !tbaa !9
  store double %1654, ptr %1655, align 8, !tbaa !9
  %1657 = getelementptr inbounds double, ptr %42, i64 %1649
  %1658 = load double, ptr %1657, align 8, !tbaa !9
  store double %1658, ptr %30, align 8, !tbaa !9
  %1659 = getelementptr inbounds double, ptr %42, i64 %1651
  %1660 = load double, ptr %1659, align 8, !tbaa !9
  store double %1660, ptr %1657, align 8, !tbaa !9
  store double %1658, ptr %1659, align 8, !tbaa !9
  %1661 = mul nsw i64 %1649, %36
  %gep2059 = getelementptr double, ptr %invariant.gep2052, i64 %1661
  %1662 = mul nsw i64 %1651, %36
  %gep2061 = getelementptr double, ptr %invariant.gep2052, i64 %1662
  %1663 = call i32 @f2c_dswap(ptr noundef nonnull %3, ptr noundef %gep2059, ptr noundef nonnull @c__1, ptr noundef %gep2061, ptr noundef nonnull @c__1) #7
  %.pre2139 = load i64, ptr %20, align 8, !tbaa !5
  br i1 %or.cond5, label %1664, label %1668

1664:                                             ; preds = %1652
  %1665 = mul nsw i64 %.pre2139, %39
  %gep2063 = getelementptr double, ptr %invariant.gep1855, i64 %1665
  %1666 = mul nsw i64 %1651, %39
  %gep2065 = getelementptr double, ptr %invariant.gep1855, i64 %1666
  %1667 = call i32 @f2c_dswap(ptr noundef nonnull %25, ptr noundef %gep2063, ptr noundef nonnull @c__1, ptr noundef %gep2065, ptr noundef nonnull @c__1) #7
  %.pre2138 = load i64, ptr %20, align 8, !tbaa !5
  br label %1668

1668:                                             ; preds = %1652, %1664, %.lr.ph2069
  %1669 = phi i64 [ %.pre2139, %1652 ], [ %.pre2138, %1664 ], [ %1649, %.lr.ph2069 ]
  %1670 = getelementptr inbounds double, ptr %35, i64 %1669
  %1671 = load double, ptr %1670, align 8, !tbaa !9
  %1672 = fcmp une double %1671, 0.000000e+00
  br i1 %1672, label %1673, label %1683

1673:                                             ; preds = %1668
  %1674 = load i64, ptr %23, align 8, !tbaa !5
  %1675 = add nsw i64 %1674, 1
  store i64 %1675, ptr %23, align 8, !tbaa !5
  %1676 = load double, ptr %31, align 8, !tbaa !9
  %1677 = fmul double %1671, %1676
  %1678 = load double, ptr %32, align 8, !tbaa !9
  %1679 = fcmp ogt double %1677, %1678
  br i1 %1679, label %1680, label %1683

1680:                                             ; preds = %1673
  %1681 = load i64, ptr %22, align 8, !tbaa !5
  %1682 = add nsw i64 %1681, 1
  store i64 %1682, ptr %22, align 8, !tbaa !5
  br label %1683

1683:                                             ; preds = %1668, %1680, %1673
  %1684 = add nsw i64 %1669, 1
  store i64 %1684, ptr %20, align 8, !tbaa !5
  %1685 = load i64, ptr %15, align 8, !tbaa !5
  %.not1602.not = icmp slt i64 %1669, %1685
  br i1 %.not1602.not, label %.lr.ph2069, label %._crit_edge2070.loopexit, !llvm.loop !37

._crit_edge2070.loopexit:                         ; preds = %1683
  %.pre2140 = load i64, ptr %4, align 8, !tbaa !5
  br label %._crit_edge2070

._crit_edge2070:                                  ; preds = %._crit_edge2070.loopexit, %1642
  %1686 = phi i64 [ %.pre2140, %._crit_edge2070.loopexit ], [ %1643, %1642 ]
  %1687 = getelementptr inbounds double, ptr %35, i64 %1686
  %1688 = load double, ptr %1687, align 8, !tbaa !9
  %1689 = fcmp une double %1688, 0.000000e+00
  br i1 %1689, label %1690, label %1700

1690:                                             ; preds = %._crit_edge2070
  %1691 = load i64, ptr %23, align 8, !tbaa !5
  %1692 = add nsw i64 %1691, 1
  store i64 %1692, ptr %23, align 8, !tbaa !5
  %1693 = load double, ptr %31, align 8, !tbaa !9
  %1694 = fmul double %1688, %1693
  %1695 = load double, ptr %32, align 8, !tbaa !9
  %1696 = fcmp ogt double %1694, %1695
  br i1 %1696, label %1697, label %1700

1697:                                             ; preds = %1690
  %1698 = load i64, ptr %22, align 8, !tbaa !5
  %1699 = add nsw i64 %1698, 1
  store i64 %1699, ptr %22, align 8, !tbaa !5
  br label %1700

1700:                                             ; preds = %1690, %1697, %._crit_edge2070
  %1701 = or i64 %44, %43
  %or.cond21.not = icmp eq i64 %1701, 0
  br i1 %or.cond21.not, label %.loopexit1681, label %1702

1702:                                             ; preds = %1700
  %1703 = load i64, ptr %22, align 8, !tbaa !5
  store i64 %1703, ptr %15, align 8, !tbaa !5
  store i64 1, ptr %20, align 8, !tbaa !5
  %.not16052073 = icmp slt i64 %1703, 1
  br i1 %.not16052073, label %.loopexit1681, label %.lr.ph2076

.lr.ph2076:                                       ; preds = %1702, %.lr.ph2076
  %storemerge16042074 = phi i64 [ %1712, %.lr.ph2076 ], [ 1, %1702 ]
  %1704 = getelementptr inbounds double, ptr %42, i64 %storemerge16042074
  %1705 = load double, ptr %1704, align 8, !tbaa !9
  %1706 = getelementptr inbounds double, ptr %35, i64 %storemerge16042074
  %1707 = load double, ptr %1706, align 8, !tbaa !9
  %1708 = fdiv double %1705, %1707
  store double %1708, ptr %19, align 8, !tbaa !9
  %1709 = mul nsw i64 %storemerge16042074, %36
  %gep2072 = getelementptr double, ptr %invariant.gep2052, i64 %1709
  %1710 = call i32 @f2c_dscal(ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef %gep2072, ptr noundef nonnull @c__1) #7
  %1711 = load i64, ptr %20, align 8, !tbaa !5
  %1712 = add nsw i64 %1711, 1
  store i64 %1712, ptr %20, align 8, !tbaa !5
  %1713 = load i64, ptr %15, align 8, !tbaa !5
  %.not1605.not = icmp slt i64 %1711, %1713
  br i1 %.not1605.not, label %.lr.ph2076, label %.loopexit1681, !llvm.loop !38

.loopexit1681:                                    ; preds = %.lr.ph2076, %1702, %1700
  br i1 %or.cond5, label %1714, label %.loopexit

1714:                                             ; preds = %.loopexit1681
  %1715 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %1715, ptr %15, align 8, !tbaa !5
  store i64 1, ptr %20, align 8, !tbaa !5
  %.not16092087 = icmp slt i64 %1715, 1
  br i1 %60, label %1716, label %1723

1716:                                             ; preds = %1714
  br i1 %.not16092087, label %.loopexit, label %.lr.ph2090

.lr.ph2090:                                       ; preds = %1716, %.lr.ph2090
  %storemerge16082088 = phi i64 [ %1721, %.lr.ph2090 ], [ 1, %1716 ]
  %1717 = getelementptr inbounds double, ptr %42, i64 %storemerge16082088
  %1718 = mul nsw i64 %storemerge16082088, %39
  %gep2086 = getelementptr double, ptr %invariant.gep1855, i64 %1718
  %1719 = call i32 @f2c_dscal(ptr noundef nonnull %25, ptr noundef nonnull %1717, ptr noundef %gep2086, ptr noundef nonnull @c__1) #7
  %1720 = load i64, ptr %20, align 8, !tbaa !5
  %1721 = add nsw i64 %1720, 1
  store i64 %1721, ptr %20, align 8, !tbaa !5
  %1722 = load i64, ptr %15, align 8, !tbaa !5
  %.not1609.not = icmp slt i64 %1720, %1722
  br i1 %.not1609.not, label %.lr.ph2090, label %.loopexit, !llvm.loop !39

1723:                                             ; preds = %1714
  br i1 %.not16092087, label %.loopexit, label %.lr.ph2084

.lr.ph2084:                                       ; preds = %1723, %.lr.ph2084
  %storemerge16062082 = phi i64 [ %1731, %.lr.ph2084 ], [ 1, %1723 ]
  %1724 = mul nsw i64 %storemerge16062082, %39
  %gep2078 = getelementptr double, ptr %invariant.gep1855, i64 %1724
  %1725 = call double @f2c_dnrm2(ptr noundef nonnull %25, ptr noundef %gep2078, ptr noundef nonnull @c__1) #7
  %1726 = fdiv double 1.000000e+00, %1725
  store double %1726, ptr %30, align 8, !tbaa !9
  %1727 = load i64, ptr %20, align 8, !tbaa !5
  %1728 = mul nsw i64 %1727, %39
  %gep2080 = getelementptr double, ptr %invariant.gep1855, i64 %1728
  %1729 = call i32 @f2c_dscal(ptr noundef nonnull %25, ptr noundef nonnull %30, ptr noundef %gep2080, ptr noundef nonnull @c__1) #7
  %1730 = load i64, ptr %20, align 8, !tbaa !5
  %1731 = add nsw i64 %1730, 1
  store i64 %1731, ptr %20, align 8, !tbaa !5
  %1732 = load i64, ptr %15, align 8, !tbaa !5
  %.not1607.not = icmp slt i64 %1730, %1732
  br i1 %.not1607.not, label %.lr.ph2084, label %.loopexit, !llvm.loop !40

.loopexit:                                        ; preds = %.lr.ph2084, %.lr.ph2090, %1723, %1716, %.loopexit1681
  %1733 = load double, ptr %31, align 8, !tbaa !9
  %1734 = fcmp ogt double %1733, 1.000000e+00
  br i1 %1734, label %1735, label %1739

1735:                                             ; preds = %.loopexit
  %1736 = load double, ptr %7, align 8, !tbaa !9
  %1737 = fdiv double %113, %1733
  %1738 = fcmp olt double %1736, %1737
  br i1 %1738, label %1747, label %1739

1739:                                             ; preds = %1735, %.loopexit
  %1740 = fcmp olt double %1733, 1.000000e+00
  %.pre2142 = load i64, ptr %22, align 8, !tbaa !5
  br i1 %1740, label %1741, label %1758

1741:                                             ; preds = %1739
  %1742 = getelementptr inbounds double, ptr %35, i64 %.pre2142
  %1743 = load double, ptr %1742, align 8, !tbaa !9
  %1744 = load double, ptr %32, align 8, !tbaa !9
  %1745 = fdiv double %1744, %1733
  %1746 = fcmp ogt double %1743, %1745
  br i1 %1746, label %1747, label %1758

1747:                                             ; preds = %1741, %1735
  %1748 = load i64, ptr %4, align 8, !tbaa !5
  %.not16112091 = icmp slt i64 %1748, 1
  br i1 %.not16112091, label %._crit_edge2095, label %.lr.ph2094.preheader

.lr.ph2094.preheader:                             ; preds = %1747
  %min.iters.check2290 = icmp ult i64 %1748, 4
  br i1 %min.iters.check2290, label %.lr.ph2094.preheader2305, label %vector.ph2291

vector.ph2291:                                    ; preds = %.lr.ph2094.preheader
  %n.vec2293 = and i64 %1748, 9223372036854775804
  %ind.end2294 = or disjoint i64 %n.vec2293, 1
  %broadcast.splatinsert2301 = insertelement <2 x double> poison, double %1733, i64 0
  %broadcast.splat2302 = shufflevector <2 x double> %broadcast.splatinsert2301, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2296

vector.body2296:                                  ; preds = %vector.body2296, %vector.ph2291
  %index2297 = phi i64 [ 0, %vector.ph2291 ], [ %index.next2303, %vector.body2296 ]
  %1749 = getelementptr double, ptr %7, i64 %index2297
  %1750 = getelementptr inbounds i8, ptr %1749, i64 16
  %wide.load2299 = load <2 x double>, ptr %1749, align 8, !tbaa !9
  %wide.load2300 = load <2 x double>, ptr %1750, align 8, !tbaa !9
  %1751 = fmul <2 x double> %broadcast.splat2302, %wide.load2299
  %1752 = fmul <2 x double> %broadcast.splat2302, %wide.load2300
  store <2 x double> %1751, ptr %1749, align 8, !tbaa !9
  store <2 x double> %1752, ptr %1750, align 8, !tbaa !9
  %index.next2303 = add nuw i64 %index2297, 4
  %1753 = icmp eq i64 %index.next2303, %n.vec2293
  br i1 %1753, label %middle.block2288, label %vector.body2296, !llvm.loop !41

middle.block2288:                                 ; preds = %vector.body2296
  %cmp.n2304 = icmp eq i64 %1748, %n.vec2293
  br i1 %cmp.n2304, label %._crit_edge2095, label %.lr.ph2094.preheader2305

.lr.ph2094.preheader2305:                         ; preds = %middle.block2288, %.lr.ph2094.preheader
  %storemerge16102092.ph = phi i64 [ 1, %.lr.ph2094.preheader ], [ %ind.end2294, %middle.block2288 ]
  br label %.lr.ph2094

.lr.ph2094:                                       ; preds = %.lr.ph2094.preheader2305, %.lr.ph2094
  %storemerge16102092 = phi i64 [ %1757, %.lr.ph2094 ], [ %storemerge16102092.ph, %.lr.ph2094.preheader2305 ]
  %1754 = getelementptr inbounds double, ptr %35, i64 %storemerge16102092
  %1755 = load double, ptr %1754, align 8, !tbaa !9
  %1756 = fmul double %1733, %1755
  store double %1756, ptr %1754, align 8, !tbaa !9
  %1757 = add nuw i64 %storemerge16102092, 1
  %exitcond2126.not = icmp eq i64 %storemerge16102092, %1748
  br i1 %exitcond2126.not, label %._crit_edge2095, label %.lr.ph2094, !llvm.loop !42

._crit_edge2095:                                  ; preds = %.lr.ph2094, %middle.block2288, %1747
  %.pre2141 = load i64, ptr %22, align 8, !tbaa !5
  br label %1758

1758:                                             ; preds = %._crit_edge2095, %1741, %1739
  %1759 = phi i64 [ %.pre2141, %._crit_edge2095 ], [ %.pre2142, %1741 ], [ %.pre2142, %1739 ]
  %1760 = phi double [ 1.000000e+00, %._crit_edge2095 ], [ %1733, %1741 ], [ %1733, %1739 ]
  store double %1760, ptr %11, align 8, !tbaa !9
  %1761 = load i64, ptr %23, align 8, !tbaa !5
  %1762 = sitofp i64 %1761 to double
  %1763 = getelementptr inbounds i8, ptr %11, i64 8
  store double %1762, ptr %1763, align 8, !tbaa !9
  %1764 = sitofp i64 %1759 to double
  %1765 = getelementptr inbounds i8, ptr %11, i64 16
  store double %1764, ptr %1765, align 8, !tbaa !9
  %1766 = uitofp nneg i64 %.01500.lcssa to double
  %1767 = getelementptr inbounds i8, ptr %11, i64 24
  store double %1766, ptr %1767, align 8, !tbaa !9
  %1768 = getelementptr inbounds i8, ptr %11, i64 32
  store double %.11469.lcssa, ptr %1768, align 8, !tbaa !9
  %1769 = getelementptr inbounds i8, ptr %11, i64 40
  store double %.11450.lcssa, ptr %1769, align 8, !tbaa !9
  br label %1770

1770:                                             ; preds = %93, %96, %1758, %295, %288, %233, %194, %154, %128, %91
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  ret i32 0
}

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

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

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

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

declare i32 @f2c_drotm(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.fmuladd.f64(double, double, double) #4

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #5

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!"branch_weights", i32 1, i32 1048575}
!12 = distinct !{!12, !13, !14, !15}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!"llvm.loop.isvectorized", i32 1}
!15 = !{!"llvm.loop.unroll.runtime.disable"}
!16 = distinct !{!16, !13, !15, !14}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13, !14, !15}
!19 = distinct !{!19, !13, !15, !14}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13, !14, !15}
!22 = distinct !{!22, !13, !15, !14}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13, !14, !15}
!26 = distinct !{!26, !13, !15, !14}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13}
!32 = distinct !{!32, !13}
!33 = distinct !{!33, !13}
!34 = distinct !{!34, !13, !14, !15}
!35 = distinct !{!35, !13, !15, !14}
!36 = distinct !{!36, !13}
!37 = distinct !{!37, !13}
!38 = distinct !{!38, !13}
!39 = distinct !{!39, !13}
!40 = distinct !{!40, !13}
!41 = distinct !{!41, !13, !14, !15}
!42 = distinct !{!42, !13, !15, !14}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LibCallsShrinkWrapPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass